> I ran into some problems when booting vmlinux (1.3.62) on my M700-10.
> On an SGI I have built and installed gcc 2.7.2 and binutils 2.6 (with patches)
> as mipsel-linuxaout, for kernel cross-compilation. I put milo and the
> vmlinux on a floppy. I start milo from ARC with 'a:milo', and up to and
> including the 'press enter to start Linux' everything looks good.
> What happens during the linux boot seems to be that all I/O probing fails..
> I have two different ethernet adapters. One is a non-jumpered NE2000, and
> the other is a 3c503/16 jumpered to PIO. This is the one I would like to use,
> as the NE2000 is twisted pair and my TP converter doesn't work. I have tried
> to compile the kernel with driver for one, for the other, and for both, with
> and without boards installed. The autoprobing fails in all cases.
> At this stage I also got an 'illegal kernel paging request' (or something
> like that, after the change below it disappeared and I don't have a syslog :-)
- The autoprobing fails because I don't enable the (E)ISA interrupts on
Magnum4000/Olivetti M700-10 just because this stuff is untested. To
enable the interrupts look into init_IRQ() in arch/mips/kernel/irq.c
near the top the function. I think there is still a bug specific
to Magnum4000/Olivetti M700-10; Acer seems to work rocksolid.
- illegal kernel paging request: this wasn't supposed to happen ...
> What I then tried was to hardcode the I/O address for the 3c503 at the
> start of el2_probe(), apparently it then found it. (Can parameters be passed
> through milo? I tried a few things, based on what I saw in the sources, but
> it didn't make any difference that I could see.) The kernel paging error is
> (I also threw in a bunch of printk's here and there, trying to find out where
> the problem was.)
> What now fails is the autoirq_setup(), it is called four times and then
> it gives up.
> Then root-nfs gives up and asks me to put in a root floppy and press ENTER.
> I've prepared one, but the keyboard doesn't work!
The keyboard problem is known and fixed in my developement source tree.
Look into drivers/char/keyboard.c and increase the value of
#define TIMEOUT_CONST 500000
to 1000000 or so. This is just a timing problem with the keyboard driver;
the MIPS box is too fast ...
> Here is the booting sequence, typed in by hand (with possible mistakes because
> my monitor is *real* bad in 1280x1024):
> Console: colour MIPS-G364 160x64, 1 virtual console (max 63)
> Calibrating delay loop.. ok - 49.87 BogoMIPS
> VDMA: R4030 DMA pagetables initalized.
> Memory: 31472k/32768k available (620k kernel code, 668k data)
> Swansea [snip] NET3.033 for Linux 1.3.58
> NET3: [snip]..
> Swansea [snip] TCP/IP..
> IP Protocols: ICMP, UDP, TCP
> Checking for 'wait' instruction... unavailable.
> Linux version 1.3.62 (tor@lrdpf) (gcc version 2.7.2) [snip]
> initialize_kbd: reset kbd failed, not POR.
> Floppy drive(s): fd0 is 1.44M
> floppy0: no floppy controllers found
> [here I used to get the kernel paging request problem]
> [now it finds the 3c503 because of my hardcoded I/O address:]
> 3c503.c:v1.10 9/23/93 [snip]
> eth0: 3c503 at i/o base 0x330, node 02 60 8c 7b 70 ac, using internal xcvr.
> eth0: 3c503-PIO, 16kB RAM, using programmed I/O (REJUMPER for SHARED MEMORY)
> [The above is correct, including the ethernet address. So it did read it..]
> [now the autoirq_setup fails]
> NFS: Unable to open at least one network device [I enabled some debug output]
> Root-NFS: Unable to contact NFS server for root fs, using /dev/fd0 instead
> NFS: Insert root floppy and press ENTER
> And here I'm stuck, apparently because the initialize_kbd failed above.
> In addition there is this "floppy0: no floppy controllers found".
*Hmmpf* This one seems to be another Magnum/Olivetti specific problem.
> My keyboard is a perfectly ok PS/2 compatible one, I'm using a similar one
> on my Linux PC, and it works fine with milo.
> Suggestions are welcome.. is my gcc sick (it looks good but..), or have I
> managed to overlook something silly?
No, so far it really looks ok,