Questions about ioport-assignments
Wolfram Sang
w.sang at pengutronix.de
Fri Jan 15 17:13:40 EST 2010
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/ |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-pcmcia/attachments/20100115/4fb12c3d/attachment.sig>
More information about the linux-pcmcia
mailing list