While RTL8723CS is able to start with RTL8723BS config, it doesn't
actually work. Powering on device with "power on" in bluetoothctl
and enabling scan via "scan on" doesn't find a single device.
Unfortunately, RealtekBluetoothUartPackage_2.17.119.0525 doesn't have
a config for RTL8723CS, so we have to resort to a known-working config
from armbian firmware repository [1]. Their commit history doesn't mention
its origin.
Closer inspection of the config reveals that indeed 8723CS uses different
entry offsets, e.g. 8723BT:
55ab 2387 # Magic
3a00 # Total len
2b00 06 0000 00aa bbcc # Offset = 0x002b, len = 0x06
f400 03 0100 00 # Offset = 0x00f4, len = 0x03
f800 02 8500 # Offset = 0x00f8, len = 0x02
2700 01 67 # Offset = 0x0027, len = 0x01
0c00 10 0280 9204 50c5 ea19 e11b f1af 5f01 a40b # Offset = 0x000c, len = 0x10
df01 01 01 # Offset = 0x01df, len = 0x01
fe00 01 01 # Offset = 0x00fe, len = 0x01
e301 01 00 # Offset = 0x01e3, len = 0x01
0000 00 # Offset = 0x0000, len = 0x00
8723CS:
55ab 2387 # Magic
3900 # Total len
f400 01 01 # Offset = 0x00f4, len = 0x01
f600 02 8100 # Offset = 0x00f6, len = 0x02
fa00 02 1280 # Offset = 0x00fa, len = 0x02
0c00 10 0280 9204 50c5 ea19 e11b fdaf 5f01 a40b # Offset = 0x000c, len = 0x10
2700 01 63 # Offset = 0x0027, len = 0x1
0001 01 01 # Offset = 0x0100, len = 01
5b01 04 0b0b0b0a # Offset = 0x015b, len = 0x04
4200 02 4150 # Offset = 0x0042, len = 0x02
e000 01 42 # Offset = 0x00e0, len = 0x01
The only known devices with mainline Linux support that use 8723CS are
Pine64's PineTab, PinePhone and Pinebook, all of them work with this config.
[1] https://github.com/armbian/firmware
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>