TI中文支持网
TI专业的中文技术问题搜集分享网站

關於 AR8035 在 sdk 8

TI 精英們好

我 SDK6 在我們的板子已經完全移植成功。 現在移植 SDK8 的,當中我們的 wan port 似乎不能運作。但有亮起來。

我修改 am335x-evmsk.dts 內的 phy_id 為 <7> (這個 phy mapping 在 sdk6就是7)

static struct cpsw_slave_data am33xx_cpsw_slaves[] = {
    {
        .slave_reg_ofs  = 0x200,
        .sliver_reg_ofs = 0xd80,
        .phy_id        = "0:05",
        .dual_emac_reserved_vlan = CPSW_PORT_VLAN_SLAVE_0,
    },
    {
        .slave_reg_ofs  = 0x300,
        .sliver_reg_ofs = 0xdc0,
        .phy_id        = "0:07",
        .dual_emac_reserved_vlan = CPSW_PORT_VLAN_SLAVE_1,
    },
};

,使用sdk8 在linux 下了 ifconfig eth1 up指令 dmesg之後

   52.838847] net eth1: initializing cpsw version 1.12 (0)
[   52.917421] net eth1: phy found : id is : 0x4dd072
[   82.917475] libphy: 4a101000.mdio:07 – Link is Up – 100/Full

看起來也和 sdk6的版本差不多,另外下面的訊息是開機的訊息,mdio的訊息

[    2.946951] davinci_mdio 4a101000.mdio: phy[7]: device 4a101000.mdio:07, driver Atheros 8035 ethernet 

我後來直接下 dhclient eth1 ,一直拿不到 IP。後來直接在userspace 設定 static ip address 給 eth1,用電腦對接,無法 ping通,若是在 sdk6就可以,查詢了 pin腳,CPU對 ethernet 為 rgmii2,所以dts也沒錯。 另外在 u-boot測試,我先 set ipaddr 172.16.51.100 再 set netmask  255.255.0.0,ping 電腦也是不行,請問我是那裡出錯了?  謝謝。

Bernie Chen:

補充一下。 我雖然不能 dhclient eth1,他會 timeout,最後我下 ifconfig 時,eth1的 RX 和 TX 皆有數據產生

    eth1      Link encap:Ethernet  HWaddr d0:39:72:4d:53:4d          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:4 errors:0 dropped:0 overruns:0 frame:0          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:368 (368.0 B)  TX bytes:342 (342.0 B)

謝謝。

Bernie Chen:

回复 Bernie Chen:

Hi TI

我AR8035 仍然卡住。

ICPLUS phy 是 slave 1

AR8035 是 slave2

在 ti linx 中 使用 devmem2 已確認過 slave2 的 pinmux 都為mode2 (rgmii2)。 在 linux 中,也 dump 出 gmii_sel 的值 0x0000003A ,我不確定 slave1 是不是對應到 port1 以及 slave2 對應到 port2 。

也試過 https://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/372597

我還有甚麼可以去試的?????????

謝謝

Steven Liu1:

回复 Bernie Chen:

你好!

 那个GMII_SEL的值是很重要的,对应的slave1对应port1,slave2对应port2,这个模式先确认下。

看你的描述应该是用的是千兆以太网模式,印象中还有一个可以设置的东西是rx、tx DELAY这个东西,EMIF这段和PHY那段都是可以设置的,建议你可以按照这个试试看:http://e2e.ti.com/support/arm/sitara_arm/f/791/t/182794

Bernie Chen:

回复 Steven Liu1:

Hi 史蒂芬

我在 sdk 6 dump 出 gmii_sel 值 0x79 ,所以驗證了你說的 slave2 的確是 port2 沒錯,因為我的port2 是 RGMII interface,port1 是 RMII,,我目前也是在懷疑 tx delay 的地方,看了e2e 論壇,大部分大家的問題都在於,在 slave2 換了別家的 phy ,且 RX 沒問題,TX的 data 值不正確,所以我懷疑是 tx delay 的地方,可是 sdk6 在 board file 中有,在 sdk8 我完全找不到。

https://e2e.ti.com/support/arm/sitara_arm/f/791/p/422834/1548728#1548728  > 這是我在 e2e 的文章。裡面關於我在 sdk 6 所做的 patch,而 AR8035 這顆是可以運作,在 am33xx_evm_tx_clk_dly_phy_fixup 這個 function  中所做的是從 u-boot 裡的 driver 拿過來的。這麼做的原因是因為 u-boot 只初始 slave1 而非 slave2,所以我參考了 How TI bring EMAC1 來讓他初始 slave2,他有進入到 u-boot 中 drivers/net/pht/atheros 的  ar8035_config function ,但結果還是一樣。

所以我覺得可能要調 timing 關於 AR8035,可是我不知道怎在 sdk8裡面調。

也有可能是我 AR8035 仍然沒初始好

請TI的精英幫忙我排除問題,感謝。

Bernie Chen:

回复 Bernie Chen:

Hi Stenven

我發現在 kernel 3.14 中的 arch/arm/mach-imx/mach-imx6q.c ,他有關於 ar8035 & 8031 的 fix up,我看到 8031 有做關於 TX delay 的暫存器動作,但 8035 沒有,不過我在以前 sdk6 的 patch ,的確有加入 tx delay 的動作,只是 TI 並沒有像 freescale 一樣有這個檔案,請問我可以把這些關於 AR8035 的 fix up 寫在哪邊?

謝謝

Steven Liu1:

回复 Bernie Chen:

Bernie,

由于我目前手头上并没有多少客户在使用SDK8,所以对SDK8的结构也不是很熟悉,简要的翻了一下一般移植需要修改的dts文件,在这些设备树文件的配置中,并没有相关的设置,所以我推测是要在driver实现的部分直接修改的,你说到的这个fix up写在哪里的问题,没有接触过,所以我建议你把这个问题汇总一下发到e2e的Linux 专区:http://e2e.ti.com/support/embedded/linux/default.aspx,或者是在这里等其他有修改经验的同事来解答这个问题。

Bernie Chen:

回复 Steven Liu1:

Hello Steven

感謝你的回復,想趁這邊問那現在手邊的客戶大部分是用哪一個版本的 BSP 呢?

謝謝。

Steven Liu1:

回复 Bernie Chen:

目前我手上的客户使用Linux版本 SDK 6.0偏多,kernel 3.2的。

Bernie Chen:

回复 Steven Liu1:

好的,感謝你的資訊

Dendi:

回复 Bernie Chen:

你好,请问你再修改sdk6的时候,是改了哪些地方?我现在用的也是ar8035,只有一个网口,接在rgmii2上,现在遇到的问题是/ # ifconfig eth1 up   结果返回PHY 0:01 not found  也就是说,我现在连phy都没连上。。。。。刚接触驱动,查了很多资料,但还是不知改哪里。。。。

赞(0)
未经允许不得转载:TI中文支持网 » 關於 AR8035 在 sdk 8
分享到: 更多 (0)