[Fwd: [PATCH] PPC64: large INITRD causes kernel not to boot]

Mark Bellon mbellon at mvista.com
Thu Aug 11 01:49:32 EST 2005


Milton Miller wrote:

>>
>> -    printf("\n\rzImage starting: loaded at 0x%x\n\r", 
>> (unsigned)_start);
>> +    printf("\n\rzImage starting: loaded at 0x%lx\n\r", (unsigned 
>> long) _start);
>> +
>> +    /*
>> +     * The first available claim_base must be above the end of the
>> +     * the loaded kernel file (_start to _end) and rounded up to a
>> +     * nice 1 MB boundary.
>> +     */
>> +
>> +    claim_base = ((((unsigned long) _end) + ONE_MB - 1) / ONE_MB) * 
>> ONE_MB;
>>
>>
>
> _start and _end here are the linked runtime range of the zImage program
> not the kernel image contained therein.  This also contains the
> initrd.
>
> Milton
>
Exactly. The claim_base needs to start after the kernel and initrd. 
Since _end is above the "top" of the initrd it's perfect to use as the 
base for the round up calculation for the starting claim_base.

mark




More information about the Linuxppc64-dev mailing list