u-boot-1.3.4 for dm365 之网络驱动

虽然早就知道了大名顶顶的u-boot,但最近才开始搞,u-boot的确不错,结构很清晰,一定好好研究。第一个要调试的就是网络口,因为我们没有用DM365开发板上一样的网络物理层芯片KS8001,而是用了RTL8201,因此需要修改驱动,经过一番折腾之后发现,其实只要改一个地方甚至都不用改,那就是PHY ADDRESS,即网络物理层的地址,范围为0~31(00000b~11111b),而这个地址是通过PHY芯片的5个引脚来设置的,RTL8201为9,10,12,13,15,我们的硬件工程师把这几个引脚都拉高了,因此地址为0x1f.因此只要在D:\u-boot\include\asm-arm\arch-davinci\emac_defs.h 中的
#define EMAC_MDIO_PHY_NUM           0x1f//phy address
即修改了PHY 地址。
简单吧,主要是因为采用了MII的接口。
还有就是我发现,第一次烧u-boot后,设置ipaddr macaddr后,要重新上电一下,网络才能正常。
仔细开了一下代码,发现EMAC_MDIO_PHY_NUM 就在emac_gigabit_enable中用到,而davinci_eth_phy_detect能自动或许PHY ADDRESS,因此只要把EMAC_MDIO_PHY_NUM换成active_phy_addr,不管你设什么PHY ADDRESS都不用改了,都可以工作了,我试过是可以的,不知道这里面还有什么玄机,望高手告知。

你可能感兴趣的:(职场,休闲,u-boot,Davinci,PHY,RTL8201)