Configuring AM335x ethernet for RMII mode?

Hi Guys,

I have a new custom board coming in soon, based on the BeagleBone. The hw guys tell me that the ethernet uses RMII. In looking at the U-Boot board specific code (arch/arm/cpu/armv7/am33xx/board.c, function board_eth_init) I see the Ethernet seems to be configured for either MII mode if it’s a BeagleBone else RGMII mode:

if (board_is_bone()) {
writel(MII_MODE_ENABLE, &cdev->miisel);
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
PHY_INTERFACE_MODE_MII;
else {
writel(RGMII_MODE_ENABLE, &cdev->miisel);
cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
PHY_INTERFACE_MODE_RGMII;
}

The relevant constants are:

#define MII_MODE_ENABLE 0x0
#define RGMII_MODE_ENABLE 0xA

Does anyone know what value should be used to configure ethernet for RMII mode?

Depending on what PHY you use and the clocking mode you use, it may not matter. If the HW is not designed in a specific way, it may not work. You need an external clock to make RMII work.

I would start with the HW guys and make sure they have designed something that has a chance to work.

Gerald