GRUB doesn't support loading a Multiboot kernel in <1MB for
now. This is a GRUB-specific restriction, but I don't think this is so
important, because:

1. Normally, you don't have to place a kernel image in <1MB
physically. Is there some good reason?

2. You can relocate it to another location easily. For example, add
relocation code into the head of it. Like this:

start:
        jmp multiboot_entry

        ...here is a Multiboot header...

multiboot_entry:
        ...initialize registers briefly if necessary...
        /* Copy it to a new location! */
        movl $start, %esi
        movl $relocated_address, %edi
        movl $size, %ecx
        shrl $2, %ecx
        rep
        movsl
        /* Start the real world */
        ljmp $FLAT_CODE_SEGMENT, $real_start_address


Okuji

Reply via email to