This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Unable to get RMII to work in Linux (boot hangs) on a Custom Board similar to LogicPD AM1808EVM

Dear Help,
We have a Custom Board similar to the LogicPD AM1808EVM. We use the RMII
PHY.  It is supported on the EVM UI board as well.
My code base is DaVinci-PSP-SDK-03.21.00.04 and the Linux within it is
linux-03.21.00.04.
uboot works fine on both boards.  In fact, I use uboot TFTP to
boot both boards.  Thus I conclude that there is no hardware issue.
I now have two Linux builds, with the only differences are in
board-da850-evm.c to
account for the PINMUX and GPIO differences between the two boards.
The EVM boots to the login prompt.
The Custom Board boots to this point:
    davinci_emac_probe: using random MAC addr: 6e:a9:43:8f:6b:8d
That is
the last message.
The message after that on the EVM is:
davinci_mdio davinci_mdio.0: resetting idled controller
All messages before this point are identical with only trivial differences
(MUX: Setting register GPIO7_9; ttyS0 vs ttyS2; random MAC addr:
6e:a9:43:8f:6b:8d)
After some debugging I have determined that msleep() did not return in this
function in net/ipv4/ipconfig.c:
static int __init wait_for_devices(void)
{
int i;
msleep(CONF_PRE_OPEN);
Any help is much appreciated.
  • Hi,

    I don't know much about these kernel functions but I think msleep() should only sleep for a certain amount of time and then return. However, this msleep was removed from recent kernel versions, so maybe you should try again with the current mainline kernel. If the problem still exists there I recommend to ask the question in the netdev mailing list (netdev@vger.kernel.org).

    Regards, Christian