T527 PCIe 调试

1、环境介绍

硬件:飞凌OK527

软件:原厂t527-tina5.0-aiot-v1.4 sdk(buildroot,Linux 5.15)

2、T527 PCIe 资源

T527 集成一个 PCIe 2.1 x1 Root Complex 控制器,支持 Gen1/Gen2 速率、带 4 路 DMA 与 MSI 中断,并支持 AER 和 ASPM 等高级特性,但与 USB3.1 共享 Combo PHY,不能同时使用。

3、原理图查看

小结如下:

WAKEN Pin:PH12

PERSTN Pin:PH11

4、内核配置

t527 的 pcie 只支持 rc 模式:

CONFIG_AW_PCIE_RC=y
CONFIG_AW_INNO_COMBOPHY=y

5、设备树配置

&combophy {
	resets = <&ccu RST_BUS_PCIE_USB3>;
	phy_use_sel = <0>; /* 0:PCIE; 1:USB3; 2:PCIE_USB3_U2 */
	status = "okay";
};

&pcie {
	reset-gpios = <&pio PH 11 GPIO_ACTIVE_HIGH>;
	wake-gpios = <&pio PH 12 GPIO_ACTIVE_HIGH>;
	pcie1v8-supply = <&reg_bldo3>;
	pcie3v3-supply = <&reg_dcdc4>;
	status = "okay";
};

6、测试

pcie 控制器 log:

root@T527-buildroot:/ # dmesg | grep pcie
[    5.560629] sunxi-pcie 4800000.pcie: host bridge /soc@3000000/pcie@4800000 ranges:
[    5.569153] sunxi-pcie 4800000.pcie:      err 0x0020000000..0x0020ffffff -> 0x0020000000
[    5.578249] sunxi-pcie 4800000.pcie:       IO 0x0021000000..0x0021ffffff -> 0x0021000000
[    5.587338] sunxi-pcie 4800000.pcie:      MEM 0x0022000000..0x002fffffff -> 0x0022000000
[    5.801923] sunxi:pcie-rc-4800000.pcie:[INFO]: pcie link up success
[    5.829057] sunxi:pcie-rc-4800000.pcie:[ERR]: Speed change timeout
[    5.835994] sunxi:pcie-rc-4800000.pcie:[INFO]: PCIe speed of Gen1
[    5.843009] sunxi-pcie 4800000.pcie: PCI host bridge to bus 0000:00
[    6.044214] sunxi:pcie-4800000.pcie:[INFO]: driver version: 1.1.2
    
root@T527-buildroot:/ # lspci
00:00.0 Class 0604: 16c3:abcd

以下使用一个pcie转网口模块(RTL8111H)进行测试,内核需要打开CONFIG_R8169

root@T527-buildroot:/ # lspci
01:00.0 Class 0200: 10ec:8168
00:00.0 Class 0604: 16c3:abcd

root@T527-buildroot:/ # ifconfig -a
docker0   Link encap:Ethernet  HWaddr 02:42:A3:53:D0:D5
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

enp1s0    Link encap:Ethernet  HWaddr 00:E0:4C:B3:27:46
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 7A:5A:01:64:7F:4A
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:172

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@T527-buildroot:/ # ifconfig enp1s0 up
root@T527-buildroot:/ # udhcpc -i enp1s0
udhcpc: started, v1.35.0
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.2.103, server 192.168.2.1
udhcpc: lease of 192.168.2.103 obtained from 192.168.2.1, lease time 7200
deleting routers
adding dns 192.168.9.1
adding dns 192.168.2.1
    
root@T527-buildroot:/ # ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:A3:53:D0:D5
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

enp1s0    Link encap:Ethernet  HWaddr 00:E0:4C:B3:27:46
          inet addr:192.168.2.103  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:4cff:feb3:2746/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3821 (3.7 KiB)  TX bytes:1452 (1.4 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

root@T527-buildroot:/ # ping www.baidu.com
PING www.baidu.com (183.2.172.17): 56 data bytes
64 bytes from 183.2.172.17: seq=0 ttl=53 time=7.687 ms
64 bytes from 183.2.172.17: seq=1 ttl=53 time=9.102 ms

7、参考文章

《Linux_PCIe_开发指南.pdf》

8、总结

略。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值