Subject: ATAPI Zip drive
To: None <port-i386@netbsd.org>
From: Michael Eriksson <eramer@era-t.ericsson.se>
List: port-i386
Date: 11/28/1998 17:13:23
I have a Compaq 5670 with an ATAPI Zip drive, which works perfectly
under Windows 98. It probes OK when booting (NetBSD 1.3H):

pciide0 at pci0 dev 20 function 1: Intel 82371AB IDE controller (PIIX4)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <ST38641A>
wd0: using 32-sector pio transfers, lba mode
wd0: 8063MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 16514064 sectors
wd0: using 32-bits pio transfers
wd0: PIO mode 4, DMA mode 2, UDMA mode 2
pciide0: secondary channel wired to compatibility mode
atapibus0 at pciide0 channel 1
sd0 at atapibus0 drive 0: <IOMEGA  ZIP 100       ATAPI, , 12.A> type 0 direct removable
sd0: drive offline
sd0: using 32-bits pio transfers
sd0: PIO mode 3
cd0 at atapibus0 drive 1: <COMPAQ DVD-ROM GD-2500, , 0011> type 5 cdrom removable
cd0: using 32-bits pio transfers
cd0: PIO mode 4, DMA mode 2
wd0(pciide0:0:0): using PIO mode 4, UDMA mode 2
sd0(pciide0:1:0): using PIO mode 3
cd0(pciide0:1:1): using PIO mode 4, DMA mode 2

But when I try to use the Zip drive I get:

burken>dd if=/dev/sd0a of=/dev/null
dd: /dev/sd0a: Input/output error

The kernel writes:

pciide0:1:0: piomode error (0x4)
sd0(pciide0:1:0): ATA command aborted
pciide0:1:0: piomode error (0x4)
sd0(pciide0:1:0): ATA command aborted
pciide0:1:0: piomode error (0x4)
sd0(pciide0:1:0): ATA command aborted

When trying dd as above, a kernel with options SCSIDEBUG writes:

sd0(pciide0:1:0): sdopen: dev=0x400 (unit 0 (of 4), partition 0)
sd0(pciide0:1:0): atapi_cmd
sd0(pciide0:1:0): scsipi_get_xs
sd0(pciide0:1:0): calling pool_get
sd0(pciide0:1:0): returning
scsipi_exec_cmd: xs(0xf0505000): flg(0x1d0)sc_link(0xf04fa0c0)retr(0x2)timo(0x2710)cmd(0xf050505c)len(0xc)data(0x0)len(0x0)res(0x0)err(0x0)bp(0x0)sd0(pciide0:1:0): command: 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0-[0 bytes]

pciide0:1:0: piomode error (0x4)
sd0(pciide0:1:0): scsipi_done
sd0(pciide0:1:0): command: 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0-[0 bytes]
sd0(pciide0:1:0): back in cmd()
sd0(pciide0:1:0): sc_err1,err = 0x1 
sd0(pciide0:1:0): calling private err_handler()
sd0(pciide0:1:0): ATA command aborted
scsipi_exec_cmd: xs(0xf0505000): flg(0x1d0)sc_link(0xf04fa0c0)retr(0x1)timo(0x2710)cmd(0xf050505c)len(0xc)data(0x0)len(0x0)res(0x0)err(0x0)bp(0x0)sd0(pciide0:1:0): command: 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0-[0 bytes]

pciide0:1:0: piomode error (0x4)
sd0(pciide0:1:0): scsipi_done
sd0(pciide0:1:0): command: 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0-[0 bytes]
sd0(pciide0:1:0): back in cmd()
sd0(pciide0:1:0): sc_err1,err = 0x1 
sd0(pciide0:1:0): calling private err_handler()
sd0(pciide0:1:0): ATA command aborted
scsipi_exec_cmd: xs(0xf0505000): flg(0x1d0)sc_link(0xf04fa0c0)retr(0x0)timo(0x2710)cmd(0xf050505c)len(0xc)data(0x0)len(0x0)res(0x0)err(0x0)bp(0x0)sd0(pciide0:1:0): command: 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0-[0 bytes]

pciide0:1:0: piomode error (0x4)
sd0(pciide0:1:0): scsipi_done
sd0(pciide0:1:0): command: 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0-[0 bytes]
sd0(pciide0:1:0): back in cmd()
sd0(pciide0:1:0): sc_err1,err = 0x1 
sd0(pciide0:1:0): calling private err_handler()
sd0(pciide0:1:0): ATA command aborted
sd0(pciide0:1:0): scsipi_free_xs
sd0(pciide0:1:0): calling private start()
sd0(pciide0:1:0): sdstart 

What should I do?

Regards,
Michael