xref: /btstack/chipset/cc256x/cc256x.cmake (revision 74e22f303e71eb37b8da3b491cf8f9d16ba00c14)
198f1394dSMatthias Ringwald#
298f1394dSMatthias Ringwald# CMake file to download and convert TI's CC256x Service Pack .bts files from BlueKitchen mirror
398f1394dSMatthias Ringwald# https://e2e.ti.com/support/wireless_connectivity/bluetooth_cc256x/f/660/p/560523/2056007#2056007
498f1394dSMatthias Ringwald#
598f1394dSMatthias Ringwald# Original sources:
698f1394dSMatthias Ringwald# TI Processor Wiki https://web.archive.org/web/20210114141711/https://processors.wiki.ti.com/index.php/CC256x_Downloads
798f1394dSMatthias Ringwald# TI Git Repo:      https://git.ti.com/cgit/ti-bt/service-packs/blobs/raw/a027ae390d8790e56e1c78136c78fe6537470e91
898f1394dSMatthias Ringwald
998f1394dSMatthias Ringwaldset(BLUEKITCHEN_URL https://bluekitchen-gmbh.com/files/ti/service-packs)
1098f1394dSMatthias Ringwaldset(CONVERSION_SCRIPT ${BTSTACK_ROOT}/chipset/cc256x/convert_bts_init_scripts.py)
1198f1394dSMatthias Ringwald
127c9530e4SMatthias Ringwaldfind_package (Python REQUIRED COMPONENTS Interpreter)
13f495c712SMatthias Ringwald#
14f495c712SMatthias Ringwald# Service Pack / Init Script / .bts Conversion function
15f495c712SMatthias Ringwald#
16f495c712SMatthias Ringwald# only download and unzip if requested by main target via CC256X_INIT_SCRIPT
17f495c712SMatthias Ringwald#
18f495c712SMatthias Ringwaldfunction(cc256x_init_script output_file archive main_script optional_script)
19f495c712SMatthias Ringwald    if (DEFINED CC256X_INIT_SCRIPT)
20f495c712SMatthias Ringwald        if ("${CC256X_INIT_SCRIPT}" STREQUAL ${output_file})
2198f1394dSMatthias Ringwald
22f495c712SMatthias Ringwald            # Download init scripts
23f495c712SMatthias Ringwald            message("CC256x: Download ${archive}")
2458080ea6SMatthias Ringwald            file(DOWNLOAD ${BLUEKITCHEN_URL}/${archive} ${CMAKE_CURRENT_BINARY_DIR}/${archive})
25f495c712SMatthias Ringwald
26f495c712SMatthias Ringwald            # unpack zip
27f495c712SMatthias Ringwald            if (${archive} MATCHES "zip$")
28f495c712SMatthias Ringwald                message("CC256x: Extract ${archive}")
2958080ea6SMatthias Ringwald                file(ARCHIVE_EXTRACT INPUT ${CMAKE_CURRENT_BINARY_DIR}/${archive})
30f495c712SMatthias Ringwald            endif()
31f495c712SMatthias Ringwald
32f495c712SMatthias Ringwald            # add custom command to convert bts file(s) into C array
3398f1394dSMatthias Ringwald            message("CC256x: ${output_file} <- ${main_script} ${optional_script}")
3498f1394dSMatthias Ringwald            add_custom_command(
3598f1394dSMatthias Ringwald                    OUTPUT ${output_file}
3698f1394dSMatthias Ringwald                    DEPENDS ${main_script} ${optional_script}
377c9530e4SMatthias Ringwald                    COMMAND ${Python_EXECUTABLE}
3858080ea6SMatthias Ringwald                    ARGS ${CONVERSION_SCRIPT} ${main_script} ${optional_script} ${output_file}
3998f1394dSMatthias Ringwald            )
40f495c712SMatthias Ringwald
41f495c712SMatthias Ringwald            # Add CC256x chipset support
42f495c712SMatthias Ringwald            include_directories(${BTSTACK_ROOT}/chipset/cc256x)
43f495c712SMatthias Ringwald            target_sources(btstack PRIVATE ${BTSTACK_ROOT}/chipset/cc256x/btstack_chipset_cc256x.c)
44f495c712SMatthias Ringwald
45f495c712SMatthias Ringwald            # add init script to target
46f495c712SMatthias Ringwald            target_sources(btstack PRIVATE ${CC256X_INIT_SCRIPT})
47f495c712SMatthias Ringwald
48f495c712SMatthias Ringwald        endif()
49f495c712SMatthias Ringwald    endif()
5098f1394dSMatthias Ringwaldendfunction()
5198f1394dSMatthias Ringwald
5298f1394dSMatthias Ringwald#
53f495c712SMatthias Ringwald#                   output_file                                  archives                        main_bts                                                     add_on
5498f1394dSMatthias Ringwald#
55f495c712SMatthias Ringwald
56f495c712SMatthias Ringwald# First generation CC2560 - AKA TIInit_6.2.31.bts
57f495c712SMatthias Ringwald# - v2.44 - file part of .zip archive
58f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560_2.44.c                  CC2560_BT_SP_BTS.zip            CC2560_BT_SP_BTS/bluetooth_init_cc2560_2.44.bts              "")
59f495c712SMatthias Ringwald
60f495c712SMatthias Ringwald# Second generation CC2560A and CC2564 - AKA TIInit_6.6.15.bts
61f495c712SMatthias Ringwald# - v2.14 - files part of .zip archive
62f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560A_2.14.c                 CC2560A_BT_SP_BTS.zip           CC2560A_BT_SP_BTS/bluetooth_init_cc2560A_2.14.bts            "")
63f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564_2.14.c                  CC2564_BT_BLE_SP_BTS.zip        CC2564_BT_BLE_SP_BTS/bluetooth_init_cc2564_2.14.bts          "")
64f495c712SMatthias Ringwald
65f495c712SMatthias Ringwald# Third generation CC256xB - AKA TIInit_6.7.16.bts
66f495c712SMatthias Ringwald# - v1.2 - versioned files TI Git Repo
67f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560B_1.2_BT_Spec_4.1.c      cc256xb_bt_sp_v1.2.zip          bluetooth_init_cc2560B_1.2_BT_Spec_4.1.bts                   "")
68f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564B_1.2_BT_Spec_4.1.c      cc256xb_bt_sp_v1.2.zip          bluetooth_init_cc2564B_1.2_BT_Spec_4.1.bts                   BLE_init_cc2564B_1.2.bts)
69f495c712SMatthias Ringwald
70f495c712SMatthias Ringwald# - v1.3 - not available, please use v1.8 or newer
71f495c712SMatthias Ringwald
72f495c712SMatthias Ringwald# - v1.4 - versioned files TI Git Repo
73f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560B_1.4_BT_Spec_4.1.c      cc256xb_bt_sp_v1.4.zip          TIInit_6.7.16_bt_spec_4.1.bts                                "")
74f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564B_1.4_BT_Spec_4.1.c      cc256xb_bt_sp_v1.4.zip          TIInit_6.7.16_bt_spec_4.1.bts                                TIInit_6.7.16_ble_add-on.bts)
75f495c712SMatthias Ringwald
76f495c712SMatthias Ringwald# - v1.5 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xb-bt-sp
77f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560B_1.5_BT_Spec_4.1.c      cc256xb_bt_sp_v1.5.zip          cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_bt_spec_4.1.bts  "")
78f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564B_1.5_BT_Spec_4.1.c      cc256xb_bt_sp_v1.5.zip          cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_bt_spec_4.1.bts  cc256x_bt_sp_v1.5/initscripts-TIInit_6.7.16_ble_add-on.bts)
79f495c712SMatthias Ringwald
80f495c712SMatthias Ringwald# - v1.6 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xb-bt-sp
81f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560B_1.6_BT_Spec_4.1.c      cc256xb_bt_sp_v1.6.zip          cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
82f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564B_1.6_BT_Spec_4.1.c      cc256xb_bt_sp_v1.6.zip          cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.6/initscripts-TIInit_6.7.16_ble_add-on.bts)
83f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560B_1.8_BT_Spec_4.1.c      cc256xb_bt_sp_v1.6.zip          cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts "")
84f495c712SMatthias Ringwald
85f495c712SMatthias Ringwald# - v1.7 - not available, please use v1.8 or newer
86f495c712SMatthias Ringwald
87f495c712SMatthias Ringwald# - v1.8 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xb-bt-sp
88f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560B_avpr_1.8_BT_Spec_4.1.c cc256xb_bt_sp_v1.8.zip          cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_avpr_add-on.bts)
89f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564B_1.8_BT_Spec_4.1.c      cc256xb_bt_sp_v1.8.zip          cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_bt_spec_4.1.bts cc256xb_bt_sp_v1.8/initscripts-TIInit_6.7.16_ble_add-on.bts)
90f495c712SMatthias Ringwald
91f495c712SMatthias Ringwald# Fourth generation CC256xC - TIInit_6.12.26.bts
92f495c712SMatthias Ringwald
93f495c712SMatthias Ringwald# - v1.0 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
94f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_1.0.c                  cc256xc_bt_sp_v1.0.zip          CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26.bts            "")
95f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564C_1.0.c                  cc256xc_bt_sp_v1.0.zip          CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26.bts            CC256XC_BT_SP/v1.0/initscripts-TIInit_6.12.26_ble_add-on.bts)
96f495c712SMatthias Ringwald
97f495c712SMatthias Ringwald# - v1.1 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
98f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_1.1.c                  cc256xc_bt_sp_v1.1.zip          CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26.bts            "")
99f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564C_1.1.c                  cc256xc_bt_sp_v1.1.zip          CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26.bts            CC256XC_BT_SP/v1.1/initscripts-TIInit_6.12.26_ble_add-on.bts)
100f495c712SMatthias Ringwald
101f495c712SMatthias Ringwald# - v1.2 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
102f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_1.2.c                  cc256xc_bt_sp_v1.2.zip          CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26.bts            "")
103f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564C_1.2.c                  cc256xc_bt_sp_v1.2.zip          CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26.bts            CC256XC_BT_SP/v1.2/initscripts-TIInit_6.12.26_ble_add-on.bts)
104f495c712SMatthias Ringwald
105f495c712SMatthias Ringwald# - v1.3 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
106f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_1.3.c                  cc256xc_bt_sp_v1.3.zip          CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26.bts            "")
107f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564C_1.3.c                  cc256xc_bt_sp_v1.3.zip          CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26.bts            CC256XC_BT_SP/v1.3/initscripts-TIInit_6.12.26_ble_add-on.bts)
108f495c712SMatthias Ringwald
109f495c712SMatthias Ringwald# - v1.4 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
110f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_1.4.c                  cc256xc_bt_sp_v1.4.zip          CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts             "")
111f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_avpr_1.4.c             cc256xc_bt_sp_v1.4.zip          CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts            CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26_avpr_add-on.bts)
112f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564C_1.4.c                  cc256xc_bt_sp_v1.4.zip          CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26.bts            CC256XC_BT_SP/v1.4/initscripts-TIInit_6.12.26_ble_add-on.bts)
113f495c712SMatthias Ringwald
114f495c712SMatthias Ringwald# - v1.5 - unversioned files from BlueKitchen website, original: http://www.ti.com/tool/cc256xc-bt-sp
115f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_1.5.c                  cc256xc_bt_sp_v1.5.zip          CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts             "")
116f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2560C_avpr_1.5.c             cc256xc_bt_sp_v1.5.zip          CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts             CC256XC_v1.5/v1.5i/nitscripts-TIInit_6.12.26_avpr_add-on.bts)
117f495c712SMatthias Ringwaldcc256x_init_script(bluetooth_init_cc2564C_1.5.c                  cc256xc_bt_sp_v1.5.zip          CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26.bts             CC256XC_v1.5/v1.5/initscripts-TIInit_6.12.26_ble_add-on.bts)
118f495c712SMatthias Ringwald
119f495c712SMatthias Ringwald# Various scripts for WL chipsets from http://www.ti.com/tool/wl18xx-bt-sp
120f495c712SMatthias Ringwaldcc256x_init_script(TIInit_11.8.32_4.2.c                          TIInit_11.8.32_4.2.bts          TIInit_11.8.32_4.2.bts                                       "")
121f495c712SMatthias Ringwaldcc256x_init_script(TIInit_11.8.32_4.6.c                          TIInit_11.8.32_4.6.bts          TIInit_11.8.32_4.6.bts                                       "")
122f495c712SMatthias Ringwaldcc256x_init_script(TIInit_11.8.32_4.7.c                          TIInit_11.8.32_4.7.bts          TIInit_11.8.32_4.7.bts                                       "")
123*74e22f30SMatthias Ringwaldcc256x_init_script(TIInit_11.8.32_4.8.c                          TIInit_11.8.32_4.8.bts          TIInit_11.8.32_4.8.bts                                       "")
124f495c712SMatthias Ringwaldcc256x_init_script(TIInit_12.10.28.c                             TIInit_12.10.28.bts             TIInit_12.10.28.bts                                          "")
125f495c712SMatthias Ringwaldcc256x_init_script(TIInit_12.8.32.c                              TIInit_12.8.32.bts              TIInit_12.8.32.bts                                           "")
12698f1394dSMatthias Ringwald
12798f1394dSMatthias Ringwald# ANT Service Pack required
128f495c712SMatthias Ringwald# cc256x_init_script(bluetooth_init_cc2567_2.4.c                 ""                              CC2567_BT_ANT_Service_Pack_2.4.bts                           "")
129f495c712SMatthias Ringwald# cc256x_init_script(bluetooth_init_cc2567_2.8.c                 ""                              CC256x_BT_Service_Pack_2.8_ANT_1.16.bts                      "")
130