1# Copyright (c) 2021 Bestechnic (Shanghai) Co., Ltd. All rights reserved. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14add_if_exists = $(foreach d,$(1),$(if $(wildcard $(srctree)/$(d)),$(d) ,)) 15 16# ------------------------------------------- 17# CHIP selection 18# ------------------------------------------- 19 20export CHIP 21 22ifneq (,) 23else ifeq ($(CHIP),best1000) 24KBUILD_CPPFLAGS += -DCHIP_BEST1000 25CPU := m4 26export CHIP_HAS_FPU := 1 27export CHIP_HAS_USB := 1 28export CHIP_HAS_USBPHY := 0 29export CHIP_HAS_SDMMC := 1 30export CHIP_HAS_PSRAM := 1 31export CHIP_HAS_SPI := 1 32export CHIP_HAS_SPILCD := 1 33export CHIP_HAS_SPIPHY := 0 34export CHIP_HAS_I2C := 1 35export CHIP_HAS_UART := 2 36export CHIP_HAS_DMA := 2 37export CHIP_HAS_SPDIF := 1 38export CHIP_HAS_TRANSQ := 0 39export CHIP_HAS_EXT_PMU := 0 40export CHIP_HAS_AUDIO_CONST_ROM := 1 41export CHIP_FLASH_CTRL_VER := 1 42export CHIP_PSRAM_CTRL_VER := 1 43export CHIP_SPI_VER := 1 44export CHIP_HAS_EC_CODEC_REF := 0 45export CHIP_HAS_SCO_DMA_SNAPSHOT := 0 46export CHIP_ROM_UTILS_VER := 1 47export CHIP_HAS_SECURE_BOOT := 1 48export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 49export NO_LPU_26M ?= 1 50else ifeq ($(CHIP),best1305) 51KBUILD_CPPFLAGS += -DCHIP_BEST1305 52CPU := m33 53SHA256_ROM := 0 54export CHIP_HAS_SECURE_BOOT := 0 55export CHIP_HAS_FPU := 1 56export CHIP_HAS_USB := 0 57export CHIP_HAS_USBPHY := 0 58export CHIP_HAS_SDMMC := 0 59export CHIP_HAS_PSRAM := 0 60export CHIP_HAS_SPI := 1 61export CHIP_HAS_SPILCD := 0 62export CHIP_HAS_SPIPHY := 0 63export CHIP_HAS_I2C := 3 64export CHIP_HAS_UART := 2 65export CHIP_HAS_DMA := 2 66export CHIP_HAS_I2S := 1 67export CHIP_HAS_TDM := 1 68export CHIP_HAS_I2S_TDM_TRIGGER := 1 69export CHIP_HAS_SPDIF := 0 70export CHIP_HAS_TRANSQ := 0 71export CHIP_HAS_PSC := 1 72export CHIP_HAS_EXT_PMU := 0 73export CHIP_HAS_CP := 1 74export CHIP_HAS_AUDIO_CONST_ROM := 0 75export CHIP_FLASH_CTRL_VER := 4 76export CHIP_CACHE_VER := 3 77export CHIP_SPI_VER := 4 78export CHIP_HAS_EC_CODEC_REF := 1 79export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 80export CHIP_ROM_UTILS_VER := 1 81export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 82else ifeq ($(CHIP),best1400) 83ifeq ($(CHIP_SUBTYPE),best1402) 84SUBTYPE_VALID := 1 85KBUILD_CPPFLAGS += -DCHIP_BEST1402 86export CHIP_FLASH_CTRL_VER := 3 87else 88KBUILD_CPPFLAGS += -DCHIP_BEST1400 89export CHIP_FLASH_CTRL_VER := 2 90endif 91CPU := m4 92export CHIP_HAS_FPU := 1 93export CHIP_HAS_USB := 1 94export CHIP_HAS_USBPHY := 0 95export CHIP_HAS_SDMMC := 0 96export CHIP_HAS_PSRAM := 0 97export CHIP_HAS_SPI := 1 98export CHIP_HAS_SPILCD := 0 99export CHIP_HAS_SPIPHY := 0 100export CHIP_HAS_I2C := 1 101export CHIP_HAS_UART := 3 102export CHIP_HAS_DMA := 1 103export CHIP_HAS_SPDIF := 0 104export CHIP_HAS_TRANSQ := 0 105export CHIP_HAS_EXT_PMU := 0 106export CHIP_HAS_AUDIO_CONST_ROM := 0 107export CHIP_SPI_VER := 3 108export BTDUMP_ENABLE := 1 109export CHIP_HAS_EC_CODEC_REF := 1 110export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 111export CHIP_ROM_UTILS_VER := 1 112export CHIP_HAS_SECURE_BOOT := 1 113export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 114export NO_LPU_26M ?= 1 115else ifeq ($(CHIP),best1501) 116KBUILD_CPPFLAGS += -DCHIP_BEST1501 117ifeq ($(CHIP_SUBSYS),sensor_hub) 118SUBSYS_VALID := 1 119KBUILD_CPPFLAGS += -DCHIP_SUBSYS_SENS 120export CHIP_HAS_DMA := 1 121export CHIP_HAS_I2C := 4 122export CHIP_HAS_SPILCD := 1 123export CHIP_HAS_UART := 2 124export CHIP_HAS_I2S := 1 125else 126export CHIP_HAS_USB := 1 127export CHIP_HAS_USBPHY := 1 128export CHIP_HAS_SDMMC := 1 129export CHIP_HAS_CP := 1 130export CHIP_HAS_DMA := 2 131export CHIP_HAS_I2C := 2 132export CHIP_HAS_UART := 3 133export CHIP_HAS_SPDIF := 1 134export CHIP_HAS_I2S := 2 135endif 136CPU := m33 137export CHIP_HAS_FPU := 1 138export CHIP_HAS_PSRAM := 0 139export CHIP_HAS_SPI := 1 140export CHIP_HAS_SPIPHY := 0 141export CHIP_HAS_TDM := 1 142export CHIP_HAS_I2S_TDM_TRIGGER := 1 143export CHIP_HAS_TRANSQ := 0 144export CHIP_HAS_PSC := 1 145export CHIP_HAS_EXT_PMU := 1 146export CHIP_HAS_AUDIO_CONST_ROM := 0 147export CHIP_FLASH_CTRL_VER := 4 148export CHIP_PSRAM_CTRL_VER := 2 149export CHIP_SPI_VER := 5 150export CHIP_CACHE_VER := 3 151export CHIP_INTERSYS_VER := 2 152export CHIP_GPIO_VER := 2 153export PSC_GPIO_IRQ_CTRL := 1 154export CHIP_RAM_BOOT := 1 155export CHIP_HAS_EC_CODEC_REF := 1 156export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 157export CHIP_ROM_UTILS_VER := 2 158export CHIP_HAS_SECURE_BOOT := 1 159export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 1 160export BLE_V2 :=1 161else ifeq ($(CHIP),best1600) 162KBUILD_CPPFLAGS += -DCHIP_BEST1600 163ifeq ($(BTH_AS_MAIN_MCU),1) 164export BOOT_LOADER_ENTRY_HOOK := 1 165KBUILD_CPPFLAGS += -DBTH_AS_MAIN_MCU 166endif 167ifeq ($(CHIP_SUBSYS),bth) 168SUBSYS_VALID := 1 169KBUILD_CPPFLAGS += -DCHIP_SUBSYS_BTH 170CPU := m33 171LIBC_ROM := 0 172CRC32_ROM := 0 173SHA256_ROM := 0 174export CHIP_HAS_DMA := 1 175export CHIP_HAS_UART := 2 176ifeq ($(FPGA),1) 177export CHIP_HAS_I2C := 1 178export CHIP_HAS_I2S := 1 179export CHIP_HAS_TDM := 1 180endif 181else ifeq ($(CHIP_SUBSYS),sensor_hub) 182SUBSYS_VALID := 1 183KBUILD_CPPFLAGS += -DCHIP_SUBSYS_SENS 184CPU := m33 185export CHIP_HAS_DMA := 1 186export CHIP_HAS_I2C := 5 187export CHIP_HAS_SPI := 1 188export CHIP_HAS_SPILCD := 1 189export CHIP_HAS_UART := 3 190export CHIP_HAS_I2S := 1 191export CHIP_HAS_TDM := 1 192export CHIP_HAS_I2S_TDM_TRIGGER := 1 193else 194CPU := m55 195export CHIP_HAS_USB := 1 196export CHIP_HAS_USBPHY := 1 197export CHIP_HAS_SDMMC := 1 198export CHIP_HAS_PSRAM := 1 199export CHIP_HAS_DMA := 2 200export CHIP_HAS_I2C := 2 201export CHIP_HAS_SPI := 1 202export CHIP_HAS_SPILCD := 1 203export CHIP_HAS_UART := 2 204export CHIP_HAS_SPDIF := 1 205export CHIP_HAS_I2S := 2 206export CHIP_HAS_TDM := 1 207export CHIP_HAS_I2S_TDM_TRIGGER := 1 208endif 209export CHIP_HAS_FPU := 1 210export CHIP_HAS_TRANSQ := 0 211export CHIP_HAS_PSC := 1 212export CHIP_HAS_EXT_PMU := 1 213export CHIP_CACHE_VER := 4 214export CHIP_FLASH_CTRL_VER := 6 215export CHIP_PSRAM_CTRL_VER := 2 216export CHIP_SPI_VER := 5 217export CHIP_INTERSYS_VER := 2 218export CHIP_GPIO_VER := 2 219export PSC_GPIO_IRQ_CTRL := 1 220export CHIP_RAM_BOOT := 0 221export CHIP_HAS_EC_CODEC_REF := 1 222export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 223export CHIP_ROM_UTILS_VER := 2 224export CHIP_HAS_SECURE_BOOT := 1 225export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 1 226export BLE_V2 :=1 227else ifeq ($(CHIP),best2000) 228KBUILD_CPPFLAGS += -DCHIP_BEST2000 229CPU := m4 230export CHIP_HAS_FPU := 1 231export CHIP_HAS_USB := 1 232export CHIP_HAS_USBPHY := 1 233export CHIP_HAS_SDMMC := 1 234export CHIP_HAS_PSRAM := 1 235export CHIP_HAS_SPI := 1 236export CHIP_HAS_SPILCD := 1 237export CHIP_HAS_SPIPHY := 1 238export CHIP_HAS_I2C := 1 239export CHIP_HAS_UART := 3 240export CHIP_HAS_DMA := 2 241export CHIP_HAS_SPDIF := 2 242export CHIP_HAS_TRANSQ := 1 243export CHIP_HAS_PSC := 1 244export CHIP_HAS_EXT_PMU := 0 245export CHIP_HAS_AUDIO_CONST_ROM := 0 246export CHIP_FLASH_CTRL_VER := 1 247export CHIP_PSRAM_CTRL_VER := 1 248export CHIP_SPI_VER := 1 249export CHIP_HAS_EC_CODEC_REF := 0 250export CHIP_HAS_SCO_DMA_SNAPSHOT := 0 251export CHIP_ROM_UTILS_VER := 1 252export CHIP_HAS_SECURE_BOOT := 1 253export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 254export NO_LPU_26M ?= 1 255else ifeq ($(CHIP),best2001) 256KBUILD_CPPFLAGS += -DCHIP_BEST2001 257ifeq ($(CHIP_SUBSYS),dsp) 258SUBSYS_VALID := 1 259KBUILD_CPPFLAGS += -DCHIP_BEST2001_DSP 260CPU := a7 261DSP_ENABLE ?= 1 262else 263CPU := m33 264export CHIP_HAS_CP := 1 265endif 266export CHIP_HAS_FPU := 1 267export CHIP_HAS_USB := 1 268export CHIP_HAS_USBPHY := 1 269export CHIP_HAS_SDMMC := 1 270export CHIP_HAS_PSRAM := 1 271export CHIP_HAS_PSRAMUHS := 1 272export CHIP_HAS_SPI := 1 273export CHIP_HAS_SPILCD := 1 274export CHIP_HAS_SPIPHY := 1 275export CHIP_HAS_SPIDPD := 1 276export CHIP_HAS_I2C := 2 277export CHIP_HAS_UART := 3 278ifeq ($(DSP_ENABLE), 1) 279export DSP_USE_GPDMA ?= 1 280ifeq ($(LARGE_RAM), 1) 281$(error LARGE_RAM conflicts with DSP_ENABLE) 282endif 283endif 284ifeq ($(DSP_USE_GPDMA), 1) 285export CHIP_HAS_DMA := 1 286KBUILD_CPPFLAGS += -DDSP_USE_GPDMA 287else 288ifeq ($(CHIP_SUBSYS),dsp) 289export CHIP_HAS_DMA := 0 290else 291export CHIP_HAS_DMA := 2 292endif 293endif 294export CHIP_HAS_SPDIF := 1 295export CHIP_HAS_TRANSQ := 2 296export CHIP_HAS_EXT_PMU := 0 297export CHIP_HAS_AUDIO_CONST_ROM := 0 298export CHIP_FLASH_CTRL_VER := 3 299export CHIP_PSRAM_CTRL_VER := 2 300export CHIP_SPI_VER := 4 301export CHIP_CACHE_VER := 2 302export CHIP_HAS_EC_CODEC_REF := 1 303export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 304export CHIP_ROM_UTILS_VER := 1 305export CHIP_HAS_SECURE_BOOT := 1 306export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 307export NO_LPU_26M ?= 1 308export FLASH_SIZE ?= 0x1000000 309export OSC_26M_X4_AUD2BB := 0 310export USB_USE_USBPLL := 1 311export CHIP_HAS_A7_DSP := 1 312export CHIP_HAS_WIFI := 1 313export A7_DSP_SPEED ?= 1100 314#780:780M, 1000:1G, 1100:1.1G 315else ifeq ($(CHIP),best2002) 316KBUILD_CPPFLAGS += -DCHIP_BEST2002 317CPU := m33 318export CHIP_HAS_CP := 1 319export CHIP_INTERSYS_VER := 2 320export CHIP_HAS_FPU := 1 321export CHIP_HAS_USB := 1 322export CHIP_HAS_USBPHY := 1 323export CHIP_HAS_SDMMC := 1 324export CHIP_HAS_SPI := 0 325export CHIP_HAS_SPILCD := 1 326export CHIP_HAS_I2C := 1 327export CHIP_HAS_UART := 3 328export CHIP_HAS_DMA := 1 329export CHIP_HAS_I2S := 1 330export CHIP_HAS_TRANSQ := 1 331export CHIP_HAS_EXT_PMU := 0 332export AF_DEVICE_INT_CODEC ?= 0 333export CHIP_HAS_AUDIO_CONST_ROM := 0 334export CHIP_FLASH_CTRL_VER := 5 335export FLASH_LOCK_CP_ACCESS := 1 336export CHIP_SPI_VER := 4 337export CHIP_HAS_SPIPHY := 1 338export CHIP_CACHE_VER := 4 339export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 340export NO_LPU_26M ?= 0 341export FLASH_SIZE ?= 0x100000 342export OSC_26M_X4_AUD2BB := 0 343export USB_USE_USBPLL := 0 344export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 345export CHIP_ROM_UTILS_VER := 2 346export CHIP_HAS_SECURE_BOOT := 0 347export CHIP_HAS_SDIO_DEVICE := 1 348export CHIP_HAS_WIFI := 1 349export CHIP_WIFITSF_VER := 2 350else ifeq ($(CHIP),best2003) 351KBUILD_CPPFLAGS += -DCHIP_BEST2003 352#KBUILD_CPPFLAGS += -DEXTEND_TRANSQ_2003 353ifeq ($(CHIP_SUBSYS),dsp) 354SUBSYS_VALID := 1 355KBUILD_CPPFLAGS += -DCHIP_BEST2003_DSP 356CPU := a7 357DSP_ENABLE ?= 1 358else 359ifeq ($(CHIP_SUBSYS),cmcp) 360SUBSYS_VALID := 1 361endif 362CPU := m33 363export CHIP_HAS_CP := 1 364endif 365export CHIP_INTERSYS_VER := 2 366export CHIP_HAS_FPU := 1 367export CHIP_HAS_USB := 1 368export CHIP_HAS_USBPHY := 1 369export CHIP_HAS_SDMMC := 1 370export CHIP_HAS_PSRAM := 1 371export CHIP_HAS_PSRAMUHS := 1 372export CHIP_HAS_SPI := 1 373export CHIP_HAS_SPILCD := 1 374export CHIP_HAS_SPIPHY := 1 375export CHIP_HAS_SPIDPD := 0 376export CHIP_HAS_I2C := 3 377export CHIP_HAS_UART := 4 378ifeq ($(DSP_ENABLE), 1) 379export DSP_USE_GPDMA ?= 1 380ifeq ($(LARGE_RAM), 1) 381$(error LARGE_RAM conflicts with DSP_ENABLE) 382endif 383endif 384ifeq ($(DSP_USE_GPDMA), 1) 385export CHIP_HAS_DMA := 1 386KBUILD_CPPFLAGS += -DDSP_USE_GPDMA 387else 388ifeq ($(CHIP_SUBSYS),dsp) 389export CHIP_HAS_DMA := 0 390else 391export CHIP_HAS_DMA := 2 392endif 393endif 394export CHIP_HAS_I2S := 2 395export CHIP_HAS_SPDIF := 1 396export CHIP_HAS_TRANSQ := 2 397export CHIP_HAS_EXT_PMU := 0 398export CHIP_HAS_AUDIO_CONST_ROM := 0 399export CHIP_FLASH_CTRL_VER := 5 400export NANDFLASH_SUPPORT ?= 0 401export FLASH_LOCK_CP_ACCESS := 1 402export CHIP_PSRAM_CTRL_VER := 3 403export CHIP_PSRAM_SQPI_MODE := 0 404export CHIP_SPI_VER := 4 405export CHIP_CACHE_VER := 4 406export CHIP_HAS_EC_CODEC_REF := 1 407export CHIP_HAS_SCO_DMA_SNAPSHOT := 0 408export NO_LPU_26M ?= 0 409export FLASH_SIZE ?= 0x1000000 410export OSC_26M_X4_AUD2BB := 0 411export USB_USE_USBPLL := 0 412export CHIP_HAS_A7_DSP := 1 413#780:780M, 1000:1G, 1100:1.1G 414export A7_DSP_SPEED ?= 1100 415export PSRAMUHS_SPEED ?= 900 416export PSRAM_SPEED ?= 200 417export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 418export CHIP_ROM_UTILS_VER := 2 419export CHIP_HAS_SECURE_BOOT := 1 420export CHIP_HAS_WIFI := 1 421else ifeq ($(CHIP),best2300) 422KBUILD_CPPFLAGS += -DCHIP_BEST2300 423CPU := m4 424export CHIP_HAS_FPU := 1 425export CHIP_HAS_USB := 1 426export CHIP_HAS_USBPHY := 1 427export CHIP_HAS_SDMMC := 1 428export CHIP_HAS_PSRAM := 0 429export CHIP_HAS_SPI := 1 430export CHIP_HAS_SPILCD := 1 431export CHIP_HAS_SPIPHY := 1 432export CHIP_HAS_I2C := 2 433export CHIP_HAS_UART := 3 434export CHIP_HAS_DMA := 2 435export CHIP_HAS_I2S := 1 436export CHIP_HAS_SPDIF := 1 437export CHIP_HAS_TRANSQ := 0 438export CHIP_HAS_PSC := 1 439export CHIP_HAS_EXT_PMU := 1 440export CHIP_HAS_AUDIO_CONST_ROM := 0 441export CHIP_FLASH_CTRL_VER := 2 442export CHIP_SPI_VER := 2 443export CHIP_HAS_EC_CODEC_REF := 0 444export CHIP_HAS_SCO_DMA_SNAPSHOT := 0 445export CHIP_ROM_UTILS_VER := 1 446export CHIP_HAS_SECURE_BOOT := 1 447export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 448export NO_LPU_26M ?= 1 449else ifeq ($(CHIP),best2300a) 450KBUILD_CPPFLAGS += -DCHIP_BEST2300A 451CPU := m33 452LIBC_ROM := 0 453CRC32_ROM := 0 454SHA256_ROM := 0 455export LIBC_OVERRIDE ?= 1 456export CHIP_HAS_FPU := 1 457export CHIP_HAS_USB := 1 458export CHIP_HAS_USBPHY := 1 459export CHIP_HAS_SDMMC := 1 460export CHIP_HAS_PSRAM := 0 461export CHIP_HAS_SPI := 1 462export CHIP_HAS_SPILCD := 1 463export CHIP_HAS_SPIPHY := 1 464export CHIP_HAS_I2C := 3 465export CHIP_HAS_UART := 3 466export CHIP_HAS_DMA := 2 467export CHIP_HAS_I2S := 2 468export CHIP_HAS_TDM := 2 469export CHIP_HAS_I2S_TDM_TRIGGER := 1 470export CHIP_HAS_SPDIF := 1 471export CHIP_HAS_TRANSQ := 0 472export CHIP_HAS_PSC := 1 473export CHIP_HAS_EXT_PMU := 1 474export CHIP_HAS_CP := 1 475export CHIP_HAS_AUDIO_CONST_ROM := 0 476export CHIP_FLASH_CTRL_VER := 3 477export CHIP_SPI_VER := 4 478export CHIP_CACHE_VER := 2 479export CHIP_RAM_BOOT := 1 480export CHIP_HAS_EC_CODEC_REF := 1 481export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 482export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 1 483export CHIP_ROM_UTILS_VER := 1 484export CHIP_HAS_SECURE_BOOT := 1 485export NO_LPU_26M ?= 1 486export BOOT_LOADER_ENTRY_HOOK ?= 1 487else ifeq ($(CHIP),best2300p) 488KBUILD_CPPFLAGS += -DCHIP_BEST2300P 489CPU := m4 490export CHIP_HAS_FPU := 1 491export CHIP_HAS_USB := 1 492export CHIP_HAS_USBPHY := 1 493export CHIP_HAS_SDMMC := 1 494export CHIP_HAS_PSRAM := 0 495export CHIP_HAS_SPI := 1 496export CHIP_HAS_SPILCD := 1 497export CHIP_HAS_SPIPHY := 1 498export CHIP_HAS_I2C := 2 499export CHIP_HAS_UART := 3 500export CHIP_HAS_DMA := 2 501export CHIP_HAS_I2S := 2 502export CHIP_HAS_TDM := 2 503export CHIP_HAS_SPDIF := 1 504export CHIP_HAS_TRANSQ := 0 505export CHIP_HAS_PSC := 1 506export CHIP_HAS_EXT_PMU := 1 507export CHIP_HAS_CP := 1 508export CHIP_HAS_AUDIO_CONST_ROM := 0 509export CHIP_FLASH_CTRL_VER := 2 510export CHIP_SPI_VER := 3 511export CHIP_CACHE_VER := 2 512export CHIP_HAS_EC_CODEC_REF := 1 513export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 514export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 515export CHIP_ROM_UTILS_VER := 1 516export CHIP_HAS_SECURE_BOOT := 1 517export NO_LPU_26M ?= 1 518else ifeq ($(CHIP),best3001) 519ifeq ($(CHIP_SUBTYPE),best3005) 520SUBTYPE_VALID := 1 521KBUILD_CPPFLAGS += -DCHIP_BEST3005 522export CHIP_CACHE_VER := 2 523export CHIP_FLASH_CTRL_VER := 2 524else 525KBUILD_CPPFLAGS += -DCHIP_BEST3001 526export CHIP_FLASH_CTRL_VER := 1 527endif 528CPU := m4 529export CHIP_HAS_FPU := 1 530export CHIP_HAS_USB := 1 531export CHIP_HAS_USBPHY := 1 532export CHIP_HAS_SDMMC := 0 533export CHIP_HAS_PSRAM := 0 534export CHIP_HAS_SPI := 1 535export CHIP_HAS_SPILCD := 0 536export CHIP_HAS_SPIPHY := 0 537export CHIP_HAS_I2C := 1 538export CHIP_HAS_UART := 2 539export CHIP_HAS_DMA := 1 540export CHIP_HAS_SPDIF := 1 541export CHIP_HAS_TRANSQ := 0 542export CHIP_HAS_EXT_PMU := 0 543export CHIP_HAS_AUDIO_CONST_ROM := 0 544export CHIP_SPI_VER := 3 545export CHIP_HAS_EC_CODEC_REF := 0 546export CHIP_HAS_SCO_DMA_SNAPSHOT := 0 547export CHIP_ROM_UTILS_VER := 1 548export CHIP_HAS_SECURE_BOOT := 1 549export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 550export NO_LPU_26M ?= 1 551else ifeq ($(CHIP),best3003) 552KBUILD_CPPFLAGS += -DCHIP_BEST3003 553CPU := m33 554export CHIP_HAS_FPU := 1 555export CHIP_HAS_USB := 1 556export CHIP_HAS_USBPHY := 1 557export CHIP_HAS_SDMMC := 0 558export CHIP_HAS_PSRAM := 0 559export CHIP_HAS_SPI := 1 560export CHIP_HAS_SPILCD := 0 561export CHIP_HAS_SPIPHY := 0 562export CHIP_HAS_I2C := 1 563export CHIP_HAS_UART := 2 564export CHIP_HAS_DMA := 2 565export CHIP_HAS_SPDIF := 1 566export CHIP_HAS_TRANSQ := 0 567export CHIP_HAS_EXT_PMU := 0 568export CHIP_HAS_AUDIO_CONST_ROM := 0 569export CHIP_CACHE_VER := 2 570export CHIP_FLASH_CTRL_VER := 2 571export CHIP_SPI_VER := 4 572export CHIP_HAS_DCO ?= 1 573export CHIP_HAS_SECURE_BOOT := 1 574export NO_LPU_26M ?= 1 575else ifeq ($(CHIP),fpga1000) 576KBUILD_CPPFLAGS += -DCHIP_FPGA1000 577KBUILD_CPPFLAGS += -DCHIP_BEST1000 578CPU := m4 579export CHIP_HAS_FPU := 1 580export CHIP_HAS_USB := 1 581export CHIP_HAS_USBPHY := 0 582export CHIP_HAS_SDMMC := 1 583export CHIP_HAS_PSRAM := 1 584export CHIP_HAS_SPI := 1 585export CHIP_HAS_SPILCD := 1 586export CHIP_HAS_SPIPHY := 0 587export CHIP_HAS_I2C := 1 588export CHIP_HAS_UART := 2 589export CHIP_HAS_DMA := 2 590export CHIP_HAS_SPDIF := 1 591export CHIP_HAS_TRANSQ := 0 592export CHIP_HAS_EXT_PMU := 0 593export CHIP_HAS_AUDIO_CONST_ROM := 1 594export CHIP_FLASH_CTRL_VER := 1 595export CHIP_PSRAM_CTRL_VER := 1 596export CHIP_SPI_VER := 1 597export CHIP_HAS_EC_CODEC_REF := 0 598export CHIP_HAS_SCO_DMA_SNAPSHOT := 0 599export CHIP_ROM_UTILS_VER := 1 600export CHIP_HAS_SECURE_BOOT := 1 601export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 0 602export NO_LPU_26M ?= 1 603else ifeq ($(CHIP),best1501simu) 604KBUILD_CPPFLAGS += -DCHIP_BEST1501SIMU 605export CHIP_HAS_USB := 0 606export CHIP_HAS_USBPHY := 1 607export CHIP_HAS_SDMMC := 1 608export CHIP_HAS_CP := 0 609export CHIP_HAS_DMA := 2 610export CHIP_HAS_I2C := 2 611export CHIP_HAS_UART := 3 612export CHIP_HAS_SPDIF := 1 613export CHIP_HAS_I2S := 2 614CPU ?= m4 615 616ifeq ($(CPU),m4) 617KBUILD_CPPFLAGS += -DCPU_M4 618endif 619 620ifeq ($(CHIP_SUB),best1501p) 621KBUILD_CPPFLAGS += -D__FPGA_1501P__ 622KBUILD_CPPFLAGS += -DFLASH_ULTRA_LOW_SPEED 623endif 624 625 626export CHIP_HAS_FPU := 1 627export CHIP_HAS_PSRAM := 0 628export CHIP_HAS_SPI := 1 629export CHIP_HAS_SPIPHY := 0 630export CHIP_HAS_TDM := 1 631export CHIP_HAS_I2S_TDM_TRIGGER := 1 632export CHIP_HAS_TRANSQ := 0 633export CHIP_HAS_PSC := 0 634export CHIP_HAS_EXT_PMU := 1 635export CHIP_HAS_AUDIO_CONST_ROM := 0 636export CHIP_FLASH_CTRL_VER := 4 637export CHIP_PSRAM_CTRL_VER := 2 638export CHIP_SPI_VER := 5 639export CHIP_CACHE_VER := 3 640export CHIP_INTERSYS_VER := 2 641export CHIP_GPIO_VER := 2 642export PSC_GPIO_IRQ_CTRL := 1 643export CHIP_RAM_BOOT := 1 644export CHIP_HAS_EC_CODEC_REF := 1 645export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 646export CHIP_ROM_UTILS_VER := 2 647export CHIP_HAS_SECURE_BOOT := 0 648export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 1 649export BLE_V2 :=1 650ifeq ($(RAMSTART),1) 651KBUILD_CPPFLAGS += -DRAMSTART 652endif 653ifeq ($(MAGIC_NUM),1) 654KBUILD_CPPFLAGS += -DMAGIC_NUM_AUTO 655endif 656ifeq ($(ASIC_SIMU),1) 657KBUILD_CPPFLAGS += -DASIC_SIMU 658endif 659else ifeq ($(CHIP),best1600simu) 660KBUILD_CPPFLAGS += -DCHIP_BEST1600SIMU 661export CHIP_HAS_USB := 0 662export CHIP_HAS_USBPHY := 1 663export CHIP_HAS_SDMMC := 1 664export CHIP_HAS_CP := 0 665export CHIP_HAS_DMA := 2 666export CHIP_HAS_I2C := 2 667export CHIP_HAS_UART := 2 668export CHIP_HAS_SPDIF := 1 669export CHIP_HAS_I2S := 1 670CPU ?= m4 671 672ifeq ($(CPU),m4) 673KBUILD_CPPFLAGS += -DCPU_M4 674endif 675 676export CHIP_HAS_FPU := 1 677export CHIP_HAS_PSRAM := 0 678export CHIP_HAS_SPI := 1 679export CHIP_HAS_SPIPHY := 0 680export CHIP_HAS_TDM := 1 681export CHIP_HAS_I2S_TDM_TRIGGER := 1 682export CHIP_HAS_TRANSQ := 0 683export CHIP_HAS_PSC := 0 684export CHIP_HAS_EXT_PMU := 1 685export CHIP_HAS_AUDIO_CONST_ROM := 0 686export CHIP_FLASH_CTRL_VER := 4 687export CHIP_PSRAM_CTRL_VER := 2 688export CHIP_SPI_VER := 5 689export CHIP_CACHE_VER := 3 690export CHIP_INTERSYS_VER := 2 691export CHIP_GPIO_VER := 2 692export PSC_GPIO_IRQ_CTRL := 1 693export CHIP_RAM_BOOT := 1 694export CHIP_HAS_EC_CODEC_REF := 1 695export CHIP_HAS_SCO_DMA_SNAPSHOT := 1 696export CHIP_ROM_UTILS_VER := 2 697export CHIP_HAS_SECURE_BOOT := 0 698export CHIP_HAS_ANC_HW_GAIN_SMOOTHING := 1 699export BLE_V2 :=1 700ifeq ($(RAMSTART),1) 701KBUILD_CPPFLAGS += -DRAMSTART 702endif 703ifeq ($(MAGIC_NUM),1) 704KBUILD_CPPFLAGS += -DMAGIC_NUM_AUTO 705endif 706else 707$(error Invalid CHIP: $(CHIP)) 708endif 709 710ifneq ($(CHIP_SUBTYPE),) 711ifneq ($(SUBTYPE_VALID),1) 712$(error Invalid CHIP_SUBTYPE=$(CHIP_SUBTYPE) for CHIP=$(CHIP)) 713endif 714export CHIP_SUBTYPE 715endif 716 717ifneq ($(CHIP_SUBSYS),) 718ifneq ($(SUBSYS_VALID),1) 719$(error Invalid CHIP_SUBSYS=$(CHIP_SUBSYS) for CHIP=$(CHIP)) 720endif 721export CHIP_SUBSYS 722endif 723 724ifeq ($(CPU),) 725CPU := m33 726endif 727export CPU 728 729ifneq ($(filter a%,$(CPU)),) 730# Override lds file 731ifeq ($(PSRAMUHS_ENABLE), 1) 732LDS_FILE := armca_psram.lds 733else 734ifeq ($(FT_TEST_2001),1) 735LDS_FILE := armca_ft2001.lds 736else 737LDS_FILE := armca.lds 738endif 739endif 740 741ifeq ($(GEN_BOOT_SECTION),1) 742CPPFLAGS_${LDS_FILE} += -DGEN_BOOT_SECTION 743endif 744 745ifeq ($(EXEC_IN_RAM),1) 746CPPFLAGS_${LDS_FILE} += -DEXEC_IN_RAM 747else ifeq ($(EXEC_IN_PSRAM),1) 748CPPFLAGS_${LDS_FILE} += -DEXEC_IN_PSRAM 749endif 750endif 751 752ifeq ($(CHIP_HAS_A7_DSP),1) 753KBUILD_CPPFLAGS += -DCHIP_HAS_A7_DSP 754endif 755 756KBUILD_CPPFLAGS += -DCHIP_HAS_UART=$(CHIP_HAS_UART) 757ifneq ($(CHIP_HAS_I2C),) 758KBUILD_CPPFLAGS += -DCHIP_HAS_I2C=$(CHIP_HAS_I2C) 759endif 760 761ifeq ($(CHIP_HAS_USB),1) 762KBUILD_CPPFLAGS += -DCHIP_HAS_USB 763endif 764 765ifneq ($(filter-out 0,$(CHIP_HAS_TRANSQ)),) 766KBUILD_CPPFLAGS += -DCHIP_HAS_TRANSQ=$(CHIP_HAS_TRANSQ) 767endif 768 769ifeq ($(NO_TRUSTZONE),1) 770KBUILD_CPPFLAGS += -DNO_TRUSTZONE 771endif 772 773ifneq ($(NUTTX_BUILD),1) 774ifneq ($(filter 1,$(NO_CP) $(ARM_CMSE)),) 775export CHIP_HAS_CP := 0 776endif 777endif 778 779ifeq ($(CHIP_HAS_CP),1) 780KBUILD_CPPFLAGS += -DCHIP_HAS_CP 781endif 782 783ifeq ($(CHIP_HAS_AUDIO_CONST_ROM),1) 784KBUILD_CPPFLAGS += -DCHIP_HAS_AUDIO_CONST_ROM 785endif 786 787ifeq ($(CHIP_HAS_ANC_HW_GAIN_SMOOTHING),1) 788KBUILD_CPPFLAGS += -DANC_HW_GAIN_SMOOTHING 789endif 790 791ifeq ($(CORE_SLEEP_POWER_DOWN),1) 792KBUILD_CPPFLAGS += -DCORE_SLEEP_POWER_DOWN 793endif 794 795ifneq ($(SECURE_BOOT_VER),) 796KBUILD_CPPFLAGS += -DSECURE_BOOT_VER=$(SECURE_BOOT_VER) 797endif 798 799ifeq ($(CHIP_HAS_EXT_PMU),1) 800export PMU_IRQ_UNIFIED ?= 1 801endif 802 803# ------------------------------------------- 804# Standard C library 805# ------------------------------------------- 806export NUTTX_BUILD ?= 0 807 808export NOSTD 809export LIBC_ROM 810 811ifeq ($(NOSTD),1) 812 813ifeq ($(MBED),1) 814$(error Invalid configuration: MBED needs standard C library support) 815endif 816ifeq ($(RTOS),1) 817ifneq ($(NO_LIBC),1) 818$(error Invalid configuration: RTOS needs standard C library support) 819endif 820endif 821 822ifneq ($(NO_LIBC),1) 823core-y += utils/libc/ 824KBUILD_CPPFLAGS += -Iutils/libc/inc 825endif 826 827SPECS_CFLAGS := 828 829LIB_LDFLAGS := $(filter-out -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys,$(LIB_LDFLAGS)) 830 831KBUILD_CPPFLAGS += -ffreestanding 832ifeq ($(TOOLCHAIN),armclang) 833# 1) Avoid -nostdinc 834# CMSIS header files need arm_compat.h, which is one of toolchain's standard header files 835# 2) Always -nostdlib for compiling C/C++ files 836# Never convert standard API calls to non-standard library calls, but just emit standard API calls 837# 3) Avoid -nostdlib for linking final image 838# Some 64-bit calculations and math functions need toolchain's standard library 839KBUILD_CPPFLAGS += -nostdlib 840else 841KBUILD_CPPFLAGS += -nostdinc 842CFLAGS_IMAGE += -nostdlib 843endif 844 845KBUILD_CPPFLAGS += -DNOSTD 846 847else # NOSTD != 1 848 849ifneq ($(filter 1,$(LIBC_ROM) $(LIBC_OVERRIDE)),) 850core-y += utils/libc/ 851endif 852 853ifeq ($(TOOLCHAIN),armclang) 854LIB_LDFLAGS := $(filter-out -lsupc++,$(LIB_LDFLAGS)) 855else 856ifneq ($(NOSYS),1) 857SPECS_CFLAGS := --specs=nano.specs 858else 859SPECS_CFLAGS := --specs=nosys.specs 860endif 861LIB_LDFLAGS += -lm -lc -lgcc -lnosys 862endif 863 864endif # NOSTD != 1 865 866# ------------------------------------------- 867# RTOS library 868# ------------------------------------------- 869 870export RTOS 871 872ifeq ($(RTOS),1) 873 874ifeq ($(CPU),m4) 875KERNEL ?= RTX 876else 877KERNEL ?= RTX5 878ifeq ($(KERNEL),RTX) 879$(error RTX doesn't support $(CPU)) 880endif 881endif 882 883export KERNEL 884 885VALID_KERNEL_LIST := RTX RTX5 FREERTOS NUTTX RTT LITEOS_M LITEOS_A RHINO 886 887ifeq ($(filter $(VALID_KERNEL_LIST),$(KERNEL)),) 888$(error Bad KERNEL=$(KERNEL). Valid values are: $(VALID_KERNEL_LIST)) 889endif 890 891core-y += rtos/ 892 893KBUILD_CPPFLAGS += -DRTOS 894KBUILD_CPPFLAGS += -DKERNEL_$(KERNEL) 895#CPPFLAGS_${LDS_FILE} += -DKERNEL_$(KERNEL) 896 897ifeq ($(KERNEL),LITEOS_M) 898KBUILD_CPPFLAGS += -DPOSIX_SUPPORT 899ifeq ($(GEN_LIB),1) 900KBUILD_CPPFLAGS += -DOHOS_LIB 901endif 902ifeq ($(SDK),1) 903KBUILD_CPPFLAGS += -DOHOS_SDK 904endif 905endif 906 907ifeq ($(KERNEL),NUTTX) 908LIB_LDFLAGS := $(filter-out -lstdc++ -lc -lnosys,$(LIB_LDFLAGS)) -nodefaultlibs -nostdlib 909KBUILD_CPPFLAGS += \ 910 -Iinclude/rtos/nuttx/ 911else ifeq ($(KERNEL),RTX) 912KBUILD_CPPFLAGS += \ 913 -Iinclude/rtos/rtx/ 914KBUILD_CPPFLAGS += -D__RTX_CPU_STATISTICS__=1 915#KBUILD_CPPFLAGS += -DTASK_HUNG_CHECK_ENABLED=1 916else ifeq ($(KERNEL),RTX5) 917OS_IDLESTKSIZE ?= 1024 918KBUILD_CPPFLAGS += \ 919 -Iinclude/rtos/rtx5/ 920KBUILD_CPPFLAGS += -D__RTX_CPU_STATISTICS__=1 921#KBUILD_CPPFLAGS += -DTASK_HUNG_CHECK_ENABLED=1 922else ifeq ($(KERNEL),RTT) 923KBUILD_CPPFLAGS += -DOS_MAIN_SUPPORT=1 924KBUILD_CPPFLAGS += -Irtos/rt_thread/CMSIS/RTOS2/RT_Thread/src/ \ 925 -Irtos/rt_thread/CMSIS/CMSIS_5/CMSIS/Core/Include/ \ 926 -Irtos/rt_thread/CMSIS/CMSIS_5/CMSIS/RTOS2/Include/ \ 927 -Irtos/rt_thread/CMSIS/CMSIS_5/CMSIS/RTOS2/Template/ \ 928 -Irtos/rt_thread/bsp/best200x_$(CPU)/ \ 929 -Irtos/rt_thread/include/ \ 930 -Irtos/rt_thread/components/finsh/ \ 931 -Irtos/rt_thread/ 932 933ifeq ($(CPU),a7) 934KBUILD_CPPFLAGS += -Irtos/rt_thread/libcpu/arm/cortex-a/ 935KBUILD_CPPFLAGS += -Wno-stringop-truncation -Wno-stringop-overflow 936else 937KBUILD_CPPFLAGS += -Irtos/rt_thread/libcpu/arm/cortex-m33/ 938endif 939cflags-y += -Wno-error=implicit-function-declaration -Wno-error=implicit-function-declaration 940else ifeq ($(KERNEL),RHINO) 941KBUILD_CPPFLAGS += \ 942 -Irtos/rhino \ 943 -Irtos/rhino/include \ 944 -Irtos/rhino/cmsis 945ifneq ($(CPU),a7) 946KBUILD_CPPFLAGS += \ 947 -Irtos/rhino/arch/arm/armv7m/include 948else 949KBUILD_CPPFLAGS += \ 950 -Irtos/rhino/arch/arm/armv7a/include \ 951 -Irtos/rhino/smp 952endif 953else ifeq ($(KERNEL),FREERTOS) 954KBUILD_CPPFLAGS += \ 955 -Iinclude/rtos/freertos/ 956ifeq ($(CPU),m33) 957KBUILD_CPPFLAGS += -Iinclude/rtos/freertos/ARM_CM33/ 958else 959KBUILD_CPPFLAGS += -Iinclude/rtos/freertos/ARM_CM4F/ 960endif 961#if kernel is LITEOS_M and LITEOS_A 962else ifneq (, $(filter $(KERNEL),LITEOS_M LITEOS_A)) 963KBUILD_CPPFLAGS += -DCMSIS_OS_VER=2 964RTOS_NAME := $(shell echo $(KERNEL) | tr A-Z a-z) 965KBUILD_CPPFLAGS += -Iinclude/rtos/liteos/$(RTOS_NAME)/kal/cmsis 966# KBUILD_CPPFLAGS += -Iinclude/rtos/liteos/$(RTOS_NAME)/kal/posix/include 967ifeq ($(KERNEL),LITEOS_A) 968CPPFLAGS_${LDS_FILE} += -DOS_HEAP_SIZE=$(OS_HEAP_SIZE) 969endif 970endif #rtx 971 972ifeq ($(OSTICK_USE_FAST_TIMER), 1) 973KBUILD_CPPFLAGS += -DOSTICK_USE_FAST_TIMER 974endif 975 976ifeq ($(TWS),1) 977OS_TASKCNT ?= 12 978OS_SCHEDULERSTKSIZE ?= 768 979OS_IDLESTKSIZE ?= 512 980else 981OS_TASKCNT ?= 20 982OS_SCHEDULERSTKSIZE ?= 512 983OS_IDLESTKSIZE ?= 256 984endif 985 986ifeq ($(CPU),m33) 987OS_CLOCK_NOMINAL ?= 16000 988else 989OS_CLOCK_NOMINAL ?= 32000 990endif 991OS_FIFOSZ ?= 24 992 993export OS_TASKCNT 994export OS_SCHEDULERSTKSIZE 995export OS_IDLESTKSIZE 996export OS_CLOCK_NOMINAL 997export OS_FIFOSZ 998 999ifeq ($(OS_THREAD_TIMING_STATISTICS_ENABLE),1) 1000export OS_THREAD_TIMING_STATISTICS_ENABLE 1001KBUILD_CPPFLAGS += -DOS_THREAD_TIMING_STATISTICS_ENABLE 1002KBUILD_CPPFLAGS += -DOS_THREAD_TIMING_STATISTICS_PEROID_MS=6000 1003endif 1004 1005# shall set WATCHER_DOG ?= 0 when enable this feature 1006ifeq ($(SPECIFIC_FREQ_POWER_CONSUMPTION_MEASUREMENT_ENABLE),1) 1007export SPECIFIC_FREQ_POWER_CONSUMPTION_MEASUREMENT_ENABLE 1008KBUILD_CPPFLAGS += -DSPECIFIC_FREQ_POWER_CONSUMPTION_MEASUREMENT_ENABLE 1009IGNORE_POWER_ON_KEY_DURING_BOOT_UP ?= 1 1010endif 1011 1012endif # RTOS 1013 1014# ------------------------------------------- 1015# MBED library 1016# ------------------------------------------- 1017 1018export MBED 1019 1020ifeq ($(MBED),1) 1021 1022core-y += mbed/ 1023 1024KBUILD_CPPFLAGS += -DMBED 1025 1026KBUILD_CPPFLAGS += \ 1027 -Imbed/api \ 1028 -Imbed/common \ 1029 1030endif 1031 1032# ------------------------------------------- 1033# DEBUG functions 1034# ------------------------------------------- 1035 1036export DEBUG 1037 1038ifeq ($(CHIP),best1400) 1039OPT_LEVEL ?= s 1040endif 1041 1042ifneq ($(OPT_LEVEL),) 1043KBUILD_CFLAGS += -O$(OPT_LEVEL) 1044else 1045KBUILD_CFLAGS += -O2 1046endif 1047 1048ifeq ($(NOSTD),1) 1049export NO_BUF_OVERFLOW_CHECK := 1 1050endif 1051 1052ifeq ($(DEBUG),1) 1053 1054KBUILD_CPPFLAGS += -DDEBUG 1055 1056ifneq ($(NO_BUF_OVERFLOW_CHECK),1) 1057KBUILD_CFLAGS += -fstack-protector-strong 1058endif 1059 1060else # !DEBUG 1061 1062KBUILD_CPPFLAGS += -DNDEBUG 1063 1064REL_TRACE_ENABLE ?= 1 1065ifeq ($(REL_TRACE_ENABLE),1) 1066KBUILD_CPPFLAGS += -DREL_TRACE_ENABLE 1067endif 1068 1069endif # !DEBUG 1070 1071ifeq ($(NO_CHK_TRC_FMT),1) 1072KBUILD_CPPFLAGS += -DNO_CHK_TRC_FMT 1073else 1074# Typedef int32_t to int, and typedef uint32_t to unsigned int 1075KBUILD_CPPFLAGS += -U__INT32_TYPE__ -D__INT32_TYPE__=int -U__UINT32_TYPE__ 1076endif 1077 1078ifeq ($(MERGE_CONST),1) 1079ifeq ($(TOOLCHAIN),armclang) 1080$(error MERGE_CONST is not supported in $(TOOLCHAIN)) 1081else 1082KBUILD_CPPFLAGS += -fmerge-constants -fmerge-all-constants 1083endif 1084endif 1085 1086ifeq ($(CORE_DUMP),1) 1087export CORE_DUMP 1088core-y += utils/crash_catcher/ utils/xyzmodem/ 1089endif 1090 1091# ------------------------------------------- 1092# SIMU functions 1093# ------------------------------------------- 1094 1095export SIMU 1096 1097ifeq ($(SIMU),1) 1098 1099KBUILD_CPPFLAGS += -DSIMU 1100 1101ifeq ($(ROM_SRAM_TEXT_SIMU),1) 1102KBUILD_CPPFLAGS += -DROM_SRAM_TEXT_SIMU 1103endif 1104 1105endif 1106 1107# ------------------------------------------- 1108# FPGA functions 1109# ------------------------------------------- 1110 1111export FPGA 1112 1113ifeq ($(FPGA),1) 1114 1115KBUILD_CPPFLAGS += -DFPGA 1116 1117endif 1118 1119# ------------------------------------------- 1120# ROM_BUILD functions 1121# ------------------------------------------- 1122 1123export ROM_BUILD 1124 1125ifeq ($(ROM_BUILD),1) 1126 1127KBUILD_CPPFLAGS += -DROM_BUILD 1128 1129endif 1130 1131# ------------------------------------------- 1132# NANDFLASH_BUILD functions 1133# ------------------------------------------- 1134 1135export NANDFLASH_BUILD 1136 1137ifeq ($(NANDFLASH_BUILD),1) 1138 1139KBUILD_CPPFLAGS += -DNANDFLASH_BUILD 1140 1141endif 1142 1143# Limit the length of REVISION_INFO if ROM_BUILD or using rom.lds 1144ifneq ($(filter 1,$(ROM_BUILD))$(filter rom.lds,$(LDS_FILE)),) 1145ifeq ($(CHIP),best1000) 1146REVISION_INFO := x 1147else 1148REVISION_INFO := $(GIT_REVISION) 1149endif 1150endif 1151 1152# ------------------------------------------- 1153# PROGRAMMER functions 1154# ------------------------------------------- 1155 1156export PROGRAMMER 1157 1158ifeq ($(PROGRAMMER),1) 1159 1160KBUILD_CPPFLAGS += -DPROGRAMMER 1161 1162ifeq ($(NO_SIMPLE_TASK_SWITCH),1) 1163KBUILD_CPPFLAGS += -DNO_SIMPLE_TASK_SWITCH 1164endif 1165 1166endif 1167 1168# ------------------------------------------- 1169# ROM_UTILS functions 1170# ------------------------------------------- 1171 1172export ROM_UTILS_ON ?= 0 1173ifeq ($(ROM_UTILS_ON),1) 1174KBUILD_CPPFLAGS += -DROM_UTILS_ON 1175core-y += utils/rom_utils/ 1176endif 1177 1178# ------------------------------------------- 1179# Predefined common features 1180# ------------------------------------------- 1181 1182ifeq ($(OSC_26M_X4_AUD2BB),1) 1183export OSC_26M_X4_AUD2BB 1184export ANA_26M_X4_ENABLE ?= 1 1185export FLASH_LOW_SPEED ?= 0 1186endif 1187 1188ifeq ($(USB_AUDIO_APP),1) 1189export CODEC_HIGH_QUALITY ?= 1 1190endif 1191 1192ifeq ($(BT_ANC),1) 1193export ANC_APP := 1 1194endif 1195ifeq ($(ANC_APP),1) 1196export CODEC_HIGH_QUALITY ?= 1 1197endif 1198 1199ifeq ($(CHIP),best1000) 1200export AUDIO_OUTPUT_DIFF ?= 1 1201AUDIO_OUTPUT_DC_CALIB ?= $(AUDIO_OUTPUT_DIFF) 1202export AUDIO_OUTPUT_SMALL_GAIN_ATTN ?= 1 1203export AUDIO_OUTPUT_SW_GAIN ?= 1 1204export ANC_L_R_MISALIGN_WORKAROUND ?= 1 1205else ifeq ($(CHIP),best2000) 1206ifeq ($(CODEC_HIGH_QUALITY),1) 1207export VCODEC_VOLT ?= 2.5V 1208else 1209export VCODEC_VOLT ?= 1.6V 1210endif 1211ifeq ($(VCODEC_VOLT),2.5V) 1212AUDIO_OUTPUT_DC_CALIB ?= 0 1213AUDIO_OUTPUT_DC_CALIB_ANA ?= 1 1214else 1215AUDIO_OUTPUT_DC_CALIB ?= 1 1216AUDIO_OUTPUT_DC_CALIB_ANA ?= 0 1217endif 1218ifneq ($(AUDIO_OUTPUT_DIFF),1) 1219# Class-G module still needs improving 1220#DAC_CLASSG_ENABLE ?= 1 1221endif 1222else ifeq ($(CHIP),best2001) 1223export VCODEC_VOLT ?= 1.8V 1224AUDIO_OUTPUT_DC_CALIB ?= 0 1225AUDIO_OUTPUT_DC_CALIB_ANA ?= 1 1226else ifneq ($(filter best3001 best3003 best3005,$(CHIP)),) 1227export VCODEC_VOLT ?= 2.5V 1228AUDIO_OUTPUT_DC_CALIB ?= 1 1229AUDIO_OUTPUT_DC_CALIB_ANA ?= 0 1230else 1231AUDIO_OUTPUT_DC_CALIB ?= 0 1232AUDIO_OUTPUT_DC_CALIB_ANA ?= 1 1233endif 1234 1235ifeq ($(AUDIO_OUTPUT_DC_CALIB)-$(AUDIO_OUTPUT_DC_CALIB_ANA),1-1) 1236$(error AUDIO_OUTPUT_DC_CALIB and AUDIO_OUTPUT_DC_CALIB_ANA cannot be enabled at the same time) 1237endif 1238export AUDIO_OUTPUT_DC_CALIB 1239export AUDIO_OUTPUT_DC_CALIB_ANA 1240 1241ifeq ($(PLAYBACK_USE_I2S),1) 1242export PLAYBACK_USE_I2S 1243KBUILD_CPPFLAGS += -DPLAYBACK_USE_I2S 1244export AF_DEVICE_I2S := 1 1245ifeq ($(CHIP_HAS_I2S_TDM_TRIGGER),1) 1246KBUILD_CPPFLAGS += -DHW_I2S_TDM_TRIGGER 1247endif 1248endif 1249 1250ifeq ($(CHIP),best1400) 1251export AUDIO_RESAMPLE ?= 1 1252export PMU_IRQ_UNIFIED ?= 1 1253else ifeq ($(CHIP),best2001) 1254export AUDIO_RESAMPLE ?= 1 1255else ifeq ($(CHIP),best2003) 1256export AUDIO_RESAMPLE := 1 1257else 1258export AUDIO_RESAMPLE ?= 0 1259endif 1260 1261ifeq ($(AUDIO_RESAMPLE),1) 1262ifeq ($(CHIP),best1000) 1263export SW_PLAYBACK_RESAMPLE ?= 1 1264export SW_CAPTURE_RESAMPLE ?= 1 1265export NO_SCO_RESAMPLE ?= 1 1266endif # CHIP is best1000 1267ifeq ($(CHIP),best2000) 1268export SW_CAPTURE_RESAMPLE ?= 1 1269export SW_SCO_RESAMPLE ?= 1 1270export NO_SCO_RESAMPLE ?= 0 1271endif # CHIP is best2000 1272ifeq ($(BT_ANC),1) 1273ifeq ($(NO_SCO_RESAMPLE),1) 1274$(error BT_ANC and NO_SCO_RESAMPLE cannot be enabled at the same time) 1275endif 1276endif # BT_ANC 1277endif # AUDIO_RESAMPLE 1278 1279ifeq ($(SW_IIR_EQ_PROCESS),1) 1280export SW_IIR_EQ_PROCESS 1281export A2DP_EQ_24BIT = 1 1282endif 1283 1284ifeq ($(HW_DC_FILTER_WITH_IIR),1) 1285export HW_DC_FILTER_WITH_IIR 1286KBUILD_CPPFLAGS += -DHW_DC_FILTER_WITH_IIR 1287export HW_FILTER_CODEC_IIR ?= 1 1288endif 1289 1290ifeq ($(USB_AUDIO_APP),1) 1291export ANDROID_ACCESSORY_SPEC ?= 1 1292export FIXED_CODEC_ADC_VOL ?= 0 1293 1294ifneq ($(BTUSB_AUDIO_MODE),1) 1295NO_PWRKEY ?= 1 1296NO_GROUPKEY ?= 1 1297endif 1298endif 1299 1300ifneq ($(CHIP),best1000) 1301ifneq ($(CHIP)-$(TWS),best2000-1) 1302# For bt 1303export A2DP_EQ_24BIT ?= 1 1304# For usb audio 1305ifeq ($(APP_USB_A2DP_SOURCE),1) 1306export AUDIO_PLAYBACK_24BIT ?= 0 1307else 1308export AUDIO_PLAYBACK_24BIT ?= 1 1309endif 1310endif 1311endif 1312 1313ifeq ($(PLAYBACK_FORCE_48K),1) 1314export PLAYBACK_FORCE_48K 1315endif 1316 1317ifeq ($(ANC_ASSIST_ENABLED),1) 1318KBUILD_CPPFLAGS += -DANC_ASSIST_ENABLED 1319KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 1320export SPEECH_TX_24BIT := 1 1321export AUDIO_OUTPUT_SW_GAIN := 1 1322ifeq ($(CHIP),best2300p) 1323export ANC_ASSIST_USE_INT_CODEC := 1 1324export PLAYBACK_FORCE_48K := 1 1325export SPEECH_RX_24BIT := 1 1326export AF_STREAM_ID_0_PLAYBACK_FADEOUT := 1 1327endif 1328 1329ifeq ($(VOICE_ASSIST_WD_ENABLED),1) 1330export VOICE_ASSIST_WD_ENABLED 1331export ANC_ASSIST_PILOT_TONE_ALWAYS_ON := 1 1332endif 1333 1334ifeq ($(VOICE_ASSIST_PILOT_ANC_ENABLED),1) 1335export VOICE_ASSIST_PILOT_ANC_ENABLED 1336export ANC_ASSIST_PILOT_TONE_ALWAYS_ON := 1 1337endif 1338endif 1339 1340ifeq ($(AUDIO_ANC_FB_ADJ_MC),1) 1341KBUILD_CPPFLAGS += -DAUDIO_ANC_FB_ADJ_MC 1342KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 1343endif 1344 1345export ULTRA_LOW_POWER ?= 0 1346ifeq ($(ULTRA_LOW_POWER),1) 1347export FLASH_LOW_SPEED ?= 1 1348export PSRAM_LOW_SPEED ?= 1 1349endif 1350 1351ifeq ($(CHIP),best2000) 1352ifeq ($(USB_HIGH_SPEED),1) 1353export AUDIO_USE_BBPLL ?= 1 1354endif 1355ifeq ($(AUDIO_USE_BBPLL),1) 1356ifeq ($(MCU_HIGH_PERFORMANCE_MODE),1) 1357$(error MCU_HIGH_PERFORMANCE_MODE conflicts with AUDIO_USE_BBPLL) 1358endif 1359else # !AUDIO_USE_BBPLL 1360ifeq ($(USB_HIGH_SPEED),1) 1361$(error AUDIO_USE_BBPLL must be used with USB_HIGH_SPEED) 1362endif 1363endif # !AUDIO_USE_BBPLL 1364endif # best2000 1365 1366ifeq ($(FAST_TIMER_COMPENSATE),1) 1367export CALIB_SLOW_TIMER := 1 1368export TIMER_USE_FPU := 1 1369endif 1370 1371### voice compression feature switch 1372export VOC_ENCODE_ENABLE ?= 0 1373 1374# ------------------------------------------- 1375# BT features 1376# ------------------------------------------- 1377 1378ifneq ($(filter apps/ tests/speech_test/ tests/ota_boot/, $(core-y)),) 1379export BT_APP ?= 1 1380FULL_APP_PROJECT ?= 1 1381endif 1382 1383ifeq ($(BT_APP),1) 1384 1385export BT_IF_INCLUDES ?= 1386export BT_PROFILES_INCLUDES ?= 1387 1388export INTERSYS_NO_THREAD ?= 0 1389 1390export INTERSYS_DEBUG ?= 1 1391ifeq ($(INTERSYS_DEBUG),1) 1392 KBUILD_CPPFLAGS += -DINTERSYS_DEBUG=1 1393endif 1394 1395export BT_DEBUG_TPORTS ?= 0 1396ifneq ($(BT_DEBUG_TPORTS),0) 1397 KBUILD_CPPFLAGS += -D__BT_DEBUG_TPORTS__ 1398endif 1399 1400export SNOOP_DATA_EXCHANGE_VIA_BLE ?= 0 1401ifeq ($(SNOOP_DATA_EXCHANGE_VIA_BLE),1) 1402 KBUILD_CPPFLAGS += -DSNOOP_DATA_EXCHANGE_VIA_BLE 1403endif 1404 1405export SYNC_BT_CTLR_PROFILE ?= 0 1406ifeq ($(SYNC_BT_CTLR_PROFILE),1) 1407 KBUILD_CPPFLAGS += -DSYNC_BT_CTLR_PROFILE 1408endif 1409 1410export PROFILE_DEBUG ?= 0 1411ifeq ($(PROFILE_DEBUG),1) 1412 KBUILD_CPPFLAGS += -DXA_DEBUG=1 1413endif 1414 1415BT_IF_INCLUDES += \ 1416 -Iservices/bt_if_enhanced/inc 1417BT_PROFILES_INCLUDES += \ 1418 -Iservices/bt_profiles_enhanced/inc 1419 1420#KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ -D__A2DP_AVDTP_DR__ 1421#KBUILD_CPPFLAGS += -D__A2DP_AVDTP_DR__ 1422 1423ifeq ($(A2DP_AVDTP_CP),1) 1424KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 1425endif 1426 1427ifneq ($(filter-out 2M 3M,$(BT_RF_PREFER)),) 1428$(error Invalid BT_RF_PREFER=$(BT_RF_PREFER)) 1429endif 1430ifneq ($(BT_RF_PREFER),) 1431RF_PREFER := $(subst .,P,$(BT_RF_PREFER)) 1432KBUILD_CPPFLAGS += -D__$(RF_PREFER)_PACK__ 1433endif 1434 1435export HIGH_EFFICIENCY_TX_PWR_CTRL ?= 0 1436ifeq ($(HIGH_EFFICIENCY_TX_PWR_CTRL),1) 1437KBUILD_CPPFLAGS += -DHIGH_EFFICIENCY_TX_PWR_CTRL 1438endif # ifeq ($(HIGH_EFFICIENCY_TX_PWR_CTRL),1) 1439 1440export IS_USE_MIXING_FRQ_FOR_A2DP_STREAMING ?= 0 1441ifeq ($(IS_USE_MIXING_FRQ_FOR_A2DP_STREAMING),1) 1442KBUILD_CPPFLAGS += -DIS_USE_MIXING_FRQ_FOR_A2DP_STREAMING 1443endif 1444 1445export AUDIO_SCO_BTPCM_CHANNEL ?= 1 1446ifeq ($(AUDIO_SCO_BTPCM_CHANNEL),1) 1447KBUILD_CPPFLAGS += -D_SCO_BTPCM_CHANNEL_ 1448endif 1449 1450export BT_ONE_BRING_TWO ?= 0 1451ifeq ($(BT_ONE_BRING_TWO),1) 1452KBUILD_CPPFLAGS += -D__BT_ONE_BRING_TWO__ 1453endif 1454 1455export BT_PAUSE_BG_A2DP ?= 0 1456ifeq ($(BT_PAUSE_BG_A2DP),1) 1457KBUILD_CPPFLAGS += -DBT_PAUSE_BG_A2DP 1458endif 1459 1460export BT_CLOSE_BG_A2DP ?= 0 1461ifeq ($(BT_CLOSE_BG_A2DP),1) 1462KBUILD_CPPFLAGS += -DBT_CLOSE_BG_A2DP 1463endif 1464 1465export BT_DONT_AUTO_PLAY_BG_A2DP ?= 0 1466ifeq ($(BT_DONT_AUTO_PLAY_BG_A2DP),1) 1467KBUILD_CPPFLAGS += -DBT_DONT_AUTO_PLAY_BG_A2DP 1468endif 1469 1470export BT_BLOCK_2ND_SCO_BEFORE_CALL_ACTIVE ?= 0 1471ifeq ($(BT_BLOCK_2ND_SCO_BEFORE_CALL_ACTIVE),1) 1472KBUILD_CPPFLAGS += -DBT_BLOCK_2ND_SCO_BEFORE_CALL_ACTIVE 1473endif 1474 1475export A2DP_PROMPT_PLAY_ONLY_AVRCP_PLAY_RECEIVED ?= 1 1476ifeq ($(A2DP_PROMPT_PLAY_ONLY_AVRCP_PLAY_RECEIVED),1) 1477KBUILD_CPPFLAGS += -DA2DP_PROMPT_PLAY_ONLY_AVRCP_PLAY_RECEIVED 1478endif 1479 1480export A2DP_DELAY_PROMPT_PLAY ?= 0 1481ifeq ($(A2DP_DELAY_PROMPT_PLAY),1) 1482KBUILD_CPPFLAGS += -DA2DP_DELAY_PROMPT_PLAY 1483endif 1484 1485export BT_MUTE_NEW_A2DP ?= 0 1486ifeq ($(BT_MUTE_NEW_A2DP),1) 1487KBUILD_CPPFLAGS += -DBT_MUTE_NEW_A2DP 1488endif 1489 1490export BT_PAUSE_NEW_A2DP ?= 0 1491ifeq ($(BT_PAUSE_NEW_A2DP),1) 1492KBUILD_CPPFLAGS += -DBT_PAUSE_NEW_A2DP 1493endif 1494 1495export BT_CLOSE_NEW_A2DP ?= 0 1496ifeq ($(BT_CLOSE_NEW_A2DP),1) 1497KBUILD_CPPFLAGS += -DBT_CLOSE_NEW_A2DP 1498endif 1499 1500export BT_KEEP_ONE_STREAM_CLOSE_CONNECTED_A2DP ?= 0 1501ifeq ($(BT_KEEP_ONE_STREAM_CLOSE_CONNECTED_A2DP),1) 1502KBUILD_CPPFLAGS += -DBT_KEEP_ONE_STREAM_CLOSE_CONNECTED_A2DP 1503endif 1504 1505export BT_DONT_AUTO_REPORT_DELAY_REPORT ?= 0 1506ifeq ($(BT_DONT_AUTO_REPORT_DELAY_REPORT),1) 1507KBUILD_CPPFLAGS += -DBT_DONT_AUTO_REPORT_DELAY_REPORT 1508endif 1509 1510export BT_HFP_DONT_SUPPORT_CLI_FEATURE ?= 0 1511ifeq ($(BT_HFP_DONT_SUPPORT_CLI_FEATURE),1) 1512KBUILD_CPPFLAGS += -DBT_HFP_DONT_SUPPORT_CLI_FEATURE 1513endif 1514 1515export BT_HFP_DONT_SUPPORT_ENHANCED_CALL_FEATURE ?= 0 1516ifeq ($(BT_HFP_DONT_SUPPORT_ENHANCED_CALL_FEATURE),1) 1517KBUILD_CPPFLAGS += -DBT_HFP_DONT_SUPPORT_ENHANCED_CALL_FEATURE 1518endif 1519 1520export BT_HFP_SUPPORT_HF_INDICATORS_FEATURE ?= 0 1521ifeq ($(BT_HFP_SUPPORT_HF_INDICATORS_FEATURE),1) 1522KBUILD_CPPFLAGS += -DBT_HFP_SUPPORT_HF_INDICATORS_FEATURE 1523endif 1524 1525export BT_HFP_DONT_SUPPORT_APPLE_HF_AT_COMMAND ?= 0 1526ifeq ($(BT_HFP_DONT_SUPPORT_APPLE_HF_AT_COMMAND),1) 1527KBUILD_CPPFLAGS += -DBT_HFP_DONT_SUPPORT_APPLE_HF_AT_COMMAND 1528endif 1529 1530export BT_DONT_PLAY_MUTE_WHEN_A2DP_STUCK_PATCH ?= 1 1531ifeq ($(BT_DONT_PLAY_MUTE_WHEN_A2DP_STUCK_PATCH),1) 1532KBUILD_CPPFLAGS += -DBT_DONT_PLAY_MUTE_WHEN_A2DP_STUCK_PATCH 1533endif 1534 1535export SPP_SERVICE_NUM ?= 5 1536KBUILD_CPPFLAGS += -DSPP_SERVICE_NUM=$(SPP_SERVICE_NUM) 1537 1538export BT_DISC_ACL_AFTER_AUTH_KEY_MISSING ?= 0 1539ifeq ($(BT_DISC_ACL_AFTER_AUTH_KEY_MISSING),1) 1540KBUILD_CPPFLAGS += -DBT_DISC_ACL_AFTER_AUTH_KEY_MISSING 1541endif 1542 1543export USE_PAGE_SCAN_REPETITION_MODE_R1 ?= 0 1544ifeq ($(USE_PAGE_SCAN_REPETITION_MODE_R1),1) 1545KBUILD_CPPFLAGS += -DUSE_PAGE_SCAN_REPETITION_MODE_R1 1546endif 1547 1548export A2DP_PLAYER_USE_BT_TRIGGER ?= 1 1549ifeq ($(A2DP_PLAYER_USE_BT_TRIGGER),1) 1550KBUILD_CPPFLAGS += -D__A2DP_PLAYER_USE_BT_TRIGGER__ 1551endif 1552 1553export BT_SELECT_PROF_DEVICE_ID ?= 0 1554ifeq ($(BT_ONE_BRING_TWO),1) 1555ifeq ($(BT_SELECT_PROF_DEVICE_ID),1) 1556KBUILD_CPPFLAGS += -D__BT_SELECT_PROF_DEVICE_ID__ 1557endif 1558endif 1559 1560export SBC_SELECT_CHANNEL_SUPPORT ?= 1 1561ifeq ($(SBC_SELECT_CHANNEL_SUPPORT),1) 1562KBUILD_CPPFLAGS += -DSBC_SELECT_CHANNEL_SUPPORT 1563endif 1564 1565export SBC_FUNC_IN_ROM ?= 0 1566ifeq ($(SBC_FUNC_IN_ROM),1) 1567 1568KBUILD_CPPFLAGS += -D__SBC_FUNC_IN_ROM__ 1569 1570ifeq ($(CHIP),best2000) 1571UNALIGNED_ACCESS ?= 1 1572KBUILD_CPPFLAGS += -D__SBC_FUNC_IN_ROM_VBEST2000_ONLYSBC__ 1573KBUILD_CPPFLAGS += -D__SBC_FUNC_IN_ROM_VBEST2000__ 1574endif 1575endif 1576 1577export BT_HID_DEVICE ?= 0 1578ifeq ($(BT_HID_DEVICE),1) 1579KBUILD_CPPFLAGS += -DBT_HID_DEVICE 1580endif 1581 1582export BT_PBAP_SUPPORT ?= 0 1583ifeq ($(BT_PBAP_SUPPORT),1) 1584KBUILD_CPPFLAGS += -DBT_PBAP_SUPPORT 1585KBUILD_CPPFLAGS += -DBT_OBEX_SUPPORT 1586endif 1587 1588export BT_MAP_SUPPORT ?= 0 1589ifeq ($(BT_MAP_SUPPORT),1) 1590KBUILD_CPPFLAGS += -DBT_MAP_SUPPORT 1591KBUILD_CPPFLAGS += -DBT_OBEX_SUPPORT 1592endif 1593 1594export BT_ALWAYS_IN_DISCOVERABLE_MODE ?= 0 1595ifeq ($(BT_ALWAYS_IN_DISCOVERABLE_MODE),1) 1596KBUILD_CPPFLAGS += -DBT_ALWAYS_IN_DISCOVERABLE_MODE 1597endif 1598 1599export HFP_1_6_ENABLE ?= 1 1600ifeq ($(HFP_1_6_ENABLE),1) 1601KBUILD_CPPFLAGS += -DHFP_1_6_ENABLE 1602endif 1603 1604# Fix codec and vqe sample rate 1605ifeq ($(SPEECH_BONE_SENSOR),1) 1606export SPEECH_CODEC_FIXED_SAMPLE_RATE := 16000 1607export SPEECH_VQE_FIXED_SAMPLE_RATE := 16000 1608endif 1609 1610ifeq ($(ANC_ASSIST_ENABLED),1) 1611export SPEECH_CODEC_FIXED_SAMPLE_RATE := 16000 1612export SPEECH_VQE_FIXED_SAMPLE_RATE := 16000 1613endif 1614 1615ifeq ($(AUDIO_ADAPTIVE_IIR_EQ),1) 1616export AUDIO_ADAPTIVE_IIR_EQ := 1 1617export HW_DAC_IIR_EQ_PROCESS := 1 1618endif 1619 1620ifeq ($(AUDIO_ADAPTIVE_FIR_EQ),1) 1621export AUDIO_ADAPTIVE_FIR_EQ := 1 1622export HW_FIR_EQ_PROCESS := 1 1623endif 1624 1625export SPEECH_CODEC_FIXED_SAMPLE_RATE ?= 0 1626ifneq ($(filter 8000 16000 48000,$(SPEECH_CODEC_FIXED_SAMPLE_RATE)),) 1627KBUILD_CPPFLAGS += -DSPEECH_CODEC_FIXED_SAMPLE_RATE=$(SPEECH_CODEC_FIXED_SAMPLE_RATE) 1628#export DSP_LIB ?= 1 1629endif 1630 1631export SPEECH_VQE_FIXED_SAMPLE_RATE ?= 0 1632ifneq ($(filter 8000 16000,$(SPEECH_VQE_FIXED_SAMPLE_RATE)),) 1633#export DSP_LIB ?= 1 1634endif 1635 1636export A2DP_AAC_ON ?= 0 1637ifeq ($(A2DP_AAC_ON),1) 1638KBUILD_CPPFLAGS += -DA2DP_AAC_ON 1639KBUILD_CPPFLAGS += -D__ACC_FRAGMENT_COMPATIBLE__ 1640endif 1641 1642export FDKAAC_VERSION ?= 2 1643 1644ifneq ($(FDKAAC_VERSION),) 1645KBUILD_CPPFLAGS += -DFDKAAC_VERSION=$(FDKAAC_VERSION) 1646endif 1647 1648export A2DP_LHDC_ON ?= 0 1649ifeq ($(A2DP_LHDC_ON),1) 1650KBUILD_CPPFLAGS += -DA2DP_LHDC_ON 1651export A2DP_LHDC_V3 ?= 0 1652ifeq ($(A2DP_LHDC_V3),1) 1653KBUILD_CPPFLAGS += -DA2DP_LHDC_V3 1654endif 1655export A2DP_LHDC_LARC ?= 0 1656ifeq ($(A2DP_LHDC_LARC),1) 1657KBUILD_CPPFLAGS += -DA2DP_LHDC_LARC 1658endif 1659core-y += thirdparty/audio_codec_lib/liblhdc-dec/ 1660endif 1661 1662export A2DP_SCALABLE_ON ?= 0 1663ifeq ($(A2DP_SCALABLE_ON),1) 1664KBUILD_CPPFLAGS += -DA2DP_SCALABLE_ON 1665KBUILD_CPPFLAGS += -DGLOBAL_SRAM_KISS_FFT 1666#KBUILD_CPPFLAGS += -DA2DP_SCALABLE_UHQ_SUPPORT 1667core-y += thirdparty/audio_codec_lib/scalable/ 1668endif 1669 1670export A2DP_LDAC_ON ?= 0 1671ifeq ($(A2DP_LDAC_ON),1) 1672KBUILD_CPPFLAGS += -DA2DP_LDAC_ON 1673core-y += thirdparty/audio_codec_lib/ldac/ 1674endif 1675 1676export A2DP_LC3_ON ?= 0 1677ifeq ($(A2DP_LC3_ON),1) 1678KBUILD_CPPFLAGS += -DA2DP_LC3_ON 1679endif 1680 1681export A2DP_SBC_PLC_ENABLED ?= 0 1682 1683export A2DP_CP_ACCEL ?= 0 1684ifeq ($(A2DP_CP_ACCEL),1) 1685KBUILD_CPPFLAGS += -DA2DP_CP_ACCEL 1686endif 1687 1688export SCO_CP_ACCEL ?= 0 1689ifeq ($(SCO_CP_ACCEL),1) 1690KBUILD_CPPFLAGS += -DSCO_CP_ACCEL 1691# spx fft will share buffer which is not fit for dual cores. 1692KBUILD_CPPFLAGS += -DUSE_CMSIS_F32_FFT 1693endif 1694 1695export SCO_TRACE_CP_ACCEL ?= 0 1696ifeq ($(SCO_TRACE_CP_ACCEL),1) 1697KBUILD_CPPFLAGS += -DSCO_TRACE_CP_ACCEL 1698endif 1699 1700ifeq ($(BT_XTAL_SYNC),1) 1701KBUILD_CPPFLAGS += -DBT_XTAL_SYNC_NEW_METHOD 1702KBUILD_CPPFLAGS += -DFIXED_BIT_OFFSET_TARGET 1703endif 1704 1705ifeq ($(FPGA_A2DP_SINK),1) 1706KBUILD_CPPFLAGS += -DFPGA_A2DP_SINK 1707endif 1708 1709ifeq ($(HSP_ENABLE),1) 1710KBUILD_CPPFLAGS += -D__HSP_ENABLE__ 1711endif 1712 1713export TX_RX_PCM_MASK ?= 0 1714ifeq ($(TX_RX_PCM_MASK),1) 1715KBUILD_CPPFLAGS += -DTX_RX_PCM_MASK 1716endif 1717 1718export PCM_PRIVATE_DATA_FLAG ?= 0 1719ifeq ($(PCM_PRIVATE_DATA_FLAG),1) 1720KBUILD_CPPFLAGS += -DPCM_PRIVATE_DATA_FLAG 1721endif 1722 1723export PCM_FAST_MODE ?= 0 1724ifeq ($(PCM_FAST_MODE),1) 1725KBUILD_CPPFLAGS += -DPCM_FAST_MODE 1726endif 1727 1728export LOW_DELAY_SCO ?= 0 1729ifeq ($(LOW_DELAY_SCO),1) 1730KBUILD_CPPFLAGS += -DLOW_DELAY_SCO 1731endif 1732 1733export CVSD_BYPASS ?= 0 1734ifeq ($(CVSD_BYPASS),1) 1735KBUILD_CPPFLAGS += -DCVSD_BYPASS 1736endif 1737 1738export SCO_FORCE_CVSD ?= 0 1739ifeq ($(SCO_FORCE_CVSD),1) 1740KBUILD_CPPFLAGS += -DSCO_FORCE_CVSD 1741endif 1742 1743export SCO_DMA_SNAPSHOT ?= 0 1744ifeq ($(CHIP_HAS_SCO_DMA_SNAPSHOT),1) 1745export SCO_DMA_SNAPSHOT := 1 1746KBUILD_CPPFLAGS += -DSCO_DMA_SNAPSHOT 1747endif 1748 1749ifeq ($(CHIP_ROM_UTILS_VER),) 1750$(warning "CHIP_ROM_UTILS_VER must be defined, CHIP after BEST1501") 1751$(warning "use \"export CHIP_ROM_UTILS_VER := 2\", other use \"export CHIP_ROM_UTILS_VER := 1\"") 1752export CHIP_ROM_UTILS_VER := 1 1753endif 1754KBUILD_CPPFLAGS += -DROM_UTILS_VER=$(CHIP_ROM_UTILS_VER) 1755 1756export SCO_OPTIMIZE_FOR_RAM ?= 0 1757ifeq ($(SCO_OPTIMIZE_FOR_RAM),1) 1758KBUILD_CPPFLAGS += -DSCO_OPTIMIZE_FOR_RAM 1759endif 1760 1761export SW_IIR_PROMPT_EQ_PROCESS ?= 0 1762ifeq ($(SW_IIR_PROMPT_EQ_PROCESS),1) 1763ifeq ($(SW_IIR_EQ_PROCESS),1) 1764$(error SW_IIR_PROMPT_EQ_PROCESS and SW_IIR_EQ_PROCESS cannot be enabled at the same time) 1765endif 1766endif 1767 1768export AAC_TEXT_PARTIAL_IN_FLASH ?= 0 1769ifeq ($(AAC_TEXT_PARTIAL_IN_FLASH),1) 1770KBUILD_CPPFLAGS += -DAAC_TEXT_PARTIAL_IN_FLASH 1771endif 1772 1773export IS_BES_BATTERY_MANAGER_ENABLED ?= 1 1774ifeq ($(IS_BES_BATTERY_MANAGER_ENABLED),1) 1775KBUILD_CPPFLAGS += -DIS_BES_BATTERY_MANAGER_ENABLED 1776endif 1777 1778ifeq ($(SUPPORT_BATTERY_REPORT),1) 1779KBUILD_CPPFLAGS += -DSUPPORT_BATTERY_REPORT 1780endif 1781 1782ifeq ($(SUPPORT_HF_INDICATORS),1) 1783KBUILD_CPPFLAGS += -DSUPPORT_HF_INDICATORS 1784endif 1785 1786ifeq ($(SUPPORT_SIRI),1) 1787KBUILD_CPPFLAGS += -DSUPPORT_SIRI 1788endif 1789 1790export BQB_PROFILE_TEST ?= 0 1791ifeq ($(BQB_PROFILE_TEST),1) 1792KBUILD_CPPFLAGS += -D__BQB_PROFILE_TEST__ 1793endif 1794 1795export AUDIO_SPECTRUM ?= 0 1796ifeq ($(AUDIO_SPECTRUM),1) 1797KBUILD_CPPFLAGS += -D__AUDIO_SPECTRUM__ 1798KBUILD_CPPFLAGS += -DGLOBAL_SRAM_KISS_FFT 1799endif 1800 1801ifeq ($(INTERCONNECTION),1) 1802export INTERCONNECTION 1803KBUILD_CPPFLAGS += -D__INTERCONNECTION__ 1804endif 1805 1806export INTERACTION ?= 0 1807ifeq ($(INTERACTION),1) 1808KBUILD_CPPFLAGS += -D__INTERACTION__ 1809endif 1810 1811export INTERACTION_FASTPAIR ?= 0 1812ifeq ($(INTERACTION_FASTPAIR),1) 1813KBUILD_CPPFLAGS += -D__INTERACTION_FASTPAIR__ 1814KBUILD_CPPFLAGS += -D__INTERACTION_CUSTOMER_AT_COMMAND__ 1815endif 1816 1817export TWS_PROMPT_SYNC ?= 0 1818ifeq ($(TWS_PROMPT_SYNC), 1) 1819export MIX_AUDIO_PROMPT_WITH_A2DP_MEDIA_ENABLED ?= 1 1820KBUILD_CPPFLAGS += -DTWS_PROMPT_SYNC 1821endif 1822 1823export AUDIO_PROMPT_USE_DAC2_ENABLED ?= 0 1824ifeq ($(CHIP), best1501) 1825export AUDIO_PROMPT_USE_DAC2_ENABLED := 1 1826endif 1827ifeq ($(ANC_ASSIST_PILOT_TONE_ALWAYS_ON),1) 1828export AUDIO_PROMPT_USE_DAC2_ENABLED := 0 1829endif 1830 1831ifeq ($(AUDIO_PROMPT_USE_DAC2_ENABLED),1) 1832export MIX_AUDIO_PROMPT_WITH_A2DP_MEDIA_ENABLED := 0 1833export AUDIO_OUTPUT_DAC2 := 1 1834endif 1835 1836ifeq ($(MIX_AUDIO_PROMPT_WITH_A2DP_MEDIA_ENABLED),1) 1837KBUILD_CPPFLAGS += -DMIX_AUDIO_PROMPT_WITH_A2DP_MEDIA_ENABLED 1838export RESAMPLE_ANY_SAMPLE_RATE ?= 1 1839export AUDIO_OUTPUT_SW_GAIN := 1 1840endif 1841 1842export MEDIA_PLAY_24BIT ?= 1 1843 1844ifeq ($(LBRT),1) 1845export LBRT 1846KBUILD_CPPFLAGS += -DLBRT 1847endif 1848 1849ifeq ($(IBRT),1) 1850export IBRT 1851KBUILD_CPPFLAGS += -DIBRT 1852KBUILD_CPPFLAGS += -DIBRT_BLOCKED 1853KBUILD_CPPFLAGS += -DIBRT_NOT_USE 1854KBUILD_CPPFLAGS += -D__A2DP_AUDIO_SYNC_FIX_DIFF_NOPID__ 1855 1856export IBRT_UI_V1 ?= 0 1857ifeq ($(IBRT_UI_V1),1) 1858KBUILD_CPPFLAGS += -DIBRT_UI_V1 1859else 1860export TRACE_GLOBAL_TAG ?= 1 1861endif 1862endif 1863 1864export IBRT_TESTMODE ?= 0 1865ifeq ($(IBRT_TESTMODE),1) 1866KBUILD_CPPFLAGS += -D__IBRT_IBRT_TESTMODE__ 1867endif 1868 1869ifeq ($(IBRT),1) 1870TWS_SYSTEM_ENABLED := 1 1871endif 1872ifeq ($(TWS_SYSTEM_ENABLED),1) 1873export TWS_SYSTEM_ENABLED 1874KBUILD_CPPFLAGS += -DTWS_SYSTEM_ENABLED 1875endif 1876 1877# IBRT_RIGHT_MASTER==1 means right bud is master, otherwise left bud is master 1878export IBRT_RIGHT_MASTER ?= 1 1879ifeq ($(IBRT_RIGHT_MASTER),1) 1880KBUILD_CPPFLAGS += -DIBRT_RIGHT_MASTER 1881endif 1882 1883export BES_AUD ?= 0 1884ifeq ($(BES_AUD),1) 1885KBUILD_CPPFLAGS += -DBES_AUD 1886endif 1887 1888export IBRT_SEARCH_UI ?= 0 1889ifeq ($(IBRT_SEARCH_UI),1) 1890KBUILD_CPPFLAGS += -DIBRT_SEARCH_UI 1891endif 1892 1893export SEARCH_UI_COMPATIBLE_UI_V2 ?= 0 1894ifeq ($(SEARCH_UI_COMPATIBLE_UI_V2),1) 1895KBUILD_CPPFLAGS += -DIBRT_SEARCH_UI 1896KBUILD_CPPFLAGS += -DSEARCH_UI_COMPATIBLE_UI_V2 1897endif 1898 1899ifeq ($(IBRT),1) 1900ifeq ($(IBRT_CORE_V2),1) 1901export IBRT_V2_MULTIPOINT := 1 1902KBUILD_CPPFLAGS += -DIBRT_V2_MULTIPOINT 1903else 1904export IBRT_V2_MULTIPOINT := 0 1905endif 1906else 1907export IBRT_V2_MULTIPOINT := 0 1908endif 1909 1910export IBRT_UI_MASTER_ON_TWS_DISCONNECTED ?= 0 1911ifeq ($(IBRT_UI_MASTER_ON_TWS_DISCONNECTED),1) 1912KBUILD_CPPFLAGS += -DIBRT_UI_MASTER_ON_TWS_DISCONNECTED 1913endif 1914 1915export AF_STREAM_ID_0_PLAYBACK_FADEOUT ?= 0 1916ifneq ($(AF_STREAM_ID_0_PLAYBACK_FADEOUT),0) 1917KBUILD_CPPFLAGS += -DAF_STREAM_ID_0_PLAYBACK_FADEOUT 1918endif 1919 1920export POWER_ON_ENTER_TWS_PAIRING_ENABLED ?= 0 1921ifeq ($(POWER_ON_ENTER_TWS_PAIRING_ENABLED),1) 1922IGNORE_POWER_ON_KEY_DURING_BOOT_UP ?= 1 1923KBUILD_CPPFLAGS += -DPOWER_ON_ENTER_TWS_PAIRING_ENABLED 1924endif 1925 1926export POWER_ON_ENTER_FREEMAN_PAIRING_ENABLED ?= 0 1927ifeq ($(POWER_ON_ENTER_FREEMAN_PAIRING_ENABLED),1) 1928IGNORE_POWER_ON_KEY_DURING_BOOT_UP ?= 1 1929KBUILD_CPPFLAGS += -DPOWER_ON_ENTER_FREEMAN_PAIRING_ENABLED 1930endif 1931 1932export PRODUCTION_LINE_PROJECT_ENABLED ?= 0 1933ifeq ($(PRODUCTION_LINE_PROJECT_ENABLED),1) 1934POWER_ON_OPEN_BOX_ENABLED := 0 1935KBUILD_CPPFLAGS += -DPRODUCTION_LINE_PROJECT_ENABLED 1936endif 1937 1938export POWER_ON_OPEN_BOX_ENABLED ?= 0 1939ifeq ($(POWER_ON_OPEN_BOX_ENABLED),1) 1940IGNORE_POWER_ON_KEY_DURING_BOOT_UP ?= 1 1941KBUILD_CPPFLAGS += -DPOWER_ON_OPEN_BOX_ENABLED 1942endif 1943 1944export FREEMAN_OTA_ENABLE ?= 0 1945ifeq ($(FREEMAN_OTA_ENABLE),1) 1946KBUILD_CPPFLAGS += -DFREEMAN_OTA_ENABLED 1947endif 1948 1949export IGNORE_POWER_ON_KEY_DURING_BOOT_UP ?= 0 1950ifeq ($(IGNORE_POWER_ON_KEY_DURING_BOOT_UP),1) 1951KBUILD_CPPFLAGS += -DIGNORE_POWER_ON_KEY_DURING_BOOT_UP 1952endif 1953 1954ifeq ($(BT_ANC),1) 1955KBUILD_CPPFLAGS += -D__BT_ANC__ 1956endif 1957 1958ifeq ($(BTUSB_AUDIO_MODE),1) 1959export BTUSB_AUDIO_MODE 1960KBUILD_CPPFLAGS += -DBTUSB_AUDIO_MODE 1961endif 1962 1963ifeq ($(BT_USB_AUDIO_DUAL_MODE),1) 1964export BT_USB_AUDIO_DUAL_MODE 1965KBUILD_CPPFLAGS += -DBT_USB_AUDIO_DUAL_MODE 1966endif 1967 1968# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 1969# BT watch related features 1970# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1971 1972export BT_WATCH_MASTER ?= 0 1973export BT_WATCH_SLAVE ?= 0 1974 1975export EPLAYER_ON ?= 0 1976export EPLAYER_TEST ?= 0 1977export ECOMM_ON ?= 0 1978export ESHELL_ON ?= 0 1979export EAUDIO_ON ?= 0 1980export EAUDIO_TEST ?= 0 1981export BT_SERVICE_ON ?= 0 1982export BT_SERVICE_NATIVE ?= 0 1983export BT_SERVICE_DISTRIBUTE ?= 0 1984export BT_SERVICE_DISTRIBUTE_CLIENT ?= 0 1985export BT_SERVICE_DISTRIBUTE_SERVER ?= 0 1986export BT_SERVICE_DISTRIBUTE_TRANSPORT_ECOMM ?= 0 1987export BT_SERVICE_DISTRIBUTE_TRANSPORT_INTERSYS ?= 0 1988export BT_SERVICE_TEST ?= 0 1989 1990export EPLAYER_INCLUDES ?= 1991EPLAYER_INCLUDES += \ 1992 -Iservices/eplayer/eplayer \ 1993 -Iservices/eplayer/eplayer/source \ 1994 -Iservices/eplayer/eplayer/sink \ 1995 -Iservices/eplayer/eplayer/decoder \ 1996 -Iservices/eplayer/eplayer/mediainfo \ 1997 -Iservices/eplayer/eplayer/platform/besrtx \ 1998 -Iutils/eindexfifo \ 1999 -Iutils/evf/ \ 2000 -Iutils/evf/impl 2001 2002export ECOMM_INCLUDES ?= 2003ECOMM_INCLUDES += \ 2004 -Iservices/ecomm/ecomm \ 2005 -Iservices/ecomm/ecomm/transport \ 2006 -Iservices/ecomm/ecomm/platform \ 2007 -Iservices/ecomm/ecomm/platform/bes_cmsisos \ 2008 -Iservices/ecomm/api \ 2009 -Iservices/ecomm/component \ 2010 -Iutils/eindexfifo \ 2011 -Iutils/evf/ \ 2012 -Iutils/evf/impl \ 2013 -Iutils/crc32 2014 2015export ESHELL_INCLUDES ?= 2016ESHELL_INCLUDES += \ 2017 -Iutils/eshell 2018 2019export EAUDIO_INCLUDES ?= 2020EAUDIO_INCLUDES += \ 2021 -Iservices/eaudio/inc \ 2022 -Iservices/eaudio/effect \ 2023 -Iservices/eaudio/device \ 2024 -Iservices/eaudio/policy \ 2025 -Iservices/eaudio/heap \ 2026 -Iservices/eaudio/resample \ 2027 -Iservices/bt_app \ 2028 -Iutils/cqueue \ 2029 -Iutils/heap \ 2030 -Iservices/multimedia/audio/process/resample/include \ 2031 -Iservices/multimedia/audio/process/resample/coef/include 2032 2033export BT_SERVICE_INCLUDES ?= 2034BT_SERVICE_INCLUDES += \ 2035 -Iservices/bt_service \ 2036 -Iservices/bt_service/inc \ 2037 -Iservices/bt_service/distribute/inc \ 2038 -Iservices/bt_service/distribute/client/inc \ 2039 -Iservices/bt_service/distribute/server/inc \ 2040 -Iservices/bt_service/distribute/transport/ecomm \ 2041 -Iutils/transport_if \ 2042 2043EINDEXFIFO_ON ?= 0 2044EVF_ON ?= 0 2045 2046ifeq ($(EPLAYER_ON),1) 2047EINDEXFIFO_ON := 1 2048EVF_ON := 1 2049KBUILD_CPPFLAGS += -D__BESRTX__ 2050endif 2051 2052ifeq ($(ECOMM_ON),1) 2053EINDEXFIFO_ON := 1 2054EVF_ON := 1 2055endif 2056 2057ifeq ($(EINDEXFIFO_ON),1) 2058core-y += utils/eindexfifo/ 2059endif 2060 2061ifeq ($(EVF_ON),1) 2062core-y += utils/evf/ 2063endif 2064 2065ifeq ($(ESHELL_ON),1) 2066core-y += utils/eshell/ 2067KBUILD_CPPFLAGS += -DESHELL_ON 2068endif 2069 2070ifeq ($(EAUDIO_ON),1) 2071KBUILD_CPPFLAGS += -DEAUDIO_ON 2072endif 2073 2074ifeq ($(BT_SERVICE_ON),1) 2075KBUILD_CPPFLAGS += -DBT_SERVICE_ON 2076endif 2077 2078ifeq ($(BT_WATCH_MASTER),1) 2079KBUILD_CPPFLAGS += -DBT_WATCH_MASTER 2080endif 2081 2082ifeq ($(BT_WATCH_SLAVE),1) 2083KBUILD_CPPFLAGS += -DBT_WATCH_SLAVE 2084endif 2085 2086# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2087# BT source features 2088# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2089 2090ifeq ($(BT_WATCH_APP),1) 2091 2092export BT_WATCH_APP 2093 2094export BT_SOURCE := 1 2095 2096export BT_MULTI_SOURCE ?= 0 2097export APP_LINEIN_A2DP_SOURCE ?= 0 2098export A2DP_SOURCE_AAC_ON ?= 0 2099export A2DP_SOURCE_LHDC_ON ?= 0 2100export APP_I2S_A2DP_SOURCE ?= 0 2101export APP_USB_A2DP_SOURCE ?= 0 2102export HFP_AG_ROLE ?= 0 2103export HFP_AG_SCO_AUTO_CONN ?= 0 2104export SOURCE_TRACE_RX ?= 0 2105export A2DP_SOURCE_TEST ?= 0 2106export HFP_AG_TEST ?= 0 2107 2108KBUILD_CPPFLAGS += -DBT_WATCH_APP 2109 2110ifeq ($(BT_SOURCE),1) 2111KBUILD_CPPFLAGS += -DBT_SOURCE 2112endif 2113 2114ifeq ($(SOURCE_TRACE_RX),1) 2115KBUILD_CPPFLAGS += -D__SOURCE_TRACE_RX__ 2116endif 2117 2118ifeq ($(BT_MULTI_SOURCE),1) 2119KBUILD_CPPFLAGS += -DBT_MULTI_SOURCE 2120endif 2121 2122ifeq ($(HFP_AG_ROLE),1) 2123KBUILD_CPPFLAGS += -DHFP_AG_ROLE 2124 2125ifeq ($(HFP_AG_SCO_AUTO_CONN),1) 2126KBUILD_CPPFLAGS += -DHFP_AG_SCO_AUTO_CONN 2127endif 2128 2129ifeq ($(HFP_AG_TEST),1) 2130KBUILD_CPPFLAGS += -DHFP_AG_TEST 2131endif 2132endif # HFP_AG_ROLE 2133 2134ifeq ($(APP_LINEIN_A2DP_SOURCE),1) 2135KBUILD_CPPFLAGS += -DAPP_LINEIN_A2DP_SOURCE 2136KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2137endif 2138 2139ifeq ($(A2DP_SOURCE_AAC_ON),1) 2140KBUILD_CPPFLAGS += -DA2DP_SOURCE_AAC_ON 2141KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2142endif 2143 2144ifeq ($(A2DP_SOURCE_LHDC_ON),1) 2145KBUILD_CPPFLAGS += -DA2DP_SOURCE_LHDC_ON 2146KBUILD_CPPFLAGS += -DFLASH_UNIQUE_ID 2147KBUILD_CPPFLAGS += -DA2DP_ENCODE_CP_ACCEL 2148##KBUILD_CPPFLAGS += -DA2DP_TRACE_ENCODE_CP_ACCEL 2149core-y += thirdparty/audio_codec_lib/liblhdc-enc/ 2150endif 2151 2152ifeq ($(APP_I2S_A2DP_SOURCE),1) 2153KBUILD_CPPFLAGS += -DAPP_I2S_A2DP_SOURCE 2154KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2155endif 2156 2157ifeq ($(APP_USB_A2DP_SOURCE),1) 2158KBUILD_CPPFLAGS += -DAPP_USB_A2DP_SOURCE 2159KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2160KBUILD_CPPFLAGS += -DA2DP_ENCODE_CP_ACCEL 2161endif 2162 2163else # !BT_WATCH_APP 2164 2165ifeq ($(BT_SOURCE),1) 2166 2167KBUILD_CPPFLAGS += -DBT_SOURCE 2168 2169ifeq ($(BT_MULTI_SOURCE),1) 2170KBUILD_CPPFLAGS += -DBT_MULTI_SOURCE 2171endif 2172 2173ifeq ($(SOURCE_TRACE_RX),1) 2174KBUILD_CPPFLAGS += -D__SOURCE_TRACE_RX__ 2175endif 2176 2177ifeq ($(HFP_AG_ROLE),1) 2178KBUILD_CPPFLAGS += -DHFP_AG_ROLE 2179 2180ifeq ($(HFP_AG_SCO_AUTO_CONN),1) 2181KBUILD_CPPFLAGS += -DHFP_AG_SCO_AUTO_CONN 2182endif 2183 2184ifeq ($(HFP_AG_TEST),1) 2185KBUILD_CPPFLAGS += -DHFP_AG_TEST 2186endif 2187endif # HFP_AG_ROLE 2188 2189ifeq ($(APP_LINEIN_A2DP_SOURCE),1) 2190KBUILD_CPPFLAGS += -DAPP_LINEIN_A2DP_SOURCE 2191KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2192endif 2193 2194ifeq ($(A2DP_SOURCE_AAC_ON),1) 2195KBUILD_CPPFLAGS += -DA2DP_SOURCE_AAC_ON 2196KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2197endif 2198 2199ifeq ($(A2DP_SOURCE_LHDC_ON),1) 2200KBUILD_CPPFLAGS += -DA2DP_SOURCE_LHDC_ON 2201KBUILD_CPPFLAGS += -DFLASH_UNIQUE_ID 2202KBUILD_CPPFLAGS += -DA2DP_ENCODE_CP_ACCEL 2203##KBUILD_CPPFLAGS += -DA2DP_TRACE_ENCODE_CP_ACCEL 2204core-y += thirdparty/audio_codec_lib/liblhdc-enc/ 2205endif 2206 2207ifeq ($(APP_I2S_A2DP_SOURCE),1) 2208KBUILD_CPPFLAGS += -DAPP_I2S_A2DP_SOURCE 2209KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2210endif 2211 2212ifeq ($(APP_USB_A2DP_SOURCE),1) 2213KBUILD_CPPFLAGS += -DAPP_USB_A2DP_SOURCE 2214KBUILD_CPPFLAGS += -D__A2DP_AVDTP_CP__ 2215KBUILD_CPPFLAGS += -DA2DP_ENCODE_CP_ACCEL 2216endif 2217 2218ifeq ($(A2DP_SOURCE_TEST),1) 2219KBUILD_CPPFLAGS += -DA2DP_SOURCE_TEST 2220endif 2221 2222endif # BT_SOURCE 2223 2224endif # !BT_WATCH_APP 2225 2226endif # BT_APP 2227 2228# ------------------------------------------- 2229# BLE features 2230# ------------------------------------------- 2231# BLE profiles enable flag 2232## ANC service 2233export ANCS ?= 0 2234export ANCC ?= 0 2235 2236# AMS service 2237export AMS ?= 0 2238export AMSC ?= 0 2239 2240# BMS service 2241export BMS ?= 0 2242 2243## HID service 2244export BLE_HID ?= 0 2245 2246## BATT service 2247export BLE_BATT ?= 0 2248 2249## DISS service 2250export BLE_DISS ?= 0 2251 2252ifeq ($(GOOGLE_SERVICE_ENABLE), 1) 2253export BISTO_ENABLE := 1 2254export GFPS_ENABLE := 1 2255endif 2256 2257ifeq ($(BISTO_ENABLE),1) 2258export BISTO_ENABLE 2259export VOICE_DATAPATH_ENABLED := 1 2260export CRASH_REBOOT ?= 1 2261export BLE_SECURITY_ENABLED := 1 2262ifeq ($(CHIP),best1400) 2263export DUMP_CRASH_LOG ?= 0 2264else 2265export DUMP_CRASH_LOG ?= 0 2266endif 2267export VOICE_DATAPATH_TYPE ?= gsound 2268#export TRACE_DUMP2FLASH ?= 1 2269export FLASH_SUSPEND := 1 2270export AI_OTA := 1 2271# ANC service server enable 2272ANCS := 1 2273# ANC service client enable 2274ANCC := 1 2275 2276# AMS server enable 2277AMS := 1 2278# AMS client enable 2279AMSC := 1 2280 2281# BMS server enable 2282BMS := 1 2283 2284endif # ifeq ($(BISTO_ENABLE),1) 2285 2286# 1 to enable BLE, 0 to disable BLE 2287export BLE ?= 0 2288 2289BLE_SWITCH := \ 2290 $(BISTO_ENABLE) \ 2291 $(GFPS_ENABLE) \ 2292 $(AMA_VOICE) \ 2293 $(DMA_VOICE) \ 2294 $(CUSTOMIZE_VOICE) \ 2295 $(GMA_VOICE) \ 2296 $(SMART_VOICE) \ 2297 $(TENCENT_VOICE) \ 2298 $(TILE_DATAPATH_ENABLED) \ 2299 $(BLE_ONLY_ENABLED) 2300 2301ifneq ($(filter 1, $(BLE_SWITCH)),) 2302export BLE := 1 2303endif 2304 2305ifeq ($(BLE),1) 2306 2307export BLE_APP_INCLUDES ?= 2308export BLE_PROFILES_INCLUDES ?= 2309export BLE_STACK_INCLUDES ?= 2310 2311ifeq ($(BLE_V2),1) 2312ifeq ($(BLE_AOB_UX_ENABLED),1) 2313KBUILD_CPPFLAGS += -DAOB_UX_ENABLED 2314endif 2315 2316export CUSTOMER_DEFINE_ADV_DATA ?= 0 2317ifeq ($(CUSTOMER_DEFINE_ADV_DATA),1) 2318KBUILD_CPPFLAGS += -DCUSTOMER_DEFINE_ADV_DATA 2319endif 2320 2321export BLE_SEC_ACCEPT_BY_CUSTOMER ?= 0 2322ifeq ($(BLE_SEC_ACCEPT_BY_CUSTOMER),1) 2323KBUILD_CPPFLAGS += -DBLE_SEC_ACCEPT_BY_CUSTOMER 2324endif 2325 2326KBUILD_CPPFLAGS += -DBLE_V2 2327BLE_APP_INCLUDES += \ 2328 -Iservices/ble_app_v2 \ 2329 -Iservices/ble_app_v2/app_batt/ \ 2330 -Iservices/ble_app_v2/app_ble_custom \ 2331 -Iservices/ble_app_v2/app_datapath/ \ 2332 -Iservices/ble_app_v2/app_gfps \ 2333 -Iservices/ble_app_v2/app_hid/ \ 2334 -Iservices/ble_app_v2/app_hrps/ \ 2335 -Iservices/ble_app_v2/app_htp/ \ 2336 -Iservices/ble_app_v2/app_main \ 2337 -Iservices/ble_app_v2/app_ota \ 2338 -Iservices/ble_app_v2/app_sec \ 2339 -Iservices/ble_app_v2/app_tota \ 2340 -Iservices/ble_app_v2/app_tws \ 2341 -Iservices/ble_app_v2/app_vob \ 2342 -Iservices/ble_app_v2/app_voice \ 2343 -Iservices/aob_core/custom \ 2344 -Iservices/aob_core/inc \ 2345 -Iservices/aob_core/inc/event \ 2346 -Iservices/aob_core/inc/stm \ 2347 -Iservices/aob_core/inc/call_ctl \ 2348 -Iutils/hsm 2349ifeq ($(BLE_AUDIO_ENABLED),1) 2350BLE_APP_INCLUDES += \ 2351 -Iservices/ble_audio_app \ 2352 -Iservices/ble_audio_app/app_bap \ 2353 -Iservices/ble_audio_app/app_arc \ 2354 -Iservices/ble_audio_app/app_acc \ 2355 -Iservices/ble_audio_app/app_atc \ 2356 -Iservices/ble_audio_app/app_cap 2357endif 2358 2359ifeq ($(AMSC),1) 2360BLE_APP_INCLUDES += \ 2361 -Iservices/ble_app_v2/app_amsc/ 2362endif 2363 2364ifeq ($(ANCS),1) 2365BLE_APP_INCLUDES += \ 2366 -Iservices/ble_app_v2/app_ancs/ 2367endif 2368 2369ifeq ($(ANCC),1) 2370BLE_APP_INCLUDES += \ 2371 -Iservices/ble_app_v2/app_ancc/ 2372endif 2373 2374BLE_PROFILES_INCLUDES += \ 2375 -Iservices/ble_profiles_v2 \ 2376 -Iservices/ble_profiles_v2/buds/ \ 2377 -Iservices/ble_profiles_v2/datapath/datapathps/api/ \ 2378 -Iservices/ble_profiles_v2/gfps/api/ \ 2379 -Iservices/ble_profiles_v2/gfps/gfps_crypto/ \ 2380 -Iservices/ble_profiles_v2/gfps/gfps_provider/api/ \ 2381 -Iservices/ble_profiles_v2/gfps/gfps_provider/src/ \ 2382 -Iservices/ble_profiles_v2/ota \ 2383 -Iservices/ble_profiles_v2/tota \ 2384 -Iservices/ble_profiles_v2/tile \ 2385 -Iservices/ble_profiles_v2/voicepath/gsound 2386ifeq ($(BLE_AUDIO_ENABLED),1) 2387BLE_PROFILES_INCLUDES += \ 2388 -Iservices/ble_profiles_v2/otp \ 2389 -Iservices/ble_profiles_v2/otp/otc/api \ 2390 -Iservices/ble_profiles_v2/otp/ots/api \ 2391 -Iservices/ble_profiles_v2/csip \ 2392 -Iservices/ble_profiles_v2/csip/csisc/api \ 2393 -Iservices/ble_profiles_v2/csip/csism/api 2394endif 2395ifeq ($(AMSC),1) 2396BLE_PROFILES_INCLUDES += \ 2397 -Iservices/ble_profiles_v2/ams/ \ 2398 -Iservices/ble_profiles_v2/ams/amsc/ \ 2399 -Iservices/ble_profiles_v2/ams/amsc/api 2400endif 2401ifeq ($(ANCS),1) 2402BLE_PROFILES_INCLUDES += \ 2403 -Iservices/ble_profiles_v2/anc/ancs/api 2404endif 2405ifeq ($(ANCC),1) 2406BLE_PROFILES_INCLUDES += \ 2407 -Iservices/ble_profiles_v2/anc/ \ 2408 -Iservices/ble_profiles_v2/anc/ancc/ \ 2409 -Iservices/ble_profiles_v2/anc/ancc/src \ 2410 -Iservices/ble_profiles_v2/anc/ancc/api 2411endif 2412 2413BLE_STACK_INCLUDES += \ 2414 -Iservices/ble_stack_v2/ip/ahi/api/ \ 2415 -Iservices/ble_stack_v2/ip/ble/hl/api/ \ 2416 -Iservices/ble_stack_v2/ip/ble/hl/inc/ \ 2417 -Iservices/ble_stack_v2/ip/ble/hl/src/gap/gapc/ \ 2418 -Iservices/ble_stack_v2/ip/ble/hl/src/gap/gapm/ \ 2419 -Iservices/ble_stack_v2/ip/ble/hl/src/gap/ \ 2420 -Iservices/ble_stack_v2/ip/ble/hl/src/gatt/ \ 2421 -Iservices/ble_stack_v2/ip/ble/hl/src/inc/ \ 2422 -Iservices/ble_stack_v2/ip/ble/hl/src/l2cap/ \ 2423 -Iservices/ble_stack_v2/ip/hci/api/ \ 2424 -Iservices/ble_stack_v2/ip/hci/src/ \ 2425 -Iservices/ble_stack_v2/modules/aes/api/ \ 2426 -Iservices/ble_stack_v2/modules/common/api/ \ 2427 -Iservices/ble_stack_v2/modules/ecc_p256/api/ \ 2428 -Iservices/ble_stack_v2/modules/ke/api/ \ 2429 -Iservices/ble_stack_v2/modules/rwip/api/ 2430ifeq ($(BLE_AUDIO_ENABLED),1) 2431BLE_STACK_INCLUDES += \ 2432 -Iservices/ble_stack_v2/ip/ble/iso/data_path/ \ 2433 -Iservices/ble_stack_v2/ip/ble/iso/data_path/isogen/api/ \ 2434 -Iservices/ble_stack_v2/ip/ble/iso/data_path/isoohci/api/ \ 2435 -Iservices/ble_stack_v2/ip/ble/iso/data_path/isogen/src/ \ 2436 -Iservices/ble_stack_v2/ip/ble/iso/data_path/isoohci/src/ \ 2437 -Iservices/ble_stack_v2/ip/gaf/api/ \ 2438 -Iservices/ble_stack_v2/ip/gaf/api/acc/ \ 2439 -Iservices/ble_stack_v2/ip/gaf/api/acc/mc/ \ 2440 -Iservices/ble_stack_v2/ip/gaf/api/acc/ot/ \ 2441 -Iservices/ble_stack_v2/ip/gaf/api/acc/tb/ \ 2442 -Iservices/ble_stack_v2/ip/gaf/api/acc/vc/ \ 2443 -Iservices/ble_stack_v2/ip/gaf/api/arc/ \ 2444 -Iservices/ble_stack_v2/ip/gaf/api/arc/aic/ \ 2445 -Iservices/ble_stack_v2/ip/gaf/api/arc/mic/ \ 2446 -Iservices/ble_stack_v2/ip/gaf/api/arc/vc/ \ 2447 -Iservices/ble_stack_v2/ip/gaf/api/arc/voc/ \ 2448 -Iservices/ble_stack_v2/ip/gaf/api/atc/ \ 2449 -Iservices/ble_stack_v2/ip/gaf/api/atc/csi/ \ 2450 -Iservices/ble_stack_v2/ip/gaf/api/atc/raa/ \ 2451 -Iservices/ble_stack_v2/ip/gaf/api/bap/ \ 2452 -Iservices/ble_stack_v2/ip/gaf/api/bap/bc/ \ 2453 -Iservices/ble_stack_v2/ip/gaf/api/bap/capa/ \ 2454 -Iservices/ble_stack_v2/ip/gaf/api/bap/uc/ \ 2455 -Iservices/ble_stack_v2/ip/gaf/api/cap/ \ 2456 -Iservices/ble_stack_v2/ip/gaf/api/iap/ \ 2457 -Iservices/ble_stack_v2/ip/gaf/inc/ \ 2458 -Iservices/ble_stack_v2/ip/gaf/src/ \ 2459 -Iservices/ble_stack_v2/ip/gaf/src/al/ \ 2460 -Iservices/ble_stack_v2/ip/gaf/src/arc/ \ 2461 -Iservices/ble_stack_v2/ip/gaf/src/bap/bc/ \ 2462 -Iservices/ble_stack_v2/ip/gaf/src/bap/capa/ \ 2463 -Iservices/ble_stack_v2/ip/gaf/src/bap/codec/ \ 2464 -Iservices/ble_stack_v2/ip/gaf/src/iap/ 2465endif 2466else 2467BLE_APP_INCLUDES += \ 2468 -Iservices/ble_app \ 2469 -Iservices/ble_app/app_amsc/ \ 2470 -Iservices/ble_app/app_ancc/ \ 2471 -Iservices/ble_app/app_batt/ \ 2472 -Iservices/ble_app/app_ble_custom \ 2473 -Iservices/ble_app/app_datapath/ \ 2474 -Iservices/ble_app/app_gfps \ 2475 -Iservices/ble_app/app_hid/ \ 2476 -Iservices/ble_app/app_hrps/ \ 2477 -Iservices/ble_app/app_htp/ \ 2478 -Iservices/ble_app/app_main \ 2479 -Iservices/ble_app/app_ota \ 2480 -Iservices/ble_app/app_sec \ 2481 -Iservices/ble_app/app_tota \ 2482 -Iservices/ble_app/app_tws \ 2483 -Iservices/ble_app/app_vob \ 2484 -Iservices/ble_app/app_voice 2485ifeq ($(AMSC),1) 2486BLE_APP_INCLUDES += \ 2487 -Iservices/ble_app/app_amsc/ 2488endif 2489 2490ifeq ($(ANCC),1) 2491BLE_APP_INCLUDES += \ 2492 -Iservices/ble_app/app_ancc/ 2493endif 2494 2495BLE_PROFILES_INCLUDES += \ 2496 -Iservices/ble_profiles/bas/bass/api/ \ 2497 -Iservices/ble_profiles/bas/bass/src/ \ 2498 -Iservices/ble_profiles/datapath/datapathps/api/ \ 2499 -Iservices/ble_profiles/gfps/api/ \ 2500 -Iservices/ble_profiles/gfps/gfps_crypto/ \ 2501 -Iservices/ble_profiles/gfps/gfps_provider/api/ \ 2502 -Iservices/ble_profiles/gfps/gfps_provider/src/ \ 2503 -Iservices/ble_profiles/hogp/ \ 2504 -Iservices/ble_profiles/hogp/hogpd/api/ \ 2505 -Iservices/ble_profiles/hrp/ \ 2506 -Iservices/ble_profiles/hrp/hrps/api/ \ 2507 -Iservices/ble_profiles/hrp/hrps/src \ 2508 -Iservices/ble_profiles/htp/ \ 2509 -Iservices/ble_profiles/htp/htpt/api/ \ 2510 -Iservices/ble_profiles/htp/htpt/src/ \ 2511 -Iservices/ble_profiles/ota \ 2512 -Iservices/ble_profiles/tile \ 2513 -Iservices/ble_profiles/voicepath/gsound 2514ifeq ($(AMSC),1) 2515BLE_PROFILES_INCLUDES += \ 2516 -Iservices/ble_profiles/ams/ \ 2517 -Iservices/ble_profiles/ams/amsc/ 2518endif 2519ifeq ($(ANCS),1) 2520BLE_PROFILES_INCLUDES += \ 2521 -Iservices/ble_profiles/anc/ancs/api 2522endif 2523ifeq ($(ANCC),1) 2524BLE_PROFILES_INCLUDES += \ 2525 -Iservices/ble_profiles/anc/ \ 2526 -Iservices/ble_profiles/anc/ancc/ \ 2527 -Iservices/ble_profiles/anc/ancc/src/ 2528endif 2529 2530BLE_STACK_INCLUDES += \ 2531 -Iservices/ble_stack/app/api/ \ 2532 -Iservices/ble_stack/app/src/ \ 2533 -Iservices/ble_stack/ble_ip \ 2534 -Iservices/ble_stack/common/api \ 2535 -Iservices/ble_stack/hci/api/ \ 2536 -Iservices/ble_stack/hci/inc/ \ 2537 -Iservices/ble_stack/hci/src/ \ 2538 -Iservices/ble_stack/hl/api \ 2539 -Iservices/ble_stack/hl/inc/ \ 2540 -Iservices/ble_stack/hl/src/gap/ \ 2541 -Iservices/ble_stack/hl/src/gap/gapc/ \ 2542 -Iservices/ble_stack/hl/src/gap/gapm/ \ 2543 -Iservices/ble_stack/hl/src/gap/smpc/ \ 2544 -Iservices/ble_stack/hl/src/gatt/ \ 2545 -Iservices/ble_stack/hl/src/gatt/attc/ \ 2546 -Iservices/ble_stack/hl/src/gatt/attm/ \ 2547 -Iservices/ble_stack/hl/src/gatt/atts/ \ 2548 -Iservices/ble_stack/hl/src/gatt/gattc/ \ 2549 -Iservices/ble_stack/hl/src/gatt/gattm/ \ 2550 -Iservices/ble_stack/hl/src/l2c/l2cc/ \ 2551 -Iservices/ble_stack/hl/src/l2c/l2cm/ \ 2552 -Iservices/ble_stack/ke/api/ \ 2553 -Iservices/ble_stack/ke/src/ \ 2554 -Iservices/ble_stack/profiles/htp/ \ 2555 -Iservices/ble_stack/profiles/htp/htpt/api/ \ 2556 -Iservices/ble_stack/profiles/htp/htpt/src/ 2557endif #BLE_V2 2558 2559KBUILD_CPPFLAGS += -D__IAG_BLE_INCLUDE__ 2560 2561export BLE_CONNECTION_MAX ?= 2 2562KBUILD_CPPFLAGS += -DBLE_CONNECTION_MAX=$(BLE_CONNECTION_MAX) 2563 2564ifeq ($(IS_ENABLE_DEUGGING_MODE),1) 2565KBUILD_CPPFLAGS += -DIS_ENABLE_DEUGGING_MODE 2566endif 2567 2568ifeq ($(BLE_USE_RPA),1) 2569KBUILD_CPPFLAGS += -DBLE_USE_RPA 2570endif 2571 2572ifeq ($(BLE_AUDIO_ENABLED),1) 2573export BLE_AUDIO_ENABLED 2574KBUILD_CPPFLAGS += -DBLE_AUDIO_ENABLED=1 2575KBUILD_CPPFLAGS += -DBLE_AUDIO_CONNECTION_CNT=2 2576KBUILD_CPPFLAGS += -DBLE_AUDIO_CIS_CONN_CNT=4 2577 2578# currently always enable mobile for debug 2579export AOB_MOBILE_ENABLED ?= 1 2580ifeq ($(AOB_MOBILE_ENABLED),1) 2581KBUILD_CPPFLAGS += -DAOB_MOBILE_ENABLED 2582endif 2583else 2584KBUILD_CPPFLAGS += -DBLE_AUDIO_ENABLED=0 2585endif 2586 2587ifeq ($(GFPS_ENABLE),1) 2588BLE_SECURITY_ENABLED := 1 2589endif 2590ifeq ($(BLE_SECURITY_ENABLED), 1) 2591export BLE_SECURITY_ENABLED 2592KBUILD_CPPFLAGS += -DCFG_APP_SEC 2593endif 2594 2595ifeq ($(BISTO_ENABLE),1) 2596ifneq ($(IBRT),1) 2597#disbled before IBRT MAP role switch feature is ready 2598KBUILD_CPPFLAGS += -DBT_MAP_SUPPORT 2599KBUILD_CPPFLAGS += -DBT_OBEX_SUPPORT 2600endif 2601endif 2602 2603KBUILD_CPPFLAGS += -D__BLE_TX_USE_BT_TX_QUEUE__ 2604KBUILD_CPPFLAGS += -DBES_BLE_ACTIVITY_MAX=9 2605KBUILD_CPPFLAGS += -DBES_BLE_ADV_DATA_MAX=31 2606 2607ifeq ($(ANCS),1) 2608KBUILD_CPPFLAGS += -DANCS_ENABLED 2609endif 2610 2611ifeq ($(ANCC),1) 2612KBUILD_CPPFLAGS += -DANCC_ENABLED 2613endif 2614 2615ifeq ($(AMS),1) 2616KBUILD_CPPFLAGS += -DAMS_ENABLED 2617endif 2618 2619ifeq ($(AMSC),1) 2620KBUILD_CPPFLAGS += -DAMSC_ENABLED 2621endif 2622 2623ifeq ($(BMS),1) 2624KBUILD_CPPFLAGS += -DBMS_ENABLED 2625endif 2626 2627ifeq ($(BLE_HID),1) 2628KBUILD_CPPFLAGS += -DBLE_HID_ENABLE 2629endif 2630 2631ifeq ($(BLE_BATT),1) 2632KBUILD_CPPFLAGS += -DBLE_BATT_ENABLE 2633endif 2634 2635ifeq ($(BLE_DISS),1) 2636KBUILD_CPPFLAGS += -DBLE_DISS_ENABLE 2637endif 2638 2639endif # BLE 2640 2641# ------------------------------------------- 2642# Full application features (BT and/or BLE) 2643# ------------------------------------------- 2644 2645ifeq ($(FULL_APP_PROJECT),1) 2646 2647export SPEECH_LIB ?= 1 2648 2649# make sure the value of GFPS_ENABLE and GMA_VOICE is confirmed above here 2650ifneq ($(filter 1,$(GFPS_ENABLE) $(GMA_VOICE) $(TOTA) $(TOTA_v2) $(BLE) $(CTKD_ENABLE)),) 2651core-y += utils/encrypt/ 2652endif 2653 2654ifeq ($(CTKD_ENABLE),1) 2655export CTKD_ENABLE 2656core-y += utils/aes_cmac/ 2657KBUILD_CPPFLAGS += -DCTKD_ENABLE 2658endif 2659 2660ifeq ($(SIGNAL_GENERATOR),1) 2661core-y += utils/signal_generator/ 2662KBUILD_CPPFLAGS += -DSIGNAL_GENERATOR 2663endif 2664 2665export BESLIB_INFO := $(GIT_REVISION) 2666 2667export FLASH_PROTECTION ?= 1 2668 2669export APP_TEST_AUDIO ?= 0 2670 2671ifeq ($(APP_TEST_MODE),1) 2672export APP_TEST_MODE 2673KBUILD_CPPFLAGS += -DAPP_TEST_MODE 2674endif 2675 2676export VOICE_PROMPT ?= 1 2677 2678export AUDIO_QUEUE_SUPPORT ?= 1 2679 2680export VOICE_RECOGNITION ?= 0 2681 2682export FLASH_SUSPEND ?= 1 2683 2684export ENGINEER_MODE ?= 1 2685ifeq ($(ENGINEER_MODE),1) 2686FACTORY_MODE := 1 2687endif 2688ifeq ($(FACTORY_MODE),1) 2689KBUILD_CPPFLAGS += -D__FACTORY_MODE_SUPPORT__ 2690endif 2691 2692export NEW_NV_RECORD_ENABLED ?= 1 2693ifeq ($(NEW_NV_RECORD_ENABLED),1) 2694KBUILD_CPPFLAGS += -DNEW_NV_RECORD_ENABLED 2695KBUILD_CPPFLAGS += -Iservices/nv_section/userdata_section 2696else 2697KBUILD_CPPFLAGS += -Iservices/nvrecord 2698endif 2699 2700FILE_SYSTEM_SECTION_SIZE ?= 0 2701 2702ifeq ($(APP_USE_LED_INDICATE_IBRT_STATUS),1) 2703KBUILD_CPPFLAGS += -D__APP_USE_LED_INDICATE_IBRT_STATUS__ 2704endif 2705 2706ifeq ($(HEAR_THRU_PEAK_DET),1) 2707KBUILD_CPPFLAGS += -D__HEAR_THRU_PEAK_DET__ 2708endif 2709 2710ifeq ($(BLE),1) 2711KBUILD_CPPFLAGS += -DBESBT_STACK_SIZE=1024*8+512 2712else 2713KBUILD_CPPFLAGS += -DBESBT_STACK_SIZE=1024*5+512 2714endif 2715 2716ifeq ($(FREE_TWS_PAIRING_ENABLED),1) 2717KBUILD_CPPFLAGS += -DFREE_TWS_PAIRING_ENABLED 2718endif 2719 2720ifeq ($(VOICE_TX_AEC),1) 2721export VOICE_TX_AEC 2722KBUILD_CPPFLAGS += -DVOICE_TX_AEC 2723KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 2724endif 2725 2726ifeq ($(APP_NOISE_ESTIMATION),1) 2727export APP_NOISE_ESTIMATION 2728KBUILD_CPPFLAGS += -DAPP_NOISE_ESTIMATION 2729KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 2730endif 2731 2732ifeq ($(VOICE_PROMPT),1) 2733KBUILD_CPPFLAGS += -DMEDIA_PLAYER_SUPPORT 2734endif 2735 2736ifeq ($(TOTA),1) 2737KBUILD_CPPFLAGS += -DTOTA 2738ifeq ($(BLE),1) 2739KBUILD_CPPFLAGS += -DBLE_TOTA_ENABLED 2740endif 2741KBUILD_CPPFLAGS += -DSHOW_RSSI 2742KBUILD_CPPFLAGS += -DTEST_OVER_THE_AIR_ENANBLED 2743export TEST_OVER_THE_AIR ?= 1 2744endif 2745 2746ifeq ($(TOTA_v2),1) 2747KBUILD_CPPFLAGS += -DTOTA_v2 2748ifeq ($(BLE),1) 2749KBUILD_CPPFLAGS += -DBLE_TOTA_ENABLEDx 2750endif 2751KBUILD_CPPFLAGS += -DSHOW_RSSI 2752KBUILD_CPPFLAGS += -DTEST_OVER_THE_AIR_ENANBLED 2753export TEST_OVER_THE_AIR_v2 ?= 1 2754endif 2755 2756export RESUME_MUSIC_AFTER_CRASH_REBOOT ?= 0 2757ifeq ($(RESUME_MUSIC_AFTER_CRASH_REBOOT),1) 2758KBUILD_CPPFLAGS += -DRESUME_MUSIC_AFTER_CRASH_REBOOT 2759endif 2760 2761ifeq ($(TEST_OVER_THE_AIR),1) 2762export TEST_OVER_THE_AIR 2763KBUILD_CPPFLAGS += -DTEST_OVER_THE_AIR_ENANBLED=1 2764endif 2765 2766ifeq ($(USE_THIRDPARTY),1) 2767KBUILD_CPPFLAGS += -D__THIRDPARTY 2768core-y += thirdparty/ 2769endif 2770 2771ifeq ($(SENSOR),1) 2772export SENSOR 2773KBUILD_CPPFLAGS += -D__SENSOR__ 2774endif 2775 2776ifeq ($(APP_UART_MODULE),1) 2777export APP_UART_MODULE 2778KBUILD_CPPFLAGS += -DAPP_UART_MODULE 2779endif 2780 2781export APP_KEY_ENABLE := 1 2782ifeq ($(APP_KEY_ENABLE),1) 2783KBUILD_CPPFLAGS += -DAPP_KEY_ENABLE 2784endif 2785 2786ifeq ($(APP_ANC_TEST),1) 2787export APP_ANC_TEST 2788KBUILD_CPPFLAGS += -DAPP_ANC_TEST 2789endif 2790 2791# AUDIO_DEBUG 2792ifeq ($(AUDIO_DEBUG_CMD),1) 2793export AUDIO_DEBUG_CMD 2794endif 2795 2796ifeq ($(AUDIO_DEBUG),1) 2797export AUDIO_DEBUG 2798export AUDIO_DEBUG_CMD ?= 1 2799KBUILD_CPPFLAGS += -DAUDIO_DEBUG 2800endif 2801# AUDIO_DEBUG END 2802 2803ifneq ($(filter BT_HFP_AT BT_SPP,$(APP_DEBUG_TOOL)),) 2804export APP_DEBUG_TOOL 2805endif 2806 2807export BT_WIFI_COEX_P12 ?=0 2808ifeq ($(DEBUG),1) 2809ifneq ($(filter 1, $(AUDIO_DEBUG_CMD) $(AUTO_TEST) $(BES_AUTOMATE_TEST)),) 2810export APP_TRACE_RX_ENABLE := 1 2811else 2812ifneq ($(BT_DEBUG_TPORTS),0) 2813ifeq ($(BT_WIFI_COEX_P12),0) 2814export APP_TRACE_RX_ENABLE := 1 2815endif 2816endif 2817endif 2818endif 2819ifeq ($(APP_TRACE_RX_ENABLE),1) 2820KBUILD_CPPFLAGS += -DAPP_TRACE_RX_ENABLE 2821endif 2822 2823ifeq ($(WATCHER_DOG),1) 2824KBUILD_CPPFLAGS += -D__WATCHER_DOG_RESET__ 2825endif 2826 2827ifeq ($(AUTO_TEST),1) 2828export AUTO_TEST 2829KBUILD_CFLAGS += -D_AUTO_TEST_ 2830endif 2831 2832ifeq ($(BES_AUTOMATE_TEST),1) 2833export BES_AUTOMATE_TEST 2834KBUILD_CFLAGS += -DBES_AUTOMATE_TEST 2835endif 2836 2837ifeq ($(SPEECH_BONE_SENSOR),1) 2838export SPEECH_BONE_SENSOR 2839# ADC and I2S use PLL 2840# export NO_SCO_RESAMPLE := 1 2841KBUILD_CPPFLAGS += -DSPEECH_BONE_SENSOR 2842 2843# Configure IIC 2844KBUILD_CPPFLAGS += -DI2C_TASK_MODE 2845KBUILD_CPPFLAGS += -DLIS25BA_I2C_ID=0 2846 2847# Configure I2S/TDM 2848ifneq ($(CHIP_HAS_TDM),) 2849# 2300p/2300a... 2850export AF_DEVICE_TDM := 1 2851export SPEECH_BONE_SENSOR_TDM := 1 2852KBUILD_CPPFLAGS += -DI2S_MCLK_FROM_SPDIF 2853KBUILD_CPPFLAGS += -DI2S_MCLK_PIN 2854KBUILD_CPPFLAGS += -DI2S_MCLK_IOMUX_INDEX=33 2855else 2856# 2300 2857export AF_DEVICE_I2S := 1 2858export SPEECH_BONE_SENSOR_I2S := 1 2859KBUILD_CPPFLAGS += -DI2S_MCLK_FROM_SPDIF 2860KBUILD_CPPFLAGS += -DI2S_MCLK_PIN 2861KBUILD_CPPFLAGS += -DI2S_MCLK_IOMUX_INDEX=13 2862KBUILD_CPPFLAGS += -DCLKOUT_IOMUX_INDEX=13 2863endif 2864 2865# Sync ADC and I2S 2866ifeq ($(CHIP_HAS_I2S_TDM_TRIGGER),1) 2867# Hardware trigger method 2868KBUILD_CPPFLAGS += -DHW_I2S_TDM_TRIGGER 2869else 2870# Software method 2871export INT_LOCK_EXCEPTION ?= 1 2872KBUILD_CPPFLAGS += -DAF_ADC_I2S_SYNC 2873endif 2874# KBUILD_CPPFLAGS += -DSPEECH_DEBUG_ADC_I2S_SYNC 2875endif # SPEECH_BONE_SENSOR 2876 2877export IS_AUTOPOWEROFF_ENABLED ?= 1 2878ifeq ($(IS_AUTOPOWEROFF_ENABLED),1) 2879KBUILD_CFLAGS += -D__BTIF_AUTOPOWEROFF__ 2880endif 2881 2882# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2883# BISTO feature 2884# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2885ifeq ($(BISTO_ENABLE),1) 2886 2887KBUILD_CFLAGS += -DBISTO_ENABLED 2888 2889KBUILD_CPPFLAGS += -DCFG_SW_KEY_LPRESS_THRESH_MS=1000 2890 2891KBUILD_CPPFLAGS += -DDEBUG_BLE_DATAPATH=0 2892 2893KBUILD_CFLAGS += -DCRC32_OF_IMAGE 2894 2895ASSERT_SHOW_FILE_FUNC ?= 1 2896 2897#KBUILD_CPPFLAGS += -DSAVING_AUDIO_DATA_TO_SD_ENABLED=1 2898 2899KBUILD_CPPFLAGS += -DIS_GSOUND_BUTTION_HANDLER_WORKAROUND_ENABLED 2900 2901ifeq ($(GSOUND_HOTWORD_ENABLE), 1) 2902export GSOUND_HOTWORD_ENABLE 2903KBUILD_CFLAGS += -DGSOUND_HOTWORD_ENABLED 2904ifeq ($(GSOUND_HOTWORD_EXTERNAL), 1) 2905export GSOUND_HOTWORD_EXTERNAL 2906KBUILD_CFLAGS += -DGSOUND_HOTWORD_EXTERNAL 2907endif 2908endif 2909 2910REDUCED_GUESTURE_ENABLE ?= 0 2911 2912ifeq ($(REDUCED_GUESTURE_ENABLE), 1) 2913KBUILD_CFLAGS += -DREDUCED_GUESTURE_ENABLED 2914endif 2915endif # BISTO_ENABLE 2916 2917# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2918# GFPS feature 2919# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2920ifeq ($(GFPS_ENABLE),1) 2921export BLE_SECURITY_ENABLED := 1 2922export GFPS_ENABLE 2923 2924KBUILD_CPPFLAGS += -DGFPS_ENABLED 2925 2926# this macro is used to determain if the resolveable private address is used for BLE 2927KBUILD_CPPFLAGS += -DBLE_USE_RPA 2928endif # GFPS 2929 2930# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2931# AMA feature 2932# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2933ifeq ($(AMA_VOICE),1) 2934export AMA_VOICE 2935 2936KBUILD_CPPFLAGS += -D__AMA_VOICE__ 2937KBUILD_CPPFLAGS += -DBLE_USE_RPA 2938KBUILD_CPPFLAGS += -DAMA_ENCODE_USE_OPUS 2939endif # AMA_VOICE 2940 2941# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2942# DMA feature 2943# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2944ifeq ($(DMA_VOICE),1) 2945export DMA_VOICE 2946KBUILD_CPPFLAGS += -D__DMA_VOICE__ 2947KBUILD_CPPFLAGS += -D__BES__ 2948KBUILD_CPPFLAGS += -DNVREC_BAIDU_DATA_SECTION 2949KBUILD_CPPFLAGS += -DBAIDU_DATA_RAND_LEN=8 2950KBUILD_CPPFLAGS += -DFM_MIN_FREQ=875 2951KBUILD_CPPFLAGS += -DFM_MAX_FREQ=1079 2952KBUILD_CPPFLAGS += -DBAIDU_DATA_DEF_FM_FREQ=893 2953KBUILD_CPPFLAGS += -DBAIDU_DATA_SN_LEN=16 2954export SHA256_ROM ?= 1 2955ifeq ($(LIBC_ROM),1) 2956$(error LIBC_ROM should be 0 when DMA_VOICE=1) 2957endif 2958endif # DMA_VOICE 2959 2960# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2961# GMA feature 2962# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2963ifeq ($(GMA_VOICE),1) 2964export GMA_VOICE 2965KBUILD_CPPFLAGS += -D__GMA_VOICE__ 2966 2967#KBUILD_CPPFLAGS += -DKEYWORD_WAKEUP_ENABLED=0 2968#KBUILD_CPPFLAGS += -DPUSH_AND_HOLD_ENABLED=1 2969#KBUILD_CPPFLAGS += -DAI_32KBPS_VOICE=0 2970 2971KBUILD_CPPFLAGS += -D__GMA_OTA_TWS__ 2972#KBUILD_CPPFLAGS += -DMCU_HIGH_PERFORMANCE_MODE 2973endif 2974 2975# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2976# SMART_VOICE feature 2977# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2978ifeq ($(SMART_VOICE),1) 2979export SMART_VOICE 2980KBUILD_CPPFLAGS += -D__SMART_VOICE__ 2981#SPEECH_CODEC_CAPTURE_CHANNEL_NUM ?= 2 2982#KBUILD_CPPFLAGS += -DMCU_HIGH_PERFORMANCE_MODE 2983#KBUILD_CPPFLAGS += -DSPEECH_CAPTURE_TWO_CHANNEL 2984endif # SMART_VOICE 2985 2986# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2987# TENCENT_VOICE feature 2988# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2989ifeq ($(TENCENT_VOICE),1) 2990export TENCENT_VOICE 2991KBUILD_CPPFLAGS += -D__TENCENT_VOICE__ 2992endif # TENCENT_VOICE 2993 2994# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2995# CUSTOMIZE feature 2996# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2997ifeq ($(CUSTOMIZE_VOICE),1) 2998export CUSTOMIZE_VOICE 2999KBUILD_CPPFLAGS += -D__CUSTOMIZE_VOICE__ 3000#SPEECH_CODEC_CAPTURE_CHANNEL_NUM ?= 2 3001#KBUILD_CPPFLAGS += -DMCU_HIGH_PERFORMANCE_MODE 3002#KBUILD_CPPFLAGS += -DSPEECH_CAPTURE_TWO_CHANNEL 3003endif # CUSTOMIZE_VOICE 3004 3005# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3006# Dual MIC recording feature 3007# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3008ifeq ($(DUAL_MIC_RECORDING),1) 3009export DUAL_MIC_RECORDING 3010KBUILD_CPPFLAGS += -DDUAL_MIC_RECORDING 3011KBUILD_CPPFLAGS += -DGLOBAL_SRAM_KISS_FFT 3012 3013ifeq ($(STEREO_RECORD_PROCESS),1) 3014export STEREO_RECORD_PROCESS 3015endif 3016endif # DUAL_MIC_RECORDING 3017 3018# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3019# AI_VOICE feature 3020# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3021ifneq ($(filter 1,$(BISTO_ENABLE) $(AMA_VOICE) $(DMA_VOICE) $(SMART_VOICE) $(TENCENT_VOICE) $(GMA_VOICE) $(CUSTOMIZE_VOICE) $(DUAL_MIC_RECORDING)),) 3022AI_VOICE := 1 3023USE_THIRDPARTY := 1 3024endif 3025 3026ifeq ($(AI_VOICE),1) 3027export AI_VOICE 3028KBUILD_CPPFLAGS += -D__AI_VOICE__ 3029BTIF_DIP_DEVICE := 1 3030 3031ifeq ($(BLE),1) 3032KBUILD_CPPFLAGS += -D__AI_VOICE_BLE_ENABLE__ 3033endif 3034 3035ifeq ($(ALEXA_WWE),1) 3036KBUILD_CPPFLAGS += -DAPP_THREAD_STACK_SIZE=3072 3037endif 3038endif # AI_VOICE 3039 3040ifeq ($(THROUGH_PUT),1) 3041KBUILD_CPPFLAGS += -D__THROUGH_PUT__ 3042endif # THROUGH_PUT 3043 3044ifeq ($(USE_KNOWLES),1) 3045KBUILD_CPPFLAGS += -D__KNOWLES 3046KBUILD_CPPFLAGS += -DIDLE_ALEXA_KWD 3047export THIRDPARTY_LIB := knowles_uart 3048endif 3049 3050AI_CAPTURE_CHANNEL_NUM ?= 0 3051ifneq ($(AI_CAPTURE_CHANNEL_NUM),0) 3052KBUILD_CPPFLAGS += -DAI_CAPTURE_CHANNEL_NUM=$(AI_CAPTURE_CHANNEL_NUM) 3053endif 3054 3055AI_CAPTURE_DATA_AEC ?= 0 3056ifeq ($(AI_CAPTURE_DATA_AEC),1) 3057KBUILD_CPPFLAGS += -DAI_CAPTURE_DATA_AEC 3058KBUILD_CPPFLAGS += -DAI_ALGORITHM_ENABLE 3059KBUILD_CPPFLAGS += -DAEC_STERE_ON 3060KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 3061endif 3062 3063export AI_AEC_CP_ACCEL ?= 0 3064ifeq ($(AI_AEC_CP_ACCEL),1) 3065KBUILD_CPPFLAGS += -DAI_AEC_CP_ACCEL 3066endif 3067 3068export BTIF_DIP_DEVICE ?= 0 3069ifeq ($(BTIF_DIP_DEVICE),1) 3070KBUILD_CPPFLAGS += -DBTIF_DIP_DEVICE 3071endif 3072 3073# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3074# Print bt addr config 3075# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3076export BT_ADDR_PRINT_CONFIG ?= 0 3077ifeq ($(BT_ADDR_PRINT_CONFIG),1) 3078KBUILD_CPPFLAGS += -DBT_ADDR_OUTPUT_PRINT_NUM=2 3079else 3080KBUILD_CPPFLAGS += -DBT_ADDR_OUTPUT_PRINT_NUM=6 3081endif 3082 3083# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3084# MULTI_AI feature 3085# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3086# NOTE: value of AI_VOICE and BISTO_ENABLE must already confirmed above here 3087ifeq ($(AI_VOICE)-$(BISTO_ENABLE),1-1) 3088IS_MULTI_AI_ENABLE := 1 3089endif 3090ifeq ($(IS_MULTI_AI_ENABLE),1) 3091export SHA256_ROM ?= 1 3092KBUILD_CPPFLAGS += -DIS_MULTI_AI_ENABLED 3093endif # MULTI_AI 3094 3095# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3096# VOICE COMPRESSION feature 3097# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3098DUAL_MIC_RECORDING ?= 0 3099RECORDING_USE_OPUS ?= 0 3100RECORDING_USE_OPUS_LOWER_BANDWIDTH ?= 0 3101RECORDING_USE_SCALABLE ?= 0 3102## determine the value of VOC_ENCODE_ENABLE 3103ifneq ($(filter 1, $(AMA_VOICE) $(DMA_VOICE) $(GMA_VOICE) $(SMART_VOICE) $(TENCENT_VOICE) $(CUSTOMIZE_VOICE) $(DUAL_MIC_RECORDING)),) 3104export VOC_ENCODE_ENABLE := 1 3105KBUILD_CPPFLAGS += -DVOC_ENCODE_ENABLE 3106endif 3107 3108## voice compression use ADPCM 3109# KBUILD_CPPFLAGS += -DVOC_ENCODE_ADPCM=1 3110 3111## voice compression use OPUS 3112### record use OPUS 3113VOC_RECORD_ENCODE_USE_OPUS ?= 0 3114ifeq ($(filter 0, $(DUAL_MIC_RECORDING) $(RECORDING_USE_OPUS)),) 3115VOC_RECORD_ENCODE_USE_OPUS := 1 3116#### recording use opus config 3117KBUILD_CPPFLAGS += -DRECORDING_USE_OPUS 3118#### low bandwidth config 3119ifeq ($(RECORDING_USE_OPUS_LOWER_BANDWIDTH),1) 3120KBUILD_CPPFLAGS += -DRECORDING_USE_OPUS_LOW_BANDWIDTH 3121endif 3122endif 3123### AI use OPUS 3124VOC_AI_ENCODE_USE_OPUS ?= 0 3125ifneq ($(filter 1, $(AMA_VOICE) $(DMA_VOICE) $(GMA_VOICE) $(SMART_VOICE) $(TENCENT_VOICE) $(CUSTOMIZE_VOICE)),) 3126VOC_AI_ENCODE_USE_OPUS := 1 3127endif 3128### voice compression codec type determine 3129ifneq ($(filter 1, $(VOC_RECORD_ENCODE_USE_OPUS) $(VOC_AI_ENCODE_USE_OPUS)),) 3130export VOC_ENCODE_OPUS := 1 3131KBUILD_CPPFLAGS += -DVOC_ENCODE_OPUS=2 3132KBUILD_CPPFLAGS += -DOPUS_IN_OVERLAY 3133endif 3134 3135## voice compression use SBC 3136ifeq ($(BISTO_ENABLE), 1) 3137export VOC_ENCODE_SBC := 1 3138KBUILD_CPPFLAGS += -DVOC_ENCODE_SBC=3 3139endif 3140 3141## voice compression use SCALABLE 3142ifeq ($(filter 0, $(DUAL_MIC_RECORDING) $(RECORDING_USE_SCALABLE)),) 3143export VOC_ENCODE_SCALABLE := 1 3144KBUILD_CPPFLAGS += -DVOC_ENCODE_SCALABLE=4 3145KBUILD_CPPFLAGS += -DRECORDING_USE_SCALABLE 3146endif 3147 3148 3149# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3150# VOICE_DATAPATH feature 3151# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3152ifeq ($(VOICE_DATAPATH_ENABLED),1) 3153export VOICE_DATAPATH_ENABLED 3154KBUILD_CPPFLAGS += -DVOICE_DATAPATH 3155endif # VOICE_DATAPATH 3156 3157export SLAVE_ADV_BLE_ENABLED ?= 0 3158ifeq ($(SLAVE_ADV_BLE_ENABLED),1) 3159KBUILD_CPPFLAGS += -DSLAVE_ADV_BLE 3160endif 3161 3162# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3163# TILE feature 3164# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3165ifeq ($(TILE_DATAPATH_ENABLED),1) 3166export TILE_DATAPATH_ENABLED 3167KBUILD_CPPFLAGS += -DTILE_DATAPATH 3168endif 3169 3170export CUSTOM_INFORMATION_TILE_ENABLE ?= 0 3171ifeq ($(CUSTOM_INFORMATION_TILE_ENABLE),1) 3172KBUILD_CPPFLAGS += -DCUSTOM_INFORMATION_TILE=1 3173endif # TILE 3174 3175# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3176# MFI feature 3177# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3178ifeq ($(IOS_MFI),1) 3179KBUILD_CPPFLAGS += -DIOS_IAP2_PROTOCOL 3180endif # IOS_MFI 3181 3182# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3183# OTA feature 3184# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3185export VERSION_INFO 3186 3187export OTA_ENABLE ?= 0 3188ifneq ($(filter 1,$(BES_OTA) $(AI_OTA) $(INTERCONNECTION) $(GMA_VOICE)),) 3189OTA_ENABLE := 1 3190endif 3191 3192ifeq ($(OTA_ENABLE),1) 3193ifeq ($(FPGA),1) 3194export OTA_CODE_OFFSET ?= 0 3195else 3196ifneq ($(filter best1400 best2300 best2300p,$(CHIP)),) 3197export OTA_CODE_OFFSET ?= 0x18000 3198else 3199export OTA_CODE_OFFSET ?= 0x20000 3200endif 3201endif 3202KBUILD_CPPFLAGS += -DOTA_ENABLE 3203KBUILD_CPPFLAGS += -D__APP_IMAGE_FLASH_OFFSET__=$(OTA_CODE_OFFSET) 3204KBUILD_CPPFLAGS += -DFIRMWARE_REV 3205ifeq ($(FLASH_REMAP),1) 3206export FLASH_PROTECTION := 0 3207# can change this value if 2MB cannot fit the application image 3208OTA_MAX_IMAGE_SIZE ?= 0x200000 3209OTA_REMAP_OFFSET ?= $(OTA_MAX_IMAGE_SIZE) 3210KBUILD_CPPFLAGS += -DOTA_REMAP_OFFSET=$(OTA_REMAP_OFFSET) 3211KBUILD_CPPFLAGS += -DFLASH_REMAP 3212KBUILD_CPPFLAGS += -DNEW_IMAGE_FLASH_OFFSET=$(OTA_CODE_OFFSET) 3213else 3214KBUILD_CPPFLAGS += -DNEW_IMAGE_FLASH_OFFSET=0x200000 3215endif # REMAP 3216endif # OTA 3217 3218ifeq ($(BES_OTA),1) 3219export BES_OTA 3220KBUILD_CPPFLAGS += -DBES_OTA 3221 3222ifeq ($(IBRT),1) 3223export IBRT_OTA := 1 3224KBUILD_CPPFLAGS += -DIBRT_OTA 3225endif 3226endif 3227 3228ifeq ($(AI_OTA),1) 3229export AI_OTA 3230KBUILD_CPPFLAGS += -DAI_OTA 3231endif 3232 3233# shall not be updated by application project, as it influences the ibrt core library 3234ifneq ($(filter 1, $(GFPS_ENABLE) $(TILE_DATAPATH_ENABLED) $(GMA_VOICE) $(BES_OTA) $(DUAL_MIC_RECORDING) $(LINEIN_TRANS_ON)),) 3235export APP_TWS_MTU_SIZE := 672 3236else 3237export APP_TWS_MTU_SIZE := 348 3238endif 3239KBUILD_CPPFLAGS += -DAPP_TWS_CTRL_BUFFER_MAX_LEN=$(APP_TWS_MTU_SIZE) 3240 3241# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3242# MIX_MIC_DURING_MUSIC feature 3243# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3244ifeq ($(MIX_MIC_DURING_MUSIC_ENABLED),1) 3245KBUILD_CPPFLAGS += -DMIX_MIC_DURING_MUSIC 3246endif 3247 3248# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3249# PROMPT_IN_FLASH feature 3250# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3251ifeq ($(PROMPT_IN_FLASH),1) 3252export PROMPT_IN_FLASH 3253KBUILD_CPPFLAGS += -DPROMPT_IN_FLASH 3254 3255ifeq ($(PROMPT_EMBEDED),1) 3256export PROMPT_EMBEDED 3257KBUILD_CPPFLAGS += -DPROMPT_EMBEDED 3258endif 3259endif 3260 3261ifeq ($(COMBO_CUSBIN_IN_FLASH),1) 3262KBUILD_CPPFLAGS += -DCOMBO_CUSBIN_IN_FLASH 3263endif 3264 3265# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3266# Flash suspend features 3267# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3268ifeq ($(FLASH_SUSPEND), 1) 3269KBUILD_CPPFLAGS += -DFLASH_SUSPEND 3270endif 3271 3272# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3273# BLE only enable features 3274# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3275ifeq ($(BLE_ONLY_ENABLED),1) 3276export BLE_ONLY_ENABLED 3277KBUILD_CPPFLAGS += -DBLE_ONLY_ENABLED 3278KBUILD_CPPFLAGS += -DBLE_POWER_LEVEL_0 3279endif 3280 3281# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3282# GATT over BR/EDR features 3283# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3284ifeq ($(GATT_OVER_BR_EDR),1) 3285export GATT_OVER_BR_EDR 3286KBUILD_CPPFLAGS += -D__GATT_OVER_BR_EDR__ 3287endif 3288 3289# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 3290# Sensor Hub features 3291# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3292ifeq ($(SENSOR_HUB),1) 3293KBUILD_CPPFLAGS += -DSENSOR_HUB 3294endif 3295 3296ifneq ($(HW_VERSION_STRING),) 3297export HW_VERSION_STRING 3298endif 3299 3300KBUILD_CPPFLAGS += -DMULTIPOINT_DUAL_SLAVE 3301 3302endif # FULL_APP_PROJECT 3303 3304# ------------------------------------------- 3305# Speech features 3306# ------------------------------------------- 3307 3308ifeq ($(USB_AUDIO_SPEECH),1) 3309export USB_AUDIO_SPEECH 3310export USB_AUDIO_DYN_CFG := 0 3311export KEEP_SAME_LATENCY := 1 3312export SPEECH_LIB := 1 3313endif 3314 3315ifeq ($(SPEECH_LIB),1) 3316 3317export DSP_LIB ?= 1 3318 3319ifeq ($(USB_AUDIO_APP),1) 3320ifneq ($(USB_AUDIO_SEND_CHAN),$(SPEECH_CODEC_CAPTURE_CHANNEL_NUM)) 3321$(info ) 3322$(info CAUTION: Change USB_AUDIO_SEND_CHAN($(USB_AUDIO_SEND_CHAN)) to SPEECH_CODEC_CAPTURE_CHANNEL_NUM($(SPEECH_CODEC_CAPTURE_CHANNEL_NUM))) 3323$(info ) 3324export USB_AUDIO_SEND_CHAN := $(SPEECH_CODEC_CAPTURE_CHANNEL_NUM) 3325ifneq ($(USB_AUDIO_SEND_CHAN),$(SPEECH_CODEC_CAPTURE_CHANNEL_NUM)) 3326$(error ERROR: Failed to change USB_AUDIO_SEND_CHAN($(USB_AUDIO_SEND_CHAN))) 3327endif 3328endif 3329endif 3330 3331#export HFP_DISABLE_NREC ?= 0 3332 3333ifeq ($(SCO_ADD_CUSTOMER_CODEC),1) 3334export SCO_ADD_CUSTOMER_CODEC 3335KBUILD_CPPFLAGS += -DSCO_ADD_CUSTOMER_CODEC 3336endif 3337 3338ifeq ($(SPEECH_TX_24BIT),1) 3339export SPEECH_TX_24BIT 3340KBUILD_CPPFLAGS += -DSPEECH_TX_24BIT 3341endif 3342 3343ifeq ($(SPEECH_TX_DC_FILTER),1) 3344export SPEECH_TX_DC_FILTER 3345KBUILD_CPPFLAGS += -DSPEECH_TX_DC_FILTER 3346export HFP_DISABLE_NREC := 1 3347endif 3348 3349ifeq ($(SPEECH_TX_MIC_CALIBRATION),1) 3350export SPEECH_TX_MIC_CALIBRATION 3351KBUILD_CPPFLAGS += -DSPEECH_TX_MIC_CALIBRATION 3352endif 3353 3354ifeq ($(SPEECH_TX_MIC_FIR_CALIBRATION),1) 3355export SPEECH_TX_MIC_FIR_CALIBRATION 3356KBUILD_CPPFLAGS += -DSPEECH_TX_MIC_FIR_CALIBRATION 3357endif 3358 3359#export SPEECH_TX_AEC_CODEC_REF ?= 0 3360 3361ifeq ($(SPEECH_TX_AEC),1) 3362export SPEECH_TX_AEC 3363KBUILD_CPPFLAGS += -DSPEECH_TX_AEC 3364export HFP_DISABLE_NREC := 1 3365ifeq ($(CHIP_HAS_EC_CODEC_REF),1) 3366export SPEECH_TX_AEC_CODEC_REF := 1 3367endif 3368endif 3369 3370ifeq ($(SPEECH_TX_AEC2),1) 3371export SPEECH_TX_AEC2 3372$(error SPEECH_TX_AEC2 is not supported now, use SPEECH_TX_AEC2FLOAT instead) 3373KBUILD_CPPFLAGS += -DSPEECH_TX_AEC2 3374export HFP_DISABLE_NREC := 1 3375ifeq ($(CHIP_HAS_EC_CODEC_REF),1) 3376export SPEECH_TX_AEC_CODEC_REF := 1 3377endif 3378endif 3379 3380ifeq ($(SPEECH_TX_AEC3),1) 3381export SPEECH_TX_AEC3 3382KBUILD_CPPFLAGS += -DSPEECH_TX_AEC3 3383export HFP_DISABLE_NREC := 1 3384ifeq ($(CHIP_HAS_EC_CODEC_REF),1) 3385export SPEECH_TX_AEC_CODEC_REF := 1 3386endif 3387endif 3388 3389ifeq ($(SPEECH_TX_AEC2FLOAT),1) 3390export SPEECH_TX_AEC2FLOAT 3391KBUILD_CPPFLAGS += -DSPEECH_TX_AEC2FLOAT 3392export HFP_DISABLE_NREC := 1 3393#export DSP_LIB ?= 1 3394ifeq ($(CHIP_HAS_EC_CODEC_REF),1) 3395export SPEECH_TX_AEC_CODEC_REF := 1 3396endif 3397endif 3398 3399ifeq ($(SPEECH_TX_NS),1) 3400export SPEECH_TX_NS 3401KBUILD_CPPFLAGS += -DSPEECH_TX_NS 3402export HFP_DISABLE_NREC := 1 3403endif 3404 3405ifeq ($(SPEECH_TX_NN_NS),1) 3406export SPEECH_TX_NN_NS 3407KBUILD_CPPFLAGS += -DSPEECH_TX_NN_NS 3408export NN_LIB ?= 1 3409endif 3410 3411ifeq ($(SPEECH_TX_NN_NS2),1) 3412export SPEECH_TX_NN_NS2 3413KBUILD_CPPFLAGS += -DSPEECH_TX_NN_NS2 3414export NN_LIB ?= 1 3415endif 3416 3417ifeq ($(SPEECH_TX_NS2),1) 3418export SPEECH_TX_NS2 3419KBUILD_CPPFLAGS += -DSPEECH_TX_NS2 3420export HFP_DISABLE_NREC := 1 3421KBUILD_CPPFLAGS += -DLC_MMSE_FRAME_LENGTH=$(LC_MMSE_FRAME_LENGTH) 3422endif 3423 3424ifeq ($(SPEECH_TX_NS2FLOAT),1) 3425export SPEECH_TX_NS2FLOAT 3426KBUILD_CPPFLAGS += -DSPEECH_TX_NS2FLOAT 3427export HFP_DISABLE_NREC := 1 3428#export DSP_LIB ?= 1 3429endif 3430 3431ifeq ($(SPEECH_TX_NS3),1) 3432export SPEECH_TX_NS3 3433KBUILD_CPPFLAGS += -DSPEECH_TX_NS3 3434export HFP_DISABLE_NREC := 1 3435endif 3436 3437ifeq ($(SPEECH_TX_WNR),1) 3438export SPEECH_TX_WNR 3439KBUILD_CPPFLAGS += -DSPEECH_TX_WNR 3440export HFP_DISABLE_NREC := 1 3441endif 3442 3443ifeq ($(SPEECH_CS_VAD),1) 3444export SPEECH_CS_VAD 3445KBUILD_CPPFLAGS += -DSPEECH_CS_VAD 3446export HFP_DISABLE_NREC := 1 3447endif 3448 3449export SPEECH_CODEC_CAPTURE_CHANNEL_NUM ?= 1 3450 3451#export SPEECH_TX_2MIC_SWAP_CHANNELS ?= 0 3452 3453ifeq ($(SPEECH_TX_2MIC_NS),1) 3454export SPEECH_TX_2MIC_NS 3455KBUILD_CPPFLAGS += -DSPEECH_TX_2MIC_NS 3456export HFP_DISABLE_NREC := 1 3457export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3458endif 3459 3460ifeq ($(SPEECH_TX_2MIC_NS2),1) 3461export SPEECH_TX_2MIC_NS2 3462KBUILD_CPPFLAGS += -DSPEECH_TX_2MIC_NS2 3463export HFP_DISABLE_NREC := 1 3464KBUILD_CPPFLAGS += -DCOH_FRAME_LENGTH=$(COH_FRAME_LENGTH) 3465export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3466endif 3467 3468ifeq ($(SPEECH_TX_2MIC_NS3),1) 3469export SPEECH_TX_2MIC_NS3 3470KBUILD_CPPFLAGS += -DSPEECH_TX_2MIC_NS3 3471export HFP_DISABLE_NREC := 1 3472export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3473endif 3474 3475ifeq ($(SPEECH_TX_2MIC_NS4),1) 3476export SPEECH_TX_2MIC_NS4 3477KBUILD_CPPFLAGS += -DSPEECH_TX_2MIC_NS4 3478export HFP_DISABLE_NREC := 1 3479 3480ifeq ($(SPEECH_BONE_SENSOR),1) 3481# Get 1 channel from sensor 3482export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 1 3483else 3484export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3485endif 3486endif 3487 3488ifeq ($(SPEECH_TX_2MIC_NS5),1) 3489export SPEECH_TX_2MIC_NS5 3490KBUILD_CPPFLAGS += -DSPEECH_TX_2MIC_NS5 3491export HFP_DISABLE_NREC := 1 3492export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3493endif 3494 3495ifeq ($(SPEECH_TX_2MIC_NS6),1) 3496export SPEECH_TX_2MIC_NS6 3497KBUILD_CPPFLAGS += -DSPEECH_TX_2MIC_NS6 3498export HFP_DISABLE_NREC := 1 3499export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3500endif 3501 3502ifeq ($(SPEECH_TX_2MIC_NS8),1) 3503export SPEECH_TX_2MIC_NS8 3504KBUILD_CPPFLAGS += -DSPEECH_TX_2MIC_NS8 3505KBUILD_CPPFLAGS += -DHFP_DISABLE_NREC 3506export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3507endif 3508 3509ifeq ($(SPEECH_TX_3MIC_NS),1) 3510export SPEECH_TX_3MIC_NS 3511KBUILD_CPPFLAGS += -DSPEECH_TX_3MIC_NS 3512export HFP_DISABLE_NREC := 1 3513ifeq ($(SPEECH_BONE_SENSOR),1) 3514# Get 1 channel from sensor 3515export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3516else 3517export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 3 3518endif 3519endif 3520 3521ifeq ($(SPEECH_TX_3MIC_NS2),1) 3522export SPEECH_TX_3MIC_NS2 3523KBUILD_CPPFLAGS += -DSPEECH_TX_3MIC_NS2 3524export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 3 3525KBUILD_CPPFLAGS += -DMCU_HIGH_PERFORMANCE_MODE 3526endif 3527 3528ifeq ($(SPEECH_TX_3MIC_NS3),1) 3529export SPEECH_TX_3MIC_NS3 3530KBUILD_CPPFLAGS += -DSPEECH_TX_3MIC_NS3 3531export HFP_DISABLE_NREC := 1 3532# Get 1 channel from sensor 3533export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 3 3534endif 3535 3536ifeq ($(SPEECH_TX_THIRDPARTY_ALANGO),1) 3537export SPEECH_TX_THIRDPARTY_ALANGO 3538export SPEECH_TX_THIRDPARTY := 1 3539core-y += thirdparty/alango_lib/ 3540endif 3541 3542ifeq ($(SPEECH_TX_THIRDPARTY),1) 3543export SPEECH_TX_THIRDPARTY 3544KBUILD_CPPFLAGS += -DSPEECH_TX_THIRDPARTY 3545export HFP_DISABLE_NREC := 1 3546export SPEECH_CODEC_CAPTURE_CHANNEL_NUM = 2 3547ifeq ($(CHIP_HAS_EC_CODEC_REF),1) 3548export SPEECH_TX_AEC_CODEC_REF := 1 3549endif 3550endif 3551 3552ifeq ($(SPEECH_TX_NOISE_GATE),1) 3553export SPEECH_TX_NOISE_GATE 3554KBUILD_CPPFLAGS += -DSPEECH_TX_NOISE_GATE 3555export HFP_DISABLE_NREC := 1 3556endif 3557 3558ifeq ($(SPEECH_TX_COMPEXP),1) 3559export SPEECH_TX_COMPEXP 3560KBUILD_CPPFLAGS += -DSPEECH_TX_COMPEXP 3561export HFP_DISABLE_NREC := 1 3562endif 3563 3564ifeq ($(SPEECH_TX_AGC),1) 3565export SPEECH_TX_AGC 3566KBUILD_CPPFLAGS += -DSPEECH_TX_AGC 3567export HFP_DISABLE_NREC := 1 3568endif 3569 3570ifeq ($(SPEECH_TX_EQ),1) 3571export SPEECH_TX_EQ 3572KBUILD_CPPFLAGS += -DSPEECH_TX_EQ 3573export HFP_DISABLE_NREC := 1 3574#export DSP_LIB ?= 1 3575endif 3576 3577ifeq ($(SPEECH_TX_POST_GAIN),1) 3578export SPEECH_TX_POST_GAIN 3579KBUILD_CPPFLAGS += -DSPEECH_TX_POST_GAIN 3580endif 3581 3582ifneq ($(SCO_DMA_SNAPSHOT),1) 3583export SPEECH_TX_AEC_CODEC_REF := 0 3584endif 3585 3586# disable codec ref when 2300a enable anc 3587ifeq ($(CHIP), best2300a) 3588ifeq ($(ANC_APP), 1) 3589export SPEECH_TX_AEC_CODEC_REF := 0 3590endif 3591endif 3592 3593# disable codec ref when 1501 enable psap 3594ifeq ($(CHIP), best1501) 3595ifeq ($(PSAP_APP), 1) 3596export SPEECH_TX_AEC_CODEC_REF := 0 3597endif 3598endif 3599 3600# disable codec ref when enable sidetone 3601ifeq ($(SPEECH_SIDETONE), 1) 3602export SPEECH_TX_AEC_CODEC_REF := 0 3603endif 3604 3605ifeq ($(SPEECH_TX_AEC_CODEC_REF),1) 3606KBUILD_CPPFLAGS += -DSPEECH_TX_AEC_CODEC_REF 3607endif 3608 3609ifeq ($(SPEECH_RX_NS),1) 3610export SPEECH_RX_NS 3611KBUILD_CPPFLAGS += -DSPEECH_RX_NS 3612export HFP_DISABLE_NREC := 1 3613endif 3614 3615ifeq ($(SPEECH_RX_NS2),1) 3616export SPEECH_RX_NS2 3617KBUILD_CPPFLAGS += -DSPEECH_RX_NS2 3618export HFP_DISABLE_NREC := 1 3619endif 3620 3621ifeq ($(SPEECH_RX_NS2FLOAT),1) 3622export SPEECH_RX_NS2FLOAT 3623KBUILD_CPPFLAGS += -DSPEECH_RX_NS2FLOAT 3624export HFP_DISABLE_NREC := 1 3625#export DSP_LIB ?= 1 3626endif 3627 3628ifeq ($(SPEECH_RX_NS3),1) 3629export SPEECH_RX_NS3 3630KBUILD_CPPFLAGS += -DSPEECH_RX_NS3 3631export HFP_DISABLE_NREC := 1 3632endif 3633 3634ifeq ($(SPEECH_RX_AGC),1) 3635export SPEECH_RX_AGC 3636KBUILD_CPPFLAGS += -DSPEECH_RX_AGC 3637export HFP_DISABLE_NREC := 1 3638endif 3639 3640ifeq ($(SPEECH_RX_COMPEXP),1) 3641export SPEECH_RX_COMPEXP 3642export HFP_DISABLE_NREC := 1 3643endif 3644 3645ifeq ($(SPEECH_RX_EQ),1) 3646export SPEECH_RX_EQ 3647KBUILD_CPPFLAGS += -DSPEECH_RX_EQ 3648export HFP_DISABLE_NREC := 1 3649#export DSP_LIB ?= 1 3650endif 3651 3652ifeq ($(SPEECH_RX_HW_EQ),1) 3653export SPEECH_RX_HW_EQ 3654export HFP_DISABLE_NREC := 1 3655endif 3656 3657ifeq ($(SPEECH_RX_DAC_EQ),1) 3658export SPEECH_RX_DAC_EQ 3659export HFP_DISABLE_NREC := 1 3660endif 3661 3662ifeq ($(SPEECH_RX_POST_GAIN),1) 3663export SPEECH_RX_POST_GAIN 3664KBUILD_CPPFLAGS += -DSPEECH_RX_POST_GAIN 3665endif 3666 3667ifeq ($(SPEECH_RX_EQ),1) 3668# enable 24bit to fix low level signal distortion 3669export SPEECH_RX_24BIT := 1 3670endif 3671 3672export SPEECH_PROCESS_FRAME_MS ?= 16 3673ifeq ($(SPEECH_CODEC_CAPTURE_CHANNEL_NUM),1) 3674export SPEECH_PROCESS_FRAME_MS := 15 3675endif 3676ifeq ($(SPEECH_TX_NN_NS),1) 3677export SPEECH_PROCESS_FRAME_MS := 16 3678endif 3679ifeq ($(SPEECH_TX_NN_NS2),1) 3680export SPEECH_PROCESS_FRAME_MS := 16 3681endif 3682ifeq ($(SPEECH_TX_2MIC_NS2),1) 3683export SPEECH_PROCESS_FRAME_MS := 15 3684endif 3685ifeq ($(SPEECH_TX_2MIC_NS4),1) 3686export SPEECH_PROCESS_FRAME_MS := 15 3687endif 3688ifeq ($(SPEECH_TX_2MIC_NS5),1) 3689export SPEECH_PROCESS_FRAME_MS := 15 3690endif 3691ifeq ($(SPEECH_TX_THIRDPARTY),1) 3692export SPEECH_PROCESS_FRAME_MS := 15 3693endif 3694KBUILD_CPPFLAGS += -DSPEECH_PROCESS_FRAME_MS=$(SPEECH_PROCESS_FRAME_MS) 3695 3696export SPEECH_SCO_FRAME_MS ?= 15 3697KBUILD_CPPFLAGS += -DSPEECH_SCO_FRAME_MS=$(SPEECH_SCO_FRAME_MS) 3698 3699ifeq ($(SPEECH_SIDETONE),1) 3700export SPEECH_SIDETONE 3701KBUILD_CPPFLAGS += -DSPEECH_SIDETONE 3702ifeq ($(HW_SIDETONE_IIR_PROCESS),1) 3703ifeq ($(ANC_APP),1) 3704$(error ANC_APP conflicts with HW_SIDETONE_IIR_PROCESS) 3705endif 3706export HW_SIDETONE_IIR_PROCESS 3707KBUILD_CPPFLAGS += -DHW_SIDETONE_IIR_PROCESS 3708endif 3709ifeq ($(CHIP),best2000) 3710# Disable SCO resample 3711export SW_SCO_RESAMPLE := 0 3712export NO_SCO_RESAMPLE := 1 3713endif 3714endif 3715 3716ifeq ($(THIRDPARTY_LIB),aispeech) 3717#export DSP_LIB ?= 1 3718endif 3719 3720ifeq ($(THIRDPARTY_LIB),kws/bes) 3721export AQE_KWS := 1 3722endif 3723 3724ifeq ($(AQE_KWS),1) 3725export AQE_KWS 3726export NN_LIB := 1 3727KBUILD_CPPFLAGS += -DAQE_KWS 3728KBUILD_CPPFLAGS += -DAQE_KWS_$(AQE_KWS_NAME) 3729KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 3730endif 3731 3732ifeq ($(AUDIO_HEARING_COMPSATN),1) 3733export AUDIO_HEARING_COMPSATN 3734KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 3735KBUILD_CPPFLAGS += -DAUDIO_HEARING_COMPSATN 3736KBUILD_CPPFLAGS += -DHEARING_MOD_VAL=$(HEARING_MOD_VAL) 3737endif 3738 3739ifeq ($(HEARING_USE_STATIC_RAM),1) 3740KBUILD_CPPFLAGS += -DHEARING_USE_STATIC_RAM 3741endif 3742 3743ifeq ($(AUDIO_CUSTOM_EQ),1) 3744export AUDIO_CUSTOM_EQ 3745export USE_CMSIS_FFT_LEN_1024 := 1 3746KBUILD_CPPFLAGS += -DGLOBAL_SRAM_CMSIS_FFT 3747endif 3748 3749ifeq ($(USE_CMSIS_FFT_LEN_1024),1) 3750KBUILD_CPPFLAGS += -DARM_TABLE_TWIDDLECOEF_F32_512 3751KBUILD_CPPFLAGS += -DARM_TABLE_TWIDDLECOEF_RFFT_F32_1024 3752KBUILD_CPPFLAGS += -DARM_TABLE_BITREVIDX_FLT_512 3753endif 3754 3755KBUILD_CPPFLAGS += -DSPEECH_CODEC_CAPTURE_CHANNEL_NUM=$(SPEECH_CODEC_CAPTURE_CHANNEL_NUM) 3756KBUILD_CPPFLAGS += -DSPEECH_ASR_CAPTURE_CHANNEL_NUM=$(SPEECH_ASR_CAPTURE_CHANNEL_NUM) 3757 3758endif # SPEECH_LIB 3759 3760# ------------------------------------------- 3761# Common features 3762# ------------------------------------------- 3763 3764export DEBUG_PORT ?= 1 3765 3766ifneq ($(filter best1000 best2000,$(CHIP)),) 3767export AUD_SECTION_STRUCT_VERSION ?= 1 3768else 3769export AUD_SECTION_STRUCT_VERSION ?= 2 3770endif 3771ifneq ($(AUD_SECTION_STRUCT_VERSION),) 3772KBUILD_CPPFLAGS += -DAUD_SECTION_STRUCT_VERSION=$(AUD_SECTION_STRUCT_VERSION) 3773endif 3774 3775ifneq ($(FLASH_CHIP),) 3776VALID_FLASH_CHIP_LIST := ALL SIMU \ 3777 GD25LE255E GD25LE128E GD25LQ64C GD25LQ32C GD25LQ16C GD25LQ80C GD25Q32C GD25Q80C GD25Q40C GD25D20C \ 3778 P25Q256L P25Q128L P25Q64L P25Q32L P25Q16L P25Q80H P25Q40H P25Q21H P25Q32SL P25Q16SL \ 3779 ZB25VQ128B \ 3780 XM25QU128C XM25QH16C XM25QH80B \ 3781 XT25Q08B \ 3782 EN25S80B \ 3783 W25Q128JW W25Q32FW W25Q128JV\ 3784 SK25LE032 3785export FLASH_CHIP_LIST := $(subst $(comma),$(space),$(FLASH_CHIP)) 3786ifneq ($(filter-out $(VALID_FLASH_CHIP_LIST),$(FLASH_CHIP_LIST)),) 3787$(error Invalid FLASH_CHIP: $(filter-out $(VALID_FLASH_CHIP_LIST),$(FLASH_CHIP_LIST))) 3788endif 3789endif 3790 3791ifneq ($(NANDFLASH_CHIP),) 3792export NANDFLASH_CHIP_LIST := $(subst $(comma),$(space),$(NANDFLASH_CHIP)) 3793endif 3794 3795 3796ifeq ($(KERNEL),LITEOS_M) 3797export FAULT_DUMP ?= 0 3798else ifeq ($(KERNEL),LITEOS_A) 3799export FAULT_DUMP ?= 0 3800else 3801export FAULT_DUMP ?= 1 3802endif 3803 3804export CODEC_KEEP_CLOCK ?= 0 3805ifeq ($(CODEC_KEEP_CLOCK),1) 3806export CODEC_POWER_DOWN := 0 3807else 3808export CODEC_POWER_DOWN ?= 1 3809endif 3810 3811export AUDIO_OUTPUT_VOLUME_DEFAULT ?= 10 3812KBUILD_CPPFLAGS += -DAUDIO_OUTPUT_VOLUME_DEFAULT=$(AUDIO_OUTPUT_VOLUME_DEFAULT) 3813 3814NV_REC_DEV_VER ?= 2 3815 3816ifeq ($(NO_PWRKEY),1) 3817export NO_PWRKEY 3818endif 3819 3820ifeq ($(NO_GROUPKEY),1) 3821export NO_GROUPKEY 3822endif 3823 3824ifeq ($(NO_SLEEP),1) 3825export NO_SLEEP 3826endif 3827 3828ifeq ($(CRASH_BOOT),1) 3829export CRASH_BOOT 3830endif 3831 3832ifeq ($(USB_HIGH_SPEED),1) 3833export USB_HIGH_SPEED 3834endif 3835 3836ifeq ($(AUDIO_CODEC_ASYNC_CLOSE),1) 3837export AUDIO_CODEC_ASYNC_CLOSE 3838endif 3839 3840ifeq ($(CODEC_PLAY_BEFORE_CAPTURE),1) 3841# Enable the workaround for BEST1000 version C & earlier chips 3842export CODEC_PLAY_BEFORE_CAPTURE 3843endif 3844 3845ifeq ($(AUDIO_INPUT_CAPLESSMODE),1) 3846export AUDIO_INPUT_CAPLESSMODE 3847endif 3848 3849ifeq ($(AUDIO_INPUT_LARGEGAIN),1) 3850export AUDIO_INPUT_LARGEGAIN 3851endif 3852 3853ifeq ($(AUDIO_INPUT_MONO),1) 3854export AUDIO_INPUT_MONO 3855endif 3856 3857ifeq ($(AUDIO_OUTPUT_MONO),1) 3858export AUDIO_OUTPUT_MONO 3859endif 3860 3861ifeq ($(AUDIO_OUTPUT_INVERT_RIGHT_CHANNEL),1) 3862export AUDIO_OUTPUT_INVERT_RIGHT_CHANNEL 3863endif 3864 3865ifeq ($(AUDIO_OUTPUT_CALIB_GAIN_MISSMATCH),1) 3866export AUDIO_OUTPUT_CALIB_GAIN_MISSMATCH 3867endif 3868 3869ifeq ($(CODEC_DAC_MULTI_VOLUME_TABLE),1) 3870export CODEC_DAC_MULTI_VOLUME_TABLE 3871endif 3872 3873ifeq ($(AUDIO_OUTPUT_DAC2_SW_GAIN),1) 3874export AUDIO_OUTPUT_DAC2_SW_GAIN 3875endif 3876 3877ifeq ($(AUDIO_OUTPUT_DAC2),1) 3878export AUDIO_OUTPUT_DAC2 3879endif 3880 3881ifeq ($(DAC_CLASSG_ENABLE),1) 3882export DAC_CLASSG_ENABLE 3883endif 3884 3885ifeq ($(HW_FIR_DSD_PROCESS),1) 3886export HW_FIR_DSD_PROCESS 3887endif 3888 3889ifeq ($(HW_FIR_EQ_PROCESS),1) 3890export HW_FIR_EQ_PROCESS 3891endif 3892 3893ifeq ($(HW_IIR_EQ_PROCESS),1) 3894export HW_IIR_EQ_PROCESS 3895endif 3896 3897ifeq ($(HW_DAC_IIR_EQ_PROCESS),1) 3898export HW_DAC_IIR_EQ_PROCESS 3899endif 3900 3901ifeq ($(AUDIO_DRC),1) 3902export AUDIO_DRC 3903export AUDIO_OUTPUT_SW_GAIN := 1 3904export AUDIO_OUTPUT_SW_GAIN_BEFORE_DRC := 1 3905endif 3906 3907ifeq ($(AUDIO_LIMITER),1) 3908export AUDIO_LIMITER 3909export AUDIO_OUTPUT_SW_GAIN := 1 3910export AUDIO_OUTPUT_SW_GAIN_BEFORE_DRC := 1 3911endif 3912 3913ifeq ($(AUDIO_REVERB),1) 3914export AUDIO_REVERB 3915endif 3916 3917ifeq ($(AUDIO_HW_LIMITER),1) 3918export AUDIO_HW_LIMITER 3919endif 3920 3921ifeq ($(HW_FIR_EQ_PROCESS_2CH),1) 3922export HW_FIR_EQ_PROCESS_2CH 3923KBUILD_CPPFLAGS += -D__HW_FIR_EQ_PROCESS_2CH__ 3924endif 3925 3926ifeq ($(NO_ISPI),1) 3927KBUILD_CPPFLAGS += -DNO_ISPI 3928endif 3929 3930ifeq ($(USER_SECURE_BOOT),1) 3931export BOOT_LOADER_POST_INIT_HOOK := 1 3932core-y += utils/user_secure_boot/ \ 3933 utils/system_info/ 3934KBUILD_CPPFLAGS += -DUSER_SECURE_BOOT 3935endif 3936 3937ifeq ($(ASSERT_SHOW_FILE_FUNC),1) 3938KBUILD_CPPFLAGS += -DASSERT_SHOW_FILE_FUNC 3939else 3940ifeq ($(ASSERT_SHOW_FILE),1) 3941KBUILD_CPPFLAGS += -DASSERT_SHOW_FILE 3942else 3943ifeq ($(ASSERT_SHOW_FUNC),1) 3944KBUILD_CPPFLAGS += -DASSERT_SHOW_FUNC 3945endif 3946endif 3947endif 3948 3949ifeq ($(LARGE_SENS_RAM),1) 3950KBUILD_CPPFLAGS += -DLARGE_SENS_RAM 3951endif 3952 3953ifeq ($(TWS),1) 3954LARGE_RAM ?= 1 3955endif 3956ifeq ($(LARGE_RAM),1) 3957ifeq ($(DSP_ENABLE), 1) 3958$(error LARGE_RAM conflicts with DSP_ENABLE) 3959endif 3960KBUILD_CPPFLAGS += -DLARGE_RAM 3961endif 3962 3963ifeq ($(LARGE_DSP_RAM),1) 3964KBUILD_CPPFLAGS += -DLARGE_DSP_RAM 3965endif 3966 3967ifeq ($(SMALL_RET_RAM),1) 3968KBUILD_CPPFLAGS += -DSMALL_RET_RAM 3969endif 3970 3971ifeq ($(SIMPLE_TASK_SWITCH),1) 3972KBUILD_CPPFLAGS += -DSIMPLE_TASK_SWITCH 3973endif 3974 3975ifeq ($(ALT_BOOT_FLASH),1) 3976KBUILD_CPPFLAGS += -DALT_BOOT_FLASH 3977endif 3978 3979ifeq ($(USB_AUDIO_APP),1) 3980ifneq ($(BTUSB_AUDIO_MODE),1) 3981export NO_OVERLAY ?= 1 3982endif 3983endif 3984ifeq ($(NO_OVERLAY),1) 3985KBUILD_CPPFLAGS += -DNO_OVERLAY 3986endif 3987 3988ifeq ($(CALIB_SLOW_TIMER),1) 3989KBUILD_CPPFLAGS += -DCALIB_SLOW_TIMER 3990endif 3991 3992ifneq ($(CHIP_SUBSYS),dsp) 3993export INT_LOCK_EXCEPTION ?= 1 3994endif 3995 3996ifeq ($(INT_LOCK_EXCEPTION),1) 3997KBUILD_CPPFLAGS += -DINT_LOCK_EXCEPTION 3998endif 3999 4000ifeq ($(USE_TRACE_ID),1) 4001export USE_TRACE_ID 4002export TRACE_STR_SECTION ?= 1 4003KBUILD_CPPFLAGS += -DUSE_TRACE_ID 4004endif 4005 4006ifeq ($(TRACE_STR_SECTION),1) 4007KBUILD_CPPFLAGS += -DTRACE_STR_SECTION 4008CPPFLAGS_${LDS_FILE} += -DTRACE_STR_SECTION 4009endif 4010 4011ifeq ($(ANC_APP),1) 4012export ANC_FF_ENABLED ?= 1 4013ifeq ($(ANC_FB_CHECK),1) 4014KBUILD_CPPFLAGS += -DANC_FB_CHECK 4015endif 4016ifeq ($(ANC_FF_CHECK),1) 4017KBUILD_CPPFLAGS += -DANC_FF_CHECK 4018endif 4019endif 4020 4021ifeq ($(PSAP_APP),1) 4022KBUILD_CPPFLAGS += -DPSAP_APP 4023# KBUILD_CPPFLAGS += -DPSAP_FORCE_STREAM_48K 4024endif 4025 4026ifeq ($(AUDIO_PSAP_DEHOWLING_HW),1) 4027KBUILD_CPPFLAGS += -DAUDIO_PSAP_DEHOWLING_HW 4028endif 4029 4030ifeq ($(AUDIO_ANC_SPKCALIB_HW),1) 4031KBUILD_CPPFLAGS += -DAUDIO_ANC_SPKCALIB_HW 4032endif 4033 4034ifeq ($(CHIP),best1000) 4035ifeq ($(AUD_PLL_DOUBLE),1) 4036KBUILD_CPPFLAGS += -DAUD_PLL_DOUBLE 4037endif 4038 4039ifeq ($(DUAL_AUX_MIC),1) 4040ifeq ($(AUDIO_INPUT_MONO),1) 4041$(error Invalid talk mic configuration) 4042endif 4043KBUILD_CPPFLAGS += -D_DUAL_AUX_MIC_ 4044endif 4045endif # best1000 4046 4047ifeq ($(CAPTURE_ANC_DATA),1) 4048KBUILD_CPPFLAGS += -DCAPTURE_ANC_DATA 4049endif 4050 4051ifeq ($(AUDIO_ANC_TT_HW),1) 4052KBUILD_CPPFLAGS += -DAUDIO_ANC_TT_HW 4053endif 4054 4055ifeq ($(AUDIO_ANC_FB_MC_HW),1) 4056KBUILD_CPPFLAGS += -DAUDIO_ANC_FB_MC_HW 4057endif 4058 4059ifeq ($(AUDIO_ANC_FB_MC),1) 4060ifeq ($(AUDIO_RESAMPLE),1) 4061$(error AUDIO_ANC_FB_MC conflicts with AUDIO_RESAMPLE) 4062endif 4063KBUILD_CPPFLAGS += -DAUDIO_ANC_FB_MC 4064ifeq ($(ANC_FB_MC_96KHZ),1) 4065KBUILD_CPPFLAGS += -DANC_FB_MC_96KHZ 4066endif 4067endif 4068 4069ifeq ($(ANC_NOISE_TRACKER),1) 4070export ANC_NOISE_TRACKER 4071ifeq ($(IBRT),1) 4072KBUILD_CPPFLAGS += -DANC_NOISE_TRACKER_CHANNEL_NUM=1 4073else 4074KBUILD_CPPFLAGS += -DANC_NOISE_TRACKER_CHANNEL_NUM=2 4075endif 4076endif 4077 4078export PC_CMD_UART ?= 0 4079ifneq ($(PC_CMD_UART),0) 4080KBUILD_CPPFLAGS += -D__PC_CMD_UART__=$(PC_CMD_UART) 4081KBUILD_CPPFLAGS += -DAUDIO_EQ_TUNING 4082endif 4083 4084ifeq ($(TOTA_EQ_TUNING),1) 4085export TOTA_EQ_TUNING 4086endif 4087 4088ifeq ($(VOICE_DETECTOR_EN),1) 4089KBUILD_CPPFLAGS += -DVOICE_DETECTOR_EN 4090endif 4091 4092ifeq ($(VOICE_DETECTOR_SENS_EN),1) 4093KBUILD_CPPFLAGS += -DVOICE_DETECTOR_SENS_EN 4094endif 4095 4096ifneq ($(CODEC_VAD_CFG_BUF_SIZE),) 4097KBUILD_CPPFLAGS += -DCODEC_VAD_CFG_BUF_SIZE=$(CODEC_VAD_CFG_BUF_SIZE) 4098endif 4099 4100ifeq ($(VAD_USE_SAR_ADC),1) 4101KBUILD_CPPFLAGS += -DVAD_USE_SAR_ADC 4102endif 4103 4104ifeq ($(VAD_USE_8K_SAMPLE_RATE),1) 4105KBUILD_CPPFLAGS += -DVAD_USE_8K_SAMPLE_RATE 4106endif 4107 4108ifeq ($(USB_ANC_MC_EQ_TUNING),1) 4109KBUILD_CPPFLAGS += -DUSB_ANC_MC_EQ_TUNING -DANC_PROD_TEST 4110endif 4111 4112ifeq ($(MAX_DAC_OUTPUT),-60db) 4113MAX_DAC_OUTPUT_FLAGS := -DMAX_DAC_OUTPUT_M60DB 4114else 4115ifeq ($(MAX_DAC_OUTPUT),3.75mw) 4116MAX_DAC_OUTPUT_FLAGS := -DMAX_DAC_OUTPUT_3P75MW 4117else 4118ifeq ($(MAX_DAC_OUTPUT),5mw) 4119MAX_DAC_OUTPUT_FLAGS := -DMAX_DAC_OUTPUT_5MW 4120else 4121ifeq ($(MAX_DAC_OUTPUT),10mw) 4122MAX_DAC_OUTPUT_FLAGS := -DMAX_DAC_OUTPUT_10MW 4123else 4124ifneq ($(MAX_DAC_OUTPUT),30mw) 4125ifneq ($(MAX_DAC_OUTPUT),) 4126$(error Invalid MAX_DAC_OUTPUT value: $(MAX_DAC_OUTPUT) (MUST be one of: -60db 3.75mw 5mw 10mw 30mw)) 4127endif 4128endif 4129endif 4130endif 4131endif 4132endif 4133export MAX_DAC_OUTPUT_FLAGS 4134 4135export SUPPORT_REMOTE_COD ?= 0 4136ifeq ($(SUPPORT_REMOTE_COD),1) 4137KBUILD_CPPFLAGS += -D_SUPPORT_REMOTE_COD_ 4138endif 4139 4140export HAS_BT_SYNC ?= 0 4141ifeq ($(HAS_BT_SYNC),1) 4142KBUILD_CPPFLAGS += -D__BT_SYNC__ 4143endif 4144 4145ifeq ($(SINGLE_WIRE_UART_PMU_1802),1) 4146KBUILD_CPPFLAGS += -DSINGLE_WIRE_UART_PMU_1802 4147endif 4148 4149ifeq ($(SINGLE_WIRE_UART_PMU_1803),1) 4150KBUILD_CPPFLAGS += -DSINGLE_WIRE_UART_PMU_1803 4151endif 4152 4153ifeq ($(FUZZ_TEST_SUPPORT),1) 4154KBUILD_CPPFLAGS += -D__FUZZ_TEST_SUPPORT__ 4155endif 4156 4157ifeq ($(INTERSYS_RX_DMA_SPEEDUP),1) 4158CPPFLAGS_${LDS_FILE} += -DINTERSYS_RX_DMA_SPEEDUP 4159endif 4160 4161# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 4162# Put customized features above 4163# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4164 4165# vvvvvvvvvvvvvvvvvvvvvvvvvvvvv 4166# Obsoleted features 4167# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4168OBSOLETED_FEATURE_LIST := EQ_PROCESS RB_CODEC AUDIO_EQ_PROCESS MEDIA_PLAYER_RBCODEC 4169USED_OBSOLETED_FEATURE := $(strip $(foreach f,$(OBSOLETED_FEATURE_LIST),$(if $(filter 1,$($f)),$f))) 4170ifneq ($(USED_OBSOLETED_FEATURE),) 4171$(error Obsoleted features: $(USED_OBSOLETED_FEATURE)) 4172endif 4173 4174# ------------------------------------------- 4175# Size and LDS macros 4176# ------------------------------------------- 4177 4178ifneq ($(ROM_SIZE),) 4179KBUILD_CPPFLAGS += -DROM_SIZE=$(ROM_SIZE) 4180endif 4181 4182ifneq ($(RAM_SIZE),) 4183KBUILD_CPPFLAGS += -DRAM_SIZE=$(RAM_SIZE) 4184endif 4185 4186ifneq ($(BT_RAMRUN_SIZE),) 4187KBUILD_CPPFLAGS += -DBT_RAMRUN_SIZE=$(BT_RAMRUN_SIZE) 4188endif 4189 4190ifneq ($(BT_RAMRUN_BASE),) 4191KBUILD_CPPFLAGS += -DBT_RAMRUN_BASE=$(BT_RAMRUN_BASE) 4192endif 4193 4194ifneq ($(RAMCP_BASE),) 4195KBUILD_CPPFLAGS += -DRAMCP_BASE=$(RAMCP_BASE) 4196endif 4197 4198ifneq ($(RAMCP_SIZE),) 4199KBUILD_CPPFLAGS += -DRAMCP_SIZE=$(RAMCP_SIZE) 4200endif 4201 4202ifneq ($(RAMCPX_BASE),) 4203KBUILD_CPPFLAGS += -DRAMCPX_BASE=$(RAMCPX_BASE) 4204endif 4205 4206ifneq ($(RAMCPX_SIZE),) 4207KBUILD_CPPFLAGS += -DRAMCPX_SIZE=$(RAMCPX_SIZE) 4208endif 4209 4210ifneq ($(DSP_RAM_SIZE),) 4211KBUILD_CPPFLAGS += -DDSP_RAM_SIZE=$(DSP_RAM_SIZE) 4212endif 4213 4214export FLASH_SIZE ?= 0x100000 4215ifeq ($(CHIP_HAS_PSRAM),1) 4216export PSRAM_SIZE ?= 0x400000 4217export PSRAM_ENABLE ?= 0 4218export PSRAM_SPEED ?= 200 4219#166:166M, 200:200M, 240:240M 4220endif 4221ifneq ($(PSRAM_SIZE),) 4222KBUILD_CPPFLAGS += -DPSRAM_SIZE=$(PSRAM_SIZE) 4223endif 4224 4225ifeq ($(CHIP_HAS_PSRAMUHS),1) 4226export PSRAMUHS_ENABLE ?= 0 4227export PSRAMUHS_SPEED ?= 1000 4228#400:400M, 600:600M, 800:800M, 900:900M, 1000:1000M, 1066:1066M 4229ifeq ($(PSRAMUHS_DUAL_8BIT), 1) 4230export PSRAMUHS_SIZE ?= 0x1000000 4231ifeq ($(PSRAMUHS_DUAL_SWITCH), 1) 4232$(error PSRAMUHS_DUAL_8BIT conflicts with PSRAMUHS_DUAL_SWITCH) 4233endif 4234endif 4235export PSRAMUHS_SIZE ?= 0x800000 4236endif 4237 4238# NOTE: This size cannot be changed so that audio section address is fixed. 4239# This rule can be removed once audio tool can set audio section address dynamically. 4240FACTORY_SECTION_SIZE ?= 0x1000 4241 4242# NOTE: This size cannot be changed so that audio section address is fixed. 4243# This rule can be removed once audio tool can set audio section address dynamically. 4244RESERVED_SECTION_SIZE ?= 0x1000 4245ifeq ($(CHIP), best1501simu) 4246ifeq ($(ASIC_SIMU),1) 4247RESERVED_SECTION_SIZE := 0x32000 4248endif 4249endif 4250 4251ifeq ($(AUDIO_SECTION_ENABLE),1) 4252KBUILD_CPPFLAGS += -DAUDIO_SECTION_ENABLE 4253# depend on length of (ANC + AUDIO + SPEECH) in aud_section.c 4254AUD_SECTION_SIZE ?= 0x8000 4255ifeq ($(ANC_APP),1) 4256$(error Can not enable AUDIO_SECTION_ENABLE and ANC_APP together) 4257endif 4258endif 4259 4260ifeq ($(ANC_APP),1) 4261ifeq ($(CHIP),best1000) 4262AUD_SECTION_SIZE ?= 0x8000 4263else 4264AUD_SECTION_SIZE ?= 0x10000 4265endif 4266else 4267AUD_SECTION_SIZE ?= 0 4268endif 4269 4270USERDATA_SECTION_SIZE ?= 0x1000 4271 4272export PERSIST_DATA_SECTION_SIZE ?= 0 4273KBUILD_CPPFLAGS += -DPERSIST_DATA_SECTION_SIZE=$(PERSIST_DATA_SECTION_SIZE) 4274 4275CUSTOM_PARAMETER_SECTION_SIZE ?= 0x1000 4276 4277ifeq ($(ENABLE_CALCU_CPU_FREQ_LOG),1) 4278export ENABLE_CALCU_CPU_FREQ_LOG 4279endif 4280 4281ifeq ($(TOTA_CRASH_DUMP_TOOL_ENABLE),1) 4282export TOTA := 1 4283CRASH_DUMP_SECTION_SIZE ?= 0x1000 4284LOG_DUMP_SECTION_SIZE ?= 0x28000 4285#export DUMP_CRASH_LOG := 1 4286KBUILD_CPPFLAGS += -DTOTA_CRASH_DUMP_TOOL_ENABLE 4287endif 4288 4289ifeq ($(DUMP_CRASH_LOG),1) 4290CRASH_DUMP_SECTION_SIZE ?= 0x4000 4291KBUILD_CPPFLAGS += -DDUMP_CRASH_LOG 4292else 4293CRASH_DUMP_SECTION_SIZE ?= 0 4294endif 4295 4296ifeq ($(A2DP_LHDC_ON),1) 4297LHDC_LICENSE_SECTION_SIZE ?= 0x1000 4298else 4299LHDC_LICENSE_SECTION_SIZE ?= 0 4300endif 4301 4302export DUMP_LOG_ENABLE ?= 0 4303ifeq ($(DUMP_LOG_ENABLE),1) 4304ifeq ($(FLASH_SIZE),0x40000) # 2M bits 4305LOG_DUMP_SECTION_SIZE ?= 0x4000 4306endif 4307ifeq ($(FLASH_SIZE),0x80000) # 4M bits 4308LOG_DUMP_SECTION_SIZE ?= 0x8000 4309endif 4310ifeq ($(FLASH_SIZE),0x100000) # 8M bits 4311LOG_DUMP_SECTION_SIZE ?= 0x10000 4312endif 4313ifeq ($(FLASH_SIZE),0x200000) # 16M bits 4314LOG_DUMP_SECTION_SIZE ?= 0x80000 4315endif 4316ifeq ($(FLASH_SIZE),0x400000) # 32M bits 4317LOG_DUMP_SECTION_SIZE ?= 0x200000 4318endif 4319ifeq ($(FLASH_SIZE),0x800000) # 64M bits 4320LOG_DUMP_SECTION_SIZE ?= 0x400000 4321endif 4322KBUILD_CPPFLAGS += -DDUMP_LOG_ENABLE 4323else 4324LOG_DUMP_SECTION_SIZE ?= 0 4325endif 4326 4327ifeq ($(OTA_ENABLE),1) 4328OTA_UPGRADE_LOG_SIZE ?= 0x1000 4329else 4330OTA_UPGRADE_LOG_SIZE ?= 0 4331endif 4332 4333ifeq ($(CORE_DUMP_TO_FLASH),1) 4334CORE_DUMP_SECTION_SIZE ?= 0x100000 4335KBUILD_CPPFLAGS += -DCORE_DUMP_TO_FLASH 4336else 4337CORE_DUMP_SECTION_SIZE ?= 0 4338endif 4339 4340ifeq ($(GSOUND_HOTWORD_ENABLE),1) 4341# used to store hotword model, currently 240KB 4342# this value is used in link file 4343HOTWORD_SECTION_SIZE ?= 0x3C000 4344else 4345HOTWORD_SECTION_SIZE ?= 0x0 4346endif 4347 4348ifeq ($(PROMPT_IN_FLASH),1) 4349# 300K for prompt package 4350PROMPT_SECTION_SIZE ?= 0x4B000 4351else 4352PROMPT_SECTION_SIZE ?= 0x0 4353endif 4354 4355ifeq ($(COMBO_CUSBIN_IN_FLASH),1) 4356export COMBO_CUSBIN_IN_FLASH 4357COMBO_SECTION_SIZE ?= 0x1000 4358else 4359COMBO_SECTION_SIZE ?= 0 4360endif 4361 4362export LDS_SECTION_FLAGS := \ 4363 -DCOMBO_SECTION_SIZE=$(COMBO_SECTION_SIZE) \ 4364 -DPROMPT_SECTION_SIZE=$(PROMPT_SECTION_SIZE) \ 4365 -DHOTWORD_SECTION_SIZE=$(HOTWORD_SECTION_SIZE) \ 4366 -DCORE_DUMP_SECTION_SIZE=$(CORE_DUMP_SECTION_SIZE) \ 4367 -DOTA_UPGRADE_LOG_SIZE=$(OTA_UPGRADE_LOG_SIZE) \ 4368 -DLOG_DUMP_SECTION_SIZE=$(LOG_DUMP_SECTION_SIZE) \ 4369 -DCRASH_DUMP_SECTION_SIZE=$(CRASH_DUMP_SECTION_SIZE) \ 4370 -DCUSTOM_PARAMETER_SECTION_SIZE=$(CUSTOM_PARAMETER_SECTION_SIZE) \ 4371 -DLHDC_LICENSE_SECTION_SIZE=$(LHDC_LICENSE_SECTION_SIZE) \ 4372 -DUSERDATA_SECTION_SIZE=$(USERDATA_SECTION_SIZE) \ 4373 -DPERSIST_DATA_SECTION_SIZE=$(PERSIST_DATA_SECTION_SIZE) \ 4374 -DAUD_SECTION_SIZE=$(AUD_SECTION_SIZE) \ 4375 -DRESERVED_SECTION_SIZE=$(RESERVED_SECTION_SIZE) \ 4376 -DFACTORY_SECTION_SIZE=$(FACTORY_SECTION_SIZE) \ 4377 -DFILE_SYSTEM_SECTION_SIZE=$(FILE_SYSTEM_SECTION_SIZE) 4378 4379CPPFLAGS_${LDS_FILE} += \ 4380 -DLINKER_SCRIPT \ 4381 -DFLASH_SIZE=$(FLASH_SIZE) \ 4382 -Iplatform/hal 4383 4384CPPFLAGS_${LDS_FILE} += $(LDS_SECTION_FLAGS) 4385 4386ifneq ($(PSRAM_SIZE),) 4387CPPFLAGS_${LDS_FILE} +=-DPSRAM_SIZE=$(PSRAM_SIZE) 4388endif 4389 4390ifneq ($(PSRAMCP_SIZE),) 4391CPPFLAGS_${LDS_FILE} +=-DPSRAMCP_SIZE=$(PSRAMCP_SIZE) 4392endif 4393 4394ifneq ($(PSRAMUHS_SIZE),) 4395CPPFLAGS_${LDS_FILE} +=-DPSRAMUHS_SIZE=$(PSRAMUHS_SIZE) 4396endif 4397 4398ifneq ($(RAMV_SIZE),) 4399CPPFLAGS_${LDS_FILE} +=-DRAMV_SIZE=$(RAMV_SIZE) 4400endif 4401 4402ifneq ($(OTA_BOOT_SIZE),) 4403export OTA_BOOT_SIZE 4404export OTA_BOOT_OFFSET ?= 0 4405CPPFLAGS_${LDS_FILE} += -DOTA_BOOT_OFFSET=$(OTA_BOOT_OFFSET) -DOTA_BOOT_SIZE=$(OTA_BOOT_SIZE) 4406endif 4407 4408ifneq ($(OTA_CODE_OFFSET),) 4409export OTA_CODE_OFFSET 4410CPPFLAGS_${LDS_FILE} += -DOTA_CODE_OFFSET=$(OTA_CODE_OFFSET) 4411endif 4412 4413ifneq ($(OTA_REMAP_OFFSET),) 4414export OTA_REMAP_OFFSET 4415CPPFLAGS_${LDS_FILE} += -DOTA_REMAP_OFFSET=$(OTA_REMAP_OFFSET) 4416ifeq ($(OTA_CODE_OFFSET),) 4417$(error OTA_CODE_OFFSET should be set along with OTA_REMAP_OFFSET) 4418endif 4419endif 4420 4421ifeq ($(FLASH_REMAP),1) 4422export FLASH_REMAP 4423ifneq ($(PROGRAMMER),1) 4424ifeq ($(OTA_REMAP_OFFSET),) 4425$(error OTA_REMAP_OFFSET should be set along with FLASH_REMAP) 4426endif 4427endif 4428endif 4429 4430ifneq ($(FLASH_REGION_SIZE),) 4431CPPFLAGS_${LDS_FILE} += -DFLASH_REGION_SIZE=$(FLASH_REGION_SIZE) 4432endif 4433 4434ifneq ($(SLAVE_BIN_FLASH_OFFSET),) 4435export SLAVE_BIN_FLASH_OFFSET 4436CPPFLAGS_${LDS_FILE} += -DSLAVE_BIN_FLASH_OFFSET=$(SLAVE_BIN_FLASH_OFFSET) 4437endif 4438 4439ifeq ($(BOOT_CODE_IN_RAM),1) 4440CPPFLAGS_${LDS_FILE} += -DBOOT_CODE_IN_RAM 4441endif 4442 4443ifeq ($(GSOUND_HOTWORD_EXTERNAL),1) 4444CPPFLAGS_${LDS_FILE} += -DGSOUND_HOTWORD_EXTERNAL 4445endif 4446 4447ifeq ($(MEM_POOL_IN_CP_RAM),1) 4448CPPFLAGS_${LDS_FILE} += -DMEM_POOL_IN_CP_RAM 4449endif 4450 4451ifeq ($(PROGRAMMER_LOAD_SIMU),1) 4452CPPFLAGS_${LDS_FILE} += -DPROGRAMMER_LOAD_SIMU 4453endif 4454 4455ifeq ($(RB_CODEC),1) 4456CPPFLAGS_${LDS_FILE} += -DRB_CODEC 4457endif 4458 4459ifneq ($(DATA_BUF_START),) 4460CPPFLAGS_${LDS_FILE} += -DDATA_BUF_START=$(DATA_BUF_START) 4461endif 4462 4463ifeq ($(BTHCI_H4),1) 4464KBUILD_CFLAGS += -DBTHCI_H4 4465endif 4466 4467ifeq ($(BT_CLOSE),1) 4468KBUILD_CFLAGS += -D__BT_CLOSE__ 4469endif 4470 4471ifeq ($(ALSA_WIFI_TO_BT),1) 4472KBUILD_CFLAGS += -DALSA_WIFI_TO_BT 4473endif 4474 4475ifeq ($(USE_BT_ADAPTER),1) 4476KBUILD_CFLAGS += -DUSE_BT_ADAPTER 4477KBUILD_CFLAGS += -DBLE_ADAPTER_PROFILES_NUM=10 4478KBUILD_CFLAGS += -DBLE_ADAPTER_CLIENT_NUM=1 4479KBUILD_CFLAGS += -DBLE_ADAPTER_ATTB_NUM=16 4480else 4481KBUILD_CFLAGS += -DBLE_ADAPTER_PROFILES_NUM=0 4482KBUILD_CFLAGS += -DBLE_ADAPTER_CLIENT_NUM=0 4483KBUILD_CFLAGS += -DBLE_ADAPTER_ATTB_NUM=0 4484endif 4485 4486ifeq ($(VAD_IN_BACKGROUND),1) 4487KBUILD_CFLAGS += -DVAD_IN_BACKGROUND 4488endif 4489 4490# ------------------------------------------- 4491# General 4492# ------------------------------------------- 4493 4494ifneq ($(NO_CONFIG),1) 4495core-y += config/ 4496endif 4497 4498ifneq ($(NO_BOOT_STRUCT),1) 4499core-y += $(call add_if_exists,utils/boot_struct/) 4500endif 4501 4502export DEFAULT_CFG_SRC ?= _default_cfg_src_ 4503 4504ifneq ($(wildcard $(srctree)/config/$(T)/tgt_hardware.h $(srctree)/config/$(T)/res/),) 4505KBUILD_CPPFLAGS += -Iconfig/$(T) 4506endif 4507KBUILD_CPPFLAGS += -Iconfig/$(DEFAULT_CFG_SRC) 4508 4509CPU_EXT := 4510ifeq ($(CPU_NO_DSP),1) 4511CPU_EXT := $(CPU_EXT)+nodsp 4512endif 4513ifneq ($(CHIP_HAS_FPU),1) 4514CPU_EXT := $(CPU_EXT)+nofp 4515endif 4516 4517ifneq ($(CPU),a7) 4518CPU_CFLAGS := -mthumb 4519endif 4520 4521ifeq ($(CPU),a7) 4522CPU_CFLAGS := -marm 4523CPU_CFLAGS += -mcpu=cortex-a7 4524else ifeq ($(CPU),m55) 4525CPU_CFLAGS += -mcpu=cortex-m55 4526else ifeq ($(CPU),m33) 4527CPU_CFLAGS += -mcpu=cortex-m33$(CPU_EXT) 4528ifeq ($(ARM_CMSE),1) 4529export ARM_CMSE 4530CPU_CFLAGS += -mcmse 4531KBUILD_CPPFLAGS += -DARM_CMSE 4532endif 4533ifeq ($(ARM_CMNS),1) 4534export ARM_CMNS 4535export ARM_CMSE_TARGET ?= cm33_se 4536KBUILD_CPPFLAGS += -DARM_CMNS 4537ifeq ($(LIBC_ROM),1) 4538$(error LIBC_ROM should be 0 when ARM_CMNS=1) 4539endif 4540endif 4541else 4542CPU_CFLAGS += -mcpu=cortex-m4$(CPU_EXT) 4543endif 4544 4545ifeq ($(CHIP_HAS_FPU),1) 4546ifeq ($(CPU),a7) 4547CPU_CFLAGS += -mfpu=neon-vfpv4 4548else ifeq ($(CPU),m33) 4549CPU_CFLAGS += -mfpu=fpv5-sp-d16 4550else ifeq ($(CPU),m55) 4551# For GCC version >= 9 4552CPU_CFLAGS += -mfpu=auto 4553else 4554CPU_CFLAGS += -mfpu=fpv4-sp-d16 4555endif 4556ifeq ($(SOFT_FLOAT_ABI),1) 4557CPU_CFLAGS += -mfloat-abi=softfp 4558else 4559CPU_CFLAGS += -mfloat-abi=hard 4560endif 4561else # !CHIP_HAS_FPU 4562CPU_CFLAGS += -mfloat-abi=soft 4563endif # !CHIP_HAS_FPU 4564 4565ifneq ($(CPU),a7) 4566ifeq ($(KERNEL),RTT) 4567CPU_CFLAGS += -Wa,-mimplicit-it=thumb 4568endif 4569 4570ifeq ($(KERNEL),RHINO) 4571CPU_CFLAGS += -Wa,-mimplicit-it=thumb 4572endif 4573endif 4574 4575export UNALIGNED_ACCESS ?= 1 4576ifeq ($(UNALIGNED_ACCESS),1) 4577KBUILD_CPPFLAGS += -DUNALIGNED_ACCESS 4578else 4579CPU_CFLAGS += -mno-unaligned-access 4580endif 4581 4582ifneq ($(ALLOW_WARNING),1) 4583KBUILD_CPPFLAGS += -Werror 4584endif 4585 4586ifeq ($(NO_STARTFILES), 1) 4587LIB_LDFLAGS += -nostartfiles 4588endif 4589 4590ifeq ($(STACK_USAGE),1) 4591KBUILD_CPPFLAGS += -fstack-usage 4592endif 4593 4594ifeq ($(PIE),1) 4595ifneq ($(TOOLCHAIN),armclang) 4596ifneq ($(NOSTD),1) 4597$(error PIE can only work when NOSTD=1) 4598endif 4599KBUILD_CPPFLAGS += -msingle-pic-base 4600endif 4601KBUILD_CPPFLAGS += -fPIE 4602# -pie option will generate .dynamic section 4603#LDFLAGS += -pie 4604#LDFLAGS += -z relro -z now 4605endif 4606 4607KBUILD_CPPFLAGS += $(CPU_CFLAGS) $(SPECS_CFLAGS) 4608LINK_CFLAGS += $(CPU_CFLAGS) $(SPECS_CFLAGS) 4609CFLAGS_IMAGE += $(CPU_CFLAGS) $(SPECS_CFLAGS) 4610 4611# Save 100+ bytes by filling less alignment holes 4612# TODO: Array alignment? 4613#LDFLAGS += --sort-common --sort-section=alignment 4614 4615ifeq ($(CTYPE_PTR_DEF),1) 4616ifeq ($(TOOLCHAIN),armclang) 4617$(error CTYPE_PTR_DEF is not supported in $(TOOLCHAIN)) 4618else 4619LDFLAGS_IMAGE += --defsym __ctype_ptr__=0 4620endif 4621endif 4622 4623ifeq ($(NET_FTP_CLIENT_SUPPORT),1) 4624export NET_FTP_APP_SUPPORT := 1 4625endif 4626 4627export AT_CMD ?= 1 4628ifeq ($(AT_CMD),1) 4629KBUILD_CPPFLAGS += -D__AT_CMD_SUPPORT__ 4630endif 4631 4632ifeq ($(SDK),1) 4633KBUILD_CPPFLAGS += -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-function \ 4634 -Wno-unused-value -Wno-unused-parameter -Wno-unused-label 4635ifneq ($(KERNEL),RHINO) 4636KBUILD_CPPFLAGS += -Wimplicit-fallthrough=1 4637endif 4638endif 4639