IBM Bluetooth PC Card II - configuration problem

Szigetvári János jszigetvari at gmail.com
Sun Jan 3 08:31:34 EST 2010


Hi,

2009/12/29 Dominik Brodowski <linux at dominikbrodowski.net>:
> This won't work for recent 2.6. kernels. Instead, you have two options:
> a) (ugly) manually telling the kernel to use a new CIS:
>
> # (as root)
> # cat cis/IBMBT.dat > /sys/class/pcmcia_socket/pcmcia_socket0/cis
>
> b) (preferred) patching the kernel to handle the case correctly.
>
> Add a line to drivers/serial/serial_cs.c:serial_ids[] containing
>
>        PCMCIA_DEVICE_CIS_MANF_CARD(0x0105, 0x4254, "cis/IBMBT.cis")

Thanks for the guidance!
I chose the latter method, and my modified CIS is now loaded every
time I insert the card.
The two CISes look like this:

The old one:

dev_info
  NULL 0ns, 512b
manfid 0x0105, 0x4254
funcid serial_port [post]
vers_1 7.1, "IBM", "Bluetooth PC Card II", "", ""
config base 0x00f8 mask 0x000f last_index 0x04
cftable_entry 0x03 [default]
  [rdybsy]
  Vcc Vnom 5V
  io 0x01e0-0x01ef [lines=8] [8bit] [range]
  irq mask 0xffff [level] [shared]
cftable_entry 0x04
  io 0x0000-0x7fff [lines=15] [8bit]

And the new modified one:

dev_info
  NULL 0ns, 512b
manfid 0x0105, 0x4254
funcid serial_port [post]
vers_1 7.1, "IBM", "Bluetooth PC Card II", "", ""
config base 0x00f8 mask 0x000f last_index 0x03
cftable_entry 0x03 [default]
  [rdybsy]
  Vcc Vnom 5V
  io 0x01e0-0x01ef [lines=8] [8bit] [range]
  irq mask 0xffff [level] [shared]

However there is now an other thing. The kernel recognizes the card as
having two serial UART-s:

pcmcia_socket pcmcia_socket1: pccard: PCMCIA card inserted into slot 1
pcmcia 1.0: pcmcia: registering new device pcmcia1.0
pcmcia 1.0: firmware: requesting cis/IBMBT.cis
ttyS1: detected caps 00000700 should be 00000100
1.0: ttyS1 at I/O 0x1e0 (irq = 3) is a 16C950/954
1.0: ttyS2 at I/O 0x1e8 (irq = 3) is a 8250

As the guys back at
http://osdir.com/ml/linux.pcmcia.devel/2003-04/msg00001.html said this
card uses a Oxford Semuconductor 16950-based UART. As it can be seen
it is (correctly?) detected. However the kernel detects another UART
of an older type. I don't really know why that is.

After this if I use the following command, I get the following:

root at orion:~# hciattach -p ttyS1 any
2597
root at orion:~# hciconfig -a
hci0:   Type: UART
        BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
        DOWN INIT RUNNING
        RX bytes:0 acl:0 sco:0 events:0 errors:0
        TX bytes:4 acl:0 sco:0 commands:1 errors:0

After some googling I found out that this is a TDK-made card, and that
instead of "any", I should try "tdk" as the UART type:
root at orion:~# hciattach -p ttyS1 tdk
BCSP initialization timed out.

So in the end I still can't use the card, although I got one step further.
Any comments or ideas on how I could fix this issue are welcome.

Regards,
Janos



More information about the linux-pcmcia mailing list