aic7xxx regression occuring after 2.6.12 final
Subsystems (2)
Hiya,
For my Adaptec 29160 card; I see a regression after 2.6.12 final. To be exact, these releases work for me:
2.6.12
2.6.12.1
These releases do not work for me:
2.6.12-mm1
2.6.12-mm2
2.6.12-git7
2.6.13-rc1
On a working kernel; I see the following:
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 18
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 253
target0:0:0: Beginning Domain Validation
WIDTH IS 1
(scsi0:A:0): 6.600MB/s transfers (16bit)
(scsi0:A:0): 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
target0:0:0: Ending Domain Validation
On a failing kernel, I see:
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 18
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBstarget0:0:0: asynchronous
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 253
target0:0:0: Beginning Domain Validation target0:0:0: wide asynchronous
(scsi0:A:0): refuses tagged commands. Performing non-tagged I/O
target0:0:0: asynchronous
[The PC hangs at this point]
lspci output for the adapter:
0000:01:08.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02)
Subsystem: Adaptec 29160 Ultra160 SCSI Controller
Flags: bus master, 66Mhz, medium devsel, latency 32, IRQ 18 BIST result: 00
I/O ports at d800 [disabled] [size=256]
Memory at db000000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2
Please let me know if there are specific patches I need to apply or revert to debug this. I have more drives on this controller; to be exact I have 2 U320-capable drives and one U160-capable drive on wide channel A; and 3 removable media units (CD-R, DVD, CD-ROM) on the 50-pin SCSI-bus.
Thanks,
Tony.
(Please CC replies to me as I am not subscribed to LKML or linux-scsi)
Quoted 10 lines · Tony Vroon
For my Adaptec 29160 card; I see a regression after 2.6.12 final. To be exact, these releases work for me:
2.6.12
2.6.12.1These releases do not work for me:
2.6.12-mm1
2.6.12-mm2
2.6.12-git7
2.6.13-rc1
I can add 2.6.13-rc1-mm1 to that list.
Quoted 1 line
On a working kernel; I see the following:
I'd like to extend this so all devices on this adapter are visible, perhaps it helps in debugging this case. Note that I also lowered the tagged queuing depth to the default of 32. This had no effect.:
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 18
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
WIDTH IS 1
(scsi0:A:0): 6.600MB/s transfers (16bit)
(scsi0:A:0): 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
target0:0:0: Ending Domain Validation
(scsi0:A:1:0): refuses WIDE negotiation. Using 8bit transfers
Vendor: YAMAHA Model: CRW2100S Rev: 1.0N
Type: CD-ROM ANSI SCSI revision: 02
target0:0:1: Beginning Domain Validation
target0:0:1: Domain Validation skipping write tests
(scsi0:A:1): 20.000MB/s transfers (20.000MHz, offset 7)
target0:0:1: Ending Domain Validation
(scsi0:A:2:0): refuses WIDE negotiation. Using 8bit transfers
Vendor: PIONEER Model: DVD-ROM DVD-305 Rev: 1.03
Type: CD-ROM ANSI SCSI revision: 02
target0:0:2: Beginning Domain Validation
target0:0:2: Domain Validation skipping write tests
(scsi0:A:2): 20.000MB/s transfers (20.000MHz, offset 16)
target0:0:2: Ending Domain Validation
Vendor: PLEXTOR Model: CD-ROM PX-40TS Rev: 1.11
Type: CD-ROM ANSI SCSI revision: 02
target0:0:3: Beginning Domain Validation
target0:0:3: Domain Validation skipping write tests
(scsi0:A:3): 20.000MB/s transfers (20.000MHz, offset 15)
target0:0:3: Ending Domain Validation
Vendor: QUANTUM Model: ATLAS10K3_36_SCA Rev: 020W
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:5:0: Tagged Queuing enabled. Depth 32
target0:0:5: Beginning Domain Validation
WIDTH IS 1
(scsi0:A:5): 6.600MB/s transfers (16bit)
(scsi0:A:5): 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
target0:0:5: Ending Domain Validation
Vendor: SEAGATE Model: ST373405LC Rev: 0003
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:6:0: Tagged Queuing enabled. Depth 32
target0:0:6: Beginning Domain Validation
WIDTH IS 1(scsi0:A:6): 6.600MB/s transfers (16bit) (scsi0:A:6): 160.000MB/s transfers (80.000MHz DT, offset 63, 16bit)
target0:0:6: Ending Domain Validation
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
sdb: sdb1
Attached scsi disk sdb at scsi0, channel 0, id 5, lun 0 CSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
SCSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
sdc: sdc1
Attached scsi disk sdc at scsi0, channel 0, id 6, lun 0
sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 1, lun 0
sr1: scsi3-mmc drive: 16x/40x cd/rw xa/form2 cdda tray Attached scsi CD-ROM sr1 at scsi0, channel 0, id 2, lun 0
sr2: scsi-1 drive
Attached scsi CD-ROM sr2 at scsi0, channel 0, id 3, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0 Attached scsi generic sg1 at scsi0, channel 0, id 1, lun 0, type 5 Attached scsi generic sg2 at scsi0, channel 0, id 2, lun 0, type 5 Attached scsi generic sg3 at scsi0, channel 0, id 3, lun 0, type 5 Attached scsi generic sg4 at scsi0, channel 0, id 5, lun 0, type 0 Attached scsi generic sg5 at scsi0, channel 0, id 6, lun 0, type 0
Quoted 1 line
On a failing kernel, I see:
I still see this on 2.6.13-rc1-mm1:
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level,high) -> IRQ 18 scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBstarget0:0:0: asynchronous
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation target0:0:0: wide asynchronous
(scsi0:A:0): refuses tagged commands. Performing non-tagged I/O
target0:0:0: asynchronous
[The PC hangs at this point]
Quoted 11 lines
lspci output for the adapter:
0000:01:08.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02)
Subsystem: Adaptec 29160 Ultra160 SCSI Controller
Flags: bus master, 66Mhz, medium devsel, latency 32, IRQ 18 BIST result: 00
I/O ports at d800 [disabled] [size=256]
Memory atdb000000(64-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2Please let me know if there are specific patches I need to apply or revert to debug this.
This stands. I would like to debug this, but a few recommendations of what to do and where to start would be appreciated.
Quoted 4 lines
I have more drives on this controller; to be exact
I have 2 U320-capable drives and one U160-capable drive on wide channel A; and 3 removable media units (CD-R, DVD, CD-ROM) on the 50-pin SCSI-bus.
Thanks,
Tony.
(Please CC replies to me as I am not subscribed to LKML or linux-scsi)
Quoted 9 lines · Tony Vroon
target0:0:0: asynchronous
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation target0:0:0: wide asynchronous
(scsi0:A:0): refuses tagged commands. Performing non-tagged I/O
target0:0:0: asynchronous
[The PC hangs at this point]
Well, my best guess is that this is a double bug. I think the aic7xxx_core is processing the reject wrongly and the device is rejecting a QAS or IU negotiation attempt.
So, see if the attached patch helps.
Thanks,
James
drivers/scsi/scsi_transport_spi.c +8 -5
@@ -787,7 +787,8 @@ spi_dv_device_internal(struct scsi_devic }/* test width */ -if (i->f->set_width &&spi_max_width (starget) && sdev->wdtr) { +if (i->f->set_width &&spi_max_width (starget) && +scsi_device_wide (sdev)) { i->f->set_width (starget,1 ); if (spi_dv_device_compare_inquiry(sdev, buffer,
@@ -803,14 +804,14 @@ spi_dv_device_internal(struct scsi_devicreturn ;/* device can't handle synchronous */ -if (!sdev->ppr && !sdev->sdtr) +if (!scsi_device_sync (sdev) && !scsi_device_dt (sdev))return ;/* see if the device has an echo buffer. If it does we can * do the SPI pattern write tests */ len =0 ; -if (sdev->ppr) +if (scsi_device_dt (sdev)) len =spi_dv_device_get_echo_buffer (sdev, buffer); retry:
@@ -820,9 +821,11 @@ spi_dv_device_internal(struct scsi_devicDV_SET (period,spi_min_period (starget));/* try QAS requests; this should be harmless to set if the * target supports it */ -DV_SET (qas,1 ); +if (scsi_device_qas (sdev)) +DV_SET (qas,1 );/* Also try IU transfers */ -DV_SET (iu,1 ); +if (scsi_device_ius (sdev)) +DV_SET (iu,1 );if (spi_min_period (starget) <9 ) {/* This u320 (or u640). Ignore the coupled parameters * like DT and IU, but set the optional ones */
Quoted 5 lines · James Bottomley
Well, my best guess is that this is a double bug. I think the
aic7xxx_coreis processing the reject wrongly and the device is rejecting a QAS or IU negotiation attempt.So, see if the attached patch helps.
Unfortunately I see no visible changes in the output; the system hangs at the same point.
What does that asynchronous line mean? I see that on all kernels that do not boot properly. 2.6.12; 2.6.12.1 and 2.6.12.2 do not display it, and boot just fine.
target0:0:0: asynchronous
It appears even before vendor & model information is displayed for the Fujitsu drive.
Quoted 1 line
James
Tony.
Quoted 5 lines · Tony Vroon
What does that asynchronous line mean? I see that on all kernels that do not boot properly. 2.6.12; 2.6.12.1 and 2.6.12.2 do not display it, and boot just fine.
target0:0:0: asynchronous
It means the target is sending data asynchronously (the slowest and safest speed).
Could you try booting with aic7xxx=verbose to see what the device thinks its negotiating?
Thanks,
James
Quoted 2 lines · James Bottomley
Could you try booting with aic7xxx=verbose to see what the device thinks its negotiating?
scsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers (scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0 Filtered to period 0, offset 0
target0:0:0: asynchronous
scsi0: target 0 using asynchronous transfers [vendor information follows; Fujitsu MAP 36.7GB drive]
Quoted 1 line
James
Tony.
Quoted 2 lines · Tony Vroon
wscsi0: target 0 using asynchronous transfers [vendor information follows; Fujitsu MAP 36.7GB drive]
There should be more debugging information after this as the device goes through domain validation, isn't there?
James
Quoted 2 lines · James Bottomley
There should be more debugging information after this as the device goes through domain validation, isn't there?
There is, but I have to write this out manually. I have only one PC available. Got myself more paper and a better pen. Here it is:
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBsscsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: asynchronous.
scsi0: target 0 using asynchronous transfers
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0: Slave Configure 0
target0:0:0: asynchronous.
scsi0:A:0:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
(scsi0:A:0:0): Sending WDTR 1
(scsi0:A:0:0): Received WDTR 1 filtered to 1
target0:0:0: FAST-5 WIDE SCSI 2.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 16bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: wide asynchronous
scsi0: target 0 using asynchronous transfers
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 7
(scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f, ppr_options 7
Filtered to width 0, period 0, offset 0, options 0
target0:0:0: asynchronous.
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): refuses tagged comands. Performing non-tagged I/O
target0:0:0: asynchronous
*PC hangs here*
Quoted 1 line
James
Tony.
Quoted 5 lines · Tony Vroon
(scsi0:A:0:0): Sending PPR
bus_width1, period 9, offset 7f,ppr_options7
(scsi0:A:0:0): Received PPRbus_width1, period 9, offset 7f,ppr_options7
Filtered to width 0, period 0, offset 0, options 0
Well, I think this is it. The drive is actually offering IU and QAS. That's fun; I've never seen a u160 drive that could do those before. Although the aic7xxx driver is apparently coded to allow this, it looks like the code paths have never been exercised.
So, although I think this patch will fix up the first error, there's probably a long line behind it ...
James
(quoted diff) +0 -0
b/drivers/scsi/aic7xxx/aic7xxx_core.c
drivers/scsi/aic7xxx/aic7xxx_core.c +2 -1
@@ -3258,7 +3258,8 @@ ahc_parse_msg(struct ahc_softc *ahc, str* on any controller. Transfer options are * only available if we are negotiating wide. */ - ppr_options &=MSG_EXT_PPR_DT_REQ ; + ppr_options &=MSG_EXT_PPR_DT_REQ | +MSG_EXT_PPR_QAS_REQ |MSG_EXT_PPR_IU_REQ ;if (bus_width ==0 ) ppr_options =0 ;
Quoted 2 lines · James Bottomley
Well, I think this is it. The drive is actually offering IU and QAS. That's fun; I've never seen a u160 drive that could do those before.
The Fujitsu is a U320 unit, just like my Seagate. It's just the controller that's the limiting factor.
Quoted 4 lines
Although the aic7xxx driver is apparently coded to allow this, it looks like the code paths have never been exercised.
So, although I think this patch will fix up the first error, there's probably a long line behind it ...
As you predicted, it tried but gave up.
Output follows:
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBsscsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: asynchronous.
scsi0: target 0 using asynchronous transfers
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0: Slave Configure 0
target0:0:0: asynchronous.
scsi0:A:0:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
(scsi0:A:0:0): Sending WDTR 1
(scsi0:A:0:0): Received WDTR 1 filtered to 1
target0:0:0: FAST-5 WIDE SCSI 2.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 16bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: wide asynchronous
scsi0: target 0 using asynchronous transfers
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 7
(scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f, ppr_options 7
Filtered to width 1, period 9, offset 7f, options 7
target0:0:0: FAST-80 WIDE SCSI 160.0 Mscsi0: target 0 synchronous at
80.0MHz DT, offset = 0x7
(scsi0:A:0:0): Unexpected busfree in Message-in phease SEQADDR == 0x16b
target0:0:0: Write Buffer failure 70000
target0:0:0: Domain Validation Disabling Information Units
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 6
(scsi0:A:0:0): refuses tagged comands. Performing non-tagged I/O
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST IU (12.5 ns, offset 127)
*PC hangs here*
Quoted 1 line · Tony Vroon
Output follows:
It got mangled somehow. Not sure what happened but it's corrupted near the end. Reposting:
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBsscsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: asynchronous.
scsi0: target 0 using asynchronous transfers
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0: Slave Configure 0
target0:0:0: asynchronous.
scsi0:A:0:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
(scsi0:A:0:0): Sending WDTR 1
(scsi0:A:0:0): Received WDTR 1 filtered to 1
target0:0:0: FAST-5 WIDE SCSI 2.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 16bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: wide asynchronous
csi0: target 0 using asynchronous transfers
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 7
(scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f, ppr_options 7
Filtered to width 1, period 9, offset 7f, options 7
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST IU (12.5ns, offset 127)
scsi0: target 0 synchronous at 80.0MHz DT, offset = 0x7 (scsi0:A:0:0): Unexpected busfree in Message-in phase SEQADDR == 0x16b
target0:0:0: Write Buffer failure 70000
target0:0:0: Domain Validation Disabling Information Units
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 6
(scsi0:A:0:0): refuses tagged comands. Performing non-tagged I/O
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST IU (12.5 ns, offset 127)
*PC hangs here*
Quoted 1 line · Tony Vroon
As you predicted, it tried but gave up.
Well, I've looked more closely at this. There's no support in either the core or the sequencer for IU or QAS, so I think the safe course is just to strip them out of the transport parameters (I don't have the sequencer docs anyway, so there's no way I can correct the problem).
This should, therefore, get the whole lot booting again.
James
drivers/scsi/aic7xxx/aic7xxx_osm.c +8 -0
@@ -2633,6 +2633,11 @@ static void ahc_linux_set_dt(struct scsiahc_unlock (ahc, &flags); } +#if 0 +/* FIXME: This code claims to support IU and QAS. However, the actual +* sequencer code and aic7xxx_core have no support for these parameters and +* will get into a bad state if they're negotiated. Do not enable this +* unless you know what you're doing */ static void ahc_linux_set_qas (struct scsi_target *starget,int qas) {struct Scsi_Host *shost =dev_to_shost (starget->dev.parent);
@@ -2688,6 +2693,7 @@ static void ahc_linux_set_iu(struct scsi ppr_options, AHC_TRANS_GOAL, FALSE);ahc_unlock (ahc, &flags); } +#endif static struct spi_function_template ahc_linux_transport_functions = { .set_offset = ahc_linux_set_offset,
@@ -2698,10 +2704,12 @@ static struct spi_function_template ahc_ .show_width = 1, .set_dt = ahc_linux_set_dt, .show_dt =1 , +#if 0 .set_iu = ahc_linux_set_iu, .show_iu = 1, .set_qas = ahc_linux_set_qas, .show_qas = 1, +#endif };
Quoted 1 line · James Bottomley
This should, therefore, get the whole lot booting again.
Confirmed. Thumbs up :)
For good measure, here is the relevant bit of dmesg output:
CPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 17
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36
<Adaptec 29160 Ultra160 SCSI adapter>
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs target0:0:0: asynchronous.
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
target0:0:0: wide asynchronous.
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST (12.5 ns, offset 127) target0:0:0: Ending Domain Validation
(scsi0:A:1:0): refuses WIDE negotiation. Using 8bit transfers
target0:0:1: asynchronous.
Vendor: YAMAHA Model: CRW2100S Rev: 1.0N
Type: CD-ROM ANSI SCSI revision: 02
target0:0:1: Beginning Domain Validation
target0:0:1: Domain Validation skipping write tests target0:0:1: FAST-20 SCSI 20.0 MB/s ST (50 ns, offset 7) target0:0:1: Ending Domain Validation
(scsi0:A:2:0): refuses WIDE negotiation. Using 8bit transfers
target0:0:2: asynchronous.
Vendor: PIONEER Model: DVD-ROM DVD-305 Rev: 1.03
Type: CD-ROM ANSI SCSI revision: 02
target0:0:2: Beginning Domain Validation
target0:0:2: Domain Validation skipping write tests target0:0:2: FAST-20 SCSI 20.0 MB/s ST (50 ns, offset 16) target0:0:2: Ending Domain Validation
target0:0:3: asynchronous.
Vendor: PLEXTOR Model: CD-ROM PX-40TS Rev: 1.11
Type: CD-ROM ANSI SCSI revision: 02
target0:0:3: Beginning Domain Validation
target0:0:3: Domain Validation skipping write tests target0:0:3: FAST-20 SCSI 20.0 MB/s ST (50 ns, offset 15) target0:0:3: Ending Domain Validation
target0:0:5: asynchronous.
Vendor: QUANTUM Model: ATLAS10K3_36_SCA Rev: 020W
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:5:0: Tagged Queuing enabled. Depth 32
target0:0:5: Beginning Domain Validation
target0:0:5: wide asynchronous.
target0:0:5: FAST-80 WIDE SCSI 160.0 MB/s ST (12.5 ns, offset 127) target0:0:5: Ending Domain Validation
scsi0:A:6:0: Tagged Queuing enabled. Depth 32
target0:0:6: Beginning Domain Validation
target0:0:6: wide asynchronous.
target0:0:6: FAST-80 WIDE SCSI 160.0 MB/s ST (12.5 ns, offset 63) target0:0:6: Ending Domain Validation
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
sdb: sdb1
Attached scsi disk sdb at scsi0, channel 0, id 5, lun 0 ttached scsi disk sdb at scsi0, channel 0, id 5, lun 0 SCSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
SCSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
sdc: sdc1
Attached scsi disk sdc at scsi0, channel 0, id 6, lun 0
sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 1, lun 0
sr1: scsi3-mmc drive: 16x/40x cd/rw xa/form2 cdda tray Attached scsi CD-ROM sr1 at scsi0, channel 0, id 2, lun 0
sr2: scsi-1 drive
Attached scsi CD-ROM sr2 at scsi0, channel 0, id 3, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0 Attached scsi generic sg1 at scsi0, channel 0, id 1, lun 0, type 5 Attached scsi generic sg2 at scsi0, channel 0, id 2, lun 0, type 5 Attached scsi generic sg3 at scsi0, channel 0, id 3, lun 0, type 5 Attached scsi generic sg4 at scsi0, channel 0, id 5, lun 0, type 0 Attached scsi generic sg5 at scsi0, channel 0, id 6, lun 0, type 0