Re: cat /proc/pci and NCR 810 SCSI parity error

Gerard Roudier (groudier@club-internet.fr)
Wed, 7 Oct 1998 20:55:44 +0200 (MET DST)


On Wed, 7 Oct 1998, Harald Koenig wrote:

> using 2.1.122 with CONFIG_PCI_OLD_PROC=y I get a SCSI parity error
> when running
>
> # od -tx1 -Ax /proc/bus/pci/00/01.0
> # cat /proc/pci
>
> where /proc/bus/pci/00/01.0 is the NCR810 (kernel messages below)

Seem this command read the PCI config space. Does it? It seems to do so
since at offset 0x80 seems to start a nice chip IO registers dump. ;-)

The chip also maps its IO registers at offset 0x80 of its PCI
configuration space. So, your command is just doing a register dump while
the chip is running. Normally, the only IO register that can be accessed
while the SCRIPTS processor is running is the ISTAT register.

I would expected more problem that a simple SCSI parity error if the IO
registers are accessed while the SCRIPTS processor is running, but you
seem just get the SCSI parity error due to the read of IO registers that
are reporting (latched or not latched) the SCSI bus data lines while the
SCSI data bus is not driven, so with a possible wrong parity bit.

Note that the probability to get a parity error was 1/2 and you have been
fortunate to get a noisy SCSI parity error instead of some silent data
corruption. ;-)

Regards,
Gerard.

> any idea what's wrong with accessing /proc/bus/pci/00/01.0 and `cat /proc/pci'
> and/or 2.1.122 ?
>
> -------------------------------------------------------------------------------
> # od -tx1 -Ax /proc/bus/pci/00/01.0
> 000000 00 10 01 00 07 00 00 82 02 00 00 01 00 40 00 00
> 000010 01 e8 00 00 00 f0 fe fb 00 00 00 00 00 00 00 00
> 000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 000030 00 00 00 00 00 00 00 00 00 00 00 00 0f 01 00 00
> 000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> 000080 da 00 00 13 47 08 00 1f 35 00 80 00 80 00 0f 02
> 000090 ff a0 09 00 00 ff ff ff 00 f0 35 20 f0 de 00 00
> 0000a0 00 08 00 54 00 00 00 50 54 d3 00 00 54 d3 00 00
> 0000b0 a0 cf 00 00 08 00 00 00 80 7d 00 01 f4 a2 01 00
> 0000c0 8f 05 00 00 4f 00 00 0f 0c 00 80 00 06 00 00 80
> 0000d0 00 00 ff ff 00 ff ff ff 00 00 ff ff 00 41 00 00
> 0000e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

> -------------------------------------------------------------------------------
> ncr53c810-0: SCSI parity error detected: SCR1=65 DBC=50000000 SSTAT1=f
> scsi : aborting command due to timeout : pid 4132143, scsi0, channel 0, id 0, lun 0 Read (6) 0c f4 93 08 00
> ncr53c8xx_abort: pid=4132143 serial_number=4132150 serial_number_at_timeout=4132150
> ncr53c810-0: abort ccb=c009a020 (cancel)
> SCSI host 0 abort (pid 4132143) timed out - resetting
> SCSI bus is being reset for host 0 channel 0.
> ncr53c8xx_reset: pid=4132143 reset_flags=2 serial_number=4132150 serial_number_at_timeout=4132150
> ncr53c810-0: restart (scsi reset).
> ncr53c810-0-<0,*>: FAST-10 SCSI 10.0 MB/s (100 ns, offset 8)
> cat uses obsolete /proc/pci interface
> ncr53c810-0-<1,*>: FAST-10 SCSI 10.0 MB/s (100 ns, offset 8)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/