[Top] [All Lists]

Re: Compiling a kernel for a Magnum R4k on an i586

Subject: Re: Compiling a kernel for a Magnum R4k on an i586
From: Ralf Baechle <ralf@Julia.DE>
Date: Sat, 21 Sep 1996 03:50:53 +0200 (MET DST)
In-reply-to: <> from "root" at Sep 21, 96 01:17:56 am
Resent-date: Sat, 21 Sep 1996 03:51:05 +0200 (MET DST)

> I have recently joined forces to attempt to help out as much as I can on the 
> Linux/MIPS project.  I haven't
> done much operating systems programming, but I am willing to learn.
> As a start, I have a Carrera R4000 which is labeled Cobra on the outside, but 
> Pandora identifies it as a
> Magnum R4000, which I trust more since the packaging has not been accurate on 
> anything else so far.

Interesting;  yet another Magnum clone.  Note that the Cobra identifies
itself as a Magnum, so this is probably right.  Milo itself doesn't know
how to recognize different machines.

> I downloaded the executeable images of the cross-compilation tools and was 
> able to successfully compile the
> milo/pandora package without any errors using the mipsel-linux-gcc (a.out) 
> compiler.  With the ELF compiler
> it gave me a linking error, but I think I fixed that in the Makefile.
> When trying to compile the kernel, however, using either the a.out or elf 
> cross-dev tools I get the following
>  output:

a.out is dead ...

> [root@meddle linux]# make vmlinux
> mipsel-linuxelf-gcc -D__KERNEL__ -I/root/mips/linux-2.0.0/include -Wall 
> -Wstrict-prototypes -O2
> -fomit-frame-pointer -G 0 -mno-abicalls -fno-pic -mcpu=r4400 -mips3    -c -o 
> init/main.o init/main.c
> /tmp/cca31420.s: Assembler messages:
> /tmp/cca31420.s:587: Warning: `dli' not in hash table.
> /tmp/cca31420.s:587: Error: ERROR: Unrecognized opcode `dli'
> /tmp/cca31420.s:599: Warning: `dli' not in hash table.
> /tmp/cca31420.s:599: Error: ERROR: Unrecognized opcode `dli'
> make: *** [init/main.o] Error 1

You have installed the ancient crosscompiler binaries from
Sorry, I didn't yet have the time to build new Linux packages.  I'm
trying to correct my sins.  Give me some minutes - I just have to download
all the sources to my workstation ...

[click... hack...]

> Can you help me out here?  To me it looks as if it is using a non-mips
> assembler or something, but the Makefile looks to me as if it should use
> the appropriate one.

The old assembler which you're using doesn't know about the dli instruction;
replacing the binutils with newer binutils will fix that.  Note that due
to the final switch from a.out to ELF that I've performed in a bit
radical manor you'll also have to upgrade GCC and the kernel sources to
the newest versions available.  These are currently on

  binutils 2.7-3
  gcc 2.7.2-3
  Linux 2.0.7

(As I write this GCC/binutils/Linux are available as sources/patches;
Binutils also as binaries for sparc-sun-sunos4.1.3 and sparc-sun-solaris2.5;
Linux binaries in the pipe ...)

For now you can get all this files also via anonymous ftp from my workstation  In the moment it has only the binutils binaries and
a Linux 2.0.7 archive.  I'll move the GCC binaries online when the compiler
is ready ...

>                      In any case, it is critical I get a kernel running
> so I can begin to asses where to help out in the overall project.  If you
> have any advice on how to compile this kernel, I would be much appreciative.  
> Also, I am new to the MIPS architecture.  My motherboard
> has an EISA bus and set of expansion slots on it.  Would it be easy to
> drop an EIDE EISA/ISA controller in there and have it work with drives?
> I assume there is no way to boot off them, but with the high price of
> scsi drives and the fact that I want this machine to have alot of storage,
> it would be handy to put the root partition on my scsi drive, then add a
> few eide's.

I've successfully used and tortured the IDE driver for some days on my
Acer PICA (a machine that's also very similar to the Magnum), so this
should be working for you also.


A weird imagination is most useful to gain full advantage
of all the features - manpage of amd(8).

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