openbmc / u-boot

OpenBMC "Das U-Boot" Source Tree
13 stars 51 forks source link

NCSI on AST2600 #22

Closed shenki closed 3 years ago

shenki commented 5 years ago

I am attempting to use @sammj 's ncsi patches to bring up NCSI on the ast2600. Here is the latest, with debugging turned on:

shenki commented 5 years ago
=> ncsi
Trying ftgmac@1e670000
ftgmac100_start()
ftgmac100_reset()
ftgmac100_set_mac(7edb 7e15c449)
ftgmac@1e670000: link up, 100 Mbps full-duplex mac:7e:db:7e:15:c4:49
ncsi_send_command(cmd=01)
ftgmac100_send(bd7929e0, 3c)
ftgmac100_send(): packet sent
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ncsi_timeout_handler()
ncsi_send_command(cmd=02)
ftgmac100_send(bd7929e0, 3c)
ftgmac100_send(): packet sent
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 40 received
ftgmac100_recv(): RX buffer 0, 40 received
ftgmac100_recv(): RX buffer 1, 40 received
ftgmac100_recv(): RX buffer 2, 40 received
ftgmac100_recv(): RX buffer 3, 252 received
ftgmac100_recv(): RX buffer 0, 40 received
ncsi_timeout_handler()
NCSI: no packages found
ftgmac100_stop()
shenki commented 5 years ago

Hex dumping the received packets: ncsi-dump.txt

shenki commented 5 years ago

On hardware, the first send and receive:

ftgmac100_send(bd7929e0, 3c)
 00000000: ff ff ff ff ff ff 2e 19 ca 75 76 b7 88 f8 00 01  .........uv.....
 00000010: 00 01 01 1f 00 04 00 00 00 00 00 00 00 00 00 00  ................
 00000020: 00 00 db fe ff ff 00 00 00 00 00 00 00 00 00 00  ................
 00000030: 00 00 00 00 00 00 00 00 00 00 00 00              ............
ftgmac100_send(): packet sent
ftgmac100_recv(): RX buffer 0, 40 received
 00000000: ff ff ff ff ff ff 4c 96 14 59 d7 f0 08 06 00 01  ......L..Y......
 00000010: 08 00 06 04 00 01 4c 96 14 59 d7 f0 09 29 a4 02  ......L..Y...)..
 00000020: 00 00 00 00 00 00 09 29 a4 47 00 00 00 00 00 00  .......).G......
 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 af 25 a5 b0  .............%..

In qemu:

ncsi_send_command(cmd=01)
ftgmac100_send(bd7929e0, 3c)
 00000000: ff ff ff ff ff ff 2e 99 65 0b c2 85 88 f8 00 01  ........e.......
 00000010: 00 01 01 1f 00 04 00 00 00 00 00 00 00 00 00 00  ................
 00000020: 00 00 db fe ff ff 00 00 00 00 00 00 00 00 00 00  ................
 00000030: 00 00 00 00 00 00 00 00 00 00 00 00              ............
ftgmac100_send(): packet sent
ftgmac100_recv(): RX buffer 0, 2a received
 00000000: ff ff ff ff ff ff ff ff ff ff ff ff 88 f8 00 01  ................
 00000010: 00 01 81 1f 00 04 00 00 00 00 00 00 00 00 00 00  ................
 00000020: 00 00 ff ff 7e db 48 55 16 36                    ....~.HU.6
zhdaniel12 commented 4 years ago

https://lists.denx.de/pipermail/u-boot/2018-September/341745.html not sure whether similar issue apply?

bamontales commented 3 years ago

Do we have a fix for this issue? I'm also having this on AST2600A1 EVB board.

shenki commented 3 years ago

Using the latest SDK, or the openbmc u-boot tree (which is based on the SDK), NCSI is now working.

@bamontales if you're using the EVB you're probably not using NCSI, as the Ethernet devices are direct attached phys instead of NCSI devices. Feel free to open another issue about EVB network trouble.