Ok, blast from the past. I have a new revision of this board and I was hoping to get it up and going with mainline u-boot and I’m so close I can taste it. I’m having the exact same issue again though, no BOOTP messages from SPL. I tried DM with SPL but that appears to still not work so I tried updating the board.c to match the EVM board.c with regards to the networking stuff with no luck.
The new stuff that looks like it handles networking in SPL:
/* CPSW plat */
#if !CONFIG_IS_ENABLED(OF_CONTROL)
struct cpsw_slave_data slave_data[] = {
{
.slave_reg_ofs = CPSW_SLAVE0_OFFSET,
.sliver_reg_ofs = CPSW_SLIVER0_OFFSET,
.phy_addr = 0,
},
{
.slave_reg_ofs = CPSW_SLAVE1_OFFSET,
.sliver_reg_ofs = CPSW_SLIVER1_OFFSET,
.phy_addr = 1,
},
};
struct cpsw_platform_data am335_eth_data = {
.cpsw_base = CPSW_BASE,
.version = CPSW_CTRL_VERSION_2,
.bd_ram_ofs = CPSW_BD_OFFSET,
.ale_reg_ofs = CPSW_ALE_OFFSET,
.cpdma_reg_ofs = CPSW_CPDMA_OFFSET,
.mdio_div = CPSW_MDIO_DIV,
.host_port_reg_ofs = CPSW_HOST_PORT_OFFSET,
.channels = 8,
.slaves = 2,
.slave_data = slave_data,
.ale_entries = 1024,
.mac_control = 0x20,
.active_slave = 0,
.mdio_base = 0x4a101000,
.gmii_sel = 0x44e10650,
.phy_sel_compat = "ti,am3352-cpsw-phy-sel",
.syscon_addr = 0x44e10630,
.macid_sel_compat = "cpsw,am33xx",
};
struct eth_pdata cpsw_pdata = {
.iobase = 0x4a100000,
.phy_interface = 0,
.priv_pdata = &am335_eth_data,
};
U_BOOT_DRVINFO(am335x_eth) = {
.name = "eth_cpsw",
.plat = &cpsw_pdata,
};
#endif
I added .phy_if = PHY_INTERFACE_MODE_RGMII,
to the salve_data struct, still with no luck.
The old code that worked back in the day has a function, board_eth_init() which is what I suspect the issue is… after 2019.04 they removed non DM networking so I assume they removed the call to this function.
Any new ideas? @RobertCNelson’s u-boot is now up to 2020.10 or something so if the EVM network boots I’m sure this has been addressed at some point in time?
Thanks!