Peter Stuge wrote:
On Tue, Aug 14, 2007 at 09:53:44PM -0400, Corey Osgood wrote:
Please do dump say 1024 bytes at 0xc0000 before doing the BIOS init.
Alright, I'll give it a shot. I assume you mean after the bios is copied, but before it runs?
Yep.
//Peter
Okay, did that, along with a ram_check of the entire region. ram_check failed, but the bios copy seems to have worked fine (???). So I figured out there was an error in auto.c, the pci_write_config8(ctrl->d0, 0x4f, 0x1) should have been before enable_shadow_ram(). I've fixed that, and the bios copy still works fine, x86emu still has an error at line 5100 fo ops.c, but vm86.c produces a different error now, posted below. Also, the screen now turns on and comes up completely green, only with vm86.c. Also, I've been looking at the msrs from linuxbios and the factory bios, the factory bios sets up a single msr to cover the entire 512mb range, then has another msr for the last 32mb (480-512mb), presumably the vga framebuffer area. A third msr covers 479-480, dunno why, and a fourth msr is off in deep space at the 4gb range, I assume this is acpi space. I'm wondering if I need to be simulating this, setting up an msr to cover the 480-512mb range, or if the vga bios handles this.
Thanks, Corey
PCI: 01:00.0 init Initiailizing VGA... INSTALL REAL-MODE IDT DO THE VGA BIOS found VGA: vid=1106, did=3344 rom base, size: fff80000 bus/devfn = 0x100 biosint: INT# 0x6 biosint: eax 0x5f0b ebx 0x10100 ecx 0x60 edx 0x110 biosint: ebp 0x29f74 esp 0xfbe edi 0x1 esi 0xb2d4 biosint: ip 0xf85e cs 0xf000 flags 0x13 biosint: Oops, exception 6 Stack contents: 0xf85e 0xf000 0x0013 0xd163 0xc000 0x0006 0x0342 0xd89b 0x0342 0x0060 0x0044 0xb2d4 0x9f74 0x0fe2 0x0100 0x0110 0x0060 0x0342 0xb18d 0x0044 0x03b4 0x9f74 0x0ff4 0x0200 0x03c2 0x0060 0x0000 0x014e 0x9f74 0x0040 0x0046 0x97e7 0x0000 biosint: Bailing out Enable VGA console biosint: INT# 0x6 biosint: eax 0x5f08 ebx 0x8001 ecx 0x1 edx 0x0 biosint: ebp 0x20fd0 esp 0xfa8 edi 0x1 esi 0x8f30 biosint: ip 0xf85e cs 0xf000 flags 0x213 biosint: Oops, exception 6 Stack contents: 0xf85e 0xf000 0x0213 0xd125 0xc000 0x0206 0x0000 0x8003 0x9824 0x898e 0x956d 0x898e 0x9dfb 0x898e 0xa60b 0x4f14 0x86ec 0x863a 0x8600 0x86a2 0x0000 0x0000 0x03b4 0x0000 0x9f90 0x0002 0x0ff0 0x0000 0x8003 0x0000 0x0000 0x0000 0x0001 0x0000 0x4f14 0x0000 0x0000 0x0000 0x87c9 0xc000 0x0006 0x966d 0x0000 0x0046 biosint: Bailing out Unexpected Exception: 6 @ 10:ffefbfff - Halting Code: 0 eflags: 00010006 eax: 0000ffff ebx: 000003b5 ecx: 04000000 edx: 5e000018 edi: 0000003d esi: 000003b4 ebp: 00029f7c esp: 00029f60