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