T2081 on custom board, ping doesn't work (U-Boot/Linux)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

T2081 on custom board, ping doesn't work (U-Boot/Linux)

1,357 Views
francescocaiazz
Contributor II

Hello,

we are issuing some problems regarding the configuration of a working Ethernet interface on a custom board, which  is base the NXP QorIQ T2081 processor.

The SERDES configuration used in our application has SRDS_PRTCL_S1=0xBC, with all SERDES interfaces clocked with PLL1 at 100MHz.

According to this configuration we have:

  • On lanes A-B PCIe3 configured @5Gbps
  • On lane C SG1 @1.25Gbps
  • On lane D SG2 @1.25Gbps
  • On lanes E-H PCIe4 configured @5Gbps

Regarding PCIe lanes, connected to two FPGAs, everything works fine (discovery both in U-Boot and in Linux).

The SGMII interfaces are directly connected to two interfaces of a Marvell Alaska 88E1548P physical layer, whose MII interface is connected to processor’s ports EMI1_MDC/MDIO.

Both in U-Boot and in Linux we can interact with PHY registers through MDIO.

By means of Serdes Validation tool, and through direct signal acquisition with an oscilloscope, we are sure that about these lanes we have no electrical problem (we can observe SGMII Idle signals) between processor and PHY.

Furthermore, on the other side of the PHY, we can observe that when a cable connects both ports to a PC, the link is sensed as Up (through PHY’s status registers), so I think that even on these side we have working connections.

The blocking issue we are facing regards the bring-up of a working Ethernet connection on both interfaces, both in U-boot and in Linux.

By following many examples on NXP support forum, and by taking as reference the configuration made on T2081QDS board, I modified T2080RDB U-Boot sources and device tree according to what is available on our custom board (here attached you can find the modified sources for U-Boot, the modified DTS and the modified marvell.c/marvell_phy.h sources for Linux).

Fman uCode we load on flash is fsl_fman_ucode_t2080_r1.1_106_4_18.bin (the version suggested for our processor).

Anyway, in Linux I’m able to use ifconfig in order to configure both Ethernet interfaces, but when I try to perform ping test on both interfaces both in U-boot and in Linux, it always fails and destination is always described as unreachable.

Actually I have no idea about where the configuration issue is and how can I proceed in order to debug it.

It would be really useful to have some suggestion.

B.R.

Francesco

Labels (1)
0 Kudos
3 Replies

984 Views
ufedor
NXP Employee
NXP Employee

Please provide for inspection U-Boot log including environment variables and ping attempts.

0 Kudos

984 Views
francescocaiazz
Contributor II

Hi ufedor,

here what you asked

SPI boot...
Loading second stage boot loader ........................................................................... ......................

U-Boot 2016.092.0+ga06b209 (Feb 28 2018 - 19:45:43 +0100)

CPU0: T2081E, Version: 1.1, (0x85390011)
Core: e6500, Version: 2.0, (0x80400120)
Clock Configuration:
CPU0:1188 MHz, CPU1:1188 MHz, CPU2:1188 MHz, CPU3:1188 MHz,
CCB:594 MHz,
DDR:640 MHz (1280 MT/s data rate) (Asynchronous), IFC:594 MHz
FMAN1: 660 MHz
QMAN: 297 MHz
PME: 594 MHz
L1: D-cache 32 KiB enabled
I-cache 32 KiB enabled
Reset Configuration Word (RCW):
00000000: 1208000a 12000000 00000000 40000000
00000010: bc000002 00404000 58110000 21000000
00000020: 00000000 00000000 00000000 002237fc
00000030: 00000000 5000000d 00000000 00000009
Board: T2081-MFB, boot from SPI
SERDES Reference Clocks:
SD1_CLK1=100.00MHZ, SD1_CLK2=100.00MHZ
I2C: ready
SPI: ready
DRAM: 2 GiB (DDR3, 64-bit, CL=9, ECC off)
Flash: 0 Bytes
L2: 2 MiB enabled
Corenet Platform Cache: 512 KiB enabled
Using SERDES1 Protocol: 188 (0xbc)
SEC0: RNG instantiated
NAND: 1024 MiB
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
PCIe1: disabled
PCIe2: disabled
PCIe3: Root Complex, no link, regs @ 0xfe260000
PCIe3: Bus 00 - 00
PCIe4: Root Complex, no link, regs @ 0xfe270000
PCIe4: Bus 01 - 01
In: serial
Out: serial
Err: serial
Net:
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
Fman1: Uploading microcode version 106.4.18
FM1@DTSEC1 [PRIME], FM1@DTSEC2
Hit any key to stop autoboot: 0

=> printenv
baudrate=115200
bdev=sda3
bootcmd=run spi_flash_boot
bootdelay=10
bootfile=uImage
consoledev=ttyS0
eth1addr=00:04:9F:04:E3:02
ethact=FM1@DTSEC1
ethaddr=00:04:9F:04:E3:00
ethprime=FM1@DTSEC1
fdtaddr=0x2000000
fdtfile=t2080rdb/t2080rdb.dtb
fman_ucode=7faf32e0
hwconfig=fsl_ddr:ctlr_intlv=cacheline,bank_intlv=auto;usb1:dr_mode=host,phy_type=utmi
initrd_high=0xffffffff
ipaddr=100.100.100.2
loadaddr=0x1000000
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
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=0x5000000
ramdiskfile=t2080rdb/ramdisk.uboot
rootpath=/opt/nfsroot
serverip=100.100.100.10
spi_fdt_addr=0x00600000
spi_fdt_size=0x00010000
spi_flash_boot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;sf probe 0; sf read $loadaddr $spi_kernel_addr $spi_kernel_size; sf read $fdtaddr $spi_fdt_addr $spi_fdt_size; sf read $ramdiskaddr $spi_ramdisk_addr $spi_ramdisk_size; bootm $loadaddr $ramdiskaddr $fdtaddr
spi_kernel_addr=0x00120000
spi_kernel_size=0x00500000
spi_ramdisk_addr=0x00610000
spi_ramdisk_size=0x00500000
stderr=serial
stdin=serial
stdout=serial
tftpflash=tftpboot $loadaddr $uboot && protect off $ubootaddr +$filesize && erase $ubootaddr +$filesize && cp.b $loadaddr $ubootaddr $filesize && protect on $ubootaddr +$filesize && cmp.b $loadaddr $ubootaddr $filesize
uboot="u-boot.bin"
ubootaddr=0x00201000
upd_fman_nand=tftp 1000000 fsl_fman_ucode_t2080_r1.1_106_4_18.bin; if test $? -eq 0; then nand erase 180000 $filesize; nand write 1000000 180000 $filesize; else echo 'FMAN uCode load fail'; fi
upd_uboot_nand=tftp 1000000 u-boot-with-spl-pbl-nand.bin; if test $? -eq 0; then nand erase 0 $filesize; nand write 1000000 0 $filesize; else echo'u-boot load fail'; fi

Environment size: 2194/8188 bytes

=> ping 100.100.100.10
Using FM1@DTSEC1 device

ARP Retry count exceeded; starting again
ping failed; host 100.100.100.10 is not alive

When I use whireshark on my PC I don't find any kind of data coming from the board.

0 Kudos

984 Views
ufedor
NXP Employee
NXP Employee

Further issue investigation requires the design schematics inspection, so it will be convenient to create a Technical Case:

https://community.nxp.com/thread/381898

0 Kudos