We are woefully unaware about how much stack v3 really uses.
This is a complete rewrite of my earlier stack checker. It works for CAR
and RAM, has better abstraction and actually gives us nice results.
The stack checker is default off due to its rather measurable impact on
boot speed.
Diagnostic messages are printed on first initialization, directly after
RAM init and directly before passing control to the payload. Sample qemu
log is attached. Extract from that log follows:
coreboot-3.0.986 Fri Nov 7 04:04:37 CET 2008 starting...
(console_loglevel=8)
Initial lowest stack is 0x0008fe98
Choosing fallback boot.
[...]
Done RAM init code
After RAM init, lowest stack is 0x0008fe30
Done printk() buffer move
[...]
LAR: load_file_segments: Failed for normal/payload
Before handoff to payload, lowest stack is 0x0008bf50
FATAL: No usable payload found.
Patch attached as well for gmail users.
Index: corebootv3-stackcheck/include/globalvars.h
===================================================================
--- corebootv3-stackcheck/include/globalvars.h (Revision 986)
+++ corebootv3-stackcheck/include/globalvars.h (Arbeitskopie)
@@ -59,6 +59,10 @@
struct sys_info sys_info;
/* has the spd hardware been set up? */
int spd_inited;
+ int ram_available;
+#ifdef CONFIG_CHECK_STACK_USAGE
+ void *loweststack;
+#endif
};
#endif /* GLOBALVARS_H */
Index: corebootv3-stackcheck/include/arch/x86/cpu.h
===================================================================
--- corebootv3-stackcheck/include/arch/x86/cpu.h (Revision 986)
+++ corebootv3-stackcheck/include/arch/x86/cpu.h (Arbeitskopie)
@@ -265,6 +265,7 @@
EXPORT_SYMBOL(bottom_of_stack);
struct global_vars * global_vars(void);
EXPORT_SYMBOL(global_vars);
+void check_stack(void);
#define CAR_STACK_BASE (CONFIG_CARBASE + CONFIG_CARSIZE - 4)
#define RAM_STACK_BASE 0x88ffc
@@ -278,6 +279,8 @@
#else
#define CAR_STACK_SIZE (CONFIG_CARSIZE - 4)
#endif
+/* To be honest, this limit is arbitrary and only used for stack checking. */
+#define RAM_STACK_SIZE (65536 - 4)
/* resource maps. These started out as special for the K8 but now have more general usage */
/* it's not totally clear that the type and union are a great idea, but see the v2 code:
Index: corebootv3-stackcheck/lib/console.c
===================================================================
--- corebootv3-stackcheck/lib/console.c (Revision 986)
+++ corebootv3-stackcheck/lib/console.c (Arbeitskopie)
@@ -150,6 +150,9 @@
i += vtxprintf(console_tx_byte, (void *)0, fmt, args);
va_end(args);
Index: corebootv3-stackcheck/arch/x86/Kconfig
===================================================================
--- corebootv3-stackcheck/arch/x86/Kconfig (Revision 986)
+++ corebootv3-stackcheck/arch/x86/Kconfig (Arbeitskopie)
@@ -227,4 +227,13 @@
help
Test the CAR area after it has been set up.
+config CHECK_STACK_USAGE
+ bool "Check stack usage"
+ default n
+ help
+ Continuously monitor stack usage and keep statistics.
+ The monitoring code is invoked from printk because printk is
+ a leaf function and consumes quite a bit of stack for itself.
+ This slows down booting a LOT.
+
endmenu
Index: corebootv3-stackcheck/arch/x86/stage1.c
===================================================================
--- corebootv3-stackcheck/arch/x86/stage1.c (Revision 986)
+++ corebootv3-stackcheck/arch/x86/stage1.c (Arbeitskopie)
@@ -105,6 +105,28 @@
+#ifdef CONFIG_CHECK_STACK_USAGE
+/* STACKFILL_BYTE could be a special value like 0x6b. Just make sure the stage0
+ * code fills the complete CAR area with it. And the stack switching needs to
+ * overwrite the unused parts of the stack with STACKFILL_BYTE as well.
+ */
+#define STACKFILL_BYTE 0x0
+void check_stack()
+{
+ unsigned long stacksize, i;
+ char *lowestaddr;
+ if (global_vars()->ram_available)
+ stacksize = RAM_STACK_SIZE;
+ else
+ stacksize = CAR_STACK_SIZE;
+ lowestaddr = bottom_of_stack() - stacksize;
+ for (i = 0; i < stacksize; i++)
+ if (lowestaddr[i] != STACKFILL_BYTE)
+ break;
+ global_vars()->loweststack = lowestaddr + i;
+}
+#endif
+
void dump_mem_range(int msg_level, unsigned char *buf, int size)
{
int i;
@@ -194,6 +216,10 @@
*/
console_init();
+#ifdef CONFIG_CHECK_STACK_USAGE
+ printk(BIOS_DEBUG, "Initial lowest stack is %p\n",
+ global_vars()->loweststack);
+#endif
if (bist!=0) {
printk(BIOS_INFO, "BIST FAILED: %08x", bist);
die("");
@@ -227,6 +253,10 @@
die("Failed RAM init code\n");
printk(BIOS_DEBUG, "Done RAM init code\n");
+#ifdef CONFIG_CHECK_STACK_USAGE
+ printk(BIOS_DEBUG, "After RAM init, lowest stack is %p\n",
+ global_vars()->loweststack);
+#endif
/* Switch the stack location from CAR to RAM, rebuild the stack,
* disable CAR and continue at stage1_phase3(). This is all wrapped in
@@ -299,6 +329,9 @@
mem->map[0].type = LB_MEM_RAM;
#endif /* CONFIG_PAYLOAD_ELF_LOADER */
+ /* Provide an easy way to check whether RAM is available. */
+ global_vars()->ram_available = 1;
+
// location and size of image.
init_archive(&archive);
entry = load_file_segments(&archive, "normal/payload");
+#ifdef CONFIG_CHECK_STACK_USAGE
+ printk(BIOS_DEBUG, "Before handoff to payload, lowest stack is %p\n",
+ global_vars()->loweststack);
+#endif
if (entry != (void*)-1) {
/* Final coreboot call before handing off to the payload. */
mainboard_pre_payload();
--
http://www.hailfinger.org/
coreboot-3.0.986 Fri Nov 7 04:04:37 CET 2008 starting... (console_loglevel=8)
Initial lowest stack is 0x0008fe98
Choosing fallback boot.
LAR: Attempting to open 'fallback/initram/segment0'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: seen member normal/initram/segment0@0xfffc0400, size 420
LAR: seen member normal/stage2/segment0@0xfffc0600, size 1
LAR: seen member normal/stage2/segment1@0xfffc0660, size 16161
LAR: seen member normal/stage2/segment2@0xfffc45e0, size 311
LAR: seen member bootblock@0xffffafc0, size 20480
LAR: File not found!
LAR: Run file fallback/initram/segment0 failed: No such file.
Fallback failed. Try normal boot
LAR: Attempting to open 'normal/initram/segment0'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: seen member normal/initram/segment0@0xfffc0400, size 420
LAR: CHECK normal/initram/segment0 @ 0xfffc0400
start 0xfffc0450 len 420 reallen 420 compression 0 entry 0x00000040 loadaddress 0x00000000
Entry point is 0xfffc0490
RAM init code started.
Nothing to do.
printktest1: If the immediately preceding line does not say "Nothing to do.", then execution did not start at main()
Trying absolute call from non-_MAINOBJECT XIP code.
Absolute call successful.
Done.
run_file returns with 0
Done RAM init code
After RAM init, lowest stack is 0x0008fe30
Done printk() buffer move
LAR: Attempting to open 'normal/stage2/segment0'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: seen member normal/initram/segment0@0xfffc0400, size 420
LAR: seen member normal/stage2/segment0@0xfffc0600, size 1
LAR: CHECK normal/stage2/segment0 @ 0xfffc0600
start 0xfffc0650 len 1 reallen 194788 compression 3 entry 0x00002000 loadaddress 0x0000c44c
LAR: Compression algorithm #3 (zeroes) used
LAR: Attempting to open 'normal/stage2/segment1'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: seen member normal/initram/segment0@0xfffc0400, size 420
LAR: seen member normal/stage2/segment0@0xfffc0600, size 1
LAR: seen member normal/stage2/segment1@0xfffc0660, size 16161
LAR: CHECK normal/stage2/segment1 @ 0xfffc0660
start 0xfffc06b0 len 16161 reallen 30272 compression 1 entry 0x00002000 loadaddress 0x00002000
LAR: Compression algorithm #1 (lzma) used
LAR: Attempting to open 'normal/stage2/segment2'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: seen member normal/initram/segment0@0xfffc0400, size 420
LAR: seen member normal/stage2/segment0@0xfffc0600, size 1
LAR: seen member normal/stage2/segment1@0xfffc0660, size 16161
LAR: seen member normal/stage2/segment2@0xfffc45e0, size 311
LAR: CHECK normal/stage2/segment2 @ 0xfffc45e0
start 0xfffc4630 len 311 reallen 5208 compression 1 entry 0x00002000 loadaddress 0x0000aff4
LAR: Compression algorithm #1 (lzma) used
LAR: Attempting to open 'normal/stage2/segment3'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: seen member normal/initram/segment0@0xfffc0400, size 420
LAR: seen member normal/stage2/segment0@0xfffc0600, size 1
LAR: seen member normal/stage2/segment1@0xfffc0660, size 16161
LAR: seen member normal/stage2/segment2@0xfffc45e0, size 311
LAR: seen member bootblock@0xffffafc0, size 20480
LAR: File not found!
LAR: load_file: No such file 'normal/stage2/segment3'
LAR: load_file_segments: All loaded, entry 0x00002000
Phase 1: Very early setup...
Phase 1: done
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 0
Phase 2: Early setup...
dev_phase2: dev root: ops 0x0000aff8 ops->phase2_fixup 0x00000000
dev_phase2: dev cpus: ops 0x00000000 ops->phase2_fixup 0x00000000
dev_phase2: dev domain_0_bus_0_pci_0_0: ops 0x00000000 ops->phase2_fixup 0x00000000
dev_phase2: dev domain_0_bus_0_pci_1_1: ops 0x0000b1b4 ops->phase2_fixup 0x00000000
dev_phase2: dev domain_0_bus_0: ops 0x00000000 ops->phase2_fixup 0x00000000
dev_phase2: dev domain_0: ops 0x0000b104 ops->phase2_fixup 0x00000000
Phase 2: Done.
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 0
Phase 3: Enumerating buses...
dev_phase3_scan: scanning root(Root Device)
scan_static_bus for root (Root Device)
cpus(CPU: 00) enabled
domain_0(PCI_DOMAIN: 0000) enabled
domain_0(PCI_DOMAIN: 0000) scanning...
dev_phase3_scan: scanning domain_0(PCI_DOMAIN: 0000)
pci_domain_scan_bus: calling pci_scan_bus
pci_scan_bus start bus->dev domain_0 bus 0
ERROR: pci_scan_bus called with incorrect bus->dev->path.type, path is PCI_DOMAIN: 0000
PCI: pci_scan_bus for bus 00
pci_scan_bus: old_devices domain_0_bus_0, dev for this bus domain_0
PCI: scan devfn 0x0 to 0xff
PCI: devfn 0x0
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
new_device: devcnt 1
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
constructor: constructor is 0x00000000
No ops found and no constructor called for PCI: 8086:1237.
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
set_pci_ops: dev dynamic PCI: 00:00.0 set ops to type 0
PCI: 00:00.0 [PCI: 8086:1237] enabled
PCI: pci_scan_bus pci_probe_dev returns dev dynamic PCI: 00:00.0
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x8
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
new_device: devcnt 2
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
constructor: constructor is 0x00000000
No ops found and no constructor called for PCI: 8086:7000.
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
set_pci_ops: dev dynamic PCI: 00:01.0 set ops to type 0
PCI: 00:01.0 [PCI: 8086:7000] enabled
PCI: pci_scan_bus pci_probe_dev returns dev dynamic PCI: 00:01.0
PCI: devfn 0x9
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
new_device: devcnt 3
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
find_device_operations: match
constructor: constructor is 0x0000b1b4
default device constructor called
set_pci_ops: dev dynamic PCI: 00:01.1 already has ops of type 20504349
PCI: 00:01.1 [PCI: 8086:7010] enabled
PCI: pci_scan_bus pci_probe_dev returns dev dynamic PCI: 00:01.1
PCI: devfn 0xa
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xa, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
PCI: devfn 0xb
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
new_device: devcnt 4
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
constructor: constructor is 0x00000000
No ops found and no constructor called for PCI: 8086:7113.
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
set_pci_ops: dev dynamic PCI: 00:01.3 set ops to type 0
PCI: 00:01.3 [PCI: 8086:7113] enabled
PCI: pci_scan_bus pci_probe_dev returns dev dynamic PCI: 00:01.3
PCI: devfn 0xc
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xc, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
PCI: devfn 0xd
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xd, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
PCI: devfn 0xe
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xe, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
PCI: devfn 0xf
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xf, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
PCI: devfn 0x10
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
new_device: devcnt 5
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: match
constructor: constructor is 0x0000b0ac
default device constructor called
set_pci_ops: dev dynamic PCI: 00:02.0 already has ops of type 20504349
PCI: 00:02.0 [PCI: 1013:00b8] enabled
PCI: pci_scan_bus pci_probe_dev returns dev dynamic PCI: 00:02.0
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x18
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
new_device: devcnt 6
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
constructor: constructor is 0x00000000
No ops found and no constructor called for PCI: 10ec:8029.
find_device_operations: check all_device_operations[i] 0x0000b0ac
find_device_operations: cons 0x0000b0ac, cons id PCI: 1013:00b8
find_device_operations: check all_device_operations[i] 0x0000b104
find_device_operations: cons 0x0000b104, cons id PCI_DOMAIN: 8086:7190
find_device_operations: check all_device_operations[i] 0x0000b1b4
find_device_operations: cons 0x0000b1b4, cons id PCI: 8086:7010
set_pci_ops: dev dynamic PCI: 00:03.0 set ops to type 0
PCI: 00:03.0 [PCI: 10ec:8029] enabled
PCI: pci_scan_bus pci_probe_dev returns dev dynamic PCI: 00:03.0
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x20
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x20, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x28
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x28, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x30
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x30, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x38
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x38, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x40
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x40, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x48
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x48, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x50
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x50, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x58
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x58, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x60
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x60, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x68
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x68, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x70
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x70, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x78
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x78, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x80
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x80, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x88
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x88, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x90
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x90, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0x98
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0x98, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xa0
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xa0, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xa8
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xa8, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xb0
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xb0, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xb8
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xb8, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xc0
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xc0, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xc8
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xc8, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xd0
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xd0, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xd8
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xd8, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xe0
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xe0, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xe8
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xe8, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xf0
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xf0, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: devfn 0xf8
pci_get_dev: list is NOT NULL, *list is NOT NULL
pci_get_dev: check dev domain_0_bus_0
pci_get_dev: child domain_0_bus_0(PCI_BUS: 0000) not a pci device: it's type 3
PCI: pci_scan_bus pci_get_dev returns dev None (no dev in tree yet)
PCI: devfn 0xf8, bad id 0xffffffff
PCI: pci_scan_bus pci_probe_dev returns dev None (no response)
Not a multi function device, or the device is not present. Skip to next device.
PCI: Done for loop
PCI: Left over static devices:
domain_0_bus_0
PCI: End of leftover list.
dev_phase3_scan: dynamic PCI: 00:00.0: busdevice 0x0000c778 enabled 1 ops 0x00008f6c
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:01.0: busdevice 0x0000ca70 enabled 1 ops 0x00008f6c
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:01.1: busdevice 0x0000cd68 enabled 1 ops 0x0000b1b4
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:01.3: busdevice 0x0000d060 enabled 1 ops 0x00008f6c
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:02.0: busdevice 0x0000d358 enabled 1 ops 0x0000b0ac
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:03.0: busdevice 0x0000d650 enabled 1 ops 0x00008f6c
dev_phase3_scan: can not scan from here, returning 0
PCI: pci_scan_bus returning with curr_bus=000
dev_phase3_scan: returning 0
scan_static_bus for root(Root Device) done
dev_phase3_scan: returning 0
Phase 3: Done.
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 0
dynamic PCI: 00:00.0(PCI: 00:00.0): enabled 1 have_resources 0
dynamic PCI: 00:01.0(PCI: 00:01.0): enabled 1 have_resources 0
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 0
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 0
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 0
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 0
Phase 4: Allocating resources...
Phase 4: Reading resources...
read_resources: root(Root Device) read_resources bus 0 link: 0
read_resources: root(Root Device) dtsname cpus have_resources 0 enabled 1
read_resources: cpus(CPU: 00) missing phase4_read_resources
read_resources: root(Root Device) dtsname domain_0 have_resources 0 enabled 1
read_resources: domain_0(PCI_DOMAIN: 0000) read_resources bus 0 link: 0
read_resources: domain_0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:00.0 have_resources 0 enabled 1
read_resources: domain_0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:01.0 have_resources 0 enabled 1
read_resources: domain_0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:01.1 have_resources 0 enabled 1
read_resources: domain_0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:01.3 have_resources 0 enabled 1
read_resources: domain_0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:02.0 have_resources 0 enabled 1
read_resources: domain_0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:03.0 have_resources 0 enabled 1
read_resources: domain_0(PCI_DOMAIN: 0000) read_resources bus 0 link: 0 done
read_resources: root(Root Device) read_resources bus 0 link: 0 done
root_dev_read_resources: Done allocating
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 1
PCI_DOMAIN: 0000 10000000 <- [0x0000000000 - 0xffffffffffffffff] size 0x00000000 gran 0x00 io
PCI_DOMAIN: 0000 10000100 <- [0x0000000000 - 0xffffffffffffffff] size 0x00000000 gran 0x00 mem
dynamic PCI: 00:00.0(PCI: 00:00.0): enabled 1 have_resources 1
dynamic PCI: 00:01.0(PCI: 00:01.0): enabled 1 have_resources 1
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1
PCI: 00:01.1 20 <- [0x0000000000 - 0x000000000f] size 0x00000010 gran 0x04 io
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1
PCI: 00:02.0 10 <- [0x0000000000 - 0x0001ffffff] size 0x02000000 gran 0x19 prefmem
PCI: 00:02.0 14 <- [0x0000000000 - 0x0000000fff] size 0x00001000 gran 0x0c mem
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1
PCI: 00:03.0 10 <- [0x0000000000 - 0x00000000ff] size 0x00000100 gran 0x08 io
Phase 4: Done reading resources.
Root Device compute_allocate_io: base: 00000400 size: 00000000 align: 0 gran: 0
read_resources: root(Root Device) read_resources bus 0 link: 0
read_resources: root(Root Device) dtsname cpus have_resources 0 enabled 1
read_resources: cpus(CPU: 00) missing phase4_read_resources
read_resources: root(Root Device) dtsname domain_0 have_resources 1 enabled 1
read_resources: root(Root Device) read_resources bus 0 link: 0 done
PCI: 00:03.0 10 * [0x00000400 - 0x000004ff] io
PCI: 00:01.1 20 * [0x00000800 - 0x0000080f] io
Root Device compute_allocate_io: base: 00000810 size: 00000410 align: 8 gran: 0 done
Root Device compute_allocate_mem: base: 00000000 size: 00000000 align: 0 gran: 0
read_resources: root(Root Device) read_resources bus 0 link: 0
read_resources: root(Root Device) dtsname cpus have_resources 0 enabled 1
read_resources: cpus(CPU: 00) missing phase4_read_resources
read_resources: root(Root Device) dtsname domain_0 have_resources 1 enabled 1
read_resources: root(Root Device) read_resources bus 0 link: 0 done
PCI: 00:02.0 10 * [0x00000000 - 0x01ffffff] prefmem
PCI: 00:02.0 14 * [0x02000000 - 0x02000fff] mem
Root Device compute_allocate_mem: base: 02001000 size: 02001000 align: 25 gran: 0 done
Allocating VGA resource PCI: 00:02.0
Setting PCI_BRIDGE_CTL_VGA for bridge PCI_DOMAIN: 0000
Setting PCI_BRIDGE_CTL_VGA for bridge Root Device
Root Device compute_allocate_io: base: 00001000 size: 00000410 align: 8 gran: 0
read_resources: root(Root Device) read_resources bus 0 link: 0
read_resources: root(Root Device) dtsname cpus have_resources 0 enabled 1
read_resources: cpus(CPU: 00) missing phase4_read_resources
read_resources: root(Root Device) dtsname domain_0 have_resources 1 enabled 1
read_resources: root(Root Device) read_resources bus 0 link: 0 done
PCI: 00:03.0 10 * [0x00001000 - 0x000010ff] io
PCI: 00:01.1 20 * [0x00001400 - 0x0000140f] io
Root Device compute_allocate_io: base: 00001410 size: 00000410 align: 8 gran: 0 done
Root Device compute_allocate_mem: base: fc000000 size: 02001000 align: 25 gran: 0
read_resources: root(Root Device) read_resources bus 0 link: 0
read_resources: root(Root Device) dtsname cpus have_resources 0 enabled 1
read_resources: cpus(CPU: 00) missing phase4_read_resources
read_resources: root(Root Device) dtsname domain_0 have_resources 1 enabled 1
read_resources: root(Root Device) read_resources bus 0 link: 0 done
PCI: 00:02.0 10 * [0xfc000000 - 0xfdffffff] prefmem
PCI: 00:02.0 14 * [0xfe000000 - 0xfe000fff] mem
Root Device compute_allocate_mem: base: fe001000 size: 02001000 align: 25 gran: 0 done
Phase 4: Setting resources...
root(Root Device) assign_resources, bus 0 link: 0
Ignoring chipset specified RAM size. Using dts settings of 114688 kB instead.
Adding RAM resource (655360 bytes)
Adding RAM resource (116654080 bytes)
domain_0(PCI_DOMAIN: 0000) assign_resources, bus 0 link: 0
PCI: 00:01.1 20 <- [0x0000001400 - 0x000000140f] size 0x00000010 gran 0x04 io
PCI: 00:02.0 10 <- [0x00fc000000 - 0x00fdffffff] size 0x02000000 gran 0x19 prefmem
PCI: 00:02.0 14 <- [0x00fe000000 - 0x00fe000fff] size 0x00001000 gran 0x0c mem
PCI: 00:03.0 10 <- [0x0000001000 - 0x00000010ff] size 0x00000100 gran 0x08 io
domain_0(PCI_DOMAIN: 0000) assign_resources done, bus 0 link: 0
root(Root Device) assign_resources done, bus 0 link: 0
Phase 4: Done setting resources.
Phase 4: Done allocating resources.
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 1
dynamic PCI: 00:00.0(PCI: 00:00.0): enabled 1 have_resources 1
dynamic PCI: 00:01.0(PCI: 00:01.0): enabled 1 have_resources 1
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1
Phase 5: Enabling resources...
dev_phase5: cpus(CPU: 00) missing ops
PCI: 00:00.0: Device not on_mainboard
PCI: 00:00.0: Not setting subsystem VID/DID
pci_dev_enable_resources: dynamic PCI: 00:00.0 (PCI: 00:00.0) cmd <- 140
PCI: 00:01.0: Device not on_mainboard
PCI: 00:01.0: Not setting subsystem VID/DID
pci_dev_enable_resources: dynamic PCI: 00:01.0 (PCI: 00:01.0) cmd <- 147
PCI: 00:01.1: Device not on_mainboard
PCI: 00:01.1: Not setting subsystem VID/DID
pci_dev_enable_resources: dynamic PCI: 00:01.1 (PCI: 00:01.1) cmd <- 141
PCI: 00:01.3: Device not on_mainboard
PCI: 00:01.3: Not setting subsystem VID/DID
pci_dev_enable_resources: dynamic PCI: 00:01.3 (PCI: 00:01.3) cmd <- 140
PCI: 00:02.0: Device not on_mainboard
PCI: 00:02.0: Not setting subsystem VID/DID
pci_dev_enable_resources: dynamic PCI: 00:02.0 (PCI: 00:02.0) cmd <- 143
PCI: 00:03.0: Device not on_mainboard
PCI: 00:03.0: Not setting subsystem VID/DID
pci_dev_enable_resources: dynamic PCI: 00:03.0 (PCI: 00:03.0) cmd <- 141
Phase 5: Done.
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 1
dynamic PCI: 00:00.0(PCI: 00:00.0): enabled 1 have_resources 1
dynamic PCI: 00:01.0(PCI: 00:01.0): enabled 1 have_resources 1
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1
Phase 6: Initializing devices...
Phase 6: Root Device init.
Phase 6: PCI: 00:01.1 init.
Enabling IDE channel 1
Enabling IDE channel 2
Enabling Legacy IDE
Phase 6: PCI: 00:00.0 init.
PCI: pci_dev_init dynamic PCI: 00:00.0
Probing for option ROM
Phase 6: PCI: 00:01.0 init.
PCI: pci_dev_init dynamic PCI: 00:01.0
Probing for option ROM
Phase 6: PCI: 00:01.1 init.
Enabling IDE channel 1
Enabling IDE channel 2
Enabling Legacy IDE
Phase 6: PCI: 00:01.3 init.
PCI: pci_dev_init dynamic PCI: 00:01.3
Probing for option ROM
Phase 6: PCI: 00:02.0 init.
Init VGA device
PCI: pci_dev_init dynamic PCI: 00:02.0
Probing for option ROM
ROM address for PCI: 00:02.0 = c0000
PCI Expansion ROM, signature 0xaa55, INIT size 0x8a00, data ptr 0x736f
PCI ROM Image, @0x000c7373, Vendor 0846, Device ec89,
Device or Vendor ID mismatch Vendor 0846, Device ec89
Phase 6: PCI: 00:03.0 init.
PCI: pci_dev_init dynamic PCI: 00:03.0
Probing for option ROM
Phase 6: Devices initialized.
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 1
dynamic PCI: 00:00.0(PCI: 00:00.0): enabled 1 have_resources 1
dynamic PCI: 00:01.0(PCI: 00:01.0): enabled 1 have_resources 1
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1
search_global_resources: mask 4200 type 4200
search_global_resources: dev root, have_resources 0 #resources 2
search_global_resources: dev cpus, have_resources 0 #resources 0
search_global_resources: dev domain_0_bus_0_pci_0_0, have_resources 0 #resources 0
search_global_resources: dev domain_0_bus_0_pci_1_1, have_resources 0 #resources 0
search_global_resources: dev domain_0_bus_0, have_resources 0 #resources 0
search_global_resources: dev domain_0, have_resources 1 #resources 4
search_global_resources: dev domain_0, resource 0, flags 40040100 base 0x0 size 0x0
search_global_resources: dev domain_0, resource 1, flags 40040200 base 0x0 size 0x0
search_global_resources: dev domain_0, resource 2, flags e0004200 base 0x0 size 0xa0000
search_global_resources: dev domain_0, resource 3, flags e0004200 base 0xc0000 size 0x6f40000
search_global_resources: dev dynamic PCI: 00:00.0, have_resources 1 #resources 0
search_global_resources: dev dynamic PCI: 00:01.0, have_resources 1 #resources 0
search_global_resources: dev dynamic PCI: 00:01.1, have_resources 1 #resources 1
search_global_resources: dev dynamic PCI: 00:01.1, resource 0, flags 60000100 base 0x1400 size 0x10
search_global_resources: dev dynamic PCI: 00:01.3, have_resources 1 #resources 0
search_global_resources: dev dynamic PCI: 00:02.0, have_resources 1 #resources 2
search_global_resources: dev dynamic PCI: 00:02.0, resource 0, flags 60001200 base 0xfc000000 size 0x2000000
search_global_resources: dev dynamic PCI: 00:02.0, resource 1, flags 60000200 base 0xfe000000 size 0x1000
search_global_resources: dev dynamic PCI: 00:03.0, have_resources 1 #resources 1
search_global_resources: dev dynamic PCI: 00:03.0, resource 0, flags 60000100 base 0x1000 size 0x100
Multiboot Information structure has been written.
LAR: Attempting to open 'normal/option_table'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: CHECK normal/option_table @ 0xfffc0000
start 0xfffc0050 len 932 reallen 932 compression 0 entry 0x00000000 loadaddress 0x00000000
search_global_resources: mask 4200 type 4200
search_global_resources: dev root, have_resources 0 #resources 2
search_global_resources: dev cpus, have_resources 0 #resources 0
search_global_resources: dev domain_0_bus_0_pci_0_0, have_resources 0 #resources 0
search_global_resources: dev domain_0_bus_0_pci_1_1, have_resources 0 #resources 0
search_global_resources: dev domain_0_bus_0, have_resources 0 #resources 0
search_global_resources: dev domain_0, have_resources 1 #resources 4
search_global_resources: dev domain_0, resource 0, flags 40040100 base 0x0 size 0x0
search_global_resources: dev domain_0, resource 1, flags 40040200 base 0x0 size 0x0
search_global_resources: dev domain_0, resource 2, flags e0004200 base 0x0 size 0xa0000
lb_memory_range: start 0x0 size 0xa0000
search_global_resources: dev domain_0, resource 3, flags e0004200 base 0xc0000 size 0x6f40000
lb_memory_range: start 0xc0000 size 0x6f40000
search_global_resources: dev dynamic PCI: 00:00.0, have_resources 1 #resources 0
search_global_resources: dev dynamic PCI: 00:01.0, have_resources 1 #resources 0
search_global_resources: dev dynamic PCI: 00:01.1, have_resources 1 #resources 1
search_global_resources: dev dynamic PCI: 00:01.1, resource 0, flags 60000100 base 0x1400 size 0x10
search_global_resources: dev dynamic PCI: 00:01.3, have_resources 1 #resources 0
search_global_resources: dev dynamic PCI: 00:02.0, have_resources 1 #resources 2
search_global_resources: dev dynamic PCI: 00:02.0, resource 0, flags 60001200 base 0xfc000000 size 0x2000000
search_global_resources: dev dynamic PCI: 00:02.0, resource 1, flags 60000200 base 0xfe000000 size 0x1000
search_global_resources: dev dynamic PCI: 00:03.0, have_resources 1 #resources 1
search_global_resources: dev dynamic PCI: 00:03.0, resource 0, flags 60000100 base 0x1000 size 0x100
lb_cleanup_memory_ranges: # entries 2
#0: base 0x00000000 size 0xa0000
#1: base 0x000c0000 size 0x6f40000
lb_memory_range: start 0x0 size 0x500
lb_cleanup_memory_ranges: # entries 3
#0: base 0x00000500 size 0x9fb00
#1: base 0x000c0000 size 0x6f40000
#2: base 0x00000000 size 0x500
lb_memory_range: start 0xf0000 size 0xd0
lb_cleanup_memory_ranges: # entries 5
#0: base 0x00000000 size 0x500
#1: base 0x00000500 size 0x9fb00
#2: base 0x000c0000 size 0x30000
#3: base 0x000f00d0 size 0x6f0ff30
#4: base 0x000f0000 size 0xd0
Wrote coreboot table at: 0x00000500 - 0x00000ad0 checksum 140e
Show all devs...
root(Root Device): enabled 1 have_resources 0
cpus(CPU: 00): enabled 1 have_resources 0
domain_0_bus_0_pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0
domain_0_bus_0_pci_1_1(PCI: 00:01.1): enabled 1 have_resources 0
domain_0_bus_0(PCI_BUS: 0000): enabled 1 have_resources 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 1
dynamic PCI: 00:00.0(PCI: 00:00.0): enabled 1 have_resources 1
dynamic PCI: 00:01.0(PCI: 00:01.0): enabled 1 have_resources 1
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1
Stage2 code done.
LAR: Attempting to open 'normal/payload/segment0'.
LAR: Start 0xfffc0000 len 0x40000
LAR: seen member normal/option_table@0xfffc0000, size 932
LAR: seen member normal/initram/segment0@0xfffc0400, size 420
LAR: seen member normal/stage2/segment0@0xfffc0600, size 1
LAR: seen member normal/stage2/segment1@0xfffc0660, size 16161
LAR: seen member normal/stage2/segment2@0xfffc45e0, size 311
LAR: seen member bootblock@0xffffafc0, size 20480
LAR: File not found!
LAR: load_file: No such file 'normal/payload/segment0'
LAR: load_file_segments: Failed for normal/payload
Before handoff to payload, lowest stack is 0x0008bf50
FATAL: No usable payload found.