linux-mips-fnet
[Top] [All Lists]

Re: argument mismatch in prom_init() for DDB5074?

To: Jun Sun <jsun@mvista.com>
Subject: Re: argument mismatch in prom_init() for DDB5074?
From: "Gleb O. Raiko" <raiko@niisi.msk.ru>
Date: Wed, 28 Jun 2000 11:44:08 +0400
Cc: linux@engr.sgi.com, linux-mips@fnet.fr
Organization: NIISI RAN
References: <39596570.68939D9@mvista.com>

Jun Sun wrote:
> 
> I compiled an image for DDB5074.  I got a TLB fault immediately after
> the control enters prom_init() function.  A further probe shows that the
> caller are passing differents arguments to prom_init than what the
> callee expected.  See code excerpt below.

Most of the ports have the same mismatch. Usually, bios/prom/bootloader
calls the box independend routine, kernel_netry (head.S) with some
arguments. kernel_enry prepares C environment and calls init_arch w/ the
same arguments. The number of the arguments and their types are box
dependent. kernel_entry and init_arch never try to access the arguments
to be passed by prom, but just pass the arguments to prom_init.
Moreover, the arguments declared in init_arch don't match any mips box,
they are mix of calling conventions of ARC console and DECstation prom
(the last one).

Fortunately, sizeof(int) == sizeof(long) == sizeof(pointer) in mips32,
so we may happy live with that.

> 
> Does this mean the code of DDB5074 is outdated?  In any case, can
> someone give me a hint on how to fix this?  It does not look obvious at
> the first sight...
> 

I think, you shouldn't fix the argument list, continue bug searching in
other places.

Regards,
Gleb.

<Prev in Thread] Current Thread [Next in Thread>