diff --git a/package/base-files/files/lib/functions/network.sh b/package/base-files/files/lib/functions/network.sh index 055f18c11e..4851a5817a 100644 --- a/package/base-files/files/lib/functions/network.sh +++ b/package/base-files/files/lib/functions/network.sh @@ -90,6 +90,13 @@ network_get_prefix6() { __network_ifstatus "$1" "$2" "['ipv6-prefix'][0]['address','mask']" "/" } +# determine first IPv6 prefix assignment of given logical interface +# 1: destination variable +# 2: interface +network_get_prefix_assignment6() { + __network_ifstatus "$1" "$2" "['ipv6-prefix-assignment'][0]['address','mask']" "/" +} + # determine all IPv4 addresses of given logical interface # 1: destination variable # 2: interface @@ -187,6 +194,13 @@ network_get_prefixes6() { __network_ifstatus "$1" "$2" "['ipv6-prefix'][*]['address','mask']" "/ " } +# determine all IPv6 prefix assignments of given logical interface +# 1: destination variable +# 2: interface +network_get_prefix_assignments6() { + __network_ifstatus "$1" "$2" "['ipv6-prefix-assignment'][*]['address','mask']" "/ " +} + # determine IPv4 gateway of given logical interface # 1: destination variable # 2: interface diff --git a/package/libs/libcap/Makefile b/package/libs/libcap/Makefile index afc66d7c09..a35b5e394f 100644 --- a/package/libs/libcap/Makefile +++ b/package/libs/libcap/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libcap -PKG_VERSION:=2.66 -PKG_RELEASE:=$(AUTORELEASE) +PKG_VERSION:=2.67 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/libs/security/linux-privs/libcap2 -PKG_HASH:=15c40ededb3003d70a283fe587a36b7d19c8b3b554e33f86129c059a4bb466b2 +PKG_HASH:=ce9b22fdc271beb6dae7543da5f74cf24cb82e6848cfd088a5a069dec5ea5198 PKG_MAINTAINER:=Paul Wassi PKG_LICENSE:=GPL-2.0-only diff --git a/package/libs/ncurses/Makefile b/package/libs/ncurses/Makefile index 29261a4cd0..4d8e685f35 100644 --- a/package/libs/ncurses/Makefile +++ b/package/libs/ncurses/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ncurses PKG_CPE_ID:=cpe:/a:gnu:ncurses PKG_VERSION:=6.4 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/$(PKG_NAME) @@ -123,6 +123,7 @@ ifneq ($(HOST_OS),FreeBSD) ) for file in \ a/ansi \ + a/alacritty \ d/dumb \ l/linux \ r/rxvt \ diff --git a/package/libs/ustream-ssl/Makefile b/package/libs/ustream-ssl/Makefile index c94e9a97ca..ae5c8026c2 100644 --- a/package/libs/ustream-ssl/Makefile +++ b/package/libs/ustream-ssl/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ustream-ssl -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/ustream-ssl.git -PKG_SOURCE_DATE:=2022-12-08 -PKG_SOURCE_VERSION:=9217ab46536353c7c792951b57163063f5ec7a3b -PKG_MIRROR_HASH:=cd4dc6a6c18290348b1f8b1c01df3320e4954dc46d714c797bef066f7a91248d +PKG_SOURCE_DATE:=2023-02-25 +PKG_SOURCE_VERSION:=498f6e268d4d2b0ad33b430f4ba1abe397d31496 +PKG_MIRROR_HASH:=a201d065dd613e30886c9f13a0851cec79538192cfe591b6f8ecd88724d55fb1 CMAKE_INSTALL:=1 PKG_LICENSE:=ISC diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index f40a990b42..d9d1bce26f 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=netifd -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2022-12-30 -PKG_SOURCE_VERSION:=81c1fbcba2f27f687c2a471f341502d47679f401 -PKG_MIRROR_HASH:=41d19f2804759aa42708942e27116bec78b169abee639d97c2ec7f0f62fa7739 +PKG_SOURCE_DATE:=2023-02-25 +PKG_SOURCE_VERSION:=463a1207f0766417866e2c28316e58a96f84370b +PKG_MIRROR_HASH:=1d407847282637f6e069b482368f2f8fc0126e66f3b37e4258e1fc1d19dd1ce5 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile index 65ef9da3a9..f555712a7f 100644 --- a/package/network/services/dnsmasq/Makefile +++ b/package/network/services/dnsmasq/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dnsmasq -PKG_UPSTREAM_VERSION:=2.88 +PKG_UPSTREAM_VERSION:=2.89 PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION))) PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz PKG_SOURCE_URL:=https://thekelleys.org.uk/dnsmasq/ -PKG_HASH:=23544deda10340c053bea6f15a93fed6ea7f5aaa85316bfc671ffa6d22fbc1b3 +PKG_HASH:=02bd230346cf0b9d5909f5e151df168b2707103785eb616b56685855adebb609 PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING diff --git a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch index 76065375bd..59b8d02c0e 100644 --- a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch +++ b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch @@ -26,7 +26,7 @@ Signed-off-by: Kevin Darbyshire-Bryant --- a/src/dnsmasq.h +++ b/src/dnsmasq.h -@@ -1247,7 +1247,7 @@ extern struct daemon { +@@ -1248,7 +1248,7 @@ extern struct daemon { int inotifyfd; #endif #if defined(HAVE_LINUX_NETWORK) @@ -35,7 +35,7 @@ Signed-off-by: Kevin Darbyshire-Bryant #elif defined(HAVE_BSD_NETWORK) int dhcp_raw_fd, dhcp_icmp_fd, routefd; #endif -@@ -1452,9 +1452,6 @@ int read_write(int fd, unsigned char *pa +@@ -1453,9 +1453,6 @@ int read_write(int fd, unsigned char *pa void close_fds(long max_fd, int spare1, int spare2, int spare3); int wildcard_match(const char* wildcard, const char* match); int wildcard_matchn(const char* wildcard, const char* match, int num); diff --git a/package/network/services/dnsmasq/patches/200-ubus_dns.patch b/package/network/services/dnsmasq/patches/200-ubus_dns.patch index f88763f94a..8a70bb8bdf 100644 --- a/package/network/services/dnsmasq/patches/200-ubus_dns.patch +++ b/package/network/services/dnsmasq/patches/200-ubus_dns.patch @@ -1,6 +1,6 @@ --- a/src/dnsmasq.h +++ b/src/dnsmasq.h -@@ -1630,14 +1630,26 @@ void emit_dbus_signal(int action, struct +@@ -1631,14 +1631,26 @@ void emit_dbus_signal(int action, struct /* ubus.c */ #ifdef HAVE_UBUS diff --git a/package/network/services/dnsmasq/patches/910-mini-ttl.patch b/package/network/services/dnsmasq/patches/910-mini-ttl.patch index c6d1d9d6e8..25cd44ca21 100644 --- a/package/network/services/dnsmasq/patches/910-mini-ttl.patch +++ b/package/network/services/dnsmasq/patches/910-mini-ttl.patch @@ -1,7 +1,7 @@ --- a/src/dnsmasq.h +++ b/src/dnsmasq.h -@@ -1141,7 +1141,7 @@ extern struct daemon { - int max_logs; /* queue limit */ +@@ -1156,7 +1156,7 @@ extern struct daemon { + int randport_limit; /* Maximum number of source ports for query. */ int cachesize, ftabsize; int port, query_port, min_port, max_port; - unsigned long local_ttl, neg_ttl, max_ttl, min_cache_ttl, max_cache_ttl, auth_ttl, dhcp_ttl, use_dhcp_ttl; @@ -19,7 +19,7 @@ #define LOPT_MAXTTL 297 #define LOPT_NO_REBIND 298 #define LOPT_LOC_REBND 299 -@@ -302,6 +303,7 @@ static const struct myoption opts[] = +@@ -308,6 +309,7 @@ static const struct myoption opts[] = { "dhcp-name-match", 1, 0, LOPT_NAME_MATCH }, { "dhcp-broadcast", 2, 0, LOPT_BROADCAST }, { "neg-ttl", 1, 0, LOPT_NEGTTL }, @@ -27,7 +27,7 @@ { "max-ttl", 1, 0, LOPT_MAXTTL }, { "min-cache-ttl", 1, 0, LOPT_MINCTTL }, { "max-cache-ttl", 1, 0, LOPT_MAXCTTL }, -@@ -440,6 +442,7 @@ static struct { +@@ -452,6 +454,7 @@ static struct { { 't', ARG_ONE, "", gettext_noop("Specify default target in an MX record."), NULL }, { 'T', ARG_ONE, "", gettext_noop("Specify time-to-live in seconds for replies from /etc/hosts."), NULL }, { LOPT_NEGTTL, ARG_ONE, "", gettext_noop("Specify time-to-live in seconds for negative caching."), NULL }, @@ -35,7 +35,7 @@ { LOPT_MAXTTL, ARG_ONE, "", gettext_noop("Specify time-to-live in seconds for maximum TTL to send to clients."), NULL }, { LOPT_MAXCTTL, ARG_ONE, "", gettext_noop("Specify time-to-live ceiling for cache."), NULL }, { LOPT_MINCTTL, ARG_ONE, "", gettext_noop("Specify time-to-live floor for cache."), NULL }, -@@ -3182,6 +3185,7 @@ static int one_opt(int option, char *arg +@@ -3404,6 +3407,7 @@ static int one_opt(int option, char *arg case 'T': /* --local-ttl */ case LOPT_NEGTTL: /* --neg-ttl */ @@ -43,7 +43,7 @@ case LOPT_MAXTTL: /* --max-ttl */ case LOPT_MINCTTL: /* --min-cache-ttl */ case LOPT_MAXCTTL: /* --max-cache-ttl */ -@@ -3193,6 +3197,8 @@ static int one_opt(int option, char *arg +@@ -3415,6 +3419,8 @@ static int one_opt(int option, char *arg ret_err(gen_err); else if (option == LOPT_NEGTTL) daemon->neg_ttl = (unsigned long)ttl; @@ -54,15 +54,15 @@ else if (option == LOPT_MINCTTL) --- a/src/rfc1035.c +++ b/src/rfc1035.c -@@ -681,6 +681,7 @@ int extract_addresses(struct dns_header +@@ -683,6 +683,7 @@ int extract_addresses(struct dns_header for (j = 0; j < ntohs(header->ancount); j++) { int secflag = 0; + unsigned long mttl = 0; if (!(res = extract_name(header, qlen, &p1, name, 0, 10))) - return 0; /* bad packet */ + return 2; /* bad packet */ -@@ -689,6 +690,14 @@ int extract_addresses(struct dns_header +@@ -691,6 +692,14 @@ int extract_addresses(struct dns_header GETLONG(attl, p1); if ((daemon->max_ttl != 0) && (attl > daemon->max_ttl) && !is_sign) @@ -77,15 +77,15 @@ { (p1) -= 4; PUTLONG(daemon->max_ttl, p1); -@@ -796,6 +805,7 @@ int extract_addresses(struct dns_header +@@ -798,6 +807,7 @@ int extract_addresses(struct dns_header for (j = 0; j < ntohs(header->ancount); j++) { int secflag = 0; + unsigned long mttl = 0; if (!(res = extract_name(header, qlen, &p1, name, 0, 10))) - return 0; /* bad packet */ -@@ -804,6 +814,14 @@ int extract_addresses(struct dns_header + return 2; /* bad packet */ +@@ -806,6 +816,14 @@ int extract_addresses(struct dns_header GETSHORT(aqclass, p1); GETLONG(attl, p1); if ((daemon->max_ttl != 0) && (attl > daemon->max_ttl) && !is_sign) diff --git a/package/network/utils/ethtool/Makefile b/package/network/utils/ethtool/Makefile index bec26cd364..b18320bf05 100644 --- a/package/network/utils/ethtool/Makefile +++ b/package/network/utils/ethtool/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ethtool -PKG_VERSION:=6.1 +PKG_VERSION:=6.2 PKG_RELEASE:=1 PKG_MAINTAINER:=Felix Fietkau PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/ethtool -PKG_HASH:=c41fc881ffa5a40432d2dd829eb44c64a49dee482e716baacf9262c64daa8f90 +PKG_HASH:=86df0114064d4d73f6bf72bf03e85c33964a519ee0c1d1ba65005ad2d0e570e1 PKG_LICENSE:=GPL-2.0 PKG_LICENSE_FILES:=COPYING diff --git a/package/network/utils/ethtool/patches/100-uapi-Bring-in-if-h.patch b/package/network/utils/ethtool/patches/100-uapi-Bring-in-if-h.patch deleted file mode 100644 index 09be05c1f6..0000000000 --- a/package/network/utils/ethtool/patches/100-uapi-Bring-in-if-h.patch +++ /dev/null @@ -1,465 +0,0 @@ -From: Florian Fainelli -To: netdev@vger.kernel.org -Subject: [PATCH ethtool v2 1/3] uapi: Bring in if.h -Date: Sat, 14 Jan 2023 08:34:09 -0800 - -Bring in if.h from commit eec517cdb481 ("net: Add IF_OPER_TESTING") as -well as uapi/linux/hdlc/ioctl.h. Ensure that we define all of the -necessary guards to provide updated definitions of ifmap, ifreq and -IFNAMSIZ. This resolves build issues with kernel headers < 4.11 which -lacked 2618be7dccf8739b89e1906b64bd8d551af351e6 ("uapi: fix linux/if.h -userspace compilation errors"). - -Fixes: 1fa60003a8b8 ("misc: header includes cleanup") -Reported-by: Markus Mayer -Signed-off-by: Florian Fainelli ---- - Makefile.am | 6 +- - internal.h | 7 +- - uapi/linux/hdlc/ioctl.h | 94 +++++++++++++ - uapi/linux/if.h | 296 ++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 397 insertions(+), 6 deletions(-) - create mode 100644 uapi/linux/hdlc/ioctl.h - create mode 100644 uapi/linux/if.h - ---- a/Makefile.am -+++ b/Makefile.am -@@ -7,7 +7,8 @@ EXTRA_DIST = LICENSE ethtool.8 ethtool.s - - sbin_PROGRAMS = ethtool - ethtool_SOURCES = ethtool.c uapi/linux/ethtool.h internal.h \ -- uapi/linux/net_tstamp.h rxclass.c common.c common.h \ -+ uapi/linux/net_tstamp.h uapi/linux/if.h uapi/linux/hdlc/ioctl.h \ -+ rxclass.c common.c common.h \ - json_writer.c json_writer.h json_print.c json_print.h \ - list.h - if ETHTOOL_ENABLE_PRETTY_DUMP -@@ -43,7 +44,8 @@ ethtool_SOURCES += \ - netlink/desc-rtnl.c netlink/cable_test.c netlink/tunnels.c \ - uapi/linux/ethtool_netlink.h \ - uapi/linux/netlink.h uapi/linux/genetlink.h \ -- uapi/linux/rtnetlink.h uapi/linux/if_link.h -+ uapi/linux/rtnetlink.h uapi/linux/if_link.h \ -+ uapi/linux/if.h uapi/linux/hdlc/ioctl.h - AM_CPPFLAGS += @MNL_CFLAGS@ - LDADD += @MNL_LIBS@ - endif ---- a/internal.h -+++ b/internal.h -@@ -21,6 +21,9 @@ - #include - #include - #include -+#define __UAPI_DEF_IF_IFNAMSIZ 1 -+#define __UAPI_DEF_IF_IFMAP 1 -+#define __UAPI_DEF_IF_IFREQ 1 - #include - - #include "json_writer.h" -@@ -52,10 +55,6 @@ typedef int32_t s32; - #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) - #endif - --#ifndef ALTIFNAMSIZ --#define ALTIFNAMSIZ 128 --#endif -- - #include - #include - ---- /dev/null -+++ b/uapi/linux/hdlc/ioctl.h -@@ -0,0 +1,94 @@ -+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -+#ifndef __HDLC_IOCTL_H__ -+#define __HDLC_IOCTL_H__ -+ -+ -+#define GENERIC_HDLC_VERSION 4 /* For synchronization with sethdlc utility */ -+ -+#define CLOCK_DEFAULT 0 /* Default setting */ -+#define CLOCK_EXT 1 /* External TX and RX clock - DTE */ -+#define CLOCK_INT 2 /* Internal TX and RX clock - DCE */ -+#define CLOCK_TXINT 3 /* Internal TX and external RX clock */ -+#define CLOCK_TXFROMRX 4 /* TX clock derived from external RX clock */ -+ -+ -+#define ENCODING_DEFAULT 0 /* Default setting */ -+#define ENCODING_NRZ 1 -+#define ENCODING_NRZI 2 -+#define ENCODING_FM_MARK 3 -+#define ENCODING_FM_SPACE 4 -+#define ENCODING_MANCHESTER 5 -+ -+ -+#define PARITY_DEFAULT 0 /* Default setting */ -+#define PARITY_NONE 1 /* No parity */ -+#define PARITY_CRC16_PR0 2 /* CRC16, initial value 0x0000 */ -+#define PARITY_CRC16_PR1 3 /* CRC16, initial value 0xFFFF */ -+#define PARITY_CRC16_PR0_CCITT 4 /* CRC16, initial 0x0000, ITU-T version */ -+#define PARITY_CRC16_PR1_CCITT 5 /* CRC16, initial 0xFFFF, ITU-T version */ -+#define PARITY_CRC32_PR0_CCITT 6 /* CRC32, initial value 0x00000000 */ -+#define PARITY_CRC32_PR1_CCITT 7 /* CRC32, initial value 0xFFFFFFFF */ -+ -+#define LMI_DEFAULT 0 /* Default setting */ -+#define LMI_NONE 1 /* No LMI, all PVCs are static */ -+#define LMI_ANSI 2 /* ANSI Annex D */ -+#define LMI_CCITT 3 /* ITU-T Annex A */ -+#define LMI_CISCO 4 /* The "original" LMI, aka Gang of Four */ -+ -+#ifndef __ASSEMBLY__ -+ -+typedef struct { -+ unsigned int clock_rate; /* bits per second */ -+ unsigned int clock_type; /* internal, external, TX-internal etc. */ -+ unsigned short loopback; -+} sync_serial_settings; /* V.35, V.24, X.21 */ -+ -+typedef struct { -+ unsigned int clock_rate; /* bits per second */ -+ unsigned int clock_type; /* internal, external, TX-internal etc. */ -+ unsigned short loopback; -+ unsigned int slot_map; -+} te1_settings; /* T1, E1 */ -+ -+typedef struct { -+ unsigned short encoding; -+ unsigned short parity; -+} raw_hdlc_proto; -+ -+typedef struct { -+ unsigned int t391; -+ unsigned int t392; -+ unsigned int n391; -+ unsigned int n392; -+ unsigned int n393; -+ unsigned short lmi; -+ unsigned short dce; /* 1 for DCE (network side) operation */ -+} fr_proto; -+ -+typedef struct { -+ unsigned int dlci; -+} fr_proto_pvc; /* for creating/deleting FR PVCs */ -+ -+typedef struct { -+ unsigned int dlci; -+ char master[IFNAMSIZ]; /* Name of master FRAD device */ -+}fr_proto_pvc_info; /* for returning PVC information only */ -+ -+typedef struct { -+ unsigned int interval; -+ unsigned int timeout; -+} cisco_proto; -+ -+typedef struct { -+ unsigned short dce; /* 1 for DCE (network side) operation */ -+ unsigned int modulo; /* modulo (8 = basic / 128 = extended) */ -+ unsigned int window; /* frame window size */ -+ unsigned int t1; /* timeout t1 */ -+ unsigned int t2; /* timeout t2 */ -+ unsigned int n2; /* frame retry counter */ -+} x25_hdlc_proto; -+ -+/* PPP doesn't need any info now - supply length = 0 to ioctl */ -+ -+#endif /* __ASSEMBLY__ */ -+#endif /* __HDLC_IOCTL_H__ */ ---- /dev/null -+++ b/uapi/linux/if.h -@@ -0,0 +1,296 @@ -+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -+/* -+ * INET An implementation of the TCP/IP protocol suite for the LINUX -+ * operating system. INET is implemented using the BSD Socket -+ * interface as the means of communication with the user level. -+ * -+ * Global definitions for the INET interface module. -+ * -+ * Version: @(#)if.h 1.0.2 04/18/93 -+ * -+ * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988 -+ * Ross Biro -+ * Fred N. van Kempen, -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version -+ * 2 of the License, or (at your option) any later version. -+ */ -+#ifndef _LINUX_IF_H -+#define _LINUX_IF_H -+ -+#include /* for compatibility with glibc */ -+#include /* for "__kernel_caddr_t" et al */ -+#include /* for "struct sockaddr" et al */ -+ /* for "__user" et al */ -+ -+#include /* for struct sockaddr. */ -+ -+#if __UAPI_DEF_IF_IFNAMSIZ -+#define IFNAMSIZ 16 -+#endif /* __UAPI_DEF_IF_IFNAMSIZ */ -+#define IFALIASZ 256 -+#define ALTIFNAMSIZ 128 -+#include -+ -+/* For glibc compatibility. An empty enum does not compile. */ -+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO != 0 || \ -+ __UAPI_DEF_IF_NET_DEVICE_FLAGS != 0 -+/** -+ * enum net_device_flags - &struct net_device flags -+ * -+ * These are the &struct net_device flags, they can be set by drivers, the -+ * kernel and some can be triggered by userspace. Userspace can query and -+ * set these flags using userspace utilities but there is also a sysfs -+ * entry available for all dev flags which can be queried and set. These flags -+ * are shared for all types of net_devices. The sysfs entries are available -+ * via /sys/class/net//flags. Flags which can be toggled through sysfs -+ * are annotated below, note that only a few flags can be toggled and some -+ * other flags are always preserved from the original net_device flags -+ * even if you try to set them via sysfs. Flags which are always preserved -+ * are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__ -+ * are annotated below as such. -+ * -+ * You should have a pretty good reason to be extending these flags. -+ * -+ * @IFF_UP: interface is up. Can be toggled through sysfs. -+ * @IFF_BROADCAST: broadcast address valid. Volatile. -+ * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. -+ * @IFF_LOOPBACK: is a loopback net. Volatile. -+ * @IFF_POINTOPOINT: interface is has p-p link. Volatile. -+ * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. -+ * Volatile. -+ * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. -+ * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. -+ * @IFF_PROMISC: receive all packets. Can be toggled through sysfs. -+ * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through -+ * sysfs. -+ * @IFF_MASTER: master of a load balancer. Volatile. -+ * @IFF_SLAVE: slave of a load balancer. Volatile. -+ * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. -+ * @IFF_PORTSEL: can set media type. Can be toggled through sysfs. -+ * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. -+ * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled -+ * through sysfs. -+ * @IFF_LOWER_UP: driver signals L1 up. Volatile. -+ * @IFF_DORMANT: driver signals dormant. Volatile. -+ * @IFF_ECHO: echo sent packets. Volatile. -+ */ -+enum net_device_flags { -+/* for compatibility with glibc net/if.h */ -+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS -+ IFF_UP = 1<<0, /* sysfs */ -+ IFF_BROADCAST = 1<<1, /* __volatile__ */ -+ IFF_DEBUG = 1<<2, /* sysfs */ -+ IFF_LOOPBACK = 1<<3, /* __volatile__ */ -+ IFF_POINTOPOINT = 1<<4, /* __volatile__ */ -+ IFF_NOTRAILERS = 1<<5, /* sysfs */ -+ IFF_RUNNING = 1<<6, /* __volatile__ */ -+ IFF_NOARP = 1<<7, /* sysfs */ -+ IFF_PROMISC = 1<<8, /* sysfs */ -+ IFF_ALLMULTI = 1<<9, /* sysfs */ -+ IFF_MASTER = 1<<10, /* __volatile__ */ -+ IFF_SLAVE = 1<<11, /* __volatile__ */ -+ IFF_MULTICAST = 1<<12, /* sysfs */ -+ IFF_PORTSEL = 1<<13, /* sysfs */ -+ IFF_AUTOMEDIA = 1<<14, /* sysfs */ -+ IFF_DYNAMIC = 1<<15, /* sysfs */ -+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS */ -+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO -+ IFF_LOWER_UP = 1<<16, /* __volatile__ */ -+ IFF_DORMANT = 1<<17, /* __volatile__ */ -+ IFF_ECHO = 1<<18, /* __volatile__ */ -+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */ -+}; -+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO != 0 || __UAPI_DEF_IF_NET_DEVICE_FLAGS != 0 */ -+ -+/* for compatibility with glibc net/if.h */ -+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS -+#define IFF_UP IFF_UP -+#define IFF_BROADCAST IFF_BROADCAST -+#define IFF_DEBUG IFF_DEBUG -+#define IFF_LOOPBACK IFF_LOOPBACK -+#define IFF_POINTOPOINT IFF_POINTOPOINT -+#define IFF_NOTRAILERS IFF_NOTRAILERS -+#define IFF_RUNNING IFF_RUNNING -+#define IFF_NOARP IFF_NOARP -+#define IFF_PROMISC IFF_PROMISC -+#define IFF_ALLMULTI IFF_ALLMULTI -+#define IFF_MASTER IFF_MASTER -+#define IFF_SLAVE IFF_SLAVE -+#define IFF_MULTICAST IFF_MULTICAST -+#define IFF_PORTSEL IFF_PORTSEL -+#define IFF_AUTOMEDIA IFF_AUTOMEDIA -+#define IFF_DYNAMIC IFF_DYNAMIC -+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS */ -+ -+#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO -+#define IFF_LOWER_UP IFF_LOWER_UP -+#define IFF_DORMANT IFF_DORMANT -+#define IFF_ECHO IFF_ECHO -+#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */ -+ -+#define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ -+ IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) -+ -+#define IF_GET_IFACE 0x0001 /* for querying only */ -+#define IF_GET_PROTO 0x0002 -+ -+/* For definitions see hdlc.h */ -+#define IF_IFACE_V35 0x1000 /* V.35 serial interface */ -+#define IF_IFACE_V24 0x1001 /* V.24 serial interface */ -+#define IF_IFACE_X21 0x1002 /* X.21 serial interface */ -+#define IF_IFACE_T1 0x1003 /* T1 telco serial interface */ -+#define IF_IFACE_E1 0x1004 /* E1 telco serial interface */ -+#define IF_IFACE_SYNC_SERIAL 0x1005 /* can't be set by software */ -+#define IF_IFACE_X21D 0x1006 /* X.21 Dual Clocking (FarSite) */ -+ -+/* For definitions see hdlc.h */ -+#define IF_PROTO_HDLC 0x2000 /* raw HDLC protocol */ -+#define IF_PROTO_PPP 0x2001 /* PPP protocol */ -+#define IF_PROTO_CISCO 0x2002 /* Cisco HDLC protocol */ -+#define IF_PROTO_FR 0x2003 /* Frame Relay protocol */ -+#define IF_PROTO_FR_ADD_PVC 0x2004 /* Create FR PVC */ -+#define IF_PROTO_FR_DEL_PVC 0x2005 /* Delete FR PVC */ -+#define IF_PROTO_X25 0x2006 /* X.25 */ -+#define IF_PROTO_HDLC_ETH 0x2007 /* raw HDLC, Ethernet emulation */ -+#define IF_PROTO_FR_ADD_ETH_PVC 0x2008 /* Create FR Ethernet-bridged PVC */ -+#define IF_PROTO_FR_DEL_ETH_PVC 0x2009 /* Delete FR Ethernet-bridged PVC */ -+#define IF_PROTO_FR_PVC 0x200A /* for reading PVC status */ -+#define IF_PROTO_FR_ETH_PVC 0x200B -+#define IF_PROTO_RAW 0x200C /* RAW Socket */ -+ -+/* RFC 2863 operational status */ -+enum { -+ IF_OPER_UNKNOWN, -+ IF_OPER_NOTPRESENT, -+ IF_OPER_DOWN, -+ IF_OPER_LOWERLAYERDOWN, -+ IF_OPER_TESTING, -+ IF_OPER_DORMANT, -+ IF_OPER_UP, -+}; -+ -+/* link modes */ -+enum { -+ IF_LINK_MODE_DEFAULT, -+ IF_LINK_MODE_DORMANT, /* limit upward transition to dormant */ -+ IF_LINK_MODE_TESTING, /* limit upward transition to testing */ -+}; -+ -+/* -+ * Device mapping structure. I'd just gone off and designed a -+ * beautiful scheme using only loadable modules with arguments -+ * for driver options and along come the PCMCIA people 8) -+ * -+ * Ah well. The get() side of this is good for WDSETUP, and it'll -+ * be handy for debugging things. The set side is fine for now and -+ * being very small might be worth keeping for clean configuration. -+ */ -+ -+/* for compatibility with glibc net/if.h */ -+#if __UAPI_DEF_IF_IFMAP -+struct ifmap { -+ unsigned long mem_start; -+ unsigned long mem_end; -+ unsigned short base_addr; -+ unsigned char irq; -+ unsigned char dma; -+ unsigned char port; -+ /* 3 bytes spare */ -+}; -+#endif /* __UAPI_DEF_IF_IFMAP */ -+ -+struct if_settings { -+ unsigned int type; /* Type of physical device or protocol */ -+ unsigned int size; /* Size of the data allocated by the caller */ -+ union { -+ /* {atm/eth/dsl}_settings anyone ? */ -+ raw_hdlc_proto *raw_hdlc; -+ cisco_proto *cisco; -+ fr_proto *fr; -+ fr_proto_pvc *fr_pvc; -+ fr_proto_pvc_info *fr_pvc_info; -+ x25_hdlc_proto *x25; -+ -+ /* interface settings */ -+ sync_serial_settings *sync; -+ te1_settings *te1; -+ } ifs_ifsu; -+}; -+ -+/* -+ * Interface request structure used for socket -+ * ioctl's. All interface ioctl's must have parameter -+ * definitions which begin with ifr_name. The -+ * remainder may be interface specific. -+ */ -+ -+/* for compatibility with glibc net/if.h */ -+#if __UAPI_DEF_IF_IFREQ -+struct ifreq { -+#define IFHWADDRLEN 6 -+ union -+ { -+ char ifrn_name[IFNAMSIZ]; /* if name, e.g. "en0" */ -+ } ifr_ifrn; -+ -+ union { -+ struct sockaddr ifru_addr; -+ struct sockaddr ifru_dstaddr; -+ struct sockaddr ifru_broadaddr; -+ struct sockaddr ifru_netmask; -+ struct sockaddr ifru_hwaddr; -+ short ifru_flags; -+ int ifru_ivalue; -+ int ifru_mtu; -+ struct ifmap ifru_map; -+ char ifru_slave[IFNAMSIZ]; /* Just fits the size */ -+ char ifru_newname[IFNAMSIZ]; -+ void * ifru_data; -+ struct if_settings ifru_settings; -+ } ifr_ifru; -+}; -+#endif /* __UAPI_DEF_IF_IFREQ */ -+ -+#define ifr_name ifr_ifrn.ifrn_name /* interface name */ -+#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */ -+#define ifr_addr ifr_ifru.ifru_addr /* address */ -+#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-p lnk */ -+#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ -+#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */ -+#define ifr_flags ifr_ifru.ifru_flags /* flags */ -+#define ifr_metric ifr_ifru.ifru_ivalue /* metric */ -+#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ -+#define ifr_map ifr_ifru.ifru_map /* device map */ -+#define ifr_slave ifr_ifru.ifru_slave /* slave device */ -+#define ifr_data ifr_ifru.ifru_data /* for use by interface */ -+#define ifr_ifindex ifr_ifru.ifru_ivalue /* interface index */ -+#define ifr_bandwidth ifr_ifru.ifru_ivalue /* link bandwidth */ -+#define ifr_qlen ifr_ifru.ifru_ivalue /* Queue length */ -+#define ifr_newname ifr_ifru.ifru_newname /* New name */ -+#define ifr_settings ifr_ifru.ifru_settings /* Device/proto settings*/ -+ -+/* -+ * Structure used in SIOCGIFCONF request. -+ * Used to retrieve interface configuration -+ * for machine (useful for programs which -+ * must know all networks accessible). -+ */ -+ -+/* for compatibility with glibc net/if.h */ -+#if __UAPI_DEF_IF_IFCONF -+struct ifconf { -+ int ifc_len; /* size of buffer */ -+ union { -+ char *ifcu_buf; -+ struct ifreq *ifcu_req; -+ } ifc_ifcu; -+}; -+#endif /* __UAPI_DEF_IF_IFCONF */ -+ -+#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ -+#define ifc_req ifc_ifcu.ifcu_req /* array of structures */ -+ -+#endif /* _LINUX_IF_H */ diff --git a/package/network/utils/ethtool/patches/101-netlink-Fix-maybe-uninitialized-meters-variable.patch b/package/network/utils/ethtool/patches/101-netlink-Fix-maybe-uninitialized-meters-variable.patch deleted file mode 100644 index 381b949ede..0000000000 --- a/package/network/utils/ethtool/patches/101-netlink-Fix-maybe-uninitialized-meters-variable.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Florian Fainelli -To: netdev@vger.kernel.org -Subject: [PATCH ethtool v2 2/3] netlink: Fix maybe uninitialized 'meters' variable -Date: Sat, 14 Jan 2023 08:34:10 -0800 - -GCC12 warns that 'meters' may be uninitialized, initialize it -accordingly. - -Fixes: 9561db9b76f4 ("Add cable test TDR support") -Signed-off-by: Florian Fainelli ---- - netlink/parser.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/netlink/parser.c -+++ b/netlink/parser.c -@@ -237,7 +237,7 @@ int nl_parse_direct_m2cm(struct nl_conte - struct nl_msg_buff *msgbuff, void *dest) - { - const char *arg = *nlctx->argp; -- float meters; -+ float meters = 0.0; - uint32_t cm; - int ret; - diff --git a/package/network/utils/ethtool/patches/102-raw-marvell-c-Fix-build-with-musl-libc.patch b/package/network/utils/ethtool/patches/102-raw-marvell-c-Fix-build-with-musl-libc.patch deleted file mode 100644 index 33b1715967..0000000000 --- a/package/network/utils/ethtool/patches/102-raw-marvell-c-Fix-build-with-musl-libc.patch +++ /dev/null @@ -1,63 +0,0 @@ -From: Florian Fainelli -To: netdev@vger.kernel.org -Subject: [PATCH ethtool v2 3/3] marvell.c: Fix build with musl-libc -Date: Sat, 14 Jan 2023 08:34:11 -0800 - -After commit 1fa60003a8b8 ("misc: header includes cleanup") we stopped -including net/if.h which resolved the proper defines to pull in -sys/types.h and provide a definition for u_int32_t. With musl-libc we -would need to define _GNU_SOURCE to ensure that sys/types.h does provide a -definition for u_int32_t. - -Rather, just replace u_uint{16,32}_t with the more standard -uint{16,32}_t types from stdint.h - -Fixes: 1fa60003a8b8 ("misc: header includes cleanup") -Signed-off-by: Florian Fainelli ---- - marvell.c | 34 +++++++++++++++++----------------- - 1 file changed, 17 insertions(+), 17 deletions(-) - ---- a/marvell.c -+++ b/marvell.c -@@ -31,23 +31,23 @@ static void dump_timer(const char *name, - static void dump_queue(const char *name, const void *a, int rx) - { - struct desc { -- u_int32_t ctl; -- u_int32_t next; -- u_int32_t data_lo; -- u_int32_t data_hi; -- u_int32_t status; -- u_int32_t timestamp; -- u_int16_t csum2; -- u_int16_t csum1; -- u_int16_t csum2_start; -- u_int16_t csum1_start; -- u_int32_t addr_lo; -- u_int32_t addr_hi; -- u_int32_t count_lo; -- u_int32_t count_hi; -- u_int32_t byte_count; -- u_int32_t csr; -- u_int32_t flag; -+ uint32_t ctl; -+ uint32_t next; -+ uint32_t data_lo; -+ uint32_t data_hi; -+ uint32_t status; -+ uint32_t timestamp; -+ uint16_t csum2; -+ uint16_t csum1; -+ uint16_t csum2_start; -+ uint16_t csum1_start; -+ uint32_t addr_lo; -+ uint32_t addr_hi; -+ uint32_t count_lo; -+ uint32_t count_hi; -+ uint32_t byte_count; -+ uint32_t csr; -+ uint32_t flag; - }; - const struct desc *d = a; - diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile index 39c94bd6e2..302d57bf8b 100644 --- a/package/network/utils/iproute2/Makefile +++ b/package/network/utils/iproute2/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iproute2 -PKG_VERSION:=6.1.0 -PKG_RELEASE:=$(AUTORELEASE) +PKG_VERSION:=6.2.0 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 -PKG_HASH:=5ce12a0fec6b212725ef218735941b2dab76244db7e72646a76021b0537b43ab +PKG_HASH:=4d72730200ec5b2aabaa1a2f20553c6748292f065d9a154c7d5e22559df9fd62 PKG_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=iptables PKG_LICENSE:=GPL-2.0 diff --git a/package/network/utils/iproute2/patches/110-darwin_fixes.patch b/package/network/utils/iproute2/patches/110-darwin_fixes.patch index 1f3eb101ea..06ae59f8b4 100644 --- a/package/network/utils/iproute2/patches/110-darwin_fixes.patch +++ b/package/network/utils/iproute2/patches/110-darwin_fixes.patch @@ -1,6 +1,6 @@ --- a/netem/maketable.c +++ b/netem/maketable.c -@@ -10,7 +10,9 @@ +@@ -11,7 +11,9 @@ #include #include #include @@ -12,7 +12,7 @@ #include --- a/netem/normal.c +++ b/netem/normal.c -@@ -8,8 +8,12 @@ +@@ -9,8 +9,12 @@ #include #include @@ -27,7 +27,7 @@ #define TABLEFACTOR NETEM_DIST_SCALE --- a/netem/pareto.c +++ b/netem/pareto.c -@@ -7,8 +7,12 @@ +@@ -8,8 +8,12 @@ #include #include @@ -42,7 +42,7 @@ #define TABLESIZE 16384 --- a/netem/paretonormal.c +++ b/netem/paretonormal.c -@@ -14,10 +14,13 @@ +@@ -15,10 +15,13 @@ #include #include #include diff --git a/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch b/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch index 8702d5fd2d..03df7809f7 100644 --- a/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch +++ b/package/network/utils/iproute2/patches/115-add-config-xtlibdir.patch @@ -1,6 +1,6 @@ --- a/tc/Makefile +++ b/tc/Makefile -@@ -128,6 +128,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR +@@ -127,6 +127,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR ifneq ($(IPT_LIB_DIR),) CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\" endif diff --git a/package/network/utils/iproute2/patches/140-allow_pfifo_fast.patch b/package/network/utils/iproute2/patches/140-allow_pfifo_fast.patch index 13de48f412..8f5a7d352e 100644 --- a/package/network/utils/iproute2/patches/140-allow_pfifo_fast.patch +++ b/package/network/utils/iproute2/patches/140-allow_pfifo_fast.patch @@ -1,6 +1,6 @@ --- a/tc/q_fifo.c +++ b/tc/q_fifo.c -@@ -95,5 +95,6 @@ struct qdisc_util pfifo_head_drop_qdisc_ +@@ -90,5 +90,6 @@ struct qdisc_util pfifo_head_drop_qdisc_ struct qdisc_util pfifo_fast_qdisc_util = { .id = "pfifo_fast", diff --git a/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch b/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch index 7f68f43616..a8cdd103ba 100644 --- a/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch +++ b/package/network/utils/iproute2/patches/140-keep_libmnl_optional.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -412,7 +412,7 @@ check_tirpc() +@@ -411,7 +411,7 @@ check_tirpc() check_mnl() { diff --git a/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch b/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch index 2eaae88198..0c5c3f59ed 100644 --- a/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch +++ b/package/network/utils/iproute2/patches/145-keep_libelf_optional.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -267,7 +267,7 @@ EOF +@@ -266,7 +266,7 @@ EOF check_elf() { diff --git a/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch b/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch index c574840fa8..4cce2c3ca6 100644 --- a/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch +++ b/package/network/utils/iproute2/patches/150-keep_libcap_optional.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -470,7 +470,7 @@ EOF +@@ -469,7 +469,7 @@ EOF check_cap() { diff --git a/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch b/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch index 4ee6245d3b..28ba7e5217 100644 --- a/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch +++ b/package/network/utils/iproute2/patches/155-keep_tirpc_optional.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -399,7 +399,7 @@ check_selinux() +@@ -398,7 +398,7 @@ check_selinux() check_tirpc() { diff --git a/package/network/utils/iproute2/patches/170-ip_tiny.patch b/package/network/utils/iproute2/patches/170-ip_tiny.patch index eef5e38229..71081c36bc 100644 --- a/package/network/utils/iproute2/patches/170-ip_tiny.patch +++ b/package/network/utils/iproute2/patches/170-ip_tiny.patch @@ -25,7 +25,7 @@ sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \ --- a/ip/ip.c +++ b/ip/ip.c -@@ -65,11 +65,17 @@ static void usage(void) +@@ -61,11 +61,17 @@ static void usage(void) fprintf(stderr, "Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }\n" " ip [ -force ] -batch filename\n" @@ -43,7 +43,7 @@ " OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n" " -h[uman-readable] | -iec | -j[son] | -p[retty] |\n" " -f[amily] { inet | inet6 | mpls | bridge | link } |\n" -@@ -92,37 +98,49 @@ static const struct cmd { +@@ -88,37 +94,49 @@ static const struct cmd { int (*func)(int argc, char **argv); } cmds[] = { { "address", do_ipaddr }, diff --git a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch index c3892e5a0e..d0914848d5 100644 --- a/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch +++ b/package/network/utils/iproute2/patches/175-reduce-dynamic-syms.patch @@ -1,6 +1,6 @@ --- a/tc/Makefile +++ b/tc/Makefile -@@ -114,7 +114,7 @@ LDLIBS += -L. -lm +@@ -113,7 +113,7 @@ LDLIBS += -L. -lm ifeq ($(SHARED_LIBS),y) LDLIBS += -ldl @@ -9,7 +9,7 @@ endif TCLIB := tc_core.o -@@ -144,7 +144,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc +@@ -143,7 +143,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc all: tc $(TCSO) tc: $(TCOBJ) $(LIBNETLINK) libtc.a @@ -18,7 +18,7 @@ libtc.a: $(TCLIB) $(QUIET_AR)$(AR) rcs $@ $^ -@@ -166,6 +166,7 @@ install: all +@@ -165,6 +165,7 @@ install: all clean: rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.tab.h; \ rm -f emp_ematch.tab.* @@ -26,7 +26,7 @@ q_atm.so: q_atm.c $(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm -@@ -205,4 +206,16 @@ static-syms.h: $(wildcard *.c) +@@ -204,4 +205,16 @@ static-syms.h: $(wildcard *.c) sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \ done > $@ diff --git a/package/network/utils/iproute2/patches/180-drop_FAILED_POLICY.patch b/package/network/utils/iproute2/patches/180-drop_FAILED_POLICY.patch index 094ff393a6..9ce7dd9a13 100644 --- a/package/network/utils/iproute2/patches/180-drop_FAILED_POLICY.patch +++ b/package/network/utils/iproute2/patches/180-drop_FAILED_POLICY.patch @@ -11,7 +11,7 @@ Subject: [PATCH] add support for dropping with FAILED_POLICY --- a/ip/rtm_map.c +++ b/ip/rtm_map.c -@@ -54,6 +54,8 @@ char *rtnl_rtntype_n2a(int id, char *buf +@@ -49,6 +49,8 @@ char *rtnl_rtntype_n2a(int id, char *buf return "nat"; case RTN_XRESOLVE: return "xresolve"; @@ -20,7 +20,7 @@ Subject: [PATCH] add support for dropping with FAILED_POLICY default: snprintf(buf, len, "%d", id); return buf; -@@ -89,6 +91,8 @@ int rtnl_rtntype_a2n(int *id, char *arg) +@@ -84,6 +86,8 @@ int rtnl_rtntype_a2n(int *id, char *arg) res = RTN_UNICAST; else if (strcmp(arg, "throw") == 0) res = RTN_THROW; diff --git a/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch b/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch index 2f3f90fe1a..c7fceb2e22 100644 --- a/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch +++ b/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -291,7 +291,7 @@ int main(int argc, char **argv) { +@@ -290,7 +290,7 @@ int main(int argc, char **argv) { } EOF @@ -9,7 +9,7 @@ local ret=$? rm -f $TMPDIR/libbpf_test.c $TMPDIR/libbpf_test -@@ -309,7 +309,7 @@ int main(int argc, char **argv) { +@@ -308,7 +308,7 @@ int main(int argc, char **argv) { } EOF diff --git a/package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch b/package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch index dc9c0b2969..141763460d 100644 --- a/package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch +++ b/package/network/utils/iproute2/patches/195-build_variant_ip_tc.patch @@ -11,7 +11,7 @@ --- a/tc/Makefile +++ b/tc/Makefile -@@ -141,7 +141,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc +@@ -140,7 +140,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc $(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic $< -o $@ diff --git a/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch b/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch index 052bdd84eb..d1948860e8 100644 --- a/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch +++ b/package/network/utils/iproute2/patches/200-drop_libbsd_dependency.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -456,14 +456,8 @@ EOF +@@ -455,14 +455,8 @@ EOF if $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1; then echo "no" else diff --git a/package/network/utils/iproute2/patches/300-selinux-configurable.patch b/package/network/utils/iproute2/patches/300-selinux-configurable.patch index adfa405c7f..817abf7d17 100644 --- a/package/network/utils/iproute2/patches/300-selinux-configurable.patch +++ b/package/network/utils/iproute2/patches/300-selinux-configurable.patch @@ -1,6 +1,6 @@ --- a/configure +++ b/configure -@@ -386,7 +386,7 @@ check_libbpf() +@@ -385,7 +385,7 @@ check_libbpf() check_selinux() # SELinux is a compile time option in the ss utility { diff --git a/package/network/utils/iproute2/patches/320-configure-Remove-include-sys-stat.h.patch b/package/network/utils/iproute2/patches/320-configure-Remove-include-sys-stat.h.patch deleted file mode 100644 index 02bb20297d..0000000000 --- a/package/network/utils/iproute2/patches/320-configure-Remove-include-sys-stat.h.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 3a3a2f6be704c970938eb8dac4eb0118f1c2fb06 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Wed, 21 Dec 2022 23:26:28 +0100 -Subject: [PATCH iproute2 v2] configure: Remove include - -The check_name_to_handle_at() function in the configure script is -including sys/stat.h. This include fails with glibc 2.36 like this: -```` -In file included from /linux-5.15.84/include/uapi/linux/stat.h:5, - from /toolchain-x86_64_gcc-12.2.0_glibc/include/bits/statx.h:31, - from /toolchain-x86_64_gcc-12.2.0_glibc/include/sys/stat.h:465, - from config.YExfMc/name_to_handle_at_test.c:3: -/linux-5.15.84/include/uapi/linux/types.h:10:2: warning: #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders" [-Wcpp] - 10 | #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders" - | ^~~~~~~ -In file included from /linux-5.15.84/include/uapi/linux/posix_types.h:5, - from /linux-5.15.84/include/uapi/linux/types.h:14: -/linux-5.15.84/include/uapi/linux/stddef.h:5:10: fatal error: linux/compiler_types.h: No such file or directory - 5 | #include - | ^~~~~~~~~~~~~~~~~~~~~~~~ -compilation terminated. -```` - -Just removing the include works, the manpage of name_to_handle_at() says -only fcntl.h is needed. - -Fixes: c5b72cc56bf8 ("lib/fs: fix issue when {name,open}_to_handle_at() is not implemented") -Tested-by: Heiko Thiery -Signed-off-by: Hauke Mehrtens ---- - configure | 1 - - 1 file changed, 1 deletion(-) - ---- a/configure -+++ b/configure -@@ -215,7 +215,6 @@ check_name_to_handle_at() - cat >$TMPDIR/name_to_handle_at_test.c < --#include - #include - int main(int argc, char **argv) - { diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-x1200-nor-nand.dts b/target/linux/ath79/dts/qca9563_glinet_gl-x1200-nor-nand.dts new file mode 100644 index 0000000000..2a26d959c9 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_glinet_gl-x1200-nor-nand.dts @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9563_glinet_gl-x1200.dtsi" + +/ { + compatible = "glinet,gl-x1200-nor-nand", "qca,qca9563"; + model = "GL.iNet GL-X1200 (NOR/NAND)"; +}; + +&nor_partitions { + partition@60000 { + label = "kernel"; + reg = <0x060000 0x400000>; + + /* + * U-Boot bootcmd is "bootm 0x9f060000". + * So this might be possible to resize in the future. + */ + }; + + partition@460000 { + label = "nor_reserved"; + reg = <0x460000 0xba0000>; + }; +}; + +&nand_ubi { + label = "ubi"; +}; diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-x1200-nor.dts b/target/linux/ath79/dts/qca9563_glinet_gl-x1200-nor.dts new file mode 100644 index 0000000000..dfce3818b0 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_glinet_gl-x1200-nor.dts @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9563_glinet_gl-x1200.dtsi" + +/ { + compatible = "glinet,gl-x1200-nor", "qca,qca9563"; + model = "GL.iNet GL-X1200 (NOR)"; +}; + +&nor_partitions { + partition@60000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x060000 0xfa0000>; + }; +}; diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi b/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi new file mode 100644 index 0000000000..8980f772e7 --- /dev/null +++ b/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi @@ -0,0 +1,209 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca956x.dtsi" + +#include +#include + +/ { + aliases { + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + label-mac-device = ð0; + }; + + keys { + compatible = "gpio-keys"; + + pinctrl-names = "default"; + pinctrl-0 = <&jtag_disable_pins>; + + reset { + label = "reset"; + linux,code = ; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_system: system { + label = "red:system"; + gpios = <&gpio 8 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + wlan2g { + label = "green:wlan2g"; + gpios = <&gpio 19 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + + wlan5g { + label = "green:wlan5g"; + gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tpt"; + }; + }; + + gpio-export { + compatible = "gpio-export"; + + gpio_modem1_power { + gpio-export,name = "gl-x1200:4g1:power"; + gpio-export,output = <0>; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + }; + + gpio_modem2_power { + gpio-export,name = "gl-x1200:4g2:power"; + gpio-export,output = <0>; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&spi { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + nor_partitions: partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x000000 0x040000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x040000 0x010000>; + }; + + partition@50000 { + label = "art"; + reg = <0x050000 0x010000>; + read-only; + + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + calibration_ath9k: calibration@1000 { + reg = <0x1000 0x440>; + }; + + calibration_ath10k: calibration@5000 { + reg = <0x5000 0x2f20>; + }; + + macaddr_art_0: macaddr@0 { + reg = <0x0 0x6>; + }; + + macaddr_art_1002: macaddr@1002 { + reg = <0x1002 0x6>; + }; + + macaddr_art_5006: macaddr@5006 { + reg = <0x5006 0x6>; + }; + }; + + /* Firmware / Kernel flash type specific */ + }; + }; + + flash@1 { + compatible = "spi-nand"; + reg = <1>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + nand_ubi: partition@0 { + label = "nand_ubi"; + reg = <0x000000 0x8000000>; + }; + }; + }; +}; + +ð0 { + status = "okay"; + + phy-handle = <&phy0>; + + nvmem-cells = <&macaddr_art_0>; + nvmem-cell-names = "mac-address"; +}; + +&gpio { + usb_vbus { + gpio-hog; + gpios = <7 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "usb-vbus"; + }; +}; + +&mdio0 { + status = "okay"; + + phy0: ethernet-phy@0 { + reg = <0>; + phy-mode = "sgmii"; + qca,ar8327-initvals = < + 0x04 0x00080080 /* PORT0 PAD MODE CTRL */ + 0x7c 0x0000007e /* PORT0_STATUS */ + >; + }; +}; + +&pcie { + status = "okay"; + + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0 0 0 0 0>; + + nvmem-cells = <&macaddr_art_5006>, <&calibration_ath10k>; + nvmem-cell-names = "mac-address", "pre-calibration"; + }; +}; + +&usb0 { + status = "okay"; +}; + +&usb1 { + status = "okay"; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb_phy1 { + status = "okay"; +}; + +&wmac { + status = "okay"; + + nvmem-cells = <&macaddr_art_1002>, <&calibration_ath9k>; + nvmem-cell-names = "mac-address", "calibration"; +}; diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk index c83beef952..40c57d8b06 100644 --- a/target/linux/ath79/image/nand.mk +++ b/target/linux/ath79/image/nand.mk @@ -212,6 +212,35 @@ define Device/glinet_gl-xe300 endef TARGET_DEVICES += glinet_gl-xe300 +define Device/glinet_gl-x1200-common + SOC := qca9563 + DEVICE_VENDOR := GL.iNet + DEVICE_MODEL := GL-X1200 + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct-htt kmod-usb2 \ + kmod-usb-storage block-mount kmod-usb-net-qmi-wwan uqmi + IMAGE_SIZE := 16000k +endef + +define Device/glinet_gl-x1200-nor-nand + $(Device/glinet_gl-x1200-common) + DEVICE_VARIANT := NOR/NAND + KERNEL_SIZE := 4096k + IMAGE_SIZE := 131072k + PAGESIZE := 2048 + VID_HDR_OFFSET := 2048 + BLOCKSIZE := 128k + IMAGES += factory.img + IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi + IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata +endef +TARGET_DEVICES += glinet_gl-x1200-nor-nand + +define Device/glinet_gl-x1200-nor + $(Device/glinet_gl-x1200-common) + DEVICE_VARIANT := NOR +endef +TARGET_DEVICES += glinet_gl-x1200-nor + define Device/linksys_ea4500-v3 SOC := qca9558 DEVICE_VENDOR := Linksys diff --git a/target/linux/ath79/nand/base-files/etc/board.d/02_network b/target/linux/ath79/nand/base-files/etc/board.d/02_network index b163b29db1..137f3aa11b 100644 --- a/target/linux/ath79/nand/base-files/etc/board.d/02_network +++ b/target/linux/ath79/nand/base-files/etc/board.d/02_network @@ -30,6 +30,11 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth0" "4:lan" ;; + glinet,gl-x1200-nor|\ + glinet,gl-x1200-nor-nand) + ucidef_add_switch "switch0" \ + "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan" + ;; linksys,ea4500-v3) ucidef_add_switch "switch0" \ "6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0" @@ -88,6 +93,11 @@ ath79_setup_macs() wan_mac=$(mtd_get_mac_binary art 0x0) label_mac=$wan_mac ;; + glinet,gl-x1200-nor|\ + glinet,gl-x1200-nor-nand) + wan_mac=$(mtd_get_mac_binary art 0x0) + lan_mac=$(macaddr_add "$wan_mac" 1) + ;; netgear,wndr3700-v4|\ netgear,wndr4300|\ netgear,wndr4300sw|\ diff --git a/target/linux/ath79/nand/base-files/lib/upgrade/platform.sh b/target/linux/ath79/nand/base-files/lib/upgrade/platform.sh index ea77345b06..5a4f76ba51 100644 --- a/target/linux/ath79/nand/base-files/lib/upgrade/platform.sh +++ b/target/linux/ath79/nand/base-files/lib/upgrade/platform.sh @@ -19,7 +19,9 @@ platform_do_upgrade() { glinet_nand_nor_do_upgrade "$1" ;; glinet,gl-ar750s-nor|\ - glinet,gl-ar750s-nor-nand) + glinet,gl-ar750s-nor-nand|\ + glinet,gl-x1200-nor|\ + glinet,gl-x1200-nor-nand) nand_nor_do_upgrade "$1" ;; *) diff --git a/target/linux/bcm47xx/Makefile b/target/linux/bcm47xx/Makefile index ca09aea981..a56c53ca6d 100644 --- a/target/linux/bcm47xx/Makefile +++ b/target/linux/bcm47xx/Makefile @@ -10,8 +10,7 @@ BOARDNAME:=Broadcom BCM47xx/53xx (MIPS) FEATURES:=squashfs usb SUBTARGETS:=generic mips74k legacy -KERNEL_PATCHVER:=5.10 -KERNEL_TESTING_PATCHVER:=5.15 +KERNEL_PATCHVER:=5.15 define Target/Description Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM. diff --git a/target/linux/bcm47xx/image/lzma-loader/src/Makefile b/target/linux/bcm47xx/image/lzma-loader/src/Makefile index a3e7ae1c92..0bad8dd9bb 100644 --- a/target/linux/bcm47xx/image/lzma-loader/src/Makefile +++ b/target/linux/bcm47xx/image/lzma-loader/src/Makefile @@ -18,8 +18,8 @@ # TEXT_START := 0x80001000 -BZ_TEXT_START := 0x80700000 -BZ_STACK_START := 0x80800000 +BZ_TEXT_START := 0x80d00000 +BZ_STACK_START := 0x80e00000 OBJCOPY := $(CROSS_COMPILE)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi index db9ca1e725..141ea60442 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-xx8300.dtsi @@ -100,6 +100,16 @@ status = "okay"; }; }; + + regulator-usb-vbus { + compatible = "regulator-fixed"; + regulator-name = "USB_VBUS"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + gpio = <&tlmm 68 GPIO_ACTIVE_LOW>; + }; }; @@ -268,7 +278,7 @@ pins = "gpio55", "gpio56", "gpio57", "gpio60", "gpio62", "gpio63", "gpio64", "gpio65", "gpio66", - "gpio67", "gpio68", "gpio69"; + "gpio67", "gpio69"; function = "qpic"; bias-pull-down; }; diff --git a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts index 80d876b4ad..0ad25fafbb 100644 --- a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts +++ b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts @@ -6,6 +6,7 @@ */ #include "cn9130.dtsi" +#include "puzzle-thermal.dtsi" #include #include @@ -109,26 +110,18 @@ chassis_fan_group0: fan-group@0 { #cooling-cells = <2>; reg = <0x00>; - cooling-levels = <64 102 170 230 250>; + cooling-levels = <80 102 170 230 255>; }; }; }; }; -&ap_thermal_cpu1 { - trips { - cpu_active: cpu-active { - temperature = <44000>; - hysteresis = <2000>; - type = "active"; - }; - }; - cooling-maps { - fan-map { - trip = <&cpu_active>; - cooling-device = <&chassis_fan_group0 64 THERMAL_NO_LIMIT>; - }; - }; +&ap_thermal_ic { + PUZZLE_FAN_THERMAL(ic, &chassis_fan_group0); +}; + +&cp0_thermal_ic { + PUZZLE_FAN_THERMAL(cp0, &chassis_fan_group0); }; /* on-board eMMC - U9 */ @@ -396,6 +389,10 @@ }; }; +&cp1_thermal_ic { + PUZZLE_FAN_THERMAL(cp1, &chassis_fan_group0); +}; + &cp1_usb3_1 { status = "okay"; phys = <&cp1_comphy3 1>; diff --git a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9132-puzzle-m902.dts b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9132-puzzle-m902.dts index fd99eb2d13..398e53a5f9 100644 --- a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9132-puzzle-m902.dts +++ b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9132-puzzle-m902.dts @@ -6,6 +6,7 @@ */ #include "cn9130.dtsi" +#include "puzzle-thermal.dtsi" #include #include @@ -154,28 +155,21 @@ chassis_fan_group0: fan-group@0 { #cooling-cells = <2>; reg = <0x00>; - cooling-levels = <64 102 170 230 250>; + cooling-levels = <80 102 170 230 255>; }; }; }; }; -&ap_thermal_cpu1 { - trips { - cpu_active: cpu-active { - temperature = <44000>; - hysteresis = <2000>; - type = "active"; - }; - }; - cooling-maps { - fan-map { - trip = <&cpu_active>; - cooling-device = <&chassis_fan_group0 64 THERMAL_NO_LIMIT>; - }; - }; +&ap_thermal_ic { + PUZZLE_FAN_THERMAL(ic, &chassis_fan_group0); }; +&cp0_thermal_ic { + PUZZLE_FAN_THERMAL(cp0, &chassis_fan_group0); +}; + + /* on-board eMMC - U9 */ &ap_sdhci0 { pinctrl-names = "default"; @@ -447,6 +441,10 @@ }; }; +&cp1_thermal_ic { + PUZZLE_FAN_THERMAL(cp1, &chassis_fan_group0); +}; + /* * Instantiate the second connected CP115 */ @@ -562,3 +560,7 @@ }; }; }; + +&cp2_thermal_ic { + PUZZLE_FAN_THERMAL(cp2, &chassis_fan_group0); +}; diff --git a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/puzzle-thermal.dtsi b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/puzzle-thermal.dtsi new file mode 100644 index 0000000000..94677532f2 --- /dev/null +++ b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/puzzle-thermal.dtsi @@ -0,0 +1,41 @@ +#define PUZZLE_FAN_THERMAL(_cname, _fan) \ + trips { \ + _cname##_active_high: cpu-active-high { \ + temperature = <80000>; \ + hysteresis = <2000>; \ + type = "active"; \ + }; \ + _cname##_active_med: cpu-active-med { \ + temperature = <72000>; \ + hysteresis = <2000>; \ + type = "active"; \ + }; \ + _cname##_active_low: cpu-active-low { \ + temperature = <65000>; \ + hysteresis = <2000>; \ + type = "active"; \ + }; \ + _cname##_active_idle: cpu-active-idle { \ + temperature = <60000>; \ + hysteresis = <2000>; \ + type = "active"; \ + }; \ + }; \ + cooling-maps { \ + cpu-active-high { \ + trip = <&_cname##_active_high>; \ + cooling-device = <_fan 3 THERMAL_NO_LIMIT>; \ + }; \ + cpu-active-med { \ + trip = <&_cname##_active_med>; \ + cooling-device = <_fan 2 THERMAL_NO_LIMIT>; \ + }; \ + cpu-active-low { \ + trip = <&_cname##_active_low>; \ + cooling-device = <_fan 1 THERMAL_NO_LIMIT>; \ + }; \ + cpu-active-idle { \ + trip = <&_cname##_active_idle>; \ + cooling-device = <_fan 0 THERMAL_NO_LIMIT>; \ + }; \ + } diff --git a/target/linux/mvebu/patches-5.10/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch b/target/linux/mvebu/patches-5.10/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch index 684f09c800..d31709fd85 100644 --- a/target/linux/mvebu/patches-5.10/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch +++ b/target/linux/mvebu/patches-5.10/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch @@ -53,7 +53,7 @@ Cc: Robert Marko obj-$(CONFIG_SENSORS_IBMPOWERNV)+= ibmpowernv.o --- /dev/null +++ b/drivers/hwmon/iei-wt61p803-puzzle-hwmon.c -@@ -0,0 +1,413 @@ +@@ -0,0 +1,445 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* IEI WT61P803 PUZZLE MCU HWMON Driver + * @@ -84,13 +84,17 @@ Cc: Robert Marko + * @name: Thermal cooling device name + * @pwm_channel: Controlled PWM channel (0 or 1) + * @cooling_levels: Thermal cooling device cooling levels (DT) ++ * @cur_level: Current cooling level ++ * @num_levels: Number of cooling levels + */ +struct iei_wt61p803_puzzle_thermal_cooling_device { + struct iei_wt61p803_puzzle_hwmon *mcu_hwmon; + struct thermal_cooling_device *tcdev; + char name[THERMAL_NAME_LENGTH]; + int pwm_channel; -+ u8 *cooling_levels; ++ u32 *cooling_levels; ++ int cur_level; ++ u8 num_levels; +}; + +/** @@ -326,8 +330,12 @@ Cc: Robert Marko +static int iei_wt61p803_puzzle_get_max_state(struct thermal_cooling_device *tcdev, + unsigned long *state) +{ -+ *state = IEI_WT61P803_PUZZLE_HWMON_MAX_PWM_VAL; ++ struct iei_wt61p803_puzzle_thermal_cooling_device *cdev = tcdev->devdata; + ++ if (!cdev) ++ return -EINVAL; ++ ++ *state = cdev->num_levels - 1; + return 0; +} + @@ -335,14 +343,14 @@ Cc: Robert Marko + unsigned long *state) +{ + struct iei_wt61p803_puzzle_thermal_cooling_device *cdev = tcdev->devdata; -+ struct iei_wt61p803_puzzle_hwmon *mcu_hwmon = cdev->mcu_hwmon; -+ long value; -+ int ret; + -+ ret = iei_wt61p803_puzzle_read_pwm_channel(mcu_hwmon, cdev->pwm_channel, &value); -+ if (ret) -+ return ret; -+ *state = value; ++ if (!cdev) ++ return -EINVAL; ++ ++ if (cdev->cur_level < 0) ++ return -EAGAIN; ++ ++ *state = cdev->cur_level; + return 0; +} + @@ -350,9 +358,21 @@ Cc: Robert Marko + unsigned long state) +{ + struct iei_wt61p803_puzzle_thermal_cooling_device *cdev = tcdev->devdata; -+ struct iei_wt61p803_puzzle_hwmon *mcu_hwmon = cdev->mcu_hwmon; ++ u8 pwm_level; + -+ return iei_wt61p803_puzzle_write_pwm_channel(mcu_hwmon, cdev->pwm_channel, state); ++ if (!cdev) ++ return -EINVAL; ++ ++ if (state >= cdev->num_levels) ++ return -EINVAL; ++ ++ if (state == cdev->cur_level) ++ return 0; ++ ++ cdev->cur_level = state; ++ pwm_level = cdev->cooling_levels[state]; ++ ++ return iei_wt61p803_puzzle_write_pwm_channel(cdev->mcu_hwmon, cdev->pwm_channel, pwm_level); +} + +static const struct thermal_cooling_device_ops iei_wt61p803_puzzle_cooling_ops = { @@ -369,7 +389,7 @@ Cc: Robert Marko + struct iei_wt61p803_puzzle_thermal_cooling_device *cdev; + u32 pwm_channel; + u8 num_levels; -+ int ret; ++ int i, ret; + + ret = fwnode_property_read_u32(child, "reg", &pwm_channel); + if (ret) @@ -377,7 +397,7 @@ Cc: Robert Marko + + mcu_hwmon->thermal_cooling_dev_present[pwm_channel] = true; + -+ num_levels = fwnode_property_count_u8(child, "cooling-levels"); ++ num_levels = fwnode_property_count_u32(child, "cooling-levels"); + if (!num_levels) + return -EINVAL; + @@ -385,28 +405,40 @@ Cc: Robert Marko + if (!cdev) + return -ENOMEM; + -+ cdev->cooling_levels = devm_kmalloc_array(dev, num_levels, sizeof(u8), GFP_KERNEL); ++ cdev->cooling_levels = devm_kmalloc_array(dev, num_levels, sizeof(u32), GFP_KERNEL); + if (!cdev->cooling_levels) + return -ENOMEM; + -+ ret = fwnode_property_read_u8_array(child, "cooling-levels", -+ cdev->cooling_levels, -+ num_levels); ++ ret = fwnode_property_read_u32_array(child, "cooling-levels", ++ cdev->cooling_levels, ++ num_levels); + if (ret) { + dev_err(dev, "Couldn't read property 'cooling-levels'\n"); + return ret; + } + -+ snprintf(cdev->name, THERMAL_NAME_LENGTH, "wt61p803_puzzle_%d", pwm_channel); -+ cdev->tcdev = devm_thermal_of_cooling_device_register(dev, NULL, cdev->name, cdev, -+ &iei_wt61p803_puzzle_cooling_ops); -+ if (IS_ERR(cdev->tcdev)) -+ return PTR_ERR(cdev->tcdev); ++ for (i = 0; i < num_levels; i++) { ++ if (cdev->cooling_levels[i] > ++ IEI_WT61P803_PUZZLE_HWMON_MAX_PWM_VAL) { ++ dev_err(dev, "iei_wt61p803_fan state[%d]:%d > %d\n", i, ++ cdev->cooling_levels[i], ++ IEI_WT61P803_PUZZLE_HWMON_MAX_PWM_VAL); ++ return -EINVAL; ++ } ++ } + + cdev->mcu_hwmon = mcu_hwmon; + cdev->pwm_channel = pwm_channel; ++ cdev->num_levels = num_levels; ++ cdev->cur_level = -1; + mcu_hwmon->cdev[pwm_channel] = cdev; + ++ snprintf(cdev->name, THERMAL_NAME_LENGTH, "wt61p803_puzzle_%d", pwm_channel); ++ cdev->tcdev = devm_thermal_of_cooling_device_register(dev, to_of_node(child), cdev->name, ++ cdev, &iei_wt61p803_puzzle_cooling_ops); ++ if (IS_ERR(cdev->tcdev)) ++ return PTR_ERR(cdev->tcdev); ++ + return 0; +} + diff --git a/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch b/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch index c22314e41c..023495373b 100644 --- a/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch +++ b/target/linux/mvebu/patches-5.15/903-drivers-hwmon-Add-the-IEI-WT61P803-PUZZLE-HWMON-driv.patch @@ -53,7 +53,7 @@ Cc: Robert Marko obj-$(CONFIG_SENSORS_IBMPOWERNV)+= ibmpowernv.o --- /dev/null +++ b/drivers/hwmon/iei-wt61p803-puzzle-hwmon.c -@@ -0,0 +1,413 @@ +@@ -0,0 +1,445 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* IEI WT61P803 PUZZLE MCU HWMON Driver + * @@ -84,13 +84,17 @@ Cc: Robert Marko + * @name: Thermal cooling device name + * @pwm_channel: Controlled PWM channel (0 or 1) + * @cooling_levels: Thermal cooling device cooling levels (DT) ++ * @cur_level: Current cooling level ++ * @num_levels: Number of cooling levels + */ +struct iei_wt61p803_puzzle_thermal_cooling_device { + struct iei_wt61p803_puzzle_hwmon *mcu_hwmon; + struct thermal_cooling_device *tcdev; + char name[THERMAL_NAME_LENGTH]; + int pwm_channel; -+ u8 *cooling_levels; ++ u32 *cooling_levels; ++ int cur_level; ++ u8 num_levels; +}; + +/** @@ -326,8 +330,12 @@ Cc: Robert Marko +static int iei_wt61p803_puzzle_get_max_state(struct thermal_cooling_device *tcdev, + unsigned long *state) +{ -+ *state = IEI_WT61P803_PUZZLE_HWMON_MAX_PWM_VAL; ++ struct iei_wt61p803_puzzle_thermal_cooling_device *cdev = tcdev->devdata; + ++ if (!cdev) ++ return -EINVAL; ++ ++ *state = cdev->num_levels - 1; + return 0; +} + @@ -335,14 +343,14 @@ Cc: Robert Marko + unsigned long *state) +{ + struct iei_wt61p803_puzzle_thermal_cooling_device *cdev = tcdev->devdata; -+ struct iei_wt61p803_puzzle_hwmon *mcu_hwmon = cdev->mcu_hwmon; -+ long value; -+ int ret; + -+ ret = iei_wt61p803_puzzle_read_pwm_channel(mcu_hwmon, cdev->pwm_channel, &value); -+ if (ret) -+ return ret; -+ *state = value; ++ if (!cdev) ++ return -EINVAL; ++ ++ if (cdev->cur_level < 0) ++ return -EAGAIN; ++ ++ *state = cdev->cur_level; + return 0; +} + @@ -350,9 +358,21 @@ Cc: Robert Marko + unsigned long state) +{ + struct iei_wt61p803_puzzle_thermal_cooling_device *cdev = tcdev->devdata; -+ struct iei_wt61p803_puzzle_hwmon *mcu_hwmon = cdev->mcu_hwmon; ++ u8 pwm_level; + -+ return iei_wt61p803_puzzle_write_pwm_channel(mcu_hwmon, cdev->pwm_channel, state); ++ if (!cdev) ++ return -EINVAL; ++ ++ if (state >= cdev->num_levels) ++ return -EINVAL; ++ ++ if (state == cdev->cur_level) ++ return 0; ++ ++ cdev->cur_level = state; ++ pwm_level = cdev->cooling_levels[state]; ++ ++ return iei_wt61p803_puzzle_write_pwm_channel(cdev->mcu_hwmon, cdev->pwm_channel, pwm_level); +} + +static const struct thermal_cooling_device_ops iei_wt61p803_puzzle_cooling_ops = { @@ -369,7 +389,7 @@ Cc: Robert Marko + struct iei_wt61p803_puzzle_thermal_cooling_device *cdev; + u32 pwm_channel; + u8 num_levels; -+ int ret; ++ int i, ret; + + ret = fwnode_property_read_u32(child, "reg", &pwm_channel); + if (ret) @@ -377,7 +397,7 @@ Cc: Robert Marko + + mcu_hwmon->thermal_cooling_dev_present[pwm_channel] = true; + -+ num_levels = fwnode_property_count_u8(child, "cooling-levels"); ++ num_levels = fwnode_property_count_u32(child, "cooling-levels"); + if (!num_levels) + return -EINVAL; + @@ -385,28 +405,40 @@ Cc: Robert Marko + if (!cdev) + return -ENOMEM; + -+ cdev->cooling_levels = devm_kmalloc_array(dev, num_levels, sizeof(u8), GFP_KERNEL); ++ cdev->cooling_levels = devm_kmalloc_array(dev, num_levels, sizeof(u32), GFP_KERNEL); + if (!cdev->cooling_levels) + return -ENOMEM; + -+ ret = fwnode_property_read_u8_array(child, "cooling-levels", -+ cdev->cooling_levels, -+ num_levels); ++ ret = fwnode_property_read_u32_array(child, "cooling-levels", ++ cdev->cooling_levels, ++ num_levels); + if (ret) { + dev_err(dev, "Couldn't read property 'cooling-levels'\n"); + return ret; + } + -+ snprintf(cdev->name, THERMAL_NAME_LENGTH, "wt61p803_puzzle_%d", pwm_channel); -+ cdev->tcdev = devm_thermal_of_cooling_device_register(dev, NULL, cdev->name, cdev, -+ &iei_wt61p803_puzzle_cooling_ops); -+ if (IS_ERR(cdev->tcdev)) -+ return PTR_ERR(cdev->tcdev); ++ for (i = 0; i < num_levels; i++) { ++ if (cdev->cooling_levels[i] > ++ IEI_WT61P803_PUZZLE_HWMON_MAX_PWM_VAL) { ++ dev_err(dev, "iei_wt61p803_fan state[%d]:%d > %d\n", i, ++ cdev->cooling_levels[i], ++ IEI_WT61P803_PUZZLE_HWMON_MAX_PWM_VAL); ++ return -EINVAL; ++ } ++ } + + cdev->mcu_hwmon = mcu_hwmon; + cdev->pwm_channel = pwm_channel; ++ cdev->num_levels = num_levels; ++ cdev->cur_level = -1; + mcu_hwmon->cdev[pwm_channel] = cdev; + ++ snprintf(cdev->name, THERMAL_NAME_LENGTH, "wt61p803_puzzle_%d", pwm_channel); ++ cdev->tcdev = devm_thermal_of_cooling_device_register(dev, to_of_node(child), cdev->name, ++ cdev, &iei_wt61p803_puzzle_cooling_ops); ++ if (IS_ERR(cdev->tcdev)) ++ return PTR_ERR(cdev->tcdev); ++ + return 0; +} + diff --git a/target/linux/ramips/dts/mt7621_netgear_sercomm_ayx.dtsi b/target/linux/ramips/dts/mt7621_netgear_sercomm_ayx.dtsi index 0ae6ab46f7..691aba1063 100644 --- a/target/linux/ramips/dts/mt7621_netgear_sercomm_ayx.dtsi +++ b/target/linux/ramips/dts/mt7621_netgear_sercomm_ayx.dtsi @@ -96,7 +96,7 @@ }; }; -&pcie1 { +&pcie2 { wifi@0,0 { compatible = "mediatek,mt76"; reg = <0x0 0 0 0 0>; diff --git a/target/linux/ramips/dts/mt7621_netgear_wac104.dts b/target/linux/ramips/dts/mt7621_netgear_wac104.dts index 3b5d6ae2d9..97aa4a90d1 100644 --- a/target/linux/ramips/dts/mt7621_netgear_wac104.dts +++ b/target/linux/ramips/dts/mt7621_netgear_wac104.dts @@ -122,7 +122,7 @@ }; }; -&pcie1 { +&pcie2 { wifi@0,0 { compatible = "mediatek,mt76"; reg = <0x0 0 0 0 0>; diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index ae0d871387..360b56ddd3 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -51,7 +51,7 @@ define Device/friendlyarm_nanopi-r5c SOC := rk3568 UBOOT_DEVICE_NAME := nanopi-r5c-rk3568 IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-img | gzip | append-metadata - DEVICE_PACKAGES := kmod-r8125 kmod-rtw88 wpad-basic-openssl + DEVICE_PACKAGES := kmod-r8125 kmod-rtw88 rtl8822ce-firmware wpad-basic-openssl endef TARGET_DEVICES += friendlyarm_nanopi-r5c diff --git a/toolchain/Makefile b/toolchain/Makefile index 5dccf8f829..c0046293c9 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -21,8 +21,6 @@ # build & install the final libc # 7) toolchain/gcc/final/compile # build & install the final gcc -# 8) toolchain/libc/utils/compile -# build & install libc utilities # # For musl, steps 2 and 4 are skipped, and step 3 is done after 5 @@ -34,8 +32,8 @@ $(curdir)/builddirs := $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_EXTERNAL_TOOLCHAIN) # builddir dependencies ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) ifdef CONFIG_USE_MUSL + $(curdir)/gcc/initial/compile:=$(curdir)/binutils/compile $(curdir)/kernel-headers/compile:=$(curdir)/gcc/initial/compile - $(curdir)/$(LIBC)/compile:=$(curdir)/kernel-headers/compile else $(curdir)/builddirs += $(LIBC)/headers gcc/minimal $(curdir)/gcc/minimal/compile:=$(curdir)/binutils/compile @@ -44,10 +42,8 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) $(curdir)/gcc/initial/compile:=$(curdir)/$(LIBC)/headers/compile endif - $(curdir)/gcc/initial/compile+=$(curdir)/binutils/compile - $(curdir)/$(LIBC)/compile:=$(curdir)/gcc/initial/compile - $(curdir)/gcc/final/compile:=$(curdir)/$(LIBC)/compile $(curdir)/kernel-headers/compile - $(curdir)/$(LIBC)/utils/compile:=$(curdir)/gcc/final/compile + $(curdir)/$(LIBC)/compile:=$(curdir)/gcc/initial/compile $(curdir)/kernel-headers/compile + $(curdir)/gcc/final/compile:=$(curdir)/$(LIBC)/compile endif ifndef DUMP_TARGET_DB @@ -85,12 +81,12 @@ $(curdir)/ := .config prereq $(curdir)//compile = $(STAGING_DIR)/.prepared $(TOOLCHAIN_DIR)/info.mk $(tools/stamp-compile) ifndef DUMP_TARGET_DB -$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed: +$(TOOLCHAIN_DIR)/stamp/.gcc_final_installed: endif $(curdir)/install: $(curdir)/compile -$(eval $(call stampfile,$(curdir),toolchain,compile,$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed,,$(TOOLCHAIN_DIR))) +$(eval $(call stampfile,$(curdir),toolchain,compile,$(TOOLCHAIN_DIR)/stamp/.gcc_final_installed,,$(TOOLCHAIN_DIR))) $(eval $(call stampfile,$(curdir),toolchain,check,$(TMP_DIR)/.build)) $(eval $(call subdir,$(curdir))) diff --git a/tools/squashfs4/Makefile b/tools/squashfs4/Makefile index 9d4f6babfc..7c8bcf1a72 100644 --- a/tools/squashfs4/Makefile +++ b/tools/squashfs4/Makefile @@ -15,7 +15,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/plougher/squashfs-tools PKG_SOURCE_DATE:=2022-03-17 PKG_SOURCE_VERSION:=afdd63fc386919b4aa40d573b0a6069414d14317 -PKG_MIRROR_HASH:=caedb66cf6dcbdcee0d1525923e203d003ef15f34a13a328686794666f16171f +PKG_MIRROR_HASH:=59c294e00ddfc1f4bda658c7567584ce35fdd479c413ebdb1376981b27737be1 include $(INCLUDE_DIR)/host-build.mk