I'm working with the custom board with AM4378 and DP83867 on it. DP83867 connected to AM4378 using RGMII interface (schematics attached). I need it to boot over ethernet. I'm using U-Boot 2014.07 modified for use with this board, booting from SD and eMMC with this U-Boot is tested and works fine.
Load from TFTP and start of U-Boot SPL works fine, but on a stage of initialization of EMAC by SPL and sending BOOTP packets I faced with problem. CPSW is initialized and I can see incoming broadcast packets (I added packet dump to code of cpsw_recv function and compared dump with Wireshark info), but when U-Boot SPL sends BOOTP packets to network I do not see these packets in Wireshark, but I can see network interface LED blinking when packet is sent - so I guess packets are sent in some malformed shape.
In the course of experiments, I built a variant of the U-Boot SPL that is loaded from the SD card, but tries to proceed boot from the network. Using this SPL I found the following: if the boot sequence configured so the ROM first tries to boot from SD - everything works fine, SPL successfully sends BOOTP packets to the network and I see these in Wireshark. But, if the ROM first tries to boot from ethernet and after that boots my SPL from SD-card - in this case the same SPL does not send BOOTP packets (LED blinking but Wireshark show nothing). I guess the ROM during EMAC/PHY configuration for network boot does something that prevents my U-Boot SPL from function normal in sending packets.
In the SPL code during initialization I reset both CPSW and PHY but it does not help.
How can I fix this problem?
/cfs-file/__key/communityserver-discussions-components-files/791/DP83867.pdf
/cfs-file/__key/communityserver-discussions-components-files/791/AM4378.pdf