> Followup to: <m1elk7d37d.fsf@frodo.biederman.org>
> By author: ebiederm@xmission.com (Eric W. Biederman)
> In newsgroup: linux.dev.kernel
> >
> > - Code at that entry point to query from the firmware/BIOS the
> > information the kernel needs.
> >
>
> How do you query from the 16-bit firmware/BIOS at the 32-bit
> entrypoint? Or is it that you have a table, fixed by protocol, of
> what information is available (so we're basically fucked when
> something needs to change)?
I drop back into real mode. Run the existing query code, (I had to factor
setup.S but the queries are 100% the same) and then I climb back to
32bit mode. But I do it from setup_arch() so if I don't have a
pcbios, I can skip all that nasty busyness.
I did it the wrong way (fixed table) initially and after some
conversations with you and some thinking I changed it around.
There is nothing outside the ELF specification that needs to be used.
All I depend on is having flat 32bit code and data segments, initially
loaded in %cs and %ds. So basically anyones x86 ELF bootloader should
work.
I have defined a fully optional table of tagged elements, so the
bootloader can tell me what kind of firmware I have. All it passes
besides that is the bootloader name and the bootloader version. So
you must do the bios queries yourself.
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/