Subject: Initrd and 2.6.33 curious behaviour

From: [email-masked] (Robert Jarzmik)
Date: Mon, 24 May 2010 21:22:17 +0200

Robert Jarzmik <[email-masked]> writes:
> CONFIG_BLK_DEV_RAM is enabled. I'll add some debugging now and will try again.
>
OK, found out the culprit.
My bootloader(haret) is to be blamed : the first 6 bytes of initrd as the kernel
sees them are totally different from the actual 6 first bytes of initrd file.

The long story is that when haret stops wince MMU, it "reorders" the pages to
create a physically contiguous kernel and initrd, from the scattered pages
allocated in wince. The relocation algorithm is faulty, as it doesn't cope with
the cases where there is a double dependency (ie. a kernel page should be moved
to the page occupied by a initrd page, and the initrd page should be moved to
where resides the kernel page).

It's funny how people want to solve the hanoi towers problem without a spare
slot ...

Cheers.

--
Robert