Sungem bug or something else?

roger blofeld blofeldus at yahoo.com
Fri Jun 7 05:25:10 EST 2002


I encounter an oops during boot bringing up a sungem
interface. (smp g4 450/gcc 3.1/glibc 2.2.5) If I defer
bringing up the network at boot, I can successfully
start eth0 (sungem) if I start eth1 (tulip) first, so
it may not be the sungem driver itself. This happens
on benh 2.4.19-Bpre10, and pre9.

The area which fails (according to ksymoops) is in
sungem.c <__phy_read+54/a4>

static u16 __phy_read(struct gem *gp, int reg, int
phy_addr)
{
    u32 cmd;
    int limit = 10000;

    cmd  = (1 << 30);
    cmd |= (2 << 28);
    cmd |= (phy_addr << 23) & MIF_FRAME_PHYAD;
    cmd |= (reg << 18) & MIF_FRAME_REGAD;
    cmd |= (MIF_FRAME_TAMSB);
    writel(cmd, gp->regs + MIF_FRAME);

    while (limit--) {
        cmd = readl(gp->regs + MIF_FRAME); *** here
***
        if (cmd & MIF_FRAME_TALSB)
            break;

        udelay(10);
    }

    if (!limit)
        cmd = 0xffff;

    return cmd & MIF_FRAME_DATA;
}

The actual faulting address is 0xe20d920c (the value
of gpr0; gpr31 is 0)

0xc00de2a4 <__phy_read+80>:     lwbrx   r31,r0,r0
0xc00de2a8 <__phy_read+84>:     eieio


Any clues where I should look?
Thanks
-roger


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list