From aa12a0fdd1c5a004281633c5b0758da1781bb41c Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 27 Nov 2022 12:33:31 +0000 Subject: [PATCH 01/27] dnsmasq: add option to expose additional paths to jail Add new UCI list 'addn_mount' allowing the expose additional filesystem paths to the jailed dnsmasq process. This is useful e.g. in case of manually configured includes to the configuration file or symlinks pointing outside of the exposed paths as used by e.g. the safe-search package in the packages feed. Signed-off-by: Daniel Golle --- package/network/services/dnsmasq/files/dhcp.conf | 1 + package/network/services/dnsmasq/files/dnsmasq.init | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package/network/services/dnsmasq/files/dhcp.conf b/package/network/services/dnsmasq/files/dhcp.conf index 4ddef172e6..ec8b1ae950 100644 --- a/package/network/services/dnsmasq/files/dhcp.conf +++ b/package/network/services/dnsmasq/files/dhcp.conf @@ -23,6 +23,7 @@ config dnsmasq option ednspacket_max 1232 option filter_aaaa 0 option filter_a 0 + #list addnmount /some/path # read-only mount path to expose it to dnsmasq config dhcp lan option interface lan diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init index 21910f5fd1..d3928c2399 100755 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -204,8 +204,12 @@ ismounted() { return 1 } -append_addnhosts() { +append_extramount() { ismounted "$1" || append EXTRA_MOUNT "$1" +} + +append_addnhosts() { + append_extramount "$1" xappend "--addn-hosts=$1" } @@ -1186,6 +1190,8 @@ dnsmasq_start() done } + config_list_foreach "$cfg" addnmount append_extramount + procd_open_instance $cfg procd_set_param command $PROG -C $CONFIGFILE -k -x /var/run/dnsmasq/dnsmasq."${cfg}".pid procd_set_param file $CONFIGFILE From 366bcffa0e2101362a1856591dad2e71ebb0f3a7 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Tue, 29 Nov 2022 19:38:21 +0000 Subject: [PATCH 02/27] uboot-mediatek: bpi-r3: raise CONFIG_LMB_MAX_REGIONS to 64 Raise CONFIG_LMB_MAX_REGIONS to 64 as there are going to be more than 8 (the default value) reserved regions to allow supporting offloading Wireless-to-Ethernet traffic on MT7986. Signed-off-by: Daniel Golle --- .../uboot-mediatek/patches/430-add-bpi-r3.patch | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch index ed873c083d..cad24409b2 100644 --- a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch +++ b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch @@ -11,7 +11,7 @@ mt7986a-sd-rfb.dtb \ --- /dev/null +++ b/configs/mt7986a_bpi-r3-emmc_defconfig -@@ -0,0 +1,192 @@ +@@ -0,0 +1,193 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -204,9 +204,10 @@ +CONFIG_CMD_SF=y +CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_LMB_MAX_REGIONS=64 --- /dev/null +++ b/configs/mt7986a_bpi-r3-nor_defconfig -@@ -0,0 +1,193 @@ +@@ -0,0 +1,192 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -398,11 +399,10 @@ +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +CONFIG_CMD_MTD=y +CONFIG_CMD_SF=y -+#CONFIG_CMD_NAND=y -+#CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_LMB_MAX_REGIONS=64 --- /dev/null +++ b/configs/mt7986a_bpi-r3-sd_defconfig -@@ -0,0 +1,192 @@ +@@ -0,0 +1,193 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -595,9 +595,10 @@ +CONFIG_CMD_SF=y +CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_LMB_MAX_REGIONS=64 --- /dev/null +++ b/configs/mt7986a_bpi-r3-snand_defconfig -@@ -0,0 +1,193 @@ +@@ -0,0 +1,194 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -791,6 +792,7 @@ +#CONFIG_CMD_SF=y +CONFIG_CMD_NAND=y +CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_LMB_MAX_REGIONS=64 --- /dev/null +++ b/arch/arm/dts/mt7986a-bpi-r3-emmc.dts @@ -0,0 +1,33 @@ From b67d284e93ee052e3ea3abb5d3dae55723ce0353 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Tue, 29 Nov 2022 19:53:23 +0100 Subject: [PATCH 03/27] CI: add support to tag pr targeting stable branch Add support to tag pr targeting stable branch matching the simple regex of openwrt-[0-9][0-9].[0-9][0-9]. The tag that will be added will match the pr target branch. Signed-off-by: Christian Marangi --- .github/workflows/labeler.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index b67265ca80..62a895a68b 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -17,3 +17,17 @@ jobs: - uses: actions/labeler@v4 with: repo-token: '${{ secrets.GITHUB_TOKEN }}' + + - name: Check Branch + id: check-branch + run: | + if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then + echo "apply-tag=yes" >> $GITHUB_OUTPUT + fi + + - uses: buildsville/add-remove-label@v2.0.0 + if: ${{ steps.check-branch.outputs.apply-tag }} + with: + token: ${{secrets.GITHUB_TOKEN}} + labels: ${{ github.base_ref }} + type: add From af8bc8e51b6daef65c497522b67a1dd9d0cdab84 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Thu, 1 Dec 2022 01:46:03 +0100 Subject: [PATCH 04/27] CI: labeler: fix wrong label for pr targeting stable branch The label used for stable branch is in the form of release/[0-9][0-9].[0-9][0-9] Currently we apply the name of the target branch as the label, fix this and correctly use the current label. Signed-off-by: Christian Marangi --- .github/workflows/labeler.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 62a895a68b..5f82b88a50 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -22,12 +22,12 @@ jobs: id: check-branch run: | if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then - echo "apply-tag=yes" >> $GITHUB_OUTPUT + echo "release-tag=$(echo ${{ github.base_ref }} | sed 's/openwrt-/release\//')" >> $GITHUB_OUTPUT fi - uses: buildsville/add-remove-label@v2.0.0 - if: ${{ steps.check-branch.outputs.apply-tag }} + if: ${{ steps.check-branch.outputs.release-tag }} with: token: ${{secrets.GITHUB_TOKEN}} - labels: ${{ github.base_ref }} + labels: ${{ steps.check-branch.outputs.release-tag }} type: add From 59542c9ac9acd470c4fa3182792de91b4c2f6421 Mon Sep 17 00:00:00 2001 From: Olliver Schinagl Date: Mon, 31 Oct 2022 14:02:52 +0100 Subject: [PATCH 05/27] realtek: Fix rtl930x speed status accessor The rtl930x speed status registers require 4 bits to indicate the speed status. As such, we want to divide by 8. To make things consistent with the rest of this code, use a bitshift however. This bug probably won't affect many users yet, as there aren't many rtl930x switches in the wild yet with more then 10 ports, and thus a low-impact bugfix. Signed-off-by: Olliver Schinagl [also fix port field extraction] Signed-off-by: Sander Vanheule --- .../realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h index 5db5f545b9..d00d11d0c8 100644 --- a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h +++ b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h @@ -348,11 +348,11 @@ inline u32 rtl839x_get_mac_link_spd_sts(int port) inline u32 rtl930x_get_mac_link_spd_sts(int port) { - int r = RTL930X_MAC_LINK_SPD_STS + ((port / 10) << 2); + int r = RTL930X_MAC_LINK_SPD_STS + ((port >> 3) << 2); u32 speed = sw_r32(r); - speed >>= (port % 10) * 3; - return (speed & 0x7); + speed >>= (port % 8) << 2; + return (speed & 0xf); } inline u32 rtl931x_get_mac_link_spd_sts(int port) From ed9bd9824a477b2cca0887867155a73b38775d80 Mon Sep 17 00:00:00 2001 From: Luiz Angelo Daros de Luca Date: Mon, 7 Nov 2022 20:10:08 -0300 Subject: [PATCH 06/27] realtek: refactor keep vlan tag setup, fix tagged forwarding The code in dsa.c:rtl83xx_port_enable() was trying to set vlan_port_tag_sts_ctrl while dealing with differences between SoCs. However, not only that register has a different address, the register structure and even the 2-bit value semantic changes for each SoC. The vlan_port_tag_sts_ctrl field was dropped and converted into a vlan_port_keep_incoming_tag_set() function that abstracts the different between SoCs. The macro referencing that register migrated to the SoC specific c file as it will be privately used by each file. All magic numbers were converted into macros using BITMASK and FIELD_PREP. The vlan_port_tag_sts_ctrl debugfs was dropped for now as it is already broken for rtl93xx. The best place for SoC specific code might be in each respective c file and not in if/else clauses. The final result is: rtl838x: set ITAG_STS=TAGGED, same as before rtl839x: set ITAG_STS=TAGGED instead of IGR_P_ITAG_KEEP=0x1, fixing forwarding of tagged packets rtl930x: set EGR_ITAG_STS=TAGGED instead of IGR_P_ITAG=0x1, possibly fixing forwarding of tagged packets rtl931x: set EGR_ITAG_STS=TAGGED instead of OTPID_KEEP=0x1, possibly fixing forwarding of tagged packets Without (EGR_)ITAG_STS=TAGGED, at least for rtl839x, forwarded packets will drop the vlan tag while packets from the CPU will still have the correct tag. Signed-off-by: Luiz Angelo Daros de Luca --- .../drivers/net/dsa/rtl83xx/debugfs.c | 8 ----- .../files-5.10/drivers/net/dsa/rtl83xx/dsa.c | 5 +-- .../drivers/net/dsa/rtl83xx/rtl838x.c | 27 +++++++++++++++- .../drivers/net/dsa/rtl83xx/rtl838x.h | 8 +---- .../drivers/net/dsa/rtl83xx/rtl839x.c | 26 +++++++++++++++- .../drivers/net/dsa/rtl83xx/rtl930x.c | 27 +++++++++++++++- .../drivers/net/dsa/rtl83xx/rtl931x.c | 31 ++++++++++++++++++- 7 files changed, 109 insertions(+), 23 deletions(-) diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/debugfs.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/debugfs.c index 6dd064c95b..9a7c7714c6 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/debugfs.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/debugfs.c @@ -482,10 +482,6 @@ static int rtl838x_dbgfs_port_init(struct dentry *parent, struct rtl838x_switch_ debugfs_create_x32("storm_rate_bc", 0644, port_dir, (u32 *)(RTL838X_SW_BASE + RTL838X_STORM_CTRL_PORT_BC(port))); - - debugfs_create_x32("vlan_port_tag_sts_ctrl", 0644, port_dir, - (u32 *)(RTL838X_SW_BASE + RTL838X_VLAN_PORT_TAG_STS_CTRL - + (port << 2))); } else { debugfs_create_x32("storm_rate_uc", 0644, port_dir, (u32 *)(RTL838X_SW_BASE + RTL839X_STORM_CTRL_PORT_UC_0(port))); @@ -495,10 +491,6 @@ static int rtl838x_dbgfs_port_init(struct dentry *parent, struct rtl838x_switch_ debugfs_create_x32("storm_rate_bc", 0644, port_dir, (u32 *)(RTL838X_SW_BASE + RTL839X_STORM_CTRL_PORT_BC_0(port))); - - debugfs_create_x32("vlan_port_tag_sts_ctrl", 0644, port_dir, - (u32 *)(RTL838X_SW_BASE + RTL839X_VLAN_PORT_TAG_STS_CTRL - + (port << 2))); } debugfs_create_u32("id", 0444, port_dir, (u32 *)&priv->ports[port].dp->index); diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c index 239b02b6ee..6eea0dc936 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c @@ -1063,10 +1063,7 @@ static int rtl83xx_port_enable(struct dsa_switch *ds, int port, priv->ports[port].enable = true; /* enable inner tagging on egress, do not keep any tags */ - if (priv->family_id == RTL9310_FAMILY_ID) - sw_w32(BIT(4), priv->r->vlan_port_tag_sts_ctrl + (port << 2)); - else - sw_w32(1, priv->r->vlan_port_tag_sts_ctrl + (port << 2)); + priv->r->vlan_port_keep_tag_set(port, 0, 1); if (dsa_is_cpu_port(ds, port)) return 0; diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.c index 93fab7e6e3..9ce5098979 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.c @@ -6,6 +6,22 @@ #include "rtl83xx.h" +#define RTL838X_VLAN_PORT_TAG_STS_UNTAG 0x0 +#define RTL838X_VLAN_PORT_TAG_STS_TAGGED 0x1 +#define RTL838X_VLAN_PORT_TAG_STS_PRIORITY_TAGGED 0x2 + +#define RTL838X_VLAN_PORT_TAG_STS_CTRL_BASE 0xA530 +/* port 0-28 */ +#define RTL838X_VLAN_PORT_TAG_STS_CTRL(port) \ + RTL838X_VLAN_PORT_TAG_STS_CTRL_BASE + (port << 2) + +#define RTL838X_VLAN_PORT_TAG_STS_CTRL_EGR_P_OTAG_KEEP_MASK GENMASK(11,10) +#define RTL838X_VLAN_PORT_TAG_STS_CTRL_EGR_P_ITAG_KEEP_MASK GENMASK(9,8) +#define RTL838X_VLAN_PORT_TAG_STS_CTRL_IGR_P_OTAG_KEEP_MASK GENMASK(7,6) +#define RTL838X_VLAN_PORT_TAG_STS_CTRL_IGR_P_ITAG_KEEP_MASK GENMASK(5,4) +#define RTL838X_VLAN_PORT_TAG_STS_CTRL_OTAG_STS_MASK GENMASK(3,2) +#define RTL838X_VLAN_PORT_TAG_STS_CTRL_ITAG_STS_MASK GENMASK(1,0) + extern struct mutex smi_lock; // see_dal_maple_acl_log2PhyTmplteField and src/app/diag_v2/src/diag_acl.c @@ -1612,6 +1628,15 @@ static int rtl838x_l3_setup(struct rtl838x_switch_priv *priv) return 0; } +void rtl838x_vlan_port_keep_tag_set(int port, bool keep_outer, bool keep_inner) +{ + sw_w32(FIELD_PREP(RTL838X_VLAN_PORT_TAG_STS_CTRL_OTAG_STS_MASK, + keep_outer ? RTL838X_VLAN_PORT_TAG_STS_TAGGED : RTL838X_VLAN_PORT_TAG_STS_UNTAG) | + FIELD_PREP(RTL838X_VLAN_PORT_TAG_STS_CTRL_ITAG_STS_MASK, + keep_inner ? RTL838X_VLAN_PORT_TAG_STS_TAGGED : RTL838X_VLAN_PORT_TAG_STS_UNTAG), + RTL838X_VLAN_PORT_TAG_STS_CTRL(port)); +} + void rtl838x_vlan_port_pvidmode_set(int port, enum pbvlan_type type, enum pbvlan_mode mode) { if (type == PBVLAN_TYPE_INNER) @@ -1742,7 +1767,7 @@ const struct rtl838x_reg rtl838x_reg = { .write_l2_entry_using_hash = rtl838x_write_l2_entry_using_hash, .read_cam = rtl838x_read_cam, .write_cam = rtl838x_write_cam, - .vlan_port_tag_sts_ctrl = RTL838X_VLAN_PORT_TAG_STS_CTRL, + .vlan_port_keep_tag_set = rtl838x_vlan_port_keep_tag_set, .vlan_port_pvidmode_set = rtl838x_vlan_port_pvidmode_set, .vlan_port_pvid_set = rtl838x_vlan_port_pvid_set, .trk_mbr_ctr = rtl838x_trk_mbr_ctr, diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.h b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.h index 10913dacef..19049e4c95 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.h +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl838x.h @@ -69,29 +69,24 @@ #define RTL838X_VLAN_PORT_EGR_FLTR (0x3A84) #define RTL838X_VLAN_PORT_PB_VLAN (0x3C00) #define RTL838X_VLAN_PORT_IGR_FLTR (0x3A7C) -#define RTL838X_VLAN_PORT_TAG_STS_CTRL (0xA530) #define RTL839X_VLAN_PROFILE(idx) (0x25C0 + (((idx) << 3))) #define RTL839X_VLAN_CTRL (0x26D4) #define RTL839X_VLAN_PORT_PB_VLAN (0x26D8) #define RTL839X_VLAN_PORT_IGR_FLTR (0x27B4) #define RTL839X_VLAN_PORT_EGR_FLTR (0x27C4) -#define RTL839X_VLAN_PORT_TAG_STS_CTRL (0x6828) -#define RTL839X_VLAN_PORT_TAG_STS_CTRL (0x6828) #define RTL930X_VLAN_PROFILE_SET(idx) (0x9c60 + (((idx) * 20))) #define RTL930X_VLAN_CTRL (0x82D4) #define RTL930X_VLAN_PORT_PB_VLAN (0x82D8) #define RTL930X_VLAN_PORT_IGR_FLTR (0x83C0) #define RTL930X_VLAN_PORT_EGR_FLTR (0x83C8) -#define RTL930X_VLAN_PORT_TAG_STS_CTRL (0xCE24) #define RTL931X_VLAN_PROFILE_SET(idx) (0x9800 + (((idx) * 28))) #define RTL931X_VLAN_CTRL (0x94E4) #define RTL931X_VLAN_PORT_IGR_CTRL (0x94E8) #define RTL931X_VLAN_PORT_IGR_FLTR (0x96B4) #define RTL931X_VLAN_PORT_EGR_FLTR (0x96C4) -#define RTL931X_VLAN_PORT_TAG_CTRL (0x4860) /* Table access registers */ #define RTL838X_TBL_ACCESS_CTRL_0 (0x6914) @@ -980,6 +975,7 @@ struct rtl838x_reg { void (*vlan_profile_setup)(int profile); void (*vlan_port_pvidmode_set)(int port, enum pbvlan_type type, enum pbvlan_mode mode); void (*vlan_port_pvid_set)(int port, enum pbvlan_type type, int pvid); + void (*vlan_port_keep_tag_set)(int port, bool keep_outer, bool keep_inner); void (*set_vlan_igr_filter)(int port, enum igr_filter state); void (*set_vlan_egr_filter)(int port, enum egr_filter state); void (*enable_learning)(int port, bool enable); @@ -1005,8 +1001,6 @@ struct rtl838x_reg { void (*write_l2_entry_using_hash)(u32 hash, u32 pos, struct rtl838x_l2_entry *e); u64 (*read_cam)(int idx, struct rtl838x_l2_entry *e); void (*write_cam)(int idx, struct rtl838x_l2_entry *e); - int vlan_port_tag_sts_ctrl; - int (*rtl838x_vlan_port_tag_sts_ctrl)(int port); int (*trk_mbr_ctr)(int group); int rma_bpdu_fld_pmask; int spcl_trap_eapol_ctrl; diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl839x.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl839x.c index 29912257e8..986a4b5f45 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl839x.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl839x.c @@ -3,6 +3,21 @@ #include #include "rtl83xx.h" +#define RTL839X_VLAN_PORT_TAG_STS_UNTAG 0x0 +#define RTL839X_VLAN_PORT_TAG_STS_TAGGED 0x1 +#define RTL839X_VLAN_PORT_TAG_STS_PRIORITY_TAGGED 0x2 + +#define RTL839X_VLAN_PORT_TAG_STS_CTRL_BASE 0x6828 +/* port 0-52 */ +#define RTL839X_VLAN_PORT_TAG_STS_CTRL(port) \ + RTL839X_VLAN_PORT_TAG_STS_CTRL_BASE + (port << 2) +#define RTL839X_VLAN_PORT_TAG_STS_CTRL_OTAG_STS_MASK GENMASK(7,6) +#define RTL839X_VLAN_PORT_TAG_STS_CTRL_ITAG_STS_MASK GENMASK(5,4) +#define RTL839X_VLAN_PORT_TAG_STS_CTRL_EGR_P_OTAG_KEEP_MASK GENMASK(3,3) +#define RTL839X_VLAN_PORT_TAG_STS_CTRL_EGR_P_ITAG_KEEP_MASK GENMASK(2,2) +#define RTL839X_VLAN_PORT_TAG_STS_CTRL_IGR_P_OTAG_KEEP_MASK GENMASK(1,1) +#define RTL839X_VLAN_PORT_TAG_STS_CTRL_IGR_P_ITAG_KEEP_MASK GENMASK(0,0) + extern struct mutex smi_lock; extern struct rtl83xx_soc_info soc_info; @@ -1755,6 +1770,15 @@ int rtl839x_l3_setup(struct rtl838x_switch_priv *priv) return 0; } +void rtl839x_vlan_port_keep_tag_set(int port, bool keep_outer, bool keep_inner) +{ + sw_w32(FIELD_PREP(RTL839X_VLAN_PORT_TAG_STS_CTRL_OTAG_STS_MASK, + keep_outer ? RTL839X_VLAN_PORT_TAG_STS_TAGGED : RTL839X_VLAN_PORT_TAG_STS_UNTAG) | + FIELD_PREP(RTL839X_VLAN_PORT_TAG_STS_CTRL_ITAG_STS_MASK, + keep_inner ? RTL839X_VLAN_PORT_TAG_STS_TAGGED : RTL839X_VLAN_PORT_TAG_STS_UNTAG), + RTL839X_VLAN_PORT_TAG_STS_CTRL(port)); +} + void rtl839x_vlan_port_pvidmode_set(int port, enum pbvlan_type type, enum pbvlan_mode mode) { if (type == PBVLAN_TYPE_INNER) @@ -1860,6 +1884,7 @@ const struct rtl838x_reg rtl839x_reg = { .vlan_profile_dump = rtl839x_vlan_profile_dump, .vlan_profile_setup = rtl839x_vlan_profile_setup, .vlan_fwd_on_inner = rtl839x_vlan_fwd_on_inner, + .vlan_port_keep_tag_set = rtl839x_vlan_port_keep_tag_set, .vlan_port_pvidmode_set = rtl839x_vlan_port_pvidmode_set, .vlan_port_pvid_set = rtl839x_vlan_port_pvid_set, .set_vlan_igr_filter = rtl839x_set_igr_filter, @@ -1886,7 +1911,6 @@ const struct rtl838x_reg rtl839x_reg = { .write_l2_entry_using_hash = rtl839x_write_l2_entry_using_hash, .read_cam = rtl839x_read_cam, .write_cam = rtl839x_write_cam, - .vlan_port_tag_sts_ctrl = RTL839X_VLAN_PORT_TAG_STS_CTRL, .trk_mbr_ctr = rtl839x_trk_mbr_ctr, .rma_bpdu_fld_pmask = RTL839X_RMA_BPDU_FLD_PMSK, .spcl_trap_eapol_ctrl = RTL839X_SPCL_TRAP_EAPOL_CTRL, diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl930x.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl930x.c index e89d75d4b9..5dde8353e2 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl930x.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl930x.c @@ -5,6 +5,22 @@ #include "rtl83xx.h" +#define RTL930X_VLAN_PORT_TAG_STS_INTERNAL 0x0 +#define RTL930X_VLAN_PORT_TAG_STS_UNTAG 0x1 +#define RTL930X_VLAN_PORT_TAG_STS_TAGGED 0x2 +#define RTL930X_VLAN_PORT_TAG_STS_PRIORITY_TAGGED 0x3 + +#define RTL930X_VLAN_PORT_TAG_STS_CTRL_BASE 0xCE24 +/* port 0-28 */ +#define RTL930X_VLAN_PORT_TAG_STS_CTRL(port) \ + RTL930X_VLAN_PORT_TAG_STS_CTRL_BASE + (port << 2) +#define RTL930X_VLAN_PORT_TAG_STS_CTRL_EGR_OTAG_STS_MASK GENMASK(7,6) +#define RTL930X_VLAN_PORT_TAG_STS_CTRL_EGR_ITAG_STS_MASK GENMASK(5,4) +#define RTL930X_VLAN_PORT_TAG_STS_CTRL_EGR_P_OTAG_KEEP_MASK GENMASK(3,3) +#define RTL930X_VLAN_PORT_TAG_STS_CTRL_EGR_P_ITAG_KEEP_MASK GENMASK(2,2) +#define RTL930X_VLAN_PORT_TAG_STS_CTRL_IGR_P_OTAG_KEEP_MASK GENMASK(1,1) +#define RTL930X_VLAN_PORT_TAG_STS_CTRL_IGR_P_ITAG_KEEP_MASK GENMASK(0,0) + extern struct mutex smi_lock; extern struct rtl83xx_soc_info soc_info; @@ -2300,6 +2316,15 @@ static void rtl930x_packet_cntr_clear(int counter) rtl_table_release(r); } +void rtl930x_vlan_port_keep_tag_set(int port, bool keep_outer, bool keep_inner) +{ + sw_w32(FIELD_PREP(RTL930X_VLAN_PORT_TAG_STS_CTRL_EGR_OTAG_STS_MASK, + keep_outer ? RTL930X_VLAN_PORT_TAG_STS_TAGGED : RTL930X_VLAN_PORT_TAG_STS_UNTAG) | + FIELD_PREP(RTL930X_VLAN_PORT_TAG_STS_CTRL_EGR_ITAG_STS_MASK, + keep_inner ? RTL930X_VLAN_PORT_TAG_STS_TAGGED : RTL930X_VLAN_PORT_TAG_STS_UNTAG), + RTL930X_VLAN_PORT_TAG_STS_CTRL(port)); +} + void rtl930x_vlan_port_pvidmode_set(int port, enum pbvlan_type type, enum pbvlan_mode mode) { if (type == PBVLAN_TYPE_INNER) @@ -2498,7 +2523,7 @@ const struct rtl838x_reg rtl930x_reg = { .write_l2_entry_using_hash = rtl930x_write_l2_entry_using_hash, .read_cam = rtl930x_read_cam, .write_cam = rtl930x_write_cam, - .vlan_port_tag_sts_ctrl = RTL930X_VLAN_PORT_TAG_STS_CTRL, + .vlan_port_keep_tag_set = rtl930x_vlan_port_keep_tag_set, .vlan_port_pvidmode_set = rtl930x_vlan_port_pvidmode_set, .vlan_port_pvid_set = rtl930x_vlan_port_pvid_set, .trk_mbr_ctr = rtl930x_trk_mbr_ctr, diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl931x.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl931x.c index 48692ac7ea..ee8d6c2c73 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl931x.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/rtl931x.c @@ -3,6 +3,26 @@ #include #include "rtl83xx.h" +#define RTL931X_VLAN_PORT_TAG_STS_INTERNAL 0x0 +#define RTL931X_VLAN_PORT_TAG_STS_UNTAG 0x1 +#define RTL931X_VLAN_PORT_TAG_STS_TAGGED 0x2 +#define RTL931X_VLAN_PORT_TAG_STS_PRIORITY_TAGGED 0x3 + +#define RTL931X_VLAN_PORT_TAG_CTRL_BASE 0x4860 +/* port 0-56 */ +#define RTL931X_VLAN_PORT_TAG_CTRL(port) \ + RTL931X_VLAN_PORT_TAG_CTRL_BASE + (port << 2) +#define RTL931X_VLAN_PORT_TAG_EGR_OTAG_STS_MASK GENMASK(13,12) +#define RTL931X_VLAN_PORT_TAG_EGR_ITAG_STS_MASK GENMASK(11,10) +#define RTL931X_VLAN_PORT_TAG_EGR_OTAG_KEEP_MASK GENMASK(9,9) +#define RTL931X_VLAN_PORT_TAG_EGR_ITAG_KEEP_MASK GENMASK(8,8) +#define RTL931X_VLAN_PORT_TAG_IGR_OTAG_KEEP_MASK GENMASK(7,7) +#define RTL931X_VLAN_PORT_TAG_IGR_ITAG_KEEP_MASK GENMASK(6,6) +#define RTL931X_VLAN_PORT_TAG_OTPID_IDX_MASK GENMASK(5,4) +#define RTL931X_VLAN_PORT_TAG_OTPID_KEEP_MASK GENMASK(3,3) +#define RTL931X_VLAN_PORT_TAG_ITPID_IDX_MASK GENMASK(2,1) +#define RTL931X_VLAN_PORT_TAG_ITPID_KEEP_MASK GENMASK(0,0) + extern struct mutex smi_lock; extern struct rtl83xx_soc_info soc_info; @@ -1470,6 +1490,15 @@ int rtl931x_l3_setup(struct rtl838x_switch_priv *priv) return 0; } +void rtl931x_vlan_port_keep_tag_set(int port, bool keep_outer, bool keep_inner) +{ + sw_w32(FIELD_PREP(RTL931X_VLAN_PORT_TAG_EGR_OTAG_STS_MASK, + keep_outer ? RTL931X_VLAN_PORT_TAG_STS_TAGGED : RTL931X_VLAN_PORT_TAG_STS_UNTAG) | + FIELD_PREP(RTL931X_VLAN_PORT_TAG_EGR_ITAG_STS_MASK, + keep_inner ? RTL931X_VLAN_PORT_TAG_STS_TAGGED : RTL931X_VLAN_PORT_TAG_STS_UNTAG), + RTL931X_VLAN_PORT_TAG_CTRL(port)); +} + void rtl931x_vlan_port_pvidmode_set(int port, enum pbvlan_type type, enum pbvlan_mode mode) { if (type == PBVLAN_TYPE_INNER) @@ -1651,7 +1680,7 @@ const struct rtl838x_reg rtl931x_reg = { .write_l2_entry_using_hash = rtl931x_write_l2_entry_using_hash, .read_cam = rtl931x_read_cam, .write_cam = rtl931x_write_cam, - .vlan_port_tag_sts_ctrl = RTL931X_VLAN_PORT_TAG_CTRL, + .vlan_port_keep_tag_set = rtl931x_vlan_port_keep_tag_set, .vlan_port_pvidmode_set = rtl931x_vlan_port_pvidmode_set, .vlan_port_pvid_set = rtl931x_vlan_port_pvid_set, .trk_mbr_ctr = rtl931x_trk_mbr_ctr, From a5873ad675792bd4fdab227f2d2226779346fe07 Mon Sep 17 00:00:00 2001 From: Jan-Niklas Burfeind Date: Mon, 28 Nov 2022 17:58:17 +0100 Subject: [PATCH 07/27] realtek: fix dell typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit should be add/delete or abbreviated add/del Signed-off-by: Jan-Niklas Burfeind Reviewed-by: Philippe Mathieu-Daudé --- .../realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c index 2a60f61c95..e86ff9ccdf 100644 --- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c +++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/common.c @@ -1401,7 +1401,7 @@ static int rtl83xx_fib_event(struct notifier_block *this, unsigned long event, v case FIB_EVENT_ENTRY_REPLACE: case FIB_EVENT_ENTRY_APPEND: case FIB_EVENT_ENTRY_DEL: - pr_debug("%s: FIB_ENTRY ADD/DELL, event %ld\n", __func__, event); + pr_debug("%s: FIB_ENTRY ADD/DEL, event %ld\n", __func__, event); if (info->family == AF_INET) { struct fib_entry_notifier_info *fen_info = ptr; @@ -1420,7 +1420,7 @@ static int rtl83xx_fib_event(struct notifier_block *this, unsigned long event, v } else if (info->family == AF_INET6) { struct fib6_entry_notifier_info *fen6_info = ptr; - pr_warn("%s: FIB_RULE ADD/DELL for IPv6 not supported\n", __func__); + pr_warn("%s: FIB_RULE ADD/DEL for IPv6 not supported\n", __func__); kfree(fib_work); return NOTIFY_DONE; } @@ -1428,7 +1428,7 @@ static int rtl83xx_fib_event(struct notifier_block *this, unsigned long event, v case FIB_EVENT_RULE_ADD: case FIB_EVENT_RULE_DEL: - pr_debug("%s: FIB_RULE ADD/DELL, event: %ld\n", __func__, event); + pr_debug("%s: FIB_RULE ADD/DEL, event: %ld\n", __func__, event); memcpy(&fib_work->fr_info, ptr, sizeof(fib_work->fr_info)); fib_rule_get(fib_work->fr_info.rule); break; From 5429411f732ba76eced30b5b596ec9c0374d0965 Mon Sep 17 00:00:00 2001 From: Stijn Segers Date: Fri, 2 Dec 2022 13:36:20 +0100 Subject: [PATCH 08/27] mvebu: switch default kernel to 5.15 In light of https://github.com/openwrt/openwrt/issues/11077, switch mvebu to 5.15 which has been the testing kernel on this target since April - over half a year. Run-tested on the following subtargets: * cortexa9 (Turris Omnia - 03f41b1eb2f15ab06d5800274be6a67c64e2a629) * cortexa72 (MikroTik RB5009UG+S+IN) Tested-by: Enrico Mioso [GL-MV1000] Signed-off-by: Stijn Segers --- target/linux/mvebu/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile index 6a1e0f63f7..2971f3fcaf 100644 --- a/target/linux/mvebu/Makefile +++ b/target/linux/mvebu/Makefile @@ -9,8 +9,7 @@ BOARDNAME:=Marvell EBU Armada FEATURES:=fpu usb pci pcie gpio nand squashfs ramdisk boot-part rootfs-part legacy-sdcard targz SUBTARGETS:=cortexa9 cortexa53 cortexa72 -KERNEL_PATCHVER:=5.10 -KERNEL_TESTING_PATCHVER:=5.15 +KERNEL_PATCHVER:=5.15 include $(INCLUDE_DIR)/target.mk From ce343653c2618e1d335662b924c382c0192b7b46 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 5 Nov 2022 14:38:35 +0100 Subject: [PATCH 09/27] CI: Simplify if conditions There is no need to put a ${{ }} around the if conditions. Signed-off-by: Hauke Mehrtens --- .github/workflows/kernel.yml | 2 +- .github/workflows/packages.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/kernel.yml b/.github/workflows/kernel.yml index 773e843bfd..a204be3395 100644 --- a/.github/workflows/kernel.yml +++ b/.github/workflows/kernel.yml @@ -156,7 +156,7 @@ jobs: ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}- - name: Download external toolchain - if: ${{ steps.cache-external-toolchain.outputs.cache-hit != 'true' }} + if: steps.cache-external-toolchain.outputs.cache-hit != 'true' shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: | diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 49d795c122..05f089e66e 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -93,7 +93,7 @@ jobs: key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }} - name: Download external toolchain - if: ${{ steps.cache-external-toolchain.outputs.cache-hit != 'true' }} + if: steps.cache-external-toolchain.outputs.cache-hit != 'true' shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: | From 7c406a5f0837b0bfc293b723932695176a8ef6fe Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Tue, 1 Nov 2022 19:10:01 +0100 Subject: [PATCH 10/27] CI: Extract the OpenWrt building to own sub workflow Extract the building of OpenWrt into an own workflow which is then triggered by the kernel.yml and packages.yml workflow with different inputs. This allows us to share much of the code of the workflow. Signed-off-by: Hauke Mehrtens --- .github/workflows/build.yml | 213 +++++++++++++++++++ .github/workflows/check-kernel-patches.yml | 93 ++++++++ .github/workflows/kernel.yml | 234 ++------------------- .github/workflows/packages.yml | 134 +----------- 4 files changed, 332 insertions(+), 342 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/check-kernel-patches.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..4cc1116d58 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,213 @@ +name: Build sub target + +on: + workflow_call: + inputs: + target: + required: true + type: string + include_feeds: + type: boolean + build_full: + type: boolean + build_all_modules: + type: boolean + build_all_kmods: + type: boolean + +permissions: + contents: read + +jobs: + setup_build: + name: Setup build + runs-on: ubuntu-latest + outputs: + owner_lc: ${{ steps.lower_owner.outputs.owner_lc }} + ccache_hash: ${{ steps.ccache_hash.outputs.ccache_hash }} + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set lower case owner name + id: lower_owner + run: | + OWNER_LC=$(echo "${{ github.repository_owner }}" \ + | tr '[:upper:]' '[:lower:]') + echo "owner_lc=$OWNER_LC" >> $GITHUB_OUTPUT + + - name: Generate ccache hash + id: ccache_hash + run: | + CCACHE_HASH=$(md5sum include/kernel-* | awk '{ print $1 }' \ + | md5sum | awk '{ print $1 }') + echo "ccache_hash=$CCACHE_HASH" >> $GITHUB_OUTPUT + + build: + name: Build with external toolchain + needs: setup_build + runs-on: ubuntu-latest + + container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest + + permissions: + contents: read + packages: read + + steps: + - name: Checkout master directory + uses: actions/checkout@v3 + with: + path: openwrt + + - name: Checkout packages feed + if: inputs.include_feeds == true + uses: actions/checkout@v3 + with: + repository: openwrt/packages + path: openwrt/feeds/packages + + - name: Checkout luci feed + if: inputs.include_feeds == true + uses: actions/checkout@v3 + with: + repository: openwrt/luci + path: openwrt/feeds/luci + + - name: Checkout routing feed + if: inputs.include_feeds == true + uses: actions/checkout@v3 + with: + repository: openwrt/routing + path: openwrt/feeds/routing + + - name: Checkout telephony feed + if: inputs.include_feeds == true + uses: actions/checkout@v3 + with: + repository: openwrt/telephony + path: openwrt/feeds/telephony + + - name: Fix permission + run: | + chown -R buildbot:buildbot openwrt + + - name: Initialization environment + run: | + TARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 1) + SUBTARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 2) + echo "TARGET=$TARGET" >> "$GITHUB_ENV" + echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV" + + - name: Update & Install feeds + if: inputs.include_feeds == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + + - name: Parse toolchain file + working-directory: openwrt + run: | + TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ + | grep ".*openwrt-toolchain.*tar.xz")" + TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') + TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) + + echo "TOOLCHAIN_FILE=$TOOLCHAIN_FILE" >> "$GITHUB_ENV" + echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV" + + - name: Cache external toolchain + id: cache-external-toolchain + uses: actions/cache@v3 + with: + path: openwrt/${{ env.TOOLCHAIN_FILE }} + key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }} + + - name: Cache ccache + uses: actions/cache@v3 + with: + path: openwrt/.ccache + key: ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-${{ needs.setup_build.outputs.ccache_hash }} + restore-keys: | + ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}- + + - name: Download external toolchain + if: steps.cache-external-toolchain.outputs.cache-hit != 'true' + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + wget -O - https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/${TOOLCHAIN_FILE}.tar.xz \ + | tar --xz -xf - + + - name: Extract prebuilt tools + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: ./scripts/ext-tools.sh --tools /tools.tar + + - name: Configure all kernel modules + if: inputs.build_all_kmods == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_ALL_KMODS=y >> .config + + - name: Configure all modules + if: inputs.build_all_modules == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_ALL=y >> .config + + - name: Configure external toolchain + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_DEVEL=y >> .config + echo CONFIG_AUTOREMOVE=y >> .config + echo CONFIG_CCACHE=y >> .config + + ./scripts/ext-toolchain.sh \ + --toolchain ${{ env.TOOLCHAIN_FILE }}/toolchain-* \ + --overwrite-config \ + --config ${{ env.TARGET }}/${{ env.SUBTARGET }} + + - name: Show configuration + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: ./scripts/diffconfig.sh + + - name: Build tools + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + + - name: Build toolchain + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: make toolchain/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + + - name: Build Kernel + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: make target/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + + - name: Build Kernel Kmods + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: make package/linux/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + + - name: Build everything + if: inputs.build_full == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: make -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + + - name: Upload logs + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ${{ env.TARGET }}-${{ env.SUBTARGET }}-logs + path: "openwrt/logs" diff --git a/.github/workflows/check-kernel-patches.yml b/.github/workflows/check-kernel-patches.yml new file mode 100644 index 0000000000..3608b5a3cc --- /dev/null +++ b/.github/workflows/check-kernel-patches.yml @@ -0,0 +1,93 @@ +name: Refresh kernel for target + +on: + workflow_call: + inputs: + target: + required: true + type: string + +permissions: + contents: read + +jobs: + setup_build: + name: Setup build + runs-on: ubuntu-latest + outputs: + owner_lc: ${{ steps.lower_owner.outputs.owner_lc }} + + steps: + - name: Set lower case owner name + id: lower_owner + run: | + OWNER_LC=$(echo "${{ github.repository_owner }}" \ + | tr '[:upper:]' '[:lower:]') + echo "owner_lc=$OWNER_LC" >> $GITHUB_OUTPUT + + check-patch: + name: Check Kernel patches + needs: setup_build + runs-on: ubuntu-latest + + container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest + + permissions: + contents: read + packages: read + + steps: + - name: Checkout master directory + uses: actions/checkout@v3 + with: + path: openwrt + + - name: Fix permission + run: | + chown -R buildbot:buildbot openwrt + + - name: Initialization environment + run: | + TARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 1) + SUBTARGET=$(echo ${{ inputs.target }} | cut -d "/" -f 2) + echo "TARGET=$TARGET" >> "$GITHUB_ENV" + echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV" + + - name: Extract prebuilt tools + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: ./scripts/ext-tools.sh --tools /tools.tar + + - name: Configure system + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_ALL_KMODS=y >> .config + echo CONFIG_DEVEL=y >> .config + echo CONFIG_AUTOREMOVE=y >> .config + echo CONFIG_CCACHE=y >> .config + + echo "CONFIG_TARGET_${{ env.TARGET }}=y" >> .config + echo "CONFIG_TARGET_${{ env.TARGET }}_${{ env.SUBTARGET }}=y" >> .config + + make defconfig + + - name: Build tools + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: make tools/quilt/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh + + - name: Refresh Kernel patches + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + make target/linux/refresh V=s + + . .github/workflows/scripts/ci_helpers.sh + + if git diff --name-only --exit-code; then + success "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} seems ok" + else + err "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} require refresh. (run 'make target/linux/refresh' and force push this pr)" + exit 1 + fi diff --git a/.github/workflows/kernel.yml b/.github/workflows/kernel.yml index a204be3395..06efe14d5c 100644 --- a/.github/workflows/kernel.yml +++ b/.github/workflows/kernel.yml @@ -23,27 +23,11 @@ jobs: runs-on: ubuntu-latest outputs: target: ${{ steps.find_targets.outputs.target }} - owner_lc: ${{ steps.lower_owner.outputs.owner_lc }} - ccache_hash: ${{ steps.ccache_hash.outputs.ccache_hash }} steps: - name: Checkout uses: actions/checkout@v3 - - name: Set lower case owner name - id: lower_owner - run: | - OWNER_LC=$(echo "${{ github.repository_owner }}" \ - | tr '[:upper:]' '[:lower:]') - echo "owner_lc=$OWNER_LC" >> $GITHUB_OUTPUT - - - name: Generate ccache hash - id: ccache_hash - run: | - CCACHE_HASH=$(md5sum include/kernel-* | awk '{ print $1 }' \ - | md5sum | awk '{ print $1 }') - echo "ccache_hash=$CCACHE_HASH" >> $GITHUB_OUTPUT - - name: Set targets id: find_targets run: | @@ -69,218 +53,30 @@ jobs: build: name: Build Kernel with external toolchain needs: determine_targets - runs-on: ubuntu-latest + permissions: + contents: read + packages: read strategy: fail-fast: False matrix: target: ${{fromJson(needs.determine_targets.outputs.target)}} + uses: ./.github/workflows/build.yml + with: + target: ${{ matrix.target }} + build_all_kmods: true + include_feeds: true - container: ghcr.io/${{ needs.determine_targets.outputs.owner_lc }}/tools:latest - - permissions: - contents: read - packages: read - - steps: - - name: Checkout master directory - uses: actions/checkout@v3 - with: - path: openwrt - - - name: Checkout packages feed - uses: actions/checkout@v3 - with: - repository: openwrt/packages - path: openwrt/feeds/packages - - - name: Checkout luci feed - uses: actions/checkout@v3 - with: - repository: openwrt/luci - path: openwrt/feeds/luci - - - name: Checkout routing feed - uses: actions/checkout@v3 - with: - repository: openwrt/routing - path: openwrt/feeds/routing - - - name: Checkout telephony feed - uses: actions/checkout@v3 - with: - repository: openwrt/telephony - path: openwrt/feeds/telephony - - - name: Fix permission - run: | - chown -R buildbot:buildbot openwrt - - - name: Initialization environment - run: | - TARGET=$(echo ${{ matrix.target }} | cut -d "/" -f 1) - SUBTARGET=$(echo ${{ matrix.target }} | cut -d "/" -f 2) - echo "TARGET=$TARGET" >> "$GITHUB_ENV" - echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV" - - - name: Update & Install feeds - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: | - ./scripts/feeds update -a - ./scripts/feeds install -a - - - name: Parse toolchain file - working-directory: openwrt - run: | - TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ - | grep ".*openwrt-toolchain.*tar.xz")" - TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') - TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) - - echo "TOOLCHAIN_FILE=$TOOLCHAIN_FILE" >> "$GITHUB_ENV" - echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV" - - - name: Cache external toolchain - id: cache-external-toolchain - uses: actions/cache@v3 - with: - path: openwrt/${{ env.TOOLCHAIN_FILE }} - key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }} - - - name: Cache ccache - uses: actions/cache@v3 - with: - path: openwrt/.ccache - key: ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-${{ needs.determine_targets.outputs.ccache_hash }} - restore-keys: | - ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}- - - - name: Download external toolchain - if: steps.cache-external-toolchain.outputs.cache-hit != 'true' - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: | - wget -O - https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/${TOOLCHAIN_FILE}.tar.xz \ - | tar --xz -xf - - - - name: Extract prebuilt tools - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: ./scripts/ext-tools.sh --tools /tools.tar - - - name: Configure external toolchain - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: | - echo CONFIG_ALL_KMODS=y >> .config - echo CONFIG_DEVEL=y >> .config - echo CONFIG_AUTOREMOVE=y >> .config - echo CONFIG_CCACHE=y >> .config - - ./scripts/ext-toolchain.sh \ - --toolchain ${{ env.TOOLCHAIN_FILE }}/toolchain-* \ - --overwrite-config \ - --config ${{ env.TARGET }}/${{ env.SUBTARGET }} - - - name: Show configuration - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: ./scripts/diffconfig.sh - - - name: Build tools - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Build toolchain - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make toolchain/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Build Kernel - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make target/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Build Kernel Kmods - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make package/linux/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Upload logs - if: failure() - uses: actions/upload-artifact@v3 - with: - name: ${{ env.TARGET }}-${{ env.SUBTARGET }}-logs - path: "openwrt/logs" - - check-patch: + check-kernel-patches: name: Check Kernel patches needs: determine_targets - runs-on: ubuntu-latest + permissions: + contents: read + packages: read strategy: fail-fast: False matrix: target: ${{fromJson(needs.determine_targets.outputs.target)}} + uses: ./.github/workflows/check-kernel-patches.yml + with: + target: ${{ matrix.target }} - container: ghcr.io/${{ needs.determine_targets.outputs.owner_lc }}/tools:latest - - permissions: - contents: read - packages: read - - steps: - - name: Checkout master directory - uses: actions/checkout@v3 - with: - path: openwrt - - - name: Fix permission - run: | - chown -R buildbot:buildbot openwrt - - - name: Initialization environment - run: | - TARGET=$(echo ${{ matrix.target }} | cut -d "/" -f 1) - SUBTARGET=$(echo ${{ matrix.target }} | cut -d "/" -f 2) - echo "TARGET=$TARGET" >> "$GITHUB_ENV" - echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV" - - - name: Extract prebuilt tools - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: ./scripts/ext-tools.sh --tools /tools.tar - - - name: Setup Config - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: | - echo CONFIG_ALL_KMODS=y >> .config - echo CONFIG_DEVEL=y >> .config - echo CONFIG_AUTOREMOVE=y >> .config - echo CONFIG_CCACHE=y >> .config - - echo "CONFIG_TARGET_${{ env.TARGET }}=y" >> .config - echo "CONFIG_TARGET_${{ env.TARGET }}_${{ env.SUBTARGET }}=y" >> .config - - make defconfig - - - name: Build tools - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make tools/quilt/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Refresh Kernel patches - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: | - make target/linux/refresh V=s - - . .github/workflows/scripts/ci_helpers.sh - - if git diff --name-only --exit-code; then - success "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} seems ok" - else - err "Kernel patches for ${{ env.TARGET }}/${{ env.SUBTARGET }} require refresh. (run 'make target/linux/refresh' and force push this pr)" - exit 1 - fi diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 05f089e66e..a374b37023 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -22,132 +22,20 @@ permissions: contents: read jobs: - setup_build: - name: Setup build - runs-on: ubuntu-latest - outputs: - owner_lc: ${{ steps.lower_owner.outputs.owner_lc }} - - steps: - - name: Set lower case owner name - id: lower_owner - run: | - OWNER_LC=$(echo "${{ github.repository_owner }}" \ - | tr '[:upper:]' '[:lower:]') - echo "owner_lc=$OWNER_LC" >> $GITHUB_OUTPUT - build: - name: Build all core packages - needs: setup_build - runs-on: ubuntu-latest + permissions: + contents: read + packages: read strategy: fail-fast: False matrix: include: - - name: malta-be - target: malta - subtarget: be - - name: x86-64 - target: x86 - subtarget: 64 + - target: malta/be + - target: x86/64 + uses: ./.github/workflows/build.yml + with: + target: ${{ matrix.target }} + build_all_kmods: true + build_all_modules: true + build_full: true - container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest - - permissions: - contents: read - packages: read - - steps: - - name: Checkout master directory - uses: actions/checkout@v3 - with: - path: openwrt - - - name: Fix permission - run: | - chown -R buildbot:buildbot openwrt - - - name: Initialization environment - run: | - TARGET=$(echo ${{ matrix.target }}) - SUBTARGET=$(echo ${{ matrix.subtarget }}) - echo "TARGET=$TARGET" >> "$GITHUB_ENV" - echo "SUBTARGET=$SUBTARGET" >> "$GITHUB_ENV" - - - name: Parse toolchain file - working-directory: openwrt - run: | - TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ - | grep ".*openwrt-toolchain.*tar.xz")" - TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') - TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) - - echo "TOOLCHAIN_FILE=$TOOLCHAIN_FILE" >> "$GITHUB_ENV" - echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV" - - - name: Cache external toolchain - id: cache-external-toolchain - uses: actions/cache@v3 - with: - path: openwrt/${{ env.TOOLCHAIN_FILE }} - key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }} - - - name: Download external toolchain - if: steps.cache-external-toolchain.outputs.cache-hit != 'true' - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: | - wget -O - https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/${TOOLCHAIN_FILE}.tar.xz \ - | tar --xz -xf - - - - name: Extract prebuilt tools - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: ./scripts/ext-tools.sh --tools /tools.tar - - - name: Create configuration - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: | - echo CONFIG_ALL=y >> .config - echo CONFIG_ALL_KMODS=y >> .config - echo CONFIG_ALL_NONSHARED=y >> .config - echo CONFIG_DEVEL=y >> .config - echo CONFIG_AUTOREMOVE=y >> .config - - ./scripts/ext-toolchain.sh \ - --toolchain ${{ env.TOOLCHAIN_FILE }}/toolchain-* \ - --overwrite-config \ - --config ${{ env.TARGET }}/${{ env.SUBTARGET }} - - - name: Show configuration - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: ./scripts/diffconfig.sh - - - name: Build tools - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Build toolchain - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make toolchain/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Build Kernel - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make target/compile -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Build everything - shell: su buildbot -c "sh -e {0}" - working-directory: openwrt - run: make -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh - - - name: Upload logs - if: failure() - uses: actions/upload-artifact@v3 - with: - name: ${{ env.TARGET }}-${{ env.SUBTARGET }}-logs - path: "openwrt/logs" From 08f5283392674fe874c7f441128319263ce0d171 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 5 Nov 2022 14:27:11 +0100 Subject: [PATCH 11/27] CI: Allow building with internal toolchain This adds an option to build with internal toolchain. This can be used to build targets which are currently not build by the OpenWrt build bots and which needs their own toolchain build for every build. Building the toolchain takes about 30 minutes compared to using the external toolchain which takes some seconds. Signed-off-by: Hauke Mehrtens --- .github/workflows/build.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4cc1116d58..b29698a774 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,6 +6,8 @@ on: target: required: true type: string + build_toolchain: + type: boolean include_feeds: type: boolean build_full: @@ -109,6 +111,7 @@ jobs: ./scripts/feeds install -a - name: Parse toolchain file + if: inputs.build_toolchain == false working-directory: openwrt run: | TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ @@ -120,6 +123,7 @@ jobs: echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV" - name: Cache external toolchain + if: inputs.build_toolchain == false id: cache-external-toolchain uses: actions/cache@v3 with: @@ -135,7 +139,7 @@ jobs: ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}- - name: Download external toolchain - if: steps.cache-external-toolchain.outputs.cache-hit != 'true' + if: inputs.build_toolchain == false && steps.cache-external-toolchain.outputs.cache-hit != 'true' shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: | @@ -162,6 +166,7 @@ jobs: echo CONFIG_ALL=y >> .config - name: Configure external toolchain + if: inputs.build_toolchain == false shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: | @@ -174,6 +179,20 @@ jobs: --overwrite-config \ --config ${{ env.TARGET }}/${{ env.SUBTARGET }} + - name: Configure internal toolchain + if: inputs.build_toolchain == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_DEVEL=y >> .config + echo CONFIG_AUTOREMOVE=y >> .config + echo CONFIG_CCACHE=y >> .config + + echo "CONFIG_TARGET_${{ env.TARGET }}=y" >> .config + echo "CONFIG_TARGET_${{ env.TARGET }}_${{ env.SUBTARGET }}=y" >> .config + + make defconfig + - name: Show configuration shell: su buildbot -c "sh -e {0}" working-directory: openwrt From cf361b85097216538dfac5ad7b22050390b0bc67 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 3 Dec 2022 03:04:40 +0100 Subject: [PATCH 12/27] CI: Build all boards and testing kernel This adds options to build all boards of a selected target and an additional option to build the testing kernel instead of the normal kernel. This can be used by other trigger work flows. Signed-off-by: Hauke Mehrtens --- .github/workflows/build.yml | 20 ++++++++++++++++++++ .github/workflows/check-kernel-patches.yml | 9 +++++++++ 2 files changed, 29 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b29698a774..347eb5a90c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,6 +6,8 @@ on: target: required: true type: string + testing: + type: boolean build_toolchain: type: boolean include_feeds: @@ -16,6 +18,8 @@ on: type: boolean build_all_kmods: type: boolean + build_all_boards: + type: boolean permissions: contents: read @@ -151,6 +155,13 @@ jobs: working-directory: openwrt run: ./scripts/ext-tools.sh --tools /tools.tar + - name: Configure testing kernel + if: inputs.testing == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_TESTING_KERNEL=y >> .config + - name: Configure all kernel modules if: inputs.build_all_kmods == true shell: su buildbot -c "sh -e {0}" @@ -165,6 +176,15 @@ jobs: run: | echo CONFIG_ALL=y >> .config + - name: Configure all boards + if: inputs.build_all_boards == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_TARGET_MULTI_PROFILE=y >> .config + echo CONFIG_TARGET_PER_DEVICE_ROOTFS=y >> .config + echo CONFIG_TARGET_ALL_PROFILES=y >> .config + - name: Configure external toolchain if: inputs.build_toolchain == false shell: su buildbot -c "sh -e {0}" diff --git a/.github/workflows/check-kernel-patches.yml b/.github/workflows/check-kernel-patches.yml index 3608b5a3cc..c04cb27b37 100644 --- a/.github/workflows/check-kernel-patches.yml +++ b/.github/workflows/check-kernel-patches.yml @@ -6,6 +6,8 @@ on: target: required: true type: string + testing: + type: boolean permissions: contents: read @@ -58,6 +60,13 @@ jobs: working-directory: openwrt run: ./scripts/ext-tools.sh --tools /tools.tar + - name: Configure testing kernel + if: inputs.testing == true + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_TESTING_KERNEL=y >> .config + - name: Configure system shell: su buildbot -c "sh -e {0}" working-directory: openwrt From 077622a198039f9f3d907b5cf4d77a52d7592c49 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 27 Nov 2022 19:51:44 +0100 Subject: [PATCH 13/27] mac80211: Update to version 5.15.81 The removed patches were applied upstream. Signed-off-by: Hauke Mehrtens --- package/kernel/mac80211/Makefile | 6 +- .../patches/ath/404-regd_no_assoc_hints.patch | 4 +- ...add-encapsulation-offloading-support.patch | 20 ++--- .../930-ath10k_add_tpt_led_trigger.patch | 4 +- ...75-ath10k-use-tpt-trigger-by-default.patch | 2 +- ...-power-reduction-for-US-regulatory-d.patch | 8 +- ...etting-wlan-MAC-address-using-device.patch | 2 +- .../mac80211/patches/brcm/998-survey.patch | 4 +- ...define-RF5592-in-init_eeprom-routine.patch | 2 +- ...dd-support-for-external-PA-on-MT7620.patch | 8 +- ...ove-up-and-reuse-busy-wait-functions.patch | 4 +- ...-RF-self-TXDC-calibration-for-MT7620.patch | 4 +- ...-rt2x00-add-r-calibration-for-MT7620.patch | 4 +- ...00-add-RXDCOC-calibration-for-MT7620.patch | 4 +- ...2x00-add-RXIQ-calibration-for-MT7620.patch | 4 +- ...-run-Rt5592-IQ-calibration-on-MT7620.patch | 52 ------------ ...0-add-TX-LOFT-calibration-for-MT7620.patch | 4 +- ...x00-move-helper-functions-up-in-file.patch | 2 +- ...t-TX_SW_CFG1-MAC-register-for-MT7620.patch | 52 ------------ ...t-VGC-gain-for-both-chains-of-MT7620.patch | 50 ------------ ...1-rt2x00-set-SoC-wmac-clock-register.patch | 70 ---------------- ...ectly-set-BBP-register-86-for-MT7620.patch | 79 ------------------- .../subsys/150-disable_addr_notifier.patch | 2 +- ...211_hwsim-make-6-GHz-channels-usable.patch | 8 +- ...introduce-set_radar_offchan-callback.patch | 4 +- ...offchannel_chain-structs-to-backgrou.patch | 4 +- ...11-MBSSID-beacon-handling-in-AP-mode.patch | 6 +- .../500-mac80211_configure_antenna_gain.patch | 2 +- 28 files changed, 56 insertions(+), 359 deletions(-) delete mode 100644 package/kernel/mac80211/patches/rt2x00/009-v6.1-rt2x00-don-t-run-Rt5592-IQ-calibration-on-MT7620.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/013-v6.1-rt2x00-set-correct-TX_SW_CFG1-MAC-register-for-MT7620.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/014-v6.1-rt2x00-set-VGC-gain-for-both-chains-of-MT7620.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/015-v6.1-rt2x00-set-SoC-wmac-clock-register.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/016-v6.1-rt2x00-correctly-set-BBP-register-86-for-MT7620.patch diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index ec35bf67ec..8ecbe30418 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=5.15.74-1 +PKG_VERSION:=5.15.81-1 PKG_RELEASE:=1 -PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.74/ -PKG_HASH:=98098d0cab24cc76a04db738dc746a0c8d38d180398805481224f141cca06423 +PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.81/ +PKG_HASH:=5227d3c35ccebacfaee6b8180b3a87b9910f3c94ee768ebc5c0fef3c86b6146d PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION) diff --git a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch index 02281adf4a..c66301efa7 100644 --- a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch +++ b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch @@ -1,6 +1,6 @@ --- a/net/wireless/reg.c +++ b/net/wireless/reg.c -@@ -3309,6 +3309,8 @@ void regulatory_hint_country_ie(struct w +@@ -3315,6 +3315,8 @@ void regulatory_hint_country_ie(struct w enum environment_cap env = ENVIRON_ANY; struct regulatory_request *request = NULL, *lr; @@ -9,7 +9,7 @@ /* IE len must be evenly divisible by 2 */ if (country_ie_len & 0x01) return; -@@ -3560,6 +3562,7 @@ static bool is_wiphy_all_set_reg_flag(en +@@ -3566,6 +3568,7 @@ static bool is_wiphy_all_set_reg_flag(en void regulatory_hint_disconnect(void) { diff --git a/package/kernel/mac80211/patches/ath10k/081-04-v6.0-ath10k-add-encapsulation-offloading-support.patch b/package/kernel/mac80211/patches/ath10k/081-04-v6.0-ath10k-add-encapsulation-offloading-support.patch index abca7aac9e..e45a3ba860 100644 --- a/package/kernel/mac80211/patches/ath10k/081-04-v6.0-ath10k-add-encapsulation-offloading-support.patch +++ b/package/kernel/mac80211/patches/ath10k/081-04-v6.0-ath10k-add-encapsulation-offloading-support.patch @@ -50,7 +50,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -3710,6 +3710,9 @@ ath10k_mac_tx_h_get_txmode(struct ath10k +@@ -3717,6 +3717,9 @@ ath10k_mac_tx_h_get_txmode(struct ath10k const struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(skb); __le16 fc = hdr->frame_control; @@ -60,7 +60,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com if (!vif || vif->type == NL80211_IFTYPE_MONITOR) return ATH10K_HW_TXRX_RAW; -@@ -3870,6 +3873,12 @@ static void ath10k_mac_tx_h_fill_cb(stru +@@ -3877,6 +3880,12 @@ static void ath10k_mac_tx_h_fill_cb(stru bool noack = false; cb->flags = 0; @@ -73,7 +73,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com if (!ath10k_tx_h_use_hwcrypto(vif, skb)) cb->flags |= ATH10K_SKB_F_NO_HWCRYPT; -@@ -3908,6 +3917,7 @@ static void ath10k_mac_tx_h_fill_cb(stru +@@ -3915,6 +3924,7 @@ static void ath10k_mac_tx_h_fill_cb(stru cb->flags |= ATH10K_SKB_F_RAW_TX; } @@ -81,7 +81,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com cb->vif = vif; cb->txq = txq; cb->airtime_est = airtime; -@@ -4031,7 +4041,11 @@ static int ath10k_mac_tx(struct ath10k * +@@ -4038,7 +4048,11 @@ static int ath10k_mac_tx(struct ath10k * ath10k_tx_h_seq_no(vif, skb); break; case ATH10K_HW_TXRX_ETHERNET: @@ -94,7 +94,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com break; case ATH10K_HW_TXRX_RAW: if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags) && -@@ -4643,12 +4657,10 @@ static void ath10k_mac_op_tx(struct ieee +@@ -4650,12 +4664,10 @@ static void ath10k_mac_op_tx(struct ieee struct ieee80211_vif *vif = info->control.vif; struct ieee80211_sta *sta = control->sta; struct ieee80211_txq *txq = NULL; @@ -107,7 +107,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com int ret; u16 airtime; -@@ -4662,8 +4674,14 @@ static void ath10k_mac_op_tx(struct ieee +@@ -4669,8 +4681,14 @@ static void ath10k_mac_op_tx(struct ieee is_mgmt = (txpath == ATH10K_MAC_TX_HTT_MGMT); if (is_htt) { @@ -123,7 +123,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com ret = ath10k_htt_tx_inc_pending(htt); if (ret) { -@@ -5463,6 +5481,30 @@ static int ath10k_mac_set_txbf_conf(stru +@@ -5470,6 +5488,30 @@ static int ath10k_mac_set_txbf_conf(stru ar->wmi.vdev_param->txbf, value); } @@ -154,7 +154,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com /* * TODO: * Figure out how to handle WMI_VDEV_SUBTYPE_P2P_DEVICE, -@@ -5672,15 +5714,7 @@ static int ath10k_add_interface(struct i +@@ -5679,15 +5721,7 @@ static int ath10k_add_interface(struct i arvif->def_wep_key_idx = -1; @@ -171,7 +171,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com /* Configuring number of spatial stream for monitor interface is causing * target assert in qca9888 and qca6174. -@@ -9368,6 +9402,7 @@ static const struct ieee80211_ops ath10k +@@ -9372,6 +9406,7 @@ static const struct ieee80211_ops ath10k .stop = ath10k_stop, .config = ath10k_config, .add_interface = ath10k_add_interface, @@ -179,7 +179,7 @@ Link: https://lore.kernel.org/r/20220516032519.29831-5-ryazanov.s.a@gmail.com .remove_interface = ath10k_remove_interface, .configure_filter = ath10k_configure_filter, .bss_info_changed = ath10k_bss_info_changed, -@@ -10037,6 +10072,12 @@ int ath10k_mac_register(struct ath10k *a +@@ -10041,6 +10076,12 @@ int ath10k_mac_register(struct ath10k *a if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map)) ieee80211_hw_set(ar->hw, SUPPORTS_TDLS_BUFFER_STA); diff --git a/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch b/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch index 9dfde4385e..bc6f5dbc5c 100644 --- a/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch +++ b/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -9894,6 +9894,21 @@ static int ath10k_mac_init_rd(struct ath +@@ -9898,6 +9898,21 @@ static int ath10k_mac_init_rd(struct ath return 0; } @@ -22,7 +22,7 @@ int ath10k_mac_register(struct ath10k *ar) { static const u32 cipher_suites[] = { -@@ -10252,6 +10267,12 @@ int ath10k_mac_register(struct ath10k *a +@@ -10256,6 +10271,12 @@ int ath10k_mac_register(struct ath10k *a ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; diff --git a/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch b/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch index 842853ddf4..253fe96ddf 100644 --- a/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch +++ b/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch @@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin if (ret) --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -10269,7 +10269,7 @@ int ath10k_mac_register(struct ath10k *a +@@ -10273,7 +10273,7 @@ int ath10k_mac_register(struct ath10k *a ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; #ifdef CPTCFG_MAC80211_LEDS diff --git a/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch b/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch index a45addf119..424985f114 100644 --- a/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch +++ b/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch @@ -28,7 +28,7 @@ Forwarded: no --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -1021,6 +1021,40 @@ static inline int ath10k_vdev_setup_sync +@@ -1028,6 +1028,40 @@ static inline int ath10k_vdev_setup_sync return ar->last_wmi_vdev_start_status; } @@ -69,7 +69,7 @@ Forwarded: no static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id) { struct cfg80211_chan_def *chandef = NULL; -@@ -1053,7 +1087,8 @@ static int ath10k_monitor_vdev_start(str +@@ -1060,7 +1094,8 @@ static int ath10k_monitor_vdev_start(str arg.channel.min_power = 0; arg.channel.max_power = channel->max_power * 2; arg.channel.max_reg_power = channel->max_reg_power * 2; @@ -79,7 +79,7 @@ Forwarded: no reinit_completion(&ar->vdev_setup_done); reinit_completion(&ar->vdev_delete_done); -@@ -1499,7 +1534,8 @@ static int ath10k_vdev_start_restart(str +@@ -1506,7 +1541,8 @@ static int ath10k_vdev_start_restart(str arg.channel.min_power = 0; arg.channel.max_power = chandef->chan->max_power * 2; arg.channel.max_reg_power = chandef->chan->max_reg_power * 2; @@ -89,7 +89,7 @@ Forwarded: no if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { arg.ssid = arvif->u.ap.ssid; -@@ -3427,7 +3463,8 @@ static int ath10k_update_channel_list(st +@@ -3434,7 +3470,8 @@ static int ath10k_update_channel_list(st ch->min_power = 0; ch->max_power = channel->max_power * 2; ch->max_reg_power = channel->max_reg_power * 2; diff --git a/package/kernel/mac80211/patches/brcm/001-v5.19-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch b/package/kernel/mac80211/patches/brcm/001-v5.19-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch index 03d9f8ecd8..e06e350b62 100644 --- a/package/kernel/mac80211/patches/brcm/001-v5.19-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch +++ b/package/kernel/mac80211/patches/brcm/001-v5.19-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch @@ -72,7 +72,7 @@ Link: https://lore.kernel.org/r/20220506044246.67146-1-pavel@loebl.cz #include #include #include -@@ -1226,7 +1227,8 @@ static int brcmf_bus_started(struct brcm +@@ -1227,7 +1228,8 @@ static int brcmf_bus_started(struct brcm brcmf_dbg(TRACE, "\n"); /* add primary networking interface */ diff --git a/package/kernel/mac80211/patches/brcm/998-survey.patch b/package/kernel/mac80211/patches/brcm/998-survey.patch index d194e25177..234a97b7bf 100644 --- a/package/kernel/mac80211/patches/brcm/998-survey.patch +++ b/package/kernel/mac80211/patches/brcm/998-survey.patch @@ -100,7 +100,7 @@ .add_key = brcmf_cfg80211_add_key, --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c -@@ -1363,6 +1363,8 @@ int brcmf_attach(struct device *dev) +@@ -1364,6 +1364,8 @@ int brcmf_attach(struct device *dev) /* Link to bus module */ drvr->hdrlen = 0; @@ -109,7 +109,7 @@ /* Attach and link in the protocol */ ret = brcmf_proto_attach(drvr); -@@ -1445,6 +1447,12 @@ void brcmf_detach(struct device *dev) +@@ -1446,6 +1448,12 @@ void brcmf_detach(struct device *dev) if (drvr == NULL) return; diff --git a/package/kernel/mac80211/patches/rt2x00/001-v6.1-rt2x00-define-RF5592-in-init_eeprom-routine.patch b/package/kernel/mac80211/patches/rt2x00/001-v6.1-rt2x00-define-RF5592-in-init_eeprom-routine.patch index 351e24a4d5..4d5b670279 100644 --- a/package/kernel/mac80211/patches/rt2x00/001-v6.1-rt2x00-define-RF5592-in-init_eeprom-routine.patch +++ b/package/kernel/mac80211/patches/rt2x00/001-v6.1-rt2x00-define-RF5592-in-init_eeprom-routine.patch @@ -41,7 +41,7 @@ Acked-by: Stanislaw Gruszka --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -9435,6 +9435,8 @@ static int rt2800_init_eeprom(struct rt2 +@@ -9461,6 +9461,8 @@ static int rt2800_init_eeprom(struct rt2 rf = RF3853; else if (rt2x00_rt(rt2x00dev, RT5350)) rf = RF5350; diff --git a/package/kernel/mac80211/patches/rt2x00/003-v6.1-rt2x00-add-support-for-external-PA-on-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/003-v6.1-rt2x00-add-support-for-external-PA-on-MT7620.patch index 216f583063..26c2020918 100644 --- a/package/kernel/mac80211/patches/rt2x00/003-v6.1-rt2x00-add-support-for-external-PA-on-MT7620.patch +++ b/package/kernel/mac80211/patches/rt2x00/003-v6.1-rt2x00-add-support-for-external-PA-on-MT7620.patch @@ -50,8 +50,8 @@ Acked-by: Stanislaw Gruszka * EEPROM LNA --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -4368,6 +4368,43 @@ static void rt2800_config_channel(struct - rt2800_iq_calibrate(rt2x00dev, rf->channel); +@@ -4372,6 +4372,43 @@ static void rt2800_config_channel(struct + rt2800_iq_calibrate(rt2x00dev, rf->channel); } + if (rt2x00_rt(rt2x00dev, RT6352)) { @@ -94,7 +94,7 @@ Acked-by: Stanislaw Gruszka bbp = rt2800_bbp_read(rt2x00dev, 4); rt2x00_set_field8(&bbp, BBP4_BANDWIDTH, 2 * conf_is_ht40(conf)); rt2800_bbp_write(rt2x00dev, 4, bbp); -@@ -9566,7 +9603,8 @@ static int rt2800_init_eeprom(struct rt2 +@@ -9592,7 +9629,8 @@ static int rt2800_init_eeprom(struct rt2 */ eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1); @@ -104,7 +104,7 @@ Acked-by: Stanislaw Gruszka if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_EXTERNAL_TX0_PA_3352)) __set_bit(CAPABILITY_EXTERNAL_PA_TX0, -@@ -9577,6 +9615,18 @@ static int rt2800_init_eeprom(struct rt2 +@@ -9603,6 +9641,18 @@ static int rt2800_init_eeprom(struct rt2 &rt2x00dev->cap_flags); } diff --git a/package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch b/package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch index da453074a1..c9b0d82b64 100644 --- a/package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch +++ b/package/kernel/mac80211/patches/rt2x00/004-v6.1-rt2x00-move-up-and-reuse-busy-wait-functions.patch @@ -120,7 +120,7 @@ Acked-by: Stanislaw Gruszka if (chan->center_freq > 2457) { bbp = rt2800_bbp_read(rt2x00dev, 30); -@@ -6249,46 +6282,6 @@ static int rt2800_init_registers(struct +@@ -6275,46 +6308,6 @@ static int rt2800_init_registers(struct return 0; } @@ -167,7 +167,7 @@ Acked-by: Stanislaw Gruszka static void rt2800_bbp4_mac_if_ctrl(struct rt2x00_dev *rt2x00dev) { -@@ -9110,7 +9103,7 @@ int rt2800_enable_radio(struct rt2x00_de +@@ -9136,7 +9129,7 @@ int rt2800_enable_radio(struct rt2x00_de /* * Wait BBP/RF to wake up. */ diff --git a/package/kernel/mac80211/patches/rt2x00/005-v6.1-rt2x00-add-RF-self-TXDC-calibration-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/005-v6.1-rt2x00-add-RF-self-TXDC-calibration-for-MT7620.patch index 4e98d6a375..9ba16bee12 100644 --- a/package/kernel/mac80211/patches/rt2x00/005-v6.1-rt2x00-add-RF-self-TXDC-calibration-for-MT7620.patch +++ b/package/kernel/mac80211/patches/rt2x00/005-v6.1-rt2x00-add-RF-self-TXDC-calibration-for-MT7620.patch @@ -42,7 +42,7 @@ v2: use ++i instead of i = i + 1 in loops --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -8428,6 +8428,53 @@ static void rt2800_init_rfcsr_5592(struc +@@ -8454,6 +8454,53 @@ static void rt2800_init_rfcsr_5592(struc rt2800_led_open_drain_enable(rt2x00dev); } @@ -96,7 +96,7 @@ v2: use ++i instead of i = i + 1 in loops static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, bool set_bw, bool is_ht40) { -@@ -9035,6 +9082,7 @@ static void rt2800_init_rfcsr_6352(struc +@@ -9061,6 +9108,7 @@ static void rt2800_init_rfcsr_6352(struc rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00); rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C); diff --git a/package/kernel/mac80211/patches/rt2x00/006-v6.1-rt2x00-add-r-calibration-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/006-v6.1-rt2x00-add-r-calibration-for-MT7620.patch index 7c69970166..e15de28ea0 100644 --- a/package/kernel/mac80211/patches/rt2x00/006-v6.1-rt2x00-add-r-calibration-for-MT7620.patch +++ b/package/kernel/mac80211/patches/rt2x00/006-v6.1-rt2x00-add-r-calibration-for-MT7620.patch @@ -54,7 +54,7 @@ v2: use rt2800_wait_bbp_rf_ready() * PWR_PIN_CFG: --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -8475,6 +8475,138 @@ static void rt2800_rf_self_txdc_cal(stru +@@ -8501,6 +8501,138 @@ static void rt2800_rf_self_txdc_cal(stru rt2800_register_write(rt2x00dev, RF_BYPASS2, mac052c); } @@ -193,7 +193,7 @@ v2: use rt2800_wait_bbp_rf_ready() static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, bool set_bw, bool is_ht40) { -@@ -9082,6 +9214,7 @@ static void rt2800_init_rfcsr_6352(struc +@@ -9108,6 +9240,7 @@ static void rt2800_init_rfcsr_6352(struc rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00); rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C); diff --git a/package/kernel/mac80211/patches/rt2x00/007-v6.1-rt2x00-add-RXDCOC-calibration-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/007-v6.1-rt2x00-add-RXDCOC-calibration-for-MT7620.patch index 8da41e875a..a09d0abed0 100644 --- a/package/kernel/mac80211/patches/rt2x00/007-v6.1-rt2x00-add-RXDCOC-calibration-for-MT7620.patch +++ b/package/kernel/mac80211/patches/rt2x00/007-v6.1-rt2x00-add-RXDCOC-calibration-for-MT7620.patch @@ -41,7 +41,7 @@ Acked-by: Stanislaw Gruszka --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -8607,6 +8607,65 @@ static void rt2800_r_calibration(struct +@@ -8633,6 +8633,65 @@ static void rt2800_r_calibration(struct rt2800_register_write(rt2x00dev, PWR_PIN_CFG, MAC_PWR_PIN_CFG); } @@ -107,7 +107,7 @@ Acked-by: Stanislaw Gruszka static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, bool set_bw, bool is_ht40) { -@@ -9216,6 +9275,7 @@ static void rt2800_init_rfcsr_6352(struc +@@ -9242,6 +9301,7 @@ static void rt2800_init_rfcsr_6352(struc rt2800_r_calibration(rt2x00dev); rt2800_rf_self_txdc_cal(rt2x00dev); diff --git a/package/kernel/mac80211/patches/rt2x00/008-v6.1-rt2x00-add-RXIQ-calibration-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/008-v6.1-rt2x00-add-RXIQ-calibration-for-MT7620.patch index dc516da43a..c532ba512b 100644 --- a/package/kernel/mac80211/patches/rt2x00/008-v6.1-rt2x00-add-RXIQ-calibration-for-MT7620.patch +++ b/package/kernel/mac80211/patches/rt2x00/008-v6.1-rt2x00-add-RXIQ-calibration-for-MT7620.patch @@ -43,7 +43,7 @@ v2: use rt2800_wait_bbp_rf_ready(), fix indentation --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -8666,6 +8666,380 @@ static void rt2800_rxdcoc_calibration(st +@@ -8692,6 +8692,380 @@ static void rt2800_rxdcoc_calibration(st rt2800_rfcsr_write_bank(rt2x00dev, 0, 2, saverfb0r2); } @@ -424,7 +424,7 @@ v2: use rt2800_wait_bbp_rf_ready(), fix indentation static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, bool set_bw, bool is_ht40) { -@@ -9278,6 +9652,7 @@ static void rt2800_init_rfcsr_6352(struc +@@ -9304,6 +9678,7 @@ static void rt2800_init_rfcsr_6352(struc rt2800_rxdcoc_calibration(rt2x00dev); rt2800_bw_filter_calibration(rt2x00dev, true); rt2800_bw_filter_calibration(rt2x00dev, false); diff --git a/package/kernel/mac80211/patches/rt2x00/009-v6.1-rt2x00-don-t-run-Rt5592-IQ-calibration-on-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/009-v6.1-rt2x00-don-t-run-Rt5592-IQ-calibration-on-MT7620.patch deleted file mode 100644 index 6b27f6a705..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/009-v6.1-rt2x00-don-t-run-Rt5592-IQ-calibration-on-MT7620.patch +++ /dev/null @@ -1,52 +0,0 @@ -From patchwork Sat Sep 17 20:28:29 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 12979250 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -Date: Sat, 17 Sep 2022 21:28:29 +0100 -From: Daniel Golle -To: linux-wireless@vger.kernel.org, Stanislaw Gruszka , - Helmut Schaa -Cc: Kalle Valo , - "David S. Miller" , - Eric Dumazet , - Jakub Kicinski , - Paolo Abeni , - Johannes Berg -Subject: [PATCH v3 09/16] rt2x00: don't run Rt5592 IQ calibration on MT7620 -Message-ID: - <31a1c34ddbd296b82f38c18c9ae7339059215fdc.1663445157.git.daniel@makrotopia.org> -References: -MIME-Version: 1.0 -Content-Disposition: inline -In-Reply-To: -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -The function rt2800_iq_calibrate is intended for Rt5592 only. -Don't call it for MT7620 which has it's own calibration functions. - -Reported-by: Serge Vasilugin -Signed-off-by: Daniel Golle ---- -v2: test for RT5592 instead of !RT6352 - - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -4398,7 +4398,8 @@ static void rt2800_config_channel(struct - reg = (rf->channel <= 14 ? 0x1c : 0x24) + 2*rt2x00dev->lna_gain; - rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg); - -- rt2800_iq_calibrate(rt2x00dev, rf->channel); -+ if (rt2x00_rt(rt2x00dev, RT5592)) -+ rt2800_iq_calibrate(rt2x00dev, rf->channel); - } - - if (rt2x00_rt(rt2x00dev, RT6352)) { diff --git a/package/kernel/mac80211/patches/rt2x00/010-v6.1-rt2x00-add-TX-LOFT-calibration-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/010-v6.1-rt2x00-add-TX-LOFT-calibration-for-MT7620.patch index bb01ff1dca..092d91afb6 100644 --- a/package/kernel/mac80211/patches/rt2x00/010-v6.1-rt2x00-add-TX-LOFT-calibration-for-MT7620.patch +++ b/package/kernel/mac80211/patches/rt2x00/010-v6.1-rt2x00-add-TX-LOFT-calibration-for-MT7620.patch @@ -45,7 +45,7 @@ Reported-by: kernel test robot --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -9041,6 +9041,907 @@ restore_value: +@@ -9066,6 +9066,907 @@ restore_value: rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, savemacsysctrl); } @@ -953,7 +953,7 @@ Reported-by: kernel test robot static void rt2800_bbp_core_soft_reset(struct rt2x00_dev *rt2x00dev, bool set_bw, bool is_ht40) { -@@ -9653,6 +10554,7 @@ static void rt2800_init_rfcsr_6352(struc +@@ -9678,6 +10579,7 @@ static void rt2800_init_rfcsr_6352(struc rt2800_rxdcoc_calibration(rt2x00dev); rt2800_bw_filter_calibration(rt2x00dev, true); rt2800_bw_filter_calibration(rt2x00dev, false); diff --git a/package/kernel/mac80211/patches/rt2x00/011-v6.1-rt2x00-move-helper-functions-up-in-file.patch b/package/kernel/mac80211/patches/rt2x00/011-v6.1-rt2x00-move-helper-functions-up-in-file.patch index 07a32b17be..b07d449d6d 100644 --- a/package/kernel/mac80211/patches/rt2x00/011-v6.1-rt2x00-move-helper-functions-up-in-file.patch +++ b/package/kernel/mac80211/patches/rt2x00/011-v6.1-rt2x00-move-helper-functions-up-in-file.patch @@ -65,7 +65,7 @@ Acked-by: Stanislaw Gruszka static u8 rt2800_rfcsr_read(struct rt2x00_dev *rt2x00dev, const unsigned int word) { -@@ -6947,26 +6967,6 @@ static void rt2800_init_bbp_5592(struct +@@ -6972,26 +6992,6 @@ static void rt2800_init_bbp_5592(struct rt2800_bbp_write(rt2x00dev, 103, 0xc0); } diff --git a/package/kernel/mac80211/patches/rt2x00/013-v6.1-rt2x00-set-correct-TX_SW_CFG1-MAC-register-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/013-v6.1-rt2x00-set-correct-TX_SW_CFG1-MAC-register-for-MT7620.patch deleted file mode 100644 index 3d7af17b16..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/013-v6.1-rt2x00-set-correct-TX_SW_CFG1-MAC-register-for-MT7620.patch +++ /dev/null @@ -1,52 +0,0 @@ -From patchwork Sat Sep 17 20:29:26 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 12979254 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -Date: Sat, 17 Sep 2022 21:29:26 +0100 -From: Daniel Golle -To: linux-wireless@vger.kernel.org, Stanislaw Gruszka , - Helmut Schaa -Cc: Kalle Valo , - "David S. Miller" , - Eric Dumazet , - Jakub Kicinski , - Paolo Abeni , - Johannes Berg -Subject: [PATCH v3 13/16] rt2x00: set correct TX_SW_CFG1 MAC register for - MT7620 -Message-ID: - <4be38975ce600a34249e12d09a3cb758c6e71071.1663445157.git.daniel@makrotopia.org> -References: -MIME-Version: 1.0 -Content-Disposition: inline -In-Reply-To: -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -Set correct TX_SW_CFG1 MAC register as it is done also in v3 of the -vendor driver[1]. - -[1]: https://gitlab.com/dm38/padavan-ng/-/blob/master/trunk/proprietary/rt_wifi/rtpci/3.0.X.X/mt76x2/chips/rt6352.c#L531 -Reported-by: Serge Vasilugin -Signed-off-by: Daniel Golle -Acked-by: Stanislaw Gruszka ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -5966,7 +5966,7 @@ static int rt2800_init_registers(struct - rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404); - } else if (rt2x00_rt(rt2x00dev, RT6352)) { - rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000401); -- rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0000); -+ rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0001); - rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000); - rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x00000000); - rt2800_register_write(rt2x00dev, TX0_BB_GAIN_ATTEN, 0x0); diff --git a/package/kernel/mac80211/patches/rt2x00/014-v6.1-rt2x00-set-VGC-gain-for-both-chains-of-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/014-v6.1-rt2x00-set-VGC-gain-for-both-chains-of-MT7620.patch deleted file mode 100644 index 27b8d92cd2..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/014-v6.1-rt2x00-set-VGC-gain-for-both-chains-of-MT7620.patch +++ /dev/null @@ -1,50 +0,0 @@ -From patchwork Sat Sep 17 20:29:40 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 12979255 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -Date: Sat, 17 Sep 2022 21:29:40 +0100 -From: Daniel Golle -To: linux-wireless@vger.kernel.org, Stanislaw Gruszka , - Helmut Schaa -Cc: Kalle Valo , - "David S. Miller" , - Eric Dumazet , - Jakub Kicinski , - Paolo Abeni , - Johannes Berg -Subject: [PATCH v3 14/16] rt2x00: set VGC gain for both chains of MT7620 -Message-ID: - <29e161397e5c9d9399da0fe87d44458aa2b90a78.1663445157.git.daniel@makrotopia.org> -References: -MIME-Version: 1.0 -Content-Disposition: inline -In-Reply-To: -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -Set bbp66 for all chains of the MT7620. - -Reported-by: Serge Vasilugin -Signed-off-by: Daniel Golle -Acked-by: Stanislaw Gruszka ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -5743,7 +5743,8 @@ static inline void rt2800_set_vgc(struct - if (qual->vgc_level != vgc_level) { - if (rt2x00_rt(rt2x00dev, RT3572) || - rt2x00_rt(rt2x00dev, RT3593) || -- rt2x00_rt(rt2x00dev, RT3883)) { -+ rt2x00_rt(rt2x00dev, RT3883) || -+ rt2x00_rt(rt2x00dev, RT6352)) { - rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, - vgc_level); - } else if (rt2x00_rt(rt2x00dev, RT5592)) { diff --git a/package/kernel/mac80211/patches/rt2x00/015-v6.1-rt2x00-set-SoC-wmac-clock-register.patch b/package/kernel/mac80211/patches/rt2x00/015-v6.1-rt2x00-set-SoC-wmac-clock-register.patch deleted file mode 100644 index 3cadc91da6..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/015-v6.1-rt2x00-set-SoC-wmac-clock-register.patch +++ /dev/null @@ -1,70 +0,0 @@ -From patchwork Sat Sep 17 20:29:55 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 12979256 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -Date: Sat, 17 Sep 2022 21:29:55 +0100 -From: Daniel Golle -To: linux-wireless@vger.kernel.org, Stanislaw Gruszka , - Helmut Schaa -Cc: Kalle Valo , - "David S. Miller" , - Eric Dumazet , - Jakub Kicinski , - Paolo Abeni , - Johannes Berg -Subject: [PATCH v3 15/16] rt2x00: set SoC wmac clock register -Message-ID: - <3e275d259f476f597dab91a9c395015ef3fe3284.1663445157.git.daniel@makrotopia.org> -References: -MIME-Version: 1.0 -Content-Disposition: inline -In-Reply-To: -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -Instead of using the default value 33 (pci), set US_CYC_CNT init based -on Programming guide: -If available, set chipset bus clock with fallback to cpu clock/3. - -Reported-by: Serge Vasilugin -Signed-off-by: Daniel Golle -Acked-by: Stanislaw Gruszka ---- - .../net/wireless/ralink/rt2x00/rt2800lib.c | 21 +++++++++++++++++++ - 1 file changed, 21 insertions(+) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -6229,6 +6229,27 @@ static int rt2800_init_registers(struct - reg = rt2800_register_read(rt2x00dev, US_CYC_CNT); - rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, 125); - rt2800_register_write(rt2x00dev, US_CYC_CNT, reg); -+ } else if (rt2x00_is_soc(rt2x00dev)) { -+ struct clk *clk = clk_get_sys("bus", NULL); -+ int rate; -+ -+ if (IS_ERR(clk)) { -+ clk = clk_get_sys("cpu", NULL); -+ -+ if (IS_ERR(clk)) { -+ rate = 125; -+ } else { -+ rate = clk_get_rate(clk) / 3000000; -+ clk_put(clk); -+ } -+ } else { -+ rate = clk_get_rate(clk) / 1000000; -+ clk_put(clk); -+ } -+ -+ reg = rt2800_register_read(rt2x00dev, US_CYC_CNT); -+ rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, rate); -+ rt2800_register_write(rt2x00dev, US_CYC_CNT, reg); - } - - reg = rt2800_register_read(rt2x00dev, HT_FBK_CFG0); diff --git a/package/kernel/mac80211/patches/rt2x00/016-v6.1-rt2x00-correctly-set-BBP-register-86-for-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/016-v6.1-rt2x00-correctly-set-BBP-register-86-for-MT7620.patch deleted file mode 100644 index 5ddbbf1dd6..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/016-v6.1-rt2x00-correctly-set-BBP-register-86-for-MT7620.patch +++ /dev/null @@ -1,79 +0,0 @@ -From patchwork Sat Sep 17 20:30:09 2022 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 12979257 -X-Patchwork-Delegate: kvalo@adurom.com -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by smtp.lore.kernel.org (Postfix) with ESMTP id E9118ECAAA1 - for ; - Sat, 17 Sep 2022 20:30:22 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S229639AbiIQUaV (ORCPT - ); - Sat, 17 Sep 2022 16:30:21 -0400 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53912 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S229628AbiIQUaT (ORCPT - ); - Sat, 17 Sep 2022 16:30:19 -0400 -Received: from fudo.makrotopia.org (fudo.makrotopia.org - [IPv6:2a07:2ec0:3002::71]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1AEA822B27 - for ; - Sat, 17 Sep 2022 13:30:16 -0700 (PDT) -Received: from local - by fudo.makrotopia.org with esmtpsa - (TLS1.3:TLS_AES_256_GCM_SHA384:256) - (Exim 4.96) - (envelope-from ) - id 1oZeS7-0003ra-0k; - Sat, 17 Sep 2022 22:30:15 +0200 -Date: Sat, 17 Sep 2022 21:30:09 +0100 -From: Daniel Golle -To: linux-wireless@vger.kernel.org, Stanislaw Gruszka , - Helmut Schaa -Cc: Kalle Valo , - "David S. Miller" , - Eric Dumazet , - Jakub Kicinski , - Paolo Abeni , - Johannes Berg -Subject: [PATCH v3 16/16] rt2x00: correctly set BBP register 86 for MT7620 -Message-ID: - <257267247ee4fa7ebc6a5d0c4948b3f8119c0d77.1663445157.git.daniel@makrotopia.org> -References: -MIME-Version: 1.0 -Content-Disposition: inline -In-Reply-To: -Precedence: bulk -List-ID: -X-Mailing-List: linux-wireless@vger.kernel.org - -Instead of 0 set the correct value for BBP register 86 for MT7620. - -Reported-by: Serge Vasilugin -Signed-off-by: Daniel Golle -Acked-by: Stanislaw Gruszka ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -4225,7 +4225,10 @@ static void rt2800_config_channel(struct - rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain); - rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain); - rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain); -- rt2800_bbp_write(rt2x00dev, 86, 0); -+ if (rt2x00_rt(rt2x00dev, RT6352)) -+ rt2800_bbp_write(rt2x00dev, 86, 0x38); -+ else -+ rt2800_bbp_write(rt2x00dev, 86, 0); - } - - if (rf->channel <= 14) { diff --git a/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch b/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch index 7631282a0b..7ad5427ceb 100644 --- a/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch +++ b/package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch @@ -60,7 +60,7 @@ Subject: [PATCH] mac80211: disable ipv4/ipv6 address notifiers fail_ifa: #endif wiphy_unregister(local->hw.wiphy); -@@ -1371,10 +1371,10 @@ void ieee80211_unregister_hw(struct ieee +@@ -1373,10 +1373,10 @@ void ieee80211_unregister_hw(struct ieee tasklet_kill(&local->tx_pending_tasklet); tasklet_kill(&local->tasklet); diff --git a/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch b/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch index 80c86e3d92..9c3b38adbf 100644 --- a/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch +++ b/package/kernel/mac80211/patches/subsys/307-mac80211_hwsim-make-6-GHz-channels-usable.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c -@@ -3003,15 +3003,19 @@ static void mac80211_hwsim_he_capab(stru +@@ -3008,15 +3008,19 @@ static void mac80211_hwsim_he_capab(stru { u16 n_iftype_data; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau return; } -@@ -3301,6 +3305,12 @@ static int mac80211_hwsim_new_radio(stru +@@ -3306,6 +3310,12 @@ static int mac80211_hwsim_new_radio(stru sband->vht_cap.vht_mcs.tx_mcs_map = sband->vht_cap.vht_mcs.rx_mcs_map; break; @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau case NL80211_BAND_S1GHZ: memcpy(&sband->s1g_cap, &hwsim_s1g_cap, sizeof(sband->s1g_cap)); -@@ -3311,6 +3321,13 @@ static int mac80211_hwsim_new_radio(stru +@@ -3316,6 +3326,13 @@ static int mac80211_hwsim_new_radio(stru continue; } @@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau sband->ht_cap.ht_supported = true; sband->ht_cap.cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 | IEEE80211_HT_CAP_GRN_FLD | -@@ -3324,10 +3341,6 @@ static int mac80211_hwsim_new_radio(stru +@@ -3329,10 +3346,6 @@ static int mac80211_hwsim_new_radio(stru sband->ht_cap.mcs.rx_mask[0] = 0xff; sband->ht_cap.mcs.rx_mask[1] = 0xff; sband->ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; diff --git a/package/kernel/mac80211/patches/subsys/319-v5.17-mac80211-introduce-set_radar_offchan-callback.patch b/package/kernel/mac80211/patches/subsys/319-v5.17-mac80211-introduce-set_radar_offchan-callback.patch index eb80afbccb..6197abda56 100644 --- a/package/kernel/mac80211/patches/subsys/319-v5.17-mac80211-introduce-set_radar_offchan-callback.patch +++ b/package/kernel/mac80211/patches/subsys/319-v5.17-mac80211-introduce-set_radar_offchan-callback.patch @@ -40,7 +40,7 @@ Signed-off-by: Johannes Berg struct ieee80211_vif *vif, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -4344,6 +4344,18 @@ out: +@@ -4341,6 +4341,18 @@ out: return err; } @@ -59,7 +59,7 @@ Signed-off-by: Johannes Berg const struct cfg80211_ops mac80211_config_ops = { .add_virtual_intf = ieee80211_add_iface, .del_virtual_intf = ieee80211_del_iface, -@@ -4448,4 +4460,5 @@ const struct cfg80211_ops mac80211_confi +@@ -4445,4 +4457,5 @@ const struct cfg80211_ops mac80211_confi .reset_tid_config = ieee80211_reset_tid_config, .set_sar_specs = ieee80211_set_sar_specs, .color_change = ieee80211_color_change, diff --git a/package/kernel/mac80211/patches/subsys/320-v5.17-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch b/package/kernel/mac80211/patches/subsys/320-v5.17-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch index 483b87cd88..608e72468d 100644 --- a/package/kernel/mac80211/patches/subsys/320-v5.17-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch +++ b/package/kernel/mac80211/patches/subsys/320-v5.17-cfg80211-rename-offchannel_chain-structs-to-backgrou.patch @@ -156,7 +156,7 @@ Signed-off-by: Johannes Berg NUM_NL80211_EXT_FEATURES, --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -4345,15 +4345,15 @@ out: +@@ -4342,15 +4342,15 @@ out: } static int @@ -176,7 +176,7 @@ Signed-off-by: Johannes Berg } const struct cfg80211_ops mac80211_config_ops = { -@@ -4460,5 +4460,5 @@ const struct cfg80211_ops mac80211_confi +@@ -4457,5 +4457,5 @@ const struct cfg80211_ops mac80211_confi .reset_tid_config = ieee80211_reset_tid_config, .set_sar_specs = ieee80211_set_sar_specs, .color_change = ieee80211_color_change, diff --git a/package/kernel/mac80211/patches/subsys/324-v5.18-mac80211-MBSSID-beacon-handling-in-AP-mode.patch b/package/kernel/mac80211/patches/subsys/324-v5.18-mac80211-MBSSID-beacon-handling-in-AP-mode.patch index e2b05719db..a8fc02f92d 100644 --- a/package/kernel/mac80211/patches/subsys/324-v5.18-mac80211-MBSSID-beacon-handling-in-AP-mode.patch +++ b/package/kernel/mac80211/patches/subsys/324-v5.18-mac80211-MBSSID-beacon-handling-in-AP-mode.patch @@ -195,7 +195,7 @@ Signed-off-by: Johannes Berg return err; } *changed |= err; -@@ -3463,8 +3528,11 @@ static int ieee80211_set_csa_beacon(stru +@@ -3460,8 +3525,11 @@ static int ieee80211_set_csa_beacon(stru static void ieee80211_color_change_abort(struct ieee80211_sub_if_data *sdata) { sdata->vif.color_change_active = false; @@ -209,7 +209,7 @@ Signed-off-by: Johannes Berg cfg80211_color_change_aborted_notify(sdata->dev); } -@@ -4202,8 +4270,11 @@ ieee80211_set_after_color_change_beacon( +@@ -4199,8 +4267,11 @@ ieee80211_set_after_color_change_beacon( ret = ieee80211_assign_beacon(sdata, sdata->u.ap.next_beacon, NULL, NULL); @@ -223,7 +223,7 @@ Signed-off-by: Johannes Berg if (ret < 0) return ret; -@@ -4246,7 +4317,11 @@ ieee80211_set_color_change_beacon(struct +@@ -4243,7 +4314,11 @@ ieee80211_set_color_change_beacon(struct err = ieee80211_assign_beacon(sdata, ¶ms->beacon_color_change, NULL, &color_change); if (err < 0) { diff --git a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch index 0e83e9bd8e..962ae93cc7 100644 --- a/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch +++ b/package/kernel/mac80211/patches/subsys/500-mac80211_configure_antenna_gain.patch @@ -77,7 +77,7 @@ static void ieee80211_rfkill_poll(struct wiphy *wiphy) { struct ieee80211_local *local = wiphy_priv(wiphy); -@@ -4516,6 +4529,7 @@ const struct cfg80211_ops mac80211_confi +@@ -4513,6 +4526,7 @@ const struct cfg80211_ops mac80211_confi .set_wiphy_params = ieee80211_set_wiphy_params, .set_tx_power = ieee80211_set_tx_power, .get_tx_power = ieee80211_get_tx_power, From d010e36a0dfc94e044b7f3b6b21a845067aaf020 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Fri, 2 Dec 2022 22:20:07 +0100 Subject: [PATCH 14/27] tools/xz: update to 5.2.9 Update to latest release. Signed-off-by: Nick Hainke --- tools/xz/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/xz/Makefile b/tools/xz/Makefile index 37a9d79efc..7d3392fefe 100644 --- a/tools/xz/Makefile +++ b/tools/xz/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xz -PKG_VERSION:=5.2.8 +PKG_VERSION:=5.2.9 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=@SF/lzmautils \ http://tukaani.org/xz -PKG_HASH:=1f8a43d9fcf325d049a31fe4514dc8c44a6d00ce8860d48c4212d1e349d2a3ed +PKG_HASH:=b194507fba3a462a753c553149ccdaa168337bcb7deefddd067ba987c83dfce6 PKG_CPE_ID:=cpe:/a:tukaani:xz HOST_BUILD_PARALLEL:=1 From 7e83cdf3f7024e563088d69c6e95f772634fb098 Mon Sep 17 00:00:00 2001 From: Tony Butler Date: Mon, 28 Nov 2022 04:05:30 -0800 Subject: [PATCH 15/27] build: config: cleanup impossible dependency logic some config `depends on` lines contained outdated kernel version checks that can no longer happen and had become non-operational; clean them up cosmetic change with no functional effect Signed-off-by: Tony Butler --- config/Config-images.in | 1 - config/Config-kernel.in | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/config/Config-images.in b/config/Config-images.in index dcd7575c3e..aa23876259 100644 --- a/config/Config-images.in +++ b/config/Config-images.in @@ -47,7 +47,6 @@ menu "Target Images" bool "xz" config TARGET_INITRAMFS_COMPRESSION_ZSTD - depends on !LINUX_5_4 && !LINUX_4_19 bool "zstd" endchoice diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 34c606a848..eed3fba1aa 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -779,7 +779,7 @@ if KERNEL_CGROUPS bool "Memory Resource Controller for Control Groups" default y select KERNEL_FREEZER - depends on KERNEL_RESOURCE_COUNTERS || !LINUX_3_18 + depends on KERNEL_RESOURCE_COUNTERS help Provides a memory resource controller that manages both anonymous memory and page cache. (See Documentation/cgroups/memory.txt) From 8719f73fa2beddb259013801ca912b96fbc83543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= Date: Mon, 28 Nov 2022 15:45:12 +0100 Subject: [PATCH 16/27] ramips: mt7621: enable lzma-loader for ZyXEL WAP6805 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixing "Uncompressing Kernel Image ... LZMA ERROR 1 - must RESET board to recover". Signed-off-by: Bjørn Mork --- target/linux/ramips/image/mt7621.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 943fc62ecd..82b4731bb5 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -2575,6 +2575,7 @@ TARGET_DEVICES += zyxel_nwa55axe define Device/zyxel_wap6805 $(Device/dsa-migration) + $(Device/uimage-lzma-loader) BLOCKSIZE := 128k PAGESIZE := 2048 KERNEL_SIZE := 4096k @@ -2583,7 +2584,7 @@ define Device/zyxel_wap6805 DEVICE_VENDOR := ZyXEL DEVICE_MODEL := WAP6805 DEVICE_PACKAGES := kmod-mt7603 kmod-mt7621-qtn-rgmii - KERNEL := $(KERNEL_DTB) | uImage lzma | uimage-padhdr 160 + KERNEL := $$(KERNEL/lzma-loader) | uImage none | uimage-padhdr 160 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata endef TARGET_DEVICES += zyxel_wap6805 From 97c77fff28cf001399f33c7bc1ec6687ba18450b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Sun, 4 Dec 2022 08:08:24 +0100 Subject: [PATCH 17/27] Revert "mvebu: switch default kernel to 5.15" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 5429411f732ba76eced30b5b596ec9c0374d0965 as upstream in commit e5f31552674e ("ethernet: fix PTP_1588_CLOCK dependencies") has changed `PTP_1588_CLOCK` dependency handling in 5.15 kernel. That currently leads to `CONFIG_NET_DSA_MV88E6XXX=m` in images produced by buildbots due to `CONFIG_ALL_KMODS=y` config option being used in those builds, which leads to a broken LAN bridge network on several devices. References: https://lists.infradead.org/pipermail/openwrt-devel/2022-December/039950.html Signed-off-by: Petr Štetiar --- target/linux/mvebu/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile index 2971f3fcaf..6a1e0f63f7 100644 --- a/target/linux/mvebu/Makefile +++ b/target/linux/mvebu/Makefile @@ -9,7 +9,8 @@ BOARDNAME:=Marvell EBU Armada FEATURES:=fpu usb pci pcie gpio nand squashfs ramdisk boot-part rootfs-part legacy-sdcard targz SUBTARGETS:=cortexa9 cortexa53 cortexa72 -KERNEL_PATCHVER:=5.15 +KERNEL_PATCHVER:=5.10 +KERNEL_TESTING_PATCHVER:=5.15 include $(INCLUDE_DIR)/target.mk From d11d93b9ae8cd59e9f8ea09b7f125a2f9569846c Mon Sep 17 00:00:00 2001 From: Kien Truong Date: Mon, 3 Oct 2022 18:51:40 +0700 Subject: [PATCH 18/27] rockchip: enable watchdog driver Enable Synopsys DesignWare watchdog driver for rockchip device Tested on NanoPi R2S Signed-off-by: Kien Truong --- target/linux/rockchip/armv8/config-5.15 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/rockchip/armv8/config-5.15 b/target/linux/rockchip/armv8/config-5.15 index 371d06d164..39802ee728 100644 --- a/target/linux/rockchip/armv8/config-5.15 +++ b/target/linux/rockchip/armv8/config-5.15 @@ -191,6 +191,7 @@ CONFIG_DUMMY_CONSOLE=y CONFIG_DWMAC_DWC_QOS_ETH=y CONFIG_DWMAC_GENERIC=y CONFIG_DWMAC_ROCKCHIP=y +CONFIG_DW_WATCHDOG=y CONFIG_EDAC_SUPPORT=y CONFIG_EEPROM_AT24=y CONFIG_EMAC_ROCKCHIP=y @@ -639,7 +640,7 @@ CONFIG_VM_EVENT_COUNTERS=y CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_WATCHDOG is not set +CONFIG_WATCHDOG_CORE=y CONFIG_XARRAY_MULTI=y CONFIG_XPS=y CONFIG_XXHASH=y From a8f3c97ce83dc97cd7acb040a715ecd75d824161 Mon Sep 17 00:00:00 2001 From: Senis John Date: Sat, 19 Nov 2022 11:30:54 +0800 Subject: [PATCH 19/27] ramips: add support for HiWiFi HC5611 CPU: MediaTek MT7628AN @ 575 MHz Flash: 16 MB RAM: 128 MB Ethernet: 10/100Mbps x 1 Wlan: 300 Mbps USB: USB 2.0 x 1 LED: red/green x 1 Button: reset x 1 1. Open https://www.hiwifi.wtf/, Get Cloud token and unlock ssh 2. Upload the openwrt firmware to the router via SCP 3. Login the router via SSH 4. Run `mtd -r write path_to_firmware.bin firmware` I have tested on my device. - The LED will display RED on power-on, After system start completed, trun GREEN - Reset button working now. Long press after 5s will reset factory. Short press less 1s will reboot the device - USB can working under official u-boot Signed-off-by: Senis John --- .../ramips/dts/mt7628an_hiwifi_hc5611.dts | 30 +++++++++++++++++++ target/linux/ramips/image/mt76x8.mk | 8 +++++ .../mt76x8/base-files/etc/board.d/01_leds | 3 ++ .../mt76x8/base-files/etc/board.d/02_network | 2 ++ .../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 1 + 5 files changed, 44 insertions(+) create mode 100644 target/linux/ramips/dts/mt7628an_hiwifi_hc5611.dts diff --git a/target/linux/ramips/dts/mt7628an_hiwifi_hc5611.dts b/target/linux/ramips/dts/mt7628an_hiwifi_hc5611.dts new file mode 100644 index 0000000000..17de299b3c --- /dev/null +++ b/target/linux/ramips/dts/mt7628an_hiwifi_hc5611.dts @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "mt7628an_hiwifi_hc5x61a.dtsi" + +/ { + compatible = "hiwifi,hc5611", "mediatek,mt7628an-soc"; + model = "HiWiFi HC5611"; + + leds { + compatible = "gpio-leds"; + + led_system: system { + label = "green:system"; + gpios = <&gpio 11 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + internet { + label = "red:internet"; + gpios = <&gpio 6 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&state_default { + gpio { + groups = "gpio", "spi cs1", "wdt"; + function = "gpio"; + }; +}; diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk index 5e8d05b042..1b7e786b52 100644 --- a/target/linux/ramips/image/mt76x8.mk +++ b/target/linux/ramips/image/mt76x8.mk @@ -243,6 +243,14 @@ define Device/hilink_hlk-7688a endef TARGET_DEVICES += hilink_hlk-7688a +define Device/hiwifi_hc5611 + IMAGE_SIZE := 15808k + DEVICE_VENDOR := HiWiFi + DEVICE_MODEL := HC5611 + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci +endef +TARGET_DEVICES += hiwifi_hc5611 + define Device/hiwifi_hc5661a IMAGE_SIZE := 15808k DEVICE_VENDOR := HiWiFi diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds index 8a21756225..66628cea09 100644 --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds @@ -46,6 +46,9 @@ skylab,skw92a) hilink,hlk-7688a) ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt" ;; +hiwifi,hc5611) + ucidef_set_led_netdev "internet" "internet" "red:internet" "br-lan" "tx rx" + ;; hiwifi,hc5661a|\ hiwifi,hc5761a) ucidef_set_led_switch "internet" "internet" "blue:internet" "switch0" "0x10" diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network index 38ff38bac5..d85cdf3db7 100644 --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network @@ -14,6 +14,7 @@ ramips_setup_interfaces() glinet,microuter-n300|\ glinet,vixmini|\ hak5,wifi-pineapple-mk7|\ + hiwifi,hc5611|\ mediatek,linkit-smart-7688|\ minew,g1-c|\ onion,omega2p|\ @@ -226,6 +227,7 @@ ramips_setup_macs() zyxel,keenetic-extra-ii) wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1) ;; + hiwifi,hc5611|\ hiwifi,hc5661a|\ hiwifi,hc5761a|\ hiwifi,hc5861b) diff --git a/target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac index b8f8faee9c..c9e205a0fc 100644 --- a/target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +++ b/target/linux/ramips/mt76x8/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac @@ -10,6 +10,7 @@ PHYNBR=${DEVPATH##*/phy} board=$(board_name) case "$board" in + hiwifi,hc5611|\ hiwifi,hc5661a|\ hiwifi,hc5761a|\ hiwifi,hc5861b) From ada4d0d0abefe776fb633a7d7974d766465940f5 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Tue, 29 Nov 2022 19:39:04 +0100 Subject: [PATCH 20/27] iucode-tool: fix compile error with musl libc and USE_CPUID_DEVICE Add patch to fix compilation error with USE_CPUID_DEVICE enabled and musl used as libc. Musl doesn't add limits.h header by default and this is required if USE_CPUID_DEVICE is used. The package currently compile because fortify headers include limits.h by default. Signed-off-by: Christian Marangi --- ...missing-limits.h-for-USE_CPUID_DEVIC.patch | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 package/system/iucode-tool/patches/001-iucode_tool-add-missing-limits.h-for-USE_CPUID_DEVIC.patch diff --git a/package/system/iucode-tool/patches/001-iucode_tool-add-missing-limits.h-for-USE_CPUID_DEVIC.patch b/package/system/iucode-tool/patches/001-iucode_tool-add-missing-limits.h-for-USE_CPUID_DEVIC.patch new file mode 100644 index 0000000000..ef9e5ab2f8 --- /dev/null +++ b/package/system/iucode-tool/patches/001-iucode_tool-add-missing-limits.h-for-USE_CPUID_DEVIC.patch @@ -0,0 +1,29 @@ +From e1137cdafc97c0a8b2a0717a771823f3c4320087 Mon Sep 17 00:00:00 2001 +From: Christian Marangi +Date: Tue, 29 Nov 2022 19:37:03 +0100 +Subject: [PATCH] iucode_tool: add missing limits.h for USE_CPUID_DEVICE + +If USE_CPUID_DEVICE is enabled, compilation fails for missing define. +Add the missing include to fix compilation error with USE_CPUID_DEVICE +define. + +Signed-off-by: Christian Marangi +--- + iucode_tool.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/iucode_tool.c b/iucode_tool.c +index 4bba5db..0246035 100644 +--- a/iucode_tool.c ++++ b/iucode_tool.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.37.2 + From 75550771ae76fbcab4160e10b73287f918727384 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sun, 27 Nov 2022 19:45:38 +0100 Subject: [PATCH 21/27] CI: tools: support per branch tools container Add support to push per branch container tools. For anything not official stick to latest tag that correspond to test run from master. If we are testing something for one of the openwrt stable branch, parse the branch name or the tag and push dedicated tools containers. To use the stable container for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9] (example openwrt-21.02-fixup) Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9] will refresh the tools container with the matching tag. (example branch openwrt-22.03 -> tools:openwrt-22.03) (example branch openwrt-22.03-test -> tools:openwrt-22.03) Signed-off-by: Christian Marangi --- .github/workflows/tools.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index def01678c6..304b5f7d62 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -174,6 +174,31 @@ jobs: run: | echo "OWNER_LC=${OWNER,,}" >> "$GITHUB_ENV" + # Per branch tools container tag + # By default stick to latest + # For official test targetting openwrt stable branch + # Get the branch or parse the tag and push dedicated tools containers + # Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9] + # will refresh the tools container with the matching tag. + # (example branch openwrt-22.03 -> tools:openwrt-22.03) + # (example branch openwrt-22.03-test -> tools:openwrt-22.03) + - name: Determine tools container tag + run: | + CONTAINER_TAG=latest + + if [ ${{ github.ref_type }} == "branch" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then + CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\).*/\1/')" + fi + elif [ ${{ github.ref_type }} == "tag" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then + CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" + fi + fi + + echo "Tools container to push tools:$CONTAINER_TAG" + echo "CONTAINER_TAG=$CONTAINER_TAG" >> "$GITHUB_ENV" + - name: Checkout uses: actions/checkout@v3 with: @@ -197,5 +222,5 @@ jobs: with: context: openwrt push: true - tags: ghcr.io/${{ env.OWNER_LC }}/tools:latest + tags: ghcr.io/${{ env.OWNER_LC }}/tools:${{ env.CONTAINER_TAG }} file: openwrt/.github/workflows/Dockerfile.tools From abe8a4824210966e0899724bf4561a89216a1e36 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sun, 27 Nov 2022 19:53:08 +0100 Subject: [PATCH 22/27] CI: build: add support for per branch tools container Add support in build shared workflow for per branch tools container. With pr the target branch is parsed and the right container is used. To use the stable container for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9]- (example openwrt-21.02-fixup) Signed-off-by: Christian Marangi --- .github/workflows/build.yml | 29 +++++++++++++++++++++- .github/workflows/check-kernel-patches.yml | 29 +++++++++++++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 347eb5a90c..510ff6a879 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,6 +31,7 @@ jobs: outputs: owner_lc: ${{ steps.lower_owner.outputs.owner_lc }} ccache_hash: ${{ steps.ccache_hash.outputs.ccache_hash }} + container_tag: ${{ steps.determine_tools_container.outputs.container_tag }} steps: - name: Checkout @@ -50,12 +51,38 @@ jobs: | md5sum | awk '{ print $1 }') echo "ccache_hash=$CCACHE_HASH" >> $GITHUB_OUTPUT + # Per branch tools container tag + # By default stick to latest + # For official test targetting openwrt stable branch + # Get the branch or parse the tag and push dedicated tools containers + # For local test to use the correct container for stable release testing + # you need to use for the branch name a prefix of openwrt-[0-9][0-9].[0-9][0-9]- + - name: Determine tools container tag + id: determine_tools_container + run: | + CONTAINER_TAG=latest + if [ -n "${{ github.base_ref }}" ]; then + if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then + CONTAINER_TAG="${{ github.base_ref }}" + fi + elif [ ${{ github.ref_type }} == "branch" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]-'; then + CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\)-.*/\1/')" + fi + elif [ ${{ github.ref_type }} == "tag" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then + CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" + fi + fi + echo "Tools container to use tools:$CONTAINER_TAG" + echo "container_tag=$CONTAINER_TAG" >> $GITHUB_OUTPUT + build: name: Build with external toolchain needs: setup_build runs-on: ubuntu-latest - container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest + container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:${{ needs.setup_build.outputs.container_tag }} permissions: contents: read diff --git a/.github/workflows/check-kernel-patches.yml b/.github/workflows/check-kernel-patches.yml index c04cb27b37..f01782d5da 100644 --- a/.github/workflows/check-kernel-patches.yml +++ b/.github/workflows/check-kernel-patches.yml @@ -18,6 +18,7 @@ jobs: runs-on: ubuntu-latest outputs: owner_lc: ${{ steps.lower_owner.outputs.owner_lc }} + container_tag: ${{ steps.determine_tools_container.outputs.container_tag }} steps: - name: Set lower case owner name @@ -27,12 +28,38 @@ jobs: | tr '[:upper:]' '[:lower:]') echo "owner_lc=$OWNER_LC" >> $GITHUB_OUTPUT + # Per branch tools container tag + # By default stick to latest + # For official test targetting openwrt stable branch + # Get the branch or parse the tag and push dedicated tools containers + # For local test to use the correct container for stable release testing + # you need to use for the branch name a prefix of openwrt-[0-9][0-9].[0-9][0-9]- + - name: Determine tools container tag + id: determine_tools_container + run: | + CONTAINER_TAG=latest + if [ -n "${{ github.base_ref }}" ]; then + if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then + CONTAINER_TAG="${{ github.base_ref }}" + fi + elif [ ${{ github.ref_type }} == "branch" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]-'; then + CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\)-.*/\1/')" + fi + elif [ ${{ github.ref_type }} == "tag" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then + CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" + fi + fi + echo "Tools container to use tools:$CONTAINER_TAG" + echo "container_tag=$CONTAINER_TAG" >> $GITHUB_OUTPUT + check-patch: name: Check Kernel patches needs: setup_build runs-on: ubuntu-latest - container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:latest + container: ghcr.io/${{ needs.setup_build.outputs.owner_lc }}/tools:${{ needs.setup_build.outputs.container_tag }} permissions: contents: read From e24a1e6f6d7f08fb766eb11b8008f8fc5b72d072 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Mon, 28 Nov 2022 12:44:01 +0100 Subject: [PATCH 23/27] CI: build: add support for external toolchains from stable branch Add support to use external toolchains from stable branch if we are testing commit targeting stable openwrt branch in kernel and packages workflow. With pr the target branch is parsed and the right toolchain is used. To use the stable toolchain for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9]- (example openwrt-21.02-fixup) Signed-off-by: Christian Marangi --- .github/workflows/build.yml | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 510ff6a879..909b849731 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -145,13 +145,38 @@ jobs: if: inputs.build_toolchain == false working-directory: openwrt run: | - TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ + TOOLCHAIN_PATH=snapshots + + if [ -n "${{ github.base_ref }}" ]; then + if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then + major_ver="$(echo ${{ github.base_ref }} | sed 's/openwrt-/v/')" + fi + elif [ "${{ github.ref_type }}" = "branch" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]-'; then + major_ver="$(echo ${{ github.ref_name }} | sed 's/openwrt-\([0-9][0-9]\.[0-9][0-9]\)-.*/v\1/')" + fi + elif [ "${{ github.ref_type }}" = "tag" ]; then + if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then + major_ver="$(sed 's/\(v[0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" + fi + fi + + if [ -n "$major_ver" ]; then + git fetch --tags + latest_tag="$(git tag --sort=-creatordate -l $major_ver* | head -n1)" + if [ -n "$latest_tag" ]; then + TOOLCHAIN_PATH=releases/$(echo $latest_tag | sed 's/^v//') + fi + fi + + TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/$TOOLCHAIN_PATH/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ | grep ".*openwrt-toolchain.*tar.xz")" TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) echo "TOOLCHAIN_FILE=$TOOLCHAIN_FILE" >> "$GITHUB_ENV" echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV" + echo "TOOLCHAIN_PATH=$TOOLCHAIN_PATH" >> "$GITHUB_ENV" - name: Cache external toolchain if: inputs.build_toolchain == false @@ -174,7 +199,7 @@ jobs: shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: | - wget -O - https://downloads.cdn.openwrt.org/snapshots/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/${TOOLCHAIN_FILE}.tar.xz \ + wget -O - https://downloads.cdn.openwrt.org/${{ env.TOOLCHAIN_PATH }}/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/${{ env.TOOLCHAIN_FILE }}.tar.xz \ | tar --xz -xf - - name: Extract prebuilt tools From b59ac2a7d0ff427419e86bd38dea3d8910dd7926 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Mon, 28 Nov 2022 16:12:13 +0100 Subject: [PATCH 24/27] CI: build: add support to fallback to sdk for external toolchain Add support to use sdk as external toolchain if the packaged external toolchain tar is not found on openwrt servers for build shared workflow. Signed-off-by: Christian Marangi --- .github/workflows/build.yml | 41 +++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 909b849731..511d9596fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -143,6 +143,7 @@ jobs: - name: Parse toolchain file if: inputs.build_toolchain == false + id: parse-toolchain working-directory: openwrt run: | TOOLCHAIN_PATH=snapshots @@ -169,22 +170,32 @@ jobs: fi fi - TOOLCHAIN_STRING="$(curl "https://downloads.cdn.openwrt.org/$TOOLCHAIN_PATH/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" \ - | grep ".*openwrt-toolchain.*tar.xz")" - TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') - TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) + SUMS_FILE="https://downloads.cdn.openwrt.org/$TOOLCHAIN_PATH/targets/${{ env.TARGET }}/${{ env.SUBTARGET }}/sha256sums" + if curl $SUMS_FILE | grep -q ".*openwrt-toolchain.*tar.xz"; then + TOOLCHAIN_STRING="$( curl $SUMS_FILE | grep ".*openwrt-toolchain.*tar.xz")" + TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-toolchain.*\).tar.xz/\1/p') + TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) + + echo "toolchain-type=external_toolchain" >> $GITHUB_OUTPUT + elif curl $SUMS_FILE | grep -q ".*openwrt-sdk.*tar.xz"; then + TOOLCHAIN_STRING="$( curl $SUMS_FILE | grep ".*openwrt-sdk.*tar.xz")" + TOOLCHAIN_FILE=$(echo "$TOOLCHAIN_STRING" | sed -n -e 's/.*\(openwrt-sdk.*\).tar.xz/\1/p') + TOOLCHAIN_SHA256=$(echo "$TOOLCHAIN_STRING" | cut -d ' ' -f 1) + + echo "toolchain-type=external_sdk" >> $GITHUB_OUTPUT + fi echo "TOOLCHAIN_FILE=$TOOLCHAIN_FILE" >> "$GITHUB_ENV" echo "TOOLCHAIN_SHA256=$TOOLCHAIN_SHA256" >> "$GITHUB_ENV" echo "TOOLCHAIN_PATH=$TOOLCHAIN_PATH" >> "$GITHUB_ENV" - - name: Cache external toolchain + - name: Cache external toolchain/sdk if: inputs.build_toolchain == false id: cache-external-toolchain uses: actions/cache@v3 with: path: openwrt/${{ env.TOOLCHAIN_FILE }} - key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }} + key: ${{ env.TOOLCHAIN_FILE }}-${{ steps.parse-toolchain.outputs.toolchain-type }}-${{ env.TOOLCHAIN_SHA256 }} - name: Cache ccache uses: actions/cache@v3 @@ -194,7 +205,7 @@ jobs: restore-keys: | ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}- - - name: Download external toolchain + - name: Download external toolchain/sdk if: inputs.build_toolchain == false && steps.cache-external-toolchain.outputs.cache-hit != 'true' shell: su buildbot -c "sh -e {0}" working-directory: openwrt @@ -238,7 +249,7 @@ jobs: echo CONFIG_TARGET_ALL_PROFILES=y >> .config - name: Configure external toolchain - if: inputs.build_toolchain == false + if: inputs.build_toolchain == false && steps.parse-toolchain.outputs.toolchain-type == 'external_toolchain' shell: su buildbot -c "sh -e {0}" working-directory: openwrt run: | @@ -251,6 +262,20 @@ jobs: --overwrite-config \ --config ${{ env.TARGET }}/${{ env.SUBTARGET }} + - name: Configure external toolchain with sdk + if: inputs.build_toolchain == false && steps.parse-toolchain.outputs.toolchain-type == 'external_sdk' + shell: su buildbot -c "sh -e {0}" + working-directory: openwrt + run: | + echo CONFIG_DEVEL=y >> .config + echo CONFIG_AUTOREMOVE=y >> .config + echo CONFIG_CCACHE=y >> .config + + ./scripts/ext-toolchain.sh \ + --toolchain ${{ env.TOOLCHAIN_FILE }}/staging_dir/toolchain-* \ + --overwrite-config \ + --config ${{ env.TARGET }}/${{ env.SUBTARGET }} + - name: Configure internal toolchain if: inputs.build_toolchain == true shell: su buildbot -c "sh -e {0}" From 65c3d19c4b28ccac0d08d916de0ffa4c0e7b3dc2 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sun, 4 Dec 2022 20:28:28 +0100 Subject: [PATCH 25/27] CI: fix matching for openwrt release branch for container selection The current match logic doesn't handle test for push events related to stable release (example openwrt-22.03) but only fork with the related prefix (example openwrt-22.03-fixup) Fix wrong matching and while at it also add extra checks to other matching (check if the branch name actually start with the requested prefix) Fixes: abe8a4824210 ("CI: build: add support for per branch tools container") Signed-off-by: Christian Marangi --- .github/workflows/build.yml | 10 ++++++---- .github/workflows/check-kernel-patches.yml | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 511d9596fa..f35a70d8f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,16 +62,18 @@ jobs: run: | CONTAINER_TAG=latest if [ -n "${{ github.base_ref }}" ]; then - if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then + if echo "${{ github.base_ref }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]$'; then CONTAINER_TAG="${{ github.base_ref }}" fi elif [ ${{ github.ref_type }} == "branch" ]; then - if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]-'; then + if echo "${{ github.ref_name }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]$'; then + CONTAINER_TAG=${{ github.ref_name }} + elif echo "${{ github.ref_name }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]-'; then CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\)-.*/\1/')" fi elif [ ${{ github.ref_type }} == "tag" ]; then - if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then - CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" + if echo "${{ github.ref_name }}" | grep -q -E '^v[0-9][0-9]\.[0-9][0-9]\..+'; then + CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/^v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" fi fi echo "Tools container to use tools:$CONTAINER_TAG" diff --git a/.github/workflows/check-kernel-patches.yml b/.github/workflows/check-kernel-patches.yml index f01782d5da..e5b619064f 100644 --- a/.github/workflows/check-kernel-patches.yml +++ b/.github/workflows/check-kernel-patches.yml @@ -39,16 +39,18 @@ jobs: run: | CONTAINER_TAG=latest if [ -n "${{ github.base_ref }}" ]; then - if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then + if echo "${{ github.base_ref }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]$'; then CONTAINER_TAG="${{ github.base_ref }}" fi elif [ ${{ github.ref_type }} == "branch" ]; then - if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]-'; then + if echo "${{ github.ref_name }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]$'; then + CONTAINER_TAG=${{ github.ref_name }} + elif echo "${{ github.ref_name }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]-'; then CONTAINER_TAG="$(echo ${{ github.ref_name }} | sed 's/^\(openwrt-[0-9][0-9]\.[0-9][0-9]\)-.*/\1/')" fi elif [ ${{ github.ref_type }} == "tag" ]; then - if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then - CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" + if echo "${{ github.ref_name }}" | grep -q -E '^v[0-9][0-9]\.[0-9][0-9]\..+'; then + CONTAINER_TAG=openwrt-"$(echo ${{ github.ref_name }} | sed 's/^v\([0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" fi fi echo "Tools container to use tools:$CONTAINER_TAG" From e3cf2b84e5f8708ca17d931ef60746516c8a2fe4 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sun, 4 Dec 2022 20:36:11 +0100 Subject: [PATCH 26/27] CI: build: fix matching for openwrt release branch for toolchain parsing The current match logic doesn't handle test for push events related to stable release (example openwrt-22.03) but only fork with the related prefix (example openwrt-22.03-fixup) Fix wrong matching and while at it also add extra checks to other matching (check if the branch name actually start with the requested prefix) Fixes: e24a1e6f6d7f ("CI: build: add support for external toolchains from stable branch") Signed-off-by: Christian Marangi --- .github/workflows/build.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f35a70d8f9..115bf2c654 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -151,16 +151,18 @@ jobs: TOOLCHAIN_PATH=snapshots if [ -n "${{ github.base_ref }}" ]; then - if echo "${{ github.base_ref }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]'; then - major_ver="$(echo ${{ github.base_ref }} | sed 's/openwrt-/v/')" + if echo "${{ github.base_ref }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]$'; then + major_ver="$(echo ${{ github.base_ref }} | sed 's/^openwrt-/v/')" fi elif [ "${{ github.ref_type }}" = "branch" ]; then - if echo "${{ github.ref_name }}" | grep -q -E 'openwrt-[0-9][0-9]\.[0-9][0-9]-'; then - major_ver="$(echo ${{ github.ref_name }} | sed 's/openwrt-\([0-9][0-9]\.[0-9][0-9]\)-.*/v\1/')" + if echo "${{ github.ref_name }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]$'; then + major_ver="$(echo ${{ github.ref_name }} | sed 's/^openwrt-/v/')" + elif echo "${{ github.ref_name }}" | grep -q -E '^openwrt-[0-9][0-9]\.[0-9][0-9]-'; then + major_ver="$(echo ${{ github.ref_name }} | sed 's/^openwrt-\([0-9][0-9]\.[0-9][0-9]\)-.*/v\1/')" fi elif [ "${{ github.ref_type }}" = "tag" ]; then - if echo "${{ github.ref_name }}" | grep -q -E 'v[0-9][0-9]\.[0-9][0-9]\..+'; then - major_ver="$(sed 's/\(v[0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" + if echo "${{ github.ref_name }}" | grep -q -E '^v[0-9][0-9]\.[0-9][0-9]\..+'; then + major_ver="$(echo ${{ github.ref_name }} | sed 's/^\(v[0-9][0-9]\.[0-9][0-9]\)\..\+/\1/')" fi fi From 644175c29ca11e0a008c58c82986045f738f5c6f Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sun, 4 Dec 2022 20:58:11 +0100 Subject: [PATCH 27/27] CI: trigger check also on build and check-kernel-patches workflow change Since kernel and packages workflow now use a shared build workflow, they also need to react on changes on these shared workflow. Fix this and add these shared workflow to the event paths to check. Signed-off-by: Christian Marangi --- .github/workflows/kernel.yml | 4 ++++ .github/workflows/packages.yml | 2 ++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/kernel.yml b/.github/workflows/kernel.yml index 06efe14d5c..5a8c1123af 100644 --- a/.github/workflows/kernel.yml +++ b/.github/workflows/kernel.yml @@ -3,12 +3,16 @@ name: Build Kernel on: pull_request: paths: + - '.github/workflows/check-kernel-patches.yml' + - '.github/workflows/build.yml' - '.github/workflows/kernel.yml' - 'include/kernel*' - 'package/kernel/**' - 'target/linux/generic/**' push: paths: + - '.github/workflows/check-kernel-patches.yml' + - '.github/workflows/build.yml' - '.github/workflows/kernel.yml' - 'include/kernel*' - 'package/kernel/**' diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index a374b37023..94982ba65b 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -3,6 +3,7 @@ name: Build all core packages on: pull_request: paths: + - '.github/workflows/build.yml' - '.github/workflows/packages.yml' - 'config/**' - 'include/**' @@ -11,6 +12,7 @@ on: - 'toolchain/**' push: paths: + - '.github/workflows/build.yml' - '.github/workflows/packages.yml' - 'config/**' - 'include/**'