Hello!
We are using CC2564B chip on custom AM387x board under Linux OS with Bluez 5.30.
When I try to run LE scan CC2564B doesn't discover any device around, but at the same time on my laptop I can see several BLE devices.
Regular BT inquiry works fine.
I'm using Service Pack 1.3 from
Steps performed:
- Attach HCI device
/ # hciattach ttyO2 texas 115200
Found a Texas Instruments' chip!
Firmware file : /lib/firmware/ti-connectivity/TIInit_6.7.16.bts
Sending script to serial device
Loaded BTS script version 1
texas: changing baud rate to 115200, flow control to 1
mdev used greatest stack depth: 4444 bytes left
CCCCCCCCCCCCCCCCCCCCWRCSCCCCCCCWRCCCCWRCCWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRCCCC
Added device hci0
Sending script to bluetooth socket
WRWRWRWRWRWRWRCCCWRCCCCCCWRCCWRCWRCCCCC
Device setup complete - Enable BLE functionality with Vendor Specific command HCI_VS_LE_Enable
/ # hcitool -i hci0 cmd 0x3f 0x015B 0x01 0x01
< HCI Command: ogf 0x3f, ocf 0x015b, plen 2
01 01
> HCI Event: 0x0e plen 4
01 5B FD 00
/ # - Perform LE scan
/ # hcitool -i hci0 lescan
Here hcitool is actually waiting for events from the controller and nothing happens.
LE Scan ...
Here is strace log of hcitool command
/ # strace hcitool -i hci0 lescan
execve("/bin/hcitool", ["hcitool", "-i", "hci0", "lescan"], [/* 7 vars */]) = 0
brk(NULL) = 0x2d000
uname({sysname="Linux", nodename="PowerBeacon", ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40072000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3956, ...}) = 0
mmap2(NULL, 3956, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40122000
close(3) = 0
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0p'\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=45560, ...}) = 0
mmap2(NULL, 77036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40189000
mprotect(0x40194000, 28672, PROT_NONE) = 0
mmap2(0x4019b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x4019b000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0HW\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1299692, ...}) = 0
mmap2(NULL, 1336564, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4019c000
mprotect(0x402d5000, 32768, PROT_NONE) = 0
mmap2(0x402dd000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x139000) = 0x402dd000
mmap2(0x402e0000, 9460, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x402e0000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400d9000
set_tls(0x400d96d0, 0x400d9da8, 0x400e1050, 0x400d96d0, 0x400e1050) = 0
mprotect(0x402dd000, 8192, PROT_READ) = 0
mprotect(0x400e0000, 4096, PROT_READ) = 0
munmap(0x40122000, 3956) = 0
socket(PF_BLUETOOTH, SOCK_RAW|SOCK_CLOEXEC, 1) = 3
ioctl(3, HCIGETDEVINFO, 0xbed02c74) = 0
close(3) = 0
socket(PF_BLUETOOTH, SOCK_RAW|SOCK_CLOEXEC, 1) = 3
ioctl(3, HCIGETDEVINFO, 0xbed02c94) = 0
close(3) = 0
socket(PF_BLUETOOTH, SOCK_RAW|SOCK_CLOEXEC, 1) = 3
bind(3, {sa_family=AF_BLUETOOTH, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 6) = 0
getsockopt(3, SOL_IP, IP_TTL, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\337", [16]) = 0
setsockopt(3, SOL_IP, IP_TTL, "\20\0\0\0\1\300\0\0\0\0\0@\v \0\0", 16) = 0
writev(3, [{"\1", 1}, {"\v \7", 3}, {"\1\20\0\20\0\0\0", 7}], 3) = 11
poll([{fd=3, events=POLLIN}], 1, 10000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\4\16\4\1\v \0", 260) = 7
setsockopt(3, SOL_IP, IP_TTL, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\337", 16) = 0
getsockopt(3, SOL_IP, IP_TTL, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\337", [16]) = 0
setsockopt(3, SOL_IP, IP_TTL, "\20\0\0\0\1\300\0\0\0\0\0@\f \0\0", 16) = 0
writev(3, [{"\1", 1}, {"\f \2", 3}, {"\1\1", 2}], 3) = 6
poll([{fd=3, events=POLLIN}], 1, 10000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\4\16\4\1\f \0", 260) = 7
setsockopt(3, SOL_IP, IP_TTL, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\337", 16) = 0
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(5, 1), ...}) = 0
ioctl(1, TCGETS, {B115200 opost isig icanon echo ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4015c000
write(1, "LE Scan ...\n", 12LE Scan ...
) = 12
getsockopt(3, SOL_IP, IP_TTL, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\337", [16]) = 0
setsockopt(3, SOL_IP, IP_TTL, "\20\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0", 16) = 0
rt_sigaction(SIGINT, {0xe818, [], SA_RESTORER|SA_NOCLDSTOP, 0x401c9a90}, NULL, 8) = 0
read(3,
I tried to use both initscripts-TIInit_6.7.16_bt_spec_4.0.bts and initscripts-TIInit_6.7.16_bt_spec_4.1.bts service pack files.
I also changed hciattach code in order to load initscripts-TIInit_6.7.16_ble_add-on.bts after main service pack.
The result was always the same.
Does anyone have any idea what is wrong here?
Thanks,
Anatoly