国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

zynq平臺 Linux系統(tǒng) phy 88e1512驅(qū)動配置

這篇具有很好參考價值的文章主要介紹了zynq平臺 Linux系統(tǒng) phy 88e1512驅(qū)動配置。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

88e1512和88e1510是一個系列的phy,采用marvell的通用phy驅(qū)動,驅(qū)動源碼路徑:\u-boot\drivers\net\phy\marvell.c

zynq平臺 Linux系統(tǒng) phy 88e1512驅(qū)動配置

如上圖所示,ETH2的工作模式為RGMII TO SGMII,SGMII與交換芯片bcm5396相連。設備樹配置為RGMII模式,如下:

&gem0 {
	status = "okay";
	phy-mode = "rgmii-id";
	phy-handle = <&ethernet_phy0>;

	ethernet_phy0: ethernet-phy@0 {
		reg = <0>;
		device_type = "ethernet-phy";
	};
};

查看芯片手冊Page 18 – Register 20,配置工作模式為RGMII (System mode) to SGMII (Media mode)。

zynq平臺 Linux系統(tǒng) phy 88e1512驅(qū)動配置

?? 讀寫88e1512寄存器,先將要操作的Page number寫入Register 22,再配置相應的寄存器。

?? 88e1512驅(qū)動配置步驟:文章來源地址http://www.zghlxwxcb.cn/news/detail-460436.html

  • 配置工作模式為100,RGMII (System mode) to SGMII (Media mode)。
  • 所有寄存器配置完成后,將Page Address配置為1,PHY切換至Fiber Page,否則MAC獲取的是PHY的Copper Page的link狀態(tài),無法獲取到Fiber Page的link狀態(tài)。
  • 關閉自協(xié)商,強制link為千兆全雙工
    static int m88e1518_config(struct phy_device *phydev)
    {
    	u16 reg;
    	int temp_addr;
    
    	/*
    	 * As per Marvell Release Notes - Alaska 88E1510/88E1518/88E1512
    	 * /88E1514 Rev A0, Errata Section 3.1
    	 */
    
    	/* EEE initialization */
    	phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 0x00ff);
    	phy_write(phydev, MDIO_DEVAD_NONE, 17, 0x214B);
    	phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2144);
    	phy_write(phydev, MDIO_DEVAD_NONE, 17, 0x0C28);
    	phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2146);
    	phy_write(phydev, MDIO_DEVAD_NONE, 17, 0xB233);
    	phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x214D);
    	phy_write(phydev, MDIO_DEVAD_NONE, 17, 0xCC0C);
    	phy_write(phydev, MDIO_DEVAD_NONE, 16, 0x2159);
    	phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 0x0000);
    
    	/* SGMII-to-Copper mode initialization */
    	if (phydev->interface == PHY_INTERFACE_MODE_SGMII ||
    		phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) {
    		/* Select page 18 */
    		phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 18);
    		
    		/* In reg 20, write MODE[2:0] = 0x1 (SGMII to Copper) */
    		if (phydev->interface == PHY_INTERFACE_MODE_SGMII) {
    			m88e1518_phy_writebits(phydev, MIIM_88E151x_GENERAL_CTRL,
    				       0, 3, MIIM_88E151x_MODE_SGMII);
    		} 
    else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) {
    		/* In reg 20, write MODE[2:0] = 0x4 (RGMII to SGMII) */
    			m88e1518_phy_writebits(phydev, MIIM_88E151x_GENERAL_CTRL,
    				       0, 3, MII_88E151x_MODE_RGMII_TO_SGMII);
    		}
    
    		/* PHY reset is necessary after changing MODE[2:0] */
    		m88e1518_phy_writebits(phydev, MIIM_88E151x_GENERAL_CTRL,
    				       MIIM_88E151x_RESET_OFFS, 1, 1);
    
    		/* Reset page selection */
    		phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1118_PHY_PAGE, 0);
    
    		udelay(100);
    	}
    
    	if (phydev->interface == PHY_INTERFACE_MODE_SGMII) {
    		reg = phy_read(phydev, MDIO_DEVAD_NONE,
    			       MIIM_88E1111_PHY_EXT_SR);
    
    		reg &= ~(MIIM_88E1111_HWCFG_MODE_MASK);
    		reg |= MIIM_88E1111_HWCFG_MODE_SGMII_NO_CLK;
    		reg |= MIIM_88E1111_HWCFG_FIBER_COPPER_AUTO;
    
    		phy_write(phydev, MDIO_DEVAD_NONE,
    			  MIIM_88E1111_PHY_EXT_SR, reg);
    	}
    
    	if (phy_interface_is_rgmii(phydev)) {
    		phy_write(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE, 2);
    
    		reg = phy_read(phydev, MDIO_DEVAD_NONE, MIIM_88E151x_PHY_MSCR);
    		reg &= ~MIIM_88E151x_RGMII_RXTX_DELAY;
    		if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID)
    			reg |= MIIM_88E151x_RGMII_RXTX_DELAY;
    		else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)
    			reg |= MIIM_88E151x_RGMII_RX_DELAY;
    		else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
    			reg |= MIIM_88E151x_RGMII_TX_DELAY;
    		phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E151x_PHY_MSCR, reg);
    
    		phy_write(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE, 0);
    	}
    
    		phy_write(phydev, MDIO_DEVAD_NONE, MII_MARVELL_PHY_PAGE, MII_MARVELL_FIBER_PAGE);
    		
    		phydev->autoneg = AUTONEG_DISABLE;
    		phydev->speed = SPEED_1000;
    		phydev->duplex = DUPLEX_FULL;
    
    		puts("phy_interface_is_rgmii out!!!!!!!!\n");
    
    	/* soft reset */
    	phy_reset(phydev);
    
    	genphy_config_aneg(phydev);
    	//genphy_restart_aneg(phydev);
    
    	return 0;
    }

到了這里,關于zynq平臺 Linux系統(tǒng) phy 88e1512驅(qū)動配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • FPGA純verilog實現(xiàn)UDP協(xié)議棧,GMII接口驅(qū)動88E1111,提供工程源碼和技術支持

    FPGA純verilog實現(xiàn)UDP協(xié)議棧,GMII接口驅(qū)動88E1111,提供工程源碼和技術支持

    目前網(wǎng)上的fpga實現(xiàn)udp基本生態(tài)如下: 1:verilog編寫的udp收發(fā)器,但中間的FIFO或者RAM等調(diào)用了IP,或者不帶ping功能,這樣的代碼功能正常也能用,但不帶ping功能基本就是廢物,在實際項目中不會用這樣的代碼,試想,多機互聯(lián),出現(xiàn)了問題,你的網(wǎng)卡都不帶ping功能,連基本的

    2024年02月13日
    瀏覽(27)
  • FPGA UDP協(xié)議棧:基于88E1111,支持RGMII、GMII、SGMII三種模式,提供3套工程源碼和技術支持

    FPGA UDP協(xié)議棧:基于88E1111,支持RGMII、GMII、SGMII三種模式,提供3套工程源碼和技術支持

    FPGA UDP協(xié)議棧:基于88E1111,支持RGMII、GMII、SGMII三種模式,提供3套工程源碼和技術支持 目前網(wǎng)上的fpga實現(xiàn)udp基本生態(tài)如下: 1:verilog編寫的udp收發(fā)器,但中間的FIFO或者RAM等調(diào)用了IP,或者不帶ping功能,這樣的代碼功能正常也能用,但不帶ping功能基本就是廢物,在實際項目中

    2024年02月02日
    瀏覽(113)
  • 【以太網(wǎng)PHY】88Q2220MB0-NYA2A0G1、88Q2221MB0-NYA2A0G1具有MACsec安全功能

    【以太網(wǎng)PHY】88Q2220MB0-NYA2A0G1、88Q2221MB0-NYA2A0G1具有MACsec安全功能

    Marvell Brightlane? 88Q222?設備是一種單對以太網(wǎng)物理層收發(fā)器(PHY),支持通過非屏蔽雙絞線(UTP)運行。該收發(fā)器實現(xiàn)了IEEE 802.3bp標準所定義的1000BASE-T1的以太網(wǎng)物理層部分。 88Q222xM集成了MACsec,可防止第二層車載網(wǎng)絡的安全威脅。MACsec在逐跳的基礎上確保數(shù)據(jù)交換的安全,

    2024年01月17日
    瀏覽(32)
  • 軟件工程畢業(yè)設計課題(88)微信小程序畢業(yè)設計PHP電子書小說平臺小程序系統(tǒng)設計與實現(xiàn)

    軟件工程畢業(yè)設計課題(88)微信小程序畢業(yè)設計PHP電子書小說平臺小程序系統(tǒng)設計與實現(xiàn)

    目的 :本課題主要目標是設計并能夠?qū)崿F(xiàn)一個基于微信小程序的在線免費小說平臺,前臺用戶使用小程序,后臺管理使用基PHP+MySql的B/S架構;管理員通過后臺錄入作者信息,發(fā)布資訊,管理會員等;作者通過后臺發(fā)布的賬號登錄、發(fā)布小說、錄入小說章節(jié)內(nèi)容;用戶通過小程

    2023年04月09日
    瀏覽(20)
  • petalinux定制ZYNQ的Linux操作系統(tǒng)

    在進行Zynq-7000的Linux系統(tǒng)開發(fā)時,Xilinx官方提供了一個名為petalinux的工具。該工具運行在pc端的linux環(huán)境下,使用這個工具可以為目標板有量身定制kernel、rootfs等。該工具可與vivado設計工具一起配合使用,旨在簡化 Zynq-7000 的Linux系統(tǒng)開發(fā)過程,提高設計生產(chǎn)力。本文將介紹pe

    2024年02月16日
    瀏覽(24)
  • 0基礎學習VR全景平臺篇 第88篇:智慧眼-成員管理

    0基礎學習VR全景平臺篇 第88篇:智慧眼-成員管理

    一、功能說明 成員管理,是指管理智慧眼項目的成員,擁有相關權限的人可以進行添加成員、分配成員角色、設置成員分類、修改成員以及刪除成員五項操作。但是僅限于管理自己的下級成員,上級成員無權管理。 二、前臺操作頁面 登錄智慧眼后臺操作的賬號通常稱為超級

    2024年02月12日
    瀏覽(24)
  • FPGA平臺以太網(wǎng)學習:MAC與PHY間通信

    FPGA平臺以太網(wǎng)學習:MAC與PHY間通信

    1、PHY(物理層): ??MII/GMI/RMII/RGMII/SGMIII(介質(zhì)獨立接口子層),PLS/PCS(物理編碼子層),PMA(物理介質(zhì)連接子層),PMD(物理介質(zhì)相關子層),AN(自動協(xié)商),MDI(媒介相關接口)。 2、PLS/PCS(物理編碼子層): ??(PLS)對 MAC 給的信息進行傳遞,只在IMb/s、10Mb/s 的應

    2024年02月04日
    瀏覽(25)
  • 微軟等開源評估ChatGPT、Phi、Llma等,統(tǒng)一測試平臺

    微軟等開源評估ChatGPT、Phi、Llma等,統(tǒng)一測試平臺

    微軟亞洲研究院、中國科學院自動化研究所、中國科學技術大學和卡內(nèi)基梅隆大學聯(lián)合開源了,用于評估、分析大語言模型的統(tǒng)一測試平臺——PromptBench。 Prompt Bench支持目前主流的開源、閉源大語言模型,例如,ChatGPT、GPT-4、Phi、Llma1/2、Gemini、Baichuan、Yi 等。 PromptBench內(nèi)置了

    2024年01月21日
    瀏覽(19)
  • 開源ZYNQ AD9361軟件無線電平臺

    開源ZYNQ AD9361軟件無線電平臺

    (1) XC7Z020-CLG400 (2) AD9363 (3) 單發(fā)單收,工作頻率400MHz-2.7GHz (4) 發(fā)射帶PA,最大輸出功率約20dbm (5) 接收帶LNA,低噪聲系統(tǒng) (6) 支持USB供電 (7) 1路千兆以太網(wǎng)RJ-45接口 (8) 板載UART/JTAG二合一接口 (9) 標準信用卡尺寸85mm*56mm 框圖如下: 實物圖如下: 原理圖

    2024年02月14日
    瀏覽(23)
  • PHY芯片的使用(三)在linux下網(wǎng)絡PHY的移植

    PHY芯片的使用(三)在linux下網(wǎng)絡PHY的移植

    1 前言 配置設備樹請參考上一章。此次說明還是以裕太的YT8511芯片為例。 2 需要配置的文件及路徑 a. 在 .. /drivers/net/phy 目錄下添加 yt_phy.c 文件(一般來說該驅(qū)動文件由廠家提供); b. 修改.. /drivers/net/phy 目錄下的 Kconfig 文件,如下圖所示。 c. 修改.. /drivers/net/phy 目錄下的

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包