Bluetooth Driver services: Difference between revisions

No edit summary
Line 1: Line 1:
= btdrv =
= btdrv =
This is "nn::bluetooth::IBluetoothDriver".
This is "nn::bluetooth::IBluetoothDriver".
The bluetooth driver implements the bluetooth protocol over h4/uart.
It interfaces with the [[Bus_services#uart|uart]] service to actually talk with the bluetooth hardware.
The code seems to be derived from a broadcom stack. A good starting point for similar source code can be found in the MICO project: https://github.com/yinhongxing/mico/tree/ea67ff3659f12d730d4dc3b8d547b093bd2ee2ee/MICO/bluetooth_bte Note that the library files contain many (symbolized) functions which match btdrv.


Support for "nn::bluetooth::*" was added to sdknso with 6.x.
Support for "nn::bluetooth::*" was added to sdknso with 6.x.
Line 1,221: Line 1,215:
   Features page 1: 0x0f 0x00 0x00 0x00 0x00 0x00 0x00 0x00
   Features page 1: 0x0f 0x00 0x00 0x00 0x00 0x00 0x00 0x00
   Features page 2: 0x7f 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
   Features page 2: 0x7f 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
The bluetooth driver implements the bluetooth protocol over h4/uart. It interfaces with the [[Bus_services#uart|uart]] service to actually talk with the bluetooth hardware.
The bluetooth stack is Broadcom/Cypress brcm BSA (for example, see [https://github.com/hardkernel/buildroot_linux_amlogic_brcm-bsa here]).


The following L2CAP services are registered (dynamic channels): SDP, ATT (GATT), RFCOMM, HID (PSMs: 0x11, 0x13, 0x8001, 0x8003).
The following L2CAP services are registered (dynamic channels): SDP, ATT (GATT), RFCOMM, HID (PSMs: 0x11, 0x13, 0x8001, 0x8003).
Line 1,238: Line 1,236:
|-
|-
| [1.0.0]
| [1.0.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_J3_Patch_20161118
| Hayward_J3_Patch_20161118
| BCM4356A3_001.004.009.0045.0000
| BCM4356A3_001.004.009.0045.0000
|-
|-
| [2.0.0]
| [2.0.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_J5_RC_20161227
| Hayward_J5_RC_20161227
| BCM4356A3_001.004.009.0047.0049
| BCM4356A3_001.004.009.0047.0049
|-
|-
| [3.0.0-3.0.1]
| [3.0.0-3.0.1]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_K4_RC_20170504
| Hayward_K4_RC_20170504
| BCM4356A3_001.004.009.0054.0056
| BCM4356A3_001.004.009.0054.0056
|-
|-
| [4.0.0]
| [4.0.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_L4_RC_20170815
| Hayward_L4_RC_20170815
| CYW4356A3_001.004.009.0057.0059
| CYW4356A3_001.004.009.0057.0059
|-
|-
| [5.0.0]
| [5.0.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_M2_RC_20180109
| Hayward_M2_RC_20180109
| CYW4356A3_001.004.009.0059.0061
| CYW4356A3_001.004.009.0059.0061
|-
|-
| [5.1.0]
| [5.1.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_N1_RC_20180226
| Hayward_N1_RC_20180226
| CYW4356A3_001.004.009.0062.0064
| CYW4356A3_001.004.009.0062.0064
|-
|-
| [6.0.0-6.2.0]
| [6.0.0-6.2.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_N3_RC_20180612
| Hayward_N3_RC_20180612
| CYW4356A3_001.004.009.0062.0064
| CYW4356A3_001.004.009.0062.0064
|-
|-
| [7.0.0]
| [7.0.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_O1_RC_20180829
| Hayward_O1_RC_20180829
| CYW4356A3_001.004.009.0076.0077
| CYW4356A3_001.004.009.0076.0077
|-
|-
| [8.0.0-9.0.0]
| [8.0.0-9.0.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_P1_RC_20190121
| Hayward_P1_RC_20190121
| CYW4356A3_001.004.009.0076.0077
| CYW4356A3_001.004.009.0076.0077
|-
|-
| [10.0.0-11.0.0]
| [10.0.0-11.0.0]
| BSA0106_01.60.00_
| BSA0106_01.60.00
| Hayward_R2_RC_20191119
| Hayward_R2_RC_20191119
| CYW4356A3_001.004.009.0092.0095
| CYW4356A3_001.004.009.0092.0095