diff --git a/package/starfive/Config.in b/package/starfive/Config.in index 41332737..f250104d 100644 --- a/package/starfive/Config.in +++ b/package/starfive/Config.in @@ -15,3 +15,4 @@ source "package/starfive/img-gpu-powervr/Config.in" source "package/starfive/drm_test/Config.in" source "package/starfive/pm/Config.in" source "package/starfive/v4l2_dec_test/Config.in" +source "package/starfive/starfive-firmware/Config.in" diff --git a/package/starfive/starfive-firmware/Config.in b/package/starfive/starfive-firmware/Config.in new file mode 100644 index 00000000..6c56f54a --- /dev/null +++ b/package/starfive/starfive-firmware/Config.in @@ -0,0 +1,31 @@ +# starfive firmware packages + +config BR2_PACKAGE_STARFIVE_FIRMWARE + bool "starfive-firmware" + help + This package provides additional various binary firmware files + based on BR2_PACKAGE_LINUX_FIRMWARE (closed binary blobs) for + such devices like bluetooth, wifi cards etc. + +if BR2_PACKAGE_STARFIVE_FIRMWARE + +menu "Starfive Bluetooth firmware" + +config BR2_PACKAGE_STARFIVE_FIRMWARE_AP6256_BLUETOOTH + bool "AP6256 Bluetooth" + help + Firmware files for AP6256 Wireless bluetooth support. + +endmenu # Bluetooth + + +menu "Starfive WiFi firmware" + +config BR2_PACKAGE_STARFIVE_FIRMWARE_AP6256_SDIO_WIFI + bool "AP6256 SDIO Wifi" + help + Firmware files for the AP6256 Wifi module on SDIO. + +endmenu # WiFi + +endif # BR2_PACKAGE_STARFIVE_FIRMWARE diff --git a/package/starfive/starfive-firmware/ap6256-bluetooth/BCM4345C5.hcd b/package/starfive/starfive-firmware/ap6256-bluetooth/BCM4345C5.hcd new file mode 100644 index 00000000..e878cb78 Binary files /dev/null and b/package/starfive/starfive-firmware/ap6256-bluetooth/BCM4345C5.hcd differ diff --git a/package/starfive/starfive-firmware/ap6256-sdio-wifi/fw_bcm43456c5_ag.bin b/package/starfive/starfive-firmware/ap6256-sdio-wifi/fw_bcm43456c5_ag.bin new file mode 100644 index 00000000..359f4883 Binary files /dev/null and b/package/starfive/starfive-firmware/ap6256-sdio-wifi/fw_bcm43456c5_ag.bin differ diff --git a/package/starfive/starfive-firmware/ap6256-sdio-wifi/nvram_ap6256.txt b/package/starfive/starfive-firmware/ap6256-sdio-wifi/nvram_ap6256.txt new file mode 100644 index 00000000..a61242b1 --- /dev/null +++ b/package/starfive/starfive-firmware/ap6256-sdio-wifi/nvram_ap6256.txt @@ -0,0 +1,142 @@ +#AP6256_NVRAM_V1.4_06112021 +# Cloned from bcm94345wlpagb_p2xx.txt +NVRAMRev=$Rev: 498373 $ +sromrev=11 +vendid=0x14e4 +devid=0x43ab +manfid=0x2d0 +prodid=0x06e4 +macaddr=00:90:4c:c5:12:38 +nocrc=1 +boardtype=0x6e4 +boardrev=0x1304 + +#XTAL 37.4MHz +xtalfreq=37400 +btc_mode=1 + +#----------------------------------------- +#boardflags: 5GHz eTR switch by default +# 2.4GHz eTR switch by default +# bit1 for btcoex +boardflags=0x00480201 +boardflags2=0x40800000 +boardflags3=0x48200100 +phycal_tempdelta=15 +rxchain=1 +txchain=1 +aa2g=1 +aa5g=1 +tssipos5g=1 +tssipos2g=1 +femctrl=0 +AvVmid_c0=1,165,2,100,2,100,2,100,2,100 + +pa2ga0=-154,5722,-656 + +#1pa2ga0=-195,5558,-672 +pa2ga1=-118,4850,-635 +pa5ga0=-193,6098,-740,-192,6095,-738,-199,5996,-730,-182,6148,-741 + + +#3pa5ga0=-214,6002,-737,-209,6102,-746,-209,6024,-738,-200,6149,-747 +#2pa5ga0=-203,5495,-683,-205,5489,-682,-207,5494,-678,-208,5549,-683 +#1pa5ga0=-203,5495,-683,-205,5489,-682,-207,5494,-678,-185,6130,-740 +pa5ga1=-142,4930,-655,-150,4859,-646,-156,4887,-644,-158,4864,-641 + + + +itrsw=1 +pdoffset2g40ma0=10 +pdoffset40ma0=0xaaaa +pdoffset80ma0=0xaaaa +extpagain5g=2 +extpagain2g=2 +tworangetssi2g=0 +tworangetssi5g=0 +# LTECX flags +# WCI2 +ltecxmux=0 +ltecxpadnum=0x0504 +ltecxfnsel=0x22 +ltecxgcigpio=0x32 + +maxp2ga0=78 +cckbw202gpo=0x5555 +cckbw20ul2gpo=0x5555 + +ofdmlrbw202gpo=0x2244 +dot11agofdmhrbw202gpo=0x7744 +ccode=DE +regrev=0 + + +mcsbw202gpo=0x98886422 +mcsbw402gpo=0x98777755 + +maxp5ga0=75,75,75,76 + +#5GHz_20MHz Offset +mcsbw205glpo=0xba753311 +mcsbw205gmpo=0xba753311 +mcsbw205ghpo=0xba753311 + +#5GHz_40MHz Offset +mcsbw405glpo=0xe8753311 +mcsbw405gmpo=0xe8753311 +mcsbw405ghpo=0xd9753311 + +#5GHz_80MHz Offset +mcsbw805glpo=0xea633311 +mcsbw805gmpo=0xe7422211 +mcsbw805ghpo=0xda632211 + + +swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff +swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 + +vcodivmode=1 +deadman_to=481500000 +ed_thresh2g=-54 +ed_thresh5g=-54 +eu_edthresh2g=-54 +eu_edthresh5g=-54 + +#ed_thresh2g=-69 +#ed_thresh5g=-69 +#eu_edthresh2g=-69 +#eu_edthresh5g=-69 +ldo1=4 +rawtempsense=0x1ff +cckPwrIdxCorr=3 +cckTssiDelay=150 +ofdmTssiDelay=150 +txpwr2gAdcScale=1 +txpwr5gAdcScale=1 +dot11b_opts=0x3aa85 +cbfilttype=0 +#fdsslevel_ch1=6 +#fdsslevel_ch11=4 +#btc_mode=1 + +muxenab=0x10 + +cckdigfilttype=5 + +fdss_level_2g=6 +#fdss_level_5g=6 +#pacalshift5g=0,0,1 + +tempthresh=102 + + + + +pa2ga0_tsmc=-154,5722,-656 +pa2g40a0_tsmc=-199,6126,-732 +pa5ga0_tsmc=-193,6098,-740,-192,6095,-738,-199,5996,-730,-182,6148,-741 +pa5g40a0_tsmc=-193,6098,-740,-192,6095,-738,-199,5996,-730,-182,6148,-741 +pa5g80a0_tsmc=-193,6098,-740,-192,6095,-738,-199,5996,-730,-182,6148,-741 +fdss_level_5g=4 diff --git a/package/starfive/starfive-firmware/starfive-firmware.mk b/package/starfive/starfive-firmware/starfive-firmware.mk new file mode 100644 index 00000000..f9d3d561 --- /dev/null +++ b/package/starfive/starfive-firmware/starfive-firmware.mk @@ -0,0 +1,25 @@ +################################################################################ +# +# starfive-firmware +# +################################################################################ +STARFIVE_FIRMWARE_LICENSE = Proprietary + +# AP6256 Bluetooth +ifeq ($(BR2_PACKAGE_STARFIVE_FIRMWARE_AP6256_BLUETOOTH),y) +STARFIVE_FIRMWARE_FILES += $(TOPDIR)/package/starfive/starfive-firmware/ap6256-bluetooth/BCM4345C5.hcd +endif + +# AP6256 SDIO Wifi +ifeq ($(BR2_PACKAGE_STARFIVE_FIRMWARE_AP6256_SDIO_WIFI),y) +STARFIVE_FIRMWARE_FILES += $(TOPDIR)/package/starfive/starfive-firmware/ap6256-sdio-wifi/fw_bcm43456c5_ag.bin +STARFIVE_FIRMWARE_FILES += $(TOPDIR)/package/starfive/starfive-firmware/ap6256-sdio-wifi/nvram_ap6256.txt +endif + +define STARFIVE_FIRMWARE_INSTALL_TARGET_CMDS + $(foreach f,$(STARFIVE_FIRMWARE_FILES), \ + $(INSTALL) -m 0755 -D $(f) $(TARGET_DIR)/lib/firmware/; \ + ) +endef + +$(eval $(generic-package))