Re: lilo, initrd and RAM > 1GB

From: H. Peter Anvin (
Date: Tue Jan 01 2002 - 20:03:43 EST

Followup to: <>
By author: Andreas Haumer <>
In newsgroup:
> To me it looks like lilo get's the initrd start address
> wrong if there is more than 1GB of RAM in the system.
> I haven't found anything in the lilo documentation how to
> solve this problem.

The initrd end address should be obtained via the following algorithm:

        # high_addr here is the highest byte that can be occupied by
        # the initrd

        if ( bootproto >= 0x203 ) {
           high_addr := header->ramdisk_max
        } else {
           high_addr := 0x37ffffff

        high_addr := min(memsize-1, high_addr)

The "magic constant" 0x37ffffff was widely believed to have been
0x3bffffff (which it might have originally been); this value, however,
doesn't work with most kernels.

This is why the ramdisk ceiling needs to be explicitly reported by the
kernel, as is done in the 2.03 boot protocol.


<> at work, <> in private!
"Unix gives you enough rope to shoot yourself in the foot."	<>
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Mon Jan 07 2002 - 21:00:16 EST