I am struggling to get an IBM DTLA-307045 drive attached to a
promise pdc20267 controller to work in DMA mode. Right now,
whenever I enable a DMA mode, I get timeouts when accessing
the drive.
I am using an 80-pin cable, that came with the Promise controller.
Mar 16 20:57:43 ask kernel: Uniform Multi-Platform E-IDE driver Revision: 6.31
Mar 16 20:57:43 ask kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Mar 16 20:57:43 ask kernel: PDC20267: IDE controller on PCI bus 00 dev 30
Mar 16 20:57:43 ask kernel: PDC20267: chipset revision 2
Mar 16 20:57:43 ask kernel: PDC20267: not 100%% native mode: will probe irqs later
Mar 16 20:57:43 ask kernel: PDC20267: ROM enabled at 0x80000000
Mar 16 20:57:43 ask kernel: PDC20267: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.
Mar 16 20:57:43 ask kernel: ide2: BM-DMA at 0x8040-0x8047, BIOS settings: hde:DMA, hdf:pio
Mar 16 20:57:43 ask kernel: ide3: BM-DMA at 0x8048-0x804f, BIOS settings: hdg:pio, hdh:pio
Mar 16 20:57:43 ask kernel: PIIX3: IDE controller on PCI bus 00 dev 61
Mar 16 20:57:43 ask kernel: PIIX3: chipset revision 0
Mar 16 20:57:43 ask kernel: PIIX3: not 100%% native mode: will probe irqs later
Mar 16 20:57:43 ask kernel: PIIX3: neither IDE port enabled (BIOS)
Mar 16 20:58:23 ask kernel: hde: IBM-DTLA-307045, ATA DISK drive
Mar 16 20:58:23 ask kernel: ide2 at 0x8000-0x8007,0x800a on irq 14
Mar 16 20:59:00 ask kernel: A Register SYNC_IN ERRDY_EN IORDY_EN PREFETCH_EN PA0 PIO(A) = 1
Mar 16 20:59:00 ask kernel: AP 11110001
Mar 16 20:59:00 ask kernel: B Register MB0 DMA(B) = 1 PB2 PIO(B) = 4
Mar 16 20:59:00 ask kernel: BP 00100100
Mar 16 20:59:00 ask kernel: C Register IORDYp MC0 DMA(C) = 1
Mar 16 20:59:00 ask kernel: CP 01000001
Mar 16 20:59:00 ask kernel: D Register
Mar 16 20:59:00 ask kernel: DP 00000000
Mar 16 20:59:00 ask kernel: hde: UDMA 5 drive0 0x004124f1 0x004124f1
Mar 16 20:59:00 ask kernel: hde: 90069840 sectors (46116 MB) w/1916KiB Cache, CHS=89355/16/63, UDMA(100)
Mar 16 20:59:20 ask kernel: hde:hde: timeout waiting for DMA
Mar 16 20:59:20 ask kernel: ide_dmaproc: chipset supported ide_dma_timeout func only: 14
Mar 16 20:59:20 ask kernel: hde: irq timeout: status=0x50 { DriveReady SeekComplete }
Any ideas on how to improve the state of things ? The drive works
in non-DMA mode, but the performance is pretty poor (~ 5 MB/sec
on a 'hdparm -t') - I would like to make it somewhat snappier.
The system is a Pentium/166 with 64 MB RAM, and a built-in PIIX3
chipset. The IBM drive is the only IDE drive in the system, and I
have tried with both the built-in IDE controller disabled and
enabled. Here's the full dmesg:
Linux version 2.4.3-pre4 ([email protected]) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #19 Fri Mar 16 20:44:30 CET 2001
BIOS-provided physical RAM map:
BIOS-e820: 000000000009e800 @ 0000000000000000 (usable)
BIOS-e820: 0000000000001800 @ 000000000009e800 (reserved)
BIOS-e820: 0000000000010000 @ 00000000000f0000 (reserved)
BIOS-e820: 0000000003f00000 @ 0000000000100000 (usable)
BIOS-e820: 0000000000040000 @ 00000000fffc0000 (reserved)
On node 0 totalpages: 16384
zone(0): 4096 pages.
zone(1): 12288 pages.
zone(2): 0 pages.
Kernel command line: BOOT_IMAGE=test3 ro root=805 BOOT_FILE=/boot/test243-pdc20267-dma-module
Initializing CPU#0
Detected 166.588 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 332.59 BogoMIPS
Memory: 62184k/65536k available (1079k kernel code, 2960k reserved, 389k data, 188k init, 0k highmem)
Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
CPU: Before vendor init, caps: 000001bf 00000000 00000000, vendor = 0
Intel Pentium with F0 0F bug - workaround enabled.
CPU: After vendor init, caps: 000001bf 00000000 00000000 00000000
CPU: After generic, caps: 000001bf 00000000 00000000 00000000
CPU: Common caps: 000001bf 00000000 00000000 00000000
CPU: Intel Pentium 75 - 200 stepping 0c
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xfd83e, last bus=0
PCI: Using configuration type 1
PCI: Probing PCI hardware
Limiting direct PCI/PCI transfers.
Activating ISA DMA hang workarounds.
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Starting kswapd v1.8
Detected PS/2 Mouse Port.
pty: 256 Unix98 ptys configured
block: queued sectors max/low 41248kB/13749kB, 128 slots per queue
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
Real Time Clock Driver v1.10d
eepro100.c:v1.09j-t 9/29/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html
eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <[email protected]> and others
eth0: Intel Corporation 82557 [Ethernet Pro 100], 00:02:B3:0F:D3:82, IRQ 11.
Board assembly 721383-016, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x04f4518b).
SCSI subsystem driver Revision: 1.00
sym53c8xx: at PCI bus 0, device 7, function 0
sym53c8xx: setting PCI_COMMAND_PARITY...(fix-up)
sym53c8xx: 53c875 detected with Tekram NVRAM
sym53c875-0: rev 0x26 on pci bus 0 device 7 function 0 irq 12
sym53c875-0: Tekram format NVRAM, ID 7, Fast-20, Parity Checking
scsi0 : sym53c8xx-1.7.3a-20010304
Vendor: IBM Model: DORS-32160W Rev: WA6A
Type: Direct-Access ANSI SCSI revision: 02
Vendor: IBM Model: DCAS-34330W Rev: S65A
Type: Direct-Access ANSI SCSI revision: 02
Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
Detected scsi disk sdb at scsi0, channel 0, id 12, lun 0
sym53c875-0-<0,*>: FAST-20 WIDE SCSI 40.0 MB/s (50.0 ns, offset 15)
SCSI device sda: 4226725 512-byte hdwr sectors (2164 MB)
Partition check:
sda: sda1 sda2 sda3 < sda5 sda6 sda7 >
sym53c875-0-<12,*>: FAST-20 WIDE SCSI 40.0 MB/s (50.0 ns, offset 15)
SCSI device sdb: 8467200 512-byte hdwr sectors (4335 MB)
sdb: sdb1
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
ip_conntrack (512 buckets, 4096 max)
ip_tables: (c)2000 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 188k freed
Adding Swap: 205612k swap-space (priority -1)
reiserfs: checking transaction log (device 08:11) ...
Using tea hash to sort names
reiserfs: using 3.5.x disk format
ReiserFS version 3.6.25
ide_setup: ide0=noprobe
ide_setup: ide2=noautotune
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20267: IDE controller on PCI bus 00 dev 30
PDC20267: chipset revision 2
PDC20267: not 100% native mode: will probe irqs later
PDC20267: ROM enabled at 0x80000000
PDC20267: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.
ide2: BM-DMA at 0x8040-0x8047, BIOS settings: hde:pio, hdf:pio
ide3: BM-DMA at 0x8048-0x804f, BIOS settings: hdg:pio, hdh:pio
PIIX3: IDE controller on PCI bus 00 dev 61
PIIX3: chipset revision 0
PIIX3: not 100% native mode: will probe irqs later
PIIX3: neither IDE port enabled (BIOS)
hde: IBM-DTLA-307045, ATA DISK drive
ide2 at 0x8000-0x8007,0x800a on irq 14
hde: 90069840 sectors (46116 MB) w/1916KiB Cache, CHS=89355/16/63
hde: unknown partition table
A Register SYNC_IN ERRDY_EN IORDY_EN PREFETCH_EN PA0 PIO(A) = 1
AP 11110001
B Register MB0 DMA(B) = 1 PB2 PIO(B) = 4
BP 00100100
C Register IORDYp MC0 DMA(C) = 1
CP 01000001
D Register
DP 00000000
hde: PIO 4 drive0 0x004124f1 0x004124f1
hde: DMA disabled
reiserfs: checking transaction log (device 21:00) ...
Using r5 hash to sort names
reiserfs: using 3.5.x disk format
ReiserFS version 3.6.25
Because you disabled the PIIX3 the PDC20267 stole the interrupt 14.
That is a special interrupt for legacy.
test243-pdc20267-dma-module
What he heck is dma-module?
That is not allowed, what have you modified?
If you want to to help I require the entire effected source and
corresponding extras, period.
On Fri, 16 Mar 2001, [iso-8859-1] Henrik St?rner wrote:
> I am struggling to get an IBM DTLA-307045 drive attached to a
> promise pdc20267 controller to work in DMA mode. Right now,
> whenever I enable a DMA mode, I get timeouts when accessing
> the drive.
>
> I am using an 80-pin cable, that came with the Promise controller.
>
> Mar 16 20:57:43 ask kernel: Uniform Multi-Platform E-IDE driver Revision: 6.31
> Mar 16 20:57:43 ask kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> Mar 16 20:57:43 ask kernel: PDC20267: IDE controller on PCI bus 00 dev 30
> Mar 16 20:57:43 ask kernel: PDC20267: chipset revision 2
> Mar 16 20:57:43 ask kernel: PDC20267: not 100%% native mode: will probe irqs later
> Mar 16 20:57:43 ask kernel: PDC20267: ROM enabled at 0x80000000
> Mar 16 20:57:43 ask kernel: PDC20267: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.
> Mar 16 20:57:43 ask kernel: ide2: BM-DMA at 0x8040-0x8047, BIOS settings: hde:DMA, hdf:pio
> Mar 16 20:57:43 ask kernel: ide3: BM-DMA at 0x8048-0x804f, BIOS settings: hdg:pio, hdh:pio
> Mar 16 20:57:43 ask kernel: PIIX3: IDE controller on PCI bus 00 dev 61
> Mar 16 20:57:43 ask kernel: PIIX3: chipset revision 0
> Mar 16 20:57:43 ask kernel: PIIX3: not 100%% native mode: will probe irqs later
> Mar 16 20:57:43 ask kernel: PIIX3: neither IDE port enabled (BIOS)
> Mar 16 20:58:23 ask kernel: hde: IBM-DTLA-307045, ATA DISK drive
> Mar 16 20:58:23 ask kernel: ide2 at 0x8000-0x8007,0x800a on irq 14
> Mar 16 20:59:00 ask kernel: A Register SYNC_IN ERRDY_EN IORDY_EN PREFETCH_EN PA0 PIO(A) = 1
> Mar 16 20:59:00 ask kernel: AP 11110001
> Mar 16 20:59:00 ask kernel: B Register MB0 DMA(B) = 1 PB2 PIO(B) = 4
> Mar 16 20:59:00 ask kernel: BP 00100100
> Mar 16 20:59:00 ask kernel: C Register IORDYp MC0 DMA(C) = 1
> Mar 16 20:59:00 ask kernel: CP 01000001
> Mar 16 20:59:00 ask kernel: D Register
> Mar 16 20:59:00 ask kernel: DP 00000000
> Mar 16 20:59:00 ask kernel: hde: UDMA 5 drive0 0x004124f1 0x004124f1
> Mar 16 20:59:00 ask kernel: hde: 90069840 sectors (46116 MB) w/1916KiB Cache, CHS=89355/16/63, UDMA(100)
> Mar 16 20:59:20 ask kernel: hde:hde: timeout waiting for DMA
> Mar 16 20:59:20 ask kernel: ide_dmaproc: chipset supported ide_dma_timeout func only: 14
> Mar 16 20:59:20 ask kernel: hde: irq timeout: status=0x50 { DriveReady SeekComplete }
>
> Any ideas on how to improve the state of things ? The drive works
> in non-DMA mode, but the performance is pretty poor (~ 5 MB/sec
> on a 'hdparm -t') - I would like to make it somewhat snappier.
>
> The system is a Pentium/166 with 64 MB RAM, and a built-in PIIX3
> chipset. The IBM drive is the only IDE drive in the system, and I
> have tried with both the built-in IDE controller disabled and
> enabled. Here's the full dmesg:
>
> Linux version 2.4.3-pre4 ([email protected]) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #19 Fri Mar 16 20:44:30 CET 2001
> BIOS-provided physical RAM map:
> BIOS-e820: 000000000009e800 @ 0000000000000000 (usable)
> BIOS-e820: 0000000000001800 @ 000000000009e800 (reserved)
> BIOS-e820: 0000000000010000 @ 00000000000f0000 (reserved)
> BIOS-e820: 0000000003f00000 @ 0000000000100000 (usable)
> BIOS-e820: 0000000000040000 @ 00000000fffc0000 (reserved)
> On node 0 totalpages: 16384
> zone(0): 4096 pages.
> zone(1): 12288 pages.
> zone(2): 0 pages.
> Kernel command line: BOOT_IMAGE=test3 ro root=805 BOOT_FILE=/boot/test243-pdc20267-dma-module
> Initializing CPU#0
> Detected 166.588 MHz processor.
> Console: colour VGA+ 80x25
> Calibrating delay loop... 332.59 BogoMIPS
> Memory: 62184k/65536k available (1079k kernel code, 2960k reserved, 389k data, 188k init, 0k highmem)
> Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)
> Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
> Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
> Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
> CPU: Before vendor init, caps: 000001bf 00000000 00000000, vendor = 0
> Intel Pentium with F0 0F bug - workaround enabled.
> CPU: After vendor init, caps: 000001bf 00000000 00000000 00000000
> CPU: After generic, caps: 000001bf 00000000 00000000 00000000
> CPU: Common caps: 000001bf 00000000 00000000 00000000
> CPU: Intel Pentium 75 - 200 stepping 0c
> Checking 'hlt' instruction... OK.
> POSIX conformance testing by UNIFIX
> PCI: PCI BIOS revision 2.10 entry at 0xfd83e, last bus=0
> PCI: Using configuration type 1
> PCI: Probing PCI hardware
> Limiting direct PCI/PCI transfers.
> Activating ISA DMA hang workarounds.
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Starting kswapd v1.8
> Detected PS/2 Mouse Port.
> pty: 256 Unix98 ptys configured
> block: queued sectors max/low 41248kB/13749kB, 128 slots per queue
> Floppy drive(s): fd0 is 1.44M
> FDC 0 is a National Semiconductor PC87306
> Real Time Clock Driver v1.10d
> eepro100.c:v1.09j-t 9/29/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html
> eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <[email protected]> and others
> eth0: Intel Corporation 82557 [Ethernet Pro 100], 00:02:B3:0F:D3:82, IRQ 11.
> Board assembly 721383-016, Physical connectors present: RJ45
> Primary interface chip i82555 PHY #1.
> General self-test: passed.
> Serial sub-system self-test: passed.
> Internal registers self-test: passed.
> ROM checksum self-test: passed (0x04f4518b).
> SCSI subsystem driver Revision: 1.00
> sym53c8xx: at PCI bus 0, device 7, function 0
> sym53c8xx: setting PCI_COMMAND_PARITY...(fix-up)
> sym53c8xx: 53c875 detected with Tekram NVRAM
> sym53c875-0: rev 0x26 on pci bus 0 device 7 function 0 irq 12
> sym53c875-0: Tekram format NVRAM, ID 7, Fast-20, Parity Checking
> scsi0 : sym53c8xx-1.7.3a-20010304
> Vendor: IBM Model: DORS-32160W Rev: WA6A
> Type: Direct-Access ANSI SCSI revision: 02
> Vendor: IBM Model: DCAS-34330W Rev: S65A
> Type: Direct-Access ANSI SCSI revision: 02
> Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
> Detected scsi disk sdb at scsi0, channel 0, id 12, lun 0
> sym53c875-0-<0,*>: FAST-20 WIDE SCSI 40.0 MB/s (50.0 ns, offset 15)
> SCSI device sda: 4226725 512-byte hdwr sectors (2164 MB)
> Partition check:
> sda: sda1 sda2 sda3 < sda5 sda6 sda7 >
> sym53c875-0-<12,*>: FAST-20 WIDE SCSI 40.0 MB/s (50.0 ns, offset 15)
> SCSI device sdb: 8467200 512-byte hdwr sectors (4335 MB)
> sdb: sdb1
> mice: PS/2 mouse device common for all mice
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 512 buckets, 4Kbytes
> TCP: Hash tables configured (established 4096 bind 4096)
> ip_conntrack (512 buckets, 4096 max)
> ip_tables: (c)2000 Netfilter core team
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> VFS: Mounted root (ext2 filesystem) readonly.
> Freeing unused kernel memory: 188k freed
> Adding Swap: 205612k swap-space (priority -1)
> reiserfs: checking transaction log (device 08:11) ...
> Using tea hash to sort names
> reiserfs: using 3.5.x disk format
> ReiserFS version 3.6.25
> ide_setup: ide0=noprobe
> ide_setup: ide2=noautotune
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> PDC20267: IDE controller on PCI bus 00 dev 30
> PDC20267: chipset revision 2
> PDC20267: not 100% native mode: will probe irqs later
> PDC20267: ROM enabled at 0x80000000
> PDC20267: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.
> ide2: BM-DMA at 0x8040-0x8047, BIOS settings: hde:pio, hdf:pio
> ide3: BM-DMA at 0x8048-0x804f, BIOS settings: hdg:pio, hdh:pio
> PIIX3: IDE controller on PCI bus 00 dev 61
> PIIX3: chipset revision 0
> PIIX3: not 100% native mode: will probe irqs later
> PIIX3: neither IDE port enabled (BIOS)
> hde: IBM-DTLA-307045, ATA DISK drive
> ide2 at 0x8000-0x8007,0x800a on irq 14
> hde: 90069840 sectors (46116 MB) w/1916KiB Cache, CHS=89355/16/63
> hde: unknown partition table
> A Register SYNC_IN ERRDY_EN IORDY_EN PREFETCH_EN PA0 PIO(A) = 1
> AP 11110001
> B Register MB0 DMA(B) = 1 PB2 PIO(B) = 4
> BP 00100100
> C Register IORDYp MC0 DMA(C) = 1
> CP 01000001
> D Register
> DP 00000000
> hde: PIO 4 drive0 0x004124f1 0x004124f1
> hde: DMA disabled
> reiserfs: checking transaction log (device 21:00) ...
> Using r5 hash to sort names
> reiserfs: using 3.5.x disk format
> ReiserFS version 3.6.25
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
Andre Hedrick
Linux ATA Development
ASL Kernel Development
-----------------------------------------------------------------------------
ASL, Inc. Toll free: 1-877-ASL-3535
1757 Houret Court Fax: 1-408-941-2071
Milpitas, CA 95035 Web: http://www.aslab.com