NXP MCU 技术论坛
直播中

孔朱磊

8年用户 1043经验值
私信 关注
[问答]

如何配置P2020 eTSEC DTS?

您好,我正在将 Open Network Linux (ONL) 移植到裸机交换机(Kuga 7048N - 请参阅随附的 KUGA7048N_HW_SPEC_v03.pdf)。eTSEC NIC 在 uboot 和工厂加载的 ONIE 安装/恢复环境中运行良好。
但是,eTSEC NIC *TX* 不适用于我的构建。基址报告为 0xe000,而在(工作)ONIE 环境中为 0x8000。请参阅下面的 ifconfig 输出:
root@localhost:~# ifconfig ma1
ma1 Link encap:Ethernet HWaddr 00:30:ab:2e:45:44
UP BROADCAST MULtiCAST MTU:1500 Metric:1
RX packets:16853 errors:0 dropped:414 overruns:0 frame:0
TX 数据包:0 错误:0 丢弃:0 溢出:0 载体:0
冲突:0 txqueuelen:1000
RX 字节:2247973 (2.1 MiB) TX 字节:0 (0.0 B)
基地址:0xe000

NIC 接收数据包,如上面的 ifconfig 输出和下面的 tcpdump 输出所示:
root@localhost:~# tcpdump -i ma1
device ma1 entered promiscuous mode
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ma1, link-type EN10MB (Ethernet), 捕获大小 262144 字节
00:28 :21.542348 ARP,请求谁有 10.1.1.108 告诉 10.1.1.4,长度 46
00:28:21.680745 STP 802.1w,快速 STP,标志 [学习,转发],网桥 ID 8000.00:1f:12:3a:11: 41.821d,长度 43
00:28:22.047322 ARP,请求谁有 10.1.1.240 告诉 10.1.1.240,长度 46 00:
28:22.109159 ARP,请求谁有 10.1.3.232 告诉 10.1.1.6,长度 46
[ .. .继续......]

我通过从 uboot 中转储预编译的 DTB(参见附件 uboot-dts-dump.txt)并将其编辑为:

  • 使用 P2020RDB 配置文件
  • 将“中断”和“中断映射” 引用 ( * 0x######## [0x########]) 替换为引用的内存地址的 md 转储。
ethtool 报告未检测到链接且速度/双工未知。请参阅下面的输出:
root@localhost:~# ethtool ma1 ma1
设置:
支持的端口:[ MII ]
支持的链接模式:10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
支持的暂停帧使用:仅对称接收
支持自动协商:是
广告链接模式:10baseT/半 10baseT/全
100baseT/半 100baseT/全
1000baseT/完整
广告暂停帧使用:对称接收
广告自动协商:是
速度:未知!
双工:未知!(255)
端口:MII
PHYAD:1
收发器:外部
自动协商:开
当前消息级别:0x0000003f (63)
drv probe link timer ifdown ifup
检测到链接:否

mii-tool 报告自动协商已完成并且链接正常。请参阅下面的输出:
root@localhost:~# mii-tool ma1 -vvvv
使用 SIOCGMIIPHY=0x8947 ma1:协商 1000baseT-FD 流量控制, MII PHY 1 的
链接正常寄存器: 1140 796d 0020 60c1 0de1 c5e1 000d 2001 4e8a 0200 3800 0000 0000 0000 0000 3000 0000 1301 0000 0000 0101 0000 0000 0000 0400 ff1f 043e fff1 0000 337b 0000 0000产品信息:供应商 00:08:18,型号 12 rev 1基本模式:自动协商已启用基本状态:自动协商完成,链接正常功能: 1000baseT-FD 100baseTx- FD 100baseTx-HD 10baseT-FD 10baseT-HD广告:1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD 流量控制链路伙伴:1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD 流量-控制











uname -a 输出:
root@localhost:~# uname -a
Linux localhost 3.16.76-OpenNetworkLinux-85xx #1 SMP Sun Mar 19 06:16:10 UTC 2023 ppc GNU/Linux

我很乐意发布任何其他命令的输出。这不是我的专业领域,但我很乐意自己进行更多挖掘以自己解决问题。我已经到了无所事事的地步,我不确定我需要问什么问题才能得到我需要的答案。提前致谢!

**** 更多可能有帮助的粘贴输出 ****
ONIE:/ # fw_printenv
autoload=no
baudrate=9600
bdev=ram
bootcmd=run bootonie
bootdelay=10
bootdiag=setenv bootargs root=/dev/$bdev rw console=$consoledev,$baudrate $othbootargs; cp.b 0xed000000 $ramdiskaddr 0x1000000; cp.b 0xee800000 $loadaddr 0x400000; cp.b 0xeef00000 $fdtaddr 0x80000;bootm $loadaddr $ramdiskaddr $fdtaddr
bootfile=uImage
bootonie=sys_eeprom onie;运行 check_boot_reason;运行 nos_bootcmd;运行 onie_bootcmd
check_boot_reason=if test -n $onie_boot_reason; 然后 setenv onie_bootargs boot_reason=$onie_boot_reason; 运行 onie_bootcmd;菲;
clearenv=protect off eff60000 +20000;erase eff60000 +20000;protect on eff60000 +20000
consoledev=ttyS0
dhcp_user-class=powerpc-fsl_p2020rdbpca-r0_uboot
dhcp_vendor-class-identifier=uboot:powerpc-p2041-2-DNI_L7048N-r1
dtbflashaddr=0xeef00000
eth1addr=00:E0:0C:02:01:FD
eth2addr=00:E0:0C:02:02:FD
ethact=eTSEC3
ethaddr =00:30:AB:2E:45:44
ethprime=eTSEC1
fdtaddr=c00000
fdtfile=p2020ds.dtb
fsflashaddr=0xed000000
gatewayip=192.168.1.1
hostname=unknown
hwconfig=fsl_ddr:ctlr_intlv=bank,bank_intlv=cs0_cs1 ;usb1:dr_mode=主机,phy_type=ulpi
ipaddr=192.168.1.254
loadaddr=1000000
loads_echo=1
netdev=eth0
netmask=255.255.255.0
nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr - $fdtaddr
onie_args=run onie_initargs onie_platformargs
onie_bootcmd=echo Loading Open Network Install Environment ...; 回声平台:$onie_platform;回声版本:$onie_version;cp.b $onie_start $loadaddr ${onie_sz.b} && run onie_args && bootm ${loadaddr}
onie_initargs=setenv bootargs quiet console=$consoledev,$baudrate
onie_machine=fsl_p2041_kuga7048
onie_machine_rev=0
onie_platform=powerpc-p2041-2-DNI_L7 048N- r1
onie_platformargs=setenv bootargs $bootargs serial_num=${serial#} eth_addr=$ethaddr platform=$onie_platform $onie_bootargs $onie_debugargs onie_rescue=
setenv onie_boot_reason rescue && 运行 bootonie
onie_start=0xef020000
onie_sz.b=0x00f4000 0
onie_uninstall=setenv onie_boot_reason 卸载 && 运行 bootonie
onie_update =setenv onie_boot_reason update && run bootonie
onie_vendor_id=33118
onie_version=2013.11.00
oniefile=onie-kuga7048-r0.bin
onieflashaddr=0xef020000
othbootargs=cache-sram-size=0x10000
分区=scsi 0:0
perf_mode=性能
平台=f sl_p2041_kuga7048
ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr ramdiskaddr=
2000000
ramdiskfile =rootfs.ext2.gz.uboot
rootpath=/opt/nfsroot
serial#=K48DL150422142
serverip=192.168.1.111
stderr=serial
stdin=serial
stdout=serial
tftpflash=tftpboot $loadaddr $uboot; 保护 0xeff80000 +$文件大小;擦除 0xeff80000 +$文件大小;cp.b $loadaddr 0xeff80000 $文件大小;在 0xeff80000 +$filesize 上保护;cmp.b $loadaddr 0xeff80000 $filesize
uboot=u-boot.bin
uimgflashaddr=0xee800000
uplddtb=tftp $fdtaddr $serverip:$fdtfile;保护关闭 $dtbflashaddr +$filesize;擦除 $dtbflashaddr +$filesize;cp.b $fdtaddr $dtbflashaddr $filesize;保护 $dtbflashaddr +$filesize upldfs=tftp $ramdiskaddr $
serverip :$ramdiskfile;保护关闭 $fsflashaddr +$filesize;擦除 $fsflashaddr +$filesize;cp.b $ramdiskaddr $fsflashaddr $filesize;保护 $fsflashaddr +$filesize upldlinux=ping $serverip;运行 uplduimg;运行 upldfs;运行
uplddtb ;
upldonie=tftp $loadaddr $serverip:$oniefile;保护掉 $onieflashaddr +$filesize;擦除 $onieflashaddr +$filesize;cp.b $loadaddr $onieflashaddr $filesize;保护 $onieflashaddr +$filesize
uplduimg=tftp $loadaddr $serverip:$bootfile;保护关闭 $uimgflashaddr +$filesize;擦除 $uimgflashaddr +$filesize;cp.b $loadaddr $uimgflashaddr $filesize;保护 $uimgflashaddr +$filesize onie_dropbear_rsa_host_key=begin-base64@
600 @r#AAAAB3NzaC1yc2EAAAADAQABAAAAgwCXO4N0OTAhH2TxUTK3od1YASeoqGJz#4SxXOXJ68GmMPh0+uhzGThCDspDftlKPghnMynHD6dPCiyl2Ggmo9ls3WAA+#M3IgpYkKn9kq4wFuf8xuyTLfJH kyIJgjgwR9BbUWNvHEsaIX6yhnyXTMHC2x#Cwpa6J0AnAOzKq/pdpO/lq+rAAAAggF9Od4lx1jhe5ekumB0h5QbmXhfsBh+#ryEXamPWL4k3U10QGBhxIa3U+aLk+LXRDM/8w6yvhhZJqIQ xMscnJd7K9cE2#GkOyJY3zqHaUNm3CjxS0JVPhqa+m1wAc6yjmAwp6wFpP2QilfyZwZsw/SsdN#csPRCnu37za+5yuCNgiW3AEAAABCAKCtPxmPRvM+oGxR+ob0p7yX/C8BDn75#PUU WWH8YeCIMAvyjS1T7rhtrYLEmPh5CqzFPb+dG8keEIPtx+uXFJdtLAAAA#QgDw8 +uP66cUsy+oQeVvHWtMbdn2GsipTdYbZpYudQOMf3E/SYS1pDn1NbYG#kGkGd84aITwHaE6njOA3vc+yKBphIQ==#====#
onie_dropbear_dss_host_key=begin-base64@600@d#AAAAB3NzaC1kc3MAAACBAO4Lzx5WXMQkMzLHxYBxkyS2bmc2b2fB+PU43gJH#u3kTK3qy8VEg4qmYhu4iEldqYCdYIOGwl+s8I2EQwlc84lT muzUE6uSiyGE/#rUPFAog9qBTy5a0JIkzAbl9yHNkpWOUyW/eXYXtlTyG7A2koCfRRDAwOigLl#adLcoAbT0TnfAAAAFQCVUaqVCQecdbU7rYGx9Tk4W7l+MQAAAIEAt3t0Ddbn#rMsF+35Sk9A E1IGr3A+oC2w3IrDurjFzuDdGLohFdSbsViBUCPdObZyynp6i#5SuUSFe+xIpe4m9kZxOEN9ycWOdtReRFlgrvVxIrLdVKgCr0gizv7H+xobec#vaw76+ioAIJHur0aVW9zgj4CWt01dqD+p6 s4p86LXxMAAACBAOmgTOdhg5WA#nRnU4qhncYSQ6Ygos9RCKa6Bdq+tSGmpi0U9uIa+gse1I9eX560WL7QSYoWi #BIqzpm0U4orSRIllLUAUlnF9QYRKIJb/4jmWsNKP7FqYFbmq5/me/n8KLaPw#Vkg7URPW0a+aW/Mm1Y5XNd87sisxHVA62M/SYH4mAAAAFQCB3zMpIgLe4tZK#wh8/5m8hPdQ/Ug==#==== # boot-config-default=TkVUREVWPW1hMQpCT09UTU9ERT1JTlNUQUxMRUQKU1dJPWltYWdlczo6bGF0ZXN0Cg== onl_installer_initrd=onl-loader-fit.itb
:
93495c :134f992
nos_bootcmd=setenv onl_loadaddr 0x10000000;setenv onl_platform powerpc-delta-kuga7048-r0;setenv onl_itb powerpc-delta-kuga7048-r0.itb;setenv bootargs console=$consoledev,$baudrate onl_platform=$onl_platform; mmc 第 0 部分;ext2load mmc 0:1 $onl_loadaddr $onl_itb; bootm $onl_loadaddr#$onl_platform

Uboot控制台输出:
U-Boot 2013.01(2014 年 11 月 19 日 - 17:10:19)L7048N V1.0.0.4
CPU0:P2020E,版本:2.1,(0x80ea0021)
内核:E500,版本:5.1,(0x80211051)
时钟配置:
CPU0:1200 MHz,CPU1:1200 MHz,
CCB:600 MHz,
DDR:333.333 MHz(666.667 MT / s数据速率)(异步),LBC:37.500 MHz
L1:启用 D-cache 32 kB
I-cache 启用 32 kB
板:L7048N
I2C:就绪
SPI:就绪
DRAM:检测到 UDIMM 75.A83E0.G000C
2 GiB(DDR3,64 位, CL=6, ECC on)
Testing 0x00000000 - 0x7fffffff
Remap DDR
POST memory PASSED
Flash: 128 MiB
L2: 512 KB enabled
MMC: FSL_SDHC: 0
EEPROM: TlvInfo v1 len=129
PCIe1: Root Complex of Slot 1, x2, regs @ 0xffe0a000
PCIe1:总线 00 - 01
In: serial
Out: serial
Err: serial
Net: eTSEC3 处于 sgmii 模式。
eTSEC3
按任意键停止自动引导:0

ONIE安装程序环境ifconfig输出(eth2对应物理接口):
ONIE:/proc/device-tree/chosen # cat bootargs
quiet console=ttyS0,9600 serial_num=K48DL150422142 eth_addr=00:30:AB:2E:45:44 platform=powerpc-p2041-2-DNI_L7048N-r1 boot_reason=rescueONIE: /proc/device-tree/chosen # ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:E0:0C:02:01:FD
inet addr:192.168.3.1 Bcast:192.168.3.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500指标:1
RX 数据包:0 错误:0 丢弃:0 溢出:0 帧:0
TX 数据包:0 错误:0 丢弃:0 溢出:0 载体:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX字节:0 (0.0 B)
基地址:0x4000
ONIE:/proc/device-tree/chosen # ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:E0:0C:02:02:FD
inet addr:192.168.4.1 Bcast:192.168.4.255 Mask:255.255.255.0
inet6 addr: fe80 ::2e0:cff:fe02:2fd/64 范围:链接
上行广播运行多播 MTU:1500 指标:1
RX 数据包:0 错误:0 丢弃:0 超限:0 帧:0
TX 数据包:10 错误:0 丢弃:0溢出:0 载体:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:2080 (2.0 KiB)
基地址:0x6000
ONIE:/proc/device-tree/chosen # ifconfig eth2
eth2 Link encap:Ethernet HWaddr 00:30:AB:2E:45:44
inet addr:10.1.1.220 Bcast:10.1.255.255 Mask:255.255.0.0
inet6 addr: fe80 ::230:abff:fe2e:4544/64 范围:链接
上行广播运行多播 MTU:1500 指标:1
RX 数据包:5904 错误:0 丢弃:175 溢出:0 帧:0
TX 数据包:9 错误:0 丢弃:0溢出:0 载体:0
冲突:0 txqueuelen:1000
RX 字节:869187(848.8 KiB)TX 字节:1689(1.6 KiB)
基地址:0x8000

更多回帖

发帖
×
20
完善资料,
赚取积分