Re: Dynamic nop selection breaks boot on Geode LX

From: Daniel Drake
Date: Sun Oct 03 2010 - 12:32:28 EST


On 3 October 2010 06:50, Borislav Petkov <bp@xxxxxxxxx> wrote:
> maybe because the Geode doesn't have both the
> P6_NOP5 and the NOP with 4 0x66 prefixes:
> http://kerneltrap.org/mailarchive/linux-kernel/2010/8/27/4612336
>
> and for some reason the trap can't find the fixup address. You say
> "hangs" so you don't even get an "invalid opcode" OOPS?

The XO doesn't have standard VGA, so it is difficult to debug such
early crashes. This is crashing so early that kernel messages don't
even start to get sent over serial.

To debug these things, I checkpoint the code with various calls which
send individual characters over serial:

static void log_serial(char c)
{
while ((inb(0x3fd) & 0x20) == 0) ;
outb(c, 0x3f8);
while ((inb(0x3fd) & 0x40) == 0) ;
}

So, I'm not really sure if/how it crashed or oops'd. However, I can
confirm that panic() does not get reached, since I put a character log
in there and it doesn't get sent. Let me know if you want me to put
character logging in other places.

I applied your two patches by hand and it doesn't solve the issue,
because the init_amd_k6() code is called long after
arch_init_ideal_nop5()

Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/