Check pci8086,8108.rom In cbfs, rom address for PCI: 00:02.0 = fff00038 On mainboard, rom address for PCI: 00:02.0 = fff00038 PCI Expansion ROM, signature 0xaa55, INIT size 0x10000, data ptr 0x001c PCI ROM Image, Vendor 8086, Device 8108, PCI ROM Image, Class Code 030000, Code Type 00 copying VGA ROM Image from fff00038 to 0xc0000, 0x10000 bytes biosemu_dev_init bus: 0, devfn: 10 biosemu_dev_get_addr_info: VGA device found, adding legacy resources... translate_address_array: 0: info: 60000200 bus: 00 devfn: 10 cfg_space_offset: 10 addr: 00000000f0000000 offs: 0000000000000000 size: 0000000000080000 1: info: 60000100 bus: 00 devfn: 10 cfg_space_offset: 14 addr: 000000000000f070 offs: 0000000000000000 size: 0000000000000008 2: info: 60000200 bus: 00 devfn: 10 cfg_space_offset: 18 addr: 00000000e0000000 offs: 0000000000000000 size: 0000000010000000 3: info: 60000200 bus: 00 devfn: 10 cfg_space_offset: 1c addr: 00000000f0080000 offs: 0000000000000000 size: 0000000000040000 4: info: e0002200 bus: 00 devfn: 10 cfg_space_offset: 30 addr: 00000000fff00000 offs: 0000000000000000 size: 0000000000000000 5: info: 00002200 bus: 00 devfn: 10 cfg_space_offset: 30 addr: 00000000fff00038 offs: 0000000000000000 size: 0000000000000000 6: info: 80000100 bus: 00 devfn: 10 cfg_space_offset: 00 addr: 00000000000003b0 offs: 0000000000000000 size: 000000000000000c 7: info: 80000100 bus: 00 devfn: 10 cfg_space_offset: 00 addr: 00000000000003c0 offs: 0000000000000000 size: 0000000000000020 8: info: 80000200 bus: 00 devfn: 10 cfg_space_offset: 00 addr: 00000000000a0000 offs: 0000000000000000 size: 0000000000020000 PCI Device ID: 8108, PCI Vendor ID: 8086 PCI Data Structure @c001c: dump(00157b18, 18): 00157b18: 50 43 49 52 86 80 08 81 PCIR.... 00157b20: 00 00 18 00 00 00 00 03 ........ 00157b28: 80 00 00 00 00 80 00 00 ........ Image Length: 65536 Image Code Type: 0 executing rom_image from 000c0000 biosmem at 01000000 Image Size: 65536 membase set: 01000000, size: 00100000 0:0 my_wrl: write to Interrupt Vector 10 <-- f000f065 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ff065 <-- cf 0:0 my_wrl: write to Interrupt Vector 11 <-- f000f84d 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ff84d <-- cf 0:0 my_wrl: write to Interrupt Vector 12 <-- f000f841 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ff841 <-- cf 0:0 my_wrl: write to Interrupt Vector 13 <-- f000ec59 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fec59 <-- cf 0:0 my_wrl: write to Interrupt Vector 14 <-- f000e739 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fe739 <-- cf 0:0 my_wrl: write to Interrupt Vector 15 <-- f000f859 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ff859 <-- cf 0:0 my_wrl: write to Interrupt Vector 16 <-- f000e82e 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fe82e <-- cf 0:0 my_wrl: write to Interrupt Vector 17 <-- f000efd2 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fefd2 <-- cf 0:0 my_wrl: write to Interrupt Vector 1a <-- f000fe6e 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffe6e <-- cf 0:0 my_wrw: write to BIOS Data Area: addr: 413 <-- 400 0:0 my_wrw: write to BIOS Data Area: addr: 40e <-- f600 0:0 my_wrw: write to Extended BIOS Data Area f600h, size: 0000: addr: f6000 <-- 1 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffff5 <-- 30 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffff6 <-- 36 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffff7 <-- 2f 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffff8 <-- 31 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffff9 <-- 31 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffffa <-- 2f 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffffb <-- 39 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffffc <-- 39 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fffd9 <-- 50 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fffda <-- 43 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fffdb <-- 49 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fffdc <-- 5f 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fffdd <-- 49 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fffde <-- 53 0:0 my_wrb: write to BIOS Data Segment f000h: addr: fffdf <-- 41 0:0 my_wrb: write to BIOS Data Segment f000h: addr: ffffe <-- fc 0:0 PMM Structure: dump(010f0000, 13): 010f0000: 24 50 4d 4d 01 10 e1 10 $PMM.... 010f0008: 00 00 f0 00 00 00 00 00 ........ 010f0010: cd fc cb ... 0:0 my_wrw: write to segment 0000h: addr: fffe <-- 1 0:0 my_wrl: write to segment 0000h: addr: fffa <-- deadbeef 0:0 my_wrl: write to segment 0000h: addr: fff6 <-- 10 0:0 my_wrw: write to segment 0000h: addr: fff4 <-- 0 0:0 my_wrl: write to segment 0000h: addr: fff0 <-- 0 0:0 my_rdl: read from segment 0000h: addr: fff0 --> 0 0:0 my_rdw: read from segment 0000h: addr: fff4 --> 0 0:0 my_rdl: read from segment 0000h: addr: fff6 --> 10 0:0 my_rdl: read from segment 0000h: addr: fffa --> deadbeef 0:0 my_rdw: read from segment 0000h: addr: fffe --> 1 0:0 pmm_handleInt: pmmAllocate: Length: 100, Handle: deadbeef, Flags: 1 0:0 pmm_handleInt: next_offset: 0x100 0:0 pmm_handleInt: align: 0x10 0:0 pmm_handleInt: pmmAllocate: allocated memory at 40000100 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: 100 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: allocated memory at: 4000:0100 0:0 my_wrl: write to segment 0000h: addr: ffec <-- deadbeef 0:0 my_wrw: write to segment 0000h: addr: ffea <-- 1 0:0 my_wrl: write to segment 0000h: addr: ffe6 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ffe6 --> 0 0:0 my_rdw: read from segment 0000h: addr: ffea --> 1 0:0 my_rdl: read from segment 0000h: addr: ffec --> deadbeef 0:0 pmm_handleInt: pmmFind: Handle: deadbeef 0:0 pmm_handleInt: pmmFind: found allocated memory at 0 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: 100 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: found memory at: 4000:0100 (expected: 40000100) 0:0 my_wrl: write to segment 0000h: addr: ffe2 <-- 40000100 0:0 my_wrw: write to segment 0000h: addr: ffe0 <-- 2 0:0 my_wrl: write to segment 0000h: addr: ffdc <-- 0 0:0 my_rdl: read from segment 0000h: addr: ffdc --> 0 0:0 my_rdw: read from segment 0000h: addr: ffe0 --> 2 0:0 my_rdl: read from segment 0000h: addr: ffe2 --> 40000100 0:0 pmm_handleInt: pmmDeallocate: PMM segment offset: 100 0:0 0: deadbeef 0:0 pmm_handleInt: pmmDeallocate: found allocated memory at index: 0 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: 0 offset: 0 length: 0 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: freed memory rval: 0000:0000 (expected: 0000:0000) 0:0 my_wrw: write to segment 0000h: addr: ffda <-- 1 0:0 my_wrl: write to segment 0000h: addr: ffd6 <-- deadbeef 0:0 my_wrl: write to segment 0000h: addr: ffd2 <-- 101 0:0 my_wrw: write to segment 0000h: addr: ffd0 <-- 0 0:0 my_wrl: write to segment 0000h: addr: ffcc <-- 0 0:0 my_rdl: read from segment 0000h: addr: ffcc --> 0 0:0 my_rdw: read from segment 0000h: addr: ffd0 --> 0 0:0 my_rdl: read from segment 0000h: addr: ffd2 --> 101 0:0 my_rdl: read from segment 0000h: addr: ffd6 --> deadbeef 0:0 my_rdw: read from segment 0000h: addr: ffda --> 1 0:0 pmm_handleInt: pmmAllocate: Length: 1010, Handle: deadbeef, Flags: 1 0:0 pmm_handleInt: next_offset: 0x100 0:0 pmm_handleInt: align: 0x10 0:0 pmm_handleInt: pmmAllocate: allocated memory at 40000100 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: 1010 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: allocated memory at: 4000:0100 0:0 my_wrw: write to segment 0000h: addr: ffca <-- 5 0:0 my_wrl: write to segment 0000h: addr: ffc6 <-- f00d4b0b 0:0 my_wrl: write to segment 0000h: addr: ffc2 <-- 80 0:0 my_wrw: write to segment 0000h: addr: ffc0 <-- 0 0:0 my_wrl: write to segment 0000h: addr: ffbc <-- 0 0:0 my_rdl: read from segment 0000h: addr: ffbc --> 0 0:0 my_rdw: read from segment 0000h: addr: ffc0 --> 0 0:0 my_rdl: read from segment 0000h: addr: ffc2 --> 80 0:0 my_rdl: read from segment 0000h: addr: ffc6 --> f00d4b0b 0:0 my_rdw: read from segment 0000h: addr: ffca --> 5 0:0 pmm_handleInt: pmmAllocate: Length: 800, Handle: f00d4b0b, Flags: 5 0:0 pmm_handleInt: next_offset: 0x1110 0:0 pmm_handleInt: align: 0x800 0:0 pmm_handleInt: pmmAllocate: allocated memory at 40001800 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: 1010 0:0 1: handle: f00d4b0b offset: 1800 length: 800 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: allocated memory at: 4000:1800 0:0 my_wrl: write to segment 0000h: addr: ffb8 <-- f00d4b0b 0:0 my_wrw: write to segment 0000h: addr: ffb6 <-- 1 0:0 my_wrl: write to segment 0000h: addr: ffb2 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ffb2 --> 0 0:0 my_rdw: read from segment 0000h: addr: ffb6 --> 1 0:0 my_rdl: read from segment 0000h: addr: ffb8 --> f00d4b0b 0:0 pmm_handleInt: pmmFind: Handle: f00d4b0b 0:0 pmm_handleInt: pmmFind: found allocated memory at 0 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: 1010 0:0 1: handle: f00d4b0b offset: 1800 length: 800 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 my_wrl: write to segment 0000h: addr: ffae <-- 40001800 0:0 my_wrw: write to segment 0000h: addr: ffac <-- 2 0:0 my_wrl: write to segment 0000h: addr: ffa8 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ffa8 --> 0 0:0 my_rdw: read from segment 0000h: addr: ffac --> 2 0:0 my_rdl: read from segment 0000h: addr: ffae --> 40001800 0:0 pmm_handleInt: pmmDeallocate: PMM segment offset: 1800 0:0 0: deadbeef 0:0 1: f00d4b0b 0:0 pmm_handleInt: pmmDeallocate: found allocated memory at index: 1 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: 1010 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: freed memory rval: 0000:0000 (expected: 0000:0000) 0:0 my_wrl: write to segment 0000h: addr: ffa4 <-- deadbeef 0:0 my_wrw: write to segment 0000h: addr: ffa2 <-- 1 0:0 my_wrl: write to segment 0000h: addr: ff9e <-- 0 0:0 my_rdl: read from segment 0000h: addr: ff9e --> 0 0:0 my_rdw: read from segment 0000h: addr: ffa2 --> 1 0:0 my_rdl: read from segment 0000h: addr: ffa4 --> deadbeef 0:0 pmm_handleInt: pmmFind: Handle: deadbeef 0:0 pmm_handleInt: pmmFind: found allocated memory at 0 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: 1010 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 my_wrl: write to segment 0000h: addr: ff9a <-- 40000100 0:0 my_wrw: write to segment 0000h: addr: ff98 <-- 2 0:0 my_wrl: write to segment 0000h: addr: ff94 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ff94 --> 0 0:0 my_rdw: read from segment 0000h: addr: ff98 --> 2 0:0 my_rdl: read from segment 0000h: addr: ff9a --> 40000100 0:0 pmm_handleInt: pmmDeallocate: PMM segment offset: 100 0:0 0: deadbeef 0:0 pmm_handleInt: pmmDeallocate: found allocated memory at index: 0 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: 0 offset: 0 length: 0 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: freed memory rval: 0000:0000 (expected: 0000:0000) 0:0 my_wrw: write to segment 0000h: addr: ff92 <-- 1 0:0 my_wrl: write to segment 0000h: addr: ff8e <-- deadbeef 0:0 my_wrl: write to segment 0000h: addr: ff8a <-- 0 0:0 my_wrw: write to segment 0000h: addr: ff88 <-- 0 0:0 my_wrl: write to segment 0000h: addr: ff84 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ff84 --> 0 0:0 my_rdw: read from segment 0000h: addr: ff88 --> 0 0:0 my_rdl: read from segment 0000h: addr: ff8a --> 0 0:0 my_rdl: read from segment 0000h: addr: ff8e --> deadbeef 0:0 my_rdw: read from segment 0000h: addr: ff92 --> 1 0:0 pmm_handleInt: pmmAllocate: Length: 0, Handle: deadbeef, Flags: 1 0:0 pmm_handleInt: next_offset: 0x100 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: 0 offset: 0 length: 0 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: largest possible length: 00000fef 0:0 my_wrw: write to segment 0000h: addr: ff82 <-- 1 0:0 my_wrl: write to segment 0000h: addr: ff7e <-- deadbeef 0:0 my_wrl: write to segment 0000h: addr: ff7a <-- fef 0:0 my_wrw: write to segment 0000h: addr: ff78 <-- 0 0:0 my_wrl: write to segment 0000h: addr: ff74 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ff74 --> 0 0:0 my_rdw: read from segment 0000h: addr: ff78 --> 0 0:0 my_rdl: read from segment 0000h: addr: ff7a --> fef 0:0 my_rdl: read from segment 0000h: addr: ff7e --> deadbeef 0:0 my_rdw: read from segment 0000h: addr: ff82 --> 1 0:0 pmm_handleInt: pmmAllocate: Length: fef0, Handle: deadbeef, Flags: 1 0:0 pmm_handleInt: next_offset: 0x100 0:0 pmm_handleInt: align: 0x10 0:0 pmm_handleInt: pmmAllocate: allocated memory at 40000100 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: fef0 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: allocated memory at: 4000:0100 0:0 my_wrw: write to segment 0000h: addr: ff72 <-- 1 0:0 my_wrl: write to segment 0000h: addr: ff6e <-- f00d4b0b 0:0 my_wrl: write to segment 0000h: addr: ff6a <-- 1 0:0 my_wrw: write to segment 0000h: addr: ff68 <-- 0 0:0 my_wrl: write to segment 0000h: addr: ff64 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ff64 --> 0 0:0 my_rdw: read from segment 0000h: addr: ff68 --> 0 0:0 my_rdl: read from segment 0000h: addr: ff6a --> 1 0:0 my_rdl: read from segment 0000h: addr: ff6e --> f00d4b0b 0:0 my_rdw: read from segment 0000h: addr: ff72 --> 1 0:0 pmm_handleInt: pmmAllocate: Length: 10, Handle: f00d4b0b, Flags: 1 0:0 pmm_handleInt: next_offset: 0xfff0 0:0 pmm_handleInt: align: 0x10 pmm_handleInt: pmmAllocate: Not enough memory available for allocation! 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: fef0 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: allocated memory at: 0000:0000 expected: 0000:0000 0:0 my_wrl: write to segment 0000h: addr: ff60 <-- deadbeef 0:0 my_wrw: write to segment 0000h: addr: ff5e <-- 1 0:0 my_wrl: write to segment 0000h: addr: ff5a <-- 0 0:0 my_rdl: read from segment 0000h: addr: ff5a --> 0 0:0 my_rdw: read from segment 0000h: addr: ff5e --> 1 0:0 my_rdl: read from segment 0000h: addr: ff60 --> deadbeef 0:0 pmm_handleInt: pmmFind: Handle: deadbeef 0:0 pmm_handleInt: pmmFind: found allocated memory at 0 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: deadbeef offset: 100 length: fef0 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 my_wrl: write to segment 0000h: addr: ff56 <-- 40000100 0:0 my_wrw: write to segment 0000h: addr: ff54 <-- 2 0:0 my_wrl: write to segment 0000h: addr: ff50 <-- 0 0:0 my_rdl: read from segment 0000h: addr: ff50 --> 0 0:0 my_rdw: read from segment 0000h: addr: ff54 --> 2 0:0 my_rdl: read from segment 0000h: addr: ff56 --> 40000100 0:0 pmm_handleInt: pmmDeallocate: PMM segment offset: 100 0:0 0: deadbeef 0:0 pmm_handleInt: pmmDeallocate: found allocated memory at index: 0 0:0 pmm_handleInt: dump of pmm_allocation_array: 0:0 0: handle: 0 offset: 0 length: 0 0:0 1: handle: 0 offset: 0 length: 0 0:0 2: handle: 0 offset: 0 length: 0 0:0 3: handle: 0 offset: 0 length: 0 0:0 4: handle: 0 offset: 0 length: 0 0:0 5: handle: 0 offset: 0 length: 0 0:0 6: handle: 0 offset: 0 length: 0 0:0 7: handle: 0 offset: 0 length: 0 0:0 8: handle: 0 offset: 0 length: 0 0:0 9: handle: 0 offset: 0 length: 0 0:0 pmm_test: freed memory rval: 0000:0000 (expected: 0000:0000) 0:0 PMM Structure: dump(010f0000, 13): 010f0000: 24 50 4d 4d 01 10 e1 10 $PMM.... 010f0008: 00 00 f0 00 00 00 00 00 ........ 010f0010: cd fc cb ... Executing Initialization Vector... AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=0004 NV UP DI PL NZ NA PO NC c000:0003 2e CS: AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=0008 NV UP DI PL NZ NA PO NC c000:0004: JMP WORD c000:004c AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=0008 NV UP DI PL NZ NA PO NC c000:0004 ff264a00 JMP [004a] AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=004d NV UP DI PL NZ NA PO NC c000:004c 90 NOP AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=004e NV UP DI PL NZ NA PO NC c000:004d 90 NOP AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=0051 NV UP DI PL NZ NA PO NC c000:004e: JMP NEAR c000:0061 AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=0051 NV UP DI PL NZ NA PO NC c000:004e e91000 JMP 0061 AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=0062 NV UP DI PL NZ NA PO NC c000:0061 fa CLI AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0000 DS=2000 ES=0000 SS=1000 CS=c000 IP=0065 NV UP DI PL NZ NA PO NC c000:0062 bf5100 MOV DI,51 AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0051 DS=2000 ES=0000 SS=1000 CS=c000 IP=0066 NV UP DI PL NZ NA PO NC c000:0065 2e CS: AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0051 DS=2000 ES=0000 SS=1000 CS=c000 IP=0068 NV UP DI PL NZ NA PO NC c000:0066 8c15 MOV [DI],SS c000:68 my_wrw: write to CS segment c000h: addr: c0051 <-- 1000 AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0051 DS=2000 ES=0000 SS=1000 CS=c000 IP=006b NV UP DI PL NZ NA PO NC c000:0068 bf5300 MOV DI,53 AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0053 DS=2000 ES=0000 SS=1000 CS=c000 IP=006c NV UP DI PL NZ NA PO NC c000:006b 2e CS: AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0053 DS=2000 ES=0000 SS=1000 CS=c000 IP=006e NV UP DI PL NZ NA PO NC c000:006c 8925 MOV [DI],SP c000:6e my_wrw: write to CS segment c000h: addr: c0053 <-- fff8 AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0053 DS=2000 ES=0000 SS=1000 CS=c000 IP=0071 NV UP DI PL NZ NA PO NC c000:006e bf5500 MOV DI,55 AX=0010 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0055 DS=2000 ES=0000 SS=1000 CS=c000 IP=0073 NV UP DI PL NZ NA PO NC c000:0071 8cd8 MOV AX,DS AX=2000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0055 DS=2000 ES=0000 SS=1000 CS=c000 IP=0074 NV UP DI PL NZ NA PO NC c000:0073 2e CS: AX=2000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0055 DS=2000 ES=0000 SS=1000 CS=c000 IP=0076 NV UP DI PL NZ NA PO NC c000:0074 8905 MOV [DI],AX c000:76 my_wrw: write to CS segment c000h: addr: c0055 <-- 2000 AX=2000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0055 DS=2000 ES=0000 SS=1000 CS=c000 IP=0079 NV UP DI PL NZ NA PO NC c000:0076 bf5700 MOV DI,57 AX=2000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0057 DS=2000 ES=0000 SS=1000 CS=c000 IP=007b NV UP DI PL NZ NA PO NC c000:0079 8cc0 MOV AX,ES AX=0000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0057 DS=2000 ES=0000 SS=1000 CS=c000 IP=007c NV UP DI PL NZ NA PO NC c000:007b 2e CS: AX=0000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0057 DS=2000 ES=0000 SS=1000 CS=c000 IP=007e NV UP DI PL NZ NA PO NC c000:007c 8905 MOV [DI],AX c000:7e my_wrw: write to CS segment c000h: addr: c0057 <-- 0 AX=0000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0057 DS=2000 ES=0000 SS=1000 CS=c000 IP=007f NV UP DI PL NZ NA PO NC c000:007e fb STI AX=0000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0057 DS=2000 ES=0000 SS=1000 CS=c000 IP=0080 NV UP EI PL NZ NA PO NC c000:007f 0e PUSH CS AX=0000 BX=0000 CX=0000 DX=0080 SP=fff6 BP=0000 SI=0000 DI=0057 DS=2000 ES=0000 SS=1000 CS=c000 IP=0081 NV UP EI PL NZ NA PO NC c000:0080 1f POP DS AX=0000 BX=0000 CX=0000 DX=0080 SP=fff8 BP=0000 SI=0000 DI=0057 DS=c000 ES=0000 SS=1000 CS=c000 IP=0082 NV UP EI PL NZ NA PO NC c000:0081 66 DATA: EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000080 ESP=0000fff8 EBP=00000000 ESI=00000000 EDI=00000057 DS=c000 ES=0000 SS=1000 CS=c000 EIP=00000083 NV UP EI PL NZ NA PO NC c000:0082 52 PUSH EDX AX=0000 BX=0000 CX=0000 DX=0080 SP=fff4 BP=0000 SI=0000 DI=0057 DS=c000 ES=0000 SS=1000 CS=c000 IP=0084 NV UP EI PL NZ NA PO NC c000:0083 66 DATA: EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000080 ESP=0000fff4 EBP=00000000 ESI=00000000 EDI=00000057 DS=c000 ES=0000 SS=1000 CS=c000 EIP=00000085 NV UP EI PL NZ NA PO NC c000:0084 50 PUSH EAX AX=0000 BX=0000 CX=0000 DX=0080 SP=fff0 BP=0000 SI=0000 DI=0057 DS=c000 ES=0000 SS=1000 CS=c000 IP=0086 NV UP EI PL NZ NA PO NC c000:0085 66 DATA: EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000080 ESP=0000fff0 EBP=00000000 ESI=00000000 EDI=00000057 DS=c000 ES=0000 SS=1000 CS=c000 EIP=00000087 NV UP EI PL NZ NA PO NC c000:0086 51 PUSH ECX AX=0000 BX=0000 CX=0000 DX=0080 SP=ffec BP=0000 SI=0000 DI=0057 DS=c000 ES=0000 SS=1000 CS=c000 IP=0089 NV UP EI PL NZ NA PO NC c000:0087 0f01 ILLEGAL EXTENDED X86 OPCODE c000:0087: 01 ILLEGAL EXTENDED X86 OPCODE! halt_sys: file /prdmd/coreboot-v2/src/devices/../../util/x86emu/x86emu/ops2.c, line 60 halted AX=0000 BX=0000 CX=0000 DX=0080 SP=ffec BP=0000 SI=0000 DI=0057 DS=c000 ES=0000 SS=1000 CS=c000 IP=0089 NV UP EI PL NZ NA PO NC c000:0089 e0 ILLEGAL EXTENDED X86 OPCODE done c000:89 Option ROM Exit Status: 0000 Exit Status Decode: Stack unclean, initialization probably NOT COMPLETE!! SS:SP = 1000:ffee, expected: 1000:fffe PCI: 00:1a.0 init USB Client: Setting up controller.. done. PCI: 00:1c.0 init Initializing SCH PCIe bridge. PCI: 00:1c.1 init Initializing SCH PCIe bridge. PCI: 00:1d.0 init UHCI: Setting up controller.. done. PCI: 00:1d.1 init UHCI: Setting up controller.. done. PCI: 00:1d.2 init UHCI: Setting up controller.. done. PCI: 00:1d.7 init EHCI: Setting up controller.. done. PCI: 00:1e.0 init MMC: Setting up controller.. done. PCI: 00:1e.1 init MMC: Setting up controller.. done. PCI: 00:1e.2 init MMC: Setting up controller.. done. PCI: 00:1f.0 init SCH: lpc_init PCI: 00:1f.1 init sch_ide: initializing... IDE0 Devices initialized Show all devs...After init. Root Device: enabled 1, 0 resources APIC_CLUSTER: 0: enabled 1, 0 resources APIC: 00: enabled 1, 0 resources PCI_DOMAIN: 0000: enabled 1, 4 resources PCI: 00:00.0: enabled 1, 0 resources PCI: 00:02.0: enabled 1, 5 resources PCI: 00:1a.0: enabled 1, 1 resources PCI: 00:1b.0: enabled 0, 0 resources PCI: 00:1c.0: enabled 1, 3 resources PCI: 00:1c.1: enabled 1, 3 resources PCI: 00:1d.0: enabled 1, 1 resources PCI: 00:1d.1: enabled 1, 1 resources PCI: 00:1d.2: enabled 1, 1 resources PCI: 00:1d.7: enabled 1, 1 resources PCI: 00:1e.0: enabled 1, 1 resources PCI: 00:1e.1: enabled 1, 1 resources PCI: 00:1e.2: enabled 1, 1 resources PCI: 00:1f.0: enabled 1, 2 resources PCI: 00:1f.1: enabled 1, 1 resources High Tables Base is 3f3f0000. Copying Interrupt Routing Table to 0x000f0000... done. Verifing copy of Interrupt Routing Table at 0x000f0000... done Checking Interrupt Routing Table consistency... Inconsistent Interrupt Routing Table size (0x140/0xc0). check_pirq_routing_table(): Interrupt Routing Table located at 000f0000. Interrupt Routing Table checksum is: 0xdf but should be: 0xc3. done. Copying Interrupt Routing Table to 0x3f3f0000... done. Verifing copy of Interrupt Routing Table at 0x3f3f0000... done Checking Interrupt Routing Table consistency... Inconsistent Interrupt Routing Table size (0x140/0xc0). check_pirq_routing_table(): Interrupt Routing Table located at 3f3f0000. Interrupt Routing Table checksum is: 0xdf but should be: 0x8a. done. Moving GDT to 0x3f3f0400...ok Multiboot Information structure has been written. Writing high table forward entry at 0x00000500 Wrote coreboot table at: 00000500 - 00000518 checksum b89f New low_table_end: 0x00000518 Now going to write high coreboot table at 0x3f3f0800 rom_table_end = 0x3f3f0800 Adjust low_table_end from 0x00000518 to 0x00001000 Adjust rom_table_end from 0x3f3f0800 to 0x3f400000 Adding high table area Adding UMA memory area Adding PCIe config bar Adding UMA memory area Wrote coreboot table at: 3f3f0800 - 3f3f0a20 checksum 4559 Check CBFS header at fffeffd0 magic is 4f524243 Found CBFS header at fffeffd0 Check pci8086,8108.rom CBFS: follow chain: fff00000 + 38 + 10000 + align -> fff10040 Check fallback/payload Got a payload Loading segment from rom address 0xfff10078 data (compression=0) malloc Enter, size 36, free_mem_ptr 00158000 malloc 00158000 New segment dstaddr 0xef000 memsize 0x11000 srcaddr 0xfff100b0 filesize 0x11000 (cleaned up) New segment addr 0xef000 size 0x11000 offset 0xfff100b0 filesize 0x11000 Loading segment from rom address 0xfff10094 Entry Point 0x000ff80c Loading Segment: addr: 0x00000000000ef000 memsz: 0x0000000000011000 filesz: 0x0000000000011000 lb: [0x0000000000100000, 0x0000000000160000) Post relocation: addr: 0x00000000000ef000 memsz: 0x0000000000011000 filesz: 0x0000000000011000 it's not compressed! [ 0x00000000000ef000, 0000000000100000, 0x0000000000100000) <- 00000000fff100b0 Loaded segments Jumping to boot code at ff80c entry = 0x000ff80c lb_start = 0x00100000 lb_size = 0x00060000 adjust = 0x3f230000 buffer = 0x3f330000 elf_boot_notes = 0x00139aa8 adjusted_boot_notes = 0x3f369aa8 Start bios (version pre-0.4.3-20091030_222029-Mansoor) init ivt init bda init pic init timer tsc calibrate start=1115634250 end=1117518891 diff=1884641 CPU Mhz=1098 math cp init Find memory size Attempting to find coreboot table Found coreboot table forwarder. Now attempting to find coreboot memory map Add to e820 map: 00000000 00001000 2 Add to e820 map: 00001000 0009f000 1 Add to e820 map: 000c0000 3f330000 1 Add to e820 map: 3f3f0000 00010000 2 Add to e820 map: 3f400000 00400000 2 Add to e820 map: 3faf0000 00010000 2 Add to e820 map: e0000000 10000000 2 Add to e820 map: 00000000 00004000 1 Found mainboard iWrainbow G6 Found CBFS header at 0xfffeffd0 Add to e820 map: 000a0000 00050000 -1 Add to e820 map: 0009f400 00000c00 2 Add to e820 map: 000f0000 00010000 2 Ram Size=0x3f3f0000 Found 1 cpu(s) max supported 1 cpu(s) malloc setup Add to e820 map: 3f3e0000 00010000 2 init PMM init PNPBIOS table Scan for VGA option rom Attempting to init PCI bdf 00:02.0 (dev/ven 81088086) Searching CBFS for prefix pci8086,8108.rom Found CBFS file pci8086,8108.rom Copying data 65536@0xfff00038 to 194560@0x000c0000 Checking rom 0x000c0000 (sig aa55 size 128) Running option rom at c000:0003 fail handle_155fXX:23(86): a=3fbb5f40 b=00000000 c=00007862 d=0000c000 ds=a000 es=0000 ss=a000 si=00000006 di=0000369e bp=00007854 sp=0000784e cs=c000 ip=1d1b f=0246 fail handle_155fXX:23(86): a=3fbb5f36 b=000008c1 c=00007862 d=0000003b ds=a000 es=0000 ss=a000 si=00000006 di=00007850 bp=00007854 sp=0000784e cs=c000 ip=1dd2 f=0202 fail handle_155fXX:23(86): a=00005f35 b=000003b0 c=00000000 d=0000f074 ds=a000 es=0000 ss=a000 si=000008c1 di=0000783e bp=00007840 sp=0000783e cs=c000 ip=1ad6 f=0202 fail handle_155fXX:23(86): a=00005f38 b=000808c1 c=00080003 d=0000c000 ds=a000 es=c000 ss=a000 si=00000000 di=00000003 bp=00007812 sp=00007804 cs=c000 ip=3115 f=0202 fail handle_155fXX:23(86): a=22045f33 b=00005003 c=000000a2 d=00000e06 ds=a000 es=0000 ss=a000 si=00000000 di=00000000 bp=000077fa sp=000077de cs=c000 ip=353b f=0246 fail handle_155fXX:23(86): a=00005f38 b=000008c1 c=00000003 d=0000c000 ds=a000 es=c000 ss=a000 si=00000000 di=00000003 bp=00007846 sp=00007838 cs=c000 ip=3115 f=0202 fail handle_155fXX:23(86): a=22045f33 b=00005003 c=00000000 d=00000e06 ds=a000 es=0000 ss=a000 si=00000000 di=00000000 bp=0000782e sp=00007812 cs=c000 ip=353b f=0246 fail handle_155fXX:23(86): a=00005f31 b=000008c1 c=00000008 d=000003c4 ds=a000 es=0000 ss=a000 si=00000006 di=00007850 bp=00007854 sp=0000784e cs=c000 ip=1e7a f=0202