mirror of
https://github.com/LiBwrt-op/openwrt-6.x.git
synced 2025-12-16 16:57:28 +00:00
qualcommax:add ipq50xx
This commit is contained in:
parent
5efab21531
commit
2a2356fc63
@ -47,11 +47,6 @@ $(Package/ath11k-firmware-default)
|
||||
TITLE:=IPQ8074 ath11k firmware
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-qcn6122
|
||||
$(Package/ath11k-firmware-default)
|
||||
TITLE:=QCN6122 ath11k firmware
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-qcn9074
|
||||
$(Package/ath11k-firmware-default)
|
||||
TITLE:=QCN9074 ath11k firmware
|
||||
@ -93,13 +88,6 @@ define Package/ath11k-firmware-ipq8074/install
|
||||
$(1)/lib/firmware/IPQ8074/
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-qcn6122/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/qcn6122/hw1.0
|
||||
$(INSTALL_DATA) \
|
||||
$(PKG_BUILD_DIR)/ath11k-firmware/IPQ5018_QCN6122_QCN6122/hw1.0/2.6.0.1/WLAN.HK.2.6.0.1-01120-QCAHKSWPL_SILICONZ-1/qcn6122/* \
|
||||
$(1)/lib/firmware/ath11k/qcn6122/hw1.0/
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-qcn9074/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0
|
||||
$(INSTALL_DATA) \
|
||||
@ -112,5 +100,5 @@ endef
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq5018))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq6018))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq8074))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-qcn6122))
|
||||
$(eval $(call BuildPackage,ath11k-firmware-qcn9074))
|
||||
|
||||
|
||||
@ -0,0 +1,229 @@
|
||||
From 5ad8cf24897ff903112967a9662cb13ed4cbbf57 Mon Sep 17 00:00:00 2001
|
||||
From: hzy <hzyitc@outlook.com>
|
||||
Date: Mon, 22 Apr 2024 21:47:58 +0800
|
||||
Subject: [PATCH 1/2] WiP: syn-gmac: use standard DMA api
|
||||
|
||||
Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
---
|
||||
hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c | 14 ++++++--
|
||||
hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c | 2 ++
|
||||
hal/dp_ops/syn_gmac_dp/syn_dp_rx.c | 47 +++++++++++++-------------
|
||||
hal/dp_ops/syn_gmac_dp/syn_dp_tx.c | 23 ++++---------
|
||||
4 files changed, 42 insertions(+), 44 deletions(-)
|
||||
|
||||
--- a/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c
|
||||
+++ b/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_rx.c
|
||||
@@ -26,6 +26,7 @@ static int syn_dp_cfg_rx_setup_desc_queu
|
||||
{
|
||||
struct syn_dp_info_rx *rx_info = &dev_info->dp_info_rx;
|
||||
struct dma_desc_rx *first_desc = NULL;
|
||||
+ dma_addr_t dma_addr;
|
||||
struct net_device *netdev = rx_info->netdev;
|
||||
|
||||
netdev_dbg(netdev, "Total size of memory required for Rx Descriptors in Ring Mode = %u\n", (uint32_t)((sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE)));
|
||||
@@ -33,13 +34,15 @@ static int syn_dp_cfg_rx_setup_desc_queu
|
||||
/*
|
||||
* Allocate cacheable descriptors for Rx
|
||||
*/
|
||||
- first_desc = kzalloc(sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE, GFP_KERNEL);
|
||||
+ first_desc = dma_alloc_coherent(rx_info->dev,
|
||||
+ sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE,
|
||||
+ &dma_addr, GFP_KERNEL);
|
||||
if (!first_desc) {
|
||||
netdev_dbg(netdev, "Error in Rx Descriptor Memory allocation in Ring mode\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
- dev_info->rx_desc_dma_addr = (dma_addr_t)virt_to_phys(first_desc);
|
||||
+ dev_info->rx_desc_dma_addr = dma_addr;
|
||||
rx_info->rx_desc = first_desc;
|
||||
syn_dp_gmac_rx_desc_init_ring(rx_info->rx_desc, SYN_DP_RX_DESC_SIZE);
|
||||
|
||||
@@ -98,6 +101,10 @@ void syn_dp_cfg_rx_cleanup_rings(struct
|
||||
for (i = 0; i < rx_info->busy_rx_desc_cnt; i++) {
|
||||
rx_skb_index = (rx_skb_index + i) & SYN_DP_RX_DESC_MAX_INDEX;
|
||||
rxdesc = rx_info->rx_desc;
|
||||
+
|
||||
+ dma_unmap_single(rx_info->dev, rxdesc->buffer1,
|
||||
+ rxdesc->length, DMA_FROM_DEVICE);
|
||||
+
|
||||
skb = rx_info->rx_buf_pool[rx_skb_index].skb;
|
||||
if (unlikely(skb != NULL)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
@@ -105,7 +112,8 @@ void syn_dp_cfg_rx_cleanup_rings(struct
|
||||
}
|
||||
}
|
||||
|
||||
- kfree(rx_info->rx_desc);
|
||||
+ dma_free_coherent(rx_info->dev, (sizeof(struct dma_desc_rx) * SYN_DP_RX_DESC_SIZE),
|
||||
+ rx_info->rx_desc, dev_info->rx_desc_dma_addr);
|
||||
rx_info->rx_desc = NULL;
|
||||
dev_info->rx_desc_dma_addr = (dma_addr_t)0;
|
||||
}
|
||||
--- a/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c
|
||||
+++ b/hal/dp_ops/syn_gmac_dp/syn_dp_cfg_tx.c
|
||||
@@ -91,6 +91,8 @@ void syn_dp_cfg_tx_cleanup_rings(struct
|
||||
tx_skb_index = syn_dp_tx_inc_index(tx_skb_index, i);
|
||||
txdesc = tx_info->tx_desc;
|
||||
|
||||
+ dma_unmap_single(tx_info->dev, txdesc->buffer1, txdesc->length, DMA_TO_DEVICE);
|
||||
+
|
||||
skb = tx_info->tx_buf_pool[tx_skb_index].skb;
|
||||
if (unlikely(skb != NULL)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
--- a/hal/dp_ops/syn_gmac_dp/syn_dp_rx.c
|
||||
+++ b/hal/dp_ops/syn_gmac_dp/syn_dp_rx.c
|
||||
@@ -73,16 +73,6 @@ static inline void syn_dp_rx_refill_one_
|
||||
*/
|
||||
static inline void syn_dp_rx_inval_and_flush(struct syn_dp_info_rx *rx_info, uint32_t start, uint32_t end)
|
||||
{
|
||||
- /*
|
||||
- * Batched flush and invalidation of the rx descriptors
|
||||
- */
|
||||
- if (end > start) {
|
||||
- dmac_flush_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
|
||||
- } else {
|
||||
- dmac_flush_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[SYN_DP_RX_DESC_MAX_INDEX] + sizeof(struct dma_desc_rx));
|
||||
- dmac_flush_range_no_dsb((void *)&rx_info->rx_desc[0], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
|
||||
- }
|
||||
-
|
||||
dsb(st);
|
||||
}
|
||||
|
||||
@@ -124,15 +114,19 @@ int syn_dp_rx_refill_page_mode(struct sy
|
||||
break;
|
||||
}
|
||||
|
||||
+ skb_fill_page_desc(skb, 0, pg, 0, PAGE_SIZE);
|
||||
+
|
||||
/*
|
||||
* Get virtual address of allocated page.
|
||||
*/
|
||||
page_addr = page_address(pg);
|
||||
- dma_addr = (dma_addr_t)virt_to_phys(page_addr);
|
||||
-
|
||||
- skb_fill_page_desc(skb, 0, pg, 0, PAGE_SIZE);
|
||||
+ dma_addr = dma_map_page(rx_info->dev, pg, 0, PAGE_SIZE, DMA_FROM_DEVICE);
|
||||
+ if (unlikely(dma_mapping_error(rx_info->dev, dma_addr))) {
|
||||
+ dev_kfree_skb(skb);
|
||||
+ netdev_dbg(netdev, "DMA mapping failed for empty buffer\n");
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
- dmac_inv_range_no_dsb(page_addr, (page_addr + PAGE_SIZE));
|
||||
rx_refill_idx = rx_info->rx_refill_idx;
|
||||
rx_desc = rx_info->rx_desc + rx_refill_idx;
|
||||
|
||||
@@ -181,8 +175,15 @@ int syn_dp_rx_refill(struct syn_dp_info_
|
||||
|
||||
skb_reserve(skb, SYN_DP_SKB_HEADROOM + NET_IP_ALIGN);
|
||||
|
||||
- dma_addr = (dma_addr_t)virt_to_phys(skb->data);
|
||||
- dmac_inv_range_no_dsb((void *)skb->data, (void *)(skb->data + inval_len));
|
||||
+ dma_addr = dma_map_single(rx_info->dev, skb->data,
|
||||
+ inval_len,
|
||||
+ DMA_FROM_DEVICE);
|
||||
+ if (unlikely(dma_mapping_error(rx_info->dev, dma_addr))) {
|
||||
+ dev_kfree_skb(skb);
|
||||
+ netdev_dbg(netdev, "DMA mapping failed for empty buffer\n");
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
rx_refill_idx = rx_info->rx_refill_idx;
|
||||
rx_desc = rx_info->rx_desc + rx_refill_idx;
|
||||
|
||||
@@ -407,12 +408,6 @@ int syn_dp_rx(struct syn_dp_info_rx *rx_
|
||||
* this code is executing.
|
||||
*/
|
||||
end = syn_dp_rx_inc_index(rx_info->rx_idx, busy);
|
||||
- if (end > start) {
|
||||
- dmac_inv_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
|
||||
- } else {
|
||||
- dmac_inv_range_no_dsb((void *)&rx_info->rx_desc[start], (void *)&rx_info->rx_desc[SYN_DP_RX_DESC_MAX_INDEX] + sizeof(struct dma_desc_rx));
|
||||
- dmac_inv_range_no_dsb((void *)&rx_info->rx_desc[0], (void *)&rx_info->rx_desc[end] + sizeof(struct dma_desc_rx));
|
||||
- }
|
||||
|
||||
dsb(st);
|
||||
|
||||
@@ -439,8 +434,12 @@ int syn_dp_rx(struct syn_dp_info_rx *rx_
|
||||
* speculative prefetch by CPU may have occurred.
|
||||
*/
|
||||
frame_length = syn_dp_gmac_get_rx_desc_frame_length(status);
|
||||
- dmac_inv_range((void *)rx_buf->map_addr_virt,
|
||||
- (void *)(((uint8_t *)rx_buf->map_addr_virt) + frame_length));
|
||||
+ if (likely(!rx_info->page_mode))
|
||||
+ dma_unmap_single(rx_info->dev, rx_desc->buffer1,
|
||||
+ rx_info->alloc_buf_len, DMA_FROM_DEVICE);
|
||||
+ else
|
||||
+ dma_unmap_page(rx_info->dev, rx_desc->buffer1,
|
||||
+ PAGE_SIZE, DMA_FROM_DEVICE);
|
||||
prefetch((void *)rx_buf->map_addr_virt);
|
||||
|
||||
rx_next_idx = syn_dp_rx_inc_index(rx_idx, 1);
|
||||
--- a/hal/dp_ops/syn_gmac_dp/syn_dp_tx.c
|
||||
+++ b/hal/dp_ops/syn_gmac_dp/syn_dp_tx.c
|
||||
@@ -104,9 +104,7 @@ static inline struct dma_desc_tx *syn_dp
|
||||
BUG_ON(!length);
|
||||
#endif
|
||||
|
||||
- dma_addr = (dma_addr_t)virt_to_phys(frag_addr);
|
||||
-
|
||||
- dmac_clean_range_no_dsb(frag_addr, frag_addr + length);
|
||||
+ dma_addr = dma_map_single(tx_info->dev, frag_addr, length, DMA_TO_DEVICE);
|
||||
|
||||
*total_length += length;
|
||||
tx_desc = syn_dp_tx_set_desc_sg(tx_info, dma_addr, length, DESC_OWN_BY_DMA);
|
||||
@@ -150,8 +148,7 @@ int syn_dp_tx_nr_frags(struct syn_dp_inf
|
||||
/*
|
||||
* Flush the dma for non-paged skb data
|
||||
*/
|
||||
- dma_addr = (dma_addr_t)virt_to_phys(skb->data);
|
||||
- dmac_clean_range_no_dsb((void *)skb->data, (void *)(skb->data + length));
|
||||
+ dma_addr = dma_map_single(tx_info->dev, skb->data, length, DMA_TO_DEVICE);
|
||||
|
||||
total_len = length;
|
||||
|
||||
@@ -256,12 +253,7 @@ int syn_dp_tx_frag_list(struct syn_dp_in
|
||||
return NETDEV_TX_BUSY;
|
||||
}
|
||||
|
||||
- dma_addr = (dma_addr_t)virt_to_phys(skb->data);
|
||||
-
|
||||
- /*
|
||||
- * Flush the data area of the head skb
|
||||
- */
|
||||
- dmac_clean_range_no_dsb((void *)skb->data, (void *)(skb->data + length));
|
||||
+ dma_addr = dma_map_single(tx_info->dev, skb->data, length, DMA_TO_DEVICE);
|
||||
|
||||
total_len = length;
|
||||
|
||||
@@ -290,9 +282,7 @@ int syn_dp_tx_frag_list(struct syn_dp_in
|
||||
BUG_ON(!length);
|
||||
#endif
|
||||
|
||||
- dma_addr = (dma_addr_t)virt_to_phys(iter_skb->data);
|
||||
-
|
||||
- dmac_clean_range_no_dsb((void *)iter_skb->data, (void *)(iter_skb->data + length));
|
||||
+ dma_addr = dma_map_single(tx_info->dev, iter_skb->data, length, DMA_TO_DEVICE);
|
||||
|
||||
total_len += length;
|
||||
|
||||
@@ -445,6 +435,7 @@ int syn_dp_tx_complete(struct syn_dp_inf
|
||||
break;
|
||||
}
|
||||
|
||||
+ dma_unmap_single(tx_info->dev, desc->buffer1, desc->length, DMA_TO_DEVICE);
|
||||
|
||||
if (likely(status & DESC_TX_LAST)) {
|
||||
tx_skb_index = syn_dp_tx_comp_index_get(tx_info);
|
||||
@@ -571,9 +562,7 @@ int syn_dp_tx(struct syn_dp_info_tx *tx_
|
||||
return NETDEV_TX_BUSY;
|
||||
}
|
||||
|
||||
- dma_addr = (dma_addr_t)virt_to_phys(skb->data);
|
||||
-
|
||||
- dmac_clean_range_no_dsb((void *)skb->data, (void *)(skb->data + skb->len));
|
||||
+ dma_addr = dma_map_single(tx_info->dev, skb->data, skb->len, DMA_TO_DEVICE);
|
||||
|
||||
/*
|
||||
* Queue packet to the GMAC rings
|
||||
@ -0,0 +1,36 @@
|
||||
From ba430b1a512dc1972807a1dd5a8d31a78ac572ff Mon Sep 17 00:00:00 2001
|
||||
From: hzy <hzyitc@outlook.com>
|
||||
Date: Mon, 22 Apr 2024 21:49:18 +0800
|
||||
Subject: [PATCH 2/2] ipq50xx: use corrent scm function to write tcsr
|
||||
|
||||
Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
---
|
||||
hal/soc_ops/ipq50xx/nss_ipq50xx.c | 9 ++-------
|
||||
1 file changed, 2 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/hal/soc_ops/ipq50xx/nss_ipq50xx.c
|
||||
+++ b/hal/soc_ops/ipq50xx/nss_ipq50xx.c
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include <linux/of.h>
|
||||
#include <linux/ioport.h>
|
||||
-#include <linux/qcom_scm.h>
|
||||
+#include <linux/firmware/qcom/qcom_scm.h>
|
||||
#include "nss_dp_hal.h"
|
||||
|
||||
/*
|
||||
@@ -78,13 +78,8 @@ static void nss_dp_hal_tcsr_set(void)
|
||||
* If TZ is not enabled, we can write to the register directly.
|
||||
*/
|
||||
if (qcom_scm_is_available()) {
|
||||
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0))
|
||||
- err = qcom_scm_tcsr_reg_write((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
|
||||
+ err = qcom_scm_io_writel((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
|
||||
TCSR_GMAC_AXI_CACHE_OVERRIDE_VALUE);
|
||||
-#else
|
||||
- err = qti_scm_tcsr_reg_write((tcsr_base + TCSR_GMAC_AXI_CACHE_OVERRIDE_OFFSET),
|
||||
- TCSR_GMAC_AXI_CACHE_OVERRIDE_VALUE);
|
||||
-#endif
|
||||
if (err) {
|
||||
pr_err("%s: SCM TCSR write error: %d\n", __func__, err);
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
From 309a1a330ccaa103a7648e944d97a0032116b338 Mon Sep 17 00:00:00 2001
|
||||
From: hzy <hzyitc@outlook.com>
|
||||
Date: Mon, 22 Apr 2024 21:50:39 +0800
|
||||
Subject: [PATCH] nss_dp_main: support fixed-link
|
||||
|
||||
Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
---
|
||||
nss_dp_main.c | 15 ++++++++++++---
|
||||
1 file changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/nss_dp_main.c
|
||||
+++ b/nss_dp_main.c
|
||||
@@ -634,11 +634,20 @@ static int32_t nss_dp_of_get_pdata(struc
|
||||
}
|
||||
|
||||
dp_priv->phy_node = of_parse_phandle(np, "phy-handle", 0);
|
||||
- if (!dp_priv->phy_node) {
|
||||
- pr_err("%s: error parsing phy-handle\n", np->name);
|
||||
- return -EFAULT;
|
||||
+ if(!dp_priv->phy_node) {
|
||||
+ if(of_phy_is_fixed_link(np)) {
|
||||
+ int ret = of_phy_register_fixed_link(np);
|
||||
+ if(ret < 0) {
|
||||
+ pr_err("%s: fail to register fixed-link: %d\n", np->name, ret);
|
||||
+ return -EFAULT;
|
||||
+ }
|
||||
+ }
|
||||
+ dp_priv->phy_node = of_node_get(np);
|
||||
}
|
||||
|
||||
+ if(!dp_priv->phy_node)
|
||||
+ pr_err("%s: no phy-handle or fixed-link found\n", np->name);
|
||||
+
|
||||
if (of_property_read_u32(np, "qcom,mactype", &hal_pdata->mactype)) {
|
||||
pr_err("%s: error reading mactype\n", np->name);
|
||||
return -EFAULT;
|
||||
@ -61,7 +61,7 @@ ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq60xx")
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq50xx")
|
||||
MAKE_FLAGS+= CHIP_TYPE=CPPE
|
||||
MAKE_FLAGS+= CHIP_TYPE=MP IN_QCA808X_PHY=TRUE IN_MISC=TRUE IN_STP=TRUE IN_VSI=TRUE IN_FDB=TRUE
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From 27360a6255db0b68353f6df30b6feea1db7d8539 Mon Sep 17 00:00:00 2001
|
||||
From: hzy <hzyitc@outlook.com>
|
||||
Date: Mon, 22 Apr 2024 21:41:55 +0800
|
||||
Subject: [PATCH] init: replace ioremap_nocache() with ioremap()
|
||||
|
||||
Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
---
|
||||
src/init/ssdk_clk.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/src/init/ssdk_clk.c
|
||||
+++ b/src/init/ssdk_clk.c
|
||||
@@ -1183,7 +1183,7 @@ ssdk_mp_tcsr_get(a_uint32_t tcsr_offset,
|
||||
{
|
||||
void __iomem *tcsr_base = NULL;
|
||||
|
||||
- tcsr_base = ioremap_nocache(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
||||
+ tcsr_base = ioremap(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
||||
if (!tcsr_base)
|
||||
{
|
||||
SSDK_ERROR("Failed to map tcsr eth address!\n");
|
||||
@@ -1200,7 +1200,7 @@ ssdk_mp_tcsr_set(a_uint32_t tcsr_offset,
|
||||
{
|
||||
void __iomem *tcsr_base = NULL;
|
||||
|
||||
- tcsr_base = ioremap_nocache(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
||||
+ tcsr_base = ioremap(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
||||
if (!tcsr_base)
|
||||
{
|
||||
SSDK_ERROR("Failed to map tcsr eth address!\n");
|
||||
@@ -1248,7 +1248,7 @@ ssdk_mp_cmnblk_stable_check(void)
|
||||
a_uint32_t reg_val;
|
||||
int i, loops = 20;
|
||||
|
||||
- pll_lock = ioremap_nocache(CMN_PLL_LOCKED_ADDR, CMN_PLL_LOCKED_SIZE);
|
||||
+ pll_lock = ioremap(CMN_PLL_LOCKED_ADDR, CMN_PLL_LOCKED_SIZE);
|
||||
if (!pll_lock) {
|
||||
SSDK_ERROR("Failed to map CMN PLL LOCK register!\n");
|
||||
return A_FALSE;
|
||||
@@ -1305,7 +1305,7 @@ static void ssdk_cmnblk_pll_src_set(enum
|
||||
void __iomem *cmn_pll_src_base = NULL;
|
||||
a_uint32_t reg_val;
|
||||
|
||||
- cmn_pll_src_base = ioremap_nocache(CMN_BLK_PLL_SRC_ADDR, CMN_BLK_SIZE);
|
||||
+ cmn_pll_src_base = ioremap(CMN_BLK_PLL_SRC_ADDR, CMN_BLK_SIZE);
|
||||
if (!cmn_pll_src_base) {
|
||||
SSDK_ERROR("Failed to map cmn pll source address!\n");
|
||||
return;
|
||||
@ -0,0 +1,71 @@
|
||||
From 72de3ee900c0d807962e4d49e92bc99c759664fb Mon Sep 17 00:00:00 2001
|
||||
From: JiaY-shi <shi05275@163.com>
|
||||
Date: Thu, 23 May 2024 15:57:33 +0800
|
||||
Subject: [PATCH] sw_error_t: add SW_FALSE & SW_TRUE
|
||||
|
||||
---
|
||||
include/common/sw_error.h | 2 ++
|
||||
src/adpt/mp/adpt_mp_portctrl.c | 12 ++++++------
|
||||
2 files changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
--- a/include/common/sw_error.h
|
||||
+++ b/include/common/sw_error.h
|
||||
@@ -22,6 +22,8 @@ extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef enum {
|
||||
+ SW_TRUE = 1,
|
||||
+ SW_FALSE = 0,
|
||||
SW_OK = 0, /* Operation succeeded */
|
||||
SW_FAIL = -1, /* Operation failed */
|
||||
SW_BAD_VALUE = -2, /* Illegal value */
|
||||
--- a/src/adpt/mp/adpt_mp_portctrl.c
|
||||
+++ b/src/adpt/mp/adpt_mp_portctrl.c
|
||||
@@ -42,7 +42,7 @@ _adpt_mp_gcc_mac_clock_set(a_uint32_t de
|
||||
return rv;
|
||||
}
|
||||
|
||||
-static a_bool_t
|
||||
+static sw_error_t
|
||||
_adpt_mp_port_phy_connected (a_uint32_t dev_id, fal_port_t port_id)
|
||||
{
|
||||
ADPT_DEV_ID_CHECK(dev_id);
|
||||
@@ -50,9 +50,9 @@ _adpt_mp_port_phy_connected (a_uint32_t
|
||||
/* force port which connect s17c or other device chip*/
|
||||
if (hsl_port_feature_get(dev_id, port_id, PHY_F_FORCE | PHY_F_SFP)) {
|
||||
SSDK_DEBUG("port_id %d did not connect PHY!\n", port_id);
|
||||
- return A_FALSE;
|
||||
+ return SW_FALSE;
|
||||
} else {
|
||||
- return A_TRUE;
|
||||
+ return SW_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ adpt_mp_port_txfc_status_set(a_uint32_t
|
||||
a_bool_t force_mode = A_FALSE;
|
||||
a_uint32_t phy_addr = 0;
|
||||
|
||||
- if(A_FALSE == _adpt_mp_port_phy_connected (dev_id, port_id))
|
||||
+ if(SW_FALSE == _adpt_mp_port_phy_connected (dev_id, port_id))
|
||||
{
|
||||
rv = _adpt_mp_port_txfc_status_set(dev_id, port_id, enable);
|
||||
SW_RTN_ON_ERROR(rv);
|
||||
@@ -423,7 +423,7 @@ adpt_mp_port_rxfc_status_set(a_uint32_t
|
||||
a_bool_t force_mode = A_FALSE;
|
||||
a_uint32_t phy_addr = 0;
|
||||
|
||||
- if(A_FALSE == _adpt_mp_port_phy_connected (dev_id, port_id))
|
||||
+ if(SW_FALSE == _adpt_mp_port_phy_connected (dev_id, port_id))
|
||||
{
|
||||
rv = _adpt_mp_port_rxfc_status_set(dev_id, port_id, enable);
|
||||
SW_RTN_ON_ERROR(rv);
|
||||
@@ -1253,7 +1253,7 @@ adpt_mp_port_phy_status_get(a_uint32_t d
|
||||
return SW_BAD_PARAM;
|
||||
}
|
||||
|
||||
- if(_adpt_mp_port_phy_connected(dev_id, port_id) == A_FALSE)
|
||||
+ if(_adpt_mp_port_phy_connected(dev_id, port_id) == SW_FALSE)
|
||||
{
|
||||
if(hsl_port_feature_get(dev_id, port_id, PHY_F_FORCE))
|
||||
{
|
||||
@ -83,8 +83,8 @@ CONFIG_CPUFREQ_DT=y
|
||||
CONFIG_CPUFREQ_DT_PLATDEV=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
|
||||
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
||||
CONFIG_CPU_FREQ_GOV_COMMON=y
|
||||
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
|
||||
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
|
||||
@ -124,15 +124,6 @@ CONFIG_CRYPTO_CRCT10DIF=y
|
||||
CONFIG_CRYPTO_CRYPTD=y
|
||||
CONFIG_CRYPTO_CURVE25519=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
# CONFIG_CRYPTO_DEV_QCE is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_AEAD is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_ENABLE_AEAD is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_SHA is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_SKCIPHER is not set
|
||||
# CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN is not set
|
||||
CONFIG_CRYPTO_DEV_QCOM_RNG=y
|
||||
CONFIG_CRYPTO_DH=y
|
||||
CONFIG_CRYPTO_DH_RFC7919_GROUPS=y
|
||||
@ -285,10 +276,8 @@ CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_MULTI_IRQ_HANDLER=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
# CONFIG_KPSS_XCC is not set
|
||||
CONFIG_LEDS_TLC591XX=y
|
||||
CONFIG_LIBFDT=y
|
||||
@ -349,10 +338,9 @@ CONFIG_NET_SELFTESTS=y
|
||||
CONFIG_NET_SWITCHDEV=y
|
||||
CONFIG_NET_XGRESS=y
|
||||
CONFIG_NLS=y
|
||||
CONFIG_HZ_FIXED=0
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_NO_HZ_COMMON=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_NR_CPUS=4
|
||||
CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y
|
||||
CONFIG_NVMEM=y
|
||||
@ -454,6 +442,8 @@ CONFIG_POWER_RESET=y
|
||||
# CONFIG_POWER_RESET_MSM is not set
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_PREEMPTION=y
|
||||
CONFIG_PREEMPT_BUILD=y
|
||||
CONFIG_PREEMPT_COUNT=y
|
||||
# CONFIG_PREEMPT_NONE is not set
|
||||
CONFIG_PREEMPT_RCU=y
|
||||
@ -489,6 +479,7 @@ CONFIG_QCOM_NET_PHYLIB=y
|
||||
CONFIG_QCOM_PIL_INFO=y
|
||||
# CONFIG_QCOM_Q6V5_ADSP is not set
|
||||
CONFIG_QCOM_Q6V5_COMMON=y
|
||||
# CONFIG_QCOM_Q6V5_MPD is not set
|
||||
# CONFIG_QCOM_Q6V5_MSS is not set
|
||||
# CONFIG_QCOM_Q6V5_PAS is not set
|
||||
CONFIG_QCOM_Q6V5_WCSS=y
|
||||
@ -585,11 +576,10 @@ CONFIG_SERIAL_MSM=y
|
||||
CONFIG_SERIAL_MSM_CONSOLE=y
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_SG_POOL=y
|
||||
# CONFIG_ALLOC_SKB_PAGE_FRAG_DISABLE is not set
|
||||
# CONFIG_DEBUG_OBJECTS_SKBUFF is not set
|
||||
CONFIG_SKB_RECYCLER=y
|
||||
CONFIG_SKB_RECYCLER_MULTI_CPU=y
|
||||
# CONFIG_SKB_FAST_RECYCLABLE_DEBUG_ENABLE is not set
|
||||
# CONFIG_SKB_RECYCLER_PREALLOC is not set
|
||||
CONFIG_SKB_RECYCLE_SIZE=2304
|
||||
CONFIG_SMP=y
|
||||
# CONFIG_SM_CAMCC_6350 is not set
|
||||
# CONFIG_SM_CAMCC_8450 is not set
|
||||
|
||||
@ -3,6 +3,9 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "ipq5018.dtsi"
|
||||
#include "ipq5018-nss.dtsi"
|
||||
#include "ipq5018-ess.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
|
||||
@ -3,6 +3,9 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "ipq5018.dtsi"
|
||||
#include "ipq5018-nss.dtsi"
|
||||
#include "ipq5018-ess.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
|
||||
@ -0,0 +1,120 @@
|
||||
#include <dt-bindings/net/qcom-ipq-ess.h>
|
||||
|
||||
&soc {
|
||||
ess_instance: ess-instance {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
num_devices = <1>;
|
||||
|
||||
switch: ess-switch@39c00000 {
|
||||
compatible = "qcom,ess-switch-ipq50xx";
|
||||
device_id = <0>;
|
||||
reg = <0x39c00000 0x200000>;
|
||||
switch_access_mode = "local bus";
|
||||
clocks = <&gcc GCC_CMN_BLK_AHB_CLK>,
|
||||
<&gcc GCC_CMN_BLK_SYS_CLK>,
|
||||
<&gcc GCC_UNIPHY_AHB_CLK>,
|
||||
<&gcc GCC_UNIPHY_SYS_CLK>,
|
||||
<&gcc GCC_MDIO0_AHB_CLK>,
|
||||
<&gcc GCC_MDIO1_AHB_CLK>,
|
||||
<&gcc GCC_GMAC0_CFG_CLK>,
|
||||
<&gcc GCC_GMAC0_SYS_CLK>,
|
||||
<&gcc GCC_GMAC1_CFG_CLK>,
|
||||
<&gcc GCC_GMAC1_SYS_CLK>,
|
||||
<&gcc GCC_GEPHY_RX_CLK>,
|
||||
<&gcc GCC_GEPHY_TX_CLK>,
|
||||
<&gcc GCC_UNIPHY_RX_CLK>,
|
||||
<&gcc GCC_UNIPHY_TX_CLK>,
|
||||
<&gcc GCC_GMAC0_RX_CLK>,
|
||||
<&gcc GCC_GMAC0_TX_CLK>,
|
||||
<&gcc GCC_GMAC1_RX_CLK>,
|
||||
<&gcc GCC_GMAC1_TX_CLK>,
|
||||
<&gcc GCC_SNOC_GMAC0_AHB_CLK>,
|
||||
<&gcc GCC_SNOC_GMAC1_AHB_CLK>,
|
||||
<&gcc GCC_GMAC0_PTP_CLK>,
|
||||
<&gcc GCC_GMAC1_PTP_CLK>;
|
||||
clock-names = "cmn_ahb_clk",
|
||||
"cmn_sys_clk",
|
||||
"uniphy_ahb_clk",
|
||||
"uniphy_sys_clk",
|
||||
"gcc_mdio0_ahb_clk",
|
||||
"gcc_mdio1_ahb_clk",
|
||||
"gcc_gmac0_cfg_clk",
|
||||
"gcc_gmac0_sys_clk",
|
||||
"gcc_gmac1_cfg_clk",
|
||||
"gcc_gmac1_sys_clk",
|
||||
"uniphy0_port1_rx_clk",
|
||||
"uniphy0_port1_tx_clk",
|
||||
"uniphy1_port5_rx_clk",
|
||||
"uniphy1_port5_tx_clk",
|
||||
"nss_port1_rx_clk",
|
||||
"nss_port1_tx_clk",
|
||||
"nss_port2_rx_clk",
|
||||
"nss_port2_tx_clk",
|
||||
"gcc_snoc_gmac0_ahb_clk",
|
||||
"gcc_snoc_gmac1_ahb_clk",
|
||||
"gcc_gmac0_ptp_clk",
|
||||
"gcc_gmac1_ptp_clk";
|
||||
resets = <&gcc GCC_GEPHY_BCR>,
|
||||
<&gcc GCC_UNIPHY_BCR>,
|
||||
<&gcc GCC_GMAC0_BCR>,
|
||||
<&gcc GCC_GMAC1_BCR>,
|
||||
<&gcc GCC_UNIPHY_SOFT_RESET>,
|
||||
<&gcc GCC_GEPHY_MISC_ARES>;
|
||||
reset-names = "gephy_bcr_rst",
|
||||
"uniphy_bcr_rst",
|
||||
"gmac0_bcr_rst",
|
||||
"gmac1_bcr_rst",
|
||||
"uniphy1_soft_rst",
|
||||
"gephy_misc_rst";
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
ess-uniphy@98000 {
|
||||
compatible = "qcom,ess-uniphy";
|
||||
reg = <0x98000 0x800>;
|
||||
uniphy_access_mode = "local bus";
|
||||
};
|
||||
|
||||
nss-dp-common {
|
||||
compatible = "qcom,nss-dp-common";
|
||||
qcom,tcsr-base = <0x01937000>;
|
||||
};
|
||||
};
|
||||
|
||||
dp1: dp1 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <1>;
|
||||
|
||||
reg = <0x39C00000 0x10000>;
|
||||
interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>;
|
||||
clock-names = "nss-snoc-gmac-axi-clk";
|
||||
|
||||
qcom,mactype = <2>; /* GMAC_HAL_TYPE_SYN_GMAC */
|
||||
local-mac-address = [000000000000];
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&ge_phy>;
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dp2: dp2 {
|
||||
device_type = "network";
|
||||
compatible = "qcom,nss-dp";
|
||||
qcom,id = <2>;
|
||||
|
||||
|
||||
reg = <0x39D00000 0x10000>;
|
||||
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>;
|
||||
clock-names = "nss-snoc-gmac-axi-clk";
|
||||
|
||||
qcom,mactype = <2>; /* GMAC_HAL_TYPE_SYN_GMAC */
|
||||
local-mac-address = [000000000000];
|
||||
phy-mode = "sgmii";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
@ -0,0 +1,133 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
/ {
|
||||
nss_dummy_reg: nss-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "nss-reg";
|
||||
regulator-min-microvolt = <848000>;
|
||||
regulator-max-microvolt = <848000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&soc {
|
||||
nss-common {
|
||||
compatible = "qcom,nss-common";
|
||||
reg = <0x01868010 0x1000>;
|
||||
reg-names = "nss-misc-reset";
|
||||
memory-region = <&nss_region>;
|
||||
};
|
||||
|
||||
|
||||
nss0: nss@40000000 {
|
||||
compatible = "qcom,nss";
|
||||
interrupts = <0 402 0x1>, <0 401 0x1>, <0 400 0x1>,
|
||||
<0 399 0x1>, <0 398 0x1>, <0 397 0x1>,
|
||||
<0 396 0x1>, <0 395 0x1>;
|
||||
reg = <0x07a00000 0x100>, <0x0b111000 0x1000>;
|
||||
reg-names = "nphys", "qgic-phys";
|
||||
clocks = <&gcc GCC_UBI0_CFG_CLK>,
|
||||
<&gcc GCC_UBI0_DBG_CLK>,
|
||||
<&gcc GCC_UBI0_CORE_CLK>,
|
||||
<&gcc GCC_UBI0_UTCM_CLK>,
|
||||
<&gcc GCC_UBI0_AXI_CLK>,
|
||||
<&gcc GCC_SNOC_UBI0_AXI_CLK>,
|
||||
<&gcc GCC_UBI0_NC_AXI_CLK>;
|
||||
clock-names = "nss-cfg-clk", "nss-dbg-clk",
|
||||
"nss-core-clk", "nss-utcm-clk",
|
||||
"nss-axi-clk",
|
||||
"nss-snoc-axi-clk",
|
||||
"nss-nc-axi-clk";
|
||||
qcom,id = <0>;
|
||||
qcom,num-queue = <4>;
|
||||
qcom,num-irq = <8>;
|
||||
qcom,num-pri = <4>;
|
||||
qcom,load-addr = <0x40000000>;
|
||||
qcom,low-frequency = <850000000>;
|
||||
qcom,mid-frequency = <850000000>;
|
||||
qcom,max-frequency = <1000000000>;
|
||||
qcom,ipv4-enabled;
|
||||
qcom,ipv4-reasm-enabled;
|
||||
qcom,ipv6-enabled;
|
||||
qcom,ipv6-reasm-enabled;
|
||||
qcom,tun6rd-enabled;
|
||||
qcom,l2tpv2-enabled;
|
||||
qcom,gre-enabled;
|
||||
qcom,map-t-enabled;
|
||||
qcom,pppoe-enabled;
|
||||
qcom,pptp-enabled;
|
||||
qcom,tunipip6-enabled;
|
||||
qcom,shaping-enabled;
|
||||
qcom,clmap-enabled;
|
||||
qcom,vxlan-enabled;
|
||||
qcom,match-enabled;
|
||||
qcom,mirror-enabled;
|
||||
qcom,crypto-enabled;
|
||||
qcom,ipsec-enabled;
|
||||
qcom,wlanredirect-enabled;
|
||||
qcom,gre-redir-enabled;
|
||||
qcom,gre-redir-mark-enabled;
|
||||
qcom,portid-enabled;
|
||||
qcom,wlan-dataplane-offload-enabled;
|
||||
qcom,pvxlan-enabled;
|
||||
qcom,udp-st-enabled;
|
||||
};
|
||||
|
||||
|
||||
nss_crypto: qcom,nss_crypto {
|
||||
compatible = "qcom,nss-crypto";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
qcom,max-contexts = <64>;
|
||||
qcom,max-context-size = <144>;
|
||||
ranges;
|
||||
ce5_node {
|
||||
compatible = "qcom,ce5";
|
||||
reg-names = "crypto_pbase", "bam_base";
|
||||
reg = <0x0073a000 0x6000>,
|
||||
<0x00704000 0x20000>;
|
||||
qcom,dma-mask = <0x0c>;
|
||||
qcom,transform-enabled;
|
||||
qcom,aes128-cbc;
|
||||
qcom,aes256-cbc;
|
||||
qcom,aes128-ctr;
|
||||
qcom,aes256-ctr;
|
||||
qcom,aes128-ecb;
|
||||
qcom,aes256-ecb;
|
||||
qcom,3des-cbc;
|
||||
qcom,sha160-hash;
|
||||
qcom,sha256-hash;
|
||||
qcom,sha160-hmac;
|
||||
qcom,sha256-hmac;
|
||||
qcom,aes128-cbc-sha160-hmac;
|
||||
qcom,aes256-cbc-sha160-hmac;
|
||||
qcom,aes128-ctr-sha160-hmac;
|
||||
qcom,aes256-ctr-sha160-hmac;
|
||||
qcom,3des-cbc-sha160-hmac;
|
||||
qcom,3des-cbc-sha256-hmac;
|
||||
qcom,aes128-cbc-sha256-hmac;
|
||||
qcom,aes256-cbc-sha256-hmac;
|
||||
qcom,aes128-ctr-sha256-hmac;
|
||||
qcom,aes256-ctr-sha256-hmac;
|
||||
engine0 {
|
||||
qcom,ee = <2 3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nss-macsec0 {
|
||||
compatible = "qcom,nss-macsec";
|
||||
mdiobus = <&mdio>;
|
||||
phy_addr = <0x18>;
|
||||
phy_access_mode = <0x00>;
|
||||
};
|
||||
|
||||
nss-macsec1 {
|
||||
compatible = "qcom,nss-macsec";
|
||||
mdiobus = <&mdio>;
|
||||
phy_addr = <0x1c>;
|
||||
phy_access_mode = <0x00>;
|
||||
};
|
||||
|
||||
};
|
||||
@ -1,73 +1,16 @@
|
||||
# CONFIG_32BIT is not set
|
||||
CONFIG_64BIT=y
|
||||
# CONFIG_ACPI is not set
|
||||
# CONFIG_ARCH_BCM_IPROC is not set
|
||||
# CONFIG_ARCH_EXYNOS7 is not set
|
||||
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
|
||||
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
# CONFIG_ARCH_LAYERSCAPE is not set
|
||||
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
|
||||
# CONFIG_ARCH_SEATTLE is not set
|
||||
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
|
||||
CONFIG_ARCH_SPARSEMEM_ENABLE=y
|
||||
# CONFIG_ARCH_SPRD is not set
|
||||
# CONFIG_ARCH_STRATIX10 is not set
|
||||
# CONFIG_ARCH_THUNDER is not set
|
||||
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
|
||||
CONFIG_ARCH_WANT_FRAME_POINTERS=y
|
||||
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
|
||||
# CONFIG_ARCH_XGENE is not set
|
||||
# CONFIG_ARCH_ZYNQMP is not set
|
||||
CONFIG_ARM64=y
|
||||
# CONFIG_ARM64_16K_PAGES is not set
|
||||
CONFIG_ARM64_4K_PAGES=y
|
||||
# CONFIG_ARM64_64K_PAGES is not set
|
||||
# CONFIG_ARM64_CRYPTO is not set
|
||||
# CONFIG_ARM64_ERRATUM_819472 is not set
|
||||
# CONFIG_ARM64_ERRATUM_824069 is not set
|
||||
# CONFIG_ARM64_ERRATUM_826319 is not set
|
||||
# CONFIG_ARM64_ERRATUM_827319 is not set
|
||||
# CONFIG_ARM64_ERRATUM_832075 is not set
|
||||
# CONFIG_ARM64_ERRATUM_843419 is not set
|
||||
# CONFIG_ARM64_ERRATUM_845719 is not set
|
||||
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
|
||||
CONFIG_ARM64_HW_AFDBM=y
|
||||
# CONFIG_ARM64_LSE_ATOMICS is not set
|
||||
CONFIG_ARM64_PAN=y
|
||||
# CONFIG_ARM64_PTDUMP is not set
|
||||
# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
|
||||
CONFIG_ARM64_VA_BITS=39
|
||||
CONFIG_ARM64_VA_BITS_39=y
|
||||
# CONFIG_ARM64_VA_BITS_48 is not set
|
||||
# CONFIG_ARMV8_DEPRECATED is not set
|
||||
# CONFIG_CAVIUM_ERRATUM_22375 is not set
|
||||
# CONFIG_CAVIUM_ERRATUM_23154 is not set
|
||||
# CONFIG_CAVIUM_ERRATUM_27456 is not set
|
||||
# CONFIG_COMMON_CLK_VERSATILE is not set
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
CONFIG_COMPAT=y
|
||||
# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set
|
||||
CONFIG_COMPAT_BINFMT_ELF=y
|
||||
CONFIG_COMPAT_OLD_SIGACTION=y
|
||||
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
|
||||
# CONFIG_DEBUG_ALIGN_RODATA is not set
|
||||
CONFIG_FRAME_WARN=2048
|
||||
# CONFIG_GPIO_XGENE is not set
|
||||
# CONFIG_HUGETLBFS is not set
|
||||
CONFIG_IPQ_APSS_5018=y
|
||||
# CONFIG_I2C_CADENCE is not set
|
||||
# CONFIG_KASAN is not set
|
||||
# CONFIG_CRYPTO_MANAGER_EXTRA_TESTS is not set
|
||||
CONFIG_CRYPTO_SIG2=y
|
||||
# CONFIG_KVM is not set
|
||||
# CONFIG_NET_VENDOR_CAVIUM is not set
|
||||
# CONFIG_PCI_HISI is not set
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
# CONFIG_PHY_XGENE is not set
|
||||
# CONFIG_POWER_RESET_XGENE is not set
|
||||
CONFIG_QCOM_SCM_64=y
|
||||
# CONFIG_RTC_DRV_EFI is not set
|
||||
CONFIG_SPARSEMEM=y
|
||||
CONFIG_SPARSEMEM_EXTREME=y
|
||||
CONFIG_SPARSEMEM_MANUAL=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_SYSVIPC_COMPAT=y
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
|
||||
CONFIG_ZONE_DMA32=y
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
From 92dab9ea5f389c12828283146c60054642453a91 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Marko <robimarko@gmail.com>
|
||||
Date: Wed, 16 Aug 2023 18:45:38 +0200
|
||||
Subject: [PATCH 1/4] dt-bindings: firmware: qcom,scm: support indicating SDI
|
||||
default state
|
||||
|
||||
IPQ5018 has SDI (Secure Debug Image) enabled by TZ by default, and that
|
||||
means that WDT being asserted or just trying to reboot will hang the board
|
||||
in the debug mode and only pulling the power and repowering will help.
|
||||
Some IPQ4019 boards like Google WiFI have it enabled as well.
|
||||
|
||||
So, lets add a boolean property to indicate that SDI is enabled by default
|
||||
and thus needs to be disabled by the kernel.
|
||||
|
||||
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
Acked-by: Mukesh Ojha <quic_mojha@quicinc.com>
|
||||
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Reviewed-by: Brian Norris <computersforpeace@gmail.com>
|
||||
Link: https://lore.kernel.org/r/20230816164641.3371878-1-robimarko@gmail.com
|
||||
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
---
|
||||
Documentation/devicetree/bindings/firmware/qcom,scm.yaml | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
|
||||
index 0c073335..cb706145 100644
|
||||
--- a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
|
||||
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
|
||||
@@ -90,6 +90,14 @@ properties:
|
||||
protocol to handle sleeping SCM calls.
|
||||
maxItems: 1
|
||||
|
||||
+ qcom,sdi-enabled:
|
||||
+ description:
|
||||
+ Indicates that the SDI (Secure Debug Image) has been enabled by TZ
|
||||
+ by default and it needs to be disabled.
|
||||
+ If not disabled WDT assertion or reboot will cause the board to hang
|
||||
+ in the debug mode.
|
||||
+ type: boolean
|
||||
+
|
||||
qcom,dload-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
items:
|
||||
--
|
||||
2.40.1
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
From f6aa7386bc40b552eea8ec1b1d2168afe3b31110 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Marko <robimarko@gmail.com>
|
||||
Date: Wed, 16 Aug 2023 18:45:40 +0200
|
||||
Subject: [PATCH 3/4] dt-bindings: firmware: qcom,scm: document IPQ5018
|
||||
compatible
|
||||
|
||||
It seems that IPQ5018 compatible was never documented in the bindings.
|
||||
|
||||
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
||||
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Link: https://lore.kernel.org/r/20230816164641.3371878-3-robimarko@gmail.com
|
||||
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
---
|
||||
Documentation/devicetree/bindings/firmware/qcom,scm.yaml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
|
||||
index cb706145..0613a37a 100644
|
||||
--- a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
|
||||
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
|
||||
@@ -24,6 +24,7 @@ properties:
|
||||
- qcom,scm-apq8064
|
||||
- qcom,scm-apq8084
|
||||
- qcom,scm-ipq4019
|
||||
+ - qcom,scm-ipq5018
|
||||
- qcom,scm-ipq5332
|
||||
- qcom,scm-ipq6018
|
||||
- qcom,scm-ipq806x
|
||||
--
|
||||
2.40.1
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
From 79796e87215db9587d6c66ec6f6781e091bc6464 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Marko <robimarko@gmail.com>
|
||||
Date: Wed, 16 Aug 2023 18:45:41 +0200
|
||||
Subject: arm64: dts: qcom: ipq5018: indicate that SDI should be disabled
|
||||
Subject: [PATCH 4/4] arm64: dts: qcom: ipq5018: indicate that SDI should be
|
||||
disabled
|
||||
|
||||
Now that SCM has support for indicating that SDI has been enabled by
|
||||
default, lets set the property so SCM disables it during probing.
|
||||
@ -13,9 +14,11 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
index 288758c9..38ffdc3c 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
@@ -57,6 +57,7 @@
|
||||
@@ -57,6 +57,7 @@ L2_0: l2-cache {
|
||||
firmware {
|
||||
scm {
|
||||
compatible = "qcom,scm-ipq5018", "qcom,scm";
|
||||
@ -23,3 +26,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
2.40.1
|
||||
|
||||
@ -8,11 +8,13 @@ Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
index bd0198aa..ff537e32 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
@@ -107,6 +107,26 @@
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -94,6 +94,26 @@ soc: soc@0 {
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0 0 0xffffffff>;
|
||||
|
||||
+ mdio0: mdio@88000 {
|
||||
+ #address-cells = <1>;
|
||||
@ -37,3 +39,6 @@ Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
tlmm: pinctrl@1000000 {
|
||||
compatible = "qcom,ipq5018-tlmm";
|
||||
reg = <0x01000000 0x300000>;
|
||||
--
|
||||
2.40.1
|
||||
|
||||
|
||||
@ -8,9 +8,11 @@ Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
arch/arm64/boot/dts/qcom/ipq5018.dtsi | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/qcom/ipq5018.dtsi b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
index ff537e32..32bef8ab 100644
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi
|
||||
@@ -115,6 +115,10 @@
|
||||
@@ -102,6 +102,10 @@ mdio0: mdio@88000 {
|
||||
clocks = <&gcc GCC_MDIO0_AHB_CLK>;
|
||||
clock-names = "gcc_mdio_ahb_clk";
|
||||
status = "disabled";
|
||||
@ -21,3 +23,6 @@ Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
};
|
||||
|
||||
mdio1: mdio@90000 {
|
||||
--
|
||||
2.40.1
|
||||
|
||||
|
||||
@ -10,9 +10,11 @@ Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
drivers/net/dsa/qca/qca8k-8xxx.c | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/dsa/qca/qca8k-8xxx.c b/drivers/net/dsa/qca/qca8k-8xxx.c
|
||||
index 052fc673..c76c11a7 100644
|
||||
--- a/drivers/net/dsa/qca/qca8k-8xxx.c
|
||||
+++ b/drivers/net/dsa/qca/qca8k-8xxx.c
|
||||
@@ -1545,11 +1545,10 @@ static int qca8k_pcs_config(struct phyli
|
||||
@@ -1545,11 +1545,10 @@ static int qca8k_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -28,3 +30,6 @@ Signed-off-by: hzy <hzyitc@outlook.com>
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
--
|
||||
2.40.1
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user