From 340e3dc4537522f44f3b8247d90b132e8e293948 Mon Sep 17 00:00:00 2001 From: Cedric DOURLENT Date: Fri, 1 Mar 2024 16:42:34 +0100 Subject: [PATCH 01/10] build: fix kernel component in CycloneDX SBOM As stated in the cycloneDX documentation, the field "type" is mandatory for all components. More details here (https://cyclonedx.org/docs/1.5/json/#components_items_type) Signed-off-by: Cedric DOURLENT (cherry picked from commit 84331215e57090a9cdae4af75af2539c39cd7de7) --- scripts/package-metadata.pl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl index bc61577d22..b4855ce67a 100755 --- a/scripts/package-metadata.pl +++ b/scripts/package-metadata.pl @@ -675,6 +675,7 @@ sub gen_image_cyclonedxsbom() { license => "GPL-2.0", cpe_id => "cpe:/o:linux:linux_kernel", name => "kernel", + category => "operating-system", }; my %abimap; @@ -703,6 +704,7 @@ sub gen_image_cyclonedxsbom() { if ($pkg->{category}) { my $category = $pkg->{category}; my %cat_type = ( + "operating-system" => "operating-system", "Firmware" => "firmware", "Libraries" => "library" ); From f2366d75cf7b74239fc3f26f45d577ca4aa3a067 Mon Sep 17 00:00:00 2001 From: Florian Eckert Date: Wed, 19 Jul 2023 11:54:25 +0200 Subject: [PATCH 02/10] .gitignore: ignore link if target is included from feed If an out of tree target is included via a feed, then there is a link with the name 'feed' in the target directory. Do not show this link in git. Signed-off-by: Florian Eckert (cherry picked from commit 13e7a2d19f4545170a8deaab03411bc37182f7c4) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index a80cdbbea3..84cfc99770 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ /feeds /feeds.conf /files +/target/linux/feeds /overlay /package/feeds /package/openwrt-packages From 726d4be297311f87a4d1947b3ae2c1bf6bed75ac Mon Sep 17 00:00:00 2001 From: CheWei Chien Date: Thu, 4 Jan 2024 13:28:40 +0800 Subject: [PATCH 03/10] kernel: add kmod-leds-lp5562 and kmod-leds-lp55xx-common Add kernel module for lp5562 LED driver. The kmod-leds-lp5562 depends on kmod-leds-lp55xx-common. Signed-off-by: CheWei Chien (cherry picked from commit b33fa6ac9065028046016ea631f6be0926d7abd0) --- package/kernel/linux/modules/leds.mk | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/package/kernel/linux/modules/leds.mk b/package/kernel/linux/modules/leds.mk index fcf9c987e8..55298fd009 100644 --- a/package/kernel/linux/modules/leds.mk +++ b/package/kernel/linux/modules/leds.mk @@ -245,3 +245,37 @@ define KernelPackage/input-leds/description endef $(eval $(call KernelPackage,input-leds)) + + +define KernelPackage/leds-lp55xx-common + SUBMENU:=$(LEDS_MENU) + TITLE:=LED common driver for LP5521/LP5523/LP55231/LP5562 controllers + DEPENDS:=+kmod-i2c-core + KCONFIG:=CONFIG_LEDS_LP55XX_COMMON + FILES:=$(LINUX_DIR)/drivers/leds/leds-lp55xx-common.ko + AUTOLOAD:=$(call AutoLoad,60,leds-lp55xx-common,1) +endef + +define KernelPackage/leds-lp55xx-common/description + This option enables support for Texas Instruments + LP5521/LP5523/LP55231/LP5562 common driver. +endef + +$(eval $(call KernelPackage,leds-lp55xx-common)) + + +define KernelPackage/leds-lp5562 + SUBMENU:=$(LEDS_MENU) + TITLE:=LED driver for LP5562 controllers + DEPENDS:=+kmod-i2c-core +kmod-leds-lp55xx-common + KCONFIG:=CONFIG_LEDS_LP5562 + FILES:=$(LINUX_DIR)/drivers/leds/leds-lp5562.ko + AUTOLOAD:=$(call AutoLoad,60,leds-lp5562,1) +endef + +define KernelPackage/leds-lp5562/description + This option enables support for Texas Instruments LP5562 + LED controllers. +endef + +$(eval $(call KernelPackage,leds-lp5562)) \ No newline at end of file From 26e882f06f732784b2fbb224044ba7add93a34d8 Mon Sep 17 00:00:00 2001 From: CheWei Chien Date: Mon, 19 Feb 2024 09:21:53 +0800 Subject: [PATCH 04/10] ipq807x: prpl-haze: enable LED driver on device tree MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable LED driver LP5562 on HAZE device tree and include its kernel module package on default package for HAZE. Signed-off-by: CheWei Chien Signed-off-by: Petr Štetiar [commit facelift] (cherry picked from commit fb45194305e6bf9b58f610c1528769320879c749) --- .../arch/arm64/boot/dts/qcom/ipq8072-haze.dts | 49 +++++++++++++++++++ target/linux/ipq807x/image/generic.mk | 2 +- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts index 8a5200b4eb..60dc0ce28a 100644 --- a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts +++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts @@ -21,6 +21,10 @@ ethernet2 = &dp3; ethernet3 = &dp2; label-mac-device = &dp6_syn; + led-boot = &led_system_blue; + led-failsafe = &led_system_red; + led-running = &led_system_green; + led-upgrade = &led_system_blue; }; chosen { @@ -78,6 +82,13 @@ bias-pull-up; }; }; + + i2c_3_pins: i2c-3-state { + pins = "gpio46", "gpio47"; + function = "blsp2_i2c"; + drive-strength = <8>; + bias-disable; + }; }; &blsp1_uart5 { @@ -306,3 +317,41 @@ qcom,ath11k-calibration-variant = "prpl-Haze"; }; + +&blsp1_i2c3{ + pinctrl-0 = <&i2c_3_pins>; + pinctrl-names = "default"; + status = "okay"; + + led-controller@30 { + compatible = "ti,lp5562"; + reg = <0x30>; + clock-mode = /bits/ 8 <2>; + #address-cells = <1>; + #size-cells = <0>; + + led_system_red: chan@0 { + chan-name = "red"; + led-cur = /bits/ 8 <0x20>; + max-cur = /bits/ 8 <0x60>; + color = ; + reg = <0>; + }; + + led_system_green: chan@1 { + chan-name = "green"; + led-cur = /bits/ 8 <0x20>; + max-cur = /bits/ 8 <0x60>; + color = ; + reg = <1>; + }; + + led_system_blue: chan@2 { + chan-name = "blue"; + led-cur = /bits/ 8 <0x20>; + max-cur = /bits/ 8 <0x60>; + color = ; + reg = <2>; + }; + }; +}; diff --git a/target/linux/ipq807x/image/generic.mk b/target/linux/ipq807x/image/generic.mk index 104a667894..d1ada0edfa 100644 --- a/target/linux/ipq807x/image/generic.mk +++ b/target/linux/ipq807x/image/generic.mk @@ -104,7 +104,7 @@ define Device/prpl_haze DEVICE_DTS_CONFIG := config@hk09 SOC := ipq8072 DEVICE_PACKAGES += ath11k-firmware-qcn9074 ipq-wifi-prpl_haze kmod-ath11k-pci \ - mkf2fs f2fsck kmod-fs-f2fs + mkf2fs f2fsck kmod-fs-f2fs kmod-leds-lp5562 endef TARGET_DEVICES += prpl_haze From 677ecd09d28ab8c34c3fc3cfcadea88dee94fdf5 Mon Sep 17 00:00:00 2001 From: Rodrigo Balerdi Date: Tue, 16 Apr 2024 17:47:20 -0300 Subject: [PATCH 05/10] ipq40xx: whw03v2: enable additional 5 GHz channels This device supports channel ranges 36-64 and 100-165, just like others based on the same reference design, but its current DTS is unnecessarily restricting these ranges to 36-48 and 149-165. Signed-off-by: Rodrigo Balerdi (cherry picked from commit 1c32cee348f54e9f64b5928ee1a1efe491eec137) --- .../ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-whw03v2.dts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-whw03v2.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-whw03v2.dts index 1f0572b879..e01be0ae4b 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-whw03v2.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-whw03v2.dts @@ -488,7 +488,6 @@ qcom,coexist-support = <1>; qcom,coexist-gpio-pin = <0x34>; - ieee80211-freq-limit = <2401000 2473000>; qcom,ath10k-calibration-variant = "linksys-whw03v2"; nvmem-cell-names = "pre-calibration", "mac-address"; @@ -499,7 +498,7 @@ &wifi1 { status = "okay"; - ieee80211-freq-limit = <5170000 5250000>; + ieee80211-freq-limit = <5170000 5330000>; qcom,ath10k-calibration-variant = "linksys-whw03v2"; nvmem-cell-names = "pre-calibration", "mac-address"; @@ -510,7 +509,7 @@ &wifi2 { status = "okay"; - ieee80211-freq-limit = <5735000 5835000>; + ieee80211-freq-limit = <5490000 5835000>; qcom,ath10k-calibration-variant = "linksys-whw03v2"; nvmem-cell-names = "pre-calibration", "mac-address"; From 33612fdb924f8adab3523cf9388ed969f6f5f77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Wed, 24 May 2023 09:46:45 +0200 Subject: [PATCH 06/10] kernel: introduce KERNEL_WERROR config option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In commit b2d1eb717b65 ("generic: 5.15: enable Werror by default for kernel compile") CONFIG_WERROR=y was enabled and all warnings/errors reported with GCC 12 were fixed. Keeping this in sync with past/future GCC versions is going to be uphill battle, so lets introduce new KERNEL_WERROR config option, enable it by default only for tested/known working combinations and on buildbots. References: #12687 Signed-off-by: Petr Štetiar (cherry picked from commit ce8c639a6c539534be14a540e7c3e9933d3a34ef) --- config/Config-kernel.in | 16 ++++++++++++++++ target/linux/generic/config-5.15 | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index c1bc7984f7..bbda247cd7 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -1340,3 +1340,19 @@ config KERNEL_UBIFS_FS_SECURITY config KERNEL_JFFS2_FS_SECURITY bool "JFFS2 Security Labels" + +config KERNEL_WERROR + bool "Compile the kernel with warnings as errors" + default BUILDBOT + default y if GCC_USE_VERSION_12 + help + A kernel build should not cause any compiler warnings, and this + enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags + to enforce that rule by default. Certain warnings from other tools + such as the linker may be upgraded to errors with this option as + well. + + However, if you have a new (or very old) compiler or linker with odd + and unusual warnings, or you have some architecture with problems, + you may need to disable this config option in order to + successfully build the kernel. diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15 index e9b8fc42cd..f527a6fb51 100644 --- a/target/linux/generic/config-5.15 +++ b/target/linux/generic/config-5.15 @@ -7476,7 +7476,7 @@ CONFIG_WATCHDOG_OPEN_TIMEOUT=0 # CONFIG_WD80x3 is not set # CONFIG_WDAT_WDT is not set # CONFIG_WDTPCI is not set -CONFIG_WERROR=y +# CONFIG_WERROR is not set # CONFIG_WEXT_CORE is not set # CONFIG_WEXT_PRIV is not set # CONFIG_WEXT_PROC is not set From 915dfbdbb1ae16fb16bf07ed836d8979c30f1fbe Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 7 Apr 2024 19:50:04 +0100 Subject: [PATCH 07/10] config: select KERNEL_WERROR if building with default GCC version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ during cherry-pick GCC version was changed to default GCC 12 version ] At the moment we have to manually follow the default GCC version also in config/Config-kernel.in. This tends to be forgotten at GCC version bumps (just happened when switching from version 12 to 13). Instead, introduce a hidden Kconfig symbol which implies KERNEL_WERROR in toolchain/gcc/Config.in where it is visible for developers changing the default version. Also remove the explicit default on BUILDBOT to avoid a circular dependency and also because buildbots anyway implicitly always select the default GCC version. Reference: https://github.com/openwrt/openwrt/pull/15064 Signed-off-by: Daniel Golle Signed-off-by: Petr Štetiar [GCC 12 default] (cherry picked from commit 501ef81040baa2ee31de6dd9f75d619de0e4c9bc) --- config/Config-kernel.in | 2 -- toolchain/gcc/Config.in | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index bbda247cd7..42755a4d59 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -1343,8 +1343,6 @@ config KERNEL_JFFS2_FS_SECURITY config KERNEL_WERROR bool "Compile the kernel with warnings as errors" - default BUILDBOT - default y if GCC_USE_VERSION_12 help A kernel build should not cause any compiler warnings, and this enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 9156f9c263..be975e5334 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -16,6 +16,11 @@ choice bool "gcc 13.x" endchoice +config GCC_USE_DEFAULT_VERSION + bool + default y if !TOOLCHAINOPTS || GCC_USE_VERSION_12 + imply KERNEL_WERROR + config GCC_USE_GRAPHITE bool prompt "Compile in support for the new Graphite framework in GCC 4.4+" if TOOLCHAINOPTS From e8cc17e147c092d99430f6c707c2ca94dfad40ae Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 8 Apr 2024 22:05:19 +0200 Subject: [PATCH 08/10] config: fix CONFIG_GDB appearing in main menuconfig menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I noticed that CONFIG_GDB was suddenly appearing in the main menuconfig menu despite the fact that it should be visible only when TOOLCHAINOPTS is selected and under a dedicated menu. After some trial and error, it seems that this was caused by the recent addition of GCC_USE_DEFAULT_VERSION, and after even more trial and error it gets fixed as soon GCC_USE_DEFAULT_VERSION is placed after GCC_VERSION. So, lets simply put GCC_USE_DEFAULT_VERSION after GCC_VERSION. Fixes: 501ef81040ba ("config: select KERNEL_WERROR if building with default GCC version") Signed-off-by: Robert Marko Signed-off-by: Petr Štetiar [rebased] (cherry picked from commit 12b2cb2ec3f1366b65caa0dbbdd83846c1c88d4e) --- toolchain/gcc/Config.in | 5 ----- toolchain/gcc/Config.version | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index be975e5334..9156f9c263 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -16,11 +16,6 @@ choice bool "gcc 13.x" endchoice -config GCC_USE_DEFAULT_VERSION - bool - default y if !TOOLCHAINOPTS || GCC_USE_VERSION_12 - imply KERNEL_WERROR - config GCC_USE_GRAPHITE bool prompt "Compile in support for the new Graphite framework in GCC 4.4+" if TOOLCHAINOPTS diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version index 7126a0c883..e40d6b2df3 100644 --- a/toolchain/gcc/Config.version +++ b/toolchain/gcc/Config.version @@ -11,3 +11,8 @@ config GCC_VERSION default "11.3.0" if GCC_VERSION_11 default "13.1.0" if GCC_VERSION_13 default "12.3.0" + +config GCC_USE_DEFAULT_VERSION + bool + default y if !TOOLCHAINOPTS || GCC_USE_VERSION_12 + imply KERNEL_WERROR From afb5fdd79a00a1737fb64d9e2420ffdeebff392f Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Thu, 18 Apr 2024 12:40:18 +0200 Subject: [PATCH 09/10] netifd: packet-steering: silence error on applying queue mask Some queues can't be tweaked and return -ENOENT if it's not multiqueue. Silence any error from echo to produce a more clean bootlog. Fixes: #12095 Suggested-by: Andris PE Signed-off-by: Christian Marangi --- package/network/config/netifd/Makefile | 2 +- .../config/netifd/files/usr/libexec/network/packet-steering.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index b9f0e692d5..acfabf05e0 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=netifd -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git diff --git a/package/network/config/netifd/files/usr/libexec/network/packet-steering.sh b/package/network/config/netifd/files/usr/libexec/network/packet-steering.sh index 799c080805..51b9284449 100755 --- a/package/network/config/netifd/files/usr/libexec/network/packet-steering.sh +++ b/package/network/config/netifd/files/usr/libexec/network/packet-steering.sh @@ -29,7 +29,7 @@ set_hex_val() { local val="$2" val="$(printf %x "$val")" [ -n "$DEBUG" ] && echo "$file = $val" - echo "$val" > "$file" + echo "$val" > "$file" 2>/dev/null } packet_steering="$(uci get "network.@globals[0].packet_steering")" From 9b33b74ef71225442361d5192d3a727be212c3cd Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Thu, 18 Apr 2024 14:14:42 +0200 Subject: [PATCH 10/10] bcm27xx: refresh kernel patches Refresh kernel patches with make target/linux/refresh. Signed-off-by: Christian Marangi --- ...2-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/bcm27xx/patches-5.15/950-0312-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch b/target/linux/bcm27xx/patches-5.15/950-0312-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch index 46397c0ca8..9addd5ec71 100644 --- a/target/linux/bcm27xx/patches-5.15/950-0312-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch +++ b/target/linux/bcm27xx/patches-5.15/950-0312-phy-broadcom-split-out-the-BCM54213PE-from-the-BCM54.patch @@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell .phy_id = PHY_ID_BCM5461, .phy_id_mask = 0xfffffff0, .name = "Broadcom BCM5461", -@@ -975,7 +983,8 @@ module_phy_driver(broadcom_drivers); +@@ -977,7 +985,8 @@ module_phy_driver(broadcom_drivers); static struct mdio_device_id __maybe_unused broadcom_tbl[] = { { PHY_ID_BCM5411, 0xfffffff0 }, { PHY_ID_BCM5421, 0xfffffff0 },