Date: Sun, 17 Jun 2001 10:23:34 -0700 From: "Greg Smith" <freebsd_mail@yahoo.com> To: freebsd-mobile@freebsd.org Subject: PCMCIA - ATA/ATAPI Adapter problem Message-ID: <200106171023340420.00150E00@smtp.mail.yahoo.com>
next in thread | raw e-mail | index | archive | help
When the pccard.conf file has more io addresses allowed than
0x240-0x360 (the installed defaults) some PCMCIA - ATA/ATAPI Adapters
will be assigned incorrect io addresses, and the ata device will
timeout and fail to identify the ad* or other device correctly. This
is correctable by the user: adding iosize 16 to the end of the config
line in pccard.conf. This correction will allow the user to continue
using the io addresses appropriate for their machine.
Below I have included supporting documentation from an IBM ThinkPad 600
running 4.3-Stable (June 8, 2001) and using a Simple Technologies
DriveLink card, which is a rebadged Shining Technology PCMCIA -
ATA/ATAPI Adapter card.
If I should make this a pr please let me know.
HTH,
Greg
===== pccard.conf =====
io 0x100-0x12f 0x140-0x16f 0x180-0x1df 0x240-0x25f 0x280-0x2df
0x300-0x32f 0x340-0x36f
irq 4 9 15 #IBM with imodem enabled
memory 0xd4000 96k
########## ata ##########
# Shining PMIDE-ASC CDROM / Road Warrior Bullet Disk
card "Shining" "PMIDE-ASC"
# config auto "ata" ? 0x20000 iosize 16
config auto "ata" ? 0x20000
logstr "DriveLink ATA/ATAPI (IDE) Adapter"
===== pccardc dumpcis =====
Configuration data for card in slot 1
Tuple #1, code = 0x1 (Common memory descriptor), length = 3
000: d1 00 ff
Common memory device information:
Device number 1, type Function specific, WPS = OFF
Speed = 250nS, Memory block size = 512b, 1 units
Tuple #2, code = 0x1a (Configuration map), length = 5
000: 01 03 00 04 0f
Reg len = 2, config register addr = 0x400, last config = 0x3
Registers: XXXX----
Tuple #3, code = 0x15 (Version 1 info), length = 30
000: 04 01 53 68 69 6e 69 6e 67 00 50 4d 49 44 45 2d
010: 41 53 43 00 52 65 76 20 31 2e 30 34 00 ff
Version = 4.1, Manuf = [Shining], card vers = [PMIDE-ASC]
Addit. info = [Rev 1.04]
Tuple #4, code = 0x1b (Configuration entry), length = 7
000: c1 41 18 44 30 00 04
Config index = 0x1(default)
Interface byte = 0x41 (I/O) +RDY/-BSY active
Card decodes 4 address lines, limited 8/16 Bit I/O
IRQ modes: Level
IRQs: 10
Tuple #5, code = 0x1b (Configuration entry), length = 14
000: 82 41 18 ca 61 60 01 07 6e 01 01 30 00 08
Config index = 0x2
Interface byte = 0x41 (I/O) +RDY/-BSY active
Card decodes 10 address lines, limited 8/16 Bit I/O
I/O address # 1: block start = 0x160 block length = 0x8
I/O address # 2: block start = 0x16e block length = 0x2
IRQ modes: Level
IRQs: 11
Tuple #6, code = 0x1b (Configuration entry), length = 14
000: 83 41 18 ca 61 50 01 07 5e 01 01 30 00 02
Config index = 0x3
Interface byte = 0x41 (I/O) +RDY/-BSY active
Card decodes 10 address lines, limited 8/16 Bit I/O
I/O address # 1: block start = 0x150 block length = 0x8
I/O address # 2: block start = 0x15e block length = 0x2
IRQ modes: Level
IRQs: 9
Tuple #7, code = 0x21 (Functional ID), length = 2
000: 04 00
Fixed disk card
Tuple #8, code = 0x22 (Functional EXT), length = 2
000: 01 01
Disk interface: IDE
Tuple #9, code = 0x22 (Functional EXT), length = 3
000: 02 00 57
Disk features: Rotating, Single
Sleep, Standby, Idle, Reg inhibit, Iois16
Tuple #10, code = 0x14 (No link), length = 0
Tuple #11, code = 0xff (Terminator), length = 0
===== dmesg with iosize 16 =====
Slot 1 chg = 0x8
pccard: card inserted, slot 1
Slot 1 chg = 0x1
ata-: ata0 exists, using next available unit number
pcic: I/O win 0 flags 15 100-10f
pcic: I/O win 0 flags 5 100-10f
pcic: I/O win 0 flags 15 100-10f
ata4: iobase=0x0100 altiobase=0x010e bmaddr=0x0000
ata4: mask=03 status0=50 status1=00
ata4: mask=01 ostat0=50 ostat2=00
ata4-master: ATAPI probe a=00 b=00
ata4-slave: ATAPI probe a=00 b=00
ata4: mask=01 status0=50 status1=00
ata4-master: ATA probe a=01 b=a5
ata4: devices=01
ata4 at port 0x100-0x10f irq 4 slot 1 on pccard1
Creating DISK ad8
ad8: <IBM-DYKA-23240/YK4IA74G> ATA-3 disk at ata4-master
ad8: 3102MB (6354432 sectors), 6304 cyls, 16 heads, 63 S/T, 512 B/S
ad8: 16 secs/int, 1 depth queue, BIOSPIO
ad8: piomode=4 dmamode=2 udmamode=2 cblid=0
ad8: 3102MB <IBM-DYKA-23240> [6304/16/63] at ata4-master BIOSPIO
===== dmesg without iosize 16 =====
Slot 1 chg = 0x8
pccard: card inserted, slot 1
Slot 1 chg = 0x1
ata-: ata0 exists, using next available unit number
pcic: I/O win 0 flags 15 160-167
pcic: I/O win 0 flags 5 160-167
pcic: I/O win 0 flags 15 160-167
pcic: I/O win 1 flags 15 366-366
ata4: iobase=0x0160 altiobase=0x0366 bmaddr=0x0000
ata4: mask=03 status0=50 status1=00
ata4: mask=01 ostat0=50 ostat2=00
ata4-master: ATAPI probe a=00 b=00
ata4-slave: ATAPI probe a=00 b=00
ata4: mask=01 status0=50 status1=00
ata4-master: ATA probe a=01 b=a5
ata4: devices=01
ata4 at port 0x160-0x167,0x366 irq 4 slot 1 on pccard1
ata4-master: ata_command: timeout waiting for intr
ata4-master: identify failed
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200106171023340420.00150E00>
