LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Interrupt problem on MVME2100
@ 2004-04-05 13:23 okorpil
  0 siblings, 0 replies; only message in thread
From: okorpil @ 2004-04-05 13:23 UTC (permalink / raw)
  To: linuxppc-embedded


Hello!

I've spent the weekend porting Andrew Johnon's MVME2100 patch for the
HHL2.0 Linux kernel 2.4.2 to kernel.org 2.4.25.

I consider it mostly a success, since the new version - you find it here:

http://www.fh-landshut.de/~okorpil/mvme2100-linux-2.4.25.patch.bz2
http://www.fh-landshut.de/~okorpil/mvme2100-linux-2.4.25.patch.gz

- will correctly boot a zImage off ethernet, mount a NFS root (which is
verified because it starts binaries off it later), gives it output in the
debug serial console...

So, now I have ethernet working, and serial console mostly working...

Mostly because it shows the kernel boot process correctly - and fast! -
and then falls into a slow mode when putting out the messages from init.

It has been mentioned here on the mailing list, that this derives from
incorrectly setup interrupts - characters are reflected on the serial
console as if several were spit out on every timeout.

Unfortunately Andrew Johnson mentioned on the discussion

http://lists.linuxppc.org/linuxppc-embedded/200107/msg00063.html

that he simply ignored that (UART serial) interrupt (at 29) because it had
"too high" a number.

So combining that, I think the driver doesn't get to see the interrupt,
and therefore is so slow.

The problem may derive from two facts. First, there is a (too) limited set
of interrupts defined, and second, the MVME2100 has unused interrupts -
you could say holes in the interrupt map.

First 16 interrupts are left free because there is no cascaded 8259, if I
understand correctly, and then there are several unused interrupts (as
stated in the manual).

Andrew Johnson originally suggested to use something cannonicalize_irq ()
to drop the inconsistencies.

If you want to make a picture yourself, look at the definition of
__initdata  in arch/ppc/platforms/mvme2100.c, where interrupt map is
initialized.

My problem is this: How go I best about bringing my interrupts into range?
Do I need to remap something? Do I redefine a constant defining the
maximum?

The config file is in the patch as arch/ppc/configs/mvme2100_defconfig

Thanks in advance, Oliver Korpilla

My boot output:

Network Boot File load in progress... To abort hit <BREAK>

Bytes Received =&801471, Bytes Loaded =&801471
Bytes/Second   =&801471, Elapsed Time =1 Second(s)

Residual-Data Located at: $01F5511C
loaded at:     00005400 000CA5BC
relocated to:  00800000 008C51BC
zimage at:     00805910 008C1F2A
avail ram:     00400000 00800000

Linux/PPC load: console=ttyS0,9600 root=/dev/nfs
nfsroot=192.168.1.1:/home/korpo/praktikum/mvme2100/rootfs
ip=192.168.1.3:192.168.1.1::255.255.255.0:mvme2100::off
Uncompressing Linux...done.
Now booting the kernel
Memory BAT mapping: BAT2=32Mb, BAT3=0Mb, residual: 0Mb
Linux version 2.4.25 (korpo@ppcproject1) (gcc version 2.95.3 20010315
(release)) #48 Mon Apr 5 13:40:52 CEST 2004
Platform: Motorola MVME2100
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,9600 root=/dev/nfs
nfsroot=192.168.1.1:/home/korpo/praktikum/mvme2100/rootfs
ip=192.168.1.3:192.168.1.1::255.255.255.0:mvme2100::off
OpenPIC Version 1.2 (1 CPUs and 24 IRQ sources) at f7fd0000
OpenPIC timer frequency is 8.333344 MHz
time_init: decrementer frequency = 16.666765 MHz
Calibrating delay loop... 133.12 BogoMIPS
Memory: 30388k available (1260k kernel code, 472k data, 252k init, 0k
highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications
AB.
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
SERIAL_PCI enabled
ttyS00 at 0xffe10000 (irq = 29) is a 16550A
Real Time Clock Driver v1.10f
Generic RTC Driver v1.07
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Linux Tulip driver version 0.9.15-pre12 (Aug 9, 2002)
tulip0:  EEPROM default media type Autosense.
tulip0:  Index #0 - Media MII (#11) described by a 21142 MII PHY (3)
block.
tulip0:  MII transceiver #8 config 1000 status 7809 advertising 01e1.
eth0: Digital DS21143 Tulip rev 65 at 0xbfffec00, 00:01:AF:02:93:8C, IRQ
17.
pcnet32.c:v1.27a 10.02.2002 tsbogend@alpha.franken.de
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 2048)
IP-Config: Complete:
      device=eth0, addr=192.168.1.3, mask=255.255.255.0,
gw=255.255.255.255,
     host=mvme2100, domain=, nis-domain=(none),
     bootserver=192.168.1.1, rootserver=192.168.1.1, rootpath=
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Looking up port of RPC 100003/2 on 192.168.1.1
Looking up port of RPC 100005/1 on 192.168.1.1
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 252k init
eth0: Setting full-duplex based on MII#8 link partner capability of 45e1.
init started:  BusyBox v1.00-pre8 (2004.03.29-15:26+0000) multi-call
binary


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-04-05 13:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-05 13:23 Interrupt problem on MVME2100 okorpil

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox