On Fri, 4 Apr 2003, Erik J. Green wrote:
> I get the following messages when I try to boot the (very slightly) modified
> linux kernel I am working with:
>
> --start messages
>
> Obtaining /vmlinux.64 from server
> 1813568+1150976+172144 entry: 0xa8000000211c4000
>
> *** PROM write error on cacheline 0x1fcd3b00 at PC=0x211c4018
> RA=0xffffffff9fc5ace4
>
> --end messages
>
> The PC address is the first instruction in head.S (mips64) that touches the
> control register. I've tried multiple fixes, including initializing the whole
> TLB before the error occurs. Same error.
0x211c4018 is a mapped address, which you can't use that early in a boot.
> Can anyone tell me:
>
> 1) What does this error text mean exactly?
An unhandled exception happened due to using a mapped address. The PROM
caught it and reported.
> 2) What is "RA"? The address is a location in the PROM text/stack section.
It's a CPU register, otherwise known as $31, where the return address is
stored by most of the jump-and-link and branch-and-link instructions.
Here it's an address in the PROM following the "jalr" instruction that
invoked the kernel.
> 3) Am I missing something simple? An initialization, a rule I'm not
> following?
You really want to link your kernel at a KSEG0 address (otherwise you'd
need to struggle with the kernel and the tools to get an unsupported yet
configuration to work). Basically this means setting LOADADDR in
arch/mips64/Makefile appropriately. See how it's done for other
platforms.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
|