[EMAIL PROTECTED] 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
--
[EMAIL PROTECTED], [EMAIL PROTECTED]
http://home.pages.de/~hohmuth/
_______________________________________________
Bug-grub mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-grub