On Thu, May 28, 2009 at 1:02 AM, David Miller <davem@xxxxxxxxxxxxx> wrote: > From: Igor Kovalenko <igor.v.kovalenko@xxxxxxxxx> > Date: Thu, 28 May 2009 00:47:14 +0400 > >> The problem is with code in first-isofs/crt0.S where it tries to >> clear BSS, it is using %i3 register value to compute address. >> It occurs that openbios image does not really care about >> contents of %i3 before calling loaded silo code. So %i3 can >> have odd value and subsequent store is faulting with >> unaligned access. >> >> Any hints on what does silo expect in %i3 are appreciated, >> so we could amend openbios code to provide good initial >> state to silo. > > It looks like a bug, %i3 isn't initialized to anything. > > It works, as you found, because openfirmware always clears > this register upon jumping to client code. And therefore > openbios should do so as well. > Thanks! By the way, currently we cannot use unoptimized openbios builds with linux kernel because there is not enough space for unoptimized code to store arguments. Kernel stores arguments array in 128 bytes below stack frame whereas at least 192 bytes are needed. Do you think it makes sense to increase that 128 to 192 ? -- Kind regards, Igor V. Kovalenko -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html