Hello,
I am running LinuxBios + ADLO with QEMU. Strangely, biosdecode now outputs nothing.
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
Many thanks, Jun
Hello Jun,
On Wed, Dec 05, 2007 at 12:54:42PM +0900, Jun Koi wrote:
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
This is on purpose.
One motivation for LB is that most if not all interfaces that are associated with the term BIOS should be deprecated.
LB does not strive to be BIOS compatible by design.
Instead of offering callbacks, LB wants a linear program flow during boot, where initialization hands over to a payload, which hands over to the operating system, which then, in fact, operates the system.
This is a slightly new concept also for operating systems, since they are used to relying on the BIOS at least for some things, but we are making (admittedly pretty slow so far) progress.
//Peter
Peter Stuge wrote:
Hello Jun,
On Wed, Dec 05, 2007 at 12:54:42PM +0900, Jun Koi wrote:
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
This is on purpose.
One motivation for LB is that most if not all interfaces that are associated with the term BIOS should be deprecated.
LB does not strive to be BIOS compatible by design.
But this is not true for Jun's setting with LinuxBIOS + ADLO.
I don't think we remove anything on purpose there.
Jun, maybe you are using the 64k Qemu BIOS instead of the 128K version? In that case you won't see BIOS32 services.
On 12/5/07, Stefan Reinauer stepan@coresystems.de wrote:
Peter Stuge wrote:
Hello Jun,
On Wed, Dec 05, 2007 at 12:54:42PM +0900, Jun Koi wrote:
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
This is on purpose.
One motivation for LB is that most if not all interfaces that are associated with the term BIOS should be deprecated.
LB does not strive to be BIOS compatible by design.
But this is not true for Jun's setting with LinuxBIOS + ADLO.
I don't think we remove anything on purpose there.
Jun, maybe you are using the 64k Qemu BIOS instead of the 128K version? In that case you won't see BIOS32 services.
Hmmm... indeed! My bios.bin size is 64KB. I am using the bios coming with ADLO (bochs/bios/ in ADLO directory)
So I understand that the 64KB bios only provides 16bit BIOS, and the 128KB (which is catted by 16bit (64K) + 32bit (another 64K)) provides both 16bit & 32bit BIOS?
If that is correct, how to get the 128K BIOS now?
Thanks, Jun
On 12/5/07, Stefan Reinauer stepan@coresystems.de wrote:
Peter Stuge wrote:
Hello Jun,
On Wed, Dec 05, 2007 at 12:54:42PM +0900, Jun Koi wrote:
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
This is on purpose.
One motivation for LB is that most if not all interfaces that are associated with the term BIOS should be deprecated.
LB does not strive to be BIOS compatible by design.
But this is not true for Jun's setting with LinuxBIOS + ADLO.
I don't think we remove anything on purpose there.
Yes, I guess the information (biosdecode) must be there, as I use Boch BIOS with LinuxBIOS, but not LinuxBIOS only.
And interestingly, there is no option to make 32bit BIOS in ADLO/bochs/bios/Makefile. I simply generated bochs/bios/bios.bin by running "make" inside ADLO/
So I think the question becomes: how to get 32bit BIOS now?
Thanks, Jun
-----Original Message----- From: linuxbios-bounces@linuxbios.org [mailto:linuxbios- bounces@linuxbios.org] On Behalf Of Jun Koi On 12/5/07, Stefan Reinauer stepan@coresystems.de wrote:
Peter Stuge wrote:
Hello Jun,
On Wed, Dec 05, 2007 at 12:54:42PM +0900, Jun Koi wrote:
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
This is on purpose.
One motivation for LB is that most if not all interfaces that are associated with the term BIOS should be deprecated.
LB does not strive to be BIOS compatible by design.
But this is not true for Jun's setting with LinuxBIOS + ADLO.
I don't think we remove anything on purpose there.
Yes, I guess the information (biosdecode) must be there, as I use Boch BIOS with LinuxBIOS, but not LinuxBIOS only.
And interestingly, there is no option to make 32bit BIOS in ADLO/bochs/bios/Makefile. I simply generated bochs/bios/bios.bin by running "make" inside ADLO/
So I think the question becomes: how to get 32bit BIOS now?
You need to add a new version of the loader since the BIOS is larger, and use the larger elf header.
I'm planning on doing that in the near future.
Myles
On 12/5/07, Myles Watson myles@pel.cs.byu.edu wrote:
-----Original Message----- From: linuxbios-bounces@linuxbios.org [mailto:linuxbios- bounces@linuxbios.org] On Behalf Of Jun Koi On 12/5/07, Stefan Reinauer stepan@coresystems.de wrote:
Peter Stuge wrote:
Hello Jun,
On Wed, Dec 05, 2007 at 12:54:42PM +0900, Jun Koi wrote:
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
This is on purpose.
One motivation for LB is that most if not all interfaces that are associated with the term BIOS should be deprecated.
LB does not strive to be BIOS compatible by design.
But this is not true for Jun's setting with LinuxBIOS + ADLO.
I don't think we remove anything on purpose there.
Yes, I guess the information (biosdecode) must be there, as I use Boch BIOS with LinuxBIOS, but not LinuxBIOS only.
And interestingly, there is no option to make 32bit BIOS in ADLO/bochs/bios/Makefile. I simply generated bochs/bios/bios.bin by running "make" inside ADLO/
So I think the question becomes: how to get 32bit BIOS now?
You need to add a new version of the loader since the BIOS is larger, and use the larger elf header.
You mean the new version of ADLO is needed?
I'm planning on doing that in the near future.
Anything I can help here? Or if you can give some hints, I will try to do something (Currently I am not used to the ADLO code yet)
Thanks, Jun
You need to add a new version of the loader since the BIOS is larger,
and
use the larger elf header.
You mean the new version of ADLO is needed?
Yes,
The file loader.s copies the BIOS into RAM and sets up the CMOS values. If you use the 32-bit BIOS, you need to make sure all of it gets copied. I was also messing around with this because the loader needs to be 4k-aligned to work with kexec, and that's the pathway I want to use.
I'm planning on doing that in the near future.
Anything I can help here? Or if you can give some hints, I will try to do something (Currently I am not used to the ADLO code yet)
These emails are from my latest progress. I hope to get back to it soon, but I'd love it if you beat me to it.
http://www.mail-archive.com/linuxbios@linuxbios.org/msg12748.html http://www.mail-archive.com/linuxbios@linuxbios.org/msg12724.html
Feel free to ask specific questions once you're digging.
Thanks, Myles
Thanks, Jun
Jun Koi wrote:
Hello,
I am running LinuxBios + ADLO with QEMU. Strangely, biosdecode now outputs nothing.
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
They simply aren't necessary for QEMU ;) LinuxBIOS doesn't provide BIOS callbacks, hence no BIOS32. There's a PIRQ table in the QEMU directory, but since there are no "real" interrupts, it's not needed, and isn't built by default. And there's no need for power management in a virtual machine, so that's not provided either. PIRQ tables and ACPI are supported by LinuxBIOS, but which of these are included/used depends on the person who writes the port.
-Corey
On 12/5/07, Corey Osgood corey.osgood@gmail.com wrote:
Jun Koi wrote:
Hello,
I am running LinuxBios + ADLO with QEMU. Strangely, biosdecode now outputs nothing.
If I use the original QEMU BIOS, at least biosdecode reports BIOS32 Service Dir + PCI IRQ table + ACPI.
So why LinuxBIOS removes those information?
They simply aren't necessary for QEMU ;) LinuxBIOS doesn't provide BIOS callbacks, hence no BIOS32. There's a PIRQ table in the QEMU directory, but since there are no "real" interrupts, it's not needed, and isn't built by default. And there's no need for power management in a virtual machine, so that's not provided either.
This is not always true. I heard about of some projects (Xen related) which try to do some power management for VMs (so for example they can slow down when the system is on battery). And to do that, the VMs must be aware of the power status of the (physical) system.
Thank you, Jun