Skip to contentSkip to conversation

Belkin F8T002 PC Card problem with Bluez

Bluez-users Alexandre Jousset@NL 3 participants 7 messages Aug 29, 2003 – Feb 5, 2004

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

Hi all,

I am trying for 3 days to configure this card on my laptop. I am
running Mandrake 9.2beta with a hand-compiled kernel 2.4.22.

First, to make my card recognized by the hardware, I have to enter
"cardctl insert". It does not do this automatically. Is this normal ? But when I remove the card it beeps and knows that the card is no more here. But this is not the most important problem... Here it is...

I succeeded to know what to do to have the card recognized by the
kernel (compile with CONFIG_SERIAL as a module) and now when I do the "cardctl insert"command, I have the new /dev/ttyS4 device that appears. OK. But then, when I try to hciattach it with "hciattach /dev/ttyS4 any flow", the CPU is loaded and in the /var/log/messages logfile is appended a lot of lines, all the same, saying "h4_recv: Unknown HCI packet type ef", with the last "ef" changed with "0f", "18", etc... each time a different hexadecimal number.

I patched the drivers/char/serial.c module source and the
include/linux/pci_ids.h to have the chip recognized by the serial module.

Output of lspci -vv is :
-------------------------------------------
[...]
02:00.0 Serial controller: Oxford Semiconductor Ltd OXCB950 Cardbus 16950 UART (prog-if 06 [16950])
Subsystem: Oxford Semiconductor Ltd: Unknown device 0001
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium

Quoted 1 line

TAbort- <TAbort- <MAbort- >SERR- <PERR-

        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at 4000 [size=8]
        Region 1: Memory at 20800000 (32-bit, non-prefetchable) [size=4K]
        Region 2: I/O ports at 4010 [size=16]
        Region 3: Memory at 20801000 (32-bit, non-prefetchable) [size=4K]
        Region 4: Memory at 20802000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [40] Power Management version 1
                Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA 

PME(D0+,D1-,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
-------------------------------------------

Output of setserial /dev/ttyS4 is :
-------------------------------------------
/dev/ttyS4, UART: 16950/954, Port: 0x4000, IRQ: 11
-------------------------------------------

This is my first try with bluetooth so if I made something wrong,
please tell me...

So, why is my log full of unknown HCI packets ? Thanks in advance.

Signature · 15 lines
   \^/   Cordialement/Regards,
 -/ O \----------------------------------------
| |/ \|       Alexandre (Midnite) Jousset      |
 -|___|----------------------------------------



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
#1 lore raw

Hi Alexandre,

Quoted 8 lines

I am trying for 3 days to configure this card on my laptop. I am
running Mandrake 9.2beta with a hand-compiled kernel 2.4.22.

First, to make my card recognized by the hardware, I have to enter
"cardctl insert". It does not do this automatically. Is this normal ? But when I remove the card it beeps and knows that the card is no more here. But this is not the most important problem... Here it is...

Quoted 8 lines

I succeeded to know what to do to have the card recognized by the
kernel (compile with CONFIG_SERIAL as a module) and now when I do the "cardctl insert"command, I have the new /dev/ttyS4 device that appears. OK. But then, when I try to hciattach it with "hciattach /dev/ttyS4 any flow", the CPU is loaded and in the /var/log/messages logfile is appended a lot of lines, all the same, saying "h4_recv: Unknown HCI packet type ef", with the last "ef" changed with "0f", "18", etc... each time a different hexadecimal number.

try "hciattach /dev/ttyS4 bcsp".

Quoted 2 lines

I patched the drivers/char/serial.c module source and the
include/linux/pci_ids.h to have the chip recognized by the serial module.

Send the patch (diff -urN) to the mailing list.

Regards

Marcel

-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#2 lore raw

Hi Marcel,

Quoted 1 line · Marcel Holtmann

try "hciattach /dev/ttyS4 bcsp".

I tried this and it says, after some seconds : "BCSP initialization
timed out".

Quoted 1 line

Send the patch (diff -urN) to the mailing list.

Sorry I forgot this. I found the patch on
"http://www.ussg.iu.edu/hypermail/linux/kernel/0203.0/0040.html".

and it is :

---------------------------------------

drivers/char/serial.c Fri Mar 1 09:43:42 2002 renamed from drivers/char/serial.c Fri Dec 21 18:41:54 2001 +3 -0
diff -ruN linux/drivers/char/serial.c linux-new/drivers/char/serial.c
@@ -4658,6 +4658,9 @@
        { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI952,
                PCI_ANY_ID, PCI_ANY_ID, 0, 0,
                pbn_b0_2_115200 },
+ { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_OXCB950,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_b0_bt_1_115200 },
 
        /* Digitan DS560-558, from [email protected] */
        { PCI_VENDOR_ID_ATT, PCI_DEVICE_ID_ATT_VENUS_MODEM,
include/linux/pci_ids.h Fri Mar 1 09:43:52 2002 renamed from include/linux/pci_ids.h Fri Dec 21 18:42:03 2001 +1 -1
diff -ruN linux/include/linux/pci_ids.h linux-new/include/linux/pci_ids.h
@@ -1458,6 +1458,7 @@
 #define PCI_DEVICE_ID_OXSEMI_12PCI840 0x8403
 #define PCI_DEVICE_ID_OXSEMI_16PCI954 0x9501
 #define PCI_DEVICE_ID_OXSEMI_16PCI952 0x950A
+#define PCI_DEVICE_ID_OXSEMI_OXCB950 0x950B
 #define PCI_DEVICE_ID_OXSEMI_16PCI95N 0x9511
 #define PCI_DEVICE_ID_OXSEMI_16PCI954PP 0x9513
---------------------------------------

I applied the patch by hand since I have kernel 2.4.22 and not 2.4.17
and after this I had the new ttyS4 device.

Signature · 4 lines
   \^/   Cordialement/Regards,
 -/ O \----------------------------------------
| |/ \|       Alexandre (Midnite) Jousset      |
 -|___|----------------------------------------
#3 lore raw

Hi all,

I tried with setserial to set ttyS4 to irq 3 (it gave me this value
once when doing setserial autoconfig) -> hang.

	I tried with setserial to set port to 0x4010 (as listed as second I/O

ports region with lspci), no error but hciconfig hci0 up fails with timeout.

	With the original setup (irq 11 and ports at 0x4000, as the serial

module set them and the config that put the lines h4_recv: Unknown HCI packet type xx), I wrote a small C program to read ttyS4 and print the numbers on stdout. I noticed some reccurrent value so I told the program to put a newline before each value 18. The output is :

-----------------------------------------------------------
18 20 e8 36 be f0
18 20 e8 36 be f8
18 20 e8 36 be f8
18 20 e8 36 ef 0f
18 24 e8 36 ef f0
18 24 e8 36 ef f0
18 20 e8 9b be f8
18 20 e8 36 ef 0f ff
18 20 e8 36 ef 0f ff
18 20 e8 9b be f8
18 24 e8 36 ef f0
18 20 e8 36 ef 0f
18 24 e8 36 ef d0
18 20 e8 36 ef d0
18 20 e8 9b be f8
18 20 e8 9b be f8
18 20 e8 9b be f8
18 20 e8 36 ef 0f
18 20 e8 36 ef 0f
18 20 e8 36 ef 0f
18 20 e8 9b be f8
18 20 e8 36 ef 0f ff
18 20 e8 9b be f8
18 20 e8 36 ef 41
18 20 e8 36 ef 0f
18 20 e8 36 ef 0f
-----------------------------------------------------------

So that must mean something but I don't know what. The first octet is
always 18, the second is either 20 or 24, the third always e8, the fourth either 36 or 9b, the fifth either be or ef, the sixth either 0f or d0 or f8 and when it is 0f it is sometimes followed by ff...

Any clue ?

Thanx !

Signature · 16 lines
   \^/   Cordialement/Regards,
 -/ O \----------------------------------------
| |/ \|       Alexandre (Midnite) Jousset      |
 -|___|----------------------------------------




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users
#4 lore raw

Hi Alexandre,

Quoted 41 lines

I tried with setserial to set ttyS4 to irq 3 (it gave me this value
once when doing setserial autoconfig) -> hang.

	I tried with setserial to set port to 0x4010 (as listed as second I/O

ports region with lspci), no error but hciconfig hci0 up fails with timeout.

	With the original setup (irq 11 and ports at 0x4000, as the serial

module set them and the config that put the lines h4_recv: Unknown HCI packet type xx), I wrote a small C program to read ttyS4 and print the numbers on stdout. I noticed some reccurrent value so I told the program to put a newline before each value 18. The output is :

-----------------------------------------------------------
18 20 e8 36 be f0
18 20 e8 36 be f8
18 20 e8 36 be f8
18 20 e8 36 ef 0f
18 24 e8 36 ef f0
18 24 e8 36 ef f0
18 20 e8 9b be f8
18 20 e8 36 ef 0f ff
18 20 e8 36 ef 0f ff
18 20 e8 9b be f8
18 24 e8 36 ef f0
18 20 e8 36 ef 0f
18 24 e8 36 ef d0
18 20 e8 36 ef d0
18 20 e8 9b be f8
18 20 e8 9b be f8
18 20 e8 9b be f8
18 20 e8 36 ef 0f
18 20 e8 36 ef 0f
18 20 e8 36 ef 0f
18 20 e8 9b be f8
18 20 e8 36 ef 0f ff
18 20 e8 9b be f8
18 20 e8 36 ef 41
18 20 e8 36 ef 0f
18 20 e8 36 ef 0f
-----------------------------------------------------------

Quoted 4 lines

So that must mean something but I don't know what. The first octet is
always 18, the second is either 20 or 24, the third always e8, the fourth either 36 or 9b, the fifth either be or ef, the sixth either 0f or d0 or f8 and when it is 0f it is sometimes followed by ff...

I think this is the BCSP protocol, but with wrong terminal settings or a wrong baud rate. Try to attach your device with BCSP and different baud rate settings and replug it every time to have a clean state.

Regards

Marcel

-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#5 lore raw

(I am picking up a thread about this card from back in September.)

To recap, with Belkin F8T002 card plugged into a Presario 908EA laptop running a modified current-RH9 kernel [added a few lines as Alexandre Jousset suggested earlier in this thread]. Then with...

   # /etc/rc.d/init.d/pcmcia restart 
   Shutting down PCMCIA services: cardmgr modules. 
   Starting PCMCIA services: cardmgr. 

In the syslog for that, you see...

    kernel: unloading Kernel Card Services 
    kernel: Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0 
    kernel: sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray 
    kernel: Uniform CD-ROM driver Revision: 3.12 
    kernel: Linux Kernel Card Services 3.1.22 
    kernel:   options:  [pci] [cardbus] [pm] 
    kernel: PCI: Assigned IRQ 10 for device 00:0a.0 
    kernel: Yenta IRQ list 02b8, PCI irq10 
    kernel: Socket status: 30000020 
    kernel: cs: cb_alloc(bus 2): vendor 0x1415, device 0x950b 
    kernel: PCI: Enabling device 02:00.0 (0000 -> 0003) 
    kernel: ttyS4 at port 0x4000 (irq = 10) is a 16C950/954 
    cardmgr[1508]: starting, version is 3.1.31 
    cardmgr[1508]: watching 1 sockets 
    cardmgr[1508]: Card Services release does not match 
    kernel: cs: IO port probe 0x0c00-0x0cff: clean. 
    kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x200-0x207 0x378-0x3\
    x4d0-0x4d7 
    kernel: cs: IO port probe 0x0a00-0x0aff: clean. 
    cardmgr[1508]: socket 0: CardBus hotplug device 
    /sbin/hotplug: arguments (pci) env (PCI_SLOT_NAME=02:00.0 PCI_ID=1415:95\
    /usr/sbin:/usr/bin ACTION=add PWD=/etc/hotplug PCI_SUBSYS_ID=1415:0001 S
    CLASS=70006 _=/bin/env) 
    /sbin/hotplug: invoke /etc/hotplug/pci.agent () 
    /etc/hotplug/pci.agent: ... no modules for PCI slot 02:00.0 

Anyway, it's there:

    # cardctl ident 
    Socket 0: 
      product info: "OXSEMI", "OXCB950", "Rev A" 
      manfid: 0x0279, 0x0001 
      function: 2 (serial) 

An 'hciattach' then "works", where "works" is defined to mean "something happened". The simplest form (hciattach /dev/ttyS4 any) spews nonsense, as was seen earlier in this thread.

The glorious Marcel suggested 'hciattach /dev/ttyS4 bcsp' (which simply replies: "BCSP initialization timed out"). He further suggested fiddling with baud rates and the like; neither Alexandre not I have had any luck with that (it still just times out).

So: Has anyone made further progress on this device and/or has any suggestions? (I am serially incompetent and short of time, but I'll try to help if I can.) Thanks and regards to all,

Will

-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#6 lore raw

Hello,

Quoted 1 line · Will Partain

(I am picking up a thread about this card from back in September.)

[text deleted...]

Quoted 10 lines

The glorious Marcel suggested 'hciattach /dev/ttyS4 bcsp' (which simply replies: "BCSP initialization timed out"). He further suggested fiddling with baud rates and the like; neither Alexandre not I have had any luck with that (it still just times out).

So: Has anyone made further progress on this device and/or has any suggestions? (I am serially incompetent and short of time, but I'll try to help if I can.) Thanks and regards to all,

I did not try again but I can tell that, according to my experience and
what Marcel told me, the problem seems to reside on an incorrect setting in the serial communication. So it seems to be bcsp but with other settings. If we knew what sequence of bytes the bcsp protocol sends it would be possible to check in the log, when attaching without bcsp but with an other setting that 'any', to see which is good. Hm this is not very clear but people with knowledge of this can understand ;-) In fact, if it were possible to set the parity settings and other settings in command line it could be simpler to try which combination is the good one...

For the moment I can not do this because the serial module in my kernel
(the one in Mandrake 9.2) does not recognize the card. When I tested it was with a specially compiled kernel with serial.c as a module and I was obliged to rmmod the module to insmod it after. The problem is that I am unable to get all modules necessary to recompile the Mandrake kernel (it tells me things like supermount not loaded and I don't find this module)... Anyway...

	My 2p.

Alexandre Jousset.

-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users