I have bought (cheaply) a !CompactFlash card providing a Bluetooth interface for the Zaurus, which is not Bluetooth-enabled by default. It identifies as "BT0100M", which did not ring a bell for me - the same for my favourite web search engine.
This card gives the following output when inserted into a properly configured notebook running FreeBSD:
function ID 2 sio4: 16550A Generic PCMCIA Modem sio4 port 0x2f8-0x2ff irq 10
The full CIS dump is below.
Some more findings
After inserting the card, turning the Zaurus on, and executing a
modprobe on all the Affix bluetooth kernel modules, the card is not
recognized, and it seemed as if none of the modules were loaded.
The card's LED, though does light for a moment after inserting it. It seems to be probed then...
The card also does not work with the
Back to Affix, I cannot seem to configure the pccard manager correctly to attach the BT drivers to that card... It's always detected and used as a serial device, but the Affix modules are not loaded.
Forcing the card manager to load the
affix_uart_cs modules on every
card identifying as serial interface (dirty!), I find in dmesg the driver
initialization messages and:
ttyS03 at port 0xf60003f8 (irq 35) is a 16550A btuart_recv_buf_h4: Invalid HCI packet type 0xc0 btuart_recv_buf_h4: Invalid HCI packet type 0x1 btuart_recv_buf_h4: Invalid HCI packet type 0xa
Further experiments yielded more similar lines in dmesg output, but I cannot see anything useful there.
affix_uart_csmodules. A panic occured on using
bt950uart_cs, I did not try
bt3c_cs, as this card does not look like 3Com to me. For the moment, the
affix_uart_csdriver is the most sensible in my opinion - but there seem to be some settings that must be fiddled with. Help appreciated.
btctl open_uart /dev/ttySA0 bcsp 115200" activates the card, and it shows up in btctl. Bluetooth Connector connects it to the mobile phone, everything worked well, and I could set up a connection to my mobile ISP. Now there seems to be only some flaw in my connection scripts, as I cannot get any data through the connection once it is set up. I'll work on that and then publish a howto here.
Configuration data for card in slot 0 Tuple #1, code = 0x1 (Common memory descriptor), length = 3 000: 00 00 ff Common memory device information: Device number 1, type No device, WPS = OFF Speed = No speed, Memory block size = 512b, 1 units Tuple #2, code = 0x15 (Version 1 info), length = 20 000: 04 01 42 6c 75 65 74 6f 6f 74 68 20 42 54 30 31 010: 30 30 4d ff Version = 4.1, Manuf = [Bluetooth BT0100Mÿ] Wrong length for version-1 info tuple Tuple #3, code = 0x21 (Functional ID), length = 2 000: 02 01 Serial port/modem - POST initialize Tuple #4, code = 0x1a (Configuration map), length = 5 000: 01 04 00 01 01 Reg len = 2, config register addr = 0x100, last config = 0x4 Registers: X------- Tuple #5, code = 0x1b (Configuration entry), length = 18 000: c1 81 19 07 b5 1e b5 0e b5 2f aa 60 f8 03 07 30 010: b8 9e Config index = 0x1(default) Interface byte = 0x81 (I/O) wait signal supported Vcc pwr: Nominal operating supply voltage: 3 x 1V, ext = 0x1e Minimum operating supply voltage: 3 x 1V, ext = 0xe Maximum operating supply voltage: 3 x 1V, ext = 0x2f Card decodes 10 address lines, 8 Bit I/O only I/O address # 1: block start = 0x3f8 block length = 0x8 IRQ modes: Level IRQs: 3 4 5 7 9 10 11 12 15 Tuple #6, code = 0x1b (Configuration entry), length = 7 000: 02 08 aa 60 f8 02 07 Config index = 0x2 Card decodes 10 address lines, 8 Bit I/O only I/O address # 1: block start = 0x2f8 block length = 0x8 Tuple #7, code = 0x1b (Configuration entry), length = 7 000: 03 08 aa 60 e8 03 07 Config index = 0x3 Card decodes 10 address lines, 8 Bit I/O only I/O address # 1: block start = 0x3e8 block length = 0x8 Tuple #8, code = 0x1b (Configuration entry), length = 7 000: 04 08 aa 60 e8 02 07 Config index = 0x4 Card decodes 10 address lines, 8 Bit I/O only I/O address # 1: block start = 0x2e8 block length = 0x8 Tuple #9, code = 0x14 (No link), length = 0 Tuple #10, code = 0xff (Terminator), length = 0 2 slots found