天天看點

Linux核心2.4.6調試交換晶片RTL8364\RTL8367(kernel調試篇)

平台

主要晶片arm:ast1520

Linux核心版本:2.4.6

uboot版本:1.1.4

概述

現在uboot的網絡功能調通了,采用的是mac to mac的方式,并且是千兆全雙工的;現在要開始調試kernel的網絡了,因為kernel的網絡都是走的架構,但是ast1520代碼的看了下,都是自己寫的驅動架構,貌似沒有看到mac to mac模式的相容,那麼就先對比日志開始吧。

分析過程

對比日志好像看不出啥太大差別,那麼隻能跟蹤一下原來的流程了,由ftgmac100_init()開始

Linux核心2.4.6調試交換晶片RTL8364\RTL8367(kernel調試篇)

大概就是擷取mac位址,然後初始化ast1520的網卡驅動,浏覽了一圈,還是沒有發現哪裡是有macTomac模式的配置,最後選擇詢問原廠,發現有一個宏定義,可以用來控制一些選項:

Linux核心2.4.6調試交換晶片RTL8364\RTL8367(kernel調試篇)

需要關閉中斷選項,當關閉中斷選項後,主要晶片就不會再用mdio去讀取phy的配置資訊,把自己配置成了固定連接配接的模式了。

配置完成後,有可能會造成百兆網絡通,千兆網絡不通的情況,那是因為千兆網絡更快,所需要的時序要求更高,需要調整RX_DELAY與TX_DALAY,具體調試如前面調試RTL8364一緻,微調之後網絡就OK了。

總結

我們都是基于别人的開發進行二次開發,也就是站在巨人的肩膀上,并不需要自己動手去造輪子造車子。是以如果遇到很棘手很難的問題,可以優先詢問原廠,畢竟他們才是最了解晶片的人;不過前提是自己要先思考,不然與原廠溝通描述問題也會有問題。就如mac to mac模式的配置,這部分的技術已經相應的成熟了,基本主要晶片的廠商都會預留出相應的接口或者配置,隻需要調用就可以了。

繼續閱讀