Thanks for your assistance, guys! Very much appreciated. I will be busy until Sunday, so I can't do much testing and debugging until then.
> It seems the card tries to request the ioport 0x300, > but alloc_io_space (in pcmcia_resource.c) added 0xc000 accidentally . > then ioport becomes 0xc300. That's strange. I attach the output of dump_cis: Socket 0 offset 0x02, tuple 0x01, link 0x02 00 ff dev_info no_info offset 0x06, tuple 0x15, link 0x13 04 01 44 2d 4c 69 6e 6b 00 44 4d 46 35 36 30 54 58 00 ff vers_1 4.1, "D-Link", "DMF560TX" offset 0x1b, tuple 0x20, link 0x04 43 01 ab c0 manfid 0x0143, 0xc0ab offset 0x21, tuple 0x21, link 0x02 00 00 funcid multi_function offset 0x25, tuple 0x1a, link 0x05 01 1b e0 ff 67 config base 0xffe0 mask 0x0067 last_index 0x1b offset 0x2c, tuple 0x1b, link 0x16 c3 41 99 79 55 3d 86 46 26 4c ea 61 f8 02 07 00 03 1f f0 38 9e 28 cftable_entry 0x03 [default] [rdybsy] [audio] [pwrdown] Vcc Vnom 5V Istatic 35mA Iavg 170mA Ipeak 200mA Idown 4500uA io 0x02f8-0x02ff, 0x0300-0x031f [lines=10] [8bit] [16bit] [range] irq mask 0x9e38 [level] [pulse] [shared] offset 0x44, tuple 0x1b, link 0x0a 05 08 ea 61 e8 03 07 00 03 1f cftable_entry 0x05 io 0x03e8-0x03ef, 0x0300-0x031f [lines=10] [8bit] [16bit] [range] offset 0x50, tuple 0x1b, link 0x0a 07 08 ea 61 e8 02 07 00 03 1f cftable_entry 0x07 io 0x02e8-0x02ef, 0x0300-0x031f [lines=10] [8bit] [16bit] [range] offset 0x5c, tuple 0x1b, link 0x0a 09 08 ea 61 f8 02 07 20 03 1f cftable_entry 0x09 io 0x02f8-0x02ff, 0x0320-0x033f [lines=10] [8bit] [16bit] [range] offset 0x68, tuple 0x1b, link 0x0a 0b 08 ea 61 e8 03 07 20 03 1f cftable_entry 0x0b io 0x03e8-0x03ef, 0x0320-0x033f [lines=10] [8bit] [16bit] [range] offset 0x74, tuple 0x1b, link 0x0a 0d 08 ea 61 e8 02 07 20 03 1f cftable_entry 0x0d io 0x02e8-0x02ef, 0x0320-0x033f [lines=10] [8bit] [16bit] [range] offset 0x80, tuple 0x1b, link 0x0a 0f 08 ea 61 f8 02 07 40 03 1f cftable_entry 0x0f io 0x02f8-0x02ff, 0x0340-0x035f [lines=10] [8bit] [16bit] [range] offset 0x8c, tuple 0x1b, link 0x0a 11 08 ea 61 e8 03 07 40 03 1f cftable_entry 0x11 io 0x03e8-0x03ef, 0x0340-0x035f [lines=10] [8bit] [16bit] [range] offset 0x98, tuple 0x1b, link 0x0a 13 08 ea 61 e8 02 07 40 03 1f cftable_entry 0x13 io 0x02e8-0x02ef, 0x0340-0x035f [lines=10] [8bit] [16bit] [range] offset 0xa4, tuple 0x1b, link 0x0a 15 08 ea 61 f8 02 07 20 02 1f cftable_entry 0x15 io 0x02f8-0x02ff, 0x0220-0x023f [lines=10] [8bit] [16bit] [range] offset 0xb0, tuple 0x1b, link 0x0a 17 08 ea 61 e8 03 07 20 02 1f cftable_entry 0x17 io 0x03e8-0x03ef, 0x0220-0x023f [lines=10] [8bit] [16bit] [range] offset 0xbc, tuple 0x1b, link 0x0a 19 08 ea 61 e8 02 07 20 02 1f cftable_entry 0x19 io 0x02e8-0x02ef, 0x0220-0x023f [lines=10] [8bit] [16bit] [range] offset 0xc8, tuple 0x1b, link 0x0a 1b 08 ea 61 f8 02 07 40 02 0f cftable_entry 0x1b io 0x02f8-0x02ff, 0x0240-0x024f [lines=10] [8bit] [16bit] [range] As you see, there is no entry with io=0x0000. But lines is always 10, so the alignment is always 1 << 10 = 0x400. As I understood, 0xc000 matches this alignment requirement and the 0x300 from the first entry gets added to this. I thought this is all valid and the card should find its registers, but it doesn't :( But I may be really missing a point here... > so I think alloc_io_space should be fixed. I was wondering that, too... Thanks again, Wolfram -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |
signature.asc
Description: Digital signature
_______________________________________________ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia
