Hello
I have a Xilinx FPGA which is reading from flash memory in order to boot an attached 6472 via Ethernet.
The FPGA receives the boot announcement from the 6472 and this decodes correctly, but I'm not totally sure what EXACTLY the FPGA should respond with.
The test packet I have should just write to one memory location which I can check with Code Composer (CCS).
There's no high-level functions available from the FPGA, so the boot packet is simply constructed as follows:
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xD5, // preamble
0x3C, 0x2D, 0xB7, 0x7C, 0x72, 0x98, // dest MAC - this is the MAC the FPGA receives from the boot announcement.
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, // src MAC, ipv4
0x45, 0x00, 0x00, 0x34, 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0xAA, 0xB9, // ipv4, len 0034, id, ttl, protocol, chksum - I'm sure these bytes are ok.
0,0,0,0, 0,0,0,0, // src ip, dst ip
0x00, 0x43, 0x00, 0x44, 0x00, 0x20, 0x00, 0x00, // src port, dst port, len 0020, chksum - I'm not sure about the port numbers?
0x54, 0x4B, 0x01, // magic #, opcode
0x00, 0,0,0,0, 0,0,0,4, 0,0x80,0x80,0, 0x12,0x34,0x56,0x78, 0,0,0,0 - sequence 0, execution address 0, length 4, destination 0x00808000, data 0x12345678, 0 to terminate
Using CCS I can see the received packet is ok (it's stored at 0x00F00000) and the EMAC0 registers indicate that there is no CRC and a good rx frame. But the address 0x00808000 does not contain 0x12345678. Why is this?
If anyone has a simple boot packet I can test that'd also be a great start. Thanks.