On 03/07/13 01:53, Kevin O'Connor wrote: > On Thu, Mar 07, 2013 at 12:12:08AM +0100, Aurelien Jarno wrote: >> On Wed, Mar 06, 2013 at 08:21:11AM +0000, Dietmar Maurer wrote: >>> Using qemu 1.4.0: >>> >>> # qemu -hda test.raw -m 512 -cdrom >>> pfSense-LiveCD-2.0.2-RELEASE-amd64-20121207-2239.iso >>> >>> Results in: >>> >>> trap 12: page fault while in kernel mode >>> ... >>> stopped at x86bios_emu_rdw+0x2f: movzwl (%rbx),%eax >>> >>> Any ideas? Can somebody reproduce that? >>> >>> To get the FreeBSD VM boot use the console, enter the boot loader, then: >>> # set hint.atkbd.0.disabled="1" >>> # boot >>> >>> But that disables the keyboard.
Apparently the call may come from get_typematic() [sys/dev/atkbdc/atkbd.c]; it wants to retrieve the typematic rate of the keyboard using the BIOS. >> >> I was actually digging about that problem. It is indeed present in >> version 1.4.0, but is fixed in the current git master. The problem is >> actually not directly in QEMU but in seabios, the update to version >> 1.7.2.1 commit 5c75fb10) fixes the issue. Maybe it is worth >> cherry-picking it into stable-1.4 (hence the Cc:). In the meantime >> using bios.bin from master with QEMU version 1.4.0 should also fix the >> issue. >> >> What is strange is the seabios commit fixing the issue: >> >> commit 4219149ad2b783abfa61e80e9e9f6910db0c76c9 >> Author: Kevin O'Connor <ke...@koconnor.net> >> Date: Sun Feb 17 10:56:10 2013 -0500 >> >> build: Don't require $(OUT) to be a sub-directory of the main >> directory. > > That change is definitely just build related - I don't see how it > could impact the final SeaBIOS binary. How did you conclude that this > commit is what fixes the issue? Going out on a limb, I suspect qemu commit 5f876756 instead. (It's a bit risky for me to say that, as Aurelien may have taken qemu-1.4.0 as fixed point and bisected seabios rel-1.7.2..rel-1.7.2.1 against it: $ git log --oneline --reverse rel-1.7.2..rel-1.7.2.1 f396871 Update tools/acpi_extract.py to handle iasl 20130117 release. 12e8199 USB-EHCI: Fix null pointer assignment d75c22f Fix Makefile - don't reference "out/" directly, instead use "$(OUT)". 4219149 build: Don't require $(OUT) to be a sub-directory of the main directory. e5fe4f9 Verify CC is valid during build tests. 2b57726 seabios q35: Enable all PIRQn IRQs at startup 985a9d3 seabios q35: Add new PCI slot to irq routing function 88cb66e seabios: Add a dummy PCI slot to irq mapping function ) I'm suspecting said qemu commit because: - it's the final commit in 1.4 for file "pc-bios/bios.bin", - somewhat out of the ordinary, apparently, it was Anthony to rebuild the bios, and he used gcc-4.7.2 on Fedora 18, - while normally Gerd does the updates (see both before and after 5f876756), and I know for a fact Gerd uses RHEL-6. I think the gcc version Anthony was using miscompiled SeaBIOS (in the sense that FreeBSD chokes on it), and the 1.7.2.1 binary from Gerd restores peace *only* because Gerd relied on RHEL-6 gcc, and not because of the SeaBIOS changes from 1.7.2 to 1.7.2.1. $ git log --reverse -- pc-bios/bios.bin Probably works, but never appeared in a separate release: commit 3588185b8396eb97fd9efd41c2b97775465f67c4 Author: Gerd Hoffmann <kra...@redhat.com> Date: Mon Jan 21 09:17:16 2013 +0100 seabios: update to 1.7.2 release Not that many changes as we have a pretty recent git snapshot in master already: Hannes Reinecke (1): megasas: Invert PCI device selection Kevin O'Connor (2): Minor: Separate UUID display from F12 boot prompt. boot: Support "halt" in the boot order to prevent default boot attempts. Laszlo Ersek (1): display_uuid(): fix incomplete check after the loop Paolo Bonzini (1): vgabios: implement AX=1120H..1124H functions Exposes problem (released in qemu-1.4.0): commit 5f876756c57c15f5e14d4136fc432b74f05f082b Author: Anthony Liguori <aligu...@us.ibm.com> Date: Wed Feb 6 05:12:06 2013 -0600 bios: recompile BIOS SeaBIOS is really close to spilling over to 256k. Until we can better handle migration across RAM block size changes, recompile SeaBIOS with a compiler that causes the binary to still fit in 128k. This was built with: gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC) On 64-bit Fedora 18. Signed-off-by: Anthony Liguori <aligu...@us.ibm.com> Works again (unreleased), according to Aurelien's testing: commit 5c75fb10029c5fd1e705a6ef5d698fbea06c7a33 Author: Gerd Hoffmann <kra...@redhat.com> Date: Thu Feb 28 09:18:56 2013 +0100 update seabios to 1.7.2.1 Alex Williamson (3): seabios q35: Enable all PIRQn IRQs at startup seabios q35: Add new PCI slot to irq routing function seabios: Add a dummy PCI slot to irq mapping function Avik Sil (1): USB-EHCI: Fix null pointer assignment Kevin O'Connor (4): Update tools/acpi_extract.py to handle iasl 20130117 release. Fix Makefile - don't reference "out/" directly, instead use "$(OUT)". build: Don't require $(OUT) to be a sub-directory of the main directory. Verify CC is valid during build tests. Signed-off-by: Gerd Hoffmann <kra...@redhat.com> (I re-wrapped the commit messages for legibility.) Laszlo