[parisc-linux] EISA support
Richard Hirst
rhirst@linuxcare.com
Wed, 10 Oct 2001 13:45:26 +0100
On Wed, Oct 10, 2001 at 07:24:41AM +0100, Matthew Wilcox wrote:
>
> Anyone want to review a patch that makes EISA work? I've only
Looks reasonable to me, but doesn't make any difference so far as
EISA 53c710 cards in my 715/75 are concerned. There seem to be two
basic problems...
Interrupts - I can see from the 53c710 registers that it is generating
an interrupt, but it doesn't seem to be enabled through to the processor.
I didn't know which irq to request, so I guessed it might be one of the
ASP ones (which I think cover 64 to 95), and did a request_irq for all
32 of them. Didn't help.
Bus mastering - the 53c710 is attempting to fetch and execute scripts
from memory, but from what I can tell, it is picking up invalid data.
Basically the chips script pointer has moved on one instruction and it
is trying to generate an Illegal Instruction Detected interrupt, and
the dsps register, which I think is used in script fetching, contains
0xffffffff.
atm I am using eisa_in32() to check the card signature, but then
using readb and friends on (EISA_BASE + port) to access the card.
The driver only supports memory mapped chip access on parisc, and
as it is using memory mapped access for the on-board 53c700, it
makes sense to do that for EISA cards as well. I identify the
card from a 32 bit signature at base+0xc80, which is apparently
correct on Compaq cards, at least - dunno if that is standard.
I'm pretty confident that I am accessing the chips registers ok.
I had to hack the scsi driver a bit to change the parity generation/
checking options, otherwise the chip just sat there saying its external
abort signal was true. The chip supports the idea of passing parity
through from scsi bus to host bus, but I've no idea what features
might be implemented on my HP cards. I tried a Compaq card as well,
which behaved the same except (a) I didn't need to do the parity hack,
and (b) it wasn't reported in the devices list on kernel boot. With
an HP card in, it is listed as 'unknown device at 0xfc001000'.
Although the new code reports the EISA adaptor as Mongoose, that
address has already been reported as "Scorpio Sr. EISA BA".
Richard
(c) Copyright Hewlett-Packard Company, 1991, 1992, 1993
Portions of this code are (c) Copyright Samsung Electronics Co., Ltd, 91, 92
ROM: 9000/715/75
PDC ROM rev. 1.1
IODC ROM rev. 1.0
96 MB of memory have been configured.
Warning: one or more EISA cards could not be configured.
Autoselect and search will ignore unconfigured cards.
Searching for Potential Boot Devices.
To terminate search, press and hold the ESCAPE key.
Device Selection Device Path Device Type
----------------------------------------------------------------------------
P0 scsi.6.0 MICROP 2112
P1 scsi.5.0 SEAGATE ST32430N
P2 scsi.3.0 HP HP35470A
P3 lan.0002b3-218a14.0.0 moose
b) Boot from specified device
s) Search for bootable devices
a) Enter Boot Administration mode
x) Exit and continue boot sequence
?) Help
Select from menu: b p3
Trying lan.0002b3-218a14.0.0
Boot path initialized.
Attempting to load IPL.
Hard booted.
palo ipl 0.94 richard@beast Wed Oct 10 12:18:57 BST 2001
0/vmlinux32 3120379 bytes @ 0x7800
Command line: 'HOME=/ TERM=linux root=/dev/sda1 console=ttyS0'
Kernel: partition 0 file /vmlinux
Warning: kernel name doesn't end with 32 or 64... Guessing 32
ELF32 executable
Entry 00100000 first 00100000 n 6
Segment 0 load 00100000 size 1611616 mediaptr 0x1000
Segment 1 load 0028a000 size 287736 mediaptr 0x18b000
Segment 2 load 002d4000 size 377904 mediaptr 0x1d2000
Segment 3 load 00334000 size 8192 mediaptr 0x22f000
Segment 4 load 00338000 size 32768 mediaptr 0x231000
Segment 5 load 00376770 size 82896 mediaptr 0x239770
branching to kernel entry point 0x00100000
Linux version 2.4.9-pa45 (richard@beast) (gcc version 3.0.2 20010829 (prerelease
)) #16 Wed Oct 10 14:13:11 BST 2001
FP[0] enabled: Rev 1 Model 9
The 32-bit Kernel has started...
Determining PDC firmware type: Snake.
model 00003160 00000481 00000000 00000000 782de278 ffffffff 00000004 0000000a
0000000a
vers 00000013
CPUID vers 0 rev 0
model 9000/715
Total Memory: 96 Mb
pagetable_init
On node 0 totalpages: 24576
zone(0): 24576 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: HOME=/ TERM=linux root=/dev/sda1 console=ttyS0
Error reading tod clock
Console: colour dummy device 160x64
Calibrating delay loop... 74.75 BogoMIPS
Memory: 93980k available
Dentry-cache hash table entries: 16384 (order: 5, 131072 bytes)
Inode-cache hash table entries: 8192 (order: 4, 65536 bytes)
Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
Searching for devices...
Found devices:
1. Stinger Optional Graphics (10) at 0xf4000000, versions 0x6, 0x0, 0x77
2. Scorpio Sr. Core BA (11) at 0xf082f000, versions 0x19, 0x0, 0x70
3. Scorpio Sr. Core SCSI (10) at 0xf0825000, versions 0x19, 0x0, 0x71
4. Scorpio Sr. Core LAN (802.3) (10) at 0xf0826000, versions 0x19, 0x0, 0x72
5. Scorpio Sr. Core HIL (10) at 0xf0821000, versions 0x19, 0x0, 0x73
6. Scorpio Sr. Core RS-232 (10) at 0xf0823000, versions 0x19, 0x0, 0x75
7. Scorpio Sr. Core RS-232 (10) at 0xf0822000, versions 0x19, 0x0, 0x75
8. Scorpio Sr. Core Centronics (10) at 0xf0824000, versions 0x19, 0x0, 0x74
9. Scorpio Sr. Audio (10) at 0xf1000000, versions 0x19, 0x0, 0x7b
10. Scorpio Sr. EISA BA (11) at 0xfc000000, versions 0x19, 0x0, 0x76
11. unknown device (10) at 0xfc001000, versions 0x0, 0x0, 0xfff
12. Scorpio Sr.(715/75) (0) at 0xfffbe000, versions 0x316, 0x0, 0x4
13. Scorpio Sr. (1) at 0xfffbf000, versions 0x27, 0x0, 0x9
That's a total of 13 devices.
CPU(s): 1 x PA7100 (PCX-T) at 75.000000 MHz
Mongoose EISA Adapter found at 0xfc000000
Asp version 1 at 0xf0800000 found.
LED (ASP-style) display at f0800020 registered
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Starting kswapd v1.8
parport_init_chip: enhanced parport-modes not supported.
parport0: PC-style at 0xf0824800, irq 88 [PCSPP]
STI byte mode ROM at f4000000, hpa=f4000000
STI byte mode ROM, id 27f12392-40a00499, conforms to spec rev. 8.02
STI device: HPA1991AC19
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI en
abled
ttyS00 at iomem 0xf0823800 (irq = 90) is a 16550A
ttyS01 at iomem 0xf0822800 (irq = 89) is a 16550A
Found HIL at 0xf0821000, IRQ 94
HIL: no keyboard present.
Warning : device (10, 0x19, 0x0, 0x73) NOT claimed by HIL
lp0: using parport0 (interrupt-driven).
Generic RTC Driver v1.02 05/27/1999 Sam Creasey (sammy@oh.verio.com)
block: 128 slots per queue, batch=16
RAMDISK driver initialized: 16 RAM disks of 6144K size 1024 blocksize
loop: loaded (max 8 devices)
Found i82596 at 0xf0826000, IRQ 87
82596.c: MAC of HP700 LAN read from EEPROM
eth0: Couldn't get consistent shared memory
eth0: 82596 at 0xf0826000, 08 00 09 87 E4 8F IRQ 87.
82596.c $Revision: 1.23 $
SCSI subsystem driver Revision: 1.00