This is a DiscontinuedProject. Currently, no effort is made for further work here.
General
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 BlueZ suite.
- 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.
I've seen these messages with the bluecard_cs and affix_uart_cs modules. 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_cs driver is the most sensible in my opinion - but there seem to be some settings that must be fiddled with. Help appreciated.
A hint from someone on the Internet helped a lot: The card must be set to BCSP. Now issuing a "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.
CIS dump
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
THIS DATA IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DATA, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
All product and brand names mentioned on there pages and in the source code are registered names and/or trademarks of the respective owner and are mentioned for identification purposes only.
For a full copyright notice, please see this link. For imprint and contact information, please see http://www.thiemo.net/.