[Aboriginal] Sparc-32 doesn't work in 3.1.
rob at landley.net
Sat Nov 12 09:22:34 PST 2011
Still trying to ship an Aboriginal Linux release with the 3.1 kernel,
but the sparc target broke, as in QEMU's OpenBios goes:
Boot time fixup v1.6. 4/Mar/98 Jakub Jelinek (jj at ultra.linux.cz).
Patching kernel for srmmu[Fujitsu TurboSparc]/iommu
Fixup i f029ddfc doesn't refer to a valid instruction at
halt, power off
And doesn't even boot Linux. A sparc-objdump -a on vmlinux says that
f00de63c: 84 0b 60 ff and %o5, 0xff, %g2
f00de640: 91 32 20 10 srl %o0, 0x10, %o0
f00de644: 85 28 a0 08 sll %g2, 8, %g2
f00de648: 98 0a 20 ff and %o0, 0xff, %o4
f00de64c: 03 00 00 3f sethi %hi(0xfc00), %g1
f00de650: 82 10 63 00 or %g1, 0x300, %g1 ! ff00
f00de654: 90 0a 00 01 and %o0, %g1, %o0
Which means nothing to me.
I bisected it to this:
Author: Theodore Ts'o <tytso at mit.edu>
Date: Mon Aug 1 08:45:02 2011 -0400
ext4: introduce ext4_kvmalloc(), ext4_kzalloc(), and ext4_kvfree()
Introduce new helper functions which try kmalloc, and then fall back
to vmalloc if necessary, and use them for allocating and deallocating
Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
The commit before that builds fine, this one doesn't.
I think it's triggering bad behavior in arch/sparc/mm/btfixup.c (at
least that's where the "valid instruction" error message comes from),
but I have no idea what this file is doing, and it was last touched in
2008. (I'm building with gcc 4.2.1 and binutils 2.17, both of which
were last touched around 2006, so that's not new either...)
More information about the Aboriginal