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