Now I understand the problem much better. I plan to redraw the info structure in full big endian and to perform the correct translation (both 16 bit word byte swap and 32 bit word full swap) one for all in read_pio. I'll have a patched version in the next few days. Cheers,
-db -----Original Message----- From: Antoine Delvaux [mailto:[EMAIL PROTECTED] Sent: Saturday, June 15, 2002 4:23 PM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [email protected] Subject: RE: eata.c module and PCI setup problem (RAID SCSI card) Hello all, Thank you for your feedback and sorry for being late. I was the whole week in a Juniper training in Holland and had not been able to test this new driver. I just done it today. Here is the syslog output I've got when doing 'insmod eata.o' or 'insmod eata.o io_port=0x1410' : Jun 15 14:43:50 brocoli kernel: PCI: Enabling device 00:0f.0 (0014 -> 0015) Jun 15 14:43:50 brocoli kernel: EATA: detect, seq. 0, bus 0, devfn 0x78, addr 0x1400. Jun 15 14:43:50 brocoli kernel: EATA0: warning, weird ISA board not using DMA. Jun 15 14:43:50 brocoli kernel: EATA0: warning, DMA protocol support not asserted. Jun 15 14:43:50 brocoli kernel: EATA0: warning, LEVEL triggering is suggested for IRQ 3. Jun 15 14:43:50 brocoli kernel: EATA0: unable to allocate IRQ 3, detaching. The module does not load and the card hangs (the two extreme leds lid up). For reference the lspci -vv output after that is : 00:0f.0 SCSI storage controller: Distributed Processing Technology SmartCache/Raid I-IV Controller (rev 02) Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 32 (1000ns min, 2000ns max), cache line size 08 Interrupt: pin A routed to IRQ 25 BIST result: 00 Region 0: I/O ports at 1400 [size=32] Expansion ROM at 80908000 [disabled] [size=32K] As the IRQ number is not the same, I tried a dirty quick hack in the code to set it to 25. Here is the output of 'insmod eata.o io_port=0x1400' afterward : Jun 15 16:12:14 brocoli kernel: EATA: enable_pci_ports, bus 0, devfn 0x78. Jun 15 16:12:14 brocoli kernel: PCI: Enabling device 00:0f.0 (0014 -> 0015) Jun 15 16:12:14 brocoli kernel: EATA0: warning, weird ISA board not using DMA. Jun 15 16:12:14 brocoli kernel: EATA0: warning, DMA protocol support not asserted. Jun 15 16:12:14 brocoli kernel: EATA0: warning, LEVEL triggering is suggested for IRQ 25. Jun 15 16:12:14 brocoli kernel: EATA/DMA 2.0x: Copyright (C) 1994-2002 Dario Ballabio. Jun 15 16:12:14 brocoli kernel: EATA config options -> tc:n, lc:n, mq:16, rs:y, et:n, ip:n, ep:n, pp:y. Jun 15 16:12:14 brocoli kernel: EATA0: 2.0C, ISA 0x1410, IRQ 25, BMST, SG 64, MB 64. Jun 15 16:12:14 brocoli kernel: EATA0: SCSI channel 0 enabled, host target ID 7. Jun 15 16:12:14 brocoli kernel: EATA0: Vers. 0x0, ocs 1, tar 0, trnxfr 0, more 1, SYNC 0x19, sec. 0, infol 34, cpl 44 spl 24. Jun 15 16:12:14 brocoli kernel: EATA0: isaena 0, forcaddr 0, max_id 1, max_chan 7, large_sg 0, res1 0. Jun 15 16:12:14 brocoli kernel: EATA0: max_lun 7, m1 1, idquest 0, pci 0, eisa 0, raidnum 0. Jun 15 16:12:14 brocoli kernel: scsi3 : EATA/DMA 2.0x rev. 6.60.00 Jun 15 16:12:30 brocoli kernel: EATA0: abort, mbox 1, target 0.0:0, pid 5905. Jun 15 16:12:30 brocoli kernel: EATA0: abort, mbox 1 is in use. Jun 15 16:12:30 brocoli kernel: EATA0: reset, enter, target 0.0:0, pid 5905. Jun 15 16:12:30 brocoli kernel: EATA0: reset, mbox 1 in reset, pid 5905. Jun 15 16:12:30 brocoli kernel: EATA0: reset, board reset done, enabling interrupts. Jun 15 16:12:30 brocoli kernel: EATA0: reset, interrupts disabled, loops 100474. Jun 15 16:12:30 brocoli kernel: EATA0, reset, mbox 1 locked, DID_RESET, pid 5905 done. Jun 15 16:12:30 brocoli kernel: EATA0: reset, exit, pid 5905 done. Jun 15 16:12:41 brocoli kernel: EATA0: ihdlr, spp->eoc == FALSE, irq 25, reg 0x51, count 2. Jun 15 16:12:50 brocoli kernel: EATA0: abort, mbox 2, target 0.0:0, pid 5905. Jun 15 16:12:50 brocoli kernel: EATA0: abort, mbox 2 is in use. Jun 15 16:12:50 brocoli kernel: EATA0, abort, mbox 2, eh_state timeout, pid 5905. Jun 15 16:12:50 brocoli kernel: scsi: device set offline - not ready or command retry failed after host reset: host 3 channel 0 id 0 lun 0 Jun 15 16:13:06 brocoli kernel: EATA0: abort, mbox 3, target 0.1:0, pid 5929. Jun 15 16:13:06 brocoli kernel: EATA0: abort, mbox 3 is in use. Jun 15 16:13:06 brocoli kernel: EATA0: reset, enter, target 0.1:0, pid 5929. Jun 15 16:13:06 brocoli kernel: EATA0: reset, locked mbox 1 forced free. Jun 15 16:13:06 brocoli kernel: EATA0: reset, mbox 3 in reset, pid 5929. Jun 15 16:13:06 brocoli kernel: EATA0: reset, board reset done, enabling interrupts. Jun 15 16:13:06 brocoli kernel: EATA0: reset, interrupts disabled, loops 100469. Jun 15 16:13:06 brocoli kernel: EATA0, reset, mbox 3 locked, DID_RESET, pid 5929 done. Jun 15 16:13:06 brocoli kernel: EATA0: reset, exit, pid 5929 done. Jun 15 16:13:18 brocoli kernel: EATA0: qcomm, target 0.1:0, pid 5929, adapter busy. Jun 15 16:13:26 brocoli kernel: EATA0: abort, target 0.1:0, pid 5929 inactive. Jun 15 16:13:26 brocoli kernel: scsi: device set offline - not ready or command retry failed after host reset: host 3 channel 0 id 1 lun 0 Jun 15 16:13:28 brocoli kernel: EATA0: qcomm, target 0.2:0, pid 5950, adapter busy. And then insmod and the card are hanging... with no other possibility than a reboot. I suppose the 4 bits in eata_info for the IRQ should be translated to something else ... but in what ? I also suppose there are other thing in this struct that have to be translated. I'll try to print the whole eata_info struct if I have time tomorrow or monday. If you have other suggestions or improvements, they are welcomed. Have a nice week-end ! Antoine. Le lundi 10 juin 2002 vers 7:50, [EMAIL PROTECTED] �crivait : > I put all the recent findings and suggestions in the enclosed source. > It is tested on i386, give it a try on PPC. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

