2007-05-08 07:15:51

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Hi Geoff,

> It was found that the PS3 host controller needed this. I'm not at all
> familiar with the bluetooth stack. Could anyone suggest a better way?

the quirk is wrong. Please give me some information about the actual
used Bluetooth hardware. I need /proc/bus/usb/devices and once it is
working the output of hciconfig -a.

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel


2007-05-09 21:54:27

by Geoff Levand

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Marcel Holtmann wrote:
> Hi Geoff,
>
>> >>> [root@ps3 ~]# hciconfig hci0 revision
>> >>> hci0: Type: USB
>> >>> BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
>> >>> Build 3608
>> >>> Chip version: Unknown
>> >>> Max key size: 128 bit
>> >>> SCO mapping: HCI
>> >
>> > hci0: Type: USB
>> > BD Address: 00:13:A9:73:1F:0D ACL MTU: 384:8 SCO MTU: 64:8
>> > Build 3608
>> > Chip version: Unknown (4h)
>> > Max key size: 128 bit
>> > SCO mapping: HCI
>> >
>> >>
>> >> the chip version is unknown. That is strange. I need to modify bccmd to
>> >> read the raw value of the chip version. Can you quickly poke around the
>> >> hciconfig code to get me the raw value of it.
>> >>
>> >>> [root@ps3 ~]# bccmd builddef
>> >>> Build definitions:
>> >>> 0x0009 - TRANSPORT_BCSP
>> >>> 0x000a - TRANSPORT_H4
>> >>> 0x000b - TRANSPORT_USB
>> >>> 0x000d - MAX_CRYPT_KEY_LEN_128
>> >>> 0x0012 - REQUIRE_8MBIT
>> >>> 0x0013 - RADIOTEST
>> >>> 0x0015 - INSTALL_FLASH
>> >>> 0x0016 - INSTALL_EEPROM
>> >>> 0x0017 - INSTALL_COMBO_DOT11
>> >>> 0x001d - CHIP_BASE_BC3
>> >>> 0x0020 - INSTALL_HCI_MODULE
>> >>> 0x002a - BT_VER_1_2
>> >>> 0x0031 - CHIP_BASE_BC4
>> >>> [root@ps3 ~]# bccmd buildname
>> >>> Build name: sly_8hci_fl_bt2.0_tachikoma-rc29_encr128_tachikoma
>> >>> 2006-10-16
>> >>
>> >> This looks like a specific firmware build. Need to investigate what is
>> >> so special about it.
>> >>
>> >> Can you dfutool archive it for me.
>> >
>> > The device seems to disconnect when you try to read
>> > the firmware. I get this when I try:
>> >
>> > [root@ps3-nfs ~]# dfutool archive ps3.dfu
>> > Available devices with DFU support:
>> >
>> > 1) Bus 002 Device 003: ID 054c:0267 Interface 3
>> >
>> > Select device (abort with 0): 1
>> >
>> > Can't identify device with DFU mode
>> >
>> > And see this in the log:
>> >
>> > May 8 15:50:07 ps3-nfs kernel: usb 2-2: reset high speed USB device using ps3-ehci-driver and address 3
>> > May 8 15:50:07 ps3-nfs kernel: usb 2-2: USB disconnect, address 3
>> > May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 down
>> > May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been disabled
>> > May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 unregistered
>> > May 8 15:50:07 ps3-nfs hcid[2286]: Unregister path: /org/bluez/hci0
>> > May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been removed
>> >
>> > Any suggestions?
>>
>> There seems to be some trouble in dfutool... Others tried it with
>> the same results. I'll look at it some more tomorrow.
>
> alternatively you can try dfu-util from the openmoko.org project. I
> never did, but it should work just quite fine.

I see this at their site:

WARNING: Dfu-util is currently broken on big-endian architectures

and this

NOTE: Upload support is currently broken

Any other ideas?

2007-05-09 07:02:16

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Hi Geoff,

> >>> [root@ps3 ~]# hciconfig hci0 revision
> >>> hci0: Type: USB
> >>> BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
> >>> Build 3608
> >>> Chip version: Unknown
> >>> Max key size: 128 bit
> >>> SCO mapping: HCI
> >
> > hci0: Type: USB
> > BD Address: 00:13:A9:73:1F:0D ACL MTU: 384:8 SCO MTU: 64:8
> > Build 3608
> > Chip version: Unknown (4h)
> > Max key size: 128 bit
> > SCO mapping: HCI
> >
> >>
> >> the chip version is unknown. That is strange. I need to modify bccmd to
> >> read the raw value of the chip version. Can you quickly poke around the
> >> hciconfig code to get me the raw value of it.
> >>
> >>> [root@ps3 ~]# bccmd builddef
> >>> Build definitions:
> >>> 0x0009 - TRANSPORT_BCSP
> >>> 0x000a - TRANSPORT_H4
> >>> 0x000b - TRANSPORT_USB
> >>> 0x000d - MAX_CRYPT_KEY_LEN_128
> >>> 0x0012 - REQUIRE_8MBIT
> >>> 0x0013 - RADIOTEST
> >>> 0x0015 - INSTALL_FLASH
> >>> 0x0016 - INSTALL_EEPROM
> >>> 0x0017 - INSTALL_COMBO_DOT11
> >>> 0x001d - CHIP_BASE_BC3
> >>> 0x0020 - INSTALL_HCI_MODULE
> >>> 0x002a - BT_VER_1_2
> >>> 0x0031 - CHIP_BASE_BC4
> >>> [root@ps3 ~]# bccmd buildname
> >>> Build name: sly_8hci_fl_bt2.0_tachikoma-rc29_encr128_tachikoma
> >>> 2006-10-16
> >>
> >> This looks like a specific firmware build. Need to investigate what is
> >> so special about it.
> >>
> >> Can you dfutool archive it for me.
> >
> > The device seems to disconnect when you try to read
> > the firmware. I get this when I try:
> >
> > [root@ps3-nfs ~]# dfutool archive ps3.dfu
> > Available devices with DFU support:
> >
> > 1) Bus 002 Device 003: ID 054c:0267 Interface 3
> >
> > Select device (abort with 0): 1
> >
> > Can't identify device with DFU mode
> >
> > And see this in the log:
> >
> > May 8 15:50:07 ps3-nfs kernel: usb 2-2: reset high speed USB device using ps3-ehci-driver and address 3
> > May 8 15:50:07 ps3-nfs kernel: usb 2-2: USB disconnect, address 3
> > May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 down
> > May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been disabled
> > May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 unregistered
> > May 8 15:50:07 ps3-nfs hcid[2286]: Unregister path: /org/bluez/hci0
> > May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been removed
> >
> > Any suggestions?
>
> There seems to be some trouble in dfutool... Others tried it with
> the same results. I'll look at it some more tomorrow.

alternatively you can try dfu-util from the openmoko.org project. I
never did, but it should work just quite fine.

> *** glibc detected *** dfutool: double free or corruption (fasttop):
> 0x08016080
> ***
> ======= Backtrace: =========
> /lib/libc.so.6[0x7ed0394]
> /lib/libc.so.6(cfree+0xc8)[0x7ed05e8]
> /usr/lib/libusb-0.1.so.4(usb_close+0x3c)[0x7fd87ec]
> dfutool[0x8002840]
> dfutool[0x8002ba4]
> dfutool[0x8003640]
> /lib/libc.so.6[0x7e6fd4c]
> /lib/libc.so.6(__libc_start_main+0x144)[0x7e6ff74]
> ======= Memory map: ========
> 00100000-00103000 r-xp 00100000 00:00 0
> 07e52000-07fb1000 r-xp 00000000 2a:02 693780 /lib/libc-2.5.so
> 07fb1000-07fbe000 ---p 0015f000 2a:02 693780 /lib/libc-2.5.so
> 07fbe000-07fc2000 r--p 0016c000 2a:02 693780 /lib/libc-2.5.so
> 07fc2000-07fc3000 rw-p 00170000 2a:02 693780 /lib/libc-2.5.so
> 07fc3000-07fc6000 rw-p 07fc3000 00:00 0
> 07fd6000-07fde000 r-xp 00000000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
> 07fde000-07fee000 ---p 00008000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
> 07fee000-07ff0000 rw-p 00008000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
> 08000000-08006000 r-xp 00000000 2a:02 281135 /usr/bin/dfutool
> 08015000-08016000 rw-p 00005000 2a:02 281135 /usr/bin/dfutool
> 08016000-08037000 rwxp 08016000 00:00 0 [heap]
> 0ffc0000-0ffde000 r-xp 00000000 2a:02 693779 /lib/ld-2.5.so
> 0ffef000-0fff0000 r--p 0001f000 2a:02 693779 /lib/ld-2.5.so
> 0fff0000-0fff1000 rw-p 00020000 2a:02 693779 /lib/ld-2.5.so
> f7fce000-f7fcf000 rw-p f7fce000 00:00 0
> f7ffc000-f7fff000 rw-p f7ffc000 00:00 0
> ffc89000-ffc9e000 rw-p ffc89000 00:00 0 [stack]
> Aborted

I have seen this one before. I think it is a libusb bug.

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-09 02:34:06

by Geoff Levand

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Geoff Levand wrote:
> Marcel Holtmann wrote:
>> Hi David,
>>
>>> [root@ps3 ~]# hciconfig hci0 revision
>>> hci0: Type: USB
>>> BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
>>> Build 3608
>>> Chip version: Unknown
>>> Max key size: 128 bit
>>> SCO mapping: HCI
>
> hci0: Type: USB
> BD Address: 00:13:A9:73:1F:0D ACL MTU: 384:8 SCO MTU: 64:8
> Build 3608
> Chip version: Unknown (4h)
> Max key size: 128 bit
> SCO mapping: HCI
>
>>
>> the chip version is unknown. That is strange. I need to modify bccmd to
>> read the raw value of the chip version. Can you quickly poke around the
>> hciconfig code to get me the raw value of it.
>>
>>> [root@ps3 ~]# bccmd builddef
>>> Build definitions:
>>> 0x0009 - TRANSPORT_BCSP
>>> 0x000a - TRANSPORT_H4
>>> 0x000b - TRANSPORT_USB
>>> 0x000d - MAX_CRYPT_KEY_LEN_128
>>> 0x0012 - REQUIRE_8MBIT
>>> 0x0013 - RADIOTEST
>>> 0x0015 - INSTALL_FLASH
>>> 0x0016 - INSTALL_EEPROM
>>> 0x0017 - INSTALL_COMBO_DOT11
>>> 0x001d - CHIP_BASE_BC3
>>> 0x0020 - INSTALL_HCI_MODULE
>>> 0x002a - BT_VER_1_2
>>> 0x0031 - CHIP_BASE_BC4
>>> [root@ps3 ~]# bccmd buildname
>>> Build name: sly_8hci_fl_bt2.0_tachikoma-rc29_encr128_tachikoma
>>> 2006-10-16
>>
>> This looks like a specific firmware build. Need to investigate what is
>> so special about it.
>>
>> Can you dfutool archive it for me.
>
> The device seems to disconnect when you try to read
> the firmware. I get this when I try:
>
> [root@ps3-nfs ~]# dfutool archive ps3.dfu
> Available devices with DFU support:
>
> 1) Bus 002 Device 003: ID 054c:0267 Interface 3
>
> Select device (abort with 0): 1
>
> Can't identify device with DFU mode
>
> And see this in the log:
>
> May 8 15:50:07 ps3-nfs kernel: usb 2-2: reset high speed USB device using ps3-ehci-driver and address 3
> May 8 15:50:07 ps3-nfs kernel: usb 2-2: USB disconnect, address 3
> May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 down
> May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been disabled
> May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 unregistered
> May 8 15:50:07 ps3-nfs hcid[2286]: Unregister path: /org/bluez/hci0
> May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been removed
>
> Any suggestions?

There seems to be some trouble in dfutool... Others tried it with
the same results. I'll look at it some more tomorrow.

-Geoff


*** glibc detected *** dfutool: double free or corruption (fasttop):
0x08016080
***
======= Backtrace: =========
/lib/libc.so.6[0x7ed0394]
/lib/libc.so.6(cfree+0xc8)[0x7ed05e8]
/usr/lib/libusb-0.1.so.4(usb_close+0x3c)[0x7fd87ec]
dfutool[0x8002840]
dfutool[0x8002ba4]
dfutool[0x8003640]
/lib/libc.so.6[0x7e6fd4c]
/lib/libc.so.6(__libc_start_main+0x144)[0x7e6ff74]
======= Memory map: ========
00100000-00103000 r-xp 00100000 00:00 0
07e52000-07fb1000 r-xp 00000000 2a:02 693780 /lib/libc-2.5.so
07fb1000-07fbe000 ---p 0015f000 2a:02 693780 /lib/libc-2.5.so
07fbe000-07fc2000 r--p 0016c000 2a:02 693780 /lib/libc-2.5.so
07fc2000-07fc3000 rw-p 00170000 2a:02 693780 /lib/libc-2.5.so
07fc3000-07fc6000 rw-p 07fc3000 00:00 0
07fd6000-07fde000 r-xp 00000000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
07fde000-07fee000 ---p 00008000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
07fee000-07ff0000 rw-p 00008000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
08000000-08006000 r-xp 00000000 2a:02 281135 /usr/bin/dfutool
08015000-08016000 rw-p 00005000 2a:02 281135 /usr/bin/dfutool
08016000-08037000 rwxp 08016000 00:00 0 [heap]
0ffc0000-0ffde000 r-xp 00000000 2a:02 693779 /lib/ld-2.5.so
0ffef000-0fff0000 r--p 0001f000 2a:02 693779 /lib/ld-2.5.so
0fff0000-0fff1000 rw-p 00020000 2a:02 693779 /lib/ld-2.5.so
f7fce000-f7fcf000 rw-p f7fce000 00:00 0
f7ffc000-f7fff000 rw-p f7ffc000 00:00 0
ffc89000-ffc9e000 rw-p ffc89000 00:00 0 [stack]
Aborted

2007-05-08 22:53:23

by Geoff Levand

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Marcel Holtmann wrote:
> Hi David,
>
>> [root@ps3 ~]# hciconfig hci0 revision
>> hci0: Type: USB
>> BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
>> Build 3608
>> Chip version: Unknown
>> Max key size: 128 bit
>> SCO mapping: HCI

hci0: Type: USB
BD Address: 00:13:A9:73:1F:0D ACL MTU: 384:8 SCO MTU: 64:8
Build 3608
Chip version: Unknown (4h)
Max key size: 128 bit
SCO mapping: HCI

>
> the chip version is unknown. That is strange. I need to modify bccmd to
> read the raw value of the chip version. Can you quickly poke around the
> hciconfig code to get me the raw value of it.
>
>> [root@ps3 ~]# bccmd builddef
>> Build definitions:
>> 0x0009 - TRANSPORT_BCSP
>> 0x000a - TRANSPORT_H4
>> 0x000b - TRANSPORT_USB
>> 0x000d - MAX_CRYPT_KEY_LEN_128
>> 0x0012 - REQUIRE_8MBIT
>> 0x0013 - RADIOTEST
>> 0x0015 - INSTALL_FLASH
>> 0x0016 - INSTALL_EEPROM
>> 0x0017 - INSTALL_COMBO_DOT11
>> 0x001d - CHIP_BASE_BC3
>> 0x0020 - INSTALL_HCI_MODULE
>> 0x002a - BT_VER_1_2
>> 0x0031 - CHIP_BASE_BC4
>> [root@ps3 ~]# bccmd buildname
>> Build name: sly_8hci_fl_bt2.0_tachikoma-rc29_encr128_tachikoma
>> 2006-10-16
>
> This looks like a specific firmware build. Need to investigate what is
> so special about it.
>
> Can you dfutool archive it for me.

The device seems to disconnect when you try to read
the firmware. I get this when I try:

[root@ps3-nfs ~]# dfutool archive ps3.dfu
Available devices with DFU support:

1) Bus 002 Device 003: ID 054c:0267 Interface 3

Select device (abort with 0): 1

Can't identify device with DFU mode

And see this in the log:

May 8 15:50:07 ps3-nfs kernel: usb 2-2: reset high speed USB device using ps3-ehci-driver and address 3
May 8 15:50:07 ps3-nfs kernel: usb 2-2: USB disconnect, address 3
May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 down
May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been disabled
May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 unregistered
May 8 15:50:07 ps3-nfs hcid[2286]: Unregister path: /org/bluez/hci0
May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been removed

Any suggestions?

-Geoff

2007-05-08 16:43:21

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Hi David,

> [root@ps3 ~]# hciconfig hci0 revision
> hci0: Type: USB
> BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
> Build 3608
> Chip version: Unknown
> Max key size: 128 bit
> SCO mapping: HCI

the chip version is unknown. That is strange. I need to modify bccmd to
read the raw value of the chip version. Can you quickly poke around the
hciconfig code to get me the raw value of it.

> [root@ps3 ~]# bccmd builddef
> Build definitions:
> 0x0009 - TRANSPORT_BCSP
> 0x000a - TRANSPORT_H4
> 0x000b - TRANSPORT_USB
> 0x000d - MAX_CRYPT_KEY_LEN_128
> 0x0012 - REQUIRE_8MBIT
> 0x0013 - RADIOTEST
> 0x0015 - INSTALL_FLASH
> 0x0016 - INSTALL_EEPROM
> 0x0017 - INSTALL_COMBO_DOT11
> 0x001d - CHIP_BASE_BC3
> 0x0020 - INSTALL_HCI_MODULE
> 0x002a - BT_VER_1_2
> 0x0031 - CHIP_BASE_BC4
> [root@ps3 ~]# bccmd buildname
> Build name: sly_8hci_fl_bt2.0_tachikoma-rc29_encr128_tachikoma
> 2006-10-16

This looks like a specific firmware build. Need to investigate what is
so special about it.

Can you dfutool archive it for me.

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-08 15:47:24

by David Woodhouse

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

On Tue, 2007-05-08 at 15:19 +0200, Marcel Holtmann wrote:
> since it is a CSR device, please also do "hciconfig hci0 revision" as
> root and "bccmd buildname" plus "bccmd builddef".

Sorry for delayed response. Reply-To: considered harmful.

[root@ps3 ~]# hciconfig hci0 revision
hci0: Type: USB
BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
Build 3608
Chip version: Unknown
Max key size: 128 bit
SCO mapping: HCI
[root@ps3 ~]# bccmd builddef
Build definitions:
0x0009 - TRANSPORT_BCSP
0x000a - TRANSPORT_H4
0x000b - TRANSPORT_USB
0x000d - MAX_CRYPT_KEY_LEN_128
0x0012 - REQUIRE_8MBIT
0x0013 - RADIOTEST
0x0015 - INSTALL_FLASH
0x0016 - INSTALL_EEPROM
0x0017 - INSTALL_COMBO_DOT11
0x001d - CHIP_BASE_BC3
0x0020 - INSTALL_HCI_MODULE
0x002a - BT_VER_1_2
0x0031 - CHIP_BASE_BC4
[root@ps3 ~]# bccmd buildname
Build name: sly_8hci_fl_bt2.0_tachikoma-rc29_encr128_tachikoma
2006-10-16

--
dwmw2


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-08 13:19:18

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Hi David,

> hci0: Type: USB
> BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
> UP RUNNING PSCAN
> RX bytes:408 acl:0 sco:0 events:17 errors:0
> TX bytes:317 acl:0 sco:0 commands:17 errors:0
> Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
> Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
> Link policy: RSWITCH HOLD SNIFF PARK
> Link mode: SLAVE ACCEPT
> Name: 'ps3.infradead.org-0'
> Class: 0x120104
> Service Classes: Networking, Object Transfer
> Device Class: Computer, Desktop workstation
> HCI Ver: 2.0 (0x3) HCI Rev: 0xe18 LMP Ver: 2.0 (0x3) LMP Subver: 0xe18
> Manufacturer: Cambridge Silicon Radio (10)

since it is a CSR device, please also do "hciconfig hci0 revision" as
root and "bccmd buildname" plus "bccmd builddef".

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-08 11:06:31

by David Woodhouse

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

On Tue, 2007-05-08 at 09:15 +0200, Marcel Holtmann wrote:
> the quirk is wrong. Please give me some information about the actual
> used Bluetooth hardware. I need /proc/bus/usb/devices and once it is
> working the output of hciconfig -a.

T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=054c ProdID=0267 Rev= 1.00
S: Manufacturer=Sony
S: Product=Bluetooth Transceiver
C:* #Ifs= 4 Cfg#= 1 Atr=c0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=125us
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=03(O) Atr=01(Isoc) MxPS= 11 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 11 Ivl=1ms
I:* If#= 1 Alt= 2 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=03(O) Atr=01(Isoc) MxPS= 19 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 19 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=03(O) Atr=01(Isoc) MxPS= 27 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 27 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=03(O) Atr=01(Isoc) MxPS= 35 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 35 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=03(O) Atr=01(Isoc) MxPS= 51 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 51 Ivl=1ms
I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=hci_usb
E: Ad=03(O) Atr=01(Isoc) MxPS= 64 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 64 Ivl=1ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=(none)
E: Ad=04(O) Atr=03(Int.) MxPS= 64 Ivl=125us
E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=125us
I: If#= 2 Alt= 1 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=(none)
E: Ad=04(O) Atr=03(Int.) MxPS= 128 Ivl=125us
E: Ad=85(I) Atr=03(Int.) MxPS= 128 Ivl=125us
I: If#= 2 Alt= 2 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=(none)
E: Ad=04(O) Atr=03(Int.) MxPS= 256 Ivl=125us
E: Ad=85(I) Atr=03(Int.) MxPS= 256 Ivl=125us
I: If#= 2 Alt= 3 #EPs= 2 Cls=e0(unk. ) Sub=01 Prot=01 Driver=(none)
E: Ad=04(O) Atr=03(Int.) MxPS=1024 Ivl=125us
E: Ad=85(I) Atr=03(Int.) MxPS=1024 Ivl=125us
I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none)


hci0: Type: USB
BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:408 acl:0 sco:0 events:17 errors:0
TX bytes:317 acl:0 sco:0 commands:17 errors:0
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'ps3.infradead.org-0'
Class: 0x120104
Service Classes: Networking, Object Transfer
Device Class: Computer, Desktop workstation
HCI Ver: 2.0 (0x3) HCI Rev: 0xe18 LMP Ver: 2.0 (0x3) LMP Subver: 0xe18
Manufacturer: Cambridge Silicon Radio (10)


--
dwmw2


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-12-17 19:08:37

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Hi Geoff,

> I got the following back from our Kimoto-san, so it seems to work
> properly with your update:
>
> I tried Bluetooth on linux 2.6.24-rc4.
> BT HID also works after boot without patch.
> I checked mouse and keyboard of Microsoft and they work well without the patch.

this is what I expected. I was a really stupid mistake, but
unfortunately buried really deep since the first releases.

> I'll do some more testing this coming week also.

Please do.

Regards

Marcel



-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-12-17 06:23:06

by Geoff Levand

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

On 12/15/2007 05:24 PM, Marcel Holtmann wrote:
> Hi Geoff,
>
>> OK, so users are screaming for bluetooth support. Can we get this
>> resolved?
>>
>> Here is the patch again.
>>
>> -Geoff
>>
>> ----------------------------------------------------------------------
>> Subject: PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL
>>
>> It seems the PS3 built-in bluetooth host controler doesn't support the
>> HCI_FLT_CLEAR_ALL command properly. Add a check to conditionally use
>> the HCI_FLT_CONN_SETUP command to clear the event filter on PS3.
>
> actually can you just test with a 2.6.23 or later kernel. I fixed the
> OCF_SET_EVENT_FLT since it was broken since the beginning. In case you
> give HCI_FTL_CLEAR_ALL you are not allowed to give any additional
> parameters. Otherwise the command fails. So with this command now
> succeeding, it might be enough to get Bluetooth working.

Hi Marcel,

I got the following back from our Kimoto-san, so it seems to work
properly with your update:

I tried Bluetooth on linux 2.6.24-rc4.
BT HID also works after boot without patch.
I checked mouse and keyboard of Microsoft and they work well without the patch.

I'll do some more testing this coming week also.

Thanks.

-Geoff

2007-12-16 01:24:54

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

Hi Geoff,

> OK, so users are screaming for bluetooth support. Can we get this
> resolved?
>
> Here is the patch again.
>
> -Geoff
>
> ----------------------------------------------------------------------
> Subject: PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL
>
> It seems the PS3 built-in bluetooth host controler doesn't support the
> HCI_FLT_CLEAR_ALL command properly. Add a check to conditionally use
> the HCI_FLT_CONN_SETUP command to clear the event filter on PS3.

actually can you just test with a 2.6.23 or later kernel. I fixed the
OCF_SET_EVENT_FLT since it was broken since the beginning. In case you
give HCI_FTL_CLEAR_ALL you are not allowed to give any additional
parameters. Otherwise the command fails. So with this command now
succeeding, it might be enough to get Bluetooth working.

Regards

Marcel



-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-12-16 00:19:16

by Geoff Levand

[permalink] [raw]
Subject: Re: [Bluez-devel] [RFC] PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

On 05/09/2007 12:02 AM, Marcel Holtmann wrote:
> Hi Geoff,
>
>> >>> [root@ps3 ~]# hciconfig hci0 revision
>> >>> hci0: Type: USB
>> >>> BD Address: 00:13:A9:79:09:C3 ACL MTU: 384:8 SCO MTU: 64:8
>> >>> Build 3608
>> >>> Chip version: Unknown
>> >>> Max key size: 128 bit
>> >>> SCO mapping: HCI
>> >
>> > hci0: Type: USB
>> > BD Address: 00:13:A9:73:1F:0D ACL MTU: 384:8 SCO MTU: 64:8
>> > Build 3608
>> > Chip version: Unknown (4h)
>> > Max key size: 128 bit
>> > SCO mapping: HCI
>> >
>> >>
>> >> the chip version is unknown. That is strange. I need to modify bccmd to
>> >> read the raw value of the chip version. Can you quickly poke around the
>> >> hciconfig code to get me the raw value of it.
>> >>
>> >>> [root@ps3 ~]# bccmd builddef
>> >>> Build definitions:
>> >>> 0x0009 - TRANSPORT_BCSP
>> >>> 0x000a - TRANSPORT_H4
>> >>> 0x000b - TRANSPORT_USB
>> >>> 0x000d - MAX_CRYPT_KEY_LEN_128
>> >>> 0x0012 - REQUIRE_8MBIT
>> >>> 0x0013 - RADIOTEST
>> >>> 0x0015 - INSTALL_FLASH
>> >>> 0x0016 - INSTALL_EEPROM
>> >>> 0x0017 - INSTALL_COMBO_DOT11
>> >>> 0x001d - CHIP_BASE_BC3
>> >>> 0x0020 - INSTALL_HCI_MODULE
>> >>> 0x002a - BT_VER_1_2
>> >>> 0x0031 - CHIP_BASE_BC4
>> >>> [root@ps3 ~]# bccmd buildname
>> >>> Build name: sly_8hci_fl_bt2.0_tachikoma-rc29_encr128_tachikoma
>> >>> 2006-10-16
>> >>
>> >> This looks like a specific firmware build. Need to investigate what is
>> >> so special about it.
>> >>
>> >> Can you dfutool archive it for me.
>> >
>> > The device seems to disconnect when you try to read
>> > the firmware. I get this when I try:
>> >
>> > [root@ps3-nfs ~]# dfutool archive ps3.dfu
>> > Available devices with DFU support:
>> >
>> > 1) Bus 002 Device 003: ID 054c:0267 Interface 3
>> >
>> > Select device (abort with 0): 1
>> >
>> > Can't identify device with DFU mode
>> >
>> > And see this in the log:
>> >
>> > May 8 15:50:07 ps3-nfs kernel: usb 2-2: reset high speed USB device using ps3-ehci-driver and address 3
>> > May 8 15:50:07 ps3-nfs kernel: usb 2-2: USB disconnect, address 3
>> > May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 down
>> > May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been disabled
>> > May 8 15:50:07 ps3-nfs hcid[2286]: HCI dev 0 unregistered
>> > May 8 15:50:07 ps3-nfs hcid[2286]: Unregister path: /org/bluez/hci0
>> > May 8 15:50:07 ps3-nfs hcid[2286]: Device hci0 has been removed
>> >
>> > Any suggestions?
>>
>> There seems to be some trouble in dfutool... Others tried it with
>> the same results. I'll look at it some more tomorrow.
>
> alternatively you can try dfu-util from the openmoko.org project. I
> never did, but it should work just quite fine.
>
>> *** glibc detected *** dfutool: double free or corruption (fasttop):
>> 0x08016080
>> ***
>> ======= Backtrace: =========
>> /lib/libc.so.6[0x7ed0394]
>> /lib/libc.so.6(cfree+0xc8)[0x7ed05e8]
>> /usr/lib/libusb-0.1.so.4(usb_close+0x3c)[0x7fd87ec]
>> dfutool[0x8002840]
>> dfutool[0x8002ba4]
>> dfutool[0x8003640]
>> /lib/libc.so.6[0x7e6fd4c]
>> /lib/libc.so.6(__libc_start_main+0x144)[0x7e6ff74]
>> ======= Memory map: ========
>> 00100000-00103000 r-xp 00100000 00:00 0
>> 07e52000-07fb1000 r-xp 00000000 2a:02 693780 /lib/libc-2.5.so
>> 07fb1000-07fbe000 ---p 0015f000 2a:02 693780 /lib/libc-2.5.so
>> 07fbe000-07fc2000 r--p 0016c000 2a:02 693780 /lib/libc-2.5.so
>> 07fc2000-07fc3000 rw-p 00170000 2a:02 693780 /lib/libc-2.5.so
>> 07fc3000-07fc6000 rw-p 07fc3000 00:00 0
>> 07fd6000-07fde000 r-xp 00000000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
>> 07fde000-07fee000 ---p 00008000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
>> 07fee000-07ff0000 rw-p 00008000 2a:02 1021105 /usr/lib/libusb-0.1.so.4.4.4
>> 08000000-08006000 r-xp 00000000 2a:02 281135 /usr/bin/dfutool
>> 08015000-08016000 rw-p 00005000 2a:02 281135 /usr/bin/dfutool
>> 08016000-08037000 rwxp 08016000 00:00 0 [heap]
>> 0ffc0000-0ffde000 r-xp 00000000 2a:02 693779 /lib/ld-2.5.so
>> 0ffef000-0fff0000 r--p 0001f000 2a:02 693779 /lib/ld-2.5.so
>> 0fff0000-0fff1000 rw-p 00020000 2a:02 693779 /lib/ld-2.5.so
>> f7fce000-f7fcf000 rw-p f7fce000 00:00 0
>> f7ffc000-f7fff000 rw-p f7ffc000 00:00 0
>> ffc89000-ffc9e000 rw-p ffc89000 00:00 0 [stack]
>> Aborted
>
> I have seen this one before. I think it is a libusb bug.

OK, so users are screaming for bluetooth support. Can we get this
resolved?

Here is the patch again.

-Geoff

----------------------------------------------------------------------
Subject: PS3 Bluetooth quirk for HCI_FLT_CLEAR_ALL

It seems the PS3 built-in bluetooth host controler doesn't support the
HCI_FLT_CLEAR_ALL command properly. Add a check to conditionally use
the HCI_FLT_CONN_SETUP command to clear the event filter on PS3.

With this patch bluetooth mouse or keyboard are automatically re-connected
after reboot.

Signed-off-by: Geoff Levand <[email protected]>
---
include/net/bluetooth/hci.h | 6 ++++++
net/bluetooth/hci_core.c | 18 ++++++++++++++++++
2 files changed, 24 insertions(+)

--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -424,6 +424,12 @@ struct hci_cp_set_event_flt {
__u8 condition[0];
} __attribute__ ((packed));

+struct hci_cp_set_event_flt_conn {
+ __u8 flt_type;
+ __u8 cond_type;
+ __u8 condition;
+} __attribute__ ((packed));
+
/* Filter types */
#define HCI_FLT_CLEAR_ALL 0x00
#define HCI_FLT_INQ_RESULT 0x01
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -46,6 +46,9 @@

#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>
+#if defined(CONFIG_PPC_PS3)
+#include <asm/firmware.h>
+#endif

#ifndef CONFIG_BT_HCI_CORE_DEBUG
#undef BT_DBG
@@ -243,6 +246,21 @@ static void hci_init_req(struct hci_dev
flt_type = HCI_FLT_CLEAR_ALL;
hci_send_cmd(hdev, HCI_OP_SET_EVENT_FLT, 1, &flt_type);

+#if defined(CONFIG_PPC_PS3)
+ /*
+ * The PS3 built-in bluetooth host controler doesn't support the
+ * HCI_FLT_CLEAR_ALL command properly. Use the HCI_FLT_CONN_SETUP
+ * command to clear the event filter.
+ */
+ if (firmware_has_feature(FW_FEATURE_PS3_LV1)) {
+ struct hci_cp_set_event_flt_conn cp;
+ cp.flt_type = HCI_FLT_CONN_SETUP;
+ cp.cond_type = 0; /* all devices */
+ cp.condition = 1; /* auto accept is off */
+ hci_send_cmd(hdev, HCI_OP_CREATE_CONN, sizeof(cp), &cp);
+ }
+#endif
+
/* Page timeout ~20 secs */
param = cpu_to_le16(0x8000);
hci_send_cmd(hdev, HCI_OP_WRITE_PG_TIMEOUT, 2, &param);