From f5c8a02ed8f01c2a7d3241d3ab96c12892b0ec13 Mon Sep 17 00:00:00 2001 From: Thomas Makin Date: Sun, 22 Oct 2023 14:55:16 -0400 Subject: [PATCH] nx: redo bcm_firmware targets For optimal nx wifi/bt performance we want: - nx dumped bt patchfile for tuning - mdarcy wifi firmware for p2p support etc. - mdarcy clm_blob for country mapping - nx dumped wifi nvram with patched ccode for tuning (copied to all skus) Change-Id: I854756c89cf8b367d3f6604183f87e346689737a --- vendor/bcm_firmware/Android.mk | 89 +++++++++++++++++++++++++++++++--- vendor/bcm_firmware/bcm.mk | 5 +- 2 files changed, 84 insertions(+), 10 deletions(-) diff --git a/vendor/bcm_firmware/Android.mk b/vendor/bcm_firmware/Android.mk index 178f9bd..4b1f5ad 100644 --- a/vendor/bcm_firmware/Android.mk +++ b/vendor/bcm_firmware/Android.mk @@ -15,11 +15,86 @@ LOCAL_PATH := $(call my-dir) NX_BCM_PATH := ../../../../../vendor/nintendo/nx/bcm_firmware +# Bluetooth Patchfile include $(CLEAR_VARS) -LOCAL_MODULE := brcmfmac4356-pcie.clm_blob -LOCAL_SRC_FILES := $(NX_BCM_PATH)/bcm4356/brcmfmac4356-pcie.clm_blob -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_OWNER := nvidia -include $(BUILD_NVIDIA_PREBUILT) +LOCAL_MODULE := BCM4356A3 +LOCAL_SRC_FILES := $(NX_BCM_PATH)/CYW4356A3_001.004.009.0092.0095.bin +LOCAL_MODULE_SUFFIX := .hcd +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := nintendo +include $(BUILD_PREBUILT) + +# Unified target for Switch brcmfmac4356A3 wifi +include $(CLEAR_VARS) +LOCAL_MODULE := brcmfmac4356A3-pcie +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := nintendo + +# mdarcy fw and clm, plus hos nvram copies with ccode mod +LOCAL_REQUIRED_MODULES := \ + brcmfmac4356-pcie \ + brcmfmac4356-pcie.clm_blob \ + brcmfmac4356-pcie.nvidia,odin.txt \ + brcmfmac4356-pcie.nvidia,modin.txt \ + brcmfmac4356-pcie.nvidia,vali.txt \ + brcmfmac4356-pcie.nvidia,frig.txt + +_brcmfmac4356A3_intermediates := $(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE)) +_brcmfmac4356A3_archive := $(_brcmfmac4356A3_intermediates)/$(LOCAL_MODULE)$(LOCAL_MODULE_SUFFIX) + +$(_brcmfmac4356A3_archive): + @mkdir -p $(dir $@) + @touch $(_brcmfmac4356A3_archive) + +include $(BUILD_SYSTEM)/base_rules.mk + +# mdarcy clm target +include $(CLEAR_VARS) +LOCAL_MODULE := brcmfmac4356-pcie.clm_blob +LOCAL_SRC_FILES := $(NX_BCM_PATH)/brcmfmac4356-pcie.clm_blob +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := nintendo +include $(BUILD_PREBUILT) + +# HOS nvram copies (if we don't dup the target we can't guarantee all files will be there on subsequent builds) +include $(CLEAR_VARS) +LOCAL_MODULE := brcmfmac4356-pcie.nvidia,odin.txt +LOCAL_SRC_FILES := $(NX_BCM_PATH)/brcmfmac4356A3-pcie.txt +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := nintendo +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := brcmfmac4356-pcie.nvidia,modin.txt +LOCAL_SRC_FILES := $(NX_BCM_PATH)/brcmfmac4356A3-pcie.txt +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := nintendo +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := brcmfmac4356-pcie.nvidia,vali.txt +LOCAL_SRC_FILES := $(NX_BCM_PATH)/brcmfmac4356A3-pcie.txt +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := nintendo +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := brcmfmac4356-pcie.nvidia,frig.txt +LOCAL_SRC_FILES := $(NX_BCM_PATH)/brcmfmac4356A3-pcie.txt +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_OWNER := nintendo +include $(BUILD_PREBUILT) diff --git a/vendor/bcm_firmware/bcm.mk b/vendor/bcm_firmware/bcm.mk index 2ab0746..7868174 100644 --- a/vendor/bcm_firmware/bcm.mk +++ b/vendor/bcm_firmware/bcm.mk @@ -16,6 +16,5 @@ LOCAL_PATH := device/nintendo/nx/vendor/bcm_firmware COMMON_BCM_PATH := device/nvidia/tegra-common/vendor/bcm_firmware PRODUCT_PACKAGES += \ - bcm4356 \ - brcmfmac4356-pcie \ - brcmfmac4356-pcie.clm_blob + BCM4356A3 \ + brcmfmac4356A3-pcie