p620 hangs instantiating rtas at 0x00000000deadbeef

Linas Vepstas linas at austin.ibm.com
Fri Feb 11 11:01:34 EST 2005


On Thu, Feb 10, 2005 at 09:18:30PM +0100, Olaf Hering was heard to remark:
>  On Thu, Feb 10, Linas Vepstas wrote:
> whatever 0xdeadbeef is, perhaps a hint to call prom_exit ;)

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 ... 

Anyway, the firmware seems to be telling us that it cannot
honour the very first request to claim memory right below
RMO top.

I might be totally insane but I notice that rmo_top is set to 1GB, and I
thought 256MB was the top ... so try this, for laughs ... in the routine

static void __init prom_init_mem(void)
around line 675 
RELOC(alloc_top) = RELOC(rmo_top) = min(0x40000000ul, RELOC(ram_top

change the 4 to a 1 ...

That is my wild guess.

I notice that someone re-wrote all of that prom code in the last half-year, 
I don't know who ...  probably Ben ...  they would be the expert 
for what's going on in here, not me.  I bow out here.

---linas


> 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:0x6c3192)...done 0x7e23b8 bytes
> 0xe60c bytes of heap consumed, max in use 0xa318
> 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

.............

> prom_instantiate_rtas: start...
> prom_rtas: 0000000000cb5050
> size=0x00000000000a7000
> size=0x00000000000a7000
> size=0x00000000000a7000
> alloc_down(00000000000a7000, 0000000000001000, (low))
>     trying: 0x000000003ff59000
>  -> 00000000deadbeef

I'm guessing that prom_claim did not like the large value of 1GB ... 

>   alloc_bottom : 0000000002960000
>   alloc_top    : 00000000deadbeef
>   alloc_top_hi : 00000000fc000000
>   rmo_top      : 0000000040000000
>   ram_top      : 0000000100000000
> instantiating rtas at 0x00000000deadbeef... failed



More information about the Linuxppc64-dev mailing list