[U-Boot] [U-boot] [Patch 2/4] keystone2: keystone_nav: don't use hard addresses in netcp_pktdma

Ivan Khoronzhuk ivan.khoronzhuk at ti.com
Thu Aug 28 20:52:04 CEST 2014


Use definitions in netcp_pktdma instead direct addresses.
The definitions can be set specifically for SoC, so there
is no reason to check SoC type while initialization.

Acked-by: Vitaly Andrianov <vitalya at ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk at ti.com>
---
 arch/arm/cpu/armv7/keystone/keystone_nav.c         | 39 ++++++++--------------
 arch/arm/include/asm/arch-keystone/hardware-k2hk.h | 13 ++++++++
 arch/arm/include/asm/arch-keystone/keystone_nav.h  |  4 ---
 3 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/arch/arm/cpu/armv7/keystone/keystone_nav.c b/arch/arm/cpu/armv7/keystone/keystone_nav.c
index 5219f84..46483b1 100644
--- a/arch/arm/cpu/armv7/keystone/keystone_nav.c
+++ b/arch/arm/cpu/armv7/keystone/keystone_nav.c
@@ -10,11 +10,6 @@
 #include <asm/io.h>
 #include <asm/arch/keystone_nav.h>
 
-static int soc_type =
-#ifdef CONFIG_SOC_K2HK
-	k2hk;
-#endif
-
 struct qm_config qm_memmap = {
 	.stat_cfg	= KS2_QM_QUEUE_STATUS_BASE,
 	.queue		= (void *)KS2_QM_MANAGER_QUEUES_BASE,
@@ -158,22 +153,21 @@ void queue_close(u32 qnum)
 		;
 }
 
-/*
+/**
  * DMA API
  */
-
-struct pktdma_cfg k2hk_netcp_pktdma = {
-	.global		= (struct global_ctl_regs *)0x02004000,
-	.tx_ch		= (struct tx_chan_regs *)0x02004400,
-	.tx_ch_num	= 9,
-	.rx_ch		= (struct rx_chan_regs *)0x02004800,
-	.rx_ch_num	= 26,
-	.tx_sched	= (u32 *)0x02004c00,
-	.rx_flows	= (struct rx_flow_regs *)0x02005000,
-	.rx_flow_num	= 32,
-	.rx_free_q	= 4001,
-	.rx_rcv_q	= 4002,
-	.tx_snd_q	= 648,
+struct pktdma_cfg netcp_pktdma = {
+	.global		= (void *)KS2_NETCP_PDMA_CTRL_BASE,
+	.tx_ch		= (void *)KS2_NETCP_PDMA_TX_BASE,
+	.tx_ch_num	= KS2_NETCP_PDMA_TX_CH_NUM,
+	.rx_ch		= (void *)KS2_NETCP_PDMA_RX_BASE,
+	.rx_ch_num	= KS2_NETCP_PDMA_RX_CH_NUM,
+	.tx_sched	= (u32 *)KS2_NETCP_PDMA_SCHED_BASE,
+	.rx_flows	= (void *)KS2_NETCP_PDMA_RX_FLOW_BASE,
+	.rx_flow_num	= KS2_NETCP_PDMA_RX_FLOW_NUM,
+	.rx_free_q	= KS2_NETCP_PDMA_RX_FREE_QUEUE,
+	.rx_rcv_q	= KS2_NETCP_PDMA_RX_RCV_QUEUE,
+	.tx_snd_q	= KS2_NETCP_PDMA_TX_SND_QUEUE,
 };
 
 struct pktdma_cfg *netcp;
@@ -300,12 +294,7 @@ static int _netcp_init(struct pktdma_cfg *netcp_cfg,
 
 int netcp_init(struct rx_buff_desc *rx_buffers)
 {
-	switch (soc_type) {
-	case k2hk:
-		_netcp_init(&k2hk_netcp_pktdma, rx_buffers);
-		return QM_OK;
-	}
-	return QM_ERR;
+	return _netcp_init(&netcp_pktdma, rx_buffers);
 }
 
 int netcp_close(void)
diff --git a/arch/arm/include/asm/arch-keystone/hardware-k2hk.h b/arch/arm/include/asm/arch-keystone/hardware-k2hk.h
index eb132f7..43c2c42 100644
--- a/arch/arm/include/asm/arch-keystone/hardware-k2hk.h
+++ b/arch/arm/include/asm/arch-keystone/hardware-k2hk.h
@@ -84,4 +84,17 @@
 /* Number of DSP cores */
 #define KS2_NUM_DSPS			8
 
+/* NETCP pktdma */
+#define KS2_NETCP_PDMA_CTRL_BASE	0x02004000
+#define KS2_NETCP_PDMA_TX_BASE		0x02004400
+#define KS2_NETCP_PDMA_TX_CH_NUM	9
+#define KS2_NETCP_PDMA_RX_BASE		0x02004800
+#define KS2_NETCP_PDMA_RX_CH_NUM	26
+#define KS2_NETCP_PDMA_SCHED_BASE	0x02004c00
+#define KS2_NETCP_PDMA_RX_FLOW_BASE	0x02005000
+#define KS2_NETCP_PDMA_RX_FLOW_NUM	32
+#define KS2_NETCP_PDMA_RX_FREE_QUEUE	4001
+#define KS2_NETCP_PDMA_RX_RCV_QUEUE	4002
+#define KS2_NETCP_PDMA_TX_SND_QUEUE	648
+
 #endif /* __ASM_ARCH_HARDWARE_H */
diff --git a/arch/arm/include/asm/arch-keystone/keystone_nav.h b/arch/arm/include/asm/arch-keystone/keystone_nav.h
index ab81eaf..646c2f3 100644
--- a/arch/arm/include/asm/arch-keystone/keystone_nav.h
+++ b/arch/arm/include/asm/arch-keystone/keystone_nav.h
@@ -13,10 +13,6 @@
 #include <asm/arch/hardware.h>
 #include <asm/io.h>
 
-enum soc_type_t {
-	k2hk
-};
-
 #define QM_OK                    0
 #define QM_ERR                  -1
 #define QM_DESC_TYPE_HOST        0
-- 
1.8.3.2



More information about the U-Boot mailing list