Atsushi Nemoto wrote:
Just an optimization. For CKSEG0 symbol, a LUI instruction can fill
high 32-bit by sign-extention. Either code should work for CKSEG0
kernel.
Hmm, strange then. It's gotta be something those four extra commands do that
IP32 likes. IP22 boots fine with either form, though that has a separate
problem where it looks like serial console on the zilog chip panics the system
after booting into a netboot.
Doing some tests, I found out that by commenting out one or more of the
daddui/dsll instructions for IP32 produced a kernel that still booted, but hung
at running init/freeing kernel memory. Using the single lui booted once, but I
suspect that was my fault on not doing something proper, cause the next time
around, it didn't boot at all. I tested this all on a real console, versus
serial, case there was an early panic or something. But I see nothing to
indicate why IP32 dislikes the lui->ld sequence versus the
lui->daddui->dsll->etc->ld sequence.
There's no early printk on these systems either, so doing low-level debugging is
difficult on them as well.
--Kumba
--
Gentoo/MIPS Team Lead
"Such is oft the course of deeds that move the wheels of the world: small hands
do them because they must, while the eyes of the great are elsewhere." --Elrond