This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1831 Bluetooth with OMAP 3 DM3730 Hcitool can't load Firmware - Not a legal Firmware File

Other Parts Discussed in Thread: WL1831, DM3730

Hello - I have a DM3730 OMAP3 interfacing with a WL1831 WiFi/Bluetooth Module. I'm certain the kernel is configured correctly and the WiFi interface comes up fine. I can do an 'ifconfig wlan0 up' followed by a 'iw wlan0 scan' and find nearby hotspots.

I've built all relevant modules for our Linux 3.4.79 Kernel from the backports package here:

http://drvbp1.linux-foundation.org/~mcgrof/rel-html/backports/

I am having problems getting Hcitool to connect to the Bluetooth module properly. 

Here is my recipe:

        # Toggle the bluetooth enable line
	echo -e "\nTogggling the bluetooth enable lines..."
	/bin/echo 0 > /sys/class/gpio/gpio194/value
	/bin/echo 1 > /sys/class/gpio/gpio194/value

	# Start up the bluetooth stack
	echo -e "\nStarting hciattach..."
	/usr/sbin/hciattach /dev/ttyO1 texas 3000000 # I've tried 152000 as well with same results
	echo -e "\nStarting bluetoothd..."
	/usr/sbin/bluetoothd

I've tried every single BTS file from the official TI Bluetooth firmware repository:

https://github.com/TI-ECS/bt-firmware

I always seem to get this error ( not a legal TI firmware file ):

Found a Texas Instruments' chip!
Firmware file : /lib/firmware/TIInit_11.8.32.bts
/lib/firmware/TIInit_11.8.32.bts not a legal TI firmware file
Warning: cannot find BTS file: /lib/firmware/TIInit_11.8.32.bts
Bluetooth: Unknown HCI packet type 49
Bluetooth: Unknown HCI packet type 34
Bluetooth: hci0 command 0x1003 tx timeout
Bluetooth: hci0 command 0x1001 tx timeout
Bluetooth: hci0 command 0x1009 tx timeout
Initialization timed out.

I can, however do the following command, which allows hciconfig -a to show a result, but then scans still fail:

>> hciconfig /dev/ttyO1 any

Device setup complete

>> hciconfig -a

hci0: Type: BR/EDR Bus: UART
BD Address: 78:A5:04:2E:F4:2B ACL MTU: 1021:6 SCO MTU: 180:4
UP RUNNING PSCAN
RX bytes:635 acl:0 sco:0 events:35 errors:0
TX bytes:971 acl:0 sco:0 commands:35 errors:0
Features: 0xff 0xfe 0x2d 0xfe 0xdb 0xff 0x7b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF
Link mode: SLAVE ACCEPT
Name: '"FLUKE's Thermal Imager"'
Class: 0x400430
Service Classes: Telephony
Device Class: Audio/Video, Video Camera
HCI Version: 4.0 (0x6) Revision: 0x0
LMP Version: 4.0 (0x6) Subversion: 0xac20
Manufacturer: Texas Instruments Inc. (13)

It seems that providing "any" to hcitool seems to work, but not loading a TI firmware file.

I would appreciate if someone could please shed some light on why I can't load a firmware file from the TI repository even though communication with the chip seems to be working.

Thanks.

#### UPDATE ####

I've worked around the "not a Legal Firmware" issue by commenting out the check in the hciattach_ti.c file. 

+ /*
if (fw_header->magic != FM_FW_FILE_HEADER_MAGIC) {
    fmerr("%s not a legal TI firmware file\n", fw_name);
    ret = -EINVAL;
    goto rel_fw;
}
1271
+ */

However, now I get the "Initialization Timed out" error:

Found a Texas Instruments' chip!
Firmware file : /lib/firmware/TIInit_11.8.32.bts
Loaded BTS script version 1
texas: changing baud rate to 3000000, flow control to 1
Initialization timed out.