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

飛騰E2000板載以太網(wǎng)適配

這篇具有很好參考價值的文章主要介紹了飛騰E2000板載以太網(wǎng)適配。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

飛騰E2000板載以太網(wǎng)適配

e20005.4.18macbyt8521

?

    • 1. 設(shè)備樹移植
    • 2. MACB驅(qū)動移植
    • 3. 網(wǎng)絡(luò)連通性調(diào)試
      • 3-1. MACB驅(qū)動環(huán)回測試
      • 3-2. YT8521 PHY工作模式及電壓確認(rèn)
      • 3-3. YT8521 PHY環(huán)回測試
      • 3-4. YT8521 PHY tx delay調(diào)整

飛騰E2000嵌入式板卡的MAC芯片對應(yīng)linux通用macb驅(qū)動,外接YT8521 PHY芯片。飛騰在5.10內(nèi)核上進(jìn)行過適配,現(xiàn)將其移植到麒麟5.4內(nèi)核。

?

本文參考資料:
飛騰5.10內(nèi)核源碼
飛騰E2000以太網(wǎng)驅(qū)動注冊和使用簡介
飛騰騰瓏E2000軟件編程手冊V0.6.pdf
YT8521S初始化配置相關(guān)ver2.1.pdf
YT8521SH-CA_YT8521SC-CA_Datasheet_v1.02.pdf

1. 設(shè)備樹移植

phy-mode為MAC芯片與PHY芯片物理層的連接方式,這涉及到真實的物理連接方式,本文所用的硬件采用rgmii模式。

注:rgmii模式下,tx clk由mac提供,rx clK由phy提供。

macb0: ethernet@3200c000 {
		compatible = "cdns,phytium-gem-1.0";
		reg = <0x0 0x3200c000 0x0 0x2000>;
		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
						<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
						...
						<GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
						<GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
		clock-names = "pclk", "hclk", "tx_clk", "tsu_clk";
		clocks = <&sysclk_250mhz>, <&sysclk_48mhz>, <&sysclk_48mhz>, <&sysclk_250mhz>;
		magic-packet;
		status = "okay";
		phy-mode = "rgmii";
        use-mii;
        };

2. MACB驅(qū)動移植

飛騰5.10 macb驅(qū)動無法直接替換麒麟5.4 macb驅(qū)動,因此需要進(jìn)行手動移植。
根據(jù)設(shè)備樹知道硬件通過cdns,phytium-gem-1.0進(jìn)行匹配,因此需要在macb_dt_ids中新增cdns,phytium-gem-1.0條目,并將phytium_gem1p0_config移植到麒麟5.4內(nèi)核中。

drivers/net/ethernet/cadence/macb_main.c:

static const struct macb_config phytium_gem1p0_config = {
	.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE |
			MACB_CAPS_JUMBO |
			MACB_CAPS_GEM_HAS_PTP |
			MACB_CAPS_BD_RD_PREFETCH |
			MACB_CAPS_SEL_CLK,
	.dma_burst_length = 16,
	.clk_init = phytium_clk_init,
	.init = phytium_init,
	.jumbo_max_len = 16360,
	.sel_clk_hw = phytium_gem1p0_sel_clk,
};

static const struct of_device_id macb_dt_ids[] = {
	...
	{ .compatible = "cdns,phytium-gem-1.0", .data = &phytium_gem1p0_config },
	...
}

由于麒麟5.4 macb驅(qū)動與飛騰5.10 macb驅(qū)動有所差別,僅移植以上部分還不夠。
根據(jù)phytium_gem1p0_config的定義,其中包含了.sel_clk_hw = phytium_gem1p0_sel_clk,但在麒麟5.4 macb驅(qū)動中并未定義和使用phytium_gem1p0_sel_clk函數(shù)。
查看飛騰5.10內(nèi)核phytium_gem1p0_sel_clk函數(shù)實現(xiàn)及調(diào)用,發(fā)現(xiàn)當(dāng)caps & MACB_CAPS_SEL_CLK成立時該函數(shù)才會被調(diào)用,并且在麒麟5.4內(nèi)核中存在功能等價的替代函數(shù)phytium_gem_sel_clk,該替代函數(shù)只有caps & MACB_CAPS_SEL_CLK_HW成立時才被調(diào)用。

飛騰5.10

drivers/net/ethernet/cadence/macb_main.c:
static void macb_mac_link_up(struct phylink_config *config,
			     struct phy_device *phy,
			     unsigned int mode, phy_interface_t interface,
			     int speed, int duplex,
			     bool tx_pause, bool rx_pause)
{
... ...
			if (bp->caps & MACB_CAPS_SEL_CLK)
					bp->sel_clk_hw(bp, speed);
... ...
}

麒麟5.4

static void macb_handle_link_change(struct net_device *dev)
{
... ...
                        if (bp->caps & MACB_CAPS_SEL_CLK_HW)
                                phytium_gem_sel_clk(bp);
... ...
}

綜上,最終驅(qū)動的移植方案是使用phytium_gem_sel_clk + MACB_CAPS_SEL_CLK_HW替代phytium_gem1p0_sel_clk + MACB_CAPS_SEL_CLK如下:

drivers/net/ethernet/cadence/macb_main.c:

static const struct macb_config phytium_gem1p0_config = {
	.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE |
			MACB_CAPS_JUMBO |
			MACB_CAPS_GEM_HAS_PTP |
			MACB_CAPS_BD_RD_PREFETCH |
			MACB_CAPS_SEL_CLK_HW,
	.dma_burst_length = 16,
	.clk_init = macb_clk_init,
	.init = macb_init,
	.jumbo_max_len = 16360,
	//.sel_clk_hw = phytium_gem1p0_sel_clk,
};

static const struct of_device_id macb_dt_ids[] = {
	...
	{ .compatible = "cdns,phytium-gem-1.0", .data = &phytium_gem1p0_config },
	...
}

3. 網(wǎng)絡(luò)連通性調(diào)試

macb驅(qū)動移植成功之后,網(wǎng)絡(luò)順利UP,但無法ping通.
netstat -i可以看到存在RX-OK、TX-OK計數(shù),并且計數(shù)正常累加。這里基本可以說明MAC層收發(fā)是正常的。
利用tcpdump抓包發(fā)現(xiàn),雖然TX-OK正常累加,但對端陪測機(jī)無法抓到被測機(jī)所發(fā)的任何數(shù)據(jù)包,被測機(jī)能抓到陪測機(jī)發(fā)的數(shù)據(jù)包,基本確定網(wǎng)絡(luò)只能收不能發(fā)。

3-1. MACB驅(qū)動環(huán)回測試

飛騰騰瓏E2000軟件編程手冊V0.6.pdf中,以太網(wǎng)基地址如下:

?

飛騰E2000板載以太網(wǎng)適配
mac基址

?

在0x00 network_control寄存器中bit1為本地環(huán)回寄存器,將該bit位置1。

?

飛騰E2000板載以太網(wǎng)適配
0x00 network_control

?

devmem2  $((0x32010000+0x00)) h #讀0x00寄存器的值
0x1c
devmem2  $((0x32010000+0x00)) h 0x1e #寫0x00寄存器,將bit1置1.

進(jìn)行ping環(huán)回抓包測試,測試通過,排除MAC層異常。

3-2. YT8521 PHY工作模式及電壓確認(rèn)

?

飛騰E2000板載以太網(wǎng)適配
硬件工作模式

?

?

飛騰E2000板載以太網(wǎng)適配
電壓

?

phy的工作模式和電壓與硬件強(qiáng)相關(guān),可以通過讀取0xa001擴(kuò)展配置寄存器,確認(rèn)phy工作模式與實際物理連接是否一致。

?

飛騰E2000板載以太網(wǎng)適配
0xa001 擴(kuò)展配置寄存器

?

root@kylin:/opt/phytool# ./phytool write eth1/0x0/0x1e  0xa001 && ./phytool eth1/0x0/0x1f
ieee-phy: reg:0x1f val:0x8140

0xa001寄存器的值為0x8140,因此phy的工作模式配置為UTP_TO_RGMII,電壓為3.3v。

3-3. YT8521 PHY環(huán)回測試

在YT8521SH-CA_YT8521SC-CA_Datasheet_v1.02.pdf中PHY環(huán)回寄存器中,0x00基本控制寄存器bit14位是環(huán)回使能位。

?

飛騰E2000板載以太網(wǎng)適配
0x00 Basic Control Register

?

需要說明的是在進(jìn)行環(huán)回測試時,需要將PHY Autonet_En關(guān)閉,否則網(wǎng)口無法UP。

./phytool write eth1/0x0/0x00 0x4140
./phytool eth1/0x0/0x00

這里phy 環(huán)回測試未通過,可以確定PHY未將數(shù)據(jù)發(fā)送出去,問題在PHY層發(fā)送方向。

3-4. YT8521 PHY tx delay調(diào)整

RGMII模式下,MAC負(fù)責(zé)提供TX時鐘,PHY提供RX時鐘。通過macb驅(qū)動確認(rèn)1000M帶寬下tx時鐘頻率為125MHz,確認(rèn)時鐘頻率正常。

drivers/net/ethernet/cadence/macb_main.c:
static void macb_set_tx_clk(struct clk *clk, int speed, struct net_device *dev)
{
... ...
        switch (speed) {
... ...
        case SPEED_1000:
                rate = 125000000;
                break;
        default:
                return;
        }

        rate_rounded = clk_round_rate(clk, rate);
        if (rate_rounded < 0)
                return;

        /* RGMII allows 50 ppm frequency error. Test and warn if this limit
         * is not satisfied.
         */
        ferr = abs(rate_rounded - rate);
        ferr = DIV_ROUND_UP(ferr, rate / 100000);
		
        if (ferr > 5)
                netdev_warn(dev, "unable to generate target frequency: %ld Hz\n",
                            rate);
        if (clk_set_rate(clk, rate_rounded))
                netdev_err(dev, "adjusting tx_clk failed.\n");
}

查看tx clk delay,讀取0xa003寄存器,千兆帶寬tx clk delay時延由bit3:0提供。

?

飛騰E2000板載以太網(wǎng)適配
0xa003

?

root@kylin:/opt/phytool# ./phytool write eth1/0x0/0x1e  0xa003 && ./phytool eth1/0x0/0x1f
ieee-phy: reg:0x1f val:0x00f1

0xa003 bit3:0 默認(rèn)為1,時延150ps,根據(jù)YT8521S初始化配置相關(guān)ver2.1.pdf資料,業(yè)內(nèi)默認(rèn)rgmii模式下tx clk delay默認(rèn)為750ps。

?

飛騰E2000板載以太網(wǎng)適配
phy delay

?

修改0xa003寄存器為750ps,千兆依然不通,從150ps增加到450ps時,可以ping通,但存在丟包的情況,繼續(xù)增加時延到1200ps(8*150ps)時,可以ping通,ping未看到丟包,千兆帶寬測試正常。

./phytool write eth1/0x0/0x1e  0xa003
./phytool write eth1/0x0/0x1f 0x00f8  

附:

時鐘精度(Frequency Tolerance):時鐘精度一般是25℃下測量額時鐘相對于標(biāo)準(zhǔn)頻率的偏差,單位ppm(百萬分之一),例如測得精度為±15ppm,時鐘頻率為25MHz,周期為1/25MHz=40ns,精度偏差為40ns×(±15/1000000)=0.6ps
時鐘溫漂(Frequency versus Temperature Characteristics):由于晶振材料和工藝限制,致使時鐘在不同的溫度下精度會有較大偏差,單位也為ppm。例如溫漂為±100ppm,時鐘頻率為25MHz,周期為1/25MHz=40ns,精度偏差為40ns×(±100/1000000)=4ps
時鐘抖動(Jitter):晶振源固有的噪聲和干擾通常會帶來時鐘信號的周期性偏差。單位一般為ps文章來源地址http://www.zghlxwxcb.cn/news/detail-747459.html

到了這里,關(guān)于飛騰E2000板載以太網(wǎng)適配的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 特殊以太網(wǎng) 工業(yè)以太網(wǎng)布線與故障保養(yǎng)

    工業(yè)以太網(wǎng) 工業(yè)以太網(wǎng)是基于IEEE 802.3 (Ethernet)的強(qiáng)大的區(qū)域和單元網(wǎng)絡(luò)。利用工業(yè)以太網(wǎng),SIMATIC NET 提供了一個無縫集成到新的多媒體世界的途徑。 企業(yè)內(nèi)部互聯(lián)網(wǎng)(Intranet),外部互聯(lián)網(wǎng)(Extranet),以及國際互聯(lián)網(wǎng)(Internet) 提供的廣泛應(yīng)用不但已經(jīng)進(jìn)入今天的辦公室領(lǐng)域,而且

    2024年02月07日
    瀏覽(26)
  • STM32的以太網(wǎng)外設(shè)+PHY(LAN8720)使用詳解(6):以太網(wǎng)數(shù)據(jù)接收及發(fā)送

    STM32的以太網(wǎng)外設(shè)+PHY(LAN8720)使用詳解(6):以太網(wǎng)數(shù)據(jù)接收及發(fā)送

    1.1.1 檢查是否接收到一幀完整報文 使用輪詢的方式接收以太網(wǎng)數(shù)據(jù)是一種簡單但是效率低下的方法,為了保證及時處理以太網(wǎng)數(shù)據(jù)我們需要在主循環(huán)內(nèi)高頻輪詢是否接收到了以太網(wǎng)數(shù)據(jù)。輪詢的函數(shù)為ETH_CheckFrameReceived,內(nèi)容如下: 當(dāng)以太網(wǎng)幀大于我們設(shè)置的DMA描述符buffer大

    2024年01月23日
    瀏覽(33)
  • 【車載以太網(wǎng)測試從入門到精通】——以太網(wǎng)TCP/IP協(xié)議自動化測試(含CAPL源碼)

    【車載以太網(wǎng)測試從入門到精通】系列文章目錄匯總 TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議)是指能夠在多個不同網(wǎng)絡(luò)間實現(xiàn)信息傳輸?shù)膮f(xié)議簇

    2024年02月05日
    瀏覽(109)
  • 以太網(wǎng)數(shù)據(jù)幀

    以太網(wǎng)數(shù)據(jù)幀

    最近由于項目需求,需要開發(fā)UDP/TCP 協(xié)議棧,在此學(xué)習(xí)記錄下以太網(wǎng)報的包格式,后續(xù)會把PMA/PCS,64B/66B,serdes 接口配置,時序設(shè)計等補(bǔ)充完整。 以太網(wǎng)鏈路傳輸?shù)臄?shù)據(jù)包稱做 以太幀 ,或者以太網(wǎng)數(shù)據(jù)幀。在以太網(wǎng)中,網(wǎng)絡(luò)訪問層的軟件必須把數(shù)據(jù)轉(zhuǎn)換成能夠通過網(wǎng)絡(luò)適配

    2023年04月14日
    瀏覽(25)
  • 汽車以太網(wǎng)協(xié)議棧

    汽車以太網(wǎng)協(xié)議棧

    《大師說》欄目上線啦# 《大師說》欄目是懌星科技2023年推出的深度思考欄目,通過邀請內(nèi)部專家,針對智能汽車行業(yè)發(fā)展、技術(shù)趨勢等輸出個性化的觀點。每期一位大師,每位一個話題,本期由我們懌星的CTO虞勝偉,進(jìn)行分享。???? 隨著車載領(lǐng)域智能化,網(wǎng)聯(lián)化的發(fā)展,

    2024年02月10日
    瀏覽(26)
  • 以太網(wǎng)知識

    以太網(wǎng)知識

    / 【讀書筆記】C3 The Ethernet System 以太網(wǎng)知識01 Media Independent Interface (MII) 媒體獨立接口 CHAPTER 2 IEEE Ethernet Standards 以太網(wǎng)標(biāo)準(zhǔn)- 以太網(wǎng)的歷史背景 基礎(chǔ)知識——以太網(wǎng)(Ethernet ) 以太網(wǎng)數(shù)據(jù)幀格式(結(jié)構(gòu))圖解 OSI七層參考模型及其協(xié)議和各層設(shè)備 一文帶你讀懂,這三個交換

    2024年02月05日
    瀏覽(18)
  • 以太網(wǎng)協(xié)議學(xué)習(xí)筆記

    以太網(wǎng)協(xié)議學(xué)習(xí)筆記

    以太網(wǎng)接口電路主要由MAC(Media Access Control)控制器和物理層接口PHY兩大部分構(gòu)成。 PHY在發(fā)送數(shù)據(jù)時,接收MAC發(fā)過來的數(shù)據(jù),把并行的數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),按照物理層的編碼規(guī)則把數(shù)據(jù)編碼轉(zhuǎn)化為模擬信號發(fā)送出去,接收數(shù)據(jù)時的流程反之。 MAC和PHY芯片有一個配置接口,

    2024年02月14日
    瀏覽(21)
  • 以太網(wǎng)協(xié)議詳解

    以太網(wǎng)協(xié)議詳解

    ??假設(shè)有這樣一張網(wǎng)絡(luò)拓?fù)鋱D: ??在拓?fù)鋱D中有A、B、C三臺計算機(jī),并且它們?nèi)齻€是通過中間的 路由器 連接的。這時候計算機(jī)A要向計算機(jī)C發(fā)送一條數(shù)據(jù),那么數(shù)據(jù)是怎么樣到達(dá)計算機(jī)C呢?也就是說路由器是怎么知道A要發(fā)送數(shù)據(jù)給誰呢? ??這就是接下來要講的 以太

    2024年02月06日
    瀏覽(22)
  • 實驗一 以太網(wǎng)組建

    實驗一 以太網(wǎng)組建

    實驗 一 ?? 以太網(wǎng)組建 一、實驗?zāi)康暮鸵?1、認(rèn)識交換機(jī)和路由器的結(jié)構(gòu)與連接方法 2、區(qū)分直通線和交叉 3、掌握簡單的局域網(wǎng)配置方法以及組網(wǎng)方法 4、了解ip地址的組成 5、了解子網(wǎng)掩碼、MAC、默認(rèn)網(wǎng)關(guān)、數(shù)據(jù)鏈路地址的概念 6、了解配置路由器所使用的命令 相關(guān)知識

    2024年02月07日
    瀏覽(21)
  • 車載以太網(wǎng)——DDS篇

    車載以太網(wǎng)——DDS篇

    摘要: DDS為信息交換和應(yīng)用程序集成創(chuàng)建了一個簡單而強(qiáng)大的體系結(jié)構(gòu)。 01、什么是DDS DDS是一系列標(biāo)準(zhǔn),它指定了分布式應(yīng)用程序可用于交換實時數(shù)據(jù)的API、協(xié)議和安全機(jī)制。應(yīng)用程序所使用的軟件應(yīng)用程序編程接口(API)是基于一個安全的、服務(wù)質(zhì)量(QoS)感知的“以數(shù)

    2024年01月18日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包