Re: x86 embedded - Problem getting past 'move compressed kernel before decompression'

From: Graeme Russ
Date: Mon Mar 01 2010 - 06:56:25 EST


Graeme Russ wrote:
> Graeme Russ wrote:
>> On Sun, Feb 21, 2010 at 4:53 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
>>> On 02/20/2010 09:45 PM, H. Peter Anvin wrote:
>>>

> I borrowed __show_regs() from process_32.c and implemented crash dump and
> break dump handlers in u-boot. So now I can int3 and dump all registers.
>
>
> I don't understand what is going on with SS and ESP, but everything else is
> looking good up until:
> jmp *%eax
>
> At which point, eax appears to hold a reasonably value. But:
>
> boot > md 5379c4
> 005379c4: c11c0e7f b0c2ea61 2d43c068 f02e6fa0 ....a...h.C-.o..

> I would have expected a 0xcc at 0x005379c4.
>

I have done a little more digging. By adding an ascii string before
relocated: label, I am able to determine that the int3 after the relocated:
label exists in bzImage at offset 0x1C3FD7

EAX holds (for the jump) 0x5379d0 (different bzImage of course). The
contents of memory at this address is in bzImage at offset 0x1C09D7 - A
difference of 0x3600 (seems too even to be random)

I'm obviously doing something hideously wrong, but what?

Regards,

Graeme


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