海思3559:百兆网口的配置
前言
??海思3559的開發(fā)板網(wǎng)口是默認(rèn)支持千兆/百兆的,這里的自適應(yīng),是從RJ45出來后和PC側(cè)的自適應(yīng),而實(shí)際上3559對于網(wǎng)口的設(shè)置,默認(rèn)都是RGMII模式,除了對應(yīng)的軟件配置,硬件部分需要通過上拉電阻的方法和phy芯片的的支持決定3559最終要選擇那個模式,比如PHY芯片只支持到百兆,硬件部分就需要配置成RMII模式,對應(yīng)的軟件配置也需要對應(yīng)的改為RMII,官方文檔不知道是沒有寫還是太雜了沒找到,這里補(bǔ)充完整的移植方法。此外,不同的SDK版本需要改不同的參數(shù),這里給出Hi3559AV100_SDK_V2.0.3.1的改法用于參考
Uboot:
配置表格:
??/Hi3559AV100_SDK_V2.0.3.1/osdrv/tools/pc/uboot_tools/Hi3559AV100-DMEB_8L_T-DDR4_2664M_4GB_16bitx4-A73_1608M.xlsm其中的IOCFG_REG87要從0x91改為0x94,具體含義參考pinout表格
頭文件
??/Hi3559AV100_SDK_V2.0.3.1/osdrv/opensource/uboot/u-boot-2016.11/include/configs/hi3559av100.h要把phy0(看具體使用情況)工作模式同樣改為rmii
kernel
設(shè)備樹:
??Hi3559AV100_SDK_V2.0.3.1/osdrv/opensource/kernel/linux-4.9.y_multi-core/arch/arm64/boot/dts/hisilicon路徑下
??.hi3559av100-demb-flash.dtb.dts.tmp修改
??hi3559av100-demb.dts修改
補(bǔ)充說明
??phy的具體配置可以參考廠家提供的技術(shù)手冊
??軟件到手后,最基本的可以在uboot階段通過mii指令,讀到phy寄存器正確的狀態(tài)
mii
mii - MII utility commands
Usage:
mii device - list available devices
mii device - set current device
mii info - display MII PHY info
mii read - read MII PHY register
mii write - write MII PHY register
mii dump - pretty-print (0-5 only)
??mii device示例,會輸出MDC/MDIO總線設(shè)備
uboot>mii device MII devices: 'FSL_MDIO0' 'FM_TGEC_MDIO' Current device: 'FSL_MDIO0'??mii info打印輸出,PHY后面跟的就是addr
uboot> mii info PHY 0x00: OUI = 0x5043, Model = 0x1D, Rev = 0x01, 1000baseT, FDX PHY 0x01: OUI = 0x0000, Model = 0x00, Rev = 0x00, 10baseT, HDX PHY 0x02: OUI = 0x0000, Model = 0x00, Rev = 0x00, 10baseT, HDX PHY 0x03: OUI = 0x0000, Model = 0x00, Rev = 0x00, 10baseT, HDX PHY 0x04: OUI = 0x0000, Model = 0x00, Rev = 0x00, 10baseT, HDX PHY 0x05: OUI = 0x0000, Model = 0x00, Rev = 0x00, 10baseT, HDX PHY 0x06: OUI = 0x0000, Model = 0x00, Rev = 0x00, 10baseT, HDX PHY 0x07: OUI = 0x0000, Model = 0x00, Rev = 0x00, 10baseT, HDX??mii read - read MII PHY register
??mii write - write MII PHY register
??上述兩個命令,需要根據(jù)具體的芯片手冊寄存器設(shè)置來進(jìn)行配置。以下命令為示例
mii write 0 0 0x8000 向地址為0的phy芯片的0寄存器寫入0x8000mii read 0 0 讀取地址為0的phy芯片的寄存器0的值??部分uboot也支持直接使用mdio指令,需要時自行查錄
奇怪的問題:讀寄存器狀態(tài)不對
??如果連讀寄存器的狀態(tài)都存在問題時,(博主遇到了讀同樣的寄存器,連著讀讀到的值竟然不一樣,有00有ff有正常的0x7949)首先需要協(xié)調(diào)硬件工程師 就復(fù)位,時鐘,電源挨個檢查,大概率是硬件問題。最后果然檢查到電源部分有個電阻阻值不對,導(dǎo)致工作電壓不穩(wěn)定進(jìn)而影響了寄存器的配置
總結(jié)
以上是生活随笔為你收集整理的海思3559:百兆网口的配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ”流氓“弹窗拦截
- 下一篇: 数学建模-相关性分析(Matlab)