diff mbox

[OpenWrt-Devel,PATCHv2,5/7] mac80211/linux-firmware: include firmware for brcmfmac-sdio

Message ID 20150730085216.GA20369@makrotopia.org
State Superseded
Delegated to: Zoltan HERPAI
Headers show

Commit Message

Daniel Golle July 30, 2015, 8:52 a.m. UTC
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---
 package/kernel/mac80211/Makefile | 48 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 46 insertions(+), 2 deletions(-)

Comments

Rafał Miłecki July 30, 2015, 4:34 p.m. UTC | #1
On 30 July 2015 at 10:52, Daniel Golle <daniel@makrotopia.org> wrote:
> @@ -2000,6 +2000,50 @@ endef
>
>  define KernelPackage/brcmfmac/install
>         $(INSTALL_DIR) $(1)/lib/firmware/brcm
> +ifneq ($(CONFIG_BRCMFMAC_SDIO),)
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b0-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b4-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b5-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4329-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4330-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43340-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43362-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4339-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43430-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43435-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +       $(INSTALL_DATA) \
> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4354-sdio.bin \
> +               $(1)/lib/firmware/brcm/
> +endef

Looks much better, thanks.

Two things:
1) Do we want to include firmware for all brcmfmac supported devices?
I guess some of them are e.g. smartphones and I'm not sure if anyone
wants to run OpenWrt on them. Or should we split it into more options
maybe?
2) If we want all firmware files then for SDIO devices we could try
something clever like: $(PKG_BUILD_DIR)/brcm/brcmfmac*-sdio.bin maybe?
Hauke Mehrtens Aug. 3, 2015, 8:59 p.m. UTC | #2
On 07/30/2015 06:34 PM, Rafał Miłecki wrote:
> On 30 July 2015 at 10:52, Daniel Golle <daniel@makrotopia.org> wrote:
>> @@ -2000,6 +2000,50 @@ endef
>>
>>  define KernelPackage/brcmfmac/install
>>         $(INSTALL_DIR) $(1)/lib/firmware/brcm
>> +ifneq ($(CONFIG_BRCMFMAC_SDIO),)
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b0-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b4-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b5-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4329-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4330-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43340-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43362-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4339-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43430-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43435-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +       $(INSTALL_DATA) \
>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4354-sdio.bin \
>> +               $(1)/lib/firmware/brcm/
>> +endef
> 
> Looks much better, thanks.
> 
> Two things:
> 1) Do we want to include firmware for all brcmfmac supported devices?
> I guess some of them are e.g. smartphones and I'm not sure if anyone
> wants to run OpenWrt on them. Or should we split it into more options
> maybe?

I think we should only add the firmware files we found on devices
running OpenWrt, each firmware is 216 to 580 KBytes.

You could do it similar to the iwlwifi firmware and only select the
firmware files by default which are found in routers and if some special
firmware could be needed from some target only select it by default for
that target.

> 2) If we want all firmware files then for SDIO devices we could try
> something clever like: $(PKG_BUILD_DIR)/brcm/brcmfmac*-sdio.bin maybe?
>
Rafał Miłecki Aug. 3, 2015, 10:27 p.m. UTC | #3
On 3 August 2015 at 22:59, Hauke Mehrtens <hauke@hauke-m.de> wrote:
> On 07/30/2015 06:34 PM, Rafał Miłecki wrote:
>> On 30 July 2015 at 10:52, Daniel Golle <daniel@makrotopia.org> wrote:
>>> @@ -2000,6 +2000,50 @@ endef
>>>
>>>  define KernelPackage/brcmfmac/install
>>>         $(INSTALL_DIR) $(1)/lib/firmware/brcm
>>> +ifneq ($(CONFIG_BRCMFMAC_SDIO),)
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b0-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b4-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b5-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4329-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4330-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43340-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43362-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4339-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43430-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43435-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +       $(INSTALL_DATA) \
>>> +               $(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4354-sdio.bin \
>>> +               $(1)/lib/firmware/brcm/
>>> +endef
>>
>> Looks much better, thanks.
>>
>> Two things:
>> 1) Do we want to include firmware for all brcmfmac supported devices?
>> I guess some of them are e.g. smartphones and I'm not sure if anyone
>> wants to run OpenWrt on them. Or should we split it into more options
>> maybe?
>
> I think we should only add the firmware files we found on devices
> running OpenWrt, each firmware is 216 to 580 KBytes.
>
> You could do it similar to the iwlwifi firmware and only select the
> firmware files by default which are found in routers and if some special
> firmware could be needed from some target only select it by default for
> that target.

Sounds sane for me.

Daniel: can you rewrite your patch to include only "really required"
firmware files by default? And if you have some time, you can also add
an extra option for adding rest of firmwares.
diff mbox

Patch

diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile
index 40b08c0..4052acd 100644
--- a/package/kernel/mac80211/Makefile
+++ b/package/kernel/mac80211/Makefile
@@ -108,8 +108,8 @@  Generic IEEE 802.11 Networking Stack (mac80211)
 endef
 
 PKG_LINUX_FIRMWARE_NAME:=linux-firmware
-PKG_LINUX_FIRMWARE_VERSION:=f404336ba808cbd57547196e13367079a23b822c
-PKG_LINUX_FIRMWARE_SOURCE:=$(PKG_LINUX_FIRMWARE_NAME)-2015-03-20-$(PKG_LINUX_FIRMWARE_VERSION).tar.bz2
+PKG_LINUX_FIRMWARE_VERSION:=75cc3ef8ba6712fd72c073b17a790282136cc743
+PKG_LINUX_FIRMWARE_SOURCE:=$(PKG_LINUX_FIRMWARE_NAME)-2015-07-22-$(PKG_LINUX_FIRMWARE_VERSION).tar.bz2
 PKG_LINUX_FIRMWARE_PROTO:=git
 PKG_LINUX_FIRMWARE_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
 PKG_LINUX_FIRMWARE_SUBDIR:=$(PKG_LINUX_FIRMWARE_NAME)-$(PKG_LINUX_FIRMWARE_VERSION)
@@ -2000,6 +2000,50 @@  endef
 
 define KernelPackage/brcmfmac/install
 	$(INSTALL_DIR) $(1)/lib/firmware/brcm
+ifneq ($(CONFIG_BRCMFMAC_SDIO),)
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b0-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b4-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43241b5-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4329-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4330-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4334-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43340-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43362-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4339-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43430-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43435-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4354-sdio.bin \
+		$(1)/lib/firmware/brcm/
+endef
 ifneq ($(CONFIG_BRCMFMAC_USB),)
 	$(INSTALL_DATA) \
 		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43236b.bin \