Re: [Etherboot-developers] possible solution to initrd loaded too high
Brought to you by:
marty_connor,
stefanhajnoczi
From: <ebi...@ln...> - 2002-01-27 01:39:21
|
ke...@us... (Ken Yap) writes: > >Ken you also want to look at the changes for the linux boot protocol > >version 2.3. The kernel cannot handle ramdisk loaded above 890MB or > >so. And with 2.3 it tells you exactly how high in memory the kernel > >can cope with the ramdisk. > > > >The kernel side of that has gone into the latest prepatches of both > >2.5 & 2.4. > > Good idea, I'll hack 2.3 support in sometime. By the way do you know why > the kernel can't handle ramdisk immediately after it? First the reasons for the problem are mostly historical. The Linux kernel that first supported initrd's allocated some memory for page tables immediately after the kernel image. And the bootloaders were made to work around that problem. And no one has pushed back and asked that question yet of the kernel developers. I want to fix that during the 2.5 development cycle but we will see what happens. For 2.4.10+ it is always safe to load the initrd at 8M, (but not everyone has that much ram...) Other pieces of the puzzle are: Since the kernel is compressed you have to load the ramdisk after the decompressed kernel image. Which makes it a little trickier. Also currently the kernel allocates the bootmem bitmap that tells it what memory it can allocate immediately after it's kernel image. With 2.4.10+ this is the only data structures that would need to be allocated differently to allow loading immediately after the kernel image. Eric |