Init RX/TX ping pong directly from board not in the driver.
Signed-off-by: Michal Simek mon...@monstr.eu
---
v2: Fix merge confict - no function change
---
.../xilinx/microblaze-generic/microblaze-generic.c | 18 --
drivers/net/xilinx_emaclite.c | 11 ---
include/netdev.h |3 ++-
3 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c
b/board/xilinx/microblaze-generic/microblaze-generic.c
index 183e4dc..9b2952f 100644
--- a/board/xilinx/microblaze-generic/microblaze-generic.c
+++ b/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -71,12 +71,18 @@ int fsl_init2 (void) {
int board_eth_init(bd_t *bis)
{
- /*
-* This board either has PCI NICs or uses the CPU's TSECs
-* pci_eth_init() will return 0 if no NICs found, so in that case
-* returning -1 will force cpu_eth_init() to be called.
-*/
+ int ret = 0;
#ifdef CONFIG_XILINX_EMACLITE
- return xilinx_emaclite_initialize(bis, XILINX_EMACLITE_BASEADDR);
+ u32 txpp = 0;
+ u32 rxpp = 0;
+# ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
+ txpp = 1;
+# endif
+# ifdef CONFIG_XILINX_EMACLITE_RX_PING_PONG
+ rxpp = 1;
+# endif
+ ret |= xilinx_emaclite_initialize(bis, XILINX_EMACLITE_BASEADDR,
+ txpp, rxpp);
#endif
+ return ret;
}
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index ac3dae1..9791b9a 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -342,7 +342,8 @@ static int emaclite_recv(struct eth_device *dev)
}
-int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr)
+int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
+ int txpp, int rxpp)
{
struct eth_device *dev;
struct xemaclite *emaclite;
@@ -359,12 +360,8 @@ int xilinx_emaclite_initialize(bd_t *bis, unsigned long
base_addr)
dev-priv = emaclite;
-#ifdef CONFIG_XILINX_EMACLITE_TX_PING_PONG
- emaclite-txpp = 1;
-#endif
-#ifdef CONFIG_XILINX_EMACLITE_RX_PING_PONG
- emaclite-rxpp = 1;
-#endif
+ emaclite-txpp = txpp;
+ emaclite-rxpp = rxpp;
sprintf(dev-name, Xelite.%lx, base_addr);
diff --git a/include/netdev.h b/include/netdev.h
index a624677..54b52a5 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -97,7 +97,8 @@ int uli526x_initialize(bd_t *bis);
int armada100_fec_register(unsigned long base_addr);
int xilinx_axiemac_initialize(bd_t *bis, unsigned long base_addr,
unsigned long dma_addr);
-int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr);
+int xilinx_emaclite_initialize(bd_t *bis, unsigned long base_addr,
+ int txpp, int rxpp);
/* Boards with PCI network controllers can call this from their
board_eth_init()
* function to initialize whatever's on board.
--
1.7.5.4
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot