linux-mips
[Top] [All Lists]

Kernel 2.6 for R4600 Indy

To: linux-mips@linux-mips.org
Subject: Kernel 2.6 for R4600 Indy
From: Stuart Longland <stuartl@longlandclan.hopto.org>
Date: Thu, 23 Sep 2004 23:54:19 +1000
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla Thunderbird 0.7 (X11/20040615)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi All,
        I've been trying to get Linux 2.6 going on my Indy for some time now.
However, I've had little success.  The machine works just fine under
Linux 2.4.26.

        The kernel config is attached.  Basically I've tried both booting a
MIPS32 kernel as well as a MIPS64 kernel.  In all cases, I've used the
same kernel parameters.  (root=/dev/hda3, and sometimes I put
init=/bin/sh or single there too.)

        Using a MIPS32 config, the kernel boots, mounts the / filesystem, but
then dies claiming it can't find /sbin/init.

        Using a MIPS64 config (built using gas-abi=o32 as suggested by Kumba),
it doesn't even get that far:

- From arcboot/SGI PROM:
(Arcboot version 0.3.8.2)
- -------------------------------8<--------------------------------------
Loading program segment 2 at 0x88002000, offset=0x0, size= 0x0 328085
Zeroing memory at 0x0032a085, size = 0x1bba3

Exception: <vector=Normal>
Status register: 0x30004803<CU1,CU0,IM7,IM4,IPL=???,MODE=KERNEL,EXL,IE>
Cause register: 0x8010<CE=0,IP8,EXC=RADE>
Exception PC: 0x830f018, Exception RA: 0x88804514
Read address error exception, bad address: 0x830f018
Local I/O interrupt register 1: 0x80 <VR/GIO2>
  Saved user regs in hex (&gpda 0xa8740e48, &_regs 0xa8741048):
  arg: a8740000 88002000 88001fe0 18
  tmp: a8740000 3 8880e0b4 830f018 8880e0b0 887fe8ec 887fe5e4 4
  sve: a8740000 3 400000 800000 16 3f80 0 10000000
  t8 a8740000 t9 ffffffff at ffffffff v0 ffffffff v1 ffffffff k1 830f018
  gp a8740000 f0 ffffffff sp ffffffff ra ffffffff

PANIC: Unexpected exception

[Press reset or ENTER to restart.]
- ------------------------------->8--------------------------------------

        Now, according to the Linux-MIPS website:
- -------------------------------8<--------------------------------------
*Self-compiled kernels crash when booting.*

When I build my own kernel, it crashes. On an Indy the crash message
looks like the following (the same problem hits other machines as well
but may look completely different):

 Exception: <vector=UTLB Miss>
 Status register: 0x300004803<CU1,CU0,IM4,IPL=???,MODE=KERNEL,EXL,IE>
 Cause register: 0x8008<CE=0,IP8,EXC=RMISS>
 Exception PC: 0x881385cc, Exception RA: 0x88002614
 exception, bad address: 0x47c4
 Local I/O interrupt register 1: 0x80 <VR/GIO2>
 Saved user regs in hex (&gpda 0xa8740e48, &_regs 0xa8741048):
   arg: 7 8bfff938 8bfffc4d 880025dc
   tmp: 8818c14c 8818c14c 10 881510c4 14 8bfad9e0 0 48
   sve: 8bfdf3e8 8bfffc40 8bfb2720 8bfff938 a8747420 9fc56394 0 9fc56394
   t8 48 t9 8bfffee66 at 1 v0 0 v1 8bfff890 k1 bad11bad
   gp 881dfd90 fp 9fc4be88 sp 8bfff8b8 ra 88002614

 PANIC: Unexpected exception

This problem is caused by a still unfixed bug in Binutils newer than
version 2.7. As a workaround, change the following line in
arch/mips/Makefile from:

       LINKFLAGS       = -static -N
to:
       LINKFLAGS       = -static
- ------------------------------->8--------------------------------------

        This looks scaringly similar to what I've already struck.  Certainly
the Status Register is almost identical.  I've also had it come up UTLB
Miss as well.

        It seems though, the fix is more illusive.  Looking at
arch/mips/Makefile, there's no LINKFLAGS line.  The closest thing I see
is LDFLAGS_vmlinux:

LDFLAGS_vmlinux                 += -G 0 -static -n

The binutils/gcc versions I'm using are cross compillers generated using
crossdev:

MIPS32 binutils:
GNU assembler 2.14.90.0.8 20040114
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
This assembler was configured for a target of `mips-unknown-linux-gnu'.

MIPS64 binutils:
GNU assembler 2.14.90.0.8 20040114
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
This assembler was configured for a target of `mips64-unknown-linux-gnu'.

MIPS32 gcc:
mips-unknown-linux-gnu-gcc (GCC) 3.3.3 20040217 (Gentoo Linux 3.3.3,
propolice-3.3-7)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

MIPS64 gcc:
mips64-unknown-linux-gnu-gcc (GCC) 3.3.3 20040217 (Gentoo Linux 3.3.3,
propolice-3.3-7)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

        Has this bug actually been fixed?  It seems the documentation here is a
little lacking as to what to change.

The machine's specs:
CPU: R4600 SC 133MHz [1]
RAM: 256MB 72pin EDO
HDD: 9.1GB IBM
OS:  Gentoo Linux/MIPS 1.4

        Apologies if this has been answered before... but I'm a bit of a newbie
when it comes to Linux/MIPS.[2]  Is there anything I missed when setting
this all up?

Reguards,
- --
+-------------------------------------------------------------+
| Stuart Longland -oOo- http://stuartl.longlandclan.hopto.org |
| Atomic Linux Project     -oOo-    http://atomicl.berlios.de |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| I haven't lost my mind - it's backed up on a tape somewhere |
+-------------------------------------------------------------+
Footnotes:
1. A brief look at the MIPS Technologies website had me thinking that
only R5k and above are 64-bit, the R4k were 32-bit.  But it seems that
these too are 64-bit capable.
2. I'll admit though... I've learned more about the innards of a
computer playing with the Indy and Qube I own then I have from the last
two years of university study.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBUtWLuarJ1mMmSrkRAvIZAJ0QuwKzWGg3rRk9nzEU17bLfc38MgCfarfQ
+XK9eCVUaC88I5KtBh8fXjE=
=SIHi
-----END PGP SIGNATURE-----

Attachment: config.gz
Description: GNU Zip compressed data

<Prev in Thread] Current Thread [Next in Thread>