Merge branch 'openwrt:master' into master

This commit is contained in:
Hayzam Sherif 2023-05-07 22:50:57 +05:30 committed by GitHub
commit 6f9f730d5e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
254 changed files with 4820 additions and 6996 deletions

View file

@ -469,7 +469,8 @@ config KERNEL_AIO
config KERNEL_IO_URING config KERNEL_IO_URING
bool "Compile the kernel with io_uring support" bool "Compile the kernel with io_uring support"
default y if !SMALL_FLASH depends on !SMALL_FLASH
default y if (x86_64 || aarch64)
config KERNEL_FHANDLE config KERNEL_FHANDLE
bool "Compile the kernel with support for fhandle syscalls" bool "Compile the kernel with support for fhandle syscalls"

View file

@ -26,6 +26,8 @@ AM_TOOL_PATHS:= \
AUTOPOINT=true \ AUTOPOINT=true \
GTKDOCIZE=true GTKDOCIZE=true
AM_TOOL_PATHS_FAKE:=$(subst = ,=,$(patsubst "%,"$(TRUE)",$(subst =,= ",$(AM_TOOL_PATHS))))
# 1: build dir # 1: build dir
# 2: remove files # 2: remove files
# 3: automake paths # 3: automake paths

View file

@ -126,6 +126,13 @@ define Build/append-string
echo -n $(1) >> $@ echo -n $(1) >> $@
endef endef
define Build/append-md5sum-ascii-salted
cp $@ $@.salted
echo -ne $(1) >> $@.salted
$(STAGING_DIR_HOST)/bin/mkhash md5 $@.salted | head -c32 >> $@
rm $@.salted
endef
define Build/append-ubi define Build/append-ubi
sh $(TOPDIR)/scripts/ubinize-image.sh \ sh $(TOPDIR)/scripts/ubinize-image.sh \
$(if $(UBOOTENV_IN_UBI),--uboot-env) \ $(if $(UBOOTENV_IN_UBI),--uboot-env) \

View file

@ -1,2 +1,2 @@
LINUX_VERSION-5.10 = .178 LINUX_VERSION-5.10 = .179
LINUX_KERNEL_HASH-5.10.178 = 1acfade3715e560f00fb30615d5471e24b3940b549381558787aee9734e7a8af LINUX_KERNEL_HASH-5.10.179 = 1bbd445c154b053eea46acc883be548a98179988a9ed3a0b81bddfbf30a37e29

View file

@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .108 LINUX_VERSION-5.15 = .110
LINUX_KERNEL_HASH-5.15.108 = 8beb69ada46f1cbca2f4cf901ec078846035c1cd925d9471422f65aff74243ba LINUX_KERNEL_HASH-5.15.110 = 9829fcc77b9978dce97a26980dec445caf2410024696625dbb2314ead4830b5b

View file

@ -8,6 +8,13 @@ include $(INCLUDE_DIR)/prereq.mk
SHELL:=sh SHELL:=sh
PKG_NAME:=Build dependency PKG_NAME:=Build dependency
$(eval $(call TestHostCommand,true, \
Please install GNU 'coreutils', \
$(TRUE)))
$(eval $(call TestHostCommand,false, \
Please install GNU 'coreutils', \
$(FALSE); [ $$$$$$$$? = 1 ] && $(TRUE)))
# Required for the toolchain # Required for the toolchain
$(eval $(call TestHostCommand,working-make, \ $(eval $(call TestHostCommand,working-make, \

View file

@ -63,6 +63,18 @@ define Trusted-Firmware-A/ls1012a-frwy-sdboot
BOOT_MODE:=qspi BOOT_MODE:=qspi
endef endef
define Trusted-Firmware-A/ls1028a-rdb
TITLE:=NXP LS1028ARDB
PLAT:=ls1028ardb
BOOT_MODE:=flexspi_nor
endef
define Trusted-Firmware-A/ls1028a-rdb-sdboot
TITLE:=NXP LS1028ARDB SD Boot
PLAT:=ls1028ardb
BOOT_MODE:=sd
endef
define Trusted-Firmware-A/ls1043a-rdb define Trusted-Firmware-A/ls1043a-rdb
NAME:=NXP LS1043ARDB NAME:=NXP LS1043ARDB
PLAT:=ls1043ardb PLAT:=ls1043ardb
@ -133,6 +145,8 @@ TFA_TARGETS := \
ls1012a-frdm \ ls1012a-frdm \
ls1012a-rdb \ ls1012a-rdb \
ls1012a-frwy-sdboot \ ls1012a-frwy-sdboot \
ls1028a-rdb \
ls1028a-rdb-sdboot \
ls1043a-rdb \ ls1043a-rdb \
ls1043a-rdb-sdboot \ ls1043a-rdb-sdboot \
ls1046a-frwy \ ls1046a-frwy \

View file

@ -62,7 +62,8 @@ h3c,tx1801-plus|\
h3c,tx1806|\ h3c,tx1806|\
jcg,q20|\ jcg,q20|\
linksys,e7350|\ linksys,e7350|\
netgear,wax202) netgear,wax202|\
zyxel,wsm20)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
;; ;;
haier,har-20s2u1|\ haier,har-20s2u1|\
@ -86,6 +87,7 @@ linksys,ea8100-v2|\
mts,wg430223) mts,wg430223)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000" ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x20000"
;; ;;
snr,snr-cpe-me1|\
snr,snr-cpe-me2-sfp|\ snr,snr-cpe-me2-sfp|\
snr,cpe-w4n-mt) snr,cpe-w4n-mt)
idx="$(find_mtd_index uboot-env)" idx="$(find_mtd_index uboot-env)"

View file

@ -45,6 +45,16 @@ define U-Boot/fsl_ls1012a-frwy-sdboot
ENV_SIZE:=0x10000 ENV_SIZE:=0x10000
endef endef
define U-Boot/fsl_ls1028a-rdb
NAME:=NXP LS1028ARDB
UBOOT_CONFIG:=ls1028ardb_tfa
endef
define U-Boot/fsl_ls1028a-rdb-sdboot
NAME:=NXP LS1028ARDB SD Card Boot
UBOOT_CONFIG:=ls1028ardb_tfa
endef
define U-Boot/fsl_ls1043a-rdb define U-Boot/fsl_ls1043a-rdb
NAME:=NXP LS1043ARDB NAME:=NXP LS1043ARDB
UBOOT_CONFIG:=ls1043ardb_tfa UBOOT_CONFIG:=ls1043ardb_tfa
@ -127,6 +137,8 @@ UBOOT_TARGETS := \
fsl_ls1012a-frdm \ fsl_ls1012a-frdm \
fsl_ls1012a-rdb \ fsl_ls1012a-rdb \
fsl_ls1012a-frwy-sdboot \ fsl_ls1012a-frwy-sdboot \
fsl_ls1028a-rdb \
fsl_ls1028a-rdb-sdboot \
fsl_ls1043a-rdb \ fsl_ls1043a-rdb \
fsl_ls1043a-rdb-sdboot \ fsl_ls1043a-rdb-sdboot \
fsl_ls1046a-frwy \ fsl_ls1046a-frwy \

View file

@ -0,0 +1,10 @@
fdtaddr=0x8f000000
loadaddr=0x81000000
fdt_high=0x8fffffff
initrd_high=0xffffffffffffffff
hwconfig=fsl_ddr:bank_intlv=auto
sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
bootcmd=echo starting openwrt ...;run sd_boot
bootdelay=3
fsl_bootcmd_mcinitcmd_set=y

View file

@ -0,0 +1,9 @@
fdtaddr=0x8f000000
loadaddr=0x81000000
bootm_size=0x10000000
hwconfig=fsl_ddr:bank_intlv=auto
qspi_boot=sf probe 0:0;sf read $loadaddr 1000000 1000000;bootm $loadaddr
bootargs=rootfstype=squashfs,jffs2 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 mtdparts=20c0000.spi:1m(bl2),4m(fip),1m(u-boot-env),128k(secure-boot-headers),48m@0x1000000(firmware)
bootcmd=echo starting openwrt ...;run qspi_boot
bootdelay=3
fsl_bootcmd_mcinitcmd_set=y

View file

@ -0,0 +1,33 @@
Index: uboot-layerscape-lf-6.1.1-1.0.0/arch/arm/cpu/armv8/sec_firmware.c
===================================================================
--- uboot-layerscape-lf-6.1.1-1.0.0.orig/arch/arm/cpu/armv8/sec_firmware.c
+++ uboot-layerscape-lf-6.1.1-1.0.0/arch/arm/cpu/armv8/sec_firmware.c
@@ -473,12 +473,6 @@ int fdt_fixup_kaslr(void *fdt)
return 0;
}
- ret = sec_firmware_get_random(rand, 8);
- if (ret < 0) {
- printf("WARNING: No random number to set kaslr-seed\n");
- return 0;
- }
-
err = fdt_check_header(fdt);
if (err < 0) {
printf("fdt_chosen: %s\n", fdt_strerror(err));
@@ -490,6 +484,15 @@ int fdt_fixup_kaslr(void *fdt)
if (nodeoffset < 0)
return 0;
+ if (fdt_find_or_add_subnode(fdt, nodeoffset, "kaslr-seed"))
+ return 0;
+
+ ret = sec_firmware_get_random(rand, 8);
+ if (ret < 0) {
+ printf("WARNING: No random number to set kaslr-seed\n");
+ return 0;
+ }
+
err = fdt_setprop(fdt, nodeoffset, "kaslr-seed", rand,
sizeof(rand));
if (err < 0) {

View file

@ -0,0 +1,8 @@
--- a/configs/ls1028ardb_tfa_defconfig
+++ b/configs/ls1028ardb_tfa_defconfig
@@ -1,5 +1,4 @@
CONFIG_ARM=y
-CONFIG_GIC_V3_ITS=y
CONFIG_TARGET_LS1028ARDB=y
CONFIG_TFABOOT=y
CONFIG_SYS_MALLOC_F_LEN=0x6000

View file

@ -205,9 +205,9 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
+#endif +#endif
+ } + }
+ +
+ ret = mtd_read(mtd, off, sizeof(image_header_t), &retlen, + ret = mtd_read(mtd, off, sizeof(struct legacy_img_hdr), &retlen,
+ (void *)loadaddr); + (void *)loadaddr);
+ if (ret || retlen != sizeof(image_header_t)) { + if (ret || retlen != sizeof(struct legacy_img_hdr)) {
+ printf("Failed to read NMBM at offset 0x%08llx\n", off); + printf("Failed to read NMBM at offset 0x%08llx\n", off);
+ return CMD_RET_FAILURE; + return CMD_RET_FAILURE;
+ } + }
@ -215,7 +215,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
+ switch (genimg_get_format((void *)loadaddr)) { + switch (genimg_get_format((void *)loadaddr)) {
+#if defined(CONFIG_LEGACY_IMAGE_FORMAT) +#if defined(CONFIG_LEGACY_IMAGE_FORMAT)
+ case IMAGE_FORMAT_LEGACY: + case IMAGE_FORMAT_LEGACY:
+ size = image_get_image_size((image_header_t *)loadaddr); + size = image_get_image_size((struct legacy_img_hdr *)loadaddr);
+ image_name = "legacy"; + image_name = "legacy";
+ break; + break;
+#endif +#endif

View file

@ -163,7 +163,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
+CONFIG_SYS_ARCH_TIMER=y +CONFIG_SYS_ARCH_TIMER=y
+CONFIG_SYS_THUMB_BUILD=y +CONFIG_SYS_THUMB_BUILD=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_NR_DRAM_BANKS=1 +CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x20000 +CONFIG_ENV_SIZE=0x20000

View file

@ -167,7 +167,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
+CONFIG_ARM=y +CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_NR_DRAM_BANKS=1 +CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x20000 +CONFIG_ENV_SIZE=0x20000

View file

@ -5,7 +5,7 @@
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7622=y +CONFIG_TARGET_MT7622=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_LOAD_ADDR=0x40080000 +CONFIG_SYS_LOAD_ADDR=0x40080000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
@ -257,7 +257,7 @@
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7622=y +CONFIG_TARGET_MT7622=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_LOAD_ADDR=0x40080000 +CONFIG_SYS_LOAD_ADDR=0x40080000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
@ -469,7 +469,7 @@
+CONFIG_ARM=y +CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_LOAD_ADDR=0x40080000 +CONFIG_SYS_LOAD_ADDR=0x40080000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y

View file

@ -5,7 +5,7 @@
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7622=y +CONFIG_TARGET_MT7622=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_LOAD_ADDR=0x40080000 +CONFIG_SYS_LOAD_ADDR=0x40080000
+CONFIG_USE_DEFAULT_ENV_FILE=y +CONFIG_USE_DEFAULT_ENV_FILE=y

View file

@ -5,7 +5,7 @@
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7622=y +CONFIG_TARGET_MT7622=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_LOAD_ADDR=0x40080000 +CONFIG_SYS_LOAD_ADDR=0x40080000
+CONFIG_USE_DEFAULT_ENV_FILE=y +CONFIG_USE_DEFAULT_ENV_FILE=y

View file

@ -11,12 +11,12 @@
mt7986a-sd-rfb.dtb \ mt7986a-sd-rfb.dtb \
--- /dev/null --- /dev/null
+++ b/configs/mt7986a_bpi-r3-emmc_defconfig +++ b/configs/mt7986a_bpi-r3-emmc_defconfig
@@ -0,0 +1,198 @@ @@ -0,0 +1,196 @@
+CONFIG_ARM=y +CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7986=y +CONFIG_TARGET_MT7986=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_NR_DRAM_BANKS=1 +CONFIG_NR_DRAM_BANKS=1
@ -28,7 +28,6 @@
+CONFIG_DEBUG_UART_CLOCK=40000000 +CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_DEBUG_UART=y +CONFIG_DEBUG_UART=y
+CONFIG_SYS_LOAD_ADDR=0x46000000 +CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SMBIOS_PRODUCT_NAME="" +CONFIG_SMBIOS_PRODUCT_NAME=""
+CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_KEYED=y
+CONFIG_BOOTDELAY=30 +CONFIG_BOOTDELAY=30
@ -201,7 +200,6 @@
+CONFIG_SPI_FLASH_MTD=y +CONFIG_SPI_FLASH_MTD=y
+CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_CMD_MTD=y
+CONFIG_CMD_SF=y +CONFIG_CMD_SF=y
+CONFIG_CMD_NAND=y +CONFIG_CMD_NAND=y
+CONFIG_CMD_NAND_TRIMFFS=y +CONFIG_CMD_NAND_TRIMFFS=y
@ -212,12 +210,12 @@
+CONFIG_SERVERIP="192.168.1.254" +CONFIG_SERVERIP="192.168.1.254"
--- /dev/null --- /dev/null
+++ b/configs/mt7986a_bpi-r3-nor_defconfig +++ b/configs/mt7986a_bpi-r3-nor_defconfig
@@ -0,0 +1,197 @@ @@ -0,0 +1,195 @@
+CONFIG_ARM=y +CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7986=y +CONFIG_TARGET_MT7986=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_NR_DRAM_BANKS=1 +CONFIG_NR_DRAM_BANKS=1
@ -229,7 +227,6 @@
+CONFIG_DEBUG_UART_CLOCK=40000000 +CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_DEBUG_UART=y +CONFIG_DEBUG_UART=y
+CONFIG_SYS_LOAD_ADDR=0x46000000 +CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SMBIOS_PRODUCT_NAME="" +CONFIG_SMBIOS_PRODUCT_NAME=""
+CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_KEYED=y
+CONFIG_BOOTDELAY=30 +CONFIG_BOOTDELAY=30
@ -403,7 +400,6 @@
+CONFIG_SPI_FLASH_MTD=y +CONFIG_SPI_FLASH_MTD=y
+CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_CMD_MTD=y
+CONFIG_CMD_SF=y +CONFIG_CMD_SF=y
+CONFIG_LMB_MAX_REGIONS=64 +CONFIG_LMB_MAX_REGIONS=64
+CONFIG_USE_IPADDR=y +CONFIG_USE_IPADDR=y
@ -412,12 +408,12 @@
+CONFIG_SERVERIP="192.168.1.254" +CONFIG_SERVERIP="192.168.1.254"
--- /dev/null --- /dev/null
+++ b/configs/mt7986a_bpi-r3-sd_defconfig +++ b/configs/mt7986a_bpi-r3-sd_defconfig
@@ -0,0 +1,198 @@ @@ -0,0 +1,196 @@
+CONFIG_ARM=y +CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7986=y +CONFIG_TARGET_MT7986=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_NR_DRAM_BANKS=1 +CONFIG_NR_DRAM_BANKS=1
@ -429,7 +425,6 @@
+CONFIG_DEBUG_UART_CLOCK=40000000 +CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_DEBUG_UART=y +CONFIG_DEBUG_UART=y
+CONFIG_SYS_LOAD_ADDR=0x46000000 +CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SMBIOS_PRODUCT_NAME="" +CONFIG_SMBIOS_PRODUCT_NAME=""
+CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_KEYED=y
+CONFIG_BOOTDELAY=30 +CONFIG_BOOTDELAY=30
@ -602,7 +597,6 @@
+CONFIG_SPI_FLASH_MTD=y +CONFIG_SPI_FLASH_MTD=y
+CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_CMD_MTD=y
+CONFIG_CMD_SF=y +CONFIG_CMD_SF=y
+CONFIG_CMD_NAND=y +CONFIG_CMD_NAND=y
+CONFIG_CMD_NAND_TRIMFFS=y +CONFIG_CMD_NAND_TRIMFFS=y
@ -613,12 +607,12 @@
+CONFIG_SERVERIP="192.168.1.254" +CONFIG_SERVERIP="192.168.1.254"
--- /dev/null --- /dev/null
+++ b/configs/mt7986a_bpi-r3-snand_defconfig +++ b/configs/mt7986a_bpi-r3-snand_defconfig
@@ -0,0 +1,199 @@ @@ -0,0 +1,197 @@
+CONFIG_ARM=y +CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7986=y +CONFIG_TARGET_MT7986=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_NR_DRAM_BANKS=1 +CONFIG_NR_DRAM_BANKS=1
@ -630,7 +624,6 @@
+CONFIG_DEBUG_UART_CLOCK=40000000 +CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_DEBUG_UART=y +CONFIG_DEBUG_UART=y
+CONFIG_SYS_LOAD_ADDR=0x46000000 +CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SMBIOS_PRODUCT_NAME="" +CONFIG_SMBIOS_PRODUCT_NAME=""
+CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_KEYED=y
+CONFIG_BOOTDELAY=30 +CONFIG_BOOTDELAY=30
@ -804,7 +797,6 @@
+#CONFIG_SPI_FLASH_MTD=y +#CONFIG_SPI_FLASH_MTD=y
+#CONFIG_SPI_FLASH_WINBOND=y +#CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_CMD_MTD=y
+#CONFIG_CMD_SF=y +#CONFIG_CMD_SF=y
+CONFIG_CMD_NAND=y +CONFIG_CMD_NAND=y
+CONFIG_CMD_NAND_TRIMFFS=y +CONFIG_CMD_NAND_TRIMFFS=y

View file

@ -1,11 +1,11 @@
--- /dev/null --- /dev/null
+++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig +++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig
@@ -0,0 +1,180 @@ @@ -0,0 +1,179 @@
+CONFIG_ARM=y +CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y +CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7986=y +CONFIG_TARGET_MT7986=y
+CONFIG_SYS_TEXT_BASE=0x41e00000 +CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_NR_DRAM_BANKS=1 +CONFIG_NR_DRAM_BANKS=1
@ -173,7 +173,6 @@
+CONFIG_USE_DEFAULT_ENV_FILE=y +CONFIG_USE_DEFAULT_ENV_FILE=y
+CONFIG_MTD_SPI_NAND=y +CONFIG_MTD_SPI_NAND=y
+CONFIG_MTK_SPIM=y +CONFIG_MTK_SPIM=y
+CONFIG_CMD_MTD=y
+CONFIG_CMD_NAND=y +CONFIG_CMD_NAND=y
+CONFIG_CMD_NAND_TRIMFFS=y +CONFIG_CMD_NAND_TRIMFFS=y
+CONFIG_LMB_MAX_REGIONS=64 +CONFIG_LMB_MAX_REGIONS=64

View file

@ -0,0 +1,36 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gperf
PKG_VERSION:=3.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/gperf
PKG_HASH:=588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
HOST_CPPFLAGS:=-I$(HOST_BUILD_DIR)/lib -I$(HOST_BUILD_DIR)/src $(HOST_CPPFLAGS)
TARGET_CPPFLAGS:=-I$(PKG_BUILD_DIR)/lib -I$(PKG_BUILD_DIR)/src $(TARGET_CPPFLAGS)
define Package/gperf
SECTION:=devel
CATEGORY:=Development
TITLE:=GNU gperf
URL:=http://www.gnu.org/software/gperf
endef
define Package/gperf/description
GNU gperf is a perfect hash function generator. For a given list of strings,
it produces a hash function and hash table, in form of C or C++ code,
for looking up a value depending on the input string.
The hash function is perfect, which means that the hash table has no collisions,
and the hash table lookup needs a single string comparison only.
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,gperf))

View file

@ -3,9 +3,9 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=broadcom-sprom PKG_NAME:=broadcom-sprom
PKG_SOURCE_DATE:=2023-04-19 PKG_SOURCE_DATE:=2023-04-27
PKG_SOURCE_VERSION:=d1d94f2407d9090ce72363614bbb87230a92ba44 PKG_SOURCE_VERSION:=d36f7fcb37711106a3a2652b576436cb09aa5b6f
PKG_MIRROR_HASH:=76cc5590a577713a65a512db12014d4fef61d9c67750e9f69753b358f442db8e PKG_MIRROR_HASH:=fde251ab4ed26d61c95269316119710d6ccb8fe30ef13305d08b3e7d7d8a4c60
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git

View file

@ -31,6 +31,8 @@ BOARDS := \
ls1012a-rdb \ ls1012a-rdb \
ls1012a-frdm \ ls1012a-frdm \
ls1012a-frwy-sdboot \ ls1012a-frwy-sdboot \
ls1028a-rdb \
ls1028a-rdb-sdboot \
ls1043a-rdb \ ls1043a-rdb \
ls1043a-rdb-sdboot \ ls1043a-rdb-sdboot \
ls1046a-frwy \ ls1046a-frwy \
@ -47,6 +49,8 @@ BOARDS := \
RCW_ls1012a-rdb :=ls1012ardb/R_SPNH_3508/rcw_1000_default.bin RCW_ls1012a-rdb :=ls1012ardb/R_SPNH_3508/rcw_1000_default.bin
RCW_ls1012a-frdm :=ls1012afrdm/N_SSNP_3305/rcw_800.bin RCW_ls1012a-frdm :=ls1012afrdm/N_SSNP_3305/rcw_800.bin
RCW_ls1012a-frwy-sdboot :=ls1012afrwy/N_SSNP_3305/rcw_1000_default.bin RCW_ls1012a-frwy-sdboot :=ls1012afrwy/N_SSNP_3305/rcw_1000_default.bin
RCW_ls1028a-rdb :=ls1028ardb/R_SQPP_0x85bb/rcw_1300.bin
RCW_ls1028a-rdb-sdboot :=ls1028ardb/R_SQPP_0x85bb/rcw_1500_sdboot.bin
RCW_ls1043a-rdb :=ls1043ardb/RR_FQPP_1455/rcw_1600.bin RCW_ls1043a-rdb :=ls1043ardb/RR_FQPP_1455/rcw_1600.bin
RCW_ls1043a-rdb-sdboot :=ls1043ardb/RR_FQPP_1455/rcw_1600_sdboot.bin RCW_ls1043a-rdb-sdboot :=ls1043ardb/RR_FQPP_1455/rcw_1600_sdboot.bin
RCW_ls1046a-frwy :=ls1046afrwy/NN_NNQNNPNP_3040_0506/rcw_1600_qspiboot.bin RCW_ls1046a-frwy :=ls1046afrwy/NN_NNQNNPNP_3040_0506/rcw_1600_qspiboot.bin

View file

@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=wireless-regdb PKG_NAME:=wireless-regdb
PKG_VERSION:=2023.02.13 PKG_VERSION:=2023.05.03
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/ PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
PKG_HASH:=fe81e8a8694dc4753a45087a1c4c7e1b48dee5a59f5f796ce374ea550f0b2e73 PKG_HASH:=f254d08ab3765aeae2b856222e11a95d44aef519a6663877c71ef68fae4c8c12
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>

View file

@ -827,7 +827,9 @@ $(eval $(call KernelPackage,crypto-rmd160))
define KernelPackage/crypto-rng define KernelPackage/crypto-rng
TITLE:=CryptoAPI random number generation TITLE:=CryptoAPI random number generation
DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha256 DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac \
+LINUX_5_10:kmod-crypto-sha256 \
+LINUX_5_15:kmod-crypto-sha512
KCONFIG:= \ KCONFIG:= \
CONFIG_CRYPTO_DRBG \ CONFIG_CRYPTO_DRBG \
CONFIG_CRYPTO_DRBG_HMAC=y \ CONFIG_CRYPTO_DRBG_HMAC=y \

View file

@ -0,0 +1,58 @@
From f812e2a9f85d6bea78957ccb5197e4491316848b Mon Sep 17 00:00:00 2001
From: Cai Huoqing <cai.huoqing@linux.dev>
Date: Thu, 23 Mar 2023 19:26:09 +0800
Subject: [PATCH] wifi: ath11k: Remove redundant pci_clear_master
Remove pci_clear_master to simplify the code,
the bus-mastering is also cleared in do_pci_disable_device,
like this:
./drivers/pci/pci.c:2197
static void do_pci_disable_device(struct pci_dev *dev)
{
u16 pci_command;
pci_read_config_word(dev, PCI_COMMAND, &pci_command);
if (pci_command & PCI_COMMAND_MASTER) {
pci_command &= ~PCI_COMMAND_MASTER;
pci_write_config_word(dev, PCI_COMMAND, pci_command);
}
pcibios_disable_device(dev);
}.
And dev->is_busmaster is set to 0 in pci_disable_device.
Signed-off-by: Cai Huoqing <cai.huoqing@linux.dev>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230323112613.7550-1-cai.huoqing@linux.dev
---
drivers/net/wireless/ath/ath11k/pci.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -540,7 +540,7 @@ static int ath11k_pci_claim(struct ath11
if (!ab->mem) {
ath11k_err(ab, "failed to map pci bar %d\n", ATH11K_PCI_BAR_NUM);
ret = -EIO;
- goto clear_master;
+ goto release_region;
}
ab->mem_ce = ab->mem;
@@ -548,8 +548,6 @@ static int ath11k_pci_claim(struct ath11
ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot pci_mem 0x%pK\n", ab->mem);
return 0;
-clear_master:
- pci_clear_master(pdev);
release_region:
pci_release_region(pdev, ATH11K_PCI_BAR_NUM);
disable_device:
@@ -565,7 +563,6 @@ static void ath11k_pci_free_region(struc
pci_iounmap(pci_dev, ab->mem);
ab->mem = NULL;
- pci_clear_master(pci_dev);
pci_release_region(pci_dev, ATH11K_PCI_BAR_NUM);
if (pci_is_enabled(pci_dev))
pci_disable_device(pci_dev);

View file

@ -0,0 +1,36 @@
From 5c690db63b45c6c4c4932b13173af71df369dba5 Mon Sep 17 00:00:00 2001
From: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
Date: Tue, 28 Mar 2023 12:41:50 +0530
Subject: [PATCH] wifi: ath11k: Disable Spectral scan upon removing interface
Host might receive spectral events during interface
down sequence and this might create below errors.
failed to handle dma buf release event -22
failed to handle dma buf release event -22
Fix this by disabling spectral config during remove interface.
Tested-on: IPQ5018 hw1.0 AHB WLAN.HK.2.6.0.1-00861-QCAHKSWPL_SILICONZ-1
Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230328071150.29645-1-quic_tamizhr@quicinc.com
---
drivers/net/wireless/ath/ath11k/mac.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6685,6 +6685,11 @@ static void ath11k_mac_op_remove_interfa
ath11k_dbg(ab, ATH11K_DBG_MAC, "mac remove interface (vdev %d)\n",
arvif->vdev_id);
+ ret = ath11k_spectral_vif_stop(arvif);
+ if (ret)
+ ath11k_warn(ab, "failed to stop spectral for vdev %i: %d\n",
+ arvif->vdev_id, ret);
+
if (arvif->vdev_type == WMI_VDEV_TYPE_STA)
ath11k_mac_11d_scan_stop(ar);

View file

@ -0,0 +1,29 @@
From abf57d84973ce1abcb67504ac0df8aea1fe09a76 Mon Sep 17 00:00:00 2001
From: Youghandhar Chintala <quic_youghand@quicinc.com>
Date: Tue, 28 Mar 2023 17:04:55 +0530
Subject: [PATCH] wifi: ath11k: enable SAR support on WCN6750
Currently, SAR is enabled only on WCN6855, enable this for WCN6750 too. This
functionality gets triggered, when the user space application calls
NL80211_CMD_SET_SAR_SPECS.
Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
Signed-off-by: Youghandhar Chintala <quic_youghand@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230328113455.11252-1-quic_youghand@quicinc.com
---
drivers/net/wireless/ath/ath11k/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -593,7 +593,7 @@ static const struct ath11k_hw_params ath
.current_cc_support = true,
.dbr_debug_support = false,
.global_reset = false,
- .bios_sar_capa = NULL,
+ .bios_sar_capa = &ath11k_hw_sar_capa_wcn6855,
.m3_fw_support = false,
.fixed_bdf_addr = false,
.fixed_mem_region = false,

View file

@ -0,0 +1,36 @@
From 06c58473969239e00d76b683edd511952060ca56 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Thu, 30 Mar 2023 16:37:18 +0200
Subject: [PATCH] wifi: ath11k: pci: Add more MODULE_FIRMWARE() entries
As there are a few more models supported by the driver, let's add the
missing MODULE_FIRMWARE() entries for them. The lack of them resulted
in the missing device enablement on some systems, such as the
installation image of openSUSE.
While we are at it, use the wildcard instead of listing each firmware
files individually for each.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230330143718.19511-1-tiwai@suse.de
---
drivers/net/wireless/ath/ath11k/pci.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -1036,7 +1036,8 @@ module_exit(ath11k_pci_exit);
MODULE_DESCRIPTION("Driver support for Qualcomm Technologies 802.11ax WLAN PCIe devices");
MODULE_LICENSE("Dual BSD/GPL");
-/* QCA639x 2.0 firmware files */
-MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_BOARD_API2_FILE);
-MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_AMSS_FILE);
-MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_M3_FILE);
+/* firmware files */
+MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/*");
+MODULE_FIRMWARE(ATH11K_FW_DIR "/QCN9074/hw1.0/*");
+MODULE_FIRMWARE(ATH11K_FW_DIR "/WCN6855/hw2.0/*");
+MODULE_FIRMWARE(ATH11K_FW_DIR "/WCN6855/hw2.1/*");

View file

@ -0,0 +1,34 @@
From a87a9110ac0dcbfd9458b6665c141fa1c16a669d Mon Sep 17 00:00:00 2001
From: Kalle Valo <quic_kvalo@quicinc.com>
Date: Wed, 5 Apr 2023 12:04:25 +0300
Subject: [PATCH] wifi: ath11k: print a warning when crypto_alloc_shash() fails
Christoph reported that ath11k failed to initialise when michael_mic.ko
module was not installed. To make it easier to notice that case print a
warning when crypto_alloc_shash() fails.
Compile tested only.
Reported-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/all/20221130133016.GC3055@lst.de/
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230405090425.1351-1-kvalo@kernel.org
---
drivers/net/wireless/ath/ath11k/dp_rx.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -3106,8 +3106,11 @@ int ath11k_peer_rx_frag_setup(struct ath
int i;
tfm = crypto_alloc_shash("michael_mic", 0, 0);
- if (IS_ERR(tfm))
+ if (IS_ERR(tfm)) {
+ ath11k_warn(ab, "failed to allocate michael_mic shash: %ld\n",
+ PTR_ERR(tfm));
return PTR_ERR(tfm);
+ }
spin_lock_bh(&ab->base_lock);

View file

@ -0,0 +1,104 @@
From a06bfb3c9f69f303692cdae87bc0899d2ae8b2a6 Mon Sep 17 00:00:00 2001
From: Harshitha Prem <quic_hprem@quicinc.com>
Date: Tue, 4 Apr 2023 00:11:54 +0530
Subject: [PATCH] wifi: ath11k: Ignore frags from uninitialized peer in dp.
When max virtual ap interfaces are configured in all the bands with
ACS and hostapd restart is done every 60s, a crash is observed at
random times.
In this certain scenario, a fragmented packet is received for
self peer, for which rx_tid and rx_frags are not initialized in
datapath. While handling this fragment, crash is observed as the
rx_frag list is uninitialised and when we walk in
ath11k_dp_rx_h_sort_frags, skb null leads to exception.
To address this, before processing received fragments we check
dp_setup_done flag is set to ensure that peer has completed its
dp peer setup for fragment queue, else ignore processing the
fragments.
Call trace:
ath11k_dp_process_rx_err+0x550/0x1084 [ath11k]
ath11k_dp_service_srng+0x70/0x370 [ath11k]
0xffffffc009693a04
__napi_poll+0x30/0xa4
net_rx_action+0x118/0x270
__do_softirq+0x10c/0x244
irq_exit+0x64/0xb4
__handle_domain_irq+0x88/0xac
gic_handle_irq+0x74/0xbc
el1_irq+0xf0/0x1c0
arch_cpu_idle+0x10/0x18
do_idle+0x104/0x248
cpu_startup_entry+0x20/0x64
rest_init+0xd0/0xdc
arch_call_rest_init+0xc/0x14
start_kernel+0x480/0x4b8
Code: f9400281 f94066a2 91405021 b94a0023 (f9406401)
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403184155.8670-2-quic_nmaran@quicinc.com
---
drivers/net/wireless/ath/ath11k/dp.c | 4 +++-
drivers/net/wireless/ath/ath11k/dp_rx.c | 8 ++++++++
drivers/net/wireless/ath/ath11k/peer.h | 1 +
3 files changed, 12 insertions(+), 1 deletion(-)
--- a/drivers/net/wireless/ath/ath11k/dp.c
+++ b/drivers/net/wireless/ath/ath11k/dp.c
@@ -36,6 +36,7 @@ void ath11k_dp_peer_cleanup(struct ath11
}
ath11k_peer_rx_tid_cleanup(ar, peer);
+ peer->dp_setup_done = false;
crypto_free_shash(peer->tfm_mmic);
spin_unlock_bh(&ab->base_lock);
}
@@ -72,7 +73,8 @@ int ath11k_dp_peer_setup(struct ath11k *
ret = ath11k_peer_rx_frag_setup(ar, addr, vdev_id);
if (ret) {
ath11k_warn(ab, "failed to setup rx defrag context\n");
- return ret;
+ tid--;
+ goto peer_clean;
}
/* TODO: Setup other peer specific resource used in data path */
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -3130,6 +3130,7 @@ int ath11k_peer_rx_frag_setup(struct ath
}
peer->tfm_mmic = tfm;
+ peer->dp_setup_done = true;
spin_unlock_bh(&ab->base_lock);
return 0;
@@ -3575,6 +3576,13 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
ret = -ENOENT;
goto out_unlock;
}
+ if (!peer->dp_setup_done) {
+ ath11k_warn(ab, "The peer %pM [%d] has uninitialized datapath\n",
+ peer->addr, peer_id);
+ ret = -ENOENT;
+ goto out_unlock;
+ }
+
rx_tid = &peer->rx_tid[tid];
if ((!skb_queue_empty(&rx_tid->rx_frags) && seqno != rx_tid->cur_sn) ||
--- a/drivers/net/wireless/ath/ath11k/peer.h
+++ b/drivers/net/wireless/ath/ath11k/peer.h
@@ -35,6 +35,7 @@ struct ath11k_peer {
u16 sec_type;
u16 sec_type_grp;
bool is_authorized;
+ bool dp_setup_done;
};
void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id);

View file

@ -0,0 +1,29 @@
From 41e02bf4ae32cf2ac47b08b4caaa9c1a032e4ce7 Mon Sep 17 00:00:00 2001
From: Harshitha Prem <quic_hprem@quicinc.com>
Date: Tue, 4 Apr 2023 00:11:55 +0530
Subject: [PATCH] wifi: ath11k: fix undefined behavior with __fls in dp
"__fls" would have an undefined behavior if the argument is passed
as "0". Hence, added changes to handle the same.
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403184155.8670-3-quic_nmaran@quicinc.com
---
drivers/net/wireless/ath/ath11k/dp_rx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -3598,7 +3598,7 @@ static int ath11k_dp_rx_frag_h_mpdu(stru
goto out_unlock;
}
- if (frag_no > __fls(rx_tid->rx_frag_bitmap))
+ if (!rx_tid->rx_frag_bitmap || (frag_no > __fls(rx_tid->rx_frag_bitmap)))
__skb_queue_tail(&rx_tid->rx_frags, msdu);
else
ath11k_dp_rx_h_sort_frags(ar, &rx_tid->rx_frags, msdu);

View file

@ -0,0 +1,144 @@
From 93a91f40c25c3d0e61f8540a7accf105090f9995 Mon Sep 17 00:00:00 2001
From: Harshitha Prem <quic_hprem@quicinc.com>
Date: Mon, 17 Apr 2023 13:35:00 +0300
Subject: [PATCH] wifi: ath11k: fix double free of peer rx_tid during reo cmd
failure
Peer rx_tid is locally copied thrice during peer_rx_tid_cleanup to
send REO_CMD_UPDATE_RX_QUEUE followed by REO_CMD_FLUSH_CACHE to flush
all aged REO descriptors from HW cache.
When sending REO_CMD_FLUSH_CACHE fails, we do dma unmap of already
mapped rx_tid->vaddr and free it. This is not checked during
reo_cmd_list_cleanup() and dp_reo_cmd_free() before trying to free and
unmap again.
Fix this by setting rx_tid->vaddr NULL in rx tid delete and also
wherever freeing it to check in reo_cmd_list_cleanup() and
reo_cmd_free() before trying to free again.
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403182420.23375-2-quic_hprem@quicinc.com
---
drivers/net/wireless/ath/ath11k/dp_rx.c | 43 ++++++++++++++++++-------
1 file changed, 31 insertions(+), 12 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -668,13 +668,18 @@ void ath11k_dp_reo_cmd_list_cleanup(stru
struct ath11k_dp *dp = &ab->dp;
struct dp_reo_cmd *cmd, *tmp;
struct dp_reo_cache_flush_elem *cmd_cache, *tmp_cache;
+ struct dp_rx_tid *rx_tid;
spin_lock_bh(&dp->reo_cmd_lock);
list_for_each_entry_safe(cmd, tmp, &dp->reo_cmd_list, list) {
list_del(&cmd->list);
- dma_unmap_single(ab->dev, cmd->data.paddr,
- cmd->data.size, DMA_BIDIRECTIONAL);
- kfree(cmd->data.vaddr);
+ rx_tid = &cmd->data;
+ if (rx_tid->vaddr) {
+ dma_unmap_single(ab->dev, rx_tid->paddr,
+ rx_tid->size, DMA_BIDIRECTIONAL);
+ kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
+ }
kfree(cmd);
}
@@ -682,9 +687,13 @@ void ath11k_dp_reo_cmd_list_cleanup(stru
&dp->reo_cmd_cache_flush_list, list) {
list_del(&cmd_cache->list);
dp->reo_cmd_cache_flush_count--;
- dma_unmap_single(ab->dev, cmd_cache->data.paddr,
- cmd_cache->data.size, DMA_BIDIRECTIONAL);
- kfree(cmd_cache->data.vaddr);
+ rx_tid = &cmd_cache->data;
+ if (rx_tid->vaddr) {
+ dma_unmap_single(ab->dev, rx_tid->paddr,
+ rx_tid->size, DMA_BIDIRECTIONAL);
+ kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
+ }
kfree(cmd_cache);
}
spin_unlock_bh(&dp->reo_cmd_lock);
@@ -698,10 +707,12 @@ static void ath11k_dp_reo_cmd_free(struc
if (status != HAL_REO_CMD_SUCCESS)
ath11k_warn(dp->ab, "failed to flush rx tid hw desc, tid %d status %d\n",
rx_tid->tid, status);
-
- dma_unmap_single(dp->ab->dev, rx_tid->paddr, rx_tid->size,
- DMA_BIDIRECTIONAL);
- kfree(rx_tid->vaddr);
+ if (rx_tid->vaddr) {
+ dma_unmap_single(dp->ab->dev, rx_tid->paddr, rx_tid->size,
+ DMA_BIDIRECTIONAL);
+ kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
+ }
}
static void ath11k_dp_reo_cache_flush(struct ath11k_base *ab,
@@ -740,6 +751,7 @@ static void ath11k_dp_reo_cache_flush(st
dma_unmap_single(ab->dev, rx_tid->paddr, rx_tid->size,
DMA_BIDIRECTIONAL);
kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
}
}
@@ -792,6 +804,7 @@ free_desc:
dma_unmap_single(ab->dev, rx_tid->paddr, rx_tid->size,
DMA_BIDIRECTIONAL);
kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
}
void ath11k_peer_rx_tid_delete(struct ath11k *ar,
@@ -804,6 +817,8 @@ void ath11k_peer_rx_tid_delete(struct at
if (!rx_tid->active)
return;
+ rx_tid->active = false;
+
cmd.flag = HAL_REO_CMD_FLG_NEED_STATUS;
cmd.addr_lo = lower_32_bits(rx_tid->paddr);
cmd.addr_hi = upper_32_bits(rx_tid->paddr);
@@ -818,9 +833,11 @@ void ath11k_peer_rx_tid_delete(struct at
dma_unmap_single(ar->ab->dev, rx_tid->paddr, rx_tid->size,
DMA_BIDIRECTIONAL);
kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
}
- rx_tid->active = false;
+ rx_tid->paddr = 0;
+ rx_tid->size = 0;
}
static int ath11k_dp_rx_link_desc_return(struct ath11k_base *ab,
@@ -967,6 +984,7 @@ static void ath11k_dp_rx_tid_mem_free(st
dma_unmap_single(ab->dev, rx_tid->paddr, rx_tid->size,
DMA_BIDIRECTIONAL);
kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
rx_tid->active = false;
@@ -1067,7 +1085,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
return ret;
err_mem_free:
- kfree(vaddr);
+ kfree(rx_tid->vaddr);
+ rx_tid->vaddr = NULL;
return ret;
}

View file

@ -0,0 +1,43 @@
From a8ae833657a45746debde85c38bb7f070d344026 Mon Sep 17 00:00:00 2001
From: Harshitha Prem <quic_hprem@quicinc.com>
Date: Mon, 17 Apr 2023 13:35:01 +0300
Subject: [PATCH] wifi: ath11k: Prevent REO cmd failures
Prevent REO cmd failures causing double free by increasing REO cmd
ring size and moving REO status ring mask to IRQ group 3 from group
0 to separate from tx completion ring on IRQ group 0 which may delay
reo status processing.
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403182420.23375-3-quic_hprem@quicinc.com
---
drivers/net/wireless/ath/ath11k/dp.h | 2 +-
drivers/net/wireless/ath/ath11k/hw.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -214,7 +214,7 @@ struct ath11k_pdev_dp {
#define DP_REO_REINJECT_RING_SIZE 32
#define DP_RX_RELEASE_RING_SIZE 1024
#define DP_REO_EXCEPTION_RING_SIZE 128
-#define DP_REO_CMD_RING_SIZE 128
+#define DP_REO_CMD_RING_SIZE 256
#define DP_REO_STATUS_RING_SIZE 2048
#define DP_RXDMA_BUF_RING_SIZE 4096
#define DP_RXDMA_REFILL_RING_SIZE 2048
--- a/drivers/net/wireless/ath/ath11k/hw.c
+++ b/drivers/net/wireless/ath/ath11k/hw.c
@@ -1233,6 +1233,7 @@ const struct ath11k_hw_ring_mask ath11k_
ATH11K_RX_WBM_REL_RING_MASK_0,
},
.reo_status = {
+ 0, 0, 0,
ATH11K_REO_STATUS_RING_MASK_0,
},
.rxdma2host = {

View file

@ -0,0 +1,74 @@
From 20487cc3ff36bbfa9505f0a078ba98f09abfc717 Mon Sep 17 00:00:00 2001
From: Harshitha Prem <quic_hprem@quicinc.com>
Date: Mon, 17 Apr 2023 13:35:01 +0300
Subject: [PATCH] wifi: ath11k: add peer mac information in failure cases
During reo command failure, the peer mac detail for which the reo
command was not successful is unknown. Hence, to improve the
debuggability, add the peer mac information in the failure cases
which would be useful during multi client cases.
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403182420.23375-4-quic_hprem@quicinc.com
---
drivers/net/wireless/ath/ath11k/dp_rx.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -1009,7 +1009,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
peer = ath11k_peer_find(ab, vdev_id, peer_mac);
if (!peer) {
- ath11k_warn(ab, "failed to find the peer to set up rx tid\n");
+ ath11k_warn(ab, "failed to find the peer %pM to set up rx tid\n",
+ peer_mac);
spin_unlock_bh(&ab->base_lock);
return -ENOENT;
}
@@ -1022,7 +1023,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
ba_win_sz, ssn, true);
spin_unlock_bh(&ab->base_lock);
if (ret) {
- ath11k_warn(ab, "failed to update reo for rx tid %d\n", tid);
+ ath11k_warn(ab, "failed to update reo for peer %pM rx tid %d\n: %d",
+ peer_mac, tid, ret);
return ret;
}
@@ -1030,8 +1032,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
peer_mac, paddr,
tid, 1, ba_win_sz);
if (ret)
- ath11k_warn(ab, "failed to send wmi command to update rx reorder queue, tid :%d (%d)\n",
- tid, ret);
+ ath11k_warn(ab, "failed to send wmi rx reorder queue for peer %pM tid %d: %d\n",
+ peer_mac, tid, ret);
return ret;
}
@@ -1064,6 +1066,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
ret = dma_mapping_error(ab->dev, paddr);
if (ret) {
spin_unlock_bh(&ab->base_lock);
+ ath11k_warn(ab, "failed to setup dma map for peer %pM rx tid %d: %d\n",
+ peer_mac, tid, ret);
goto err_mem_free;
}
@@ -1077,8 +1081,8 @@ int ath11k_peer_rx_tid_setup(struct ath1
ret = ath11k_wmi_peer_rx_reorder_queue_setup(ar, vdev_id, peer_mac,
paddr, tid, 1, ba_win_sz);
if (ret) {
- ath11k_warn(ar->ab, "failed to setup rx reorder queue, tid :%d (%d)\n",
- tid, ret);
+ ath11k_warn(ar->ab, "failed to setup rx reorder queue for peer %pM tid %d: %d\n",
+ peer_mac, tid, ret);
ath11k_dp_rx_tid_mem_free(ab, peer_mac, vdev_id, tid);
}

View file

@ -0,0 +1,119 @@
From 6257c702264c44d74c6b71f0c62a7665da2dc356 Mon Sep 17 00:00:00 2001
From: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
Date: Mon, 17 Apr 2023 13:35:02 +0300
Subject: [PATCH] wifi: ath11k: fix tx status reporting in encap offload mode
ieee80211_tx_status() treats packets in 802.11 frame format and
tries to extract sta address from packet header. When tx encap
offload is enabled, this becomes invalid operation. Hence, switch
to using ieee80211_tx_status_ext() after filling in station
address for handling both 802.11 and 802.3 frames.
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403195738.25367-2-quic_pradeepc@quicinc.com
---
drivers/net/wireless/ath/ath11k/dp.h | 4 +++
drivers/net/wireless/ath/ath11k/dp_tx.c | 33 ++++++++++++++++++++++++-
drivers/net/wireless/ath/ath11k/dp_tx.h | 1 +
3 files changed, 37 insertions(+), 1 deletion(-)
--- a/drivers/net/wireless/ath/ath11k/dp.h
+++ b/drivers/net/wireless/ath/ath11k/dp.h
@@ -303,12 +303,16 @@ struct ath11k_dp {
#define HTT_TX_WBM_COMP_STATUS_OFFSET 8
+#define HTT_INVALID_PEER_ID 0xffff
+
/* HTT tx completion is overlaid in wbm_release_ring */
#define HTT_TX_WBM_COMP_INFO0_STATUS GENMASK(12, 9)
#define HTT_TX_WBM_COMP_INFO0_REINJECT_REASON GENMASK(16, 13)
#define HTT_TX_WBM_COMP_INFO0_REINJECT_REASON GENMASK(16, 13)
#define HTT_TX_WBM_COMP_INFO1_ACK_RSSI GENMASK(31, 24)
+#define HTT_TX_WBM_COMP_INFO2_SW_PEER_ID GENMASK(15, 0)
+#define HTT_TX_WBM_COMP_INFO2_VALID BIT(21)
struct htt_tx_wbm_completion {
u32 info0;
--- a/drivers/net/wireless/ath/ath11k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c
@@ -316,10 +316,12 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
struct dp_tx_ring *tx_ring,
struct ath11k_dp_htt_wbm_tx_status *ts)
{
+ struct ieee80211_tx_status status = { 0 };
struct sk_buff *msdu;
struct ieee80211_tx_info *info;
struct ath11k_skb_cb *skb_cb;
struct ath11k *ar;
+ struct ath11k_peer *peer;
spin_lock(&tx_ring->tx_idr_lock);
msdu = idr_remove(&tx_ring->txbuf_idr, ts->msdu_id);
@@ -341,6 +343,11 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);
+ if (!skb_cb->vif) {
+ dev_kfree_skb_any(msdu);
+ return;
+ }
+
memset(&info->status, 0, sizeof(info->status));
if (ts->acked) {
@@ -355,7 +362,23 @@ ath11k_dp_tx_htt_tx_complete_buf(struct
}
}
- ieee80211_tx_status(ar->hw, msdu);
+ spin_lock_bh(&ab->base_lock);
+ peer = ath11k_peer_find_by_id(ab, ts->peer_id);
+ if (!peer || !peer->sta) {
+ ath11k_dbg(ab, ATH11K_DBG_DATA,
+ "dp_tx: failed to find the peer with peer_id %d\n",
+ ts->peer_id);
+ spin_unlock_bh(&ab->base_lock);
+ dev_kfree_skb_any(msdu);
+ return;
+ }
+ spin_unlock_bh(&ab->base_lock);
+
+ status.sta = peer->sta;
+ status.info = info;
+ status.skb = msdu;
+
+ ieee80211_tx_status_ext(ar->hw, &status);
}
static void
@@ -379,7 +402,15 @@ ath11k_dp_tx_process_htt_tx_complete(str
ts.msdu_id = msdu_id;
ts.ack_rssi = FIELD_GET(HTT_TX_WBM_COMP_INFO1_ACK_RSSI,
status_desc->info1);
+
+ if (FIELD_GET(HTT_TX_WBM_COMP_INFO2_VALID, status_desc->info2))
+ ts.peer_id = FIELD_GET(HTT_TX_WBM_COMP_INFO2_SW_PEER_ID,
+ status_desc->info2);
+ else
+ ts.peer_id = HTT_INVALID_PEER_ID;
+
ath11k_dp_tx_htt_tx_complete_buf(ab, tx_ring, &ts);
+
break;
case HAL_WBM_REL_HTT_TX_COMP_STATUS_REINJ:
case HAL_WBM_REL_HTT_TX_COMP_STATUS_INSPECT:
--- a/drivers/net/wireless/ath/ath11k/dp_tx.h
+++ b/drivers/net/wireless/ath/ath11k/dp_tx.h
@@ -13,6 +13,7 @@ struct ath11k_dp_htt_wbm_tx_status {
u32 msdu_id;
bool acked;
int ack_rssi;
+ u16 peer_id;
};
void ath11k_dp_tx_update_txcompl(struct ath11k *ar, struct hal_tx_status *ts);

View file

@ -0,0 +1,49 @@
From 2f0c9ac8362da09c80f1cd422ef7fd6fa9b252b9 Mon Sep 17 00:00:00 2001
From: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
Date: Mon, 17 Apr 2023 13:35:02 +0300
Subject: [PATCH] wifi: ath11k: Fix incorrect update of radiotap fields
Fix incorrect update of ppdu stats causing incorrect radiotap
fields.
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403195738.25367-3-quic_pradeepc@quicinc.com
---
drivers/net/wireless/ath/ath11k/hal_rx.c | 4 ++--
drivers/net/wireless/ath/ath11k/hal_rx.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/hal_rx.c
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c
@@ -1029,7 +1029,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
info1 = __le32_to_cpu(vht_sig->info1);
ppdu_info->ldpc = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_SU_MU_CODING,
- info0);
+ info1);
ppdu_info->mcs = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_MCS,
info1);
gi_setting = FIELD_GET(HAL_RX_VHT_SIG_A_INFO_INFO1_GI_SETTING,
@@ -1452,7 +1452,7 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
* PHYRX_OTHER_RECEIVE_INFO TLV.
*/
ppdu_info->rssi_comb =
- FIELD_GET(HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO1_RSSI_COMB,
+ FIELD_GET(HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RSSI_COMB,
__le32_to_cpu(rssi->info0));
if (db2dbm) {
--- a/drivers/net/wireless/ath/ath11k/hal_rx.h
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h
@@ -385,7 +385,7 @@ struct hal_rx_he_sig_b2_ofdma_info {
__le32 info0;
} __packed;
-#define HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO1_RSSI_COMB GENMASK(15, 8)
+#define HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RSSI_COMB GENMASK(15, 8)
#define HAL_RX_PHYRX_RSSI_PREAMBLE_PRI20 GENMASK(7, 0)

View file

@ -0,0 +1,70 @@
From f9fff67d2d7ca6fa8066132003a3deef654c55b1 Mon Sep 17 00:00:00 2001
From: Nagarajan Maran <quic_nmaran@quicinc.com>
Date: Mon, 17 Apr 2023 13:35:02 +0300
Subject: [PATCH] wifi: ath11k: Fix SKB corruption in REO destination ring
While running traffics for a long time, randomly an RX descriptor
filled with value "0" from REO destination ring is received.
This descriptor which is invalid causes the wrong SKB (SKB stored in
the IDR lookup with buffer id "0") to be fetched which in turn
causes SKB memory corruption issue and the same leads to crash
after some time.
Changed the start id for idr allocation to "1" and the buffer id "0"
is reserved for error validation. Introduced Sanity check to validate
the descriptor, before processing the SKB.
Crash Signature :
Unable to handle kernel paging request at virtual address 3f004900
PC points to "b15_dma_inv_range+0x30/0x50"
LR points to "dma_cache_maint_page+0x8c/0x128".
The Backtrace obtained is as follows:
[<8031716c>] (b15_dma_inv_range) from [<80313a4c>] (dma_cache_maint_page+0x8c/0x128)
[<80313a4c>] (dma_cache_maint_page) from [<80313b90>] (__dma_page_dev_to_cpu+0x28/0xcc)
[<80313b90>] (__dma_page_dev_to_cpu) from [<7fb5dd68>] (ath11k_dp_process_rx+0x1e8/0x4a4 [ath11k])
[<7fb5dd68>] (ath11k_dp_process_rx [ath11k]) from [<7fb53c20>] (ath11k_dp_service_srng+0xb0/0x2ac [ath11k])
[<7fb53c20>] (ath11k_dp_service_srng [ath11k]) from [<7f67bba4>] (ath11k_pci_ext_grp_napi_poll+0x1c/0x78 [ath11k_pci])
[<7f67bba4>] (ath11k_pci_ext_grp_napi_poll [ath11k_pci]) from [<807d5cf4>] (__napi_poll+0x28/0xb8)
[<807d5cf4>] (__napi_poll) from [<807d5f28>] (net_rx_action+0xf0/0x280)
[<807d5f28>] (net_rx_action) from [<80302148>] (__do_softirq+0xd0/0x280)
[<80302148>] (__do_softirq) from [<80320408>] (irq_exit+0x74/0xd4)
[<80320408>] (irq_exit) from [<803638a4>] (__handle_domain_irq+0x90/0xb4)
[<803638a4>] (__handle_domain_irq) from [<805bedec>] (gic_handle_irq+0x58/0x90)
[<805bedec>] (gic_handle_irq) from [<80301a78>] (__irq_svc+0x58/0x8c)
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230403191533.28114-1-quic_nmaran@quicinc.com
---
drivers/net/wireless/ath/ath11k/dp_rx.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
@@ -389,10 +389,10 @@ int ath11k_dp_rxbufs_replenish(struct at
goto fail_free_skb;
spin_lock_bh(&rx_ring->idr_lock);
- buf_id = idr_alloc(&rx_ring->bufs_idr, skb, 0,
- rx_ring->bufs_max * 3, GFP_ATOMIC);
+ buf_id = idr_alloc(&rx_ring->bufs_idr, skb, 1,
+ (rx_ring->bufs_max * 3) + 1, GFP_ATOMIC);
spin_unlock_bh(&rx_ring->idr_lock);
- if (buf_id < 0)
+ if (buf_id <= 0)
goto fail_dma_unmap;
desc = ath11k_hal_srng_src_get_next_entry(ab, srng);
@@ -2665,6 +2665,9 @@ try_again:
cookie);
mac_id = FIELD_GET(DP_RXDMA_BUF_COOKIE_PDEV_ID, cookie);
+ if (unlikely(buf_id == 0))
+ continue;
+
ar = ab->pdevs[mac_id].ar;
rx_ring = &ar->dp.rx_refill_buf_ring;
spin_lock_bh(&rx_ring->idr_lock);

View file

@ -0,0 +1,49 @@
From b100722a777f6455d913666a376f81342b2cb995 Mon Sep 17 00:00:00 2001
From: Muna Sinada <quic_msinada@quicinc.com>
Date: Mon, 17 Apr 2023 13:22:27 -0700
Subject: [PATCH] wifi: ath11k: Remove disabling of 80+80 and 160 MHz
This is a regression fix for 80+80 and 160 MHz support bits being
cleared, therefore not adverised. Remove disable of 80+80 and 160 MHz
capability flags and assign valid center frequency 2 similar to
VHT80_80.
Fixes: 38dfe775d0ab ("wifi: ath11k: push MU-MIMO params from hostapd to hardware")
Reported-by: Robert Marko <robert.marko@sartura.hr>
Tested-by: Robert Marko <robert.marko@sartura.hr> # IPQ8074 WLAN.HK.2.9.0.1-01385-QCAHKSWPL_SILICONZ-1
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217299
Co-developed-by: P Praneesh <quic_ppranees@quicinc.com>
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/1681762947-13882-1-git-send-email-quic_msinada@quicinc.com
---
drivers/net/wireless/ath/ath11k/mac.c | 4 ----
drivers/net/wireless/ath/ath11k/wmi.c | 3 ++-
2 files changed, 2 insertions(+), 5 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5585,10 +5585,6 @@ static int ath11k_mac_copy_he_cap(struct
he_cap_elem->mac_cap_info[1] &=
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK;
- he_cap_elem->phy_cap_info[0] &=
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
- he_cap_elem->phy_cap_info[0] &=
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G;
he_cap_elem->phy_cap_info[5] &=
~IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK;
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -871,7 +871,8 @@ static void ath11k_wmi_put_wmi_channel(s
chan->band_center_freq2 = arg->channel.band_center_freq1;
- } else if (arg->channel.mode == MODE_11AC_VHT80_80) {
+ } else if ((arg->channel.mode == MODE_11AC_VHT80_80) ||
+ (arg->channel.mode == MODE_11AX_HE80_80)) {
chan->band_center_freq2 = arg->channel.band_center_freq2;
} else {
chan->band_center_freq2 = 0;

View file

@ -0,0 +1,61 @@
From e2ceb1de2f83aafd8003f0b72dfd4b7441e97d14 Mon Sep 17 00:00:00 2001
From: Maxime Bizon <mbizon@freebox.fr>
Date: Fri, 21 Apr 2023 16:54:45 +0200
Subject: [PATCH] wifi: ath11k: fix registration of 6Ghz-only phy without the
full channel range
Because of what seems to be a typo, a 6Ghz-only phy for which the BDF
does not allow the 7115Mhz channel will fail to register:
WARNING: CPU: 2 PID: 106 at net/wireless/core.c:907 wiphy_register+0x914/0x954
Modules linked in: ath11k_pci sbsa_gwdt
CPU: 2 PID: 106 Comm: kworker/u8:5 Not tainted 6.3.0-rc7-next-20230418-00549-g1e096a17625a-dirty #9
Hardware name: Freebox V7R Board (DT)
Workqueue: ath11k_qmi_driver_event ath11k_qmi_driver_event_work
pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : wiphy_register+0x914/0x954
lr : ieee80211_register_hw+0x67c/0xc10
sp : ffffff800b123aa0
x29: ffffff800b123aa0 x28: 0000000000000000 x27: 0000000000000000
x26: 0000000000000000 x25: 0000000000000006 x24: ffffffc008d51418
x23: ffffffc008cb0838 x22: ffffff80176c2460 x21: 0000000000000168
x20: ffffff80176c0000 x19: ffffff80176c03e0 x18: 0000000000000014
x17: 00000000cbef338c x16: 00000000d2a26f21 x15: 00000000ad6bb85f
x14: 0000000000000020 x13: 0000000000000020 x12: 00000000ffffffbd
x11: 0000000000000208 x10: 00000000fffffdf7 x9 : ffffffc009394718
x8 : ffffff80176c0528 x7 : 000000007fffffff x6 : 0000000000000006
x5 : 0000000000000005 x4 : ffffff800b304284 x3 : ffffff800b304284
x2 : ffffff800b304d98 x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
wiphy_register+0x914/0x954
ieee80211_register_hw+0x67c/0xc10
ath11k_mac_register+0x7c4/0xe10
ath11k_core_qmi_firmware_ready+0x1f4/0x570
ath11k_qmi_driver_event_work+0x198/0x590
process_one_work+0x1b8/0x328
worker_thread+0x6c/0x414
kthread+0x100/0x104
ret_from_fork+0x10/0x20
---[ end trace 0000000000000000 ]---
ath11k_pci 0002:01:00.0: ieee80211 registration failed: -22
ath11k_pci 0002:01:00.0: failed register the radio with mac80211: -22
ath11k_pci 0002:01:00.0: failed to create pdev core: -22
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230421145445.2612280-1-mbizon@freebox.fr
---
drivers/net/wireless/ath/ath11k/mac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -8892,7 +8892,7 @@ static int ath11k_mac_setup_channels_rat
}
if (supported_bands & WMI_HOST_WLAN_5G_CAP) {
- if (reg_cap->high_5ghz_chan >= ATH11K_MAX_6G_FREQ) {
+ if (reg_cap->high_5ghz_chan >= ATH11K_MIN_6G_FREQ) {
channels = kmemdup(ath11k_6ghz_channels,
sizeof(ath11k_6ghz_channels), GFP_KERNEL);
if (!channels) {

View file

@ -1,130 +0,0 @@
From patchwork Mon Apr 17 20:22:27 2023
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Muna Sinada <quic_msinada@quicinc.com>
X-Patchwork-Id: 13214540
X-Patchwork-Delegate: kvalo@adurom.com
Return-Path: <linux-wireless-owner@vger.kernel.org>
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 8C359C77B76
for <linux-wireless@archiver.kernel.org>;
Mon, 17 Apr 2023 20:26:40 +0000 (UTC)
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
id S230070AbjDQU0j (ORCPT
<rfc822;linux-wireless@archiver.kernel.org>);
Mon, 17 Apr 2023 16:26:39 -0400
Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53306 "EHLO
lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S229914AbjDQU0h (ORCPT
<rfc822;linux-wireless@vger.kernel.org>);
Mon, 17 Apr 2023 16:26:37 -0400
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
[205.220.180.131])
by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67CE24C33
for <linux-wireless@vger.kernel.org>;
Mon, 17 Apr 2023 13:26:24 -0700 (PDT)
Received: from pps.filterd (m0279873.ppops.net [127.0.0.1])
by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
33HIsf5q010173;
Mon, 17 Apr 2023 20:22:47 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com;
h=from : to : cc :
subject : date : message-id : mime-version : content-type; s=qcppdkim1;
bh=FGtbeAR6pG0KxyEKVLIRzkq1RXlKfaVfRT1iixzMcII=;
b=jSdZBeFj4RAdCiUPrL/F9n+ufnpxT1pJNfZuA0tfEnUf54SCGUuHT5LtRdojYVh31YSS
aAGDRFvl7tIKqq/c6h4tm7SDdlhWF+MU3sH1YJNrwDeMAUZD+RnviJjo+GfgnEtp9+z7
PA75vGkpKiuMh6M8QFYB+/XxrJmx/XJBNESfMdAjBuMXnQf4S2yJ/IMwSxPkYKMU3lC6
DNnUAcgC/8wawYt8T1d8gKWq5CgWls4i1quveZghsbGUuL01i7SRXdKVianDJJsHEa0G
/brUp6LMMeJUgEI8wBfFAtcknzN0ADMVEqsJr+AHvQXnb1iHZyafl6BAeupXNS+Yi+fJ sw==
Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com
[129.46.96.20])
by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3q171gh1hb-1
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256
verify=NOT);
Mon, 17 Apr 2023 20:22:47 +0000
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
[10.47.209.196])
by NALASPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id
33HKMjHs007640
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256
verify=NOT);
Mon, 17 Apr 2023 20:22:46 GMT
Received: from msinada-linux.qualcomm.com (10.80.80.8) by
nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server
(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
15.2.986.42; Mon, 17 Apr 2023 13:22:44 -0700
From: Muna Sinada <quic_msinada@quicinc.com>
To: <ath11k@lists.infradead.org>
CC: <linux-wireless@vger.kernel.org>,
Muna Sinada <quic_msinada@quicinc.com>,
P Praneesh <quic_ppranees@quicinc.com>
Subject: [PATCH] wifi: ath11k: Remove disabling of 80+80 and 160 MHz
Date: Mon, 17 Apr 2023 13:22:27 -0700
Message-ID: <1681762947-13882-1-git-send-email-quic_msinada@quicinc.com>
X-Mailer: git-send-email 2.7.4
MIME-Version: 1.0
X-Originating-IP: [10.80.80.8]
X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To
nalasex01a.na.qualcomm.com (10.47.209.196)
X-QCInternal: smtphost
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800
signatures=585085
X-Proofpoint-GUID: wqGG1zw0KpXNYk_yFYb16HwLWt9V-6o4
X-Proofpoint-ORIG-GUID: wqGG1zw0KpXNYk_yFYb16HwLWt9V-6o4
X-Proofpoint-Virus-Version: vendor=baseguard
engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22
definitions=2023-04-17_13,2023-04-17_01,2023-02-09_01
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
priorityscore=1501 mlxscore=0
mlxlogscore=796 suspectscore=0 impostorscore=0 bulkscore=0 spamscore=0
clxscore=1015 phishscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0
classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000
definitions=main-2304170181
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org
This is a regression fix for 80+80 and 160 MHz support bits being
cleared, therefore not adverised. Remove disable of 80+80 and 160 MHz
capability flags and assign valid center frequency 2 similar to
VHT80_80.
Fixes: 38dfe775d0ab ("wifi: ath11k: push MU-MIMO params from hostapd to hardware")
Reported-by: Robert Marko <robert.marko@sartura.hr>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217299
Co-developed-by: P Praneesh <quic_ppranees@quicinc.com>
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
---
drivers/net/wireless/ath/ath11k/mac.c | 4 ----
drivers/net/wireless/ath/ath11k/wmi.c | 3 ++-
2 files changed, 2 insertions(+), 5 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5585,10 +5585,6 @@ static int ath11k_mac_copy_he_cap(struct
he_cap_elem->mac_cap_info[1] &=
IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK;
- he_cap_elem->phy_cap_info[0] &=
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
- he_cap_elem->phy_cap_info[0] &=
- ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G;
he_cap_elem->phy_cap_info[5] &=
~IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK;
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -871,7 +871,8 @@ static void ath11k_wmi_put_wmi_channel(s
chan->band_center_freq2 = arg->channel.band_center_freq1;
- } else if (arg->channel.mode == MODE_11AC_VHT80_80) {
+ } else if ((arg->channel.mode == MODE_11AC_VHT80_80) ||
+ (arg->channel.mode == MODE_11AX_HE80_80)) {
chan->band_center_freq2 = arg->channel.band_center_freq2;
} else {
chan->band_center_freq2 = 0;

View file

@ -15,9 +15,9 @@ PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/kaloz/mwlwifi PKG_SOURCE_URL:=https://github.com/kaloz/mwlwifi
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2023-03-11 PKG_SOURCE_DATE:=2023-04-29
PKG_SOURCE_VERSION:=c916ac13376d1b0801f3f787277fa47ce6b694eb PKG_SOURCE_VERSION:=6a436714d2ea0d0adf39fc4d7d45e6a17fcc9371
PKG_MIRROR_HASH:=b95001b60fe5c28f08be5a52b65276d99877be57e567ad7afab95860f6aff57d PKG_MIRROR_HASH:=dcc320a8f859b732ff65c7ded0b5199a625bfba05a775a6bed15ed3c10cb2748
PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org> PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=gettext-full PKG_NAME:=gettext-full
PKG_VERSION:=0.21.1 PKG_VERSION:=0.21.1
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=gettext-$(PKG_VERSION).tar.xz PKG_SOURCE:=gettext-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/gettext PKG_SOURCE_URL:=@GNU/gettext
@ -21,12 +21,42 @@ PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=GPL-3.0-or-later PKG_LICENSE:=GPL-3.0-or-later
PKG_CPE_ID:=cpe:/a:gnu:gettext PKG_CPE_ID:=cpe:/a:gnu:gettext
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1 PKG_INSTALL:=1
PKG_BUILD_DEPENDS:=gettext-full/host PKG_BUILD_DEPENDS:=gettext-full/host libxml2
PKG_BUILD_PARALLEL:=0 PKG_BUILD_PARALLEL:=0
HOST_BUILD_DEPENDS:=gperf/host libxml2/host
HOST_BUILD_PARALLEL:=0 HOST_BUILD_PARALLEL:=0
PKG_SUBDIRS:= \
$$$$(foreach dir, \
intl \
intl-csharp \
intl-java \
its \
gnulib-lib \
gnulib-local \
lib \
$$$$(SUBDIR_libasprintf) \
libgettextpo \
libgrep \
libtextstyle \
m4 \
misc \
po \
projects \
src \
styles \
gettext-runtime \
gettext-tools \
,$$$$(wildcard $$$$(dir)) )
PKG_MAKEFILES_FAKE:= \
gnulib-local/m4/Makefile \
libtextstyle/gnulib-local/Makefile \
libtextstyle/m4/Makefile \
m4/Makefile
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk
@ -38,6 +68,8 @@ define Package/libintl-full
ABI_VERSION:=8 ABI_VERSION:=8
endef endef
export GNULIB_SRCDIR:=$(HOST_GNULIB_SRCDIR)
TARGET_CFLAGS += $(FPIC) TARGET_CFLAGS += $(FPIC)
ifneq ($(HOST_OS),Linux) ifneq ($(HOST_OS),Linux)
TARGET_CFLAGS += -I$(STAGING_DIR_HOSTPKG)/include TARGET_CFLAGS += -I$(STAGING_DIR_HOSTPKG)/include
@ -55,6 +87,7 @@ CONFIGURE_ARGS += \
--with-included-gettext \ --with-included-gettext \
--without-libintl-prefix \ --without-libintl-prefix \
--without-libexpat-prefix \ --without-libexpat-prefix \
--with-libxml2-prefix=$(STAGING_DIR) \
--without-emacs --without-emacs
HOST_CONFIGURE_ARGS += \ HOST_CONFIGURE_ARGS += \
@ -65,7 +98,7 @@ HOST_CONFIGURE_ARGS += \
--disable-java \ --disable-java \
--disable-openmp \ --disable-openmp \
--without-emacs \ --without-emacs \
--without-libxml2-prefix --with-libxml2-prefix=$(STAGING_DIR_HOSTPKG)
HOST_CONFIGURE_VARS += \ HOST_CONFIGURE_VARS += \
EMACS="no" \ EMACS="no" \
@ -75,6 +108,52 @@ HOST_CONFIGURE_VARS += \
HOST_CFLAGS += $(HOST_FPIC) HOST_CFLAGS += $(HOST_FPIC)
define Host/Bootstrap
( \
cd $(HOST_BUILD_DIR); \
$(AM_TOOL_PATHS) \
./autogen.sh \
)
endef
define Host/Prepare
$(call Host/Prepare/Default)
$(if $(QUILT),,$(call Host/Bootstrap))
endef
define Host/Configure
$(if $(QUILT),$(call Host/Bootstrap))
$(call Host/Configure/Default)
endef
define Host/Compile
$(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(HOST_BUILD_DIR)/$(makefile); )
$(call Host/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
endef
define Build/Bootstrap
( \
cd $(PKG_BUILD_DIR); \
$(AM_TOOL_PATHS) \
./autogen.sh \
)
endef
define Build/Prepare
$(call Build/Prepare/Default)
$(if $(QUILT),,$(call Build/Bootstrap))
endef
define Build/Configure
$(if $(QUILT),$(call Build/Bootstrap))
$(call Build/Configure/Default)
endef
define Build/Compile
$(foreach makefile,$(PKG_MAKEFILES_FAKE),printf '%s\n%s\n' 'all:' 'install:' > $(PKG_BUILD_DIR)/$(makefile); )
$(call Build/Compile/Default,SUBDIRS='$(PKG_SUBDIRS)')
endef
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib/libintl-full/include $(INSTALL_DIR) $(1)/usr/lib/libintl-full/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libintl.h $(1)/usr/lib/libintl-full/include/ $(CP) $(PKG_INSTALL_DIR)/usr/include/libintl.h $(1)/usr/lib/libintl-full/include/
@ -89,10 +168,14 @@ define Build/InstallDev
endef endef
define Host/Install define Host/Install
$(call Host/Install/Default) $(call Host/Compile/Default,install SUBDIRS='$(PKG_SUBDIRS)')
$(LN) msgfmt $(STAGING_DIR_HOSTPKG)/bin/gmsgfmt $(LN) msgfmt $(STAGING_DIR_HOSTPKG)/bin/gmsgfmt
endef endef
define Build/Install
$(call Build/Install/Default,install SUBDIRS='$(PKG_SUBDIRS)')
endef
define Package/libintl-full/install define Package/libintl-full/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so.* $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libintl.so.* $(1)/usr/lib/

View file

@ -1,22 +0,0 @@
--- a/gettext-runtime/Makefile.am
+++ b/gettext-runtime/Makefile.am
@@ -27,7 +27,7 @@ SUBDIR_libasprintf = libasprintf
else
SUBDIR_libasprintf =
endif
-SUBDIRS = doc intl intl-java intl-csharp gnulib-lib $(SUBDIR_libasprintf) src po man m4 tests
+SUBDIRS = intl intl-java intl-csharp gnulib-lib $(SUBDIR_libasprintf) src po m4
EXTRA_DIST = BUGS
--- a/gettext-tools/Makefile.am
+++ b/gettext-tools/Makefile.am
@@ -19,7 +19,7 @@
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
-SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po its projects styles misc m4
EXTRA_DIST = misc/DISCLAIM
MOSTLYCLEANFILES = core *.stackdump

View file

@ -1,342 +0,0 @@
--- a/gettext-runtime/gnulib-m4/stddef_h.m4
+++ b/gettext-runtime/gnulib-m4/stddef_h.m4
@@ -9,7 +9,7 @@ dnl A placeholder for <stddef.h>, for pl
AC_DEFUN_ONCE([gl_STDDEF_H],
[
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
--- a/gettext-runtime/gnulib-m4/stdint.m4
+++ b/gettext-runtime/gnulib-m4/stdint.m4
@@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_STDINT_H],
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_LIMITS_H])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
dnl For backward compatibility. Some packages may still be testing these
dnl macros.
--- a/gettext-runtime/gnulib-m4/wchar_h.m4
+++ b/gettext-runtime/gnulib-m4/wchar_h.m4
@@ -27,7 +27,7 @@ AC_DEFUN_ONCE([gl_WCHAR_H],
AC_REQUIRE([gl_FEATURES_H])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
if test $gt_cv_c_wint_t = yes; then
HAVE_WINT_T=1
else
--- a/gettext-runtime/gnulib-m4/wchar_t.m4
+++ b/gettext-runtime/gnulib-m4/wchar_t.m4
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
dnl Test whether <stddef.h> has the 'wchar_t' type.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WCHAR_T],
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
[
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
[AC_COMPILE_IFELSE(
--- a/gettext-runtime/gnulib-m4/wctype_h.m4
+++ b/gettext-runtime/gnulib-m4/wctype_h.m4
@@ -22,7 +22,7 @@ AC_DEFUN_ONCE([gl_WCTYPE_H],
fi
AC_SUBST([HAVE_ISWCNTRL])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
if test $gt_cv_c_wint_t = yes; then
HAVE_WINT_T=1
else
--- a/gettext-runtime/gnulib-m4/wcwidth.m4
+++ b/gettext-runtime/gnulib-m4/wcwidth.m4
@@ -12,8 +12,8 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
dnl Persuade glibc <wchar.h> to declare wcwidth().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
AC_CHECK_HEADERS_ONCE([wchar.h])
AC_CHECK_FUNCS_ONCE([wcwidth])
--- a/gettext-runtime/gnulib-m4/wint_t.m4
+++ b/gettext-runtime/gnulib-m4/wint_t.m4
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WINT_T],
+AC_DEFUN([gt_TYPE_WINT_T_GT],
[
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
[AC_COMPILE_IFELSE(
--- a/gettext-runtime/libasprintf/configure.ac
+++ b/gettext-runtime/libasprintf/configure.ac
@@ -76,8 +76,8 @@ dnl Checks for typedefs, structures, and
AC_C_INLINE
AC_TYPE_SIZE_T
AC_TYPE_LONG_LONG_INT
-gt_TYPE_WCHAR_T
-gt_TYPE_WINT_T
+gt_TYPE_WCHAR_T_GT
+gt_TYPE_WINT_T_GT
AC_TYPE_MBSTATE_T
AC_CHECK_TYPE([ptrdiff_t], ,
[AC_DEFINE([ptrdiff_t], [long],
--- a/gettext-runtime/libasprintf/gnulib-m4/wchar_t.m4
+++ b/gettext-runtime/libasprintf/gnulib-m4/wchar_t.m4
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
dnl Test whether <stddef.h> has the 'wchar_t' type.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WCHAR_T],
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
[
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
[AC_COMPILE_IFELSE(
--- a/gettext-runtime/libasprintf/gnulib-m4/wint_t.m4
+++ b/gettext-runtime/libasprintf/gnulib-m4/wint_t.m4
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WINT_T],
+AC_DEFUN([gt_TYPE_WINT_T_GT],
[
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
[AC_COMPILE_IFELSE(
--- a/gettext-runtime/m4/intl.m4
+++ b/gettext-runtime/m4/intl.m4
@@ -31,8 +31,8 @@ AC_DEFUN([AM_INTL_SUBDIR],
AC_REQUIRE([gl_VISIBILITY])dnl
AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
- AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
- AC_REQUIRE([gt_TYPE_WINT_T])dnl
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])dnl
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])dnl
AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
AC_REQUIRE([gt_TYPE_INTMAX_T])
AC_REQUIRE([gt_PRINTF_POSIX])
--- a/gettext-tools/gnulib-m4/stdint.m4
+++ b/gettext-tools/gnulib-m4/stdint.m4
@@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_STDINT_H],
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_LIMITS_H])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
dnl For backward compatibility. Some packages may still be testing these
dnl macros.
--- a/gettext-tools/gnulib-m4/vasnprintf.m4
+++ b/gettext-tools/gnulib-m4/vasnprintf.m4
@@ -32,16 +32,16 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF],
# Prerequisites of lib/printf-args.h, lib/printf-args.c.
AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
[
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
])
# Prerequisites of lib/printf-parse.h, lib/printf-parse.c.
AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
[
AC_REQUIRE([gl_FEATURES_H])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
AC_REQUIRE([AC_TYPE_SIZE_T])
AC_CHECK_TYPE([ptrdiff_t], ,
[AC_DEFINE([ptrdiff_t], [long],
@@ -54,8 +54,8 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
[
AC_REQUIRE([AC_FUNC_ALLOCA])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
dnl Use the _snprintf function only if it is declared (because on NetBSD it
dnl is defined as a weak alias of snprintf; we prefer to use the latter).
--- a/gettext-tools/gnulib-m4/wchar_h.m4
+++ b/gettext-tools/gnulib-m4/wchar_h.m4
@@ -27,7 +27,7 @@ AC_DEFUN_ONCE([gl_WCHAR_H],
AC_REQUIRE([gl_FEATURES_H])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
if test $gt_cv_c_wint_t = yes; then
HAVE_WINT_T=1
else
--- a/gettext-tools/gnulib-m4/wchar_t.m4
+++ b/gettext-tools/gnulib-m4/wchar_t.m4
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
dnl Test whether <stddef.h> has the 'wchar_t' type.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WCHAR_T],
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
[
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
[AC_COMPILE_IFELSE(
--- a/gettext-tools/gnulib-m4/wctype_h.m4
+++ b/gettext-tools/gnulib-m4/wctype_h.m4
@@ -22,7 +22,7 @@ AC_DEFUN_ONCE([gl_WCTYPE_H],
fi
AC_SUBST([HAVE_ISWCNTRL])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
if test $gt_cv_c_wint_t = yes; then
HAVE_WINT_T=1
else
--- a/gettext-tools/gnulib-m4/wcwidth.m4
+++ b/gettext-tools/gnulib-m4/wcwidth.m4
@@ -12,8 +12,8 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
dnl Persuade glibc <wchar.h> to declare wcwidth().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
AC_CHECK_HEADERS_ONCE([wchar.h])
AC_CHECK_FUNCS_ONCE([wcwidth])
--- a/gettext-tools/gnulib-m4/wint_t.m4
+++ b/gettext-tools/gnulib-m4/wint_t.m4
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WINT_T],
+AC_DEFUN([gt_TYPE_WINT_T_GT],
[
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
[AC_COMPILE_IFELSE(
--- a/libtextstyle/gnulib-m4/stdint.m4
+++ b/libtextstyle/gnulib-m4/stdint.m4
@@ -15,7 +15,7 @@ AC_DEFUN_ONCE([gl_STDINT_H],
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
AC_REQUIRE([gl_LIMITS_H])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
dnl For backward compatibility. Some packages may still be testing these
dnl macros.
--- a/libtextstyle/gnulib-m4/vasnprintf.m4
+++ b/libtextstyle/gnulib-m4/vasnprintf.m4
@@ -32,16 +32,16 @@ AC_DEFUN([gl_REPLACE_VASNPRINTF],
# Prerequisites of lib/printf-args.h, lib/printf-args.c.
AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
[
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
])
# Prerequisites of lib/printf-parse.h, lib/printf-parse.c.
AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
[
AC_REQUIRE([gl_FEATURES_H])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
AC_REQUIRE([AC_TYPE_SIZE_T])
AC_CHECK_TYPE([ptrdiff_t], ,
[AC_DEFINE([ptrdiff_t], [long],
@@ -54,8 +54,8 @@ AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
[
AC_REQUIRE([AC_FUNC_ALLOCA])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
dnl Use the _snprintf function only if it is declared (because on NetBSD it
dnl is defined as a weak alias of snprintf; we prefer to use the latter).
--- a/libtextstyle/gnulib-m4/wchar_h.m4
+++ b/libtextstyle/gnulib-m4/wchar_h.m4
@@ -27,7 +27,7 @@ AC_DEFUN_ONCE([gl_WCHAR_H],
AC_REQUIRE([gl_FEATURES_H])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
if test $gt_cv_c_wint_t = yes; then
HAVE_WINT_T=1
else
--- a/libtextstyle/gnulib-m4/wchar_t.m4
+++ b/libtextstyle/gnulib-m4/wchar_t.m4
@@ -8,7 +8,7 @@ dnl From Bruno Haible.
dnl Test whether <stddef.h> has the 'wchar_t' type.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WCHAR_T],
+AC_DEFUN([gt_TYPE_WCHAR_T_GT],
[
AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
[AC_COMPILE_IFELSE(
--- a/libtextstyle/gnulib-m4/wint_t.m4
+++ b/libtextstyle/gnulib-m4/wint_t.m4
@@ -9,7 +9,7 @@ dnl Test whether <wchar.h> has the 'wint
dnl <wchar.h> or <wctype.h> would, if present, override 'wint_t'.
dnl Prerequisite: AC_PROG_CC
-AC_DEFUN([gt_TYPE_WINT_T],
+AC_DEFUN([gt_TYPE_WINT_T_GT],
[
AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
[AC_COMPILE_IFELSE(
--- a/gettext-tools/gnulib-m4/gnulib-comp.m4
+++ b/gettext-tools/gnulib-m4/gnulib-comp.m4
@@ -2218,8 +2218,8 @@ changequote([, ])dnl
AC_REQUIRE([gl_SOCKETLIB])
AC_REQUIRE([gl_SOCKETS])
gl_TYPE_SOCKLEN_T
- AC_REQUIRE([gt_TYPE_WCHAR_T])
- AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
+ AC_REQUIRE([gt_TYPE_WINT_T_GT])
gl_FUNC_STRERROR_R
AS_IF([test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1], [
AC_LIBOBJ([strerror_r])
--- a/libtextstyle/gnulib-m4/stddef_h.m4
+++ b/libtextstyle/gnulib-m4/stddef_h.m4
@@ -9,7 +9,7 @@ dnl A placeholder for <stddef.h>, for pl
AC_DEFUN_ONCE([gl_STDDEF_H],
[
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
--- a/gettext-tools/gnulib-m4/stddef_h.m4
+++ b/gettext-tools/gnulib-m4/stddef_h.m4
@@ -9,7 +9,7 @@ dnl A placeholder for <stddef.h>, for pl
AC_DEFUN_ONCE([gl_STDDEF_H],
[
AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
- AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WCHAR_T_GT])
dnl Persuade OpenBSD <stddef.h> to declare max_align_t.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])

View file

@ -0,0 +1,31 @@
--- a/libtextstyle/gnulib-local/modules/libxml.diff
+++ /dev/null
@@ -1,28 +0,0 @@
-*** libxml.orig 2018-10-28 14:37:07.007164889 +0100
---- libxml 2019-02-14 22:19:29.994771110 +0100
-***************
-*** 118,124 ****
- fabs
-
- configure.ac:
-! gl_LIBXML
-
- Makefile.am:
- if INCLUDED_LIBXML
---- 118,133 ----
- fabs
-
- configure.ac:
-! # In libtextstyle, we don't want to use an external libxml, because its
-! # dependencies and their dynamic relocations have an impact on the startup
-! # time of a program that is linked with it. As you can see by using
-! # 'readelf -r ... | wc -l' and 'readelf -d ... | grep NEEDED':
-! # - libxml2.so has more than 3300 relocations and depends on libicuuc.
-! # - libicuuc.so has more than 4900 relocations and depends on libstdc++.
-! # - libstdc++.so has more than 4600 relocations.
-! # These are more than 12800 relocations, to perform at program startup.
-! # So, force the use of the included libxml part.
-! gl_LIBXML([yes])
-
- Makefile.am:
- if INCLUDED_LIBXML

View file

@ -1,22 +0,0 @@
--- a/gettext-tools/gnulib-lib/libxml/xmlversion.in.h
+++ b/gettext-tools/gnulib-lib/libxml/xmlversion.in.h
@@ -302,7 +302,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(i
*
* Whether iconv support is available
*/
-#if 1
+#if 0
#define LIBXML_ICONV_ENABLED
#endif
--- a/gnulib-local/lib/libxml/xmlversion.in.h
+++ b/gnulib-local/lib/libxml/xmlversion.in.h
@@ -302,7 +302,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(i
*
* Whether iconv support is available
*/
-#if 1
+#if 0
#define LIBXML_ICONV_ENABLED
#endif

View file

@ -0,0 +1,206 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libxml2
PKG_VERSION:=2.10.3
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNOME/libxml2/$(basename $(PKG_VERSION))
PKG_HASH:=5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_CPE_ID:=cpe:/a:xmlsoft:libxml2
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
include $(INCLUDE_DIR)/nls.mk
define Package/libxml2
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Gnome XML library
URL:=http://xmlsoft.org/
DEPENDS:=+libpthread +zlib $(ICONV_DEPENDS)
endef
define Package/libxml2/description
A library for manipulating XML and HTML resources.
endef
define Package/libxml2-dev
SECTION:=devel
CATEGORY:=Development
SUBMENU:=Libraries
TITLE:=Development files for libxml2
URL:=http://xmlsoft.org/
DEPENDS:=+libxml2
endef
define Package/libxml2-dev/description
A library for manipulating XML and HTML resources.
This package contains the headers and xml2-config binary.
endef
define Package/libxml2-utils
SECTION:=utils
CATEGORY:=Utilities
TITLE:=XML command line utilities (xmllint...)
URL:=http://xmlsoft.org/
DEPENDS:=+libxml2
endef
define Package/libxml2-utils/description
This package contains the binaries xmllint and xmlcatalog
from libxml2, a library for manipulating XML and HTML resources.
endef
CMAKE_HOST_OPTIONS += \
-DBUILD_SHARED_LIBS=OFF \
-DLIBXML2_WITH_C14N=ON \
-DLIBXML2_WITH_CATALOG=OFF \
-DLIBXML2_WITH_DEBUG=ON \
-DLIBXML2_WITH_FTP=OFF \
-DLIBXML2_WITH_HTML=ON \
-DLIBXML2_WITH_HTTP=OFF \
-DLIBXML2_WITH_ICONV=ON \
-DLIBXML2_WITH_ICU=OFF \
-DLIBXML2_WITH_ISO8859X=OFF \
-DLIBXML2_WITH_LEGACY=OFF \
-DLIBXML2_WITH_LZMA=OFF \
-DLIBXML2_WITH_MEM_DEBUG=OFF \
-DLIBXML2_WITH_MODULES=OFF \
-DLIBXML2_WITH_OUTPUT=ON \
-DLIBXML2_WITH_PATTERN=ON \
-DLIBXML2_WITH_PROGRAMS=OFF \
-DLIBXML2_WITH_PUSH=ON \
-DLIBXML2_WITH_PYTHON=OFF \
-DLIBXML2_WITH_READER=ON \
-DLIBXML2_WITH_REGEXPS=ON \
-DLIBXML2_WITH_RUN_DEBUG=OFF \
-DLIBXML2_WITH_SAX1=ON \
-DLIBXML2_WITH_SCHEMAS=ON \
-DLIBXML2_WITH_SCHEMATRON=OFF \
-DLIBXML2_WITH_TESTS=OFF \
-DLIBXML2_WITH_THREADS=ON \
-DLIBXML2_WITH_THREAD_ALLOC=OFF \
-DLIBXML2_WITH_TREE=ON \
-DLIBXML2_WITH_VALID=ON \
-DLIBXML2_WITH_WRITER=ON \
-DLIBXML2_WITH_XINCLUDE=ON \
-DLIBXML2_WITH_XPATH=ON \
-DLIBXML2_WITH_XPTR=ON \
-DLIBXML2_WITH_XPTR_LOCS=ON \
-DLIBXML2_WITH_ZLIB=ON
CMAKE_OPTIONS += \
-DBUILD_SHARED_LIBS=ON \
-DLIBXML2_WITH_C14N=ON \
-DLIBXML2_WITH_CATALOG=OFF \
-DLIBXML2_WITH_DEBUG=ON \
-DLIBXML2_WITH_FTP=OFF \
-DLIBXML2_WITH_HTML=ON \
-DLIBXML2_WITH_HTTP=OFF \
-DLIBXML2_WITH_ICONV=ON \
-DLIBXML2_WITH_ICU=OFF \
-DLIBXML2_WITH_ISO8859X=OFF \
-DLIBXML2_WITH_LEGACY=OFF \
-DLIBXML2_WITH_LZMA=OFF \
-DLIBXML2_WITH_MEM_DEBUG=OFF \
-DLIBXML2_WITH_MODULES=OFF \
-DLIBXML2_WITH_OUTPUT=ON \
-DLIBXML2_WITH_PATTERN=ON \
-DLIBXML2_WITH_PROGRAMS=ON \
-DLIBXML2_WITH_PUSH=ON \
-DLIBXML2_WITH_PYTHON=OFF \
-DLIBXML2_WITH_READER=ON \
-DLIBXML2_WITH_REGEXPS=ON \
-DLIBXML2_WITH_RUN_DEBUG=OFF \
-DLIBXML2_WITH_SAX1=ON \
-DLIBXML2_WITH_SCHEMAS=ON \
-DLIBXML2_WITH_SCHEMATRON=OFF \
-DLIBXML2_WITH_TESTS=OFF \
-DLIBXML2_WITH_THREADS=ON \
-DLIBXML2_WITH_THREAD_ALLOC=OFF \
-DLIBXML2_WITH_TREE=ON \
-DLIBXML2_WITH_VALID=ON \
-DLIBXML2_WITH_WRITER=ON \
-DLIBXML2_WITH_XINCLUDE=ON \
-DLIBXML2_WITH_XPATH=ON \
-DLIBXML2_WITH_XPTR=ON \
-DLIBXML2_WITH_XPTR_LOCS=ON \
-DLIBXML2_WITH_ZLIB=ON \
-DHAVE_LIBHISTORY=OFF \
-DHAVE_LIBREADLINE=OFF
define Build/InstallDev
$(INSTALL_DIR) $(2)/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/xml2-config \
$(2)/bin/$(GNU_TARGET_NAME)-xml2-config
$(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \
$(2)/bin/$(GNU_TARGET_NAME)-xml2-config
$(LN) $(GNU_TARGET_NAME)-xml2-config $(2)/bin/xml2-config
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmlcatalog $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmllint $(1)/usr/bin/
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libxml2 $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/cmake/libxml2
$(CP) $(PKG_INSTALL_DIR)/usr/lib/cmake/libxml2-$(PKG_VERSION)/*.cmake \
$(1)/usr/lib/cmake/libxml2
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libxml-2.0.pc $(1)/usr/lib/pkgconfig/
$(INSTALL_DIR) $(2)/share/aclocal/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(2)/share/aclocal
endef
define Host/Install
$(call Host/Install/Default)
mv $(1)/bin/xml2-config $(1)/bin/$(GNU_HOST_NAME)-xml2-config
$(LN) $(GNU_HOST_NAME)-xml2-config $(1)/bin/xml2-config
endef
define Package/libxml2/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so.* $(1)/usr/lib/
endef
define Package/libxml2-dev/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xml2-config $(1)/usr/bin/
$(SED) "s,$(STAGING_DIR),,g" $(1)/usr/bin/xml2-config
$(INSTALL_DIR) $(1)/usr/include/
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxml2.so $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/{cmake,pkgconfig}
$(CP) $(PKG_INSTALL_DIR)/usr/lib/{cmake,pkgconfig} $(1)/usr/lib/
$(SED) "s,$(STAGING_DIR),,g" $(1)/usr/lib/pkgconfig/*.pc
$(INSTALL_DIR) $(1)/usr/share/aclocal
$(CP) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal
endef
define Package/libxml2-utils/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmllint $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/bin/xmlcatalog $(1)/usr/bin/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,libxml2))
$(eval $(call BuildPackage,libxml2-dev))
$(eval $(call BuildPackage,libxml2-utils))

View file

@ -0,0 +1,12 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -496,6 +496,9 @@ if(LIBXML2_WITH_PROGRAMS)
add_executable(LibXml2::${PROGRAM} ALIAS ${PROGRAM})
target_compile_definitions(${PROGRAM} PRIVATE SYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
target_link_libraries(${PROGRAM} LibXml2)
+ if(LIBXML2_WITH_ICONV AND NOT Iconv_IS_BUILT_IN)
+ target_link_libraries(${PROGRAM} iconv)
+ endif()
if(HAVE_LIBHISTORY)
target_link_libraries(${PROGRAM} history)
endif()

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openssl PKG_NAME:=openssl
PKG_VERSION:=3.0.8 PKG_VERSION:=3.0.8
PKG_RELEASE:=8 PKG_RELEASE:=9
PKG_BUILD_FLAGS:=no-mips16 gc-sections PKG_BUILD_FLAGS:=no-mips16 gc-sections
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1

View file

@ -0,0 +1,39 @@
From 02ac9c9420275868472f33b01def01218742b8bb Mon Sep 17 00:00:00 2001
From: Tomas Mraz <tomas@openssl.org>
Date: Mon, 17 Apr 2023 16:51:20 +0200
Subject: [PATCH] aesv8-armx.pl: Avoid buffer overrread in AES-XTS decryption
Original author: Nevine Ebeid (Amazon)
Fixes: CVE-2023-1255
The buffer overread happens on decrypts of 4 mod 5 sizes.
Unless the memory just after the buffer is unmapped this is harmless.
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
(Merged from https://github.com/openssl/openssl/pull/20759)
(cherry picked from commit 72dfe46550ee1f1bbfacd49f071419365bc23304)
diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl
index 6a7bf05d1b..bd583e2c89 100755
--- a/crypto/aes/asm/aesv8-armx.pl
+++ b/crypto/aes/asm/aesv8-armx.pl
@@ -3353,7 +3353,7 @@ $code.=<<___ if ($flavour =~ /64/);
.align 4
.Lxts_dec_tail4x:
add $inp,$inp,#16
- vld1.32 {$dat0},[$inp],#16
+ tst $tailcnt,#0xf
veor $tmp1,$dat1,$tmp0
vst1.8 {$tmp1},[$out],#16
veor $tmp2,$dat2,$tmp2
@@ -3362,6 +3362,8 @@ $code.=<<___ if ($flavour =~ /64/);
veor $tmp4,$dat4,$tmp4
vst1.8 {$tmp3-$tmp4},[$out],#32
+ b.eq .Lxts_dec_abort
+ vld1.32 {$dat0},[$inp],#16
b .Lxts_done
.align 4
.Lxts_outer_dec_tail:

View file

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=iproute2 PKG_NAME:=iproute2
PKG_VERSION:=6.2.0 PKG_VERSION:=6.3.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
PKG_HASH:=4d72730200ec5b2aabaa1a2f20553c6748292f065d9a154c7d5e22559df9fd62 PKG_HASH:=dfb2a98db96e7a653cffc6693335a1a466e29a34b6ac528be48f35e1d2766732
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=iptables PKG_BUILD_DEPENDS:=iptables
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0

View file

@ -19,16 +19,37 @@ proto_mbim_init_config() {
proto_config_add_string auth proto_config_add_string auth
proto_config_add_string username proto_config_add_string username
proto_config_add_string password proto_config_add_string password
[ -e /proc/sys/net/ipv6 ] && proto_config_add_string ipv6
proto_config_add_string dhcp
proto_config_add_string dhcpv6
proto_config_add_string pdptype
proto_config_add_int mtu
proto_config_add_defaults proto_config_add_defaults
} }
_proto_mbim_get_field() {
local field="$1"
shift
local mbimconfig="$@"
echo "$mbimconfig" | while read -r line; do
variable=${line%%:*}
[ "$variable" = "$field" ] || continue;
value=${line##* }
echo -n "$value "
done
}
_proto_mbim_setup() { _proto_mbim_setup() {
local interface="$1" local interface="$1"
local tid=2 local tid=2
local ret local ret
local device apn pincode delay allow_roaming allow_partner $PROTO_DEFAULT_OPTIONS local device apn pincode delay auth username password allow_roaming allow_partner
json_get_vars device apn pincode delay auth username password allow_roaming allow_partner $PROTO_DEFAULT_OPTIONS local dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
json_get_vars device apn pincode delay auth username password allow_roaming allow_partner
json_get_vars dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
[ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
[ -n "$ctl_device" ] && device=$ctl_device [ -n "$ctl_device" ] && device=$ctl_device
@ -146,35 +167,133 @@ _proto_mbim_setup() {
} }
tid=$((tid + 1)) tid=$((tid + 1))
pdptype=$(echo "$pdptype" | awk '{print tolower($0)}')
[ "$ipv6" = 0 ] && pdptype="ipv4"
local req_pdptype="" # Pass "default" PDP type to umbim if unconfigured
[ "$pdptype" = "ipv4" -o "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && req_pdptype="$pdptype:"
local connect_state
echo "mbim[$$]" "Connect to network" echo "mbim[$$]" "Connect to network"
while ! umbim $DBG -n -t $tid -d $device connect "$apn" "$auth" "$username" "$password"; do connect_state=$(umbim $DBG -n -t $tid -d $device connect "$req_pdptype$apn" "$auth" "$username" "$password") || {
echo "mbim[$$]" "Failed to connect bearer"
tid=$((tid + 1)) tid=$((tid + 1))
sleep 1; umbim $DBG -t $tid -d "$device" disconnect
done proto_notify_error "$interface" CONNECT_FAILED
return 1
}
tid=$((tid + 1)) tid=$((tid + 1))
uci_set_state network $interface tid "$tid" echo "$connect_state"
local iptype="$(echo "$connect_state" | grep iptype: | awk '{print $4}')"
echo "mbim[$$]" "Connected"
local zone="$(fw3 -q network "$interface" 2>/dev/null)"
echo "mbim[$$]" "Setting up $ifname"
local mbimconfig="$(umbim $DBG -n -t $tid -d $device config)"
echo "$mbimconfig"
tid=$((tid + 1))
echo "mbim[$$]" "Connected, starting DHCP"
proto_init_update "$ifname" 1 proto_init_update "$ifname" 1
proto_send_update "$interface" proto_send_update "$interface"
json_init [ -z "$dhcp" ] && dhcp="auto"
json_add_string name "${interface}_4" [ -z "$dhcpv6" ] && dhcpv6="auto"
json_add_string ifname "@$interface"
json_add_string proto "dhcp"
proto_add_dynamic_defaults
json_close_object
ubus call network add_dynamic "$(json_dump)"
json_init [ "$iptype" != "ipv6" ] && {
json_add_string name "${interface}_6" json_init
json_add_string ifname "@$interface" json_add_string name "${interface}_4"
json_add_string proto "dhcpv6" json_add_string ifname "@$interface"
json_add_string extendprefix 1 ipv4address=$(_proto_mbim_get_field ipv4address "$mbimconfig")
proto_add_dynamic_defaults if [ -n "$ipv4address" -a "$dhcp" != 1 ]; then
json_close_object json_add_string proto "static"
ubus call network add_dynamic "$(json_dump)"
json_add_array ipaddr
for address in $ipv4address; do
json_add_string "" "$address"
done
json_close_array
json_add_string gateway $(_proto_mbim_get_field ipv4gateway "$mbimconfig")
elif [ "$dhcp" != 0 ]; then
echo "mbim[$$]" "Starting DHCP on $ifname"
json_add_string proto "dhcp"
fi
[ "$peerdns" = 0 -a "$dhcp" != 1 ] || {
json_add_array dns
for server in $(_proto_mbim_get_field ipv4dnsserver "$mbimconfig"); do
json_add_string "" "$server"
done
json_close_array
}
proto_add_dynamic_defaults
[ -n "$zone" ] && json_add_string zone "$zone"
[ -n "$ip4table" ] && json_add_string ip4table "$ip4table"
json_close_object
ubus call network add_dynamic "$(json_dump)"
}
[ "$iptype" != "ipv4" ] && {
json_init
json_add_string name "${interface}_6"
json_add_string ifname "@$interface"
ipv6address=$(_proto_mbim_get_field ipv6address "$mbimconfig")
if [ -n "$ipv6address" -a "$dhcpv6" != 1 ]; then
json_add_string proto "static"
json_add_array ip6addr
for address in $ipv6address; do
json_add_string "" "$address"
done
json_close_array
json_add_array ip6prefix
for address in $ipv6address; do
json_add_string "" "$address"
done
json_close_array
json_add_string ip6gw $(_proto_mbim_get_field ipv6gateway "$mbimconfig")
elif [ "$dhcpv6" != 0 ]; then
echo "mbim[$$]" "Starting DHCPv6 on $ifname"
json_add_string proto "dhcpv6"
json_add_string extendprefix 1
fi
[ "$peerdns" = 0 -a "$dhcpv6" != 1 ] || {
json_add_array dns
for server in $(_proto_mbim_get_field ipv6dnsserver "$mbimconfig"); do
json_add_string "" "$server"
done
json_close_array
}
proto_add_dynamic_defaults
[ -n "$zone" ] && json_add_string zone "$zone"
[ -n "$ip6table" ] && json_add_string ip6table "$ip6table"
json_close_object
ubus call network add_dynamic "$(json_dump)"
}
[ -z "$mtu" ] && {
local ipv4mtu=$(_proto_mbim_get_field ipv4mtu "$mbimconfig")
ipv4mtu="${ipv4mtu:-0}"
local ipv6mtu=$(_proto_mbim_get_field ipv6mtu "$mbimconfig")
ipv6mtu="${ipv6mtu:-0}"
mtu=$((ipv6mtu > ipv4mtu ? ipv6mtu : ipv4mtu))
}
[ -n "$mtu" -a "$mtu" != 0 ] && {
echo Setting MTU of $ifname to $mtu
/sbin/ip link set dev $ifname mtu $mtu
}
uci_set_state network $interface tid "$tid"
} }
proto_mbim_setup() { proto_mbim_setup() {

View file

@ -268,6 +268,14 @@ FIND:=find
PATCH:=patch PATCH:=patch
PYTHON:=python3 PYTHON:=python3
ifeq ($(HOST_OS),Darwin)
TRUE:=/usr/bin/env gtrue
FALSE:=/usr/bin/env gfalse
else
TRUE:=/usr/bin/env true
FALSE:=/usr/bin/env false
endif
INSTALL_BIN:=install -m0755 INSTALL_BIN:=install -m0755
INSTALL_SUID:=install -m4755 INSTALL_SUID:=install -m4755
INSTALL_DIR:=install -d -m0755 INSTALL_DIR:=install -d -m0755
@ -350,6 +358,7 @@ ifeq ($(CONFIG_BUILD_LOG),y)
endif endif
export BISON_PKGDATADIR:=$(STAGING_DIR_HOST)/share/bison export BISON_PKGDATADIR:=$(STAGING_DIR_HOST)/share/bison
export HOST_GNULIB_SRCDIR:=$(STAGING_DIR_HOST)/share/gnulib
export M4:=$(STAGING_DIR_HOST)/bin/m4 export M4:=$(STAGING_DIR_HOST)/bin/m4
define shvar define shvar

View file

@ -135,7 +135,6 @@ CONFIG_INITRAMFS_SOURCE=""
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
CONFIG_IOMMU_SUPPORT=y CONFIG_IOMMU_SUPPORT=y
CONFIG_IO_URING=y
CONFIG_IRQCHIP=y CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_DOMAIN_HIERARCHY=y

View file

@ -110,7 +110,6 @@ CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_SNPS_CREG=y CONFIG_GPIO_SNPS_CREG=y
CONFIG_GRACE_PERIOD=y CONFIG_GRACE_PERIOD=y
CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_HANDLE_DOMAIN_IRQ=y
# CONFIG_HARDENED_USERCOPY is not set
CONFIG_HAS_DMA=y CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y CONFIG_HAS_IOMEM=y
CONFIG_HZ_PERIODIC=y CONFIG_HZ_PERIODIC=y

View file

@ -3,246 +3,157 @@
// Copyright (c) 2021, 2022 Lech Perczak // Copyright (c) 2021, 2022 Lech Perczak
// Copyright (c) 2022 David Bauer <mail@david-bauer.net> // Copyright (c) 2022 David Bauer <mail@david-bauer.net>
#include "qca956x.dtsi" #include "qca9563_zte_mf28x.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ { / {
model = "ZTE MF281"; model = "ZTE MF281";
compatible = "zte,mf281", "qca,qca9563"; compatible = "zte,mf281", "qca,qca9563";
aliases {
led-boot = &led_debug;
led-failsafe = &led_debug;
led-running = &led_debug;
led-upgrade = &led_debug;
label-mac-device = &eth0;
};
leds { leds {
compatible = "gpio-leds";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&enable_wlan_led_gpio>; pinctrl-0 = <&enable_wlan_led_gpio>;
/* Hidden SMD LED below signal strength LEDs.
* Visible through slits underside of the case.
*/
led_debug: debug {
label = "green:debug";
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
default-state = "on";
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
/* This GPIO is used to reset whole board _including_ the modem */
gpio-restart {
compatible = "gpio-restart";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
active-delay = <3000>;
inactive-delay = <1000>;
}; };
}; };
&spi { &led_debug {
status = "okay"; label = "green:debug";
color = <LED_COLOR_ID_GREEN>;
};
flash@0 { &boot_flash {
compatible = "jedec,spi-nor"; partitions {
reg = <0>; partition@0 {
spi-max-frequency = <25000000>; label = "u-boot";
reg = <0x0 0xa0000>;
read-only;
};
partition@80000 {
label = "u-boot-env";
reg = <0xa0000 0x20000>;
read-only;
};
};
};
&system_flash {
partitions {
partition@0 {
label = "fota-flag";
reg = <0x000000 0xa0000>;
read-only;
};
partition@a0000 {
label = "art";
reg = <0xa0000 0x80000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
cal_caldata_1000: cal@1000 {
reg = <0x1000 0x440>;
};
cal_caldata_5000: cal@5000 {
reg = <0x5000 0x2f20>;
};
};
partition@120000 {
label = "mac";
reg = <0x120000 0x80000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_mac_0: macaddr@0 {
reg = <0x0 0x6>;
};
};
partition@1a0000 {
label = "reserved2";
reg = <0x1a0000 0xc0000>;
read-only;
};
partition@260000 {
label = "cfg-param";
reg = <0x260000 0x400000>;
read-only;
};
partition@660000 {
label = "log";
reg = <0x660000 0x400000>;
read-only;
};
partition@a60000 {
label = "oops";
reg = <0xa60000 0xa0000>;
read-only;
};
partition@b00000 {
label = "reserved3";
reg = <0xb00000 0x500000>;
read-only;
};
partition@1000000 {
label = "web";
reg = <0x1000000 0x800000>;
read-only;
};
partition@1800000 {
label = "firmware";
reg = <0x1800000 0x1d00000>;
partitions {
compatible = "fixed-partitions"; compatible = "fixed-partitions";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
partition@0 { partition@0 {
label = "u-boot"; label = "kernel";
reg = <0x0 0xa0000>; reg = <0x0 0x600000>;
read-only;
}; };
partition@80000 { partition@600000 {
label = "u-boot-env"; label = "ubi";
reg = <0xa0000 0x20000>; reg = <0x600000 0x1700000>;
read-only;
}; };
}; };
};
flash@1 { partition@3500000 {
compatible = "spi-nand"; label = "data";
reg = <1>; reg = <0x3500000 0x1900000>;
spi-max-frequency = <25000000>; read-only;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "fota-flag";
reg = <0x000000 0xa0000>;
read-only;
};
partition@a0000 {
label = "art";
reg = <0xa0000 0x80000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
cal_caldata_1000: cal@1000 {
reg = <0x1000 0x440>;
};
cal_caldata_5000: cal@5000 {
reg = <0x5000 0x2f20>;
};
};
partition@120000 {
label = "mac";
reg = <0x120000 0x80000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_mac_0: macaddr@0 {
reg = <0x0 0x6>;
};
};
partition@1a0000 {
label = "reserved2";
reg = <0x1a0000 0xc0000>;
read-only;
};
partition@260000 {
label = "cfg-param";
reg = <0x260000 0x400000>;
read-only;
};
partition@660000 {
label = "log";
reg = <0x660000 0x400000>;
read-only;
};
partition@a60000 {
label = "oops";
reg = <0xa60000 0xa0000>;
read-only;
};
partition@b00000 {
label = "reserved3";
reg = <0xb00000 0x500000>;
read-only;
};
partition@1000000 {
label = "web";
reg = <0x1000000 0x800000>;
read-only;
};
partition@1800000 {
label = "firmware";
reg = <0x1800000 0x1d00000>;
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "kernel";
reg = <0x0 0x600000>;
};
partition@600000 {
label = "ubi";
reg = <0x600000 0x1700000>;
};
};
partition@3500000 {
label = "data";
reg = <0x3500000 0x1900000>;
read-only;
};
partition@4e00000 {
label = "fota";
reg = <0x4e00000 0x3200000>;
read-only;
};
}; };
};
};
&mdio0 { partition@4e00000 {
status = "okay"; label = "fota";
reg = <0x4e00000 0x3200000>;
phy0: ethernet-phy@0 { read-only;
reg = <0>; };
phy-mode = "sgmii";
qca,ar8327-initvals = <
0x04 0x00080080 /* PORT0 PAD MODE CTRL */
0x7c 0x0000007e /* PORT0_STATUS */
>;
}; };
}; };
&eth0 { &eth0 {
status = "okay";
phy-mode = "sgmii";
phy-handle = <&phy0>;
nvmem-cells = <&macaddr_mac_0>; nvmem-cells = <&macaddr_mac_0>;
nvmem-cell-names = "mac-address"; nvmem-cell-names = "mac-address";
}; };
&pcie { &wifi_ath10k {
status = "okay"; nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_5000>;
nvmem-cell-names = "mac-address", "pre-calibration";
wifi@0,0 { mac-address-increment = <1>;
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_5000>;
nvmem-cell-names = "mac-address", "pre-calibration";
mac-address-increment = <1>;
};
}; };
&pinmux { &pinmux {
@ -252,24 +163,6 @@
}; };
&wmac { &wmac {
status = "okay";
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_1000>; nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_1000>;
nvmem-cell-names = "mac-address", "calibration"; nvmem-cell-names = "mac-address", "calibration";
}; };
&usb_phy0 {
status = "okay";
};
&usb0 {
status = "okay";
};
&usb_phy1 {
status = "okay";
};
&usb1 {
status = "okay";
};

View file

@ -0,0 +1,129 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2021 Cezary Jackiewicz
// Copyright (c) 2021, 2022 Lech Perczak
// Copyright (c) 2022 David Bauer <mail@david-bauer.net>
// Copyright (c) 2023 Andreas Böhler <dev@aboehler.at>
#include "qca9563_zte_mf28x.dtsi"
/ {
model = "ZTE MF282";
compatible = "zte,mf282", "qca,qca9563";
ubi-concat {
compatible = "mtd-concat";
devices = <&ubiconcat0 &ubiconcat1>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x0 0x7440000>;
label = "ubi";
};
};
};
};
&led_debug {
label = "blue:debug";
color = <LED_COLOR_ID_BLUE>;
};
&boot_flash {
partitions {
partition@0 {
label = "u-boot";
reg = <0x0 0x80000>;
read-only;
};
partition@80000 {
label = "u-boot-env";
reg = <0x80000 0x20000>;
read-only;
};
};
};
&system_flash {
partitions {
partition@0 {
label = "fota-flag";
reg = <0x000000 0x140000>;
read-only;
};
partition@140000 {
label = "caldata";
reg = <0x140000 0x140000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
cal_caldata_1000: cal@1000 {
reg = <0x1000 0x440>;
};
cal_caldata_5000: cal@5000 {
reg = <0x5000 0x844>;
};
};
partition@280000 {
label = "mac";
reg = <0x280000 0x140000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_mac_0: macaddr@0 {
reg = <0x0 0x6>;
};
};
/* This encompasses stock cfg-param, oops, web partitions,
* which can be overwritten safely
*/
ubiconcat0: partition@3c0000 {
label = "ubiconcat0";
reg = <0x3c0000 0xf40000>;
};
/* Kernel MTD size is increased to 8MB from stock 3MB */
partition@1300000 {
label = "kernel";
reg = <0x1300000 0x800000>;
};
/* This encompasses stock rootfs, data, fota partitions,
* which can be overwritten safely
*/
ubiconcat1: partition@1b00000 {
label = "ubiconcat1";
reg = <0x1b00000 0x6500000>;
};
};
};
&eth0 {
nvmem-cells = <&macaddr_mac_0>;
nvmem-cell-names = "mac-address";
};
&wifi_ath10k {
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_5000>;
nvmem-cell-names = "mac-address", "calibration";
mac-address-increment = <1>;
};
&wmac {
nvmem-cells = <&macaddr_mac_0>, <&cal_caldata_1000>;
nvmem-cell-names = "mac-address", "calibration";
};

View file

@ -1,36 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2021 Cezary Jackiewicz // Copyright (c) 2021 Cezary Jackiewicz
// Copyright (c) 2021, 2022 Lech Perczak // Copyright (c) 2021, 2022 Lech Perczak
#include "qca956x.dtsi" #include "qca9563_zte_mf28x.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ { / {
aliases {
led-boot = &led_debug;
led-failsafe = &led_debug;
led-running = &led_debug;
led-upgrade = &led_debug;
label-mac-device = &eth0;
};
leds { leds {
compatible = "gpio-leds";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&enable_wlan_led_gpio>; pinctrl-0 = <&enable_wlan_led_gpio>;
/* Hidden SMD LED below signal strength LEDs.
* Visible through slits underside of the case,
* and slightly through the case below signal state LEDs
*/
led_debug: led-0 {
function = LED_FUNCTION_DEBUG;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
default-state = "on";
};
led-1 { led-1 {
function = LED_FUNCTION_WLAN; function = LED_FUNCTION_WLAN;
color = <LED_COLOR_ID_BLUE>; color = <LED_COLOR_ID_BLUE>;
@ -40,22 +17,6 @@
}; };
keys { keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wifi { wifi {
label = "wifi"; label = "wifi";
linux,code = <KEY_RFKILL>; linux,code = <KEY_RFKILL>;
@ -63,72 +24,6 @@
debounce-interval = <60>; debounce-interval = <60>;
}; };
}; };
/* This GPIO is used to reset whole board _including_ the modem */
gpio-restart {
compatible = "gpio-restart";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
active-delay = <3000>;
inactive-delay = <1000>;
};
};
&spi {
status = "okay";
boot_flash: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
};
};
system_flash: flash@1 {
compatible = "spi-nand";
reg = <1>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
};
};
};
&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 */
>;
};
};
&eth0 {
status = "okay";
phy-mode = "sgmii";
phy-handle = <&phy0>;
};
&pcie {
status = "okay";
wifi_ath10k: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
};
}; };
&pinmux { &pinmux {
@ -136,23 +31,3 @@
pinctrl-single,bits = <0x10 0x0 0xff000000>; pinctrl-single,bits = <0x10 0x0 0xff000000>;
}; };
}; };
&wmac {
status = "okay";
};
&usb_phy0 {
status = "okay";
};
&usb0 {
status = "okay";
};
&usb_phy1 {
status = "okay";
};
&usb1 {
status = "okay";
};

View file

@ -0,0 +1,136 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2021 Cezary Jackiewicz
// Copyright (c) 2021, 2022 Lech Perczak
#include "qca956x.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
aliases {
led-boot = &led_debug;
led-failsafe = &led_debug;
led-running = &led_debug;
led-upgrade = &led_debug;
label-mac-device = &eth0;
};
leds {
compatible = "gpio-leds";
/* Hidden SMD LED below signal strength LEDs.
* Visible through slits underside of the case,
* and slightly through the case below signal state LEDs
*/
led_debug: led-0 {
function = LED_FUNCTION_DEBUG;
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
default-state = "on";
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
/* This GPIO is used to reset whole board _including_ the modem */
gpio-restart {
compatible = "gpio-restart";
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
active-delay = <3000>;
inactive-delay = <1000>;
};
};
&spi {
status = "okay";
boot_flash: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
};
};
system_flash: flash@1 {
compatible = "spi-nand";
reg = <1>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
};
};
};
&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 */
>;
};
};
&eth0 {
status = "okay";
phy-mode = "sgmii";
phy-handle = <&phy0>;
};
&pcie {
status = "okay";
wifi_ath10k: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
};
};
&wmac {
status = "okay";
};
&usb_phy0 {
status = "okay";
};
&usb0 {
status = "okay";
};
&usb_phy1 {
status = "okay";
};
&usb1 {
status = "okay";
};

View file

@ -390,6 +390,14 @@ define Device/zte_mf281
endef endef
TARGET_DEVICES += zte_mf281 TARGET_DEVICES += zte_mf281
define Device/zte_mf282
$(Device/zte_mf28x_common)
DEVICE_MODEL := MF282
DEVICE_PACKAGES += ath10k-firmware-qca988x-ct kmod-usb-net-qmi-wwan \
kmod-usb-serial-option uqmi
endef
TARGET_DEVICES += zte_mf282
define Device/zte_mf286 define Device/zte_mf286
$(Device/zte_mf28x_common) $(Device/zte_mf28x_common)
DEVICE_MODEL := MF286 DEVICE_MODEL := MF286

View file

@ -66,6 +66,10 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \ ucidef_add_switch "switch0" \
"0@eth0" "5:lan" "0@eth0" "5:lan"
;; ;;
zte,mf282)
ucidef_set_interface_lan "eth0"
ucidef_set_interface "wan" device "/dev/cdc-wdm0" protocol "qmi"
;;
zte,mf286|\ zte,mf286|\
zte,mf286a|\ zte,mf286a|\
zte,mf286r) zte,mf286r)

View file

@ -16,7 +16,7 @@ Submitted-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -830,6 +830,13 @@ static int at803x_aneg_done(struct phy_d @@ -959,6 +959,13 @@ static int at803x_aneg_done(struct phy_d
if (!(phy_read(phydev, AT803X_PSSR) & AT803X_PSSR_MR_AN_COMPLETE)) { if (!(phy_read(phydev, AT803X_PSSR) & AT803X_PSSR_MR_AN_COMPLETE)) {
phydev_warn(phydev, "803x_aneg_done: SGMII link is not ok\n"); phydev_warn(phydev, "803x_aneg_done: SGMII link is not ok\n");
aneg_done = 0; aneg_done = 0;

View file

@ -256,7 +256,6 @@ CONFIG_NO_HZ=y
CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_IDLE=y
CONFIG_NVMEM=y CONFIG_NVMEM=y
CONFIG_OABI_COMPAT=y
CONFIG_OF=y CONFIG_OF=y
CONFIG_OF_ADDRESS=y CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y CONFIG_OF_CONFIGFS=y

View file

@ -320,7 +320,6 @@ CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=4 CONFIG_NR_CPUS=4
CONFIG_NVMEM=y CONFIG_NVMEM=y
CONFIG_OABI_COMPAT=y
CONFIG_OF=y CONFIG_OF=y
CONFIG_OF_ADDRESS=y CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y CONFIG_OF_CONFIGFS=y

View file

@ -5,7 +5,7 @@ This prevents the options from being delete with make kernel_oldconfig.
--- a/drivers/bcma/Kconfig --- a/drivers/bcma/Kconfig
+++ b/drivers/bcma/Kconfig +++ b/drivers/bcma/Kconfig
@@ -32,6 +32,7 @@ config BCMA_HOST_PCI @@ -36,6 +36,7 @@ config BCMA_HOST_PCI
config BCMA_HOST_SOC config BCMA_HOST_SOC
bool "Support for BCMA in a SoC" bool "Support for BCMA in a SoC"
depends on HAS_IOMEM depends on HAS_IOMEM
@ -15,7 +15,7 @@ This prevents the options from being delete with make kernel_oldconfig.
the memory. This only works with the Broadcom SoCs from the the memory. This only works with the Broadcom SoCs from the
--- a/drivers/ssb/Kconfig --- a/drivers/ssb/Kconfig
+++ b/drivers/ssb/Kconfig +++ b/drivers/ssb/Kconfig
@@ -136,6 +136,7 @@ config SSB_SFLASH @@ -141,6 +141,7 @@ config SSB_SFLASH
config SSB_EMBEDDED config SSB_EMBEDDED
bool bool
depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE depends on SSB_DRIVER_MIPS && SSB_PCICORE_HOSTMODE

View file

@ -165,7 +165,6 @@ CONFIG_HW_RANDOM_BCM2835=y
CONFIG_HZ_FIXED=0 CONFIG_HZ_FIXED=0
CONFIG_HZ_PERIODIC=y CONFIG_HZ_PERIODIC=y
CONFIG_INITRAMFS_SOURCE="" CONFIG_INITRAMFS_SOURCE=""
CONFIG_IO_URING=y
CONFIG_IRQCHIP=y CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_DOMAIN_HIERARCHY=y

View file

@ -171,7 +171,6 @@ CONFIG_HW_RANDOM_BCM2835=y
CONFIG_HZ_FIXED=0 CONFIG_HZ_FIXED=0
CONFIG_HZ_PERIODIC=y CONFIG_HZ_PERIODIC=y
CONFIG_INITRAMFS_SOURCE="" CONFIG_INITRAMFS_SOURCE=""
CONFIG_IO_URING=y
CONFIG_IRQCHIP=y CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_DOMAIN_HIERARCHY=y

View file

@ -17,7 +17,7 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
--- a/drivers/bcma/sprom.c --- a/drivers/bcma/sprom.c
+++ b/drivers/bcma/sprom.c +++ b/drivers/bcma/sprom.c
@@ -165,7 +165,7 @@ static int bcma_sprom_valid(struct bcma_ @@ -170,7 +170,7 @@ static int bcma_sprom_valid(struct bcma_
return err; return err;
revision = sprom[words - 1] & SSB_SPROM_REVISION_REV; revision = sprom[words - 1] & SSB_SPROM_REVISION_REV;

View file

@ -16,7 +16,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
wps { wps {
label = "wps"; label = "wps";

View file

@ -19,7 +19,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
reset { reset {
label = "reset"; label = "reset";

View file

@ -27,7 +27,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
wps { wps {
label = "wps"; label = "wps";

View file

@ -19,7 +19,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
wps { wps {
label = "wps"; label = "wps";

View file

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6318-interrupt-controller.h> #include <dt-bindings/interrupt-controller/bcm6318-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6318-reset.h> #include <dt-bindings/reset/bcm6318-reset.h>
#include <dt-bindings/soc/bcm6318-pm.h> #include <dt-bindings/soc/bcm6318-pm.h>

View file

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm63268-interrupt-controller.h> #include <dt-bindings/interrupt-controller/bcm63268-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm63268-reset.h> #include <dt-bindings/reset/bcm63268-reset.h>
#include <dt-bindings/soc/bcm63268-pm.h> #include <dt-bindings/soc/bcm63268-pm.h>

View file

@ -18,7 +18,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
reset { reset {
label = "reset"; label = "reset";

View file

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6328-interrupt-controller.h> #include <dt-bindings/interrupt-controller/bcm6328-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6328-reset.h> #include <dt-bindings/reset/bcm6328-reset.h>
#include <dt-bindings/soc/bcm6328-pm.h> #include <dt-bindings/soc/bcm6328-pm.h>

View file

@ -18,7 +18,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
help { help {
label = "help"; label = "help";

View file

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6358-interrupt-controller.h> #include <dt-bindings/interrupt-controller/bcm6358-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6358-reset.h> #include <dt-bindings/reset/bcm6358-reset.h>
/ { / {

View file

@ -18,7 +18,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
reset { reset {
label = "reset"; label = "reset";

View file

@ -21,7 +21,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
wlan { wlan {
label = "wlan"; label = "wlan";

View file

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6362-interrupt-controller.h> #include <dt-bindings/interrupt-controller/bcm6362-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6362-reset.h> #include <dt-bindings/reset/bcm6362-reset.h>
#include <dt-bindings/soc/bcm6362-pm.h> #include <dt-bindings/soc/bcm6362-pm.h>

View file

@ -18,7 +18,7 @@
keys { keys {
compatible = "gpio-keys-polled"; compatible = "gpio-keys-polled";
poll-interval = <20>; poll-interval = <100>;
reset { reset {
label = "reset"; label = "reset";

View file

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6368-interrupt-controller.h> #include <dt-bindings/interrupt-controller/bcm6368-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6368-reset.h> #include <dt-bindings/reset/bcm6368-reset.h>
/ { / {

View file

@ -81,4 +81,9 @@
#define BCM6318_IRQ_EPHY2_IDDQ_ENERGY 78 #define BCM6318_IRQ_EPHY2_IDDQ_ENERGY 78
#define BCM6318_IRQ_EPHY3_IDDQ_ENERGY 79 #define BCM6318_IRQ_EPHY3_IDDQ_ENERGY 79
#define BCM6318_EXTIRQ_0 0 /* GPIO 33 */
#define BCM6318_EXTIRQ_1 1
#define BCM6318_EXTIRQ_2 2
#define BCM6318_EXTIRQ_3 3
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6318_H */ #endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6318_H */

View file

@ -83,4 +83,9 @@
#define BCM63268_IRQ_ATM_DMA19 79 #define BCM63268_IRQ_ATM_DMA19 79
#define BCM63268_IRQ_LSSPI 80 #define BCM63268_IRQ_LSSPI 80
#define BCM63268_EXTIRQ_0 0 /* GPIO 32 */
#define BCM63268_EXTIRQ_1 1 /* GPIO 33 */
#define BCM63268_EXTIRQ_2 2 /* GPIO 34 */
#define BCM63268_EXTIRQ_3 3 /* GPIO 35 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM63268_H */ #endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM63268_H */

View file

@ -65,4 +65,9 @@
#define BCM6328_IRQ_ATM_DMA19 62 #define BCM6328_IRQ_ATM_DMA19 62
#define BCM6328_IRQ_SAR 63 #define BCM6328_IRQ_SAR 63
#define BCM6328_EXTIRQ_0 0 /* GPIO 23 */
#define BCM6328_EXTIRQ_1 1 /* GPIO 24 */
#define BCM6328_EXTIRQ_2 2 /* GPIO 15 */
#define BCM6328_EXTIRQ_3 3 /* GPIO 12 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6328_H */ #endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6328_H */

View file

@ -35,4 +35,11 @@
#define BCM6358_IRQ_DG 30 #define BCM6358_IRQ_DG 30
#define BCM6358_IRQ_MPI 31 #define BCM6358_IRQ_MPI 31
#define BCM6358_EXTIRQ0_0 0 /* GPIO 34 */
#define BCM6358_EXTIRQ0_1 1 /* GPIO 35 */
#define BCM6358_EXTIRQ0_2 2 /* GPIO 36 */
#define BCM6358_EXTIRQ0_3 3 /* GPIO 37 */
#define BCM6358_EXTIRQ1_4 0 /* GPIO 32 */
#define BCM6358_EXTIRQ1_5 1 /* GPIO 33 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6358_H */ #endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6358_H */

View file

@ -68,4 +68,9 @@
#define BCM6362_IRQ_ATM_DMA18 62 #define BCM6362_IRQ_ATM_DMA18 62
#define BCM6362_IRQ_ATM_DMA19 63 #define BCM6362_IRQ_ATM_DMA19 63
#define BCM6362_EXTIRQ_0 0 /* GPIO 24 */
#define BCM6362_EXTIRQ_1 1 /* GPIO 25 */
#define BCM6362_EXTIRQ_2 2 /* GPIO 26 */
#define BCM6362_EXTIRQ_3 3 /* GPIO 27 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6362_H */ #endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6362_H */

View file

@ -68,4 +68,11 @@
#define BCM6368_IRQ_PCM_DMA0 62 #define BCM6368_IRQ_PCM_DMA0 62
#define BCM6368_IRQ_PCM_DMA1 63 #define BCM6368_IRQ_PCM_DMA1 63
#define BCM6368_EXTIRQ0_0 0 /* GPIO 34 */
#define BCM6368_EXTIRQ0_1 1 /* GPIO 35 */
#define BCM6368_EXTIRQ0_2 2 /* GPIO 36 */
#define BCM6368_EXTIRQ0_3 3 /* GPIO 37 */
#define BCM6368_EXTIRQ1_4 0 /* GPIO 32 */
#define BCM6368_EXTIRQ1_5 1 /* GPIO 33 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6368_H */ #endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6368_H */

View file

@ -73,7 +73,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o
--- /dev/null --- /dev/null
+++ b/drivers/irqchip/irq-bcm6345-ext.c +++ b/drivers/irqchip/irq-bcm6345-ext.c
@@ -0,0 +1,299 @@ @@ -0,0 +1,280 @@
+/* +/*
+ * This file is subject to the terms and conditions of the GNU General Public + * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive + * License. See the file "COPYING" in the main directory of this archive
@ -94,14 +94,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+#include <linux/slab.h> +#include <linux/slab.h>
+#include <linux/spinlock.h> +#include <linux/spinlock.h>
+ +
+#ifdef CONFIG_BCM63XX
+#include <asm/mach-bcm63xx/bcm63xx_irq.h>
+
+#define VIRQ_BASE IRQ_EXTERNAL_BASE
+#else
+#define VIRQ_BASE 0
+#endif
+
+#define MAX_IRQS 4 +#define MAX_IRQS 4
+ +
+#define EXTIRQ_CFG_SENSE 0 +#define EXTIRQ_CFG_SENSE 0
@ -271,7 +263,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+{ +{
+ struct intc_data *data; + struct intc_data *data;
+ unsigned int i; + unsigned int i;
+ int start = VIRQ_BASE;
+ +
+ data = kzalloc(sizeof(*data), GFP_KERNEL); + data = kzalloc(sizeof(*data), GFP_KERNEL);
+ if (!data) + if (!data)
@ -296,17 +287,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+ data->chip.irq_unmask = bcm6345_ext_intc_irq_unmask; + data->chip.irq_unmask = bcm6345_ext_intc_irq_unmask;
+ data->chip.irq_set_type = bcm6345_ext_intc_set_type; + data->chip.irq_set_type = bcm6345_ext_intc_set_type;
+ +
+ /* + data->domain = irq_domain_add_linear(node, num_irqs,
+ * If we have less than 4 irqs, this is the second controller on
+ * bcm63xx. So increase the VIRQ start to not overlap with the first
+ * one, but only do so if we actually use a non-zero start.
+ *
+ * This can be removed when bcm63xx has no legacy users anymore.
+ */
+ if (start && num_irqs < 4)
+ start += 4;
+
+ data->domain = irq_domain_add_simple(node, num_irqs, start,
+ &bcm6345_ext_domain_ops, data); + &bcm6345_ext_domain_ops, data);
+ if (!data->domain) { + if (!data->domain) {
+ kfree(data); + kfree(data);

View file

@ -216,7 +216,6 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
CONFIG_IOMMU_SUPPORT=y CONFIG_IOMMU_SUPPORT=y
CONFIG_IO_URING=y
CONFIG_IPC_NS=y CONFIG_IPC_NS=y
CONFIG_IRQCHIP=y CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN=y

View file

@ -217,7 +217,6 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
CONFIG_IOMMU_SUPPORT=y CONFIG_IOMMU_SUPPORT=y
CONFIG_IO_URING=y
CONFIG_IPC_NS=y CONFIG_IPC_NS=y
CONFIG_IRQCHIP=y CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN=y

View file

@ -677,7 +677,7 @@
#if IS_ENABLED(CONFIG_NF_CONNTRACK) #if IS_ENABLED(CONFIG_NF_CONNTRACK)
#include <linux/netfilter/nf_conntrack_common.h> #include <linux/netfilter/nf_conntrack_common.h>
#endif #endif
@@ -786,7 +787,8 @@ struct sk_buff { @@ -787,7 +788,8 @@ struct sk_buff {
fclone:2, fclone:2,
peeked:1, peeked:1,
head_frag:1, head_frag:1,
@ -687,7 +687,7 @@
#ifdef CONFIG_SKB_EXTENSIONS #ifdef CONFIG_SKB_EXTENSIONS
__u8 active_extensions; __u8 active_extensions;
#endif #endif
@@ -3029,9 +3031,15 @@ static inline void skb_frag_ref(struct s @@ -3030,9 +3032,15 @@ static inline void skb_frag_ref(struct s
* *
* Releases a reference on the paged fragment @frag. * Releases a reference on the paged fragment @frag.
*/ */
@ -705,7 +705,7 @@
} }
/** /**
@@ -3043,7 +3051,7 @@ static inline void __skb_frag_unref(skb_ @@ -3044,7 +3052,7 @@ static inline void __skb_frag_unref(skb_
*/ */
static inline void skb_frag_unref(struct sk_buff *skb, int f) static inline void skb_frag_unref(struct sk_buff *skb, int f)
{ {
@ -714,7 +714,7 @@
} }
/** /**
@@ -4642,5 +4650,12 @@ static inline u64 skb_get_kcov_handle(st @@ -4643,5 +4651,12 @@ static inline u64 skb_get_kcov_handle(st
#endif #endif
} }

View file

@ -24,8 +24,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/io.h> #include <linux/io.h>
@@ -228,11 +229,65 @@ static const struct b53_io_ops b53_mmap_ @@ -242,11 +243,65 @@ static const struct b53_io_ops b53_mmap_
.write64 = b53_mmap_write64, .phy_write16 = b53_mmap_phy_write16,
}; };
+static int b53_mmap_probe_of(struct platform_device *pdev, +static int b53_mmap_probe_of(struct platform_device *pdev,

View file

@ -40,7 +40,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
return !!(pmd_val(pmd) & _PAGE_ACCESSED); return !!(pmd_val(pmd) & _PAGE_ACCESSED);
--- a/arch/riscv/include/asm/pgtable.h --- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h
@@ -531,6 +531,7 @@ static inline int pmd_dirty(pmd_t pmd) @@ -535,6 +535,7 @@ static inline int pmd_dirty(pmd_t pmd)
return pte_dirty(pmd_pte(pmd)); return pte_dirty(pmd_pte(pmd));
} }

View file

@ -354,7 +354,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
static void mem_cgroup_css_free(struct cgroup_subsys_state *css) static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -7645,6 +7645,7 @@ static void __init free_area_init_node(i @@ -7661,6 +7661,7 @@ static void __init free_area_init_node(i
pgdat_set_deferred_range(pgdat); pgdat_set_deferred_range(pgdat);
free_area_init_core(pgdat); free_area_init_core(pgdat);

View file

@ -21,7 +21,7 @@ Signed-off-by: Alexei Starovoitov <ast@kernel.org>
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h +++ b/include/linux/skbuff.h
@@ -567,6 +567,7 @@ struct skb_shared_info { @@ -568,6 +568,7 @@ struct skb_shared_info {
* Warning : all fields before dataref are cleared in __alloc_skb() * Warning : all fields before dataref are cleared in __alloc_skb()
*/ */
atomic_t dataref; atomic_t dataref;

View file

@ -1,3 +1,20 @@
From f5d43ddd334b7c32fcaed9ba46afbd85cb467f1f Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Sun, 19 Mar 2023 12:56:28 +0000
Subject: [PATCH] net: ethernet: mtk_eth_soc: add support for MT7981 SoC
The MediaTek MT7981 SoC comes with two 1G/2.5G SGMII ports, just like
MT7986.
In addition MT7981 is equipped with a built-in 1000Base-T PHY which can
be used with GMAC1.
As many MT7981 boards make use of inverting SGMII signal polarity, add
new device-tree attribute 'mediatek,pn_swap' to support them.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/ethernet/mediatek/mtk_eth_path.c --- a/drivers/net/ethernet/mediatek/mtk_eth_path.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c
@@ -96,12 +96,20 @@ static int set_mux_gmac2_gmac0_to_gephy( @@ -96,12 +96,20 @@ static int set_mux_gmac2_gmac0_to_gephy(

Some files were not shown because too many files have changed in this diff Show more