Bug 14960

Summary: Compaq EISA array controller not working
Product: Base System Reporter: p.kessen <p.kessen>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description p.kessen 1999-11-17 21:10:03 UTC
When I've compiled a kernel with the Compaq Smart array adapter support
at boot time the output is:

ida: port address (0xffffffff) out of range
ida0 not found

How-To-Repeat: I've compiled the kernel with the options suggested in the LINT file 
for using the controller. As far as I know this problem only exhists
on machines with the EISA version of the Smart controller.
I have the battery-backuped caching version of the EISA SMART controller.
Comment 1 p.kessen 1999-11-19 02:21:15 UTC
The status now is that the controller is detected:

in ida.c I changed
________________this:_____________________

  if (dev->id_iobase) {
    /* check out the configured iobase if given one */
    slot = dev->id_iobase / 0x1000;
    if (slot == 0 || slot > MAX_EISA_SLOT) {

______________into this:____________________________________________

  if (dev->id_iobase) {
    /* check out the configured iobase if given one */
    slot = 6;
/* dev->id_iobase / 0x1000; */
    if (slot == 0 || slot > MAX_EISA_SLOT) {


_____________meaning:______________________________________________
My eisa smart array adapter is in eisa slot 6, look no further.
as far as I see the code then has no problem determining the portaddress
and irq.

_________this is the boot output:___________________________________
/kernel: eisa0: <CPQ811 (System Board)>
/kernel: Probing for devices on the EISA bus
/kernel: ep0: <3Com 3C579-TP EISA Network Adapter> at 0x1000-0x100f,
0x1c80-0x1c89 irq 5
/kernel: ep0: on eisa0 slot 1
/kernel: ep0: aui/utp[*UTP*] address 00:20:af:1d:1b:e3
/kernel: eisa0:6 <CPQ4020=0xe114020> unknown device
/kernel: Probing for devices on PCI bus 0:
/kernel: ncr0: <ncr 53c825 fast10 wide scsi> rev 0x02 int a irq 10 on
pci0.10.0
/kernel: vga0: <S3 ViRGE DX/GX graphics accelerator> rev 0x01 int a irq 14
on pci0.12.0 
/kernel: chip0: <Intel 82375EB PCI-EISA bridge> rev 0x04 on pci0.15.0
/kernel: Probing for devices on the ISA bus:
/kernel: sc0 on isa
/kernel: sc0: VGA color <16 virtual consoles, flags=0x0>
/kernel: atkbdc0 at 0x60-0x6f on motherboard
/kernel: atkbd0 irq 1 on isa
/kernel: psm0 irq 12 on isa
/kernel: psm0: model Generic PS/2 mouse, device ID 0
/kernel: sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
/kernel: sio0: type 16550A
/kernel: sio1 at 0x2f8-0x2ff irq 3 flags 0x10 on isa
/kernel: sio1: type 16550A
/kernel: ppc0 at 0x3bc irq 7 on isa
/kernel: ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
/kernel: lpt0: <generic printer> on ppbus 0
/kernel: lpt0: Interrupt-driven port
/kernel: ida0: drvs=1 firm_rev=2.26
/kernel: ida0 at 0x6000-0x6fff irq 15 on eisa slot 6
/kernel: ida0: unit 0 (id0): <Compaq Logical Drive>
/kernel: id0: 10028MB (20538720 total sec), 2517 cyl, 255 head, 32 sec, 
bytes/sec 512
/kernel: ida: wdc vector stealing off (mode = never, boot major = 4)
/kernel: ida0: irq with no handler


____ ida0: irq with no handler__________________
this one is a mystery to me, in the visual kernel config under the
miscelanious section there are 2 ida0 entries so the 2nd one must be the
one this warning is about.

______more info_______________________________
I essentially defined the following as well

options         IDA_CUCKOO_MODE=0

this I had to do because if I didn't my machine would do a trap12
right after detecting the array adapter.


By essentially I mean that when I added it to my kernel config file (CPQ)
the make depend action came with the following error:

controller      ida0    at isa? bio irq ? vector idaintr
disk            id0     at ida0 drive 0 
disk            id1     at ida0 drive 1
disk            id2     at ida0 drive 2 
disk            id3     at ida0 drive 3
options         IDA_CUCKOO_MODE=0
controller      fdc0    at isa? port "IO_FD1" bio irq 6 drq 2
disk            fd0     at fdc0 drive 0
disk            fd1     at fdc0 drive 1
device          sio0    at isa? port "IO_COM1" tty flags 0x10 irq 4
device          sio1    at isa? port "IO_COM2" tty flags 0x10 irq 3
options         CONSPEED=9600           #default speed for serial console
(default 9600)
controller      eisa0
device          ep0     at eisa?
device          ep0     at eisa?
controller      pci0
controller      ncr0
controller      ppbus0 
device          lpt0    at ppbus?
device          ppc0    at isa? port? tty irq 7

File CPQ saved.
root@enterprise# /usr/sbin/config -r CPQ
Removing old directory ../../compile/CPQ:  Done.
CPQ:96: unknown option "IDA_CUCKOO_MODE"
Don't forget to do a ``make depend''
Kernel build directory is ../../compile/CPQ

___________how I solved this problem_______________
I changed another bit of code in ida.c

________________this:____________________________
/* IDA wdc vector stealing (cuckoo) control */
#define IDA_CUCKOO_NEVER 0              /* never steal wdc vectors */
#define IDA_CUCKOO_ROOTWD 1             /* steal iff rootdev is wd device */ 
#define IDA_CUCKOO_ROOTNOTIDA 2         /* steal if rootdev not ida device
*/
#define IDA_CUCKOO_ALWAYS 3             /* always steal wdc vectors */

#ifndef IDA_CUCKOO_MODE
#define IDA_CUCKOO_MODE IDA_CUCKOO_ALWAYS
#endif


________________into this:_____________________ 
/* IDA wdc vector stealing (cuckoo) control */
#define IDA_CUCKOO_NEVER 0              /* never steal wdc vectors */
#define IDA_CUCKOO_ROOTWD 1             /* steal iff rootdev is wd device */
#define IDA_CUCKOO_ROOTNOTIDA 2         /* steal if rootdev not ida device */
#define IDA_CUCKOO_ALWAYS 3             /* always steal wdc vectors */

#ifndef IDA_CUCKOO_MODE
#define IDA_CUCKOO_MODE IDA_CUCKOO_NEVER
/* IDA_CUCKOO_ALWAYS */
#endif

________________now there's more___________________________________
no ida or id devices are in /dev

I can't make them with MAKEDEV

How do I make them. Now my controller is found I'd like to use the storage
space;)
Comment 2 Matthew N. Dodd freebsd_committer freebsd_triage 2000-04-16 15:00:31 UTC
State Changed
From-To: open->closed

IDA driver in CURRENT will work with EISA controllers now.