Carl-Daniel Hailfinger wrote:
> Absolute calls from initram were only working from the file which had
> _MAINOBJECT #defined. Calls from all other files ended up in nirvana
> because the compiler was not able to calculate the address of the
> wrapper for the absolute call. The linker tried, but failed miserably.
> Use the -combine flag and compile all of initram at once. This enables
> GCC to calculate the address of the abscall wrapper, resulting in
> working code.
>
> Segher Boessenkool thinks the patched code works only by accident
> because GCC has no way to specify generation of XIP code. According to
> him, future GCC versions or other circumstances may break the code.
>
> While this patch makes code work for now, it does NOT check whether the
> generated code tries to write to memory outside the stack (general
> writable data). That will of course fail, but I hope porters are smart
> enough to avoid that.
>   

Great work tracking this down! This is okay for now, but we need to look
for a better solution in the future. Counting on porters who may or may
not remember this discussion to avoid something isn't good future-proofing.

> Signed-off-by: Carl-Daniel Hailfinger <[EMAIL PROTECTED]>

I've attached a QEMU bootlog, it seems to make the calls to the right
places, but still won't boot FILO. Per IRC, I won't ack at the moment
until more people can test, but it does look good to me :)

-Corey
(qemu) 

LinuxBIOS-3.0.0 Mon Dec  3 22:37:01 EST 2007 starting...
Choosing fallback boot.
LAR: Attempting to open 'fallback/initram.o/segment0'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: seen member normal/stage2.o/segment0
LAR: seen member normal/stage2.o/segment1
LAR: seen member normal/initram.o/segment0
LAR: seen member bootblock
LAR: NO FILE FOUND!
LAR: Run file fallback/initram.o/segment0 failed: No such file.
Fallback failed. Try normal boot
LAR: Attempting to open 'normal/initram.o/segment0'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: seen member normal/stage2.o/segment0
LAR: seen member normal/stage2.o/segment1
LAR: seen member normal/initram.o/segment0
LAR: CHECK normal/initram.o/segment0 @ 0xfff8cf10
start 0xfff8cf60 len 424 reallen 424 compression 0 entry 0x00000042 loadaddress 0x00000000
Entry point is 0xfff8cfa2
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
LAR: Attempting to open 'normal/stage2.o/segment0'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: seen member normal/stage2.o/segment0
LAR: CHECK normal/stage2.o/segment0 @ 0xfff89180
start 0xfff891d0 len 15271 reallen 28340 compression 1 entry 0x00001000 loadaddress 0x00001000
LAR: Compression algorithm #1 used
LAR: Attempting to open 'normal/stage2.o/segment1'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: seen member normal/stage2.o/segment0
LAR: seen member normal/stage2.o/segment1
LAR: CHECK normal/stage2.o/segment1 @ 0xfff8cd80
start 0xfff8cdd0 len 310 reallen 4540 compression 1 entry 0x00001000 loadaddress 0x00008000
LAR: Compression algorithm #1 used
LAR: Attempting to open 'normal/stage2.o/segment2'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: seen member normal/stage2.o/segment0
LAR: seen member normal/stage2.o/segment1
LAR: seen member normal/initram.o/segment0
LAR: seen member bootblock
LAR: NO FILE FOUND!
LAR: load_file: No such file 'normal/stage2.o/segment2'
LAR: load_file_segments: All loaded, entry 0x00001000
Phase 1: Very early setup...
Phase 1: done
Show all devs...
root(Root Device): enabled 1 have_resources 0 initialized 0
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
device0_0(PCI: 00:00.0): enabled 1 have_resources 0 initialized 0
southbridge_intel_i82371eb(PCI: 00:01.0): enabled 1 have_resources 0 initialized 0
domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 0 initialized 0
Phase 2: Early setup...
dev_phase2: dev root: 
dev_phase2: dev cpus: 
dev_phase2: dev device0_0: 
dev_phase2: dev southbridge_intel_i82371eb: 
dev_phase2: dev domain0: 
Phase 2: Done.
Show all devs...
root(Root Device): enabled 1 have_resources 0 initialized 0
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
device0_0(PCI: 00:00.0): enabled 1 have_resources 0 initialized 0
southbridge_intel_i82371eb(PCI: 00:01.0): enabled 1 have_resources 0 initialized 0
domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 0 initialized 0
Phase 3: Enumerating buses...
dev_phase3_scan: scanning root(Root Device)
scan_static_bus for root (Root Device)
cpus: Unknown device path type: 0
cpus() enabled
dev_phase5: device0_0(PCI: 00:00.0) missing ops
dev_phase5: southbridge_intel_i82371eb(PCI: 00:01.0) missing ops
domain0(PCI_DOMAIN: 0000) enabled
domain0(PCI_DOMAIN: 0000) scanning...
dev_phase3_scan: scanning domain0(PCI_DOMAIN: 0000)
pci_scan_bus start bus 0x00008958, bus->dev 0x00008720
PCI: pci_scan_bus for bus 00
pci_scan_bus: old_devices 0x00008a20, dev for this bus 0x00008720 (domain0)
PCI: scan devfn 0x0 to 0xff
PCI: devfn 0x0
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00008a20
pci_scan_get_dev: check dev device0_0 
pci_scan_get_dev: check dev device0_0 it has devfn 0x00
PCI: pci_scan_bus pci_scan_get_dev returns dev device0_0
find_constructor: find PCI: 8086:1237
find_constructor: check all_constructors[i] 0x00007be0
find_constructor: cons 0x00007be0, cons id PCI: 1013:00b8
find_constructor: check all_constructors[i] 0x00009060
find_constructor: cons 0x00009060, cons id PCI_DOMAIN: 8086:7190
find_constructor: cons 0x00009074, cons id PCI: 8086:7190
find_constructor: check all_constructors[i] 0x000090a0
find_constructor: cons 0x000090a0, cons id PCI: 8086:7000
find_constructor: cons 0x000090b4, cons id PCI: 8086:7010
find_constructor: cons 0x000090c8, cons id PCI: 8086:7113
set_pci_ops: dev 0x00008a20(device0_0) set ops to 0x00008040
PCI: 00:00.0 [8086/1237] enabled
PCI: pci_scan_bus pci_probe_dev returns dev 0x00008a20(device0_0)
PCI: devfn 0x8
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00008d20
pci_scan_get_dev: check dev southbridge_intel_i82371eb 
pci_scan_get_dev: check dev southbridge_intel_i82371eb it has devfn 0x08
PCI: pci_scan_bus pci_scan_get_dev returns dev southbridge_intel_i82371eb
find_constructor: find PCI: 8086:7000
find_constructor: check all_constructors[i] 0x00007be0
find_constructor: cons 0x00007be0, cons id PCI: 1013:00b8
find_constructor: check all_constructors[i] 0x00009060
find_constructor: cons 0x00009060, cons id PCI_DOMAIN: 8086:7190
find_constructor: cons 0x00009074, cons id PCI: 8086:7190
find_constructor: check all_constructors[i] 0x000090a0
find_constructor: cons 0x000090a0, cons id PCI: 8086:7000
find_constructor: match
PCI: 00:01.0 id PCI: 8086:7000 [8086/7000] ops
PCI: 00:01.0 [8086/7000] enabled
PCI: pci_scan_bus pci_probe_dev returns dev 0x00008d20(southbridge_intel_i82371eb)
PCI: devfn 0x9
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_get_dev returns dev None (no dev in tree yet)
find_constructor: find PCI: 8086:7010
find_constructor: check all_constructors[i] 0x00007be0
find_constructor: cons 0x00007be0, cons id PCI: 1013:00b8
find_constructor: check all_constructors[i] 0x00009060
find_constructor: cons 0x00009060, cons id PCI_DOMAIN: 8086:7190
find_constructor: cons 0x00009074, cons id PCI: 8086:7190
find_constructor: check all_constructors[i] 0x000090a0
find_constructor: cons 0x000090a0, cons id PCI: 8086:7000
find_constructor: cons 0x000090b4, cons id PCI: 8086:7010
find_constructor: match
constructor: constructor is 0x000090b4
default device constructor called
set_pci_ops: dev 0x000094e4(dynamic PCI: 00:01.1) already has ops 0x00009140
PCI: 00:01.1 [8086/7010] enabled
PCI: pci_scan_bus pci_probe_dev returns dev 0x000094e4(dynamic PCI: 00:01.1)
PCI: devfn 0xa
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xb
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_get_dev returns dev None (no dev in tree yet)
find_constructor: find PCI: 8086:7113
find_constructor: check all_constructors[i] 0x00007be0
find_constructor: cons 0x00007be0, cons id PCI: 1013:00b8
find_constructor: check all_constructors[i] 0x00009060
find_constructor: cons 0x00009060, cons id PCI_DOMAIN: 8086:7190
find_constructor: cons 0x00009074, cons id PCI: 8086:7190
find_constructor: check all_constructors[i] 0x000090a0
find_constructor: cons 0x000090a0, cons id PCI: 8086:7000
find_constructor: cons 0x000090b4, cons id PCI: 8086:7010
find_constructor: cons 0x000090c8, cons id PCI: 8086:7113
find_constructor: match
constructor: constructor is 0x000090c8
default device constructor called
set_pci_ops: dev 0x000097c8(dynamic PCI: 00:01.3) already has ops 0x00009180
PCI: 00:01.3 [8086/7113] enabled
PCI: pci_scan_bus pci_probe_dev returns dev 0x000097c8(dynamic PCI: 00:01.3)
PCI: devfn 0xc
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xd
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xe
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xf
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x10
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_get_dev returns dev None (no dev in tree yet)
find_constructor: find PCI: 1013:00b8
find_constructor: check all_constructors[i] 0x00007be0
find_constructor: cons 0x00007be0, cons id PCI: 1013:00b8
find_constructor: match
constructor: constructor is 0x00007be0
default device constructor called
set_pci_ops: dev 0x00009aac(dynamic PCI: 00:02.0) already has ops 0x00007c20
Init VGA device
PCI: 00:02.0 [1013/00b8] enabled
PCI: pci_scan_bus pci_probe_dev returns dev 0x00009aac(dynamic PCI: 00:02.0)
PCI: devfn 0x18
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_get_dev returns dev None (no dev in tree yet)
find_constructor: find PCI: 10ec:8029
find_constructor: check all_constructors[i] 0x00007be0
find_constructor: cons 0x00007be0, cons id PCI: 1013:00b8
find_constructor: check all_constructors[i] 0x00009060
find_constructor: cons 0x00009060, cons id PCI_DOMAIN: 8086:7190
find_constructor: cons 0x00009074, cons id PCI: 8086:7190
find_constructor: check all_constructors[i] 0x000090a0
find_constructor: cons 0x000090a0, cons id PCI: 8086:7000
find_constructor: cons 0x000090b4, cons id PCI: 8086:7010
find_constructor: cons 0x000090c8, cons id PCI: 8086:7113
constructor: constructor is 0x00000000
No constructor called for <null>.
find_constructor: find PCI: 10ec:8029
find_constructor: check all_constructors[i] 0x00007be0
find_constructor: cons 0x00007be0, cons id PCI: 1013:00b8
find_constructor: check all_constructors[i] 0x00009060
find_constructor: cons 0x00009060, cons id PCI_DOMAIN: 8086:7190
find_constructor: cons 0x00009074, cons id PCI: 8086:7190
find_constructor: check all_constructors[i] 0x000090a0
find_constructor: cons 0x000090a0, cons id PCI: 8086:7000
find_constructor: cons 0x000090b4, cons id PCI: 8086:7010
find_constructor: cons 0x000090c8, cons id PCI: 8086:7113
set_pci_ops: dev 0x00009d90(dynamic PCI: 00:03.0) set ops to 0x00008040
PCI: 00:03.0 [10ec/8029] enabled
PCI: pci_scan_bus pci_probe_dev returns dev 0x00009d90(dynamic PCI: 00:03.0)
PCI: devfn 0x20
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x28
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x30
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x38
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x40
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x48
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x50
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x58
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x60
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x68
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x70
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x78
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x80
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x88
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x90
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0x98
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xa0
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xa8
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xb0
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xb8
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xc0
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xc8
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xd0
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xd8
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xe0
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xe8
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xf0
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: devfn 0xf8
pci_scan_get_dev: list is 0x0008feb4, *list is 0x00000000
PCI: pci_scan_bus pci_scan_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 0x00000000()
PCI: Done for loop
dev_phase3_scan: device0_0: busdevice 0x00008a20 enabled 1 ops 0x00008040
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: southbridge_intel_i82371eb: busdevice 0x00008d20 enabled 1 ops 0x00009100
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:01.1: busdevice 0x000094e4 enabled 1 ops 0x00009140
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:01.3: busdevice 0x000097c8 enabled 1 ops 0x00009180
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:02.0: busdevice 0x00009aac enabled 1 ops 0x00007c20
dev_phase3_scan: can not scan from here, returning 0
dev_phase3_scan: dynamic PCI: 00:03.0: busdevice 0x00009d90 enabled 1 ops 0x00008040
dev_phase3_scan: can not scan from here, returning 0
PCI: pci_scan_bus returning with max=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 initialized 0
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
device0_0(PCI: 00:00.0): enabled 1 have_resources 0 initialized 0
southbridge_intel_i82371eb(PCI: 00:01.0): enabled 1 have_resources 0 initialized 0
domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 0 initialized 0
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 0 initialized 0
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 0 initialized 0
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 0 initialized 0
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 0 initialized 0
Phase 4: Allocating resources...
Phase 4: 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
cpus: Unknown device path type: 0
read_resources: cpus() missing phase4_read_resources
read_resources: root(Root Device) dtsname domain0 have_resources 0 enabled 1
read_resources: domain0(PCI_DOMAIN: 0000) read_resources bus 0 link: 0
read_resources: domain0(PCI_DOMAIN: 0000) dtsname device0_0 have_resources 0 enabled 1
read_resources: domain0(PCI_DOMAIN: 0000) dtsname southbridge_intel_i82371eb have_resources 0 enabled 1
read_resources: domain0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:01.1 have_resources 0 enabled 1
read_resources: domain0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:01.3 have_resources 0 enabled 1
read_resources: domain0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:02.0 have_resources 0 enabled 1
read_resources: domain0(PCI_DOMAIN: 0000) dtsname dynamic PCI: 00:03.0 have_resources 0 enabled 1
read_resources: domain0(PCI_DOMAIN: 0000) read_resources bus 0 link: 0 done
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
cpus: Unknown device path type: 0
read_resources: cpus() missing phase4_read_resources
read_resources: root(Root Device) dtsname domain0 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
Phase 4: Done reading resources.
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
Phase 4: Setting resources...
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
cpus: Unknown device path type: 0
read_resources: cpus() missing phase4_read_resources
read_resources: root(Root Device) dtsname domain0 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
cpus: Unknown device path type: 0
read_resources: cpus() missing phase4_read_resources
read_resources: root(Root Device) dtsname domain0 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
root(Root Device) assign_resources, bus 0 link: 0
Adding RAM resource (134217728 bytes)
domain0(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:02.0 30 <- [0x00000c0000 - 0x00000bffff] size 0x00000000 gran 0x00 romem
PCI: 00:03.0 10 <- [0x0000001000 - 0x00000010ff] size 0x00000100 gran 0x08 io
domain0(PCI_DOMAIN: 0000) assign_resources, bus 0 link: 0
root(Root Device) assign_resources, 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 initialized 0
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
device0_0(PCI: 00:00.0): enabled 1 have_resources 1 initialized 0
southbridge_intel_i82371eb(PCI: 00:01.0): enabled 1 have_resources 1 initialized 0
domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1 initialized 0
Phase 5: Enabling resources...
cpus: Unknown device path type: 0
dev_phase5: cpus() missing ops
pci_dev_enable_resources: device0_0 (PCI: 00:00.0) cmd <- 140
pci_dev_enable_resources: southbridge_intel_i82371eb (PCI: 00:01.0) cmd <- 147
pci_dev_enable_resources: dynamic PCI: 00:01.1 (PCI: 00:01.1) cmd <- 141
pci_dev_enable_resources: dynamic PCI: 00:01.3 (PCI: 00:01.3) cmd <- 140
PCI: 00:02.0: Setting subsystem VID/DID to 15ad/1976
pci_dev_enable_resources: dynamic PCI: 00:02.0 (PCI: 00:02.0) cmd <- 143
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 initialized 0
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
device0_0(PCI: 00:00.0): enabled 1 have_resources 1 initialized 0
southbridge_intel_i82371eb(PCI: 00:01.0): enabled 1 have_resources 1 initialized 0
domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1 initialized 0
Phase 6: Initializing devices...
Phase 6: Root Device init.
Phase 6: PCI: 00:00.0 init.
PCI: pci_dev_init
Probing for option ROM
Phase 6: PCI: 00:01.0 init.
Initializing realtime clock.
RTC: Checksum invalid zeroing cmos
Invalid LinuxBIOS CMOS checksum.
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.
Enabling SMBus.
Enable Power Management Functions
Phase 6: PCI: 00:02.0 init.
PCI: pci_dev_init
Probing for option ROM
ROM address for PCI: 00:02.0 = c0000
PCI Expansion ROM, signature 0x0000, INIT size 0x0000, data ptr 0x0000
Incorrect Expansion ROM Header Signature 0000
Phase 6: PCI: 00:03.0 init.
PCI: pci_dev_init
Probing for option ROM
Phase 6: Devices initialized.
Show all devs...
root(Root Device): enabled 1 have_resources 0 initialized 1
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
device0_0(PCI: 00:00.0): enabled 1 have_resources 1 initialized 1
southbridge_intel_i82371eb(PCI: 00:01.0): enabled 1 have_resources 1 initialized 1
domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1 initialized 1
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1 initialized 1
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1 initialized 1
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1 initialized 1
LAR: Attempting to open 'normal/option_table'.
LAR: Start 0xfff80000 len 0x7c000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: CHECK normal/option_table @ 0xfff88d80
start 0xfff88dd0 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 device0_0, have_resources 1 #resources 0
search_global_resources: dev southbridge_intel_i82371eb, have_resources 1 #resources 0
search_global_resources: dev domain0, have_resources 1 #resources 3
search_global_resources: dev domain0, resource 0, flags 40040100 base 0x0 size 0x0
search_global_resources: dev domain0, resource 1, flags 40040200 base 0x0 size 0x0
search_global_resources: dev domain0, resource 2, flags e0004200 base 0x0 size 0x8000000
lb_memory_range: start 0x0 size 0x8000000
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 3
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:02.0, resource 2, flags e0002200 base 0xc0000 size 0x0
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 1
  #0: base 0x00000000 size 0x8000000
lb_memory_range: start 0x0 size 0x500
lb_cleanup_memory_ranges: # entries 2
  #0: base 0x00000500 size 0x7fffb00
  #1: base 0x00000000 size 0x500
lb_memory_range: start 0xf0000 size 0x0
lb_cleanup_memory_ranges: # entries 4
  #0: base 0x00000000 size 0x500
  #1: base 0x00000500 size 0xefb00
  #2: base 0x000f0000 size 0x7f10000
  #3: base 0x000f0000 size 0x0
Wrote LinuxBIOS table at: 0x00000500 - 0x00000a80  checksum b964
Show all devs...
root(Root Device): enabled 1 have_resources 0 initialized 1
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
device0_0(PCI: 00:00.0): enabled 1 have_resources 1 initialized 1
southbridge_intel_i82371eb(PCI: 00:01.0): enabled 1 have_resources 1 initialized 1
domain0(PCI_DOMAIN: 0000): enabled 1 have_resources 1 initialized 0
dynamic PCI: 00:01.1(PCI: 00:01.1): enabled 1 have_resources 1 initialized 1
dynamic PCI: 00:01.3(PCI: 00:01.3): enabled 1 have_resources 1 initialized 1
dynamic PCI: 00:02.0(PCI: 00:02.0): enabled 1 have_resources 1 initialized 1
dynamic PCI: 00:03.0(PCI: 00:03.0): enabled 1 have_resources 1 initialized 1
Stage2 code done.
LAR: Attempting to open 'normal/payload'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: seen member normal/stage2.o/segment0
LAR: seen member normal/stage2.o/segment1
LAR: seen member normal/initram.o/segment0
LAR: seen member bootblock
LAR: NO FILE FOUND!
LAR: Attempting to open 'normal/payload/segment0'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: CHECK normal/payload/segment0 @ 0xfff80000
start 0xfff80050 len 36002 reallen 73832 compression 1 entry 0x0010d4c4 loadaddress 0x00100000
LAR: Compression algorithm #1 used
LAR: Attempting to open 'normal/payload/segment1'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: CHECK normal/payload/segment1 @ 0xfff88d00
start 0xfff88d50 len 47 reallen 72 compression 1 entry 0x0010d4c4 loadaddress 0x0014f840
LAR: Compression algorithm #1 used
LAR: Attempting to open 'normal/payload/segment2'.
LAR: Start 0xfff80000 len 0x80000
LAR: seen member normal/payload/segment0
LAR: seen member normal/payload/segment1
LAR: seen member normal/option_table
LAR: seen member normal/stage2.o/segment0
LAR: seen member normal/stage2.o/segment1
LAR: seen member normal/initram.o/segment0
LAR: seen member bootblock
LAR: NO FILE FOUND!
LAR: load_file: No such file 'normal/payload/segment2'
LAR: load_file_segments: All loaded, entry 0x0010d4c4
-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to