Log file
This page describes the structure of a replayed output. Running qemu is explained here: http://www.serialice.com/Getting_Started
First number pair is a running index that could be used to group and indent the lines to improve readability.
Second string is combination of flags telling how action got processed:
I Info -- informational line only R Raw -- raw IO/MEMORY/CPU operation H Hardware -- action was sent to target Q Qemu -- action was sent to qemu U Undefined -- action hit the fallback filter D Dropped -- filter prevented sending action to target or qemu F Faked -- filter modified the action on-the-fly
Third field is the instruction pointer [CS:EIP].
Remaining of the line describes the action.
A few examples:
Memory access, Raw + Qemu. Following is read of vector stored in the BIOS image file.
0000.0001 R.Q. [ffff000:fff0] MEM,ROM_HI: readb fffffff0 => ea 0000.0002 R.Q. [ffff000:fff0] MEM,ROM_HI: readw fffffff1 => e05b 0000.0003 R.Q. [ffff000:fff0] MEM,ROM_HI: readw fffffff3 => f000
PCI config read, Hardware. This is composed from either IO accesses to 0xcf8-0xcff or memory access to a specific PCI-e MM config region. Thus it is not Raw but a composed action.
0044.0046 .H.. [f000:f764] PCI: 0:1e.0 [004] => 00
CPUID, Raw + Hard + Faked. CPUID was executed on the target, but the returned value was modified. In this case, it fakes CPU has a single core.
000d.000e RH.F [f000:e814] CPUID: eax: 00000001; ecx: 00000000 => 00000f4a.00010800.0000649d.bfebfbff
RDMSR Raw + Hard and WRMSR Raw + Dropped. In this case, requst to do microcode update in target CPU is dropped as our serialice.rom image doesn't contain that binary.
0019.001a RH.. [f000:e869] CPU MSR: [00000017] => 00120000.00000000 001c.001d R..D [f000:e88e] CPU MSR: [00000079] <= 00000000.fffdfc10
(The above is taken from the commit message found at http://review.coreboot.org/#/c/2511/ and was slightly edited)