driver: bluetooth: hci: Support NXP BT CTLR FW blobs
Add Kconfig.nxp to support NXP Bluetooth Chipset. Current only NXP IW612 Chipset (BT_NXP_NW612) has been supported. Add modules/hal_nxp/bt_controller/CMakeLists.txt to determine whether any firmware is selected, and check whether the firmware exists. If the firmware exists, copy the firmware to the temporary folder ${ZEPHYR_BINARY_DIR}/include/ generated/bt_nxp_ctlr_fw.h. OR, raise a fatal error. In file hci_nxp_setup.c, includes the temporary file bt_nxp_ctlr_fw.h. Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
This commit is contained in:
parent
d164f9c0bb
commit
d74698a36b
5 changed files with 44 additions and 18 deletions
|
@ -250,29 +250,14 @@ config BT_SILABS_HCI_BUFFER_MEMORY
|
|||
Bluetooth Library.
|
||||
|
||||
config BT_H4_NXP_CTLR
|
||||
bool "NXP Bluetooth Controller [EXPERIMENTAL]"
|
||||
bool "NXP Bluetooth Controller"
|
||||
select GPIO
|
||||
# select UART_USE_RUNTIME_CONFIGURE
|
||||
select EXPERIMENTAL
|
||||
depends on BT_H4
|
||||
select CRC
|
||||
default y
|
||||
depends on DT_HAS_NXP_BT_HCI_UART_ENABLED
|
||||
help
|
||||
Enables support for NXP Bluetooth Controller.
|
||||
Murata 2EL M.2 Moudle base on NXP IW612 Chipset which supports
|
||||
Wi-Fi® 802.11a/b/g/n/ac/ax + Bluetooth® 5.3 BR/EDR/LE + IEEE802.1.5.4
|
||||
up to 601 Mbps data rate on Wi-Fi® and 2Mbps data rate on Bluetooth®.
|
||||
4-wire UART@3M baud is supported. PCM for audio is also supported.
|
||||
Details of the module could be fond on
|
||||
https://www.embeddedartists.com/products/2el-m-2-module/
|
||||
|
||||
The configuration depends on the firmware (named uart_nw61x_se.h)
|
||||
of Murata 2EL M.2 Moudle. It could be downloaded here
|
||||
https://github.com/NXP/wifi_nxp/blob/MCUX_2.15.000/wifi_bt_firmware/nw61x/uart_nw61x_se.h
|
||||
And it needs to be placed into the folder <zephyrproject>/zephyr/
|
||||
drivers/bluetooth/hci.
|
||||
|
||||
More inforamtion about NXP Bluetooth profuct could be found on
|
||||
https://www.nxp.com/products/wireless-connectivity/wi-fi-plus-bluetooth-plus-802-15-4:WIFI-BLUETOOTH
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright 2023 NXP
|
||||
# Copyright 2023-2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
@ -22,3 +22,19 @@ config HCI_NXP_SET_CAL_DATA_ANNEX100
|
|||
help
|
||||
If enabled, the Host will send calibration data annex 100 to the BLE Controller during HCI
|
||||
init.
|
||||
|
||||
if BT_H4_NXP_CTLR
|
||||
|
||||
config BT_NXP_NW612
|
||||
bool "NXP IW612 Chipset"
|
||||
help
|
||||
NXP IW612 Chipset supports Wi-Fi? 802.11a/b/g/n/ac/ax + Bluetooth? 5.3
|
||||
BR/EDR/LE + IEEE802.1.5.4 up to 601 Mbps data rate on Wi-Fi? and 2Mbps
|
||||
data rate on Bluetooth?. 4-wire UART@3M baud is supported. PCM for
|
||||
audio is also supported.
|
||||
Details of the module could be fond on https://www.nxp.com/products/
|
||||
wireless-connectivity/wi-fi-plus-bluetooth-plus-802-15-4/2-4-5-ghz-
|
||||
dual-band-1x1-wi-fi-6-802-11ax-plus-bluetooth-5-4-plus-802-15-4-tri-
|
||||
radio-solution:IW612.
|
||||
|
||||
endif # BT_H4_NXP_CTLR
|
||||
|
|
|
@ -24,7 +24,7 @@ LOG_MODULE_REGISTER(bt_nxp_ctlr);
|
|||
|
||||
#include "common/bt_str.h"
|
||||
|
||||
#include "uart_nw61x_se.h"
|
||||
#include "bt_nxp_ctlr_fw.h"
|
||||
|
||||
#define DT_DRV_COMPAT nxp_bt_hci_uart
|
||||
|
||||
|
|
|
@ -23,4 +23,6 @@ if(CONFIG_HAS_MCUX OR CONFIG_HAS_IMX_HAL OR CONFIG_HAS_NXP_S32_HAL)
|
|||
if(CONFIG_NOCACHE_MEMORY)
|
||||
zephyr_compile_definitions_ifdef(CONFIG_USB_DEVICE_DRIVER DATA_SECTION_IS_CACHEABLE=1)
|
||||
endif()
|
||||
|
||||
add_subdirectory_ifdef(CONFIG_BT_H4_NXP_CTLR bt_controller)
|
||||
endif()
|
||||
|
|
23
modules/hal_nxp/bt_controller/CMakeLists.txt
Normal file
23
modules/hal_nxp/bt_controller/CMakeLists.txt
Normal file
|
@ -0,0 +1,23 @@
|
|||
#
|
||||
# Copyright 2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set(hal_nxp_dir ${ZEPHYR_HAL_NXP_MODULE_DIR})
|
||||
set(hal_nxp_blobs_dir ${hal_nxp_dir}/zephyr/blobs)
|
||||
set(blob_gen_file ${ZEPHYR_BINARY_DIR}/include/generated/bt_nxp_ctlr_fw.h)
|
||||
|
||||
if(CONFIG_BT_NXP_NW612)
|
||||
set(blob_file ${hal_nxp_blobs_dir}/iw612/uart_nw61x_se.h)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED blob_file)
|
||||
message(FATAL_ERROR "Unsupported controller. Please select a BT conntroller, refer to ./driver/bluetooth/hci/Kconfig.nxp")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${blob_file})
|
||||
configure_file(${blob_file} ${blob_gen_file} COPYONLY)
|
||||
else()
|
||||
message(FATAL_ERROR "Can't find controller firmware, please fetch blobs by using command: \'west blobs fetch hal_nxp\'")
|
||||
endif()
|
Loading…
Add table
Add a link
Reference in a new issue