Hello, i have a custom made board with ARM3352 using uboot 5.6.0 october 2012 and a RGMII link to 80E1118 PHY. At u-boot prompt i try to ping myself and got the following output :
U-Boot# ping 192.168.213.53
link up on port 0, speed 100, full duplex
Using cpsw device
ping failed; host 192.168.213.53 is not alive
1) according to documentation :AM335x reference manuel page 1725 , i verified with printf the following registers :
Ucpgmac0clkctrl = 2
cpswclkstctrl = 12
2) on rgmii2_rclk we do have clock of 25MHz, but nothing on rgmii2_tclk
3) i programmed the mux :
{OFFSET(gpmc_a0), MODE(2) | RXUNACTIVE | PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a1), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a6), MODE(2) | RXUNACTIVE | PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a7), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a2), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a3), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a4), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a5), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a8), MODE(2) | RXACTIVE | PULLUDEN }, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a9), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a10), MODE(2) | RXACTIVE | PULLUDEN}, // | AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a11), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},
4) MDIO commands are OK (acces to PHY registers are OK from u-boot prompt)
5) in board.c i made the #define RGMII_MODE_ENABLE 0x3A according to erratas for Silicon Revisions 2.1, 2.0, 1.0 and called
cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_RGMII;
6) in phy.c i called get_phy_device(bus, addr, PHY_INTERFACE_MODE_RGMII) instead of phydev = get_phy_device(bus, addr, PHY_INTERFACE_MODE_MII);
->Should there be a clock allways present on rgmii2_tclk pin ? or only when ping command is sent ?
->why ping could'nt not work ? What else can i check ?
-> is there a patch i didn't apply ?
Thanks for any help
{OFFSET(gpmc_a0), MODE(2) | RXUNACTIVE | PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a1), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a6), MODE(2) | RXUNACTIVE | PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a7), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a2), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a3), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a4), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a5), MODE(2) | RXUNACTIVE| PULLUDDIS}, //| AM33XX_PIN_OUTPUT},
{OFFSET(gpmc_a8), MODE(2) | RXACTIVE | PULLUDEN }, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a9), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a10), MODE(2) | RXACTIVE | PULLUDEN}, // | AM33XX_PIN_INPUT_PULLDOWN},
{OFFSET(gpmc_a11), MODE(2) | RXACTIVE | PULLUDEN}, //| AM33XX_PIN_INPUT_PULLDOWN},