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