Re: Dynamic nop selection breaks boot on Geode LX

From: Steven Rostedt
Date: Mon Oct 04 2010 - 14:06:13 EST


On Sun, 2010-10-03 at 17:32 +0100, Daniel Drake wrote:
> 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) ;
> }

Did you try earlyprintk? That is, on the kernel command line add:

earlyprintk=ttyS0,115200

or whatever the tty and baud rate is. This will start printing out the
serial right at kernel startup. Even before printk is configured.

-- Steve

>
> 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()
>


--
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/