nuttx/drivers/wireless/ieee80211/bcm43xxx/Kconfig
chao.an ff2b87c298 wireless/bcm43xxx: add Packet Traffic Arbitration Priority support
For Bluetooth wifi co-existence

Signed-off-by: chao.an <anchao@xiaomi.com>
2023-09-21 01:36:21 +08:00

231 lines
6.8 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config IEEE80211_BROADCOM_FULLMAC
bool
default n
config IEEE80211_BROADCOM_HAVE_CLM
bool
default n
config IEEE80211_BROADCOM_BCM4301X
bool "Broadcom 4301x chip support"
depends on IEEE80211_BROADCOM_FULLMAC
default n
select IEEE80211_BROADCOM_HAVE_CLM
config IEEE80211_BROADCOM_BCM43362
bool "Broadcom 43362 chip support"
depends on IEEE80211_BROADCOM_FULLMAC
default n
config IEEE80211_BROADCOM_BCM43438
bool "Broadcom 43438 chip support"
depends on IEEE80211_BROADCOM_FULLMAC
default n
select IEEE80211_BROADCOM_HAVE_CLM
config IEEE80211_BROADCOM_BCM43455
bool "Broadcom 43455 chip support"
depends on IEEE80211_BROADCOM_FULLMAC
default n
select IEEE80211_BROADCOM_HAVE_CLM
config IEEE80211_INFINEON_CYW43439
bool "Infineon 43439 chip support"
depends on IEEE80211_BROADCOM_FULLMAC
default n
select IEEE80211_BROADCOM_HAVE_CLM
config IEEE80211_BROADCOM_FWFILES
bool "Firmware files"
default y
depends on IEEE80211_BROADCOM_BCM4301X || \
IEEE80211_BROADCOM_BCM43362 || \
IEEE80211_BROADCOM_BCM43438 || \
IEEE80211_BROADCOM_BCM43455
---help---
By default, firmware and CLM files are provided in memory.
This selection enables an option to load the firmware and CLM
files from a mounted file system.
A snapshot of file for the BCM43362 are available in the tools
repository: https://bitbucket.org/nuttx/tools/src/master/bcm43438/
The latest files from Cypress are available in the Linux kernel:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/brcm
The 43438 is a variant of the 43430 and will even identify itself as
such. The calibration file used in the past is called:
brcmfmac43430-sdio.AP6212.txt. The firmware is brcmfmac43430-sdio.bin
If not defined, then your board support logic will have to
to provide the firmware files (and CLM files for the CBM43438)
in board/src directory. For the BCM43362, the following would
need to be provided:
const uint8_t bcm43362_firmware_image[];
const unsigned int bcm43362_firmware_image_len;
For the BCM43438, the following would need to be provided.
const uint8_t ap6212_firmware_image[];
const unsigned int ap6212_firmware_len;
const uint8_t ap6212_clm_blob[];
const unsigned int ap6212_clm_blob_len;
NVRAM files are currently only supported from memory. The following
must be provided all configurations. For the BCM43362:
const char bcm43362_nvram_image[];
const unsigned int bcm43362_nvram_image_len;
And for the BCM43438:
const char ap6212_nvram_image[];
const unsigned int ap6212_nvram_image_len;
config IEEE80211_BROADCOM_FWFILENAME
string "Firmware file"
default "/mnt/sdcard/firmware.bin"
depends on IEEE80211_BROADCOM_FWFILES
---help---
If firmware files are provided on a file system, then this option
provides the full path to the file on a mounted file system where
the firmware can be found.
config IEEE80211_BROADCOM_NVFILENAME
string "Firmware file"
default "/mnt/sdcard/nvram.bin"
depends on IEEE80211_BROADCOM_FWFILES
---help---
If firmware files are provided on a file system, then this option
provides the full path to the file on a mounted file system where
the firmware can be found.
config IEEE80211_BROADCOM_FWCLMNAME
string "CLM file"
default "/mnt/sdcard/blob.bin"
depends on IEEE80211_BROADCOM_FWFILES && IEEE80211_BROADCOM_HAVE_CLM
---help---
If firmware files are provided on a file system, then this option
provides the full path to the file on a mounted file system where
the CLM blob can be found.
config IEEE80211_BROADCOM_FULLMAC_SDIO
bool "Broadcom FullMAC driver on SDIO bus"
depends on ARCH_HAVE_SDIO
select IEEE80211_BROADCOM_FULLMAC
default n
---help---
This selection enables support for broadcom
FullMAC-compliant devices using SDIO bus.
config IEEE80211_BROADCOM_FULLMAC_GSPI
bool "Broadcom FullMAC driver on gSPI bus"
select IEEE80211_BROADCOM_FULLMAC
default n
---help---
This selection enables support for broadcom
FullMAC-compliant devices using gSPI bus.
config IEEE80211_BROADCOM_FULLMAC_GSPI_MAX_FRAME
int "Broadcom FullMAC driver on gSPI bus"
default 2048
depends on IEEE80211_BROADCOM_FULLMAC_GSPI
---help---
This is the maximum frame size for data transfers
with the chip.
config IEEE80211_BROADCOM_SCHED_PRIORITY
int "Broadcom BCMF daemon thread schedule priority"
depends on IEEE80211_BROADCOM_FULLMAC
default SCHED_HPWORKPRIORITY if SCHED_HPWORK
default 255
---help---
This parameter should be set the bcmf daemon thread
schedule priority
config IEEE80211_BROADCOM_SCAN_RESULT_ENTRIES
int "Broadcom BCMF escan result entries"
depends on IEEE80211_BROADCOM_FULLMAC
default 10
---help---
This parameter should be set the bcmf escan result buffer entries
config IEEE80211_BROADCOM_PTA_PRIORITY
bool "Broadcom BCMF Packet Traffic Arbitration priority"
default n
---help---
This parameter should be enable the bcmf PTA priority feature
config IEEE80211_BROADCOM_LOWPOWER
bool "Broadcom BCMF lower power"
depends on IEEE80211_BROADCOM_FULLMAC
default n
---help---
This parameter should be enable the bcmf lower power mode
config IEEE80211_BROADCOM_DEFAULT_COUNTRY
string "Broadcom BCMF default country code"
depends on IEEE80211_BROADCOM_FULLMAC
default ""
---help---
This parameter should be set the default country code
if IEEE80211_BROADCOM_LOWPOWER
config IEEE80211_BROADCOM_LP_DTIM_TIMEOUT
int "Broadcom BCMF lower power timeout(second)"
default 10
---help---
This parameter should be enable the bcmf lower power timeout
config IEEE80211_BROADCOM_LP_DTIM_INTERVAL
int "Broadcom BCMF listen interval dtim(millisecond)"
default 500
---help---
This parameter should be set the listen interval dtim in milliseconds
config IEEE80211_BROADCOM_LP_IFDOWN_TIMEOUT
int "Broadcom BCMF lower power if down timeout(second)"
default 600
---help---
This parameter should be enable the bcmf lower power if down timeout
endif # IEEE80211_BROADCOM_LOWPOWER
if IEEE80211_BROADCOM_FULLMAC
config IEEE80211_BROADCOM_NINTERFACES
int "Number of Broadcom FullMAC interfaces"
default 1
depends on EXPERIMENTAL
config IEEE80211_BROADCOM_DMABUF_ALIGNMENT
int "DMA buffer address alignment boundary"
default 4
range 4 64
---help---
This parameter should be set depending on
the used SOC DMA configuration.
config IEEE80211_BROADCOM_FRAME_POOL_SIZE
int "SDPCM frame pool size"
default 8
---help---
This parameter sets the size of the shared SDPCM frame pool
used for both RX and TX transfers.
config IEEE80211_BROADCOM_SDIO_EHS_MODE
bool "High-Speed Mode over SDIO"
default n
---help---
This selection enables High-Speed timing mode
with a clock rate up to 50MHz.
endif # IEEE80211_BROADCOM_FULLMAC