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都不用改了,都可以工作了,我試過是可以的,不知道這裏面還有什麼玄機,望高手告知。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章