I've managed to get all the way to jmp_to_elf_entry(), but I have run in to a snag in the assembly code which copies LinuxBIOS in to high memory and then attempts to continue execution up there.
At line 130 of arch/i386/boot/boot.c the code attempts to jump to the next instruction in its new home. (the jmp EAX). When tracing through it in bochs, however, the EAX just points to the next instruction (in low memory, where it was executing before).
The copy moves 0x12fab dwords (304kb?) from 0x04000 to 0x3fbb4154 (what on earth does this address represent?!)
I seem to pass all the ELF header checks so I don't think my problem is anywhere in the etherboot code... Can someone maybe explain what jmp_to_elf_entry() is doing here?
Regards, Andrew