summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraozima <[email protected]>2014-05-16 18:37:13 +0800
committeraozima <[email protected]>2014-05-16 18:37:13 +0800
commite963de9aa152bad80e51ff28d1159fd0fa0443df (patch)
tree89153181b2e546b32234fed7f2d0a25aee143723
parente32c1afa3ae2a6458cc86065cdc2b9e1eb774c41 (diff)
update stm32f107 ethernet driver: add more debug cmd.
-rw-r--r--bsp/stm32f107/drivers/stm32_eth.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/bsp/stm32f107/drivers/stm32_eth.c b/bsp/stm32f107/drivers/stm32_eth.c
index 1870ac355f..f0de9a60d3 100644
--- a/bsp/stm32f107/drivers/stm32_eth.c
+++ b/bsp/stm32f107/drivers/stm32_eth.c
@@ -3606,3 +3606,56 @@ void rt_hw_stm32_eth_init()
eth_device_init(&(stm32_eth_device.parent), "e0");
}
+#ifdef RT_USING_FINSH
+#include <finsh.h>
+static void phy_search(void)
+{
+ int i;
+ int value;
+
+ for(i=0; i<32; i++)
+ {
+ value = ETH_ReadPHYRegister(i, 2);
+ rt_kprintf("addr %02d: %04X\n", i, value);
+ }
+}
+FINSH_FUNCTION_EXPORT(phy_search, search phy use MDIO);
+
+static void phy_dump(int addr)
+{
+ int i;
+ int value;
+
+ rt_kprintf("dump phy addr %d\n", addr);
+
+ for(i=0; i<32; i++)
+ {
+ value = ETH_ReadPHYRegister(addr, i);
+ rt_kprintf("reg %02d: %04X\n", i, value);
+ }
+}
+FINSH_FUNCTION_EXPORT(phy_dump, dump PHY register);
+
+static void phy_write(int addr, int reg, int value)
+{
+ ETH_WritePHYRegister(addr, reg ,value);
+}
+FINSH_FUNCTION_EXPORT(phy_write, write PHY register);
+
+static void emac_dump(int addr)
+{
+ int i;
+ int value;
+ int *p = (int *)ETH;
+
+ rt_kprintf("dump EAMC reg %d\n", addr);
+
+ for(i=0; i<sizeof(ETH_TypeDef)/4; i++)
+ {
+ value = *p++;
+ rt_kprintf("reg %04X: %08X\n", i*4, value);
+ }
+}
+FINSH_FUNCTION_EXPORT(emac_dump, dump EMAC register);
+
+#endif // RT_USING_FINSH