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>