
Description: QE UEC: Add CMD_MII support, extend number of supported UECs to 4
David, I prefer to have two patch for this. One is the CMD_MII support The second is the extend UEC to 4.
diff -purN net/eth.c.orig net/eth.c
--- net/eth.c.orig Wed Jan 2 13:39:04 2008 +++ net/eth.c Thu Jan 3 18:44:45 2008 @@ -202,7 +202,12 @@ int eth_initialize(bd_t *bis) #if defined(CONFIG_UEC_ETH2) uec_initialize(1); #endif
+#if defined(CONFIG_UEC_ETH3)
- uec_initialize(2);
+#endif
The UEC_ETH3 is ready in the main tree.
+#if defined(CONFIG_UEC_ETH4)
- uec_initialize(3);
+#endif
Could you have one patch to add the UEC_ETH4?
diff -purN drivers/qe/uec.c.orig drivers/qe/uec.c
--- drivers/qe/uec.c.orig Wed Jan 2 13:39:04 2008 +++ drivers/qe/uec.c Thu Jan 3 17:23:17 2008 @@ -29,6 +29,7 @@ #include "uccf.h" #include "uec.h" #include "uec_phy.h" +#include "miiphy.h"
#if defined(CONFIG_QE)
@@ -40,8 +41,13 @@ static uec_info_t eth1_uec_info = { .tx_clock = CFG_UEC1_TX_CLK, .eth_type = CFG_UEC1_ETH_TYPE, }, +#ifdef CFG_UEC1_NUM_TX_RX_THR
- .num_threads_tx = CFG_UEC1_NUM_TX_RX_THR,
- .num_threads_rx = CFG_UEC1_NUM_TX_RX_THR,
+#else .num_threads_tx = UEC_NUM_OF_THREADS_4, .num_threads_rx = UEC_NUM_OF_THREADS_4, +#endif
I don't like so much CFG_ option for the driver, which cause too many CFG_UEC[x]_NUM_TX_RX_THR in config.h. for every board.
and I think the threads number is not belonged to board specific things. The u-boot don't need to consider the UEC performance.
The default 4 threads should work for you. If it doesn't work for you, I suggest you keep the changes only for your project.
I don't know if you can agree it.
+#define MAXCONTROLLERS (4)
+static uec_private_t *privlist[MAXCONTROLLERS];
+static int uec_miiphy_read(char *devname, unsigned char addr,
unsigned char reg, unsigned short *value);
+static int uec_miiphy_write(char *devname, unsigned char addr,
unsigned char reg, unsigned short value);
+u16 phy_read (struct uec_mii_info *mii_info, u16 regnum); +void phy_write (struct uec_mii_info *mii_info, u16 regnum, u16 val);
static int uec_mac_enable(uec_private_t *uec, comm_dir_e mode) { @@ -1238,11 +1306,21 @@ int uec_initialize(int index) #ifdef CONFIG_UEC_ETH2 uec_info = ð2_uec_info; #endif
- } else if (index == 2) {
+#ifdef CONFIG_UEC_ETH3
uec_info = ð3_uec_info;
+#endif
- } else if (index == 3) {
+#ifdef CONFIG_UEC_ETH4
uec_info = ð4_uec_info;
+#endif
So, please repost the UEC_ETH4 support patch.
Big thanks, Dave