Skip site navigation (1)Skip section navigation (2)
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>