PHY晶元88E3019驅動設計

2021-06-07 05:16:37 字數 857 閱讀 9132

在st解碼器方案中,用了marvell的phy晶元88e3019。在sdk中並沒有該晶元的驅動,只有乙個88e1111的驅動。看了兩天源**,發現只要加個phy_driver結構體就行了。具體**如下:

/*  88e3019 phy_driver  */,

} 這兩天都在看phy晶元驅動的整體架構。 發現還是挺複雜的,關係到了好多個源**。

幾個重要的源**介紹如下:

1. phy_device.c

查詢和配置phy架構,包含了phy通用的驅動。

裡面有個函式:

int genphy_config_aneg(struct phy_device *phydev)

作用:restart auto-negotiation or write bmcr

2. phy.c

讀寫和配置phy裝置。

有兩個重要函式

int phy_read(struct phy_device *phydev, u16 regnum)

讀取phy reg。

int phy_write(struct phy_device *phydev, u16 regnum, u16 val)

寫phy reg。

3. driver.c

裝置驅動管理中心。

4. bus.c

匯流排驅動管理

5. mdio_bus.c

mdio匯流排驅動。有個重要的結構體

struct bus_type mdio_bus_type = ;

6. mii.h 和 mii.c

這是mii協議。裡面有mii協議的phy暫存器位址,及mii通訊介面庫。

marvell 88e1111驅動源**:

ZYNQ使用88E1510 PHY晶元的驅動程式

sdk v2014.4 phy 88e1510 pl端乙太網,自協商 standalone應用程式 pl端設計,略。根據pl端生成的hdf,新建專案,採用官方lwip echo server例程。發現執行結果為 lwip tcp echo server tcp packets sent to por...

乙太網學習(二) PHY晶元

phy晶元的基本功能 phy和rj45介面之間的連線就是學習一中提到的千兆乙太網rj45介面的那4對差分模擬訊號線。通過phy晶元實現了差分訊號對到數碼訊號的轉換,也就是圖中的rxd和txd。除此之外phy晶元還提供了通訊速率自協商,驅動通訊指示led燈等功能。phy晶元資料手冊 88e1116r晶...

Linux 下訪問PHY晶元暫存器

mdio eth0 1 讀取phy暫存器1的數值 mdio eth0 0 0x1120 將0x1120寫入 phy暫存器1 eth0 為mac層控制器的名稱,一般為eth0 或mgmt0。include include include include include include include ...