Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add nested virtualization functionality to XMHF #20

Merged
merged 480 commits into from
Nov 30, 2022
Merged

Conversation

lxylxy123456
Copy link
Owner

No description provided.

@lxylxy123456 lxylxy123456 self-assigned this Nov 5, 2022
@@ -164,8 +164,10 @@ static void _vmx_handle_intercept_cpuid(VCPU *vcpu, struct regs *r){
:"a"(r->eax), "c" (r->ecx));

if (old_eax == 0x1U) {
#ifndef __NESTED_VIRTUALIZATION__
Copy link

@superymk superymk Nov 14, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this function, not line 167:
(1) Need definition in comments for APP_CPUID_CHAIN and APP_CPUID_SKIP
(2) Replace the asm volatile in line 162 with in _processor.h
(3) What code do I need to change in my hypapp; e.g., scode.c?

Failed to boot red OS on Dell Optiplex 7050. 2nd entry to grub2 is good, but it hangs when booting the red OS (Ubuntu 22.04 with Linux 5.9 amd64):
eXtensible Modular Hypervisor Framework (XMHF) v6.1.0
Build revision: heads/OriginalRepo/xmhf64-nest-ec537e1d506f25aba45941bf31d9cf0ca5229753
Subarch: amd64

INIT(early): initializing, total modules=3
INIT(early): detected an Intel CPU
Finding SMP info. via ACPI...
ACPI RSDP at 0x000f05b0
ACPI RSDT at 0xca4e2028
len=0x00000088, headerlen=0x00000024, numentries=25
ACPI MADT at 0xca50d310
len=0x00000084, record-length=88 bytes
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x00
rec type=0x04, length=6 bytes, flags=0x08000100, id=0x05
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x02
rec type=0x04, length=6 bytes, flags=0x08000100, id=0x05
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x04
rec type=0x04, length=6 bytes, flags=0x08000100, id=0x05
rec type=0x00, length=8 bytes, flags=0x00000001, id=0x06
rec type=0x04, length=6 bytes, flags=0x0c010100, id=0x05
rec type=0x01, length=12 bytes, flags=0xfec00000, id=0x00
rec type=0x02, length=10 bytes, flags=0x00000002, id=0x00
rec type=0x02, length=10 bytes, flags=0x00000009, id=0x09

original system E820 map follows:
0x0000000000000000, size=0x0000000000090400 (1)
0x0000000000090400, size=0x000000000000fc00 (2)
0x00000000000e0000, size=0x0000000000020000 (2)
0x0000000000100000, size=0x00000000b6900000 (1)
0x00000000b6a00000, size=0x0000000000200000 (2)
0x00000000b6c00000, size=0x0000000001d20000 (1)
0x00000000b8920000, size=0x0000000000001000 (4)
0x00000000b8921000, size=0x0000000000001000 (2)
0x00000000b8922000, size=0x000000000000e000 (1)
0x00000000b8930000, size=0x0000000000010000 (2)
0x00000000b8940000, size=0x0000000000010000 (1)
0x00000000b8950000, size=0x0000000000010000 (2)
0x00000000b8960000, size=0x0000000000010000 (1)
0x00000000b8970000, size=0x0000000000010000 (2)
0x00000000b8980000, size=0x0000000000010000 (1)
0x00000000b8990000, size=0x0000000000010000 (2)
0x00000000b89a0000, size=0x00000000104fc000 (1)
0x00000000c8e9c000, size=0x0000000001638000 (2)
0x00000000ca4d4000, size=0x0000000000046000 (3)
0x00000000ca51a000, size=0x0000000000e34000 (4)
0x00000000cb34e000, size=0x00000000006b1000 (2)
0x00000000cb9ff000, size=0x0000000000001000 (1)
0x00000000cba00000, size=0x0000000004600000 (2)
0x00000000f0000000, size=0x0000000008000000 (2)
0x00000000fe000000, size=0x0000000000011000 (2)
0x00000000fec00000, size=0x0000000000001000 (2)
0x00000000fed20000, size=0x0000000000060000 (2)
0x00000000fee00000, size=0x0000000000001000 (2)
0x00000000ff000000, size=0x0000000001000000 (2)
0x0000000100000000, size=0x000000012e000000 (1)
proceeding to revise E820...
E820 revision complete.

revised system E820 map follows:
0x0000000000000000, size=0x0000000000090400 (1)
0x0000000000090400, size=0x000000000000fc00 (2)
0x00000000000e0000, size=0x0000000000020000 (2)
0x0000000000100000, size=0x000000000ff00000 (1)
0x0000000010000000, size=0x0000000022600000 (2)
0x0000000032600000, size=0x0000000084400000 (1)
0x00000000b6a00000, size=0x0000000000200000 (2)
0x00000000b6c00000, size=0x0000000001d20000 (1)
0x00000000b8920000, size=0x0000000000001000 (4)
0x00000000b8921000, size=0x0000000000001000 (2)
0x00000000b8922000, size=0x000000000000e000 (1)
0x00000000b8930000, size=0x0000000000010000 (2)
0x00000000b8940000, size=0x0000000000010000 (1)
0x00000000b8950000, size=0x0000000000010000 (2)
0x00000000b8960000, size=0x0000000000010000 (1)
0x00000000b8970000, size=0x0000000000010000 (2)
0x00000000b8980000, size=0x0000000000010000 (1)
0x00000000b8990000, size=0x0000000000010000 (2)
0x00000000b89a0000, size=0x00000000104fc000 (1)
0x00000000c8e9c000, size=0x0000000001638000 (2)
0x00000000ca4d4000, size=0x0000000000046000 (3)
0x00000000ca51a000, size=0x0000000000e34000 (4)
0x00000000cb34e000, size=0x00000000006b1000 (2)
0x00000000cb9ff000, size=0x0000000000001000 (1)
0x00000000cba00000, size=0x0000000004600000 (2)
0x00000000f0000000, size=0x0000000008000000 (2)
0x00000000fe000000, size=0x0000000000011000 (2)
0x00000000fec00000, size=0x0000000000001000 (2)
0x00000000fed20000, size=0x0000000000060000 (2)
0x00000000fee00000, size=0x0000000000001000 (2)
0x00000000ff000000, size=0x0000000001000000 (2)
0x0000000100000000, size=0x000000012e000000 (1)
INIT(early): UNTRUSTED gold runtime: 55 38 c5 27 77 e6 78 de 89 82 25 db da e4 a7 2b
INIT(early): UNTRUSTED gold runtime: b3 27 48 01
hashandprint: processing 0x22350000 bytes at addr 0x10200000
INIT(early): UNTRUSTED comp runtime: : 55 38 c5 27 77 e6 78 de 89 82 25 db da e4 a7 2b b3 27 48 01
INIT(early): UNTRUSTED gold SL low 64K: ee cc 20 7a bc 0f b8 e7 34 37 a2 e5 e7 1f d0 f9
INIT(early): UNTRUSTED gold SL low 64K: 45 a5 9c cb
hashandprint: processing 0x00010000 bytes at addr 0x10000000
INIT(early): UNTRUSTED comp SL low 64K: : ee cc 20 7a bc 0f b8 e7 34 37 a2 e5 e7 1f d0 f9 45 a5 9c cb
INIT(early): UNTRUSTED gold SL above 64K: 9d 17 25 25 17 71 d0 57 f8 05 e3 b6 e9 df 8e 29
INIT(early): UNTRUSTED gold SL above 64K: 6c f2 3d 9d
hashandprint: processing 0x001f0000 bytes at addr 0x10010000
INIT(early): UNTRUSTED comp SL above 64K): : 9d 17 25 25 17 71 d0 57 f8 05 e3 b6 e9 df 8e 29 6c f2 3d 9d
INIT(early): relocated hypervisor binary image to 0x10000000
INIT(early): 2M aligned size = 0x22600000
INIT(early): un-aligned size = 0x22550000
INIT(early): found app module, base=0x00101000, size=0x0000ce40
setupvcpus: cpustacks range 0x01e0f000-0x01e2f000 in 0x00004000 chunks
setupvcpus: vcpubuffers range 0x01e07080-0x01e09ca0 in 0x00000584 chunks
CPU #0: vcpu_vaddr_ptr=0x01e07080, esp=0x01e13000
CPU #1: vcpu_vaddr_ptr=0x01e07604, esp=0x01e17000
CPU #2: vcpu_vaddr_ptr=0x01e07b88, esp=0x01e1b000
CPU #3: vcpu_vaddr_ptr=0x01e0810c, esp=0x01e1f000
Sending INIT IPI to all APs...Done.
Sending SIPI-0...Done.
Sending SIPI-1...AP(0x04): Waiting for DRTM establishment...
AP(0x06): Waiting for DRTM establishment...
AP(0x02): Waiting for DRTM establishment...
Done.
APs should be awake!
BSP(0x00): Rallying APs...
BSP(0x00): APs ready, doing DRTM...
LAPIC base and status=0xfee00900
Sending INIT IPI to all APs...

Done.
INIT(early): sent INIT IPI to APs

****** NO DRTM startup ******
slbase=0x10000000, sl_entry_point_offset=0x00003080
SL entry point to transfer control to: 0x10003080
SL(early-init): at 0x10000000, starting...
SL: slpb at = 0x00010000
errorHandler=0x00000000
isEarlyInit=0x00000001
numE820Entries=32
system memory map buffer at 0x00010010
numCPUEntries=4
cpuinfo buffer at 0x00010514
runtime size= 573898752 bytes
OS bootmodule at 0x00100000, size=512 bytes
OS boot_drive is 0x80
cmdline = "serial=115200,8n1,0x3f8 boot_drive=0x80"
SL: RDTSC before_drtm 0x0, after_drtm 0x14969b9b70
SL: [PERF] RDTSC DRTM elapsed cycles: 0x14969b9b70
SL: runtime at 0x10200000; size=0x22350000 bytes adjusted to 0x22400000 bytes (2M aligned)
SL: RPB, magic=0xf00ddead
xmhf_baseplatform_arch_x86_pci_initialize: PCI type-1 access supported.
xmhf_baseplatform_arch_x86_pci_initialize: PCI bus enumeration follows:
xmhf_baseplatform_arch_x86_pci_initialize: Done with PCI bus enumeration.
SL: Initializing DMA protections...
SL: Bootstrapping VMX DMA protection...
vmx_eap_initialize_early: RSDP at 000f05b0
vmx_eap_initialize_early: ACPI v2
vmx_eap_initialize_early: RSDT at ca4e20b8, len=236 bytes, hdrlen=36 bytes
vmx_eap_initialize_early: RSDT entry list at ca4e20dc, len=50
vmx_eap_initialize_early: DMAR at ca518fb0
vmx_eap_initialize_early: remapping structures at ca518fe0
DRHD at ca518fe0, len=24 bytes
DRHD at ca518ff8, len=40 bytes
vmx_eap_initialize_early: total DRHDs detected= 2 units
vmx_eap_initialize_early: DMAR Devices:
Device 0 on PCI seg 0000; base=0x00000000fed90000
cap=0x01c0000c40660462
ecap=0x0000019e2ff0505e
Device 1 on PCI seg 0000; base=0x00000000fed91000
cap=0x00d2008c40660462
ecap=0x0000000000f050da
_vtd_verify_cap: verifying DRHD unit 0...
_vtd_verify_cap: verifying DRHD unit 1...
Verify all Vt-d units success
vmx_eap_initialize_early: setup VT-d RET (0x10011000) for bootstrap.
vmx_eap_initialize_early: initializing DRHD unit 0...
VT-d hardware Snoop Control (SC) unavailable
VT-d hardware access to remapping structures NON-COHERENT
VT-d numbers of fault recording registers:1
Setting Fault-reporting to NON-INTERRUPT mode...Done.
Setting up RET...Done.
Invalidating CET cache...Done.
Invalidating IOTLB...Done.
Enabling device...Done.
vmx_eap_initialize_early: initializing DRHD unit 1...
VT-d hardware Snoop Control (SC) capabilities present
VT-d hardware access to remapping structures NON-COHERENT
VT-d numbers of fault recording registers:1
Setting Fault-reporting to NON-INTERRUPT mode...Done.
Setting up RET...Done.
Invalidating CET cache...Done.
Invalidating IOTLB...Done.
Enabling device...Done.
vmx_eap_initialize_early: success, leaving...
SL: Initialized DMA protections successfully
SL: setup runtime TSS.
SL (xmhf_sl_arch_x86_setup_runtime_paging): runtime_spa=0000000010200000, runtime_sva=0000000010200000, totalsize=0000000022400000
pa xpml4=0x0x1a4f2000, xpdpt=0x0x1a4f3000, xpdt=0x0x1a4f4000
SL: setup runtime paging structures.
Transferring control to runtime
runtime initializing...
memory management initialized
xmhf_baseplatform_arch_x86_pci_initialize: PCI type-1 access supported.
xmhf_baseplatform_arch_x86_pci_initialize: PCI bus enumeration follows:
xmhf_baseplatform_arch_x86_pci_initialize: Done with PCI bus enumeration.
Number of E820 entries = 32
0x0000000000000000, size=0x0000000000090400 (1)
0x0000000000090400, size=0x000000000000fc00 (2)
0x00000000000e0000, size=0x0000000000020000 (2)
0x0000000000100000, size=0x000000000ff00000 (1)
0x0000000010000000, size=0x0000000022600000 (2)
0x0000000032600000, size=0x0000000084400000 (1)
0x00000000b6a00000, size=0x0000000000200000 (2)
0x00000000b6c00000, size=0x0000000001d20000 (1)
0x00000000b8920000, size=0x0000000000001000 (4)
0x00000000b8921000, size=0x0000000000001000 (2)
0x00000000b8922000, size=0x000000000000e000 (1)
0x00000000b8930000, size=0x0000000000010000 (2)
0x00000000b8940000, size=0x0000000000010000 (1)
0x00000000b8950000, size=0x0000000000010000 (2)
0x00000000b8960000, size=0x0000000000010000 (1)
0x00000000b8970000, size=0x0000000000010000 (2)
0x00000000b8980000, size=0x0000000000010000 (1)
0x00000000b8990000, size=0x0000000000010000 (2)
0x00000000b89a0000, size=0x00000000104fc000 (1)
0x00000000c8e9c000, size=0x0000000001638000 (2)
0x00000000ca4d4000, size=0x0000000000046000 (3)
0x00000000ca51a000, size=0x0000000000e34000 (4)
0x00000000cb34e000, size=0x00000000006b1000 (2)
0x00000000cb9ff000, size=0x0000000000001000 (1)
0x00000000cba00000, size=0x0000000004600000 (2)
0x00000000f0000000, size=0x0000000008000000 (2)
0x00000000fe000000, size=0x0000000000011000 (2)
0x00000000fec00000, size=0x0000000000001000 (2)
0x00000000fed20000, size=0x0000000000060000 (2)
0x00000000fee00000, size=0x0000000000001000 (2)
0x00000000ff000000, size=0x0000000001000000 (2)
0x0000000100000000, size=0x000000012e000000 (1)
Number of MP entries = 4
CPU #0: bsp=1, lapic_id=0x00
CPU #1: bsp=0, lapic_id=0x02
CPU #2: bsp=0, lapic_id=0x04
CPU #3: bsp=0, lapic_id=0x06
xmhf_xcphandler_arch_initialize: setting up runtime IDT...
xmhf_xcphandler_arch_initialize: IDT setup done.
Runtime: Re-initializing DMA protection (physical address space size:0x400000000)...
vmx_eap_initialize: RSDP at f05b0
vmx_eap_initialize: ACPI v2
vmx_eap_initialize: RSDT at ca4e20b8, len=236 bytes, hdrlen=36 bytes
vmx_eap_initialize: RSDT entry list at ca4e20dc, len=50
vmx_eap_initialize: DMAR at ca518fb0
vmx_eap_initialize: remapping structures at ca518fe0
DRHD at ca518fe0, len=24 bytes
DRHD at ca518ff8, len=40 bytes
vmx_eap_initialize: total DRHDs detected= 2 units
vmx_eap_initialize: DMAR Devices:
Device 0 on PCI seg 0000; base=0x00000000fed90000
cap=0x01c0000c40660462
ecap=0x0000019e2ff0505e
Device 1 on PCI seg 0000; base=0x00000000fed91000
cap=0x00d2008c40660462
ecap=0x0000000000f050da
_vtd_verify_cap: verifying DRHD unit 0...
_vtd_verify_cap: verifying DRHD unit 1...
Verify all Vt-d units success
vmx_eap_initialize: setup VT-d page tables (pdpt=283e0000, pdts=283e1000, pts=283f1000).
vmx_eap_initialize: setup VT-d RET (2a3f1000) and CET (2a3f2000).
vmx_eap_initialize: success, leaving...
Runtime: Protected SL+Runtime (10000000-32550000) from DMA.
xmhf_dmaprot_arch_x86_vmx_enable: initializing DRHD unit 0...
VT-d hardware Snoop Control (SC) unavailable
VT-d hardware access to remapping structures NON-COHERENT
VT-d numbers of fault recording registers:1
Setting Fault-reporting to NON-INTERRUPT mode...Done.
Setting up RET...Done.
Invalidating CET cache...Done.
Invalidating IOTLB...Done.
Disabling unsupported options...Done.
Enabling device...Done.
Checking and disabling PMR...Done.
xmhf_dmaprot_arch_x86_vmx_enable: initializing DRHD unit 1...
VT-d hardware Snoop Control (SC) capabilities present
VT-d hardware access to remapping structures NON-COHERENT
VT-d numbers of fault recording registers:1
Setting Fault-reporting to NON-INTERRUPT mode...Done.
Setting up RET...Done.
Invalidating CET cache...Done.
Invalidating IOTLB...Done.
Disabling unsupported options...Done.
Enabling device...Done.
Checking and disabling PMR...Done.
DRHD[0]:
DRHD Fault Recording Register[0]: frr_vaddr:0xFED90400, low64:0x0, high64:0x8000000100000010
DRHD[1]:
DRHD Fault Recording Register[0]: frr_vaddr:0xFED91400, low64:0x0, high64:0x0
xmhf_dmaprot_arch_x86_vmx_enable: success, leaving...
BSP: Using APIC to awaken APs...
BSP: APs should be awake.
Relinquishing BSP thread and moving to common...
BSP rallying APs...
BSP(0x00): My RSP is 0x000000002830e000
APs all awake...Setting them free...
AP(0x06): My RSP is 0x000000002833e000, proceeding...
CPU(0x00): UNRESTRICTED-GUEST supported.
AP(0x04): My RSP is 0x000000002832e000, proceeding...
CPU(0x06): UNRESTRICTED-GUEST supported.
CPU(0x00): enabled VMX
CPU(0x04): UNRESTRICTED-GUEST supported.
AP(0x02): My RSP is 0x000000002831e000, proceeding...
CPU(0x04): enabled VMX
CPU(0x00): Entered VMX root operation
CPU(0x04): Entered VMX root operation
CPU(0x02): UNRESTRICTED-GUEST supported.
IA32_MTRRCAP: VCNT=10, FIX=1, WC=1, SMRR=1
CPU(0x06): enabled VMX
CPU(0x00, BSP): initializing INT 15 hook for UG mode...
CPU(0x06): Entered VMX root operation
CPU(0x00): original INT 15h handler at 0xe700:0x0044
CPU(0x02): enabled VMX
BSP(0x00): copying boot-module to boot guest
IA32_MTRRCAP: VCNT=10, FIX=1, WC=1, SMRR=1
IA32_MTRRCAP: VCNT=10, FIX=1, WC=1, SMRR=1
CPU(0x02): Entered VMX root operation
IA32_MTRRCAP: VCNT=10, FIX=1, WC=1, SMRR=1
CPU(0x04): Activated VMX EPTs.
Protected 2 DRHD tables from guest memory access
TV[2]:appmain.c:hypapp_main:159: **********************************************************************************************

TV[2]:appmain.c:hypapp_main:160: [WARNING-SECBASE] FOR DEBUG PURPOSE ONLY!!!!!!! THIS VERSION CONTAINS UNSAFE HYPERCALLS USED BYUNTRUSTED OS!!!!!!!! NEVER USE IT IN PRODUCTION!!!!!!

CPU(0x02): Activated VMX EPTs.
CPU(0x00): Activated VMX EPTs.
TV[2]:appmain.c:hypapp_main:162: **********************************************************************************************

CPU(0x06): Activated VMX EPTs.
CPU(0x04): AP, waiting for SIPI signal...
Protected 2 DRHD tables from guest memory access
Protected 2 DRHD tables from guest memory access
TV[2]:appmain.c:hypapp_main:159: **********************************************************************************************

TV[2]:appmain.c:hypapp_main:159: **********************************************************************************************

TV[2]:appmain.c:hypapp_main:160: [WARNING-SECBASE] FOR DEBUG PURPOSE ONLY!!!!!!! THIS VERSION CONTAINS UNSAFE HYPERCALLS USED BYUNTRUSTED OS!!!!!!!! NEVER USE IT IN PRODUCTION!!!!!!

TV[2]:appmain.c:hypapp_main:160: [WARNING-SECBASE] FOR DEBUG PURPOSE ONLY!!!!!!! THIS VERSION CONTAINS UNSAFE HYPERCALLS USED BYUNTRUSTED OS!!!!!!!! NEVER USE IT IN PRODUCTION!!!!!!

Protected 2 DRHD tables from guest memory access
TV[2]:appmain.c:hypapp_main:162: **********************************************************************************************

TV[2]:appmain.c:hypapp_main:159: **********************************************************************************************

CPU(0x02): AP, waiting for SIPI signal...
TV[2]:appmain.c:hypapp_main:160: [WARNING-SECBASE] FOR DEBUG PURPOSE ONLY!!!!!!! THIS VERSION CONTAINS UNSAFE HYPERCALLS USED BYUNTRUSTED OS!!!!!!!! NEVER USE IT IN PRODUCTION!!!!!!

TV[2]:appmain.c:hypapp_main:162: **********************************************************************************************

TV[2]:appmain.c:hypapp_main:162: **********************************************************************************************

CPU(0x06): AP, waiting for SIPI signal...
CPU(0x00): Waiting for all cores to cycle through appmain...
CPU(0x00): All cores have successfully been through appmain.
CPU(0x00): setup x86vmx SMP guest capabilities
xmhf_runtime_main[00]: starting partition...
CPU(0x00): VMCLEAR success.
CPU(0x00): VMPTRLD success.
CPU(0x00): VMWRITEs success.
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000000, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000001, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000002, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000003, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000004, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000005, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000006, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000007, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000008, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000009, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000000f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000010, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000011, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000012, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000013, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000014, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000015, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000016, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000017, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000018, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x00000019, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001a, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001b, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001c, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001d, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001e, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): INT 15(e820): EDX=0x534d4150, EBX=0x0000001f, ECX=0x00000014, ES=0x6800, DI=0x0004
CPU(0x00): WRMSR (MTRR) 0x000002ff 0x0000000000000000 (old = 0x0000000000000c06)
CPU(0x00): Update EPT memory types due to MTRR
CPU(0x00): WRMSR (MTRR) 0x000002ff 0x0000000000000c06 (old = 0x0000000000000000)
CPU(0x00): Update EPT memory types due to MTRR

In an older commit (c19c0a0), I can see the following output of a good boot:
CPU(0x00): WRMSR (MTRR) 0x000002ff 0x0000000000000000 (old = 0x0000000000000c06)
CPU(0x00): Update EPT memory types due to MTRR
CPU(0x00): WRMSR (MTRR) 0x000002ff 0x0000000000000c06 (old = 0x0000000000000000)
CPU(0x00): Update EPT memory types due to MTRR
0x0010:0x84075988 -> (ICR=0x00000300 write) INIT IPI detected and skipped, value=0x0000c500
0x0010:0x84075988 -> (ICR=0x00000300 write) INIT IPI detected and skipped, value=0x00008500
0x0010:0x84075988 -> (ICR=0x00000300 write) STARTUP IPI detected, value=0x0000068b
CPU(0x00): processSIPI, dest_lapic_id is 0x02
CPU(0x00): found AP to pass SIPI; id=0x02, vcpu=0x10234fa0
CPU(0x00): Sent SIPI command to AP, should awaken it!
CPU(0x02): SIPI signal received, vector=0x8b
0x0010:0x84075988 -> (ICR=0x00000300 write) STARTUP IPI detected, value=0x0000068b
CPU(0x00): processSIPI, dest_lapic_id is 0x02
CPU(0x00): found AP to pass SIPI; id=0x02, vcpu=0x10234fa0
CPU(0x00): destination CPU #0x02 has already received SIPI, ignoring
xmhf_runtime_main[02]: starting partition...
CPU(0x02): VMCLEAR success.
CPU(0x02): VMPTRLD success.
CPU(0x02): VMWRITEs success.
0x0010:0x84075988 -> (ICR=0x00000300 write) INIT IPI detected and skipped, value=0x0000c500
0x0010:0x84075988 -> (ICR=0x00000300 write) INIT IPI detected and skipped, value=0x00008500
0x0010:0x84075988 -> (ICR=0x00000300 write) STARTUP IPI detected, value=0x0000068b
CPU(0x00): processSIPI, dest_lapic_id is 0x04
CPU(0x00): found AP to pass SIPI; id=0x04, vcpu=0x10235540
CPU(0x00): Sent SIPI command to AP, should awaken it!
CPU(0x04): SIPI signal received, vector=0x8b
0x0010:0x84075988 -> (ICR=0x00000300 write) STARTUP IPI detected, value=0x0000068b
CPU(0x00): processSIPI, dest_lapic_id is 0x04
CPU(0x00): found AP to pass SIPI; id=0x04, vcpu=0x10235540
CPU(0x00): destination CPU #0x04 has already received SIPI, ignoring
xmhf_runtime_main[04]: starting partition...
CPU(0x04): VMCLEAR success.
CPU(0x04): VMPTRLD success.
CPU(0x04): VMWRITEs success.
0x0010:0x84075988 -> (ICR=0x00000300 write) INIT IPI detected and skipped, value=0x0000c500
0x0010:0x84075988 -> (ICR=0x00000300 write) INIT IPI detected and skipped, value=0x00008500
0x0010:0x84075988 -> (ICR=0x00000300 write) STARTUP IPI detected, value=0x0000068b
CPU(0x00): processSIPI, dest_lapic_id is 0x06
CPU(0x00): found AP to pass SIPI; id=0x06, vcpu=0x10235ae0
CPU(0x00): Sent SIPI command to AP, should awaken it!
xmhf_smpguest_arch_x86vmx_eventhandler_dbexception: delinking LAPIC interception since all cores have SIPI
CPU(0x06): SIPI signal received, vector=0x8b
xmhf_runtime_main[06]: starting partition...
CPU(0x06): VMCLEAR success.
CPU(0x06): VMPTRLD success.
CPU(0x06): VMWRITEs success.
CPU(0x00): WRMSR (MTRR) 0x000002ff 0x0000000000000000 (old = 0x0000000000000c06)
CPU(0x00): Update EPT memory types due to MTRR
CPU(0x00): WRMSR (MTRR) 0x000002ff 0x0000000000000c06 (old = 0x0000000000000000)
CPU(0x00): Update EPT memory types due to MTRR
CPU(0x02): WRMSR (MTRR) 0x000002ff 0x0000000000000000 (old = 0x0000000000000c06)
CPU(0x02): Update EPT memory types due to MTRR
CPU(0x02): WRMSR (MTRR) 0x000002ff 0x0000000000000c06 (old = 0x0000000000000000)
CPU(0x02): Update EPT memory types due to MTRR
CPU(0x04): WRMSR (MTRR) 0x000002ff 0x0000000000000000 (old = 0x0000000000000c06)
CPU(0x04): Update EPT memory types due to MTRR
CPU(0x04): WRMSR (MTRR) 0x000002ff 0x0000000000000c06 (old = 0x0000000000000000)
CPU(0x04): Update EPT memory types due to MTRR
CPU(0x06): WRMSR (MTRR) 0x000002ff 0x0000000000000000 (old = 0x0000000000000c06)
CPU(0x06): Update EPT memory types due to MTRR
CPU(0x06): WRMSR (MTRR) 0x000002ff 0x0000000000000c06 (old = 0x0000000000000000)
CPU(0x06): Update EPT memory types due to MTRR

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(1) Added comments (in both xmhf64 branch and this branch). However ideally should refer to comments in xmhf-app.h
(2) Unfortunately the macro in _processor.h does not handle ECX as argument. For example, CPUID(EAX=7, ECX=0) and CPUID(EAX=7, ECX=1) are different.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(3) For this PR I don't think there are huge changes made in the hypapp.

  1. I am assuming that you are running the configuration hardware -> XMHF (hypapp=GreenBox) -> Ubuntu
  2. Does TrustVisor boot correctly? Or is this a problem only in GreenBox?
  3. Does the problem still appear if compiled with --disable-nested-virtualization?
    • If it still appears, then we have less to debug
    • If it no longer appears, then we need to check whether Ubuntu is accessing hypervisor features
  4. You can compile with --enable-debug-event-logger, which can show you whether XMHF is still active

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(1) Added comments (in both xmhf64 branch and this branch). However ideally should refer to comments in xmhf-app.h (2) Unfortunately the macro in _processor.h does not handle ECX as argument. For example, CPUID(EAX=7, ECX=0) and CPUID(EAX=7, ECX=1) are different.

Add a new cpuid macro in _processor.h would be better

Copy link

@superymk superymk Nov 15, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(3) For this PR I don't think there are huge changes made in the hypapp.

  1. I am assuming that you are running the configuration hardware -> XMHF (hypapp=GreenBox) -> Ubuntu

  2. Does TrustVisor boot correctly? Or is this a problem only in GreenBox?

  3. Does the problem still appear if compiled with --disable-nested-virtualization?

    • If it still appears, then we have less to debug
    • If it no longer appears, then we need to check whether Ubuntu is accessing hypervisor features
  4. You can compile with --enable-debug-event-logger, which can show you whether XMHF is still active

(1) Right
(2) GreenBox does not work with "./configure --with-approot=../secbase/hypapps/whitevisor --enable-drt=no --with-target-subarch=amd64 --enable-quiesce-in-guest-mem-pio-traps=no --enable-allow-hypapp-disable-igfx-iommu=yes".
However, TrustVisor works with (a) this configuration and (b) "./configure --with-approot=hypapps/trustvisor --enable-drt=no --with-target-subarch=amd64". Any ideas?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(1) Added new macro cpuid_raw
(3) I do not have a lot of ideas. Since nested-virtualization is disabled, there should be something not directly related to nested virtualization that breaks greenbox. i.e. something outside of #ifdef __NESTED_VIRTUALIZATION__. I think we need more bisecting / debugging.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To make sure, does xmhf64 branch work well?

@lxylxy123456 lxylxy123456 merged commit ab0cb03 into xmhf64 Nov 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants