mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
@ 2021-10-13 18:36 Christian Melki
  2021-10-15 14:11 ` Michael Olbrich
  0 siblings, 1 reply; 8+ messages in thread
From: Christian Melki @ 2021-10-13 18:36 UTC (permalink / raw)
  To: ptxdist

Firmware is needed by a lot of modern devices.
Includes various radio interfaces, GPU and CPU stuff.

Due to the large space required by some firmwares as a whole,
compression can optionally be enabled.

Signed-off-by: Christian Melki <christian.melki@t2data.com>
---
 rules/linux-firmware.in   | 55 ++++++++++++++++++++++
 rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 154 insertions(+)
 create mode 100644 rules/linux-firmware.in
 create mode 100644 rules/linux-firmware.make

diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
new file mode 100644
index 000000000..1abbec6bd
--- /dev/null
+++ b/rules/linux-firmware.in
@@ -0,0 +1,55 @@
+## SECTION=system_libraries
+
+menuconfig LINUX_FIRMWARE
+	tristate
+	prompt "linux-firmware                "
+	help
+	  Linux firmware is a collection of firmwares that are used for various hardwares.
+
+if LINUX_FIRMWARE
+
+config LINUX_FIRMWARE_COMPRESSION
+	tristate
+	prompt "xz compression support"
+	select HOST_XZ
+	help
+	  Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
+
+menu "CPU Microcode"
+
+config LINUX_FIRMWARE_AMDCPU
+	bool "AMD CPU u-code"
+	help
+	  Firmware files for AMD CPUs.
+
+endmenu
+
+menu "Video firmware"
+
+config LINUX_FIRMWARE_AMDGPU
+	bool "AMD GPU video card firmware"
+	help
+	  Firmware files for AMD GPU video cards.
+	  Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
+
+if LINUX_FIRMWARE_AMDGPU
+
+menu "AMDGPU video firmware"
+
+config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
+	bool "RAVEN RIDGE APU AMD GPU video card firmware"
+	help
+	  Firmware files for RAVEN RIDGE APU AMD GPU video cards.
+
+config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
+	bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
+	help
+	  Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
+
+endmenu
+
+endif
+
+endmenu
+
+endif
diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
new file mode 100644
index 000000000..3a3a300e6
--- /dev/null
+++ b/rules/linux-firmware.make
@@ -0,0 +1,99 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
+
+#
+# Paths and names
+#
+LINUX_FIRMWARE_VERSION	:= 20210818
+LINUX_FIRMWARE_MD5	:= 736a3bbba3391d962d3c321ae04572d7
+LINUX_FIRMWARE		:= linux-firmware-$(LINUX_FIRMWARE_VERSION)
+LINUX_FIRMWARE_SUFFIX	:= tar.gz
+LINUX_FIRMWARE_URL	:= $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
+LINUX_FIRMWARE_SOURCE	:= $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
+LINUX_FIRMWARE_DIR	:= $(BUILDDIR)/$(LINUX_FIRMWARE)
+LINUX_FIRMWARE_LICENSE	:= proprietary
+LINUX_FIRMWARE_LICENSE_FILES := \
+	file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
+	file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/linux-firmware.extract:
+	@$(call targetinfo)
+	@$(call clean, $(LINUX_FIRMWARE_DIR))
+	@$(call extract, LINUX_FIRMWARE)
+	@$(call patchin, LINUX_FIRMWARE)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LINUX_FIRMWARE_CONF_TOOL	:= NO
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/linux-firmware.compile:
+	@$(call targetinfo)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/linux-firmware.install:
+	@$(call targetinfo)
+	@$(call world/install, LINUX_FIRMWARE)
+ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
+	@find $(LINUX_FIRMWARE_PKGDIR) -type f \
+	-not -name "*.xz" \
+	-not -name "*.ucode" \
+	-exec echo "Compressing " "{}" "..." \; \
+	-exec xz -C crc32 "{}" \;
+endif
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/linux-firmware.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, linux-firmware)
+	@$(call install_fixup, linux-firmware,PRIORITY,optional)
+	@$(call install_fixup, linux-firmware,SECTION,base)
+	@$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+	@$(call install_fixup, linux-firmware,DESCRIPTION,missing)
+ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
+	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
+	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
+endif
+ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
+	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
+ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
+	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
+endif
+ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
+	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
+endif
+endif
+	@$(call install_finish, linux-firmware)
+
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.30.2


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
  2021-10-13 18:36 [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818 Christian Melki
@ 2021-10-15 14:11 ` Michael Olbrich
  2021-10-15 19:40   ` Alexander Dahl
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Olbrich @ 2021-10-15 14:11 UTC (permalink / raw)
  To: Christian Melki; +Cc: ptxdist

On Wed, Oct 13, 2021 at 08:36:31PM +0200, Christian Melki wrote:
> Firmware is needed by a lot of modern devices.
> Includes various radio interfaces, GPU and CPU stuff.
> 
> Due to the large space required by some firmwares as a whole,
> compression can optionally be enabled.

Hmmm, I'm not sure about this. I've always dumped selected firmware files
and their license into projectroot/ and created a local package. Mostly for
two reasons:

1. I wanted the fine control to explicitly update individual firmware
files.

2. I never found a good way to split the package options. For example,
installing all iwlwifi* files seems excessive but so does adding an option
for each on.

Any other opinions on this?

Michael

> Signed-off-by: Christian Melki <christian.melki@t2data.com>
> ---
>  rules/linux-firmware.in   | 55 ++++++++++++++++++++++
>  rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 154 insertions(+)
>  create mode 100644 rules/linux-firmware.in
>  create mode 100644 rules/linux-firmware.make
> 
> diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
> new file mode 100644
> index 000000000..1abbec6bd
> --- /dev/null
> +++ b/rules/linux-firmware.in
> @@ -0,0 +1,55 @@
> +## SECTION=system_libraries
> +
> +menuconfig LINUX_FIRMWARE
> +	tristate
> +	prompt "linux-firmware                "
> +	help
> +	  Linux firmware is a collection of firmwares that are used for various hardwares.
> +
> +if LINUX_FIRMWARE
> +
> +config LINUX_FIRMWARE_COMPRESSION
> +	tristate
> +	prompt "xz compression support"
> +	select HOST_XZ
> +	help
> +	  Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
> +
> +menu "CPU Microcode"
> +
> +config LINUX_FIRMWARE_AMDCPU
> +	bool "AMD CPU u-code"
> +	help
> +	  Firmware files for AMD CPUs.
> +
> +endmenu
> +
> +menu "Video firmware"
> +
> +config LINUX_FIRMWARE_AMDGPU
> +	bool "AMD GPU video card firmware"
> +	help
> +	  Firmware files for AMD GPU video cards.
> +	  Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
> +
> +if LINUX_FIRMWARE_AMDGPU
> +
> +menu "AMDGPU video firmware"
> +
> +config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> +	bool "RAVEN RIDGE APU AMD GPU video card firmware"
> +	help
> +	  Firmware files for RAVEN RIDGE APU AMD GPU video cards.
> +
> +config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> +	bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
> +	help
> +	  Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
> +
> +endmenu
> +
> +endif
> +
> +endmenu
> +
> +endif
> diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
> new file mode 100644
> index 000000000..3a3a300e6
> --- /dev/null
> +++ b/rules/linux-firmware.make
> @@ -0,0 +1,99 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
> +
> +#
> +# Paths and names
> +#
> +LINUX_FIRMWARE_VERSION	:= 20210818
> +LINUX_FIRMWARE_MD5	:= 736a3bbba3391d962d3c321ae04572d7
> +LINUX_FIRMWARE		:= linux-firmware-$(LINUX_FIRMWARE_VERSION)
> +LINUX_FIRMWARE_SUFFIX	:= tar.gz
> +LINUX_FIRMWARE_URL	:= $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
> +LINUX_FIRMWARE_SOURCE	:= $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
> +LINUX_FIRMWARE_DIR	:= $(BUILDDIR)/$(LINUX_FIRMWARE)
> +LINUX_FIRMWARE_LICENSE	:= proprietary
> +LINUX_FIRMWARE_LICENSE_FILES := \
> +	file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
> +	file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
> +
> +# ----------------------------------------------------------------------------
> +# Extract
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/linux-firmware.extract:
> +	@$(call targetinfo)
> +	@$(call clean, $(LINUX_FIRMWARE_DIR))
> +	@$(call extract, LINUX_FIRMWARE)
> +	@$(call patchin, LINUX_FIRMWARE)
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +LINUX_FIRMWARE_CONF_TOOL	:= NO
> +
> +# ----------------------------------------------------------------------------
> +# Compile
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/linux-firmware.compile:
> +	@$(call targetinfo)
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/linux-firmware.install:
> +	@$(call targetinfo)
> +	@$(call world/install, LINUX_FIRMWARE)
> +ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
> +	@find $(LINUX_FIRMWARE_PKGDIR) -type f \
> +	-not -name "*.xz" \
> +	-not -name "*.ucode" \
> +	-exec echo "Compressing " "{}" "..." \; \
> +	-exec xz -C crc32 "{}" \;
> +endif
> +	@$(call touch)
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/linux-firmware.targetinstall:
> +	@$(call targetinfo)
> +
> +	@$(call install_init, linux-firmware)
> +	@$(call install_fixup, linux-firmware,PRIORITY,optional)
> +	@$(call install_fixup, linux-firmware,SECTION,base)
> +	@$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
> +	@$(call install_fixup, linux-firmware,DESCRIPTION,missing)
> +ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
> +endif
> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
> +endif
> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
> +endif
> +endif
> +	@$(call install_finish, linux-firmware)
> +
> +	@$(call touch)
> +
> +# vim: syntax=make
> -- 
> 2.30.2
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
  2021-10-15 14:11 ` Michael Olbrich
@ 2021-10-15 19:40   ` Alexander Dahl
  2021-10-16  7:21     ` Christian Melki
  0 siblings, 1 reply; 8+ messages in thread
From: Alexander Dahl @ 2021-10-15 19:40 UTC (permalink / raw)
  To: Christian Melki, ptxdist


[-- Attachment #1.1: Type: text/plain, Size: 9133 bytes --]

Hei hei,

On Fri, Oct 15, 2021 at 04:11:11PM +0200, Michael Olbrich wrote:
> On Wed, Oct 13, 2021 at 08:36:31PM +0200, Christian Melki wrote:
> > Firmware is needed by a lot of modern devices.
> > Includes various radio interfaces, GPU and CPU stuff.
> > 
> > Due to the large space required by some firmwares as a whole,
> > compression can optionally be enabled.
> 
> Hmmm, I'm not sure about this. I've always dumped selected firmware files
> and their license into projectroot/ and created a local package. Mostly for
> two reasons:
> 
> 1. I wanted the fine control to explicitly update individual firmware
> files.
> 
> 2. I never found a good way to split the package options. For example,
> installing all iwlwifi* files seems excessive but so does adding an option
> for each on.
> 
> Any other opinions on this?

I can share some experience from the fli4l [1] project, but from a
different viewing angle.  Most firmware is not free in a FOSS licensed
way, so it's hard to find a generic solution, especially when getting
the license stuff right.  That's why we opted for free (as in under
FOSS license) firmware only, which means: user is responsible for
handling non-free firmware.  

Same thing basically applies for proprietary firmware you develop yourself.

So I think the approach Michael suggested in this case is a useful
one: just put the few blobs and license stuff you need into your BSP.

This obviously would not work if the user can plug arbitrary hardware
like WiFi cards, but if hardware is restricted, and most embededded
projects are (?), then this is no problem.

However if you don't have control which additional hardware your users
plug, and you still want to support it, you would need a more generic
approach.

Greets
Alex

[1] https://www.fli4l.de/

> 
> Michael
> 
> > Signed-off-by: Christian Melki <christian.melki@t2data.com>
> > ---
> >  rules/linux-firmware.in   | 55 ++++++++++++++++++++++
> >  rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 154 insertions(+)
> >  create mode 100644 rules/linux-firmware.in
> >  create mode 100644 rules/linux-firmware.make
> > 
> > diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
> > new file mode 100644
> > index 000000000..1abbec6bd
> > --- /dev/null
> > +++ b/rules/linux-firmware.in
> > @@ -0,0 +1,55 @@
> > +## SECTION=system_libraries
> > +
> > +menuconfig LINUX_FIRMWARE
> > +	tristate
> > +	prompt "linux-firmware                "
> > +	help
> > +	  Linux firmware is a collection of firmwares that are used for various hardwares.
> > +
> > +if LINUX_FIRMWARE
> > +
> > +config LINUX_FIRMWARE_COMPRESSION
> > +	tristate
> > +	prompt "xz compression support"
> > +	select HOST_XZ
> > +	help
> > +	  Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
> > +
> > +menu "CPU Microcode"
> > +
> > +config LINUX_FIRMWARE_AMDCPU
> > +	bool "AMD CPU u-code"
> > +	help
> > +	  Firmware files for AMD CPUs.
> > +
> > +endmenu
> > +
> > +menu "Video firmware"
> > +
> > +config LINUX_FIRMWARE_AMDGPU
> > +	bool "AMD GPU video card firmware"
> > +	help
> > +	  Firmware files for AMD GPU video cards.
> > +	  Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
> > +
> > +if LINUX_FIRMWARE_AMDGPU
> > +
> > +menu "AMDGPU video firmware"
> > +
> > +config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> > +	bool "RAVEN RIDGE APU AMD GPU video card firmware"
> > +	help
> > +	  Firmware files for RAVEN RIDGE APU AMD GPU video cards.
> > +
> > +config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> > +	bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
> > +	help
> > +	  Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
> > +
> > +endmenu
> > +
> > +endif
> > +
> > +endmenu
> > +
> > +endif
> > diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
> > new file mode 100644
> > index 000000000..3a3a300e6
> > --- /dev/null
> > +++ b/rules/linux-firmware.make
> > @@ -0,0 +1,99 @@
> > +# -*-makefile-*-
> > +#
> > +# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
> > +#
> > +# For further information about the PTXdist project and license conditions
> > +# see the README file.
> > +#
> > +
> > +#
> > +# We provide this package
> > +#
> > +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
> > +
> > +#
> > +# Paths and names
> > +#
> > +LINUX_FIRMWARE_VERSION	:= 20210818
> > +LINUX_FIRMWARE_MD5	:= 736a3bbba3391d962d3c321ae04572d7
> > +LINUX_FIRMWARE		:= linux-firmware-$(LINUX_FIRMWARE_VERSION)
> > +LINUX_FIRMWARE_SUFFIX	:= tar.gz
> > +LINUX_FIRMWARE_URL	:= $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
> > +LINUX_FIRMWARE_SOURCE	:= $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
> > +LINUX_FIRMWARE_DIR	:= $(BUILDDIR)/$(LINUX_FIRMWARE)
> > +LINUX_FIRMWARE_LICENSE	:= proprietary
> > +LINUX_FIRMWARE_LICENSE_FILES := \
> > +	file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
> > +	file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
> > +
> > +# ----------------------------------------------------------------------------
> > +# Extract
> > +# ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/linux-firmware.extract:
> > +	@$(call targetinfo)
> > +	@$(call clean, $(LINUX_FIRMWARE_DIR))
> > +	@$(call extract, LINUX_FIRMWARE)
> > +	@$(call patchin, LINUX_FIRMWARE)
> > +	@$(call touch)
> > +
> > +# ----------------------------------------------------------------------------
> > +# Prepare
> > +# ----------------------------------------------------------------------------
> > +
> > +LINUX_FIRMWARE_CONF_TOOL	:= NO
> > +
> > +# ----------------------------------------------------------------------------
> > +# Compile
> > +# ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/linux-firmware.compile:
> > +	@$(call targetinfo)
> > +	@$(call touch)
> > +
> > +# ----------------------------------------------------------------------------
> > +# Install
> > +# ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/linux-firmware.install:
> > +	@$(call targetinfo)
> > +	@$(call world/install, LINUX_FIRMWARE)
> > +ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
> > +	@find $(LINUX_FIRMWARE_PKGDIR) -type f \
> > +	-not -name "*.xz" \
> > +	-not -name "*.ucode" \
> > +	-exec echo "Compressing " "{}" "..." \; \
> > +	-exec xz -C crc32 "{}" \;
> > +endif
> > +	@$(call touch)
> > +
> > +# ----------------------------------------------------------------------------
> > +# Target-Install
> > +# ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/linux-firmware.targetinstall:
> > +	@$(call targetinfo)
> > +
> > +	@$(call install_init, linux-firmware)
> > +	@$(call install_fixup, linux-firmware,PRIORITY,optional)
> > +	@$(call install_fixup, linux-firmware,SECTION,base)
> > +	@$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
> > +	@$(call install_fixup, linux-firmware,DESCRIPTION,missing)
> > +ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
> > +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
> > +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
> > +endif
> > +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
> > +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
> > +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> > +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
> > +endif
> > +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> > +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
> > +endif
> > +endif
> > +	@$(call install_finish, linux-firmware)
> > +
> > +	@$(call touch)
> > +
> > +# vim: syntax=make
> > -- 
> > 2.30.2
> > 
> > 
> > _______________________________________________
> > ptxdist mailing list
> > ptxdist@pengutronix.de
> > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> > 
> 
> -- 
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

-- 
/"\ ASCII RIBBON | »With the first link, the chain is forged. The first
\ / CAMPAIGN     | speech censured, the first thought forbidden, the
 X  AGAINST      | first freedom denied, chains us all irrevocably.«
/ \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 181 bytes --]

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
  2021-10-15 19:40   ` Alexander Dahl
@ 2021-10-16  7:21     ` Christian Melki
  2021-11-04 10:08       ` Christian Melki
  0 siblings, 1 reply; 8+ messages in thread
From: Christian Melki @ 2021-10-16  7:21 UTC (permalink / raw)
  To: ptxdist

On 10/15/21 21:40, Alexander Dahl wrote:
> Hei hei,
> 
> On Fri, Oct 15, 2021 at 04:11:11PM +0200, Michael Olbrich wrote:
>> On Wed, Oct 13, 2021 at 08:36:31PM +0200, Christian Melki wrote:
>>> Firmware is needed by a lot of modern devices.
>>> Includes various radio interfaces, GPU and CPU stuff.
>>>
>>> Due to the large space required by some firmwares as a whole,
>>> compression can optionally be enabled.
>>
>> Hmmm, I'm not sure about this. I've always dumped selected firmware files
>> and their license into projectroot/ and created a local package. Mostly for
>> two reasons:
>>
>> 1. I wanted the fine control to explicitly update individual firmware
>> files.
>>
>> 2. I never found a good way to split the package options. For example,
>> installing all iwlwifi* files seems excessive but so does adding an option
>> for each on.
>>
>> Any other opinions on this?
> 
> I can share some experience from the fli4l [1] project, but from a
> different viewing angle.  Most firmware is not free in a FOSS licensed
> way, so it's hard to find a generic solution, especially when getting
> the license stuff right.  That's why we opted for free (as in under
> FOSS license) firmware only, which means: user is responsible for
> handling non-free firmware.  
> 
> Same thing basically applies for proprietary firmware you develop yourself.
> 
> So I think the approach Michael suggested in this case is a useful
> one: just put the few blobs and license stuff you need into your BSP.
> 
> This obviously would not work if the user can plug arbitrary hardware
> like WiFi cards, but if hardware is restricted, and most embededded
> projects are (?), then this is no problem.
> 
> However if you don't have control which additional hardware your users
> plug, and you still want to support it, you would need a more generic
> approach.
> 
> Greets
> Alex
> 
> [1] https://www.fli4l.de/
> 

Hi.

I think I can clarify my raison d'être a bit.
The kernel isn't overly informative on what it is loading or has loaded
(history) as a default. I patch the firmware class or use dyndbg to get
all the loaded firmware files from this standard package. From time to
time things can be a little bit non-obvious, such as the Raven Ridge APU
requiring a blob named Raven2-something.
So I usually end up providing all the blobs (names do change) with the
latest firmware package, get all the files when I'm happy with the
configuration and filter it down. Because the whole package is rather huge.

So for my part, I still have to provide linux-firmware bits and that I
partly go through the same thing anyway.

I agree that the *.in is rather non-optimal, but I'm open to
suggestions. Maybe an *all* and a *filter list* once you're done is better?

Regards,
Christian

>>
>> Michael
>>
>>> Signed-off-by: Christian Melki <christian.melki@t2data.com>
>>> ---
>>>  rules/linux-firmware.in   | 55 ++++++++++++++++++++++
>>>  rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
>>>  2 files changed, 154 insertions(+)
>>>  create mode 100644 rules/linux-firmware.in
>>>  create mode 100644 rules/linux-firmware.make
>>>
>>> diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
>>> new file mode 100644
>>> index 000000000..1abbec6bd
>>> --- /dev/null
>>> +++ b/rules/linux-firmware.in
>>> @@ -0,0 +1,55 @@
>>> +## SECTION=system_libraries
>>> +
>>> +menuconfig LINUX_FIRMWARE
>>> +	tristate
>>> +	prompt "linux-firmware                "
>>> +	help
>>> +	  Linux firmware is a collection of firmwares that are used for various hardwares.
>>> +
>>> +if LINUX_FIRMWARE
>>> +
>>> +config LINUX_FIRMWARE_COMPRESSION
>>> +	tristate
>>> +	prompt "xz compression support"
>>> +	select HOST_XZ
>>> +	help
>>> +	  Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
>>> +
>>> +menu "CPU Microcode"
>>> +
>>> +config LINUX_FIRMWARE_AMDCPU
>>> +	bool "AMD CPU u-code"
>>> +	help
>>> +	  Firmware files for AMD CPUs.
>>> +
>>> +endmenu
>>> +
>>> +menu "Video firmware"
>>> +
>>> +config LINUX_FIRMWARE_AMDGPU
>>> +	bool "AMD GPU video card firmware"
>>> +	help
>>> +	  Firmware files for AMD GPU video cards.
>>> +	  Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
>>> +
>>> +if LINUX_FIRMWARE_AMDGPU
>>> +
>>> +menu "AMDGPU video firmware"
>>> +
>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
>>> +	bool "RAVEN RIDGE APU AMD GPU video card firmware"
>>> +	help
>>> +	  Firmware files for RAVEN RIDGE APU AMD GPU video cards.
>>> +
>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
>>> +	bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
>>> +	help
>>> +	  Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
>>> +
>>> +endmenu
>>> +
>>> +endif
>>> +
>>> +endmenu
>>> +
>>> +endif
>>> diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
>>> new file mode 100644
>>> index 000000000..3a3a300e6
>>> --- /dev/null
>>> +++ b/rules/linux-firmware.make
>>> @@ -0,0 +1,99 @@
>>> +# -*-makefile-*-
>>> +#
>>> +# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
>>> +#
>>> +# For further information about the PTXdist project and license conditions
>>> +# see the README file.
>>> +#
>>> +
>>> +#
>>> +# We provide this package
>>> +#
>>> +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
>>> +
>>> +#
>>> +# Paths and names
>>> +#
>>> +LINUX_FIRMWARE_VERSION	:= 20210818
>>> +LINUX_FIRMWARE_MD5	:= 736a3bbba3391d962d3c321ae04572d7
>>> +LINUX_FIRMWARE		:= linux-firmware-$(LINUX_FIRMWARE_VERSION)
>>> +LINUX_FIRMWARE_SUFFIX	:= tar.gz
>>> +LINUX_FIRMWARE_URL	:= $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
>>> +LINUX_FIRMWARE_SOURCE	:= $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
>>> +LINUX_FIRMWARE_DIR	:= $(BUILDDIR)/$(LINUX_FIRMWARE)
>>> +LINUX_FIRMWARE_LICENSE	:= proprietary
>>> +LINUX_FIRMWARE_LICENSE_FILES := \
>>> +	file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
>>> +	file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
>>> +
>>> +# ----------------------------------------------------------------------------
>>> +# Extract
>>> +# ----------------------------------------------------------------------------
>>> +
>>> +$(STATEDIR)/linux-firmware.extract:
>>> +	@$(call targetinfo)
>>> +	@$(call clean, $(LINUX_FIRMWARE_DIR))
>>> +	@$(call extract, LINUX_FIRMWARE)
>>> +	@$(call patchin, LINUX_FIRMWARE)
>>> +	@$(call touch)
>>> +
>>> +# ----------------------------------------------------------------------------
>>> +# Prepare
>>> +# ----------------------------------------------------------------------------
>>> +
>>> +LINUX_FIRMWARE_CONF_TOOL	:= NO
>>> +
>>> +# ----------------------------------------------------------------------------
>>> +# Compile
>>> +# ----------------------------------------------------------------------------
>>> +
>>> +$(STATEDIR)/linux-firmware.compile:
>>> +	@$(call targetinfo)
>>> +	@$(call touch)
>>> +
>>> +# ----------------------------------------------------------------------------
>>> +# Install
>>> +# ----------------------------------------------------------------------------
>>> +
>>> +$(STATEDIR)/linux-firmware.install:
>>> +	@$(call targetinfo)
>>> +	@$(call world/install, LINUX_FIRMWARE)
>>> +ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
>>> +	@find $(LINUX_FIRMWARE_PKGDIR) -type f \
>>> +	-not -name "*.xz" \
>>> +	-not -name "*.ucode" \
>>> +	-exec echo "Compressing " "{}" "..." \; \
>>> +	-exec xz -C crc32 "{}" \;
>>> +endif
>>> +	@$(call touch)
>>> +
>>> +# ----------------------------------------------------------------------------
>>> +# Target-Install
>>> +# ----------------------------------------------------------------------------
>>> +
>>> +$(STATEDIR)/linux-firmware.targetinstall:
>>> +	@$(call targetinfo)
>>> +
>>> +	@$(call install_init, linux-firmware)
>>> +	@$(call install_fixup, linux-firmware,PRIORITY,optional)
>>> +	@$(call install_fixup, linux-firmware,SECTION,base)
>>> +	@$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
>>> +	@$(call install_fixup, linux-firmware,DESCRIPTION,missing)
>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
>>> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
>>> +endif
>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
>>> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
>>> +endif
>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
>>> +endif
>>> +endif
>>> +	@$(call install_finish, linux-firmware)
>>> +
>>> +	@$(call touch)
>>> +
>>> +# vim: syntax=make
>>> -- 
>>> 2.30.2
>>>
>>>
>>> _______________________________________________
>>> ptxdist mailing list
>>> ptxdist@pengutronix.de
>>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
>>>
>>
>> -- 
>> Pengutronix e.K.                           |                             |
>> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
>> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>>
>> _______________________________________________
>> ptxdist mailing list
>> ptxdist@pengutronix.de
>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> 


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
  2021-10-16  7:21     ` Christian Melki
@ 2021-11-04 10:08       ` Christian Melki
  2021-11-04 19:16         ` Bruno Thomsen
  2021-11-05 11:05         ` Michael Olbrich
  0 siblings, 2 replies; 8+ messages in thread
From: Christian Melki @ 2021-11-04 10:08 UTC (permalink / raw)
  To: ptxdist

Bump.

No more opinions? Go? No go? Changes?

On 10/16/21 9:21 AM, Christian Melki wrote:
> On 10/15/21 21:40, Alexander Dahl wrote:
>> Hei hei,
>>
>> On Fri, Oct 15, 2021 at 04:11:11PM +0200, Michael Olbrich wrote:
>>> On Wed, Oct 13, 2021 at 08:36:31PM +0200, Christian Melki wrote:
>>>> Firmware is needed by a lot of modern devices.
>>>> Includes various radio interfaces, GPU and CPU stuff.
>>>>
>>>> Due to the large space required by some firmwares as a whole,
>>>> compression can optionally be enabled.
>>>
>>> Hmmm, I'm not sure about this. I've always dumped selected firmware files
>>> and their license into projectroot/ and created a local package. Mostly for
>>> two reasons:
>>>
>>> 1. I wanted the fine control to explicitly update individual firmware
>>> files.
>>>
>>> 2. I never found a good way to split the package options. For example,
>>> installing all iwlwifi* files seems excessive but so does adding an option
>>> for each on.
>>>
>>> Any other opinions on this?
>>
>> I can share some experience from the fli4l [1] project, but from a
>> different viewing angle.  Most firmware is not free in a FOSS licensed
>> way, so it's hard to find a generic solution, especially when getting
>> the license stuff right.  That's why we opted for free (as in under
>> FOSS license) firmware only, which means: user is responsible for
>> handling non-free firmware.
>>
>> Same thing basically applies for proprietary firmware you develop yourself.
>>
>> So I think the approach Michael suggested in this case is a useful
>> one: just put the few blobs and license stuff you need into your BSP.
>>
>> This obviously would not work if the user can plug arbitrary hardware
>> like WiFi cards, but if hardware is restricted, and most embededded
>> projects are (?), then this is no problem.
>>
>> However if you don't have control which additional hardware your users
>> plug, and you still want to support it, you would need a more generic
>> approach.
>>
>> Greets
>> Alex
>>
>> [1] https://www.fli4l.de/
>>
> 
> Hi.
> 
> I think I can clarify my raison d'être a bit.
> The kernel isn't overly informative on what it is loading or has loaded
> (history) as a default. I patch the firmware class or use dyndbg to get
> all the loaded firmware files from this standard package. From time to
> time things can be a little bit non-obvious, such as the Raven Ridge APU
> requiring a blob named Raven2-something.
> So I usually end up providing all the blobs (names do change) with the
> latest firmware package, get all the files when I'm happy with the
> configuration and filter it down. Because the whole package is rather huge.
> 
> So for my part, I still have to provide linux-firmware bits and that I
> partly go through the same thing anyway.
> 
> I agree that the *.in is rather non-optimal, but I'm open to
> suggestions. Maybe an *all* and a *filter list* once you're done is better?
> 
> Regards,
> Christian
> 
>>>
>>> Michael
>>>
>>>> Signed-off-by: Christian Melki <christian.melki@t2data.com>
>>>> ---
>>>>   rules/linux-firmware.in   | 55 ++++++++++++++++++++++
>>>>   rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
>>>>   2 files changed, 154 insertions(+)
>>>>   create mode 100644 rules/linux-firmware.in
>>>>   create mode 100644 rules/linux-firmware.make
>>>>
>>>> diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
>>>> new file mode 100644
>>>> index 000000000..1abbec6bd
>>>> --- /dev/null
>>>> +++ b/rules/linux-firmware.in
>>>> @@ -0,0 +1,55 @@
>>>> +## SECTION=system_libraries
>>>> +
>>>> +menuconfig LINUX_FIRMWARE
>>>> +	tristate
>>>> +	prompt "linux-firmware                "
>>>> +	help
>>>> +	  Linux firmware is a collection of firmwares that are used for various hardwares.
>>>> +
>>>> +if LINUX_FIRMWARE
>>>> +
>>>> +config LINUX_FIRMWARE_COMPRESSION
>>>> +	tristate
>>>> +	prompt "xz compression support"
>>>> +	select HOST_XZ
>>>> +	help
>>>> +	  Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
>>>> +
>>>> +menu "CPU Microcode"
>>>> +
>>>> +config LINUX_FIRMWARE_AMDCPU
>>>> +	bool "AMD CPU u-code"
>>>> +	help
>>>> +	  Firmware files for AMD CPUs.
>>>> +
>>>> +endmenu
>>>> +
>>>> +menu "Video firmware"
>>>> +
>>>> +config LINUX_FIRMWARE_AMDGPU
>>>> +	bool "AMD GPU video card firmware"
>>>> +	help
>>>> +	  Firmware files for AMD GPU video cards.
>>>> +	  Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
>>>> +
>>>> +if LINUX_FIRMWARE_AMDGPU
>>>> +
>>>> +menu "AMDGPU video firmware"
>>>> +
>>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
>>>> +	bool "RAVEN RIDGE APU AMD GPU video card firmware"
>>>> +	help
>>>> +	  Firmware files for RAVEN RIDGE APU AMD GPU video cards.
>>>> +
>>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
>>>> +	bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
>>>> +	help
>>>> +	  Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
>>>> +
>>>> +endmenu
>>>> +
>>>> +endif
>>>> +
>>>> +endmenu
>>>> +
>>>> +endif
>>>> diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
>>>> new file mode 100644
>>>> index 000000000..3a3a300e6
>>>> --- /dev/null
>>>> +++ b/rules/linux-firmware.make
>>>> @@ -0,0 +1,99 @@
>>>> +# -*-makefile-*-
>>>> +#
>>>> +# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
>>>> +#
>>>> +# For further information about the PTXdist project and license conditions
>>>> +# see the README file.
>>>> +#
>>>> +
>>>> +#
>>>> +# We provide this package
>>>> +#
>>>> +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
>>>> +
>>>> +#
>>>> +# Paths and names
>>>> +#
>>>> +LINUX_FIRMWARE_VERSION	:= 20210818
>>>> +LINUX_FIRMWARE_MD5	:= 736a3bbba3391d962d3c321ae04572d7
>>>> +LINUX_FIRMWARE		:= linux-firmware-$(LINUX_FIRMWARE_VERSION)
>>>> +LINUX_FIRMWARE_SUFFIX	:= tar.gz
>>>> +LINUX_FIRMWARE_URL	:= $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
>>>> +LINUX_FIRMWARE_SOURCE	:= $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
>>>> +LINUX_FIRMWARE_DIR	:= $(BUILDDIR)/$(LINUX_FIRMWARE)
>>>> +LINUX_FIRMWARE_LICENSE	:= proprietary
>>>> +LINUX_FIRMWARE_LICENSE_FILES := \
>>>> +	file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
>>>> +	file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Extract
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +$(STATEDIR)/linux-firmware.extract:
>>>> +	@$(call targetinfo)
>>>> +	@$(call clean, $(LINUX_FIRMWARE_DIR))
>>>> +	@$(call extract, LINUX_FIRMWARE)
>>>> +	@$(call patchin, LINUX_FIRMWARE)
>>>> +	@$(call touch)
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Prepare
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +LINUX_FIRMWARE_CONF_TOOL	:= NO
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Compile
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +$(STATEDIR)/linux-firmware.compile:
>>>> +	@$(call targetinfo)
>>>> +	@$(call touch)
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Install
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +$(STATEDIR)/linux-firmware.install:
>>>> +	@$(call targetinfo)
>>>> +	@$(call world/install, LINUX_FIRMWARE)
>>>> +ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
>>>> +	@find $(LINUX_FIRMWARE_PKGDIR) -type f \
>>>> +	-not -name "*.xz" \
>>>> +	-not -name "*.ucode" \
>>>> +	-exec echo "Compressing " "{}" "..." \; \
>>>> +	-exec xz -C crc32 "{}" \;
>>>> +endif
>>>> +	@$(call touch)
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Target-Install
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +$(STATEDIR)/linux-firmware.targetinstall:
>>>> +	@$(call targetinfo)
>>>> +
>>>> +	@$(call install_init, linux-firmware)
>>>> +	@$(call install_fixup, linux-firmware,PRIORITY,optional)
>>>> +	@$(call install_fixup, linux-firmware,SECTION,base)
>>>> +	@$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
>>>> +	@$(call install_fixup, linux-firmware,DESCRIPTION,missing)
>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
>>>> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
>>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
>>>> +endif
>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
>>>> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
>>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
>>>> +endif
>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
>>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
>>>> +endif
>>>> +endif
>>>> +	@$(call install_finish, linux-firmware)
>>>> +
>>>> +	@$(call touch)
>>>> +
>>>> +# vim: syntax=make
>>>> -- 
>>>> 2.30.2
>>>>
>>>>
>>>> _______________________________________________
>>>> ptxdist mailing list
>>>> ptxdist@pengutronix.de
>>>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
>>>>
>>>
>>> -- 
>>> Pengutronix e.K.                           |                             |
>>> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
>>> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
>>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>>>
>>> _______________________________________________
>>> ptxdist mailing list
>>> ptxdist@pengutronix.de
>>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
>>
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> 

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
  2021-11-04 10:08       ` Christian Melki
@ 2021-11-04 19:16         ` Bruno Thomsen
  2021-11-05 11:05         ` Michael Olbrich
  1 sibling, 0 replies; 8+ messages in thread
From: Bruno Thomsen @ 2021-11-04 19:16 UTC (permalink / raw)
  To: ptxdist

Den tor. 4. nov. 2021 kl. 11.08 skrev Christian Melki
<christian.melki@t2data.com>:
>
> Bump.
>
> No more opinions? Go? No go? Changes?
>

Hi

Thanks for submitting the first suggestion on an upstream linux-firmware rule.
I don't have the answer to what is the right solution.
It could be a menu selection as you suggested or it could be wildcard
input fields.
I know that each firmware can be under different license but that
could be solved
in the linux-firmware.make file where the menu selection like
LINUX_FIRMWARE_AMDGPU
just add the correct license to LINUX_FIRMWARE_LICENSE variable. And in case
multiple firmware options are enabled just append them.

/Bruno

> On 10/16/21 9:21 AM, Christian Melki wrote:
> > On 10/15/21 21:40, Alexander Dahl wrote:
> >> Hei hei,
> >>
> >> On Fri, Oct 15, 2021 at 04:11:11PM +0200, Michael Olbrich wrote:
> >>> On Wed, Oct 13, 2021 at 08:36:31PM +0200, Christian Melki wrote:
> >>>> Firmware is needed by a lot of modern devices.
> >>>> Includes various radio interfaces, GPU and CPU stuff.
> >>>>
> >>>> Due to the large space required by some firmwares as a whole,
> >>>> compression can optionally be enabled.
> >>>
> >>> Hmmm, I'm not sure about this. I've always dumped selected firmware files
> >>> and their license into projectroot/ and created a local package. Mostly for
> >>> two reasons:
> >>>
> >>> 1. I wanted the fine control to explicitly update individual firmware
> >>> files.
> >>>
> >>> 2. I never found a good way to split the package options. For example,
> >>> installing all iwlwifi* files seems excessive but so does adding an option
> >>> for each on.
> >>>
> >>> Any other opinions on this?
> >>
> >> I can share some experience from the fli4l [1] project, but from a
> >> different viewing angle.  Most firmware is not free in a FOSS licensed
> >> way, so it's hard to find a generic solution, especially when getting
> >> the license stuff right.  That's why we opted for free (as in under
> >> FOSS license) firmware only, which means: user is responsible for
> >> handling non-free firmware.
> >>
> >> Same thing basically applies for proprietary firmware you develop yourself.
> >>
> >> So I think the approach Michael suggested in this case is a useful
> >> one: just put the few blobs and license stuff you need into your BSP.
> >>
> >> This obviously would not work if the user can plug arbitrary hardware
> >> like WiFi cards, but if hardware is restricted, and most embededded
> >> projects are (?), then this is no problem.
> >>
> >> However if you don't have control which additional hardware your users
> >> plug, and you still want to support it, you would need a more generic
> >> approach.
> >>
> >> Greets
> >> Alex
> >>
> >> [1] https://www.fli4l.de/
> >>
> >
> > Hi.
> >
> > I think I can clarify my raison d'être a bit.
> > The kernel isn't overly informative on what it is loading or has loaded
> > (history) as a default. I patch the firmware class or use dyndbg to get
> > all the loaded firmware files from this standard package. From time to
> > time things can be a little bit non-obvious, such as the Raven Ridge APU
> > requiring a blob named Raven2-something.
> > So I usually end up providing all the blobs (names do change) with the
> > latest firmware package, get all the files when I'm happy with the
> > configuration and filter it down. Because the whole package is rather huge.
> >
> > So for my part, I still have to provide linux-firmware bits and that I
> > partly go through the same thing anyway.
> >
> > I agree that the *.in is rather non-optimal, but I'm open to
> > suggestions. Maybe an *all* and a *filter list* once you're done is better?
> >
> > Regards,
> > Christian
> >
> >>>
> >>> Michael
> >>>
> >>>> Signed-off-by: Christian Melki <christian.melki@t2data.com>
> >>>> ---
> >>>>   rules/linux-firmware.in   | 55 ++++++++++++++++++++++
> >>>>   rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
> >>>>   2 files changed, 154 insertions(+)
> >>>>   create mode 100644 rules/linux-firmware.in
> >>>>   create mode 100644 rules/linux-firmware.make
> >>>>
> >>>> diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
> >>>> new file mode 100644
> >>>> index 000000000..1abbec6bd
> >>>> --- /dev/null
> >>>> +++ b/rules/linux-firmware.in
> >>>> @@ -0,0 +1,55 @@
> >>>> +## SECTION=system_libraries
> >>>> +
> >>>> +menuconfig LINUX_FIRMWARE
> >>>> +  tristate
> >>>> +  prompt "linux-firmware                "
> >>>> +  help
> >>>> +    Linux firmware is a collection of firmwares that are used for various hardwares.
> >>>> +
> >>>> +if LINUX_FIRMWARE
> >>>> +
> >>>> +config LINUX_FIRMWARE_COMPRESSION
> >>>> +  tristate
> >>>> +  prompt "xz compression support"
> >>>> +  select HOST_XZ
> >>>> +  help
> >>>> +    Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
> >>>> +
> >>>> +menu "CPU Microcode"
> >>>> +
> >>>> +config LINUX_FIRMWARE_AMDCPU
> >>>> +  bool "AMD CPU u-code"
> >>>> +  help
> >>>> +    Firmware files for AMD CPUs.
> >>>> +
> >>>> +endmenu
> >>>> +
> >>>> +menu "Video firmware"
> >>>> +
> >>>> +config LINUX_FIRMWARE_AMDGPU
> >>>> +  bool "AMD GPU video card firmware"
> >>>> +  help
> >>>> +    Firmware files for AMD GPU video cards.
> >>>> +    Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
> >>>> +
> >>>> +if LINUX_FIRMWARE_AMDGPU
> >>>> +
> >>>> +menu "AMDGPU video firmware"
> >>>> +
> >>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> >>>> +  bool "RAVEN RIDGE APU AMD GPU video card firmware"
> >>>> +  help
> >>>> +    Firmware files for RAVEN RIDGE APU AMD GPU video cards.
> >>>> +
> >>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> >>>> +  bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
> >>>> +  help
> >>>> +    Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
> >>>> +
> >>>> +endmenu
> >>>> +
> >>>> +endif
> >>>> +
> >>>> +endmenu
> >>>> +
> >>>> +endif
> >>>> diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
> >>>> new file mode 100644
> >>>> index 000000000..3a3a300e6
> >>>> --- /dev/null
> >>>> +++ b/rules/linux-firmware.make
> >>>> @@ -0,0 +1,99 @@
> >>>> +# -*-makefile-*-
> >>>> +#
> >>>> +# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
> >>>> +#
> >>>> +# For further information about the PTXdist project and license conditions
> >>>> +# see the README file.
> >>>> +#
> >>>> +
> >>>> +#
> >>>> +# We provide this package
> >>>> +#
> >>>> +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
> >>>> +
> >>>> +#
> >>>> +# Paths and names
> >>>> +#
> >>>> +LINUX_FIRMWARE_VERSION    := 20210818
> >>>> +LINUX_FIRMWARE_MD5        := 736a3bbba3391d962d3c321ae04572d7
> >>>> +LINUX_FIRMWARE            := linux-firmware-$(LINUX_FIRMWARE_VERSION)
> >>>> +LINUX_FIRMWARE_SUFFIX     := tar.gz
> >>>> +LINUX_FIRMWARE_URL        := $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
> >>>> +LINUX_FIRMWARE_SOURCE     := $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
> >>>> +LINUX_FIRMWARE_DIR        := $(BUILDDIR)/$(LINUX_FIRMWARE)
> >>>> +LINUX_FIRMWARE_LICENSE    := proprietary
> >>>> +LINUX_FIRMWARE_LICENSE_FILES := \
> >>>> +  file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
> >>>> +  file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
> >>>> +
> >>>> +# ----------------------------------------------------------------------------
> >>>> +# Extract
> >>>> +# ----------------------------------------------------------------------------
> >>>> +
> >>>> +$(STATEDIR)/linux-firmware.extract:
> >>>> +  @$(call targetinfo)
> >>>> +  @$(call clean, $(LINUX_FIRMWARE_DIR))
> >>>> +  @$(call extract, LINUX_FIRMWARE)
> >>>> +  @$(call patchin, LINUX_FIRMWARE)
> >>>> +  @$(call touch)
> >>>> +
> >>>> +# ----------------------------------------------------------------------------
> >>>> +# Prepare
> >>>> +# ----------------------------------------------------------------------------
> >>>> +
> >>>> +LINUX_FIRMWARE_CONF_TOOL  := NO
> >>>> +
> >>>> +# ----------------------------------------------------------------------------
> >>>> +# Compile
> >>>> +# ----------------------------------------------------------------------------
> >>>> +
> >>>> +$(STATEDIR)/linux-firmware.compile:
> >>>> +  @$(call targetinfo)
> >>>> +  @$(call touch)
> >>>> +
> >>>> +# ----------------------------------------------------------------------------
> >>>> +# Install
> >>>> +# ----------------------------------------------------------------------------
> >>>> +
> >>>> +$(STATEDIR)/linux-firmware.install:
> >>>> +  @$(call targetinfo)
> >>>> +  @$(call world/install, LINUX_FIRMWARE)
> >>>> +ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
> >>>> +  @find $(LINUX_FIRMWARE_PKGDIR) -type f \
> >>>> +  -not -name "*.xz" \
> >>>> +  -not -name "*.ucode" \
> >>>> +  -exec echo "Compressing " "{}" "..." \; \
> >>>> +  -exec xz -C crc32 "{}" \;
> >>>> +endif
> >>>> +  @$(call touch)
> >>>> +
> >>>> +# ----------------------------------------------------------------------------
> >>>> +# Target-Install
> >>>> +# ----------------------------------------------------------------------------
> >>>> +
> >>>> +$(STATEDIR)/linux-firmware.targetinstall:
> >>>> +  @$(call targetinfo)
> >>>> +
> >>>> +  @$(call install_init, linux-firmware)
> >>>> +  @$(call install_fixup, linux-firmware,PRIORITY,optional)
> >>>> +  @$(call install_fixup, linux-firmware,SECTION,base)
> >>>> +  @$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
> >>>> +  @$(call install_fixup, linux-firmware,DESCRIPTION,missing)
> >>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
> >>>> +  @$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
> >>>> +  @$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
> >>>> +endif
> >>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
> >>>> +  @$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
> >>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> >>>> +  @$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
> >>>> +endif
> >>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> >>>> +  @$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
> >>>> +endif
> >>>> +endif
> >>>> +  @$(call install_finish, linux-firmware)
> >>>> +
> >>>> +  @$(call touch)
> >>>> +
> >>>> +# vim: syntax=make
> >>>> --
> >>>> 2.30.2
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> ptxdist mailing list
> >>>> ptxdist@pengutronix.de
> >>>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> >>>>
> >>>
> >>> --
> >>> Pengutronix e.K.                           |                             |
> >>> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> >>> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> >>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> >>>
> >>> _______________________________________________
> >>> ptxdist mailing list
> >>> ptxdist@pengutronix.de
> >>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> >>
> >
> >
> > _______________________________________________
> > ptxdist mailing list
> > ptxdist@pengutronix.de
> > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> >
>
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
  2021-11-04 10:08       ` Christian Melki
  2021-11-04 19:16         ` Bruno Thomsen
@ 2021-11-05 11:05         ` Michael Olbrich
  2022-01-18  8:46           ` Christian Melki
  1 sibling, 1 reply; 8+ messages in thread
From: Michael Olbrich @ 2021-11-05 11:05 UTC (permalink / raw)
  To: Christian Melki; +Cc: ptxdist

On Thu, Nov 04, 2021 at 11:08:02AM +0100, Christian Melki wrote:
> Bump.
> 
> No more opinions? Go? No go? Changes?
> 
> On 10/16/21 9:21 AM, Christian Melki wrote:
> > On 10/15/21 21:40, Alexander Dahl wrote:
> > > Hei hei,
> > > 
> > > On Fri, Oct 15, 2021 at 04:11:11PM +0200, Michael Olbrich wrote:
> > > > On Wed, Oct 13, 2021 at 08:36:31PM +0200, Christian Melki wrote:
> > > > > Firmware is needed by a lot of modern devices.
> > > > > Includes various radio interfaces, GPU and CPU stuff.
> > > > > 
> > > > > Due to the large space required by some firmwares as a whole,
> > > > > compression can optionally be enabled.
> > > > 
> > > > Hmmm, I'm not sure about this. I've always dumped selected firmware files
> > > > and their license into projectroot/ and created a local package. Mostly for
> > > > two reasons:
> > > > 
> > > > 1. I wanted the fine control to explicitly update individual firmware
> > > > files.
> > > > 
> > > > 2. I never found a good way to split the package options. For example,
> > > > installing all iwlwifi* files seems excessive but so does adding an option
> > > > for each on.
> > > > 
> > > > Any other opinions on this?
> > > 
> > > I can share some experience from the fli4l [1] project, but from a
> > > different viewing angle.  Most firmware is not free in a FOSS licensed
> > > way, so it's hard to find a generic solution, especially when getting
> > > the license stuff right.  That's why we opted for free (as in under
> > > FOSS license) firmware only, which means: user is responsible for
> > > handling non-free firmware.
> > > 
> > > Same thing basically applies for proprietary firmware you develop yourself.
> > > 
> > > So I think the approach Michael suggested in this case is a useful
> > > one: just put the few blobs and license stuff you need into your BSP.
> > > 
> > > This obviously would not work if the user can plug arbitrary hardware
> > > like WiFi cards, but if hardware is restricted, and most embededded
> > > projects are (?), then this is no problem.
> > > 
> > > However if you don't have control which additional hardware your users
> > > plug, and you still want to support it, you would need a more generic
> > > approach.
> > > 
> > > Greets
> > > Alex
> > > 
> > > [1] https://www.fli4l.de/
> > > 
> > 
> > Hi.
> > 
> > I think I can clarify my raison d'être a bit.
> > The kernel isn't overly informative on what it is loading or has loaded
> > (history) as a default. I patch the firmware class or use dyndbg to get
> > all the loaded firmware files from this standard package. From time to
> > time things can be a little bit non-obvious, such as the Raven Ridge APU
> > requiring a blob named Raven2-something.
> > So I usually end up providing all the blobs (names do change) with the
> > latest firmware package, get all the files when I'm happy with the
> > configuration and filter it down. Because the whole package is rather huge.
> > 
> > So for my part, I still have to provide linux-firmware bits and that I
> > partly go through the same thing anyway.
> > 
> > I agree that the *.in is rather non-optimal, but I'm open to
> > suggestions. Maybe an *all* and a *filter list* once you're done is better?

All and a filter makes sense. How about this:

Install with install_glob and use * as default glob. Allow custom globs
from the config.

List all licenses in LINUX_FIRMWARE_LICENSE_FILES. Use a config option to
allow listing just the file names, and then:

LINUX_FIRMWARE_SELECTED_LICENCES := $(call remove_quotes, PTXCONF_LINUX_FIRMWARE_LICENCES)
ifneq ($(LINUX_FIRMWARE_SELECTED_LICENCES),)
LINUX_FIRMWARE_LICENSE_FILES := $(filter $(addsuffix %,$(addprefix file://,$(LINUX_FIRMWARE_SELECTED_LICENCES))),$(LINUX_FIRMWARE_LICENSE_FILES))
endif

Michael


> > Regards,
> > Christian
> > 
> > > > 
> > > > Michael
> > > > 
> > > > > Signed-off-by: Christian Melki <christian.melki@t2data.com>
> > > > > ---
> > > > >   rules/linux-firmware.in   | 55 ++++++++++++++++++++++
> > > > >   rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
> > > > >   2 files changed, 154 insertions(+)
> > > > >   create mode 100644 rules/linux-firmware.in
> > > > >   create mode 100644 rules/linux-firmware.make
> > > > > 
> > > > > diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
> > > > > new file mode 100644
> > > > > index 000000000..1abbec6bd
> > > > > --- /dev/null
> > > > > +++ b/rules/linux-firmware.in
> > > > > @@ -0,0 +1,55 @@
> > > > > +## SECTION=system_libraries
> > > > > +
> > > > > +menuconfig LINUX_FIRMWARE
> > > > > +	tristate
> > > > > +	prompt "linux-firmware                "
> > > > > +	help
> > > > > +	  Linux firmware is a collection of firmwares that are used for various hardwares.
> > > > > +
> > > > > +if LINUX_FIRMWARE
> > > > > +
> > > > > +config LINUX_FIRMWARE_COMPRESSION
> > > > > +	tristate
> > > > > +	prompt "xz compression support"
> > > > > +	select HOST_XZ
> > > > > +	help
> > > > > +	  Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
> > > > > +
> > > > > +menu "CPU Microcode"
> > > > > +
> > > > > +config LINUX_FIRMWARE_AMDCPU
> > > > > +	bool "AMD CPU u-code"
> > > > > +	help
> > > > > +	  Firmware files for AMD CPUs.
> > > > > +
> > > > > +endmenu
> > > > > +
> > > > > +menu "Video firmware"
> > > > > +
> > > > > +config LINUX_FIRMWARE_AMDGPU
> > > > > +	bool "AMD GPU video card firmware"
> > > > > +	help
> > > > > +	  Firmware files for AMD GPU video cards.
> > > > > +	  Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
> > > > > +
> > > > > +if LINUX_FIRMWARE_AMDGPU
> > > > > +
> > > > > +menu "AMDGPU video firmware"
> > > > > +
> > > > > +config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> > > > > +	bool "RAVEN RIDGE APU AMD GPU video card firmware"
> > > > > +	help
> > > > > +	  Firmware files for RAVEN RIDGE APU AMD GPU video cards.
> > > > > +
> > > > > +config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> > > > > +	bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
> > > > > +	help
> > > > > +	  Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
> > > > > +
> > > > > +endmenu
> > > > > +
> > > > > +endif
> > > > > +
> > > > > +endmenu
> > > > > +
> > > > > +endif
> > > > > diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
> > > > > new file mode 100644
> > > > > index 000000000..3a3a300e6
> > > > > --- /dev/null
> > > > > +++ b/rules/linux-firmware.make
> > > > > @@ -0,0 +1,99 @@
> > > > > +# -*-makefile-*-
> > > > > +#
> > > > > +# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
> > > > > +#
> > > > > +# For further information about the PTXdist project and license conditions
> > > > > +# see the README file.
> > > > > +#
> > > > > +
> > > > > +#
> > > > > +# We provide this package
> > > > > +#
> > > > > +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
> > > > > +
> > > > > +#
> > > > > +# Paths and names
> > > > > +#
> > > > > +LINUX_FIRMWARE_VERSION	:= 20210818
> > > > > +LINUX_FIRMWARE_MD5	:= 736a3bbba3391d962d3c321ae04572d7
> > > > > +LINUX_FIRMWARE		:= linux-firmware-$(LINUX_FIRMWARE_VERSION)
> > > > > +LINUX_FIRMWARE_SUFFIX	:= tar.gz
> > > > > +LINUX_FIRMWARE_URL	:= $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
> > > > > +LINUX_FIRMWARE_SOURCE	:= $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
> > > > > +LINUX_FIRMWARE_DIR	:= $(BUILDDIR)/$(LINUX_FIRMWARE)
> > > > > +LINUX_FIRMWARE_LICENSE	:= proprietary
> > > > > +LINUX_FIRMWARE_LICENSE_FILES := \
> > > > > +	file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
> > > > > +	file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
> > > > > +
> > > > > +# ----------------------------------------------------------------------------
> > > > > +# Extract
> > > > > +# ----------------------------------------------------------------------------
> > > > > +
> > > > > +$(STATEDIR)/linux-firmware.extract:
> > > > > +	@$(call targetinfo)
> > > > > +	@$(call clean, $(LINUX_FIRMWARE_DIR))
> > > > > +	@$(call extract, LINUX_FIRMWARE)
> > > > > +	@$(call patchin, LINUX_FIRMWARE)
> > > > > +	@$(call touch)
> > > > > +
> > > > > +# ----------------------------------------------------------------------------
> > > > > +# Prepare
> > > > > +# ----------------------------------------------------------------------------
> > > > > +
> > > > > +LINUX_FIRMWARE_CONF_TOOL	:= NO
> > > > > +
> > > > > +# ----------------------------------------------------------------------------
> > > > > +# Compile
> > > > > +# ----------------------------------------------------------------------------
> > > > > +
> > > > > +$(STATEDIR)/linux-firmware.compile:
> > > > > +	@$(call targetinfo)
> > > > > +	@$(call touch)
> > > > > +
> > > > > +# ----------------------------------------------------------------------------
> > > > > +# Install
> > > > > +# ----------------------------------------------------------------------------
> > > > > +
> > > > > +$(STATEDIR)/linux-firmware.install:
> > > > > +	@$(call targetinfo)
> > > > > +	@$(call world/install, LINUX_FIRMWARE)
> > > > > +ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
> > > > > +	@find $(LINUX_FIRMWARE_PKGDIR) -type f \
> > > > > +	-not -name "*.xz" \
> > > > > +	-not -name "*.ucode" \
> > > > > +	-exec echo "Compressing " "{}" "..." \; \
> > > > > +	-exec xz -C crc32 "{}" \;
> > > > > +endif
> > > > > +	@$(call touch)
> > > > > +
> > > > > +# ----------------------------------------------------------------------------
> > > > > +# Target-Install
> > > > > +# ----------------------------------------------------------------------------
> > > > > +
> > > > > +$(STATEDIR)/linux-firmware.targetinstall:
> > > > > +	@$(call targetinfo)
> > > > > +
> > > > > +	@$(call install_init, linux-firmware)
> > > > > +	@$(call install_fixup, linux-firmware,PRIORITY,optional)
> > > > > +	@$(call install_fixup, linux-firmware,SECTION,base)
> > > > > +	@$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
> > > > > +	@$(call install_fixup, linux-firmware,DESCRIPTION,missing)
> > > > > +ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
> > > > > +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
> > > > > +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
> > > > > +endif
> > > > > +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
> > > > > +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
> > > > > +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
> > > > > +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
> > > > > +endif
> > > > > +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
> > > > > +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
> > > > > +endif
> > > > > +endif
> > > > > +	@$(call install_finish, linux-firmware)
> > > > > +
> > > > > +	@$(call touch)
> > > > > +
> > > > > +# vim: syntax=make
> > > > > -- 
> > > > > 2.30.2
> > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > > ptxdist mailing list
> > > > > ptxdist@pengutronix.de
> > > > > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> > > > > 
> > > > 
> > > > -- 
> > > > Pengutronix e.K.                           |                             |
> > > > Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> > > > 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> > > > Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
> > > > 
> > > > _______________________________________________
> > > > ptxdist mailing list
> > > > ptxdist@pengutronix.de
> > > > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> > > 
> > 
> > 
> > _______________________________________________
> > ptxdist mailing list
> > ptxdist@pengutronix.de
> > To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> > 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818
  2021-11-05 11:05         ` Michael Olbrich
@ 2022-01-18  8:46           ` Christian Melki
  0 siblings, 0 replies; 8+ messages in thread
From: Christian Melki @ 2022-01-18  8:46 UTC (permalink / raw)
  To: ptxdist; +Cc: m.olbrich

On 11/5/21 12:05 PM, Michael Olbrich wrote:
> On Thu, Nov 04, 2021 at 11:08:02AM +0100, Christian Melki wrote:
>> Bump.
>>
>> No more opinions? Go? No go? Changes?
>>
>> On 10/16/21 9:21 AM, Christian Melki wrote:
>>> On 10/15/21 21:40, Alexander Dahl wrote:
>>>> Hei hei,
>>>>
>>>> On Fri, Oct 15, 2021 at 04:11:11PM +0200, Michael Olbrich wrote:
>>>>> On Wed, Oct 13, 2021 at 08:36:31PM +0200, Christian Melki wrote:
>>>>>> Firmware is needed by a lot of modern devices.
>>>>>> Includes various radio interfaces, GPU and CPU stuff.
>>>>>>
>>>>>> Due to the large space required by some firmwares as a whole,
>>>>>> compression can optionally be enabled.
>>>>>
>>>>> Hmmm, I'm not sure about this. I've always dumped selected firmware files
>>>>> and their license into projectroot/ and created a local package. Mostly for
>>>>> two reasons:
>>>>>
>>>>> 1. I wanted the fine control to explicitly update individual firmware
>>>>> files.
>>>>>
>>>>> 2. I never found a good way to split the package options. For example,
>>>>> installing all iwlwifi* files seems excessive but so does adding an option
>>>>> for each on.
>>>>>
>>>>> Any other opinions on this?
>>>>
>>>> I can share some experience from the fli4l [1] project, but from a
>>>> different viewing angle.  Most firmware is not free in a FOSS licensed
>>>> way, so it's hard to find a generic solution, especially when getting
>>>> the license stuff right.  That's why we opted for free (as in under
>>>> FOSS license) firmware only, which means: user is responsible for
>>>> handling non-free firmware.
>>>>
>>>> Same thing basically applies for proprietary firmware you develop yourself.
>>>>
>>>> So I think the approach Michael suggested in this case is a useful
>>>> one: just put the few blobs and license stuff you need into your BSP.
>>>>
>>>> This obviously would not work if the user can plug arbitrary hardware
>>>> like WiFi cards, but if hardware is restricted, and most embededded
>>>> projects are (?), then this is no problem.
>>>>
>>>> However if you don't have control which additional hardware your users
>>>> plug, and you still want to support it, you would need a more generic
>>>> approach.
>>>>
>>>> Greets
>>>> Alex
>>>>
>>>> [1] https://www.fli4l.de/
>>>>
>>>
>>> Hi.
>>>
>>> I think I can clarify my raison d'être a bit.
>>> The kernel isn't overly informative on what it is loading or has loaded
>>> (history) as a default. I patch the firmware class or use dyndbg to get
>>> all the loaded firmware files from this standard package. From time to
>>> time things can be a little bit non-obvious, such as the Raven Ridge APU
>>> requiring a blob named Raven2-something.
>>> So I usually end up providing all the blobs (names do change) with the
>>> latest firmware package, get all the files when I'm happy with the
>>> configuration and filter it down. Because the whole package is rather huge.
>>>
>>> So for my part, I still have to provide linux-firmware bits and that I
>>> partly go through the same thing anyway.
>>>
>>> I agree that the *.in is rather non-optimal, but I'm open to
>>> suggestions. Maybe an *all* and a *filter list* once you're done is better?
> 
> All and a filter makes sense. How about this:
> 
> Install with install_glob and use * as default glob. Allow custom globs
> from the config.
> 
> List all licenses in LINUX_FIRMWARE_LICENSE_FILES. Use a config option to
> allow listing just the file names, and then:
> 
> LINUX_FIRMWARE_SELECTED_LICENCES := $(call remove_quotes, PTXCONF_LINUX_FIRMWARE_LICENCES)
> ifneq ($(LINUX_FIRMWARE_SELECTED_LICENCES),)
> LINUX_FIRMWARE_LICENSE_FILES := $(filter $(addsuffix %,$(addprefix file://,$(LINUX_FIRMWARE_SELECTED_LICENCES))),$(LINUX_FIRMWARE_LICENSE_FILES))
> endif
> 
> Michael
> 

Hi Michael,

I need to get back to this and get it sorted.
Trying to figure out what you are suggesting here.
Sorry, being a bit slow now. :)

There is no strict relation between firmware file names and licence file 
names beside some random name resemblance.

I don't understand how you suggest I pick the license files
from the firmware file names?
Or do you mean that one should choose licenses from a long list of tick 
options for ptxdist to filter into the used ones?

That plus manually selecting the actual firmware files.

Regards,
Christian

> 
>>> Regards,
>>> Christian
>>>
>>>>>
>>>>> Michael
>>>>>
>>>>>> Signed-off-by: Christian Melki <christian.melki@t2data.com>
>>>>>> ---
>>>>>>    rules/linux-firmware.in   | 55 ++++++++++++++++++++++
>>>>>>    rules/linux-firmware.make | 99 +++++++++++++++++++++++++++++++++++++++
>>>>>>    2 files changed, 154 insertions(+)
>>>>>>    create mode 100644 rules/linux-firmware.in
>>>>>>    create mode 100644 rules/linux-firmware.make
>>>>>>
>>>>>> diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
>>>>>> new file mode 100644
>>>>>> index 000000000..1abbec6bd
>>>>>> --- /dev/null
>>>>>> +++ b/rules/linux-firmware.in
>>>>>> @@ -0,0 +1,55 @@
>>>>>> +## SECTION=system_libraries
>>>>>> +
>>>>>> +menuconfig LINUX_FIRMWARE
>>>>>> +	tristate
>>>>>> +	prompt "linux-firmware                "
>>>>>> +	help
>>>>>> +	  Linux firmware is a collection of firmwares that are used for various hardwares.
>>>>>> +
>>>>>> +if LINUX_FIRMWARE
>>>>>> +
>>>>>> +config LINUX_FIRMWARE_COMPRESSION
>>>>>> +	tristate
>>>>>> +	prompt "xz compression support"
>>>>>> +	select HOST_XZ
>>>>>> +	help
>>>>>> +	  Linux firmware files can be compressed with xz. Needs a linux kernel >= 5.3
>>>>>> +
>>>>>> +menu "CPU Microcode"
>>>>>> +
>>>>>> +config LINUX_FIRMWARE_AMDCPU
>>>>>> +	bool "AMD CPU u-code"
>>>>>> +	help
>>>>>> +	  Firmware files for AMD CPUs.
>>>>>> +
>>>>>> +endmenu
>>>>>> +
>>>>>> +menu "Video firmware"
>>>>>> +
>>>>>> +config LINUX_FIRMWARE_AMDGPU
>>>>>> +	bool "AMD GPU video card firmware"
>>>>>> +	help
>>>>>> +	  Firmware files for AMD GPU video cards.
>>>>>> +	  Indexed according to https://wiki.gentoo.org/wiki/AMDGPU
>>>>>> +
>>>>>> +if LINUX_FIRMWARE_AMDGPU
>>>>>> +
>>>>>> +menu "AMDGPU video firmware"
>>>>>> +
>>>>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
>>>>>> +	bool "RAVEN RIDGE APU AMD GPU video card firmware"
>>>>>> +	help
>>>>>> +	  Firmware files for RAVEN RIDGE APU AMD GPU video cards.
>>>>>> +
>>>>>> +config LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
>>>>>> +	bool "RAVEN2 VEGA MOBILE AMD GPU video card firmware"
>>>>>> +	help
>>>>>> +	  Firmware files for RAVEN2 VEGA MOBILE AMD GPU video cards.
>>>>>> +
>>>>>> +endmenu
>>>>>> +
>>>>>> +endif
>>>>>> +
>>>>>> +endmenu
>>>>>> +
>>>>>> +endif
>>>>>> diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
>>>>>> new file mode 100644
>>>>>> index 000000000..3a3a300e6
>>>>>> --- /dev/null
>>>>>> +++ b/rules/linux-firmware.make
>>>>>> @@ -0,0 +1,99 @@
>>>>>> +# -*-makefile-*-
>>>>>> +#
>>>>>> +# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
>>>>>> +#
>>>>>> +# For further information about the PTXdist project and license conditions
>>>>>> +# see the README file.
>>>>>> +#
>>>>>> +
>>>>>> +#
>>>>>> +# We provide this package
>>>>>> +#
>>>>>> +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
>>>>>> +
>>>>>> +#
>>>>>> +# Paths and names
>>>>>> +#
>>>>>> +LINUX_FIRMWARE_VERSION	:= 20210818
>>>>>> +LINUX_FIRMWARE_MD5	:= 736a3bbba3391d962d3c321ae04572d7
>>>>>> +LINUX_FIRMWARE		:= linux-firmware-$(LINUX_FIRMWARE_VERSION)
>>>>>> +LINUX_FIRMWARE_SUFFIX	:= tar.gz
>>>>>> +LINUX_FIRMWARE_URL	:= $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
>>>>>> +LINUX_FIRMWARE_SOURCE	:= $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
>>>>>> +LINUX_FIRMWARE_DIR	:= $(BUILDDIR)/$(LINUX_FIRMWARE)
>>>>>> +LINUX_FIRMWARE_LICENSE	:= proprietary
>>>>>> +LINUX_FIRMWARE_LICENSE_FILES := \
>>>>>> +	file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
>>>>>> +	file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f
>>>>>> +
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +# Extract
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +
>>>>>> +$(STATEDIR)/linux-firmware.extract:
>>>>>> +	@$(call targetinfo)
>>>>>> +	@$(call clean, $(LINUX_FIRMWARE_DIR))
>>>>>> +	@$(call extract, LINUX_FIRMWARE)
>>>>>> +	@$(call patchin, LINUX_FIRMWARE)
>>>>>> +	@$(call touch)
>>>>>> +
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +# Prepare
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +
>>>>>> +LINUX_FIRMWARE_CONF_TOOL	:= NO
>>>>>> +
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +# Compile
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +
>>>>>> +$(STATEDIR)/linux-firmware.compile:
>>>>>> +	@$(call targetinfo)
>>>>>> +	@$(call touch)
>>>>>> +
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +# Install
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +
>>>>>> +$(STATEDIR)/linux-firmware.install:
>>>>>> +	@$(call targetinfo)
>>>>>> +	@$(call world/install, LINUX_FIRMWARE)
>>>>>> +ifdef PTXCONF_LINUX_FIRMWARE_COMPRESSION
>>>>>> +	@find $(LINUX_FIRMWARE_PKGDIR) -type f \
>>>>>> +	-not -name "*.xz" \
>>>>>> +	-not -name "*.ucode" \
>>>>>> +	-exec echo "Compressing " "{}" "..." \; \
>>>>>> +	-exec xz -C crc32 "{}" \;
>>>>>> +endif
>>>>>> +	@$(call touch)
>>>>>> +
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +# Target-Install
>>>>>> +# ----------------------------------------------------------------------------
>>>>>> +
>>>>>> +$(STATEDIR)/linux-firmware.targetinstall:
>>>>>> +	@$(call targetinfo)
>>>>>> +
>>>>>> +	@$(call install_init, linux-firmware)
>>>>>> +	@$(call install_fixup, linux-firmware,PRIORITY,optional)
>>>>>> +	@$(call install_fixup, linux-firmware,SECTION,base)
>>>>>> +	@$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
>>>>>> +	@$(call install_fixup, linux-firmware,DESCRIPTION,missing)
>>>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDCPU
>>>>>> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amd-ucode)
>>>>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amd-ucode, *)
>>>>>> +endif
>>>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU
>>>>>> +	@$(call install_copy, linux-firmware, 0, 0, 0755, /lib/firmware/amdgpu)
>>>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN_RIDGE_APU
>>>>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven_*)
>>>>>> +endif
>>>>>> +ifdef PTXCONF_LINUX_FIRMWARE_AMDGPU_RAVEN2_VEGA_MOBILE
>>>>>> +	@$(call install_glob, linux-firmware, 0, 0, -, /lib/firmware/amdgpu, *raven2*)
>>>>>> +endif
>>>>>> +endif
>>>>>> +	@$(call install_finish, linux-firmware)
>>>>>> +
>>>>>> +	@$(call touch)
>>>>>> +
>>>>>> +# vim: syntax=make
>>>>>> -- 
>>>>>> 2.30.2
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> ptxdist mailing list
>>>>>> ptxdist@pengutronix.de
>>>>>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
>>>>>>
>>>>>
>>>>> -- 
>>>>> Pengutronix e.K.                           |                             |
>>>>> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
>>>>> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
>>>>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>>>>>
>>>>> _______________________________________________
>>>>> ptxdist mailing list
>>>>> ptxdist@pengutronix.de
>>>>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
>>>>
>>>
>>>
>>> _______________________________________________
>>> ptxdist mailing list
>>> ptxdist@pengutronix.de
>>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
>>>
>>
>> _______________________________________________
>> ptxdist mailing list
>> ptxdist@pengutronix.de
>> To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de
> 

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-01-18  8:48 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-13 18:36 [ptxdist] [PATCH] linux-firmware: Add new package. Version 20210818 Christian Melki
2021-10-15 14:11 ` Michael Olbrich
2021-10-15 19:40   ` Alexander Dahl
2021-10-16  7:21     ` Christian Melki
2021-11-04 10:08       ` Christian Melki
2021-11-04 19:16         ` Bruno Thomsen
2021-11-05 11:05         ` Michael Olbrich
2022-01-18  8:46           ` Christian Melki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox