Re: [GIT PULL] x86 setup: correct booting on 486 (revised)

Jeremy Fitzhardinge
2007-11-06T01:19:34Z

H. Peter Anvin wrote:
> Yes; specifically, boot_params.hdr.hardware_subarch == 0 (as opposed
> to compile-time subarchitectures, like Voyager, which still boots the
> same way as far as I know.)

Yes, though it would be nice to use this mechanism to deal with voyager
booting too, so that it can be normalized as a pvop backend rather than
a separate build target.

> It would definitely be good to document what other values in this
> field changes, of course.

Yep.

> Specifically, with this bit set the decompression code won't touch the
> segment registers at all, and it's up to the caller to have all code
> and data segments set up with suitable descriptors. The kernel will
> still try to install its own GDT when the kernel proper starts; this
> becomes a hardware_subarch issue.

Yes, the "setup proper kernel gdt" is part of the hwsubarch-specific
startup code.

Another thing it would be nice to add is an elf-note-like notion so that
the kernel can export arbitrary key/value data to the bootloader (ie,
the converse of the bootloader->kernel value list). Xen currently does
this via ELF notes, but any semanically equivalent mechanism would do.
It's probably simpler than trying to work out how to mush bzimage and
ELF together.

J