bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: loading kernels with different LMA and VMA


From: Michael Hohmuth
Subject: Re: loading kernels with different LMA and VMA
Date: 28 Mar 2001 17:51:05 +0200

address@hidden writes:

> How do we load a kernel linked at say 0xf0100000? i tried doing that
> with a custm ldscript. I set the Load address at 0x100000 and the VMA
> at 0xf0100000. When it try loading the kernel Grub says that it
> cannnot load below 1 M is this a bug? Or an unimplemented feature. 

Perhaps an incorrect error message.  Even if GRUB could load it, it
could not run your kernel because the Multiboot standard mandates
one-to-one virtual-to-physical mappings -- that is, there is no
mapping for virtual addresses larger than the largest physical-memory
address.  In fact, paging is not even enabled when GRUB starts the
kernel.

> It looks like the only way i can remap a kernel to a higher virtual
> memory is to use the gdt otherwise i have to relocate all symbols in
> my kernel (argh).

My solution was to boot a small wrapper program that sets up a simple
page table, enables paging, copies the kernel (linked as an opaque
binary-data block into the wrapper) to its target destination, and
finally jumps to the kernel's startup code.

Michael
-- 
address@hidden, address@hidden
http://home.pages.de/~hohmuth/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]