Patchwork [PATCHv2] linux-firmware: split into bus specific packages.

login
register
mail settings
Submitter Filip Zyzniewski
Date Feb. 14, 2011, 6:46 p.m.
Message ID <1297709209-6602-1-git-send-email-filip.zyzniewski@gmail.com>
Download mbox | patch
Permalink /patch/589/
State Under Review, archived
Delegated to: Khem Raj
Headers show

Comments

Filip Zyzniewski - Feb. 14, 2011, 6:46 p.m.
The whole reposotiry is about 24MB in size and it's rarely needed
whole. It is now splitted into bus specific subpackages (and some
device-specific for devices on a bus like SPI or SBUS) all depended
on by the linux-firmware package.

Suggested improvement - split bus packages furtherly into device
packages (so that we can either pull in a whole bus or just one
device).

Signed-off-by: Filip Zyzniewski <filip.zyzniewski@gmail.com>
---
 recipes/linux-firmware/linux-firmware_git.bb |  144 +++++++++++++++++++++++++-
 1 files changed, 142 insertions(+), 2 deletions(-)
Filip Zyzniewski - Feb. 22, 2011, 9:15 p.m.
Hi,

On 2/14/11, Filip Zyzniewski <filip.zyzniewski@gmail.com> wrote:
> The whole reposotiry is about 24MB in size and it's rarely needed
> whole. It is now splitted into bus specific subpackages (and some
> device-specific for devices on a bus like SPI or SBUS) all depended
> on by the linux-firmware package.
>
> Suggested improvement - split bus packages furtherly into device
> packages (so that we can either pull in a whole bus or just one
> device).

Is there anything going on with http://patches.openembedded.org/patch/589/?
It's been in 'Under Review' state for a couple of days now...

bye,
Filip Zyzniewski
Koen Kooi - Feb. 23, 2011, 6:33 a.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 14-02-11 19:46, Filip Zyzniewski wrote:
> The whole reposotiry is about 24MB in size and it's rarely needed
> whole. It is now splitted into bus specific subpackages (and some
> device-specific for devices on a bus like SPI or SBUS) all depended
> on by the linux-firmware package.
> 
> Suggested improvement - split bus packages furtherly into device
> packages (so that we can either pull in a whole bus or just one
> device).
> 
> Signed-off-by: Filip Zyzniewski <filip.zyzniewski@gmail.com>
> ---
>  recipes/linux-firmware/linux-firmware_git.bb |  144 +++++++++++++++++++++++++-
>  1 files changed, 142 insertions(+), 2 deletions(-)

> +
> +FILES_${PN}-wl12xx = "/lib/firmware/ti-connectivity/wl1271-*.bin"

The wl12xx files need to go into /lib/firmware, not
/lib/firmware/ti-connectivity

regards,

Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFNZKpWMkyGM64RGpERAgnPAKC4Yxrzomw/SWENX3F7t329lYvW8ACePhwJ
ttjmMyrgkry0bjZh5Derjp0=
=9TpP
-----END PGP SIGNATURE-----
Filip Zyzniewski - Feb. 23, 2011, 7:12 a.m.
On 2/23/11, Koen Kooi <k.kooi@student.utwente.nl> wrote:

> The wl12xx files need to go into /lib/firmware, not
> /lib/firmware/ti-connectivity

This layout is copied verbatim from the linux-firmware git repository.
Maybe I'll just report it upstream?

bye,
Filip Zyzniewski
Filip Zyzniewski - Feb. 23, 2011, 7:23 a.m.
Hi,

we've come across this issue with linux-firmware:

---------- Forwarded message ----------
From: Koen Kooi <k.kooi@student.utwente.nl>
Date: Wed, 23 Feb 2011 07:33:58 +0100
Subject: Re: [oe] [PATCHv2] linux-firmware: split into bus specific packages.
To: openembedded-devel@lists.openembedded.org

The wl12xx files need to go into /lib/firmware, not
/lib/firmware/ti-connectivity
-----------------------------------------------------

Grepping through kernel sources shows that that's the case:

filip.zyzniewski@jlime:/home/git/linux-hpc/drivers$ grep -r 'wl12.*\.bin' .
./net/wireless/wl1251/wl1251.h:#define WL1251_FW_NAME "wl1251-fw.bin"
./net/wireless/wl1251/wl1251.h:#define WL1251_NVS_NAME "wl1251-nvs.bin"
./net/wireless/wl12xx/wl1271.h:#define WL1271_FW_NAME "wl1271-fw.bin"
./net/wireless/wl12xx/wl1271.h:#define WL1271_NVS_NAME "wl1271-nvs.bin"
filip.zyzniewski@jlime:/home/git/linux-hpc/drivers$

Could you move these files to a location requested by the kernel?


bye,
Filip Zyzniewski
Eric BENARD - Feb. 23, 2011, 8:52 a.m.
Hi Filip,

On 23/02/2011 08:12, Filip Zyzniewski wrote:
> On 2/23/11, Koen Kooi<k.kooi@student.utwente.nl>  wrote:
>
>> The wl12xx files need to go into /lib/firmware, not
>> /lib/firmware/ti-connectivity
>
> This layout is copied verbatim from the linux-firmware git repository.
> Maybe I'll just report it upstream?
>
I'm not sure the linux-firmare repo is intendeed to be used as is.
Original goal was just to collect the firmwares :
http://lwn.net/Articles/294308/

As already said before, there is an other version of this recipe in
recipes/firmwares/linux-firmware.inc
which is already splitted in small packages for some firmware such as :
firmware-atheros-ar9271.bb
firmware-marvell-sd8688_10.38.1-p25.bb

Eric
Filip Zyzniewski - Feb. 23, 2011, 1:26 p.m.
On 2/23/11, Eric Benard <eric@eukrea.com> wrote:
> As already said before, there is an other version of this recipe in
> recipes/firmwares/linux-firmware.inc
> which is already splitted in small packages for some firmware such as :
> firmware-atheros-ar9271.bb
> firmware-marvell-sd8688_10.38.1-p25.bb

So you suggest removing recipes/linux-firmware altogether?
If so, recipes/firmwares/linux-firmware.inc would need a lot of
reshaping to provide what I need (bus specific packages).

bye,
Filip Zyzniewski
Koen Kooi - Feb. 23, 2011, 2:28 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 23-02-11 14:26, Filip Zyzniewski wrote:
> On 2/23/11, Eric Benard <eric@eukrea.com> wrote:
>> As already said before, there is an other version of this recipe in
>> recipes/firmwares/linux-firmware.inc
>> which is already splitted in small packages for some firmware such as :
>> firmware-atheros-ar9271.bb
>> firmware-marvell-sd8688_10.38.1-p25.bb
> 
> So you suggest removing recipes/linux-firmware altogether?
> If so, recipes/firmwares/linux-firmware.inc would need a lot of
> reshaping to provide what I need (bus specific packages).

I have no strong opinion on that, but I need a wl12xx package before the
end of the week due to deadlines, so I added that to the existing
linux-firmware recipe.

FWIW, if the split goes thru, proper licensing info needs to get added
to the subpackages as well.

regards,

Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFNZRlxMkyGM64RGpERAnZiAJ9zUQNuUAMJ/BCnUNQ7j9SoIMFjRACaAtVR
/crz6+iArTErc59iLcP/yUA=
=idnZ
-----END PGP SIGNATURE-----

Patch

diff --git a/recipes/linux-firmware/linux-firmware_git.bb b/recipes/linux-firmware/linux-firmware_git.bb
index 7bff379..14dc1b6 100644
--- a/recipes/linux-firmware/linux-firmware_git.bb
+++ b/recipes/linux-firmware/linux-firmware_git.bb
@@ -1,7 +1,8 @@ 
 DESCRIPTION = "Firmware files for use with Linux kernel"
 
+PR = "r1"
 PR_append = "+gitr${SRCREV}"
-SRCREV = "80a203275fc368db0a5f166c42dd35a4a22f2453"
+SRCREV = "2fab48391fda8a914b55c8ac265eb3b6ee10ace8"
 
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git;protocol=git"
 
@@ -16,7 +17,146 @@  do_install() {
 	cp -RpP * ${D}/lib/firmware/
 }
 
-FILES_${PN} += "/lib/firmware/*"
+SUBPACKAGES = "${PN}-i2c \
+	${PN}-isa \
+	${PN}-pci \
+	${PN}-pcmcia \
+	${PN}-sdio \
+	${PN}-usb \
+	${PN}-agere \
+	${PN}-dsp56k \
+	${PN}-gspi8682 \
+	${PN}-gspi8686 \
+	${PN}-gspi8688 \
+	${PN}-myri-sbus \
+	${PN}-qlogicpti \
+	${PN}-wl12xx \
+	${PN}-yam"
+
+RDEPENDS_${PN} += "${SUBPACKAGES}"
+PACKAGES += "${SUBPACKAGES}"
+
 PACKAGE_ARCH = "all"
 
+RDEPENDS_${PN}-pci += "${PN}-agere ${PN}-i2c"
+RDEPENDS_${PN}-pcmcia += "${PN}-agere"
+RDEPENDS_${PN}-sdio += "${PN}-gspi8686 ${PN}-wl12xx"
+RDEPENDS_${PN}-usb += "${PN}-agere ${PN}-i2c"
+
+
+FILES_${PN}-i2c = "/lib/firmware/dvb-fe-xc5000-1.6.114.fw \
+	/lib/firmware/lgs8g75.fw"
+
+FILES_${PN}-isa = "/lib/firmware/sb16 \
+	/lib/firmware/tr_smctr.bin \
+	/lib/firmware/yamaha/yss225_registers.bin"
+
+FILES_${PN}-pci = "/lib/firmware/3com \
+	/lib/firmware/RTL8192E \
+	/lib/firmware/acenic \
+	/lib/firmware/adaptec \
+	/lib/firmware/advansys \
+	/lib/firmware/atmsar11.fw \
+	/lib/firmware/av7110 \
+	/lib/firmware/bnx2 \
+	/lib/firmware/bnx2x*.fw \
+	/lib/firmware/brcm/bcm43xx*.fw \
+	/lib/firmware/cxgb3 \
+	/lib/firmware/e100 \
+	/lib/firmware/ess/maestro3_*.fw \
+	/lib/firmware/intelliport2.bin \
+	/lib/firmware/iwlwifi-*.ucode \
+	/lib/firmware/korg/k1212.dsp \
+	/lib/firmware/matrox \
+	/lib/firmware/mwl8335_duplex.fw \
+	/lib/firmware/mwl8k \
+	/lib/firmware/phanfw.bin \
+	/lib/firmware/ql2*_fw.bin \
+	/lib/firmware/qlogic/1040.bin \
+	/lib/firmware/qlogic/12160.bin \
+	/lib/firmware/qlogic/1280.bin \
+	/lib/firmware/qlogic/sd7220.fw \
+	/lib/firmware/r128 \
+	/lib/firmware/radeon \
+	/lib/firmware/rt2561.bin \
+	/lib/firmware/rt2561s.bin \
+	/lib/firmware/rt2661.bin \
+	/lib/firmware/rt2860.bin \
+	/lib/firmware/rt3090.bin \
+	/lib/firmware/rtl_nic/rtl8168d-*.fw \
+	/lib/firmware/rtlwifi/rtl8192defw.bin \
+	/lib/firmware/rtlwifi/rtl8192sefw.bin \
+	/lib/firmware/slicoss \
+	/lib/firmware/sun/cassini.bin \
+	/lib/firmware/sxg \
+	/lib/firmware/tehuti \
+	/lib/firmware/tigon/tg3*.bin \
+	/lib/firmware/tlg2300_firmware.bin \
+	/lib/firmware/v4l-cx23418-*.fw \
+	/lib/firmware/v4l-cx23885-*.fw \
+	/lib/firmware/v4l-cx25840.fw \
+	/lib/firmware/vxge/X3fw*.ncf \
+	/lib/firmware/yamaha/ds1*.fw"
+
+FILES_${PN}-pcmcia = "/lib/firmware/cis \
+	/lib/firmware/libertas/cf8385*.bin \
+	/lib/firmware/ositech/Xilinx7OD.bin"
+
+FILES_${PN}-sdio = "/lib/firmware/brcm/bcm4329-fullmac-4-218-248-5.bin \
+	/lib/firmware/libertas/sd*.bin"
+
+FILES_${PN}-usb ="/lib/firmware/ar7010.fw \
+	/lib/firmware/ar7010_1_1.fw \
+	/lib/firmware/ar9170-*.fw \
+	/lib/firmware/ar9271.fw \
+	/lib/firmware/ath3k-*.fw \
+	/lib/firmware/cpia2 \
+	/lib/firmware/dabusb \
+	/lib/firmware/dvb-usb-dib0700-1.20.fw \
+	/lib/firmware/edgeport \
+	/lib/firmware/emi26 \
+	/lib/firmware/emi62 \
+	/lib/firmware/f2255usb.bin \
+	/lib/firmware/i2400m-fw-usb-*.sbcf \
+	/lib/firmware/i6050-fw-usb-1.5.sbcf \
+	/lib/firmware/kaweth \
+	/lib/firmware/keyspan \
+	/lib/firmware/keyspan_pda \
+	/lib/firmware/libertas/usb*.bin \
+	/lib/firmware/mts_*.fw \
+	/lib/firmware/rt2870.bin \
+	/lib/firmware/rt3070.bin \
+	/lib/firmware/rt3071.bin \
+	/lib/firmware/rt73.bin \
+	/lib/firmware/rtlwifi/rtl8192cfw.bin \
+	/lib/firmware/rtlwifi/rtl8192cufw.bin \
+	/lib/firmware/rtlwifi/rtl8712u.bin \
+	/lib/firmware/s2250*.fw \
+	/lib/firmware/ti_3410.fw \
+	/lib/firmware/ti_5052.fw \
+	/lib/firmware/ttusb-budget \	
+	/lib/firmware/ueagle-atm \
+	/lib/firmware/usbdux_firmware.bin \
+	/lib/firmware/usbduxfast_firmware.bin \
+	/lib/firmware/v4l-cx231xx-avcore-01.fw \
+	/lib/firmware/vicam/firmware.fw \
+	/lib/firmware/vntwusb.fw \
+	/lib/firmware/whiteheat*.fw"
+
+FILES_${PN}-agere = "/lib/firmware/agere_*_fw.bin"
+
+FILES_${PN}-dsp56k = "/lib/firmware/dsp56k/bootstrap.bin"
+
+FILES_${PN}-gspi8682 = "/lib/firmware/libertas/gspi8682*.bin"
+
+FILES_${PN}-gspi8686 = "/lib/firmware/libertas/gspi8686*.bin"
+
+FILES_${PN}-gspi8688 = "/lib/firmware/libertas/gspi8688*.bin" 
+
+FILES_${PN}-myri-sbus = "/lib/firmware/myricom/lanai.bin"
+
+FILES_${PN}-qlogicpti = "/lib/firmware/qlogic/isp1000.bin"
+
+FILES_${PN}-wl12xx = "/lib/firmware/ti-connectivity/wl1271-*.bin"
 
+FILES_${PN}-yam = "/lib/firmware/yam"