平台
主要晶片arm:ast1520
Linux核心版本:2.4.6
uboot版本:1.1.4
概述
現在uboot的網絡功能調通了,采用的是mac to mac的方式,并且是千兆全雙工的;現在要開始調試kernel的網絡了,因為kernel的網絡都是走的架構,但是ast1520代碼的看了下,都是自己寫的驅動架構,貌似沒有看到mac to mac模式的相容,那麼就先對比日志開始吧。
分析過程
對比日志好像看不出啥太大差別,那麼隻能跟蹤一下原來的流程了,由ftgmac100_init()開始
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI2EzX4xSZz91ZsAzNfRHLGZkRGZkRfJ3bs92YsAjMfVmepNHLx9kc1oUewVDaLJXNmlGc1YWawVTQClGVF5UMR9Fd4VGdsATNfd3bkFGazxycykFaKdkYzZUbapXNXlleSdVY2pESa9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzMTO0kjY4M2Y5EWN1QDNhVzM2QTNkJTMhZmMzMzN2EzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
大概就是擷取mac位址,然後初始化ast1520的網卡驅動,浏覽了一圈,還是沒有發現哪裡是有macTomac模式的配置,最後選擇詢問原廠,發現有一個宏定義,可以用來控制一些選項:
需要關閉中斷選項,當關閉中斷選項後,主要晶片就不會再用mdio去讀取phy的配置資訊,把自己配置成了固定連接配接的模式了。
配置完成後,有可能會造成百兆網絡通,千兆網絡不通的情況,那是因為千兆網絡更快,所需要的時序要求更高,需要調整RX_DELAY與TX_DALAY,具體調試如前面調試RTL8364一緻,微調之後網絡就OK了。
總結
我們都是基于别人的開發進行二次開發,也就是站在巨人的肩膀上,并不需要自己動手去造輪子造車子。是以如果遇到很棘手很難的問題,可以優先詢問原廠,畢竟他們才是最了解晶片的人;不過前提是自己要先思考,不然與原廠溝通描述問題也會有問題。就如mac to mac模式的配置,這部分的技術已經相應的成熟了,基本主要晶片的廠商都會預留出相應的接口或者配置,隻需要調用就可以了。