Hi all,
Whilst looking at Jakub's bug report here https://bugs.launchpad.net/qemu/+bug/942299, I've been working on a patch to correct the QEMU interrupt handler on qemu-ppc. Now that this bug is close to being fixed, I've had a look at OpenBIOS to find out why newer versions of OpenBIOS freeze before the HelenOS loading screen.
A local git bisect shows that the culprit is actually this commit:
commit b6de01a59394f1fafbfb2c65cb784c9d23067fa2 Author: laurent laurent@f158a5a8-5612-0410-a976-696ce0be7e32 Date: Tue Aug 4 21:08:37 2009 +0000
Allows to configure screen size from Qemu command line options using FW_CFG interface. Only enabled for PPC/QEMU and VGA/VBE.
git-svn-id: svn://openbios.org/openbios/trunk@538 f158a5a8-5612-0410-a976-696ce0be7e32
Having stepped through vga_vbe_init() in drivers/vga_vbe.c, the only difference is that reading the display depth from the QEMU FW CFG interface returns 15 instead of the in-built OpenBIOS default of 8.
So is a bit-depth of 15 supported by OpenBIOS? This seems quite unusual given that it is not a power of 2; however if I use GDB to override the value to 16 then HelenOS boots but with a blue screen BIOS on VGA so I'm not sure that is the correct solution either. Does anyone know what the default bit-depth is in Apple's firmware?
ATB,
Mark.
On Fri, 2012-03-16 at 16:44 +0000, Mark Cave-Ayland wrote:
Hi all,
Whilst looking at Jakub's bug report here https://bugs.launchpad.net/qemu/+bug/942299, I've been working on a patch to correct the QEMU interrupt handler on qemu-ppc. Now that this bug is close to being fixed, I've had a look at OpenBIOS to find out why newer versions of OpenBIOS freeze before the HelenOS loading screen.
I observed that as well, it hangs some time during the display of the boot messages.
A local git bisect shows that the culprit is actually this commit:
commit b6de01a59394f1fafbfb2c65cb784c9d23067fa2 Author: laurent laurent@f158a5a8-5612-0410-a976-696ce0be7e32 Date: Tue Aug 4 21:08:37 2009 +0000
Allows to configure screen size from Qemu command line options
using FW_CFG interface. Only enabled for PPC/QEMU and VGA/VBE.
I'm surprised by that. This has worked well for a long time, I think something else in qemu causes that commit to fail.
git-svn-id: svn://openbios.org/openbios/trunk@538 f158a5a8-5612-0410-a976-696ce0be7e32
Having stepped through vga_vbe_init() in drivers/vga_vbe.c, the only difference is that reading the display depth from the QEMU FW CFG interface returns 15 instead of the in-built OpenBIOS default of 8.
AFAIK that's been working fine for a while...
So is a bit-depth of 15 supported by OpenBIOS? This seems quite unusual given that it is not a power of 2; however if I use GDB to override the value to 16 then HelenOS boots but with a blue screen BIOS on VGA so I'm not sure that is the correct solution either. Does anyone know what the default bit-depth is in Apple's firmware?
Cheers, Ben.
On 16/03/12 20:59, Benjamin Herrenschmidt wrote:
I observed that as well, it hangs some time during the display of the boot messages.
A local git bisect shows that the culprit is actually this commit:
commit b6de01a59394f1fafbfb2c65cb784c9d23067fa2 Author: laurentlaurent@f158a5a8-5612-0410-a976-696ce0be7e32 Date: Tue Aug 4 21:08:37 2009 +0000
Allows to configure screen size from Qemu command line options
using FW_CFG interface. Only enabled for PPC/QEMU and VGA/VBE.
I'm surprised by that. This has worked well for a long time, I think something else in qemu causes that commit to fail.
git-svn-id: svn://openbios.org/openbios/trunk@538 f158a5a8-5612-0410-a976-696ce0be7e32
Having stepped through vga_vbe_init() in drivers/vga_vbe.c, the only difference is that reading the display depth from the QEMU FW CFG interface returns 15 instead of the in-built OpenBIOS default of 8.
AFAIK that's been working fine for a while...
So is a bit-depth of 15 supported by OpenBIOS? This seems quite unusual given that it is not a power of 2; however if I use GDB to override the value to 16 then HelenOS boots but with a blue screen BIOS on VGA so I'm not sure that is the correct solution either. Does anyone know what the default bit-depth is in Apple's firmware?
For those people not on the HelenOS/qemu-ppc lists, I can confirm that the bug is actually in HelenOS which currently doesn't work with non-8-bit displays. In the meantime, you can boot HelenOS with my QEMU PPC modified interrupt patch and a recent OpenBIOS by forcing the bit-depth to 8 using "-g 800x600x8" on the QEMU command line.
ATB,
Mark.