On Fri, 4 Apr 2003, Erik J. Green wrote:
> Clearly then, the kernel is linked at the wrong address to have this work.
> The
> question I have is, why is kseg0 used in this case? Is it due to the 32 to 64
> bit conversion that happens later on in the build? It looks like the IP27
> load
> address was originally 0xa80000000001c000, but was amended to 0x8001c000 for
> the current CVS(2.4) kernel. Again, due to the conversion?
Not all parts of the MIPS64/Linux kernel are 64-bit clean when it comes
to addressing. There used to be troubles with 64-bit tools until
recently, too. That's why the kernel is built with 32-bit addressing and
only after the final link converted to a 64-bit object to satisfy firmware
that needs such for a load.
It should be fixed one day, but that's not necessarily a starter's task.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +