p620 hangs instantiating rtas at 0x00000000deadbeef
Olaf Hering
olh at suse.de
Sat Feb 12 10:22:34 EST 2005
On Sat, Feb 12, Benjamin Herrenschmidt wrote:
> On Thu, 2005-02-10 at 18:01 -0600, Linas Vepstas wrote:
>
> > Once, a long time ago, it was what a register would hold after the CPU
> > was powered on the very first time ...
> >
> > Now, it seems to be an error return value from prom_claim() ...
> > seems to be getting returned by firmware ... they probably
> > should have returned a -1, those jokers ...
>
> Yes, definitely looks like a firmware bug to me. This return value is
> just insane.
It still hangs later, have to try a plain 2.6.10.
diff -purNx tags ../linux-2.6.11-rc3.orig/arch/ppc64/kernel/prom_init.c ./arch/ppc64/kernel/prom_init.c
--- ../linux-2.6.11-rc3.orig/arch/ppc64/kernel/prom_init.c 2005-02-03 02:56:48.000000000 +0100
+++ ./arch/ppc64/kernel/prom_init.c 2005-02-12 00:11:06.045040377 +0100
@@ -530,6 +529,11 @@ static unsigned long __init alloc_down(u
for(; base > RELOC(alloc_bottom); base = _ALIGN_DOWN(base - 0x100000, align)) {
prom_debug(" trying: 0x%x\n\r", base);
addr = (unsigned long)prom_claim(base, size, 0);
+ if ((u32)addr == 0xdeadbeef) {
+ prom_debug("prom_claim, addr == 0xdeadbeef");
+ addr = 0;
+ continue;
+ }
if ((int)addr != PROM_ERROR)
break;
addr = 0;
BOOTP S = 1
FILE: orange
Load Addr=0x4000 Max Size=0xbfc000
FINAL Packet Count = 5801
FINAL File Size = 2969809 bytes.
zImage starting: loaded at 0x400000
Allocating 0x94c000 bytes for kernel ...
gunzipping (0x2100000 <- 0x407000:0x6c38b0)...done 0x7e23b8 bytes
0xe3fc bytes of heap consumed, max in use 0xa1f4
OF stdout device is: /pci at fff7f09000/isa at 10/serial at i3f8
klimit=0xc00000000084c000
offset=0xbffffffffdef0000
command line:
root_addr_cells: 0000000000000002
root_size_cells: 0000000000000002
scanning memory:
node /memory at 0 :
0000000000000000 0000000100000000
memory layout at init:
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 0000000100000000
rmo_top : 0000000040000000
ram_top : 0000000100000000
Booting CPU hw index = 0x0000000000000000
Looking for displays
found display : /pci at fff7f0a000/pci at b,4/display at 1, opening ... done
starting prom_initialize_tce_table
alloc_down(0000000000400000, 0000000000800000, (high))
-> 00000000ff800000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000ff800000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f09000
node = 0x0000000000cc7380
base = 0x00000000ff800000
size = 0x0000000000400000
opening PHB /pci at fff7f09000... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000ff400000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000ff400000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f09000/pci at b
node = 0x0000000000cd8560
base = 0x00000000ff400000
size = 0x0000000000400000
opening PHB /pci at fff7f09000/pci at b... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000ff000000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000ff000000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f09000/pci at b,2
node = 0x0000000000cdc5f8
base = 0x00000000ff000000
size = 0x0000000000400000
opening PHB /pci at fff7f09000/pci at b,2... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fec00000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fec00000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f09000/pci at b,4
node = 0x0000000000ce0a88
base = 0x00000000fec00000
size = 0x0000000000400000
opening PHB /pci at fff7f09000/pci at b,4... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fe800000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fe800000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f09000/pci at b,6
node = 0x0000000000ce4f18
base = 0x00000000fe800000
size = 0x0000000000400000
opening PHB /pci at fff7f09000/pci at b,6... done
alloc_down(0000000000400000, 0000000000800000, (high))
-> 00000000fe000000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fe000000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000
node = 0x0000000000ce97e0
base = 0x00000000fe000000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fdc00000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fdc00000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at b
node = 0x0000000000cec720
base = 0x00000000fdc00000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at b... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fd800000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fd800000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at b,2
node = 0x0000000000cf0b38
base = 0x00000000fd800000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at b,2... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fd400000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fd400000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at b,4
node = 0x0000000000cf4fc8
base = 0x00000000fd400000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at b,4... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fd000000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fd000000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at b,6
node = 0x0000000000cf9458
base = 0x00000000fd000000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at b,6... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fcc00000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fcc00000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at c
node = 0x0000000000cfd8e8
base = 0x00000000fcc00000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at c... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fc800000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fc800000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at c,2
node = 0x0000000000d01d88
base = 0x00000000fc800000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at c,2... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fc400000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fc400000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at c,4
node = 0x0000000000d06228
base = 0x00000000fc400000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at c,4... done
alloc_down(0000000000400000, 0000000000400000, (high))
-> 00000000fc000000
alloc_bottom : 0000000002960000
alloc_top : 0000000040000000
alloc_top_hi : 00000000fc000000
rmo_top : 0000000040000000
ram_top : 0000000100000000
TCE table: /pci at fff7f0a000/pci at c,6
node = 0x0000000000d0a6c8
base = 0x00000000fc000000
size = 0x0000000000400000
opening PHB /pci at fff7f0a000/pci at c,6... done
ending prom_initialize_tce_table
prom_instantiate_rtas: start...
prom_rtas: 0000000000cb5050
alloc_down(00000000000a7000, 0000000000001000, (low))
trying: 0x000000003ff59000
prom_claim, addr == 0xdeadbeef trying: 0x000000003fe59000
-> 000000003fe59000
alloc_bottom : 0000000002960000
alloc_top : 000000003fe59000
alloc_top_hi : 00000000fc000000
rmo_top : 0000000040000000
ram_top : 0000000100000000
instantiating rtas at 0x000000003fe59000... done
rtas base = 0x000000003fe59000
rtas entry = 0x000000003fe59900
rtas size = 0x00000000000a7000
prom_instantiate_rtas: end...
prom_hold_cpus: start...
1) spinloop = 0x0000000000000008
1) *spinloop = 0x0000000000000000
1) acknowledge = 0x0000000000000010
1) *acknowledge = 0x0000000000000000
1) secondary_hold = 0x0000000000000060
cpuid = 0x0000000000000000
cpu hw idx = 0x0000000000000000
0000000000000000 : boot cpu 0000000000000000
cpuid = 0x0000000000000001
cpu hw idx = 0x0000000000000002
0000000000000001 : starting cpu hw idx 0000000000000002... done
cpuid = 0x0000000000000002
cpu hw idx = 0x0000000000000004
0000000000000002 : starting cpu hw idx 0000000000000004... done
cpuid = 0x0000000000000003
cpu hw idx = 0x0000000000000006
0000000000000003 : starting cpu hw idx 0000000000000006... done
prom_hold_cpus: end...
copying OF device tree ...
starting device tree allocs at 0000000002960000
alloc_up(0000000000100000, 0000000000001000)
trying: 0x0000000002960000
trying: 0x0000000002a60000
-> 0000000002a60000
alloc_bottom : 0000000002a60000
alloc_top : 000000003fe59000
alloc_top_hi : 00000000fc000000
rmo_top : 0000000040000000
ram_top : 0000000100000000
Building dt strings...
Building dt structure...
reserved memory map:
00000000fc000000 - 0000000004000000
000000003fe59000 - 00000000000a7000
0000000002a60000 - 0000000000013000
Device tree strings 0x0000000002a61000 -> 0x0000000002a621f9
Device tree struct 0x0000000002a63000 -> 0x0000000002a73000
Calling quiesce ...
returning from prom_init
->dt_header_start=0x0000000002a60000
->phys=0x0000000002110000
Hello World !
<- pSeries_init_early()
-> finish_device_tree
<- finish_device_tree
firmware_features = 0x0
<- setup_system()
-> smp_init_pSeries()
<- smp_init_pSeries()
phb0: IO 0x0 -> 0xfffff
phb0: MEM 0xfe80000000 -> 0xfebfffffff
phb0 io_base_phys 0xfeffe00000 io_base_virt 0xe000000000000000
phb1: IO 0x0 -> 0xfffff
phb1: MEM 0xff00000000 -> 0xff3fffffff
phb1 io_base_phys 0xfefff00000 io_base_virt 0xe000000000100000
Starting Linux PPC64 2.6.11-rc3-bk7
-----------------------------------------------------
ppc64_pft_size = 0x1a
ppc64_debug_switch = 0x0
ppc64_interrupt_controller = 0x2
systemcfg = 0xc000000000005000
systemcfg->platform = 0x100
systemcfg->processorCount = 0x4
systemcfg->physicalMemorySize = 0x100000000
ppc64_caches.dcache_line_size = 0x80
ppc64_caches.icache_line_size = 0x80
htab_address = 0xc0000000f8000000
htab_hash_mask = 0x7ffff
-----------------------------------------------------
[boot]0100 MM Init
[boot]0100 MM Init Done
Linux version 2.6.11-rc3-bk7 (olaf at pomegranate) (gcc version 3.3.3 (SuSE Linux)) #21 SMP Sat Feb 12 00:13:20 CET 2005
[boot]0012 Setup Arch
Top of RAM: 0x100000000, Total RAM: 0x100000000
Memory hole size: 0MB
No ramdisk, default root is /dev/sda2
EEH: No capable adapters found
PPC64 nvram contains 262144 bytes
Using default idle loop
[boot]0015 Setup Done
Built 1 zonelists
Kernel command line:
[boot]0020 XICS Init
[boot]0021 XICS Done
PID hash table entries: 4096 (order: 12, 131072 bytes)
time_init: decrementer frequency = 601.579296 MHz
time_init: processor frequency = 601.600000 MHz
-> set_preferred_console()
stdout is /pci at fff7f09000/isa at 10/serial at i3f8
Found serial console at ttyS0
smp_prepare_cpus
smp: kicking cpu 1
smp: kicking cpu 2
smp: kicking cpu 3
More information about the Linuxppc64-dev
mailing list