Well, I think I see your problem. Check this out:
ENTRY(startup_32) /* test KEEP_SEGMENTS flag to see if the bootloader is asking us to not reload segments */ testb $(1<<6), BP_loadflags(%esi) jnz 2f
/* * Set segments to known values. */ lgdt pa(boot_gdt_descr) movl $(__BOOT_DS),%eax movl %eax,%ds movl %eax,%es movl %eax,%fs movl %eax,%gs 2:
So things have changed a bit since the last time I did this type of thing.
It's expecting esi to point somewhere sensible (is it?) and it's expecting that somewhere to have resonable boot flags.
Now IIRC this kernel loads fine with Filo. Probably time to look and make sure you are doing what FILO does.
ron