mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-16 17:01:37 +00:00
ipq9574: update kernel and network drivers to v5.4
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
parent
aa245da361
commit
8706a596e1
37
feeds/ipq95xx/ath11k-firmware/Makefile
Normal file
37
feeds/ipq95xx/ath11k-firmware/Makefile
Normal file
@ -0,0 +1,37 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ath11k-firmware
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=main
|
||||
PKG_SOURCE_URL:=https://github.com/quic/upstream-wifi-fw.git
|
||||
PKG_MIRROR_HASH:=557505744764b0442c887be3f5bb0ce924323d785b6d207899f19fad992a6020
|
||||
PKG_SOURCE_VERSION:=3417bb86645c5ff4c58258db7cc33e43260b4222
|
||||
|
||||
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/ath11k-firmware-default
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
URL:=$(PKG_SOURCE_URL)
|
||||
DEPENDS:=
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq95xx
|
||||
$(Package/ath11k-firmware-default)
|
||||
TITLE:=ath11k firmware for IPQ95xx devices
|
||||
DEPENDS:=@TARGET_ipq95xx
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
|
||||
endef
|
||||
|
||||
define Package/ath11k-firmware-ipq95xx/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/IPQ9574/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ath11k-firmware/IPQ9574/hw1.0/2.9.0.1/WLAN.HK.2.9.0.1-01890-QCAHKSWPL_SILICONZ-1/* \
|
||||
$(1)/lib/firmware/IPQ9574/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ath11k-firmware-ipq95xx))
|
||||
36
feeds/ipq95xx/ath11k-wifi/Makefile
Normal file
36
feeds/ipq95xx/ath11k-wifi/Makefile
Normal file
@ -0,0 +1,36 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/version.mk
|
||||
|
||||
PKG_NAME:=ath11k-wifi
|
||||
PKG_RELEASE:=1
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
|
||||
endef
|
||||
|
||||
define Package/ath11k-wifi-default
|
||||
SUBMENU:=ath11k Board-Specific Overrides
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
DEPENDS:=@TARGET_ipq95xx
|
||||
TITLE:=Custom Board
|
||||
endef
|
||||
|
||||
define Package/ath11k-wifi-qcom-ipq95xx
|
||||
$(call Package/ath11k-wifi-default)
|
||||
TITLE:=board-2.bin for QCOM IPQ9574 eval kits
|
||||
endef
|
||||
|
||||
define Package/ath11k-wifi-qcom-ipq95xx/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ9574/hw1.0/
|
||||
$(INSTALL_DATA) ./board-2.bin.IPQ9574 $(1)/lib/firmware/ath11k/IPQ9574/hw1.0/board-2.bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ath11k-wifi-qcom-ipq95xx))
|
||||
BIN
feeds/ipq95xx/ath11k-wifi/board-2.bin.IPQ9574
Normal file
BIN
feeds/ipq95xx/ath11k-wifi/board-2.bin.IPQ9574
Normal file
Binary file not shown.
37
feeds/ipq95xx/ath12k-firmware/Makefile
Normal file
37
feeds/ipq95xx/ath12k-firmware/Makefile
Normal file
@ -0,0 +1,37 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ath12k-firmware
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=main
|
||||
PKG_SOURCE_URL:=https://github.com/quic/upstream-wifi-fw.git
|
||||
PKG_MIRROR_HASH:=ade4287ff2935ad1d54e5dabb8e6de28f648d0974fa76238fcc1616235e6773e
|
||||
PKG_SOURCE_VERSION:=3417bb86645c5ff4c58258db7cc33e43260b4222
|
||||
|
||||
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/ath12k-firmware-default
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
URL:=$(PKG_SOURCE_URL)
|
||||
DEPENDS:=
|
||||
endef
|
||||
|
||||
define Package/ath12k-firmware-qcn92xx
|
||||
$(Package/ath12k-firmware-default)
|
||||
TITLE:=ath12k firmware for qcn92xx devices
|
||||
DEPENDS:=@TARGET_ipq95xx
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
|
||||
endef
|
||||
|
||||
define Package/ath12k-firmware-qcn92xx/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN92XX/hw2.0
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ath12k-firmware/QCN9274/hw2.0/1.1.1/WLAN.WBE.1.1.1-00126-QCAHKSWPL_SILICONZ-1/* \
|
||||
$(1)/lib/firmware/ath12k/QCN92XX/hw2.0
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ath12k-firmware-qcn92xx))
|
||||
36
feeds/ipq95xx/ath12k-wifi/Makefile
Normal file
36
feeds/ipq95xx/ath12k-wifi/Makefile
Normal file
@ -0,0 +1,36 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/version.mk
|
||||
|
||||
PKG_NAME:=ath12k-wifi
|
||||
PKG_RELEASE:=1
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Build/Prepare
|
||||
mkdir -p $(PKG_BUILD_DIR)
|
||||
endef
|
||||
|
||||
define Build/Compile
|
||||
|
||||
endef
|
||||
|
||||
define Package/ath12k-wifi-default
|
||||
SUBMENU:=ath12k Board-Specific Overrides
|
||||
SECTION:=firmware
|
||||
CATEGORY:=Firmware
|
||||
DEPENDS:=@TARGET_qcn9274
|
||||
TITLE:=Custom Board
|
||||
endef
|
||||
|
||||
define Package/ath12k-wifi-qcom-qcn9274
|
||||
$(call Package/ath12k-wifi-default)
|
||||
TITLE:=board-2.bin for QCOM QCN9274 eval kits
|
||||
endef
|
||||
|
||||
define Package/ath12k-wifi-qcom-qcn9274/install
|
||||
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN9274/hw1.0/
|
||||
$(INSTALL_DATA) ./board-2.bin.QCN9274 $(1)/lib/firmware/ath12k/QCN9274/hw1.0/board-2.bin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,ath12k-wifi-qcom-qcn9274))
|
||||
BIN
feeds/ipq95xx/ath12k-wifi/board-2.bin.IPQ9574
Normal file
BIN
feeds/ipq95xx/ath12k-wifi/board-2.bin.IPQ9574
Normal file
Binary file not shown.
BIN
feeds/ipq95xx/ath12k-wifi/board-2.bin.QCN9274
Executable file
BIN
feeds/ipq95xx/ath12k-wifi/board-2.bin.QCN9274
Executable file
Binary file not shown.
@ -12,15 +12,16 @@ SUBTARGETS:=generic ipq95xx_32
|
||||
KERNELNAME:=zImage Image dtbs
|
||||
|
||||
KERNEL_PATCHVER:=5.4
|
||||
KERNEL_NAME_SUFFIX=-qsdk-879aa8d1f540d2357674beed0069e4450946b831
|
||||
KERNEL_NAME_SUFFIX=-qsdk-f2ee796db820cd8261889849f043c9c816196452
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
DEFAULT_PACKAGES += \
|
||||
uboot-envtools kmod-leds-gpio kmod-gpio-button-hotplug kmod-button-hotplug \
|
||||
kmod-usb3 swconfig \
|
||||
kmod-usb3 swconfig kmod-qca-nss-dp \
|
||||
kmod-usb-phy-ipq807x kmod-usb-dwc3-qcom-internal \
|
||||
kmod-qca-nss-ppe kmod-qca-ssdk-nohnat kmod-qca-psdk kmod-qca-nss-dp \
|
||||
kmod-qca-nss-ppe kmod-qca-ssdk-nohnat kmod-qca-psdk \
|
||||
kmod-gpio-button-hotplug iwinfo uboot-envtools swconfig \
|
||||
kmod-ath11k-ahb ath11k-firmware-ipq95xx \
|
||||
kmod-ath12k ath12k-firmware-qcn92xx wpad-openssl \
|
||||
-procd-ujail
|
||||
|
||||
|
||||
41
feeds/ipq95xx/ipq95xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
Executable file
41
feeds/ipq95xx/ipq95xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata
Executable file
@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
export >> /tmp/foo
|
||||
|
||||
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
||||
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
caldata_die() {
|
||||
echo "caldata: " "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
caldata_extract() {
|
||||
local part=$1
|
||||
local offset=$(($2))
|
||||
local count=$(($3))
|
||||
local mtd
|
||||
|
||||
mtd=$(find_mtd_chardev $part)
|
||||
[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
|
||||
|
||||
dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
|
||||
caldata_die "failed to extract calibration data from $mtd"
|
||||
}
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$FIRMWARE" in
|
||||
ath11k/IPQ9574/hw1.0/caldata.bin)
|
||||
case "$board" in
|
||||
qcom,ipq9574-ap-al02-c15)
|
||||
caldata_extract "0:ART" 0x1000 0x20000
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
41
feeds/ipq95xx/ipq95xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata
Executable file
41
feeds/ipq95xx/ipq95xx/base-files/etc/hotplug.d/firmware/10-ath12k-caldata
Executable file
@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
export >> /tmp/foo
|
||||
|
||||
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
||||
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
caldata_die() {
|
||||
echo "caldata: " "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
caldata_extract() {
|
||||
local part=$1
|
||||
local offset=$(($2))
|
||||
local count=$(($3))
|
||||
local mtd
|
||||
|
||||
mtd=$(find_mtd_chardev $part)
|
||||
[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
|
||||
|
||||
dd if=$mtd of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
|
||||
caldata_die "failed to extract calibration data from $mtd"
|
||||
}
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$FIRMWARE" in
|
||||
ath12k/QCN92XX/hw1.0/cal-pci-0002:01:00.0.bin)
|
||||
case "$board" in
|
||||
_qcom,ipq9574-ap-al02-c4)
|
||||
caldata_extract "0:ART" 0x1000 0x20000
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
391
feeds/ipq95xx/ipq95xx/base-files/lib/upgrade/nand.sh
Normal file
391
feeds/ipq95xx/ipq95xx/base-files/lib/upgrade/nand.sh
Normal file
@ -0,0 +1,391 @@
|
||||
# Copyright (C) 2014 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions.sh
|
||||
|
||||
# 'kernel' partition or UBI volume on NAND contains the kernel
|
||||
CI_KERNPART="${CI_KERNPART:-kernel}"
|
||||
|
||||
# 'ubi' partition on NAND contains UBI
|
||||
CI_UBIPART="${CI_UBIPART:-ubi}"
|
||||
|
||||
# 'rootfs' UBI volume on NAND contains the rootfs
|
||||
CI_ROOTPART="${CI_ROOTPART:-rootfs}"
|
||||
|
||||
# ipq807x qsdk kernel misbehaves
|
||||
CI_IPQ807X=0
|
||||
|
||||
# update BOOTCONFIG partitions (rotate rootfs/rootfs_1)
|
||||
CI_BOOTCFG=0
|
||||
|
||||
# update uboot-env if upgrade suceeded
|
||||
CI_FWSETENV=
|
||||
|
||||
ubi_mknod() {
|
||||
local dir="$1"
|
||||
local dev="/dev/$(basename $dir)"
|
||||
|
||||
[ -e "$dev" ] && return 0
|
||||
|
||||
local devid="$(cat $dir/dev)"
|
||||
local major="${devid%%:*}"
|
||||
local minor="${devid##*:}"
|
||||
mknod "$dev" c $major $minor
|
||||
}
|
||||
|
||||
nand_find_volume() {
|
||||
local ubidevdir ubivoldir
|
||||
ubidevdir="/sys/devices/virtual/ubi/$1"
|
||||
[ ! -d "$ubidevdir" ] && return 1
|
||||
for ubivoldir in $ubidevdir/${1}_*; do
|
||||
[ ! -d "$ubivoldir" ] && continue
|
||||
if [ "$( cat $ubivoldir/name )" = "$2" ]; then
|
||||
basename $ubivoldir
|
||||
ubi_mknod "$ubivoldir"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
nand_find_ubi() {
|
||||
local ubidevdir ubidev mtdnum
|
||||
mtdnum="$( find_mtd_index $1 )"
|
||||
[ ! "$mtdnum" ] && return 1
|
||||
for ubidevdir in /sys/devices/virtual/ubi/ubi*; do
|
||||
[ ! -d "$ubidevdir" ] && continue
|
||||
cmtdnum="$( cat $ubidevdir/mtd_num )"
|
||||
[ ! "$mtdnum" ] && continue
|
||||
if [ "$mtdnum" = "$cmtdnum" ]; then
|
||||
ubidev=$( basename $ubidevdir )
|
||||
ubi_mknod "$ubidevdir"
|
||||
echo $ubidev
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
nand_get_magic_long() {
|
||||
dd if="$1" skip=$2 bs=4 count=1 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
|
||||
get_magic_long_tar() {
|
||||
( tar xf $1 $2 -O | dd bs=4 count=1 | hexdump -v -n 4 -e '1/1 "%02x"') 2> /dev/null
|
||||
}
|
||||
|
||||
identify_magic() {
|
||||
local magic=$1
|
||||
case "$magic" in
|
||||
"55424923")
|
||||
echo "ubi"
|
||||
;;
|
||||
"31181006")
|
||||
echo "ubifs"
|
||||
;;
|
||||
"68737173")
|
||||
echo "squashfs"
|
||||
;;
|
||||
"d00dfeed")
|
||||
echo "fit"
|
||||
;;
|
||||
"4349"*)
|
||||
echo "combined"
|
||||
;;
|
||||
*)
|
||||
echo "unknown $magic"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
identify() {
|
||||
identify_magic $(nand_get_magic_long "$1" "${2:-0}")
|
||||
}
|
||||
|
||||
identify_tar() {
|
||||
identify_magic $(get_magic_long_tar "$1" "$2")
|
||||
}
|
||||
|
||||
nand_restore_config() {
|
||||
sync
|
||||
local ubidev=$( nand_find_ubi $CI_UBIPART )
|
||||
local ubivol="$( nand_find_volume $ubidev rootfs_data )"
|
||||
[ ! "$ubivol" ] &&
|
||||
ubivol="$( nand_find_volume $ubidev $CI_ROOTPART )"
|
||||
mkdir /tmp/new_root
|
||||
if ! mount -t ubifs /dev/$ubivol /tmp/new_root; then
|
||||
echo "mounting ubifs $ubivol failed"
|
||||
rmdir /tmp/new_root
|
||||
return 1
|
||||
fi
|
||||
mv "$1" "/tmp/new_root/$BACKUP_FILE"
|
||||
umount /tmp/new_root
|
||||
sync
|
||||
rmdir /tmp/new_root
|
||||
}
|
||||
|
||||
nand_upgrade_prepare_ubi() {
|
||||
local rootfs_length="$1"
|
||||
local rootfs_type="$2"
|
||||
local rootfs_data_max="$(fw_printenv -n rootfs_data_max 2>/dev/null)"
|
||||
[ -n "$rootfs_data_max" ] && rootfs_data_max=$(printf %d "$rootfs_data_max")
|
||||
|
||||
local kernel_length="$3"
|
||||
local has_env="${4:-0}"
|
||||
|
||||
[ -n "$rootfs_length" -o -n "$kernel_length" ] || return 1
|
||||
|
||||
local mtdnum="$( find_mtd_index "$CI_UBIPART" )"
|
||||
if [ ! "$mtdnum" ]; then
|
||||
echo "cannot find ubi mtd partition $CI_UBIPART"
|
||||
return 1
|
||||
fi
|
||||
|
||||
[ "$CI_IPQ807X" = 1 ] && ubidetach -f -m $mtdnum
|
||||
|
||||
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
|
||||
if [ ! "$ubidev" ]; then
|
||||
ubiattach -m "$mtdnum"
|
||||
sync
|
||||
ubidev="$( nand_find_ubi "$CI_UBIPART" )"
|
||||
fi
|
||||
|
||||
if [ ! "$ubidev" ]; then
|
||||
ubiformat /dev/mtd$mtdnum -y
|
||||
ubiattach -m "$mtdnum"
|
||||
sync
|
||||
ubidev="$( nand_find_ubi "$CI_UBIPART" )"
|
||||
[ "$has_env" -gt 0 ] && {
|
||||
ubimkvol /dev/$ubidev -n 0 -N ubootenv -s 1MiB
|
||||
ubimkvol /dev/$ubidev -n 1 -N ubootenv2 -s 1MiB
|
||||
}
|
||||
fi
|
||||
|
||||
local kern_ubivol="$( nand_find_volume $ubidev $CI_KERNPART )"
|
||||
local root_ubivol="$( nand_find_volume $ubidev $CI_ROOTPART )"
|
||||
local data_ubivol="$( nand_find_volume $ubidev rootfs_data )"
|
||||
|
||||
local ubiblk ubiblkvol
|
||||
for ubiblk in /dev/ubiblock*_? ; do
|
||||
[ -e "$ubiblk" ] || continue
|
||||
echo "removing ubiblock${ubiblk:13}"
|
||||
ubiblkvol=ubi${ubiblk:13}
|
||||
if ! ubiblock -r /dev/$ubiblkvol; then
|
||||
echo "cannot remove $ubiblk"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
|
||||
# kill volumes
|
||||
[ "$kern_ubivol" ] && ubirmvol /dev/$ubidev -N $CI_KERNPART || true
|
||||
[ "$root_ubivol" -a "$root_ubivol" != "$kern_ubivol" ] && ubirmvol /dev/$ubidev -N $CI_ROOTPART || true
|
||||
[ "$data_ubivol" ] && ubirmvol /dev/$ubidev -N rootfs_data || true
|
||||
|
||||
# update kernel
|
||||
if [ -n "$kernel_length" ]; then
|
||||
if ! ubimkvol /dev/$ubidev -N $CI_KERNPART -s $kernel_length; then
|
||||
echo "cannot create kernel volume"
|
||||
return 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
# update rootfs
|
||||
if [ -n "$rootfs_length" ]; then
|
||||
local rootfs_size_param
|
||||
if [ "$rootfs_type" = "ubifs" ]; then
|
||||
rootfs_size_param="-m"
|
||||
else
|
||||
rootfs_size_param="-s $rootfs_length"
|
||||
fi
|
||||
if ! ubimkvol /dev/$ubidev -N $CI_ROOTPART $rootfs_size_param; then
|
||||
echo "cannot create rootfs volume"
|
||||
return 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
# create rootfs_data for non-ubifs rootfs
|
||||
if [ "$rootfs_type" != "ubifs" ]; then
|
||||
local availeb=$(cat /sys/devices/virtual/ubi/$ubidev/avail_eraseblocks)
|
||||
local ebsize=$(cat /sys/devices/virtual/ubi/$ubidev/eraseblock_size)
|
||||
local avail_size=$(( $availeb * $ebsize ))
|
||||
local rootfs_data_size_param="-m"
|
||||
if [ -n "$rootfs_data_max" ] &&
|
||||
[ "$rootfs_data_max" != "0" ] &&
|
||||
[ "$rootfs_data_max" -le "$avail_size" ]; then
|
||||
rootfs_data_size_param="-s $rootfs_data_max"
|
||||
fi
|
||||
if ! ubimkvol /dev/$ubidev -N rootfs_data $rootfs_data_size_param; then
|
||||
echo "cannot initialize rootfs_data volume"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
sync
|
||||
return 0
|
||||
}
|
||||
|
||||
nand_qca_update_bootconfig() {
|
||||
local primary="0"
|
||||
local mtdnum
|
||||
local part
|
||||
|
||||
[ -f /proc/boot_info/rootfs/primaryboot ] || return
|
||||
[ -f /proc/boot_info/getbinary_bootconfig ] || return
|
||||
|
||||
[ "$(cat /proc/boot_info/rootfs/primaryboot)" = "0" ] && primary="1"
|
||||
echo "$primary" > /proc/boot_info/rootfs/primaryboot 2>/dev/null
|
||||
|
||||
for part in "0:BOOTCONFIG" "0:BOOTCONFIG1"; do
|
||||
mtdnum="$(find_mtd_index "$part")"
|
||||
[ -c "/dev/mtd${mtdnum}" ] && {
|
||||
mtd -qq write /proc/boot_info/getbinary_bootconfig \
|
||||
"/dev/mtd${mtdnum}" 2>/dev/null &&\
|
||||
echo "partition '$part' updated"
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
nand_do_upgrade_success() {
|
||||
local conf_tar="/tmp/sysupgrade.tgz"
|
||||
sync
|
||||
[ "$CI_BOOTCFG" = 1 ] && nand_qca_update_bootconfig
|
||||
[ -n "$CI_FWSETENV" ] && fw_setenv $CI_FWSETENV
|
||||
[ -f "$conf_tar" ] && nand_restore_config "$conf_tar"
|
||||
echo "sysupgrade successful"
|
||||
umount -a
|
||||
reboot -f
|
||||
}
|
||||
|
||||
# Flash the UBI image to MTD partition
|
||||
nand_upgrade_ubinized() {
|
||||
local ubi_file="$1"
|
||||
local mtdnum="$(find_mtd_index "$CI_UBIPART")"
|
||||
|
||||
[ ! "$mtdnum" ] && {
|
||||
CI_UBIPART="rootfs"
|
||||
mtdnum="$(find_mtd_index "$CI_UBIPART")"
|
||||
}
|
||||
|
||||
if [ ! "$mtdnum" ]; then
|
||||
echo "cannot find mtd device $CI_UBIPART"
|
||||
umount -a
|
||||
reboot -f
|
||||
fi
|
||||
|
||||
local mtddev="/dev/mtd${mtdnum}"
|
||||
ubidetach -p "${mtddev}" || true
|
||||
sync
|
||||
ubiformat "${mtddev}" -y -f "${ubi_file}"
|
||||
ubiattach -p "${mtddev}"
|
||||
nand_do_upgrade_success
|
||||
}
|
||||
|
||||
# Write the UBIFS image to UBI volume
|
||||
nand_upgrade_ubifs() {
|
||||
local rootfs_length=$( (cat $1 | wc -c) 2> /dev/null)
|
||||
|
||||
nand_upgrade_prepare_ubi "$rootfs_length" "ubifs" "" ""
|
||||
|
||||
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
|
||||
local root_ubivol="$(nand_find_volume $ubidev $CI_ROOTPART)"
|
||||
ubiupdatevol /dev/$root_ubivol -s $rootfs_length $1
|
||||
|
||||
nand_do_upgrade_success
|
||||
}
|
||||
|
||||
nand_upgrade_fit() {
|
||||
local fit_file="$1"
|
||||
local fit_length="$(wc -c < "$fit_file")"
|
||||
|
||||
nand_upgrade_prepare_ubi "" "" "$fit_length" "1"
|
||||
|
||||
local fit_ubidev="$(nand_find_ubi "$CI_UBIPART")"
|
||||
local fit_ubivol="$(nand_find_volume $fit_ubidev "$CI_KERNPART")"
|
||||
ubiupdatevol /dev/$fit_ubivol -s $fit_length $fit_file
|
||||
|
||||
nand_do_upgrade_success
|
||||
}
|
||||
|
||||
nand_upgrade_tar() {
|
||||
local tar_file="$1"
|
||||
local kernel_mtd="$(find_mtd_index $CI_KERNPART)"
|
||||
|
||||
local board_dir=$(tar tf "$tar_file" | grep -m 1 '^sysupgrade-.*/$')
|
||||
board_dir=${board_dir%/}
|
||||
|
||||
kernel_length=$( (tar xf "$tar_file" ${board_dir}/kernel -O | wc -c) 2> /dev/null)
|
||||
local has_rootfs=0
|
||||
local rootfs_length
|
||||
local rootfs_type
|
||||
|
||||
tar tf "$tar_file" ${board_dir}/root 1>/dev/null 2>/dev/null && has_rootfs=1
|
||||
[ "$has_rootfs" = "1" ] && {
|
||||
rootfs_length=$( (tar xf "$tar_file" ${board_dir}/root -O | wc -c) 2> /dev/null)
|
||||
rootfs_type="$(identify_tar "$tar_file" ${board_dir}/root)"
|
||||
}
|
||||
|
||||
local has_kernel=1
|
||||
local has_env=0
|
||||
|
||||
[ "$CI_IPQ807X" = 0 -a "$kernel_length" != 0 -a -n "$kernel_mtd" ] && {
|
||||
tar xf $tar_file ${board_dir}/kernel -O | mtd write - $CI_KERNPART
|
||||
}
|
||||
[ "$CI_IPQ807X" = 0 ] && {
|
||||
[ "$kernel_length" = 0 -o ! -z "$kernel_mtd" ] && has_kernel=
|
||||
}
|
||||
|
||||
nand_upgrade_prepare_ubi "$rootfs_length" "$rootfs_type" "${has_kernel:+$kernel_length}" "$has_env"
|
||||
|
||||
local ubidev="$( nand_find_ubi "$CI_UBIPART" )"
|
||||
[ "$has_kernel" = "1" ] && {
|
||||
local kern_ubivol="$( nand_find_volume $ubidev $CI_KERNPART )"
|
||||
tar xf "$tar_file" ${board_dir}/kernel -O | \
|
||||
ubiupdatevol /dev/$kern_ubivol -s $kernel_length -
|
||||
}
|
||||
|
||||
[ "$has_rootfs" = "1" ] && {
|
||||
local root_ubivol="$( nand_find_volume $ubidev $CI_ROOTPART )"
|
||||
tar xf "$tar_file" ${board_dir}/root -O | \
|
||||
ubiupdatevol /dev/$root_ubivol -s $rootfs_length -
|
||||
}
|
||||
nand_do_upgrade_success
|
||||
}
|
||||
|
||||
# Recognize type of passed file and start the upgrade process
|
||||
nand_do_upgrade() {
|
||||
local file_type=$(identify $1)
|
||||
|
||||
[ ! "$( find_mtd_index "$CI_UBIPART" )" ] && CI_UBIPART="rootfs"
|
||||
|
||||
case "$file_type" in
|
||||
"fit") nand_upgrade_fit $1;;
|
||||
"ubi") nand_upgrade_ubinized $1;;
|
||||
"ubifs") nand_upgrade_ubifs $1;;
|
||||
*) nand_upgrade_tar $1;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Check if passed file is a valid one for NAND sysupgrade. Currently it accepts
|
||||
# 3 types of files:
|
||||
# 1) UBI - should contain an ubinized image, header is checked for the proper
|
||||
# MAGIC
|
||||
# 2) UBIFS - should contain UBIFS partition that will replace "rootfs" volume,
|
||||
# header is checked for the proper MAGIC
|
||||
# 3) TAR - archive has to include "sysupgrade-BOARD" directory with a non-empty
|
||||
# "CONTROL" file (at this point its content isn't verified)
|
||||
#
|
||||
# You usually want to call this function in platform_check_image.
|
||||
#
|
||||
# $(1): board name, used in case of passing TAR file
|
||||
# $(2): file to be checked
|
||||
nand_do_platform_check() {
|
||||
local board_name="$1"
|
||||
local tar_file="$2"
|
||||
local control_length=$( (tar xf $tar_file sysupgrade-$board_name/CONTROL -O | wc -c) 2> /dev/null)
|
||||
local file_type="$(identify $2)"
|
||||
|
||||
[ "$control_length" = 0 -a "$file_type" != "ubi" -a "$file_type" != "ubifs" -a "$file_type" != "fit" ] && {
|
||||
echo "Invalid sysupgrade file."
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
@ -3,30 +3,9 @@
|
||||
RAMFS_COPY_BIN='fw_printenv fw_setenv'
|
||||
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
||||
|
||||
qca_do_upgrade() {
|
||||
local tar_file="$1"
|
||||
|
||||
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
||||
board_dir=${board_dir%/}
|
||||
local dev=$(find_mtd_chardev "0:HLOS")
|
||||
|
||||
tar Oxf $tar_file ${board_dir}/kernel | mtd write - ${dev}
|
||||
|
||||
if [ -n "$UPGRADE_BACKUP" ]; then
|
||||
tar Oxf $tar_file ${board_dir}/root | mtd -j "$UPGRADE_BACKUP" write - rootfs
|
||||
else
|
||||
tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs
|
||||
fi
|
||||
}
|
||||
|
||||
platform_check_image() {
|
||||
local magic_long="$(get_magic_long "$1")"
|
||||
board=$(board_name)
|
||||
case $board in
|
||||
qcom,ipq9574-ap-al02-c4)
|
||||
[ "$magic_long" = "73797375" ] && return 0
|
||||
;;
|
||||
esac
|
||||
[ "$magic_long" = "73797375" ] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
@ -37,8 +16,9 @@ platform_do_upgrade() {
|
||||
|
||||
board=$(board_name)
|
||||
case $board in
|
||||
qcom,ipq9574-ap-al02-c4)
|
||||
qca_do_upgrade "$1"
|
||||
qcom,ipq9574-ap-al02-c4|\
|
||||
qcom,ipq9574-ap-al02-c15)
|
||||
nand_upgrade_tar "$1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
@ -1262,6 +1262,14 @@ CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
# CONFIG_DEBUG_MEM_USAGE is not set
|
||||
# CONFIG_DIAG_CHAR is not set
|
||||
# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
|
||||
CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
|
||||
# CONFIG_NF_CONNTRACK_RTCACHE is not set
|
||||
# CONFIG_PCIE_DW_DEBUGFS is not set
|
||||
# CONFIG_PINCTRL_IPQ5332 is not set
|
||||
# CONFIG_IPQ_GCC_IPQ5332 is not set
|
||||
# CONFIG_IPQ_APSS_IPQ5332 is not set
|
||||
CONFIG_INIT_STACK_NONE=y
|
||||
# CONFIG_INIT_STACK_ALL is not set
|
||||
# CONFIG_SECCRYPT is not set
|
||||
CONFIG_HWMON=y
|
||||
|
||||
@ -5,10 +5,23 @@ define Device/qcom_al02-c4
|
||||
DEVICE_DTS := ipq9574-al02-c4
|
||||
DEVICE_DTS_CONFIG := config@al02-c4
|
||||
SUPPORTED_DEVICES := qcom,ipq9574-ap-al02-c4
|
||||
# DEVICE_PACKAGES := ath11k-wifi-tplink-ex227
|
||||
IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
|
||||
IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
|
||||
IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
|
||||
IMAGE/nand-factory.ubi := append-ubi
|
||||
DEVICE_PACKAGES := ath12k-wifi-qcom-qcn9274
|
||||
endef
|
||||
TARGET_DEVICES += qcom_al02-c4
|
||||
|
||||
define Device/qcom_al02-c15
|
||||
DEVICE_TITLE := Qualcomm AP-AL02-C15
|
||||
DEVICE_DTS := ipq9574-al02-c15
|
||||
DEVICE_DTS_CONFIG := config@al02-c15
|
||||
SUPPORTED_DEVICES := qcom,ipq9574-ap-al02-c15
|
||||
IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi
|
||||
IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
|
||||
IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
|
||||
IMAGE/nand-factory.ubi := append-ubi
|
||||
DEVICE_PACKAGES := ath11k-wifi-qcom-ipq95xx
|
||||
endef
|
||||
TARGET_DEVICES += qcom_al02-c15
|
||||
|
||||
61
feeds/ipq95xx/ipq95xx/modules.mk
Normal file
61
feeds/ipq95xx/ipq95xx/modules.mk
Normal file
@ -0,0 +1,61 @@
|
||||
define KernelPackage/usb-dwc3-internal
|
||||
TITLE:=DWC3 USB controller driver
|
||||
DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget
|
||||
KCONFIG:= \
|
||||
CONFIG_USB_DWC3 \
|
||||
CONFIG_USB_DWC3_HOST=n \
|
||||
CONFIG_USB_DWC3_GADGET=n \
|
||||
CONFIG_USB_DWC3_DUAL_ROLE=y \
|
||||
CONFIG_EXTCON=y \
|
||||
CONFIG_USB_DWC3_DEBUG=n \
|
||||
CONFIG_USB_DWC3_VERBOSE=n
|
||||
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3.ko
|
||||
AUTOLOAD:=$(call AutoLoad,84,dwc3)
|
||||
$(call AddPlatformDepends/usb)
|
||||
endef
|
||||
|
||||
define KernelPackage/usb-dwc3-internal/description
|
||||
This driver provides support for the Dual Role SuperSpeed
|
||||
USB Controller based on the Synopsys DesignWare USB3 IP Core
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,usb-dwc3-internal))
|
||||
|
||||
define KernelPackage/usb-dwc3-qcom-internal
|
||||
TITLE:=DWC3 QTI USB driver
|
||||
DEPENDS:=@!LINUX_4_14 @(TARGET_ipq40xx||TARGET_ipq806x||TARGET_ipq807x||TARGET_ipq60xx||TARGET_ipq95xx||TARGET_ipq50xx||TARGET_ipq53xx) +kmod-usb-dwc3-internal
|
||||
KCONFIG:= CONFIG_USB_DWC3_QCOM
|
||||
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
|
||||
AUTOLOAD:=$(call AutoLoad,83,dwc3-qcom)
|
||||
$(call AddPlatformDepends/usb)
|
||||
endef
|
||||
|
||||
define KernelPackage/usb-dwc3-qcom-internal/description
|
||||
Some QTI SoCs use DesignWare Core IP for USB2/3 functionality.
|
||||
This driver also handles Qscratch wrapper which is needed for
|
||||
peripheral mode support.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,usb-dwc3-qcom-internal))
|
||||
|
||||
define KernelPackage/usb-phy-ipq807x
|
||||
TITLE:=DWC3 USB QTI PHY drivers for IPQ807x based targets
|
||||
DEPENDS:=@TARGET_ipq||TARGET_ipq807x||TARGET_ipq95xx||TARGET_ipq60xx
|
||||
KCONFIG:= \
|
||||
CONFIG_PHY_QCOM_QUSB2 \
|
||||
CONFIG_PHY_QCOM_QMP=y \
|
||||
CONFIG_USB_QCOM_QUSB_PHY \
|
||||
CONFIG_USB_QCOM_QMP_PHY
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/phy/qualcomm/phy-qcom-qusb2.ko@ge5.4 \
|
||||
$(LINUX_DIR)/drivers/usb/phy/phy-msm-qusb.ko@le4.4 \
|
||||
$(LINUX_DIR)/drivers/usb/phy/phy-msm-ssusb-qmp.ko@le4.4
|
||||
AUTOLOAD:=$(call AutoLoad,85,phy-qcom-qusb2 phy-msm-qusb phy-msm-ssusb-qmp)
|
||||
$(call AddPlatformDepends/usb)
|
||||
endef
|
||||
|
||||
define KernelPackage/usb-phy-ipq807x/description
|
||||
Support for USB PHY drivers in IPQ807x based SoCs.
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,usb-phy-ipq807x))
|
||||
24
feeds/ipq95xx/ipq95xx/patches/002-dload_dis.patch
Normal file
24
feeds/ipq95xx/ipq95xx/patches/002-dload_dis.patch
Normal file
@ -0,0 +1,24 @@
|
||||
Index: linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
===================================================================
|
||||
--- linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452.orig/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
+++ linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
@@ -1882,6 +1882,7 @@
|
||||
|
||||
qti,scm_restart_reason {
|
||||
compatible = "qti_ipq6018,scm_restart_reason";
|
||||
+ dload_status = <1>;
|
||||
};
|
||||
|
||||
ctx_save: ctx-save {
|
||||
Index: linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/arch/arm64/boot/dts/qcom/ipq9574.dtsi
|
||||
===================================================================
|
||||
--- linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452.orig/arch/arm64/boot/dts/qcom/ipq9574.dtsi
|
||||
+++ linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/arch/arm64/boot/dts/qcom/ipq9574.dtsi
|
||||
@@ -3678,6 +3678,7 @@
|
||||
|
||||
qti,scm_restart_reason {
|
||||
compatible = "qti_ipq9574,scm_restart_reason";
|
||||
+ dload_status = <1>;
|
||||
};
|
||||
|
||||
qti,gadget_diag@0 {
|
||||
@ -11,8 +11,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
include/linux/gpio/consumer.h | 8 +++++
|
||||
4 files changed, 91 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/gpio/gpiolib-of.c
|
||||
+++ b/drivers/gpio/gpiolib-of.c
|
||||
Index: linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/drivers/gpio/gpiolib-of.c
|
||||
===================================================================
|
||||
--- linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452.orig/drivers/gpio/gpiolib-of.c
|
||||
+++ linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/drivers/gpio/gpiolib-of.c
|
||||
@@ -19,6 +19,8 @@
|
||||
#include <linux/pinctrl/pinctrl.h>
|
||||
#include <linux/slab.h>
|
||||
@ -91,8 +93,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+};
|
||||
+
|
||||
+module_platform_driver(gpio_export_driver);
|
||||
--- a/drivers/gpio/gpiolib-sysfs.c
|
||||
+++ b/drivers/gpio/gpiolib-sysfs.c
|
||||
Index: linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/drivers/gpio/gpiolib-sysfs.c
|
||||
===================================================================
|
||||
--- linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452.orig/drivers/gpio/gpiolib-sysfs.c
|
||||
+++ linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/drivers/gpio/gpiolib-sysfs.c
|
||||
@@ -571,7 +571,7 @@ static struct class gpio_class = {
|
||||
*
|
||||
* Returns zero on success, else an error.
|
||||
@ -124,8 +128,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
EXPORT_SYMBOL_GPL(gpiod_export);
|
||||
|
||||
static int match_export(struct device *dev, const void *desc)
|
||||
--- a/include/asm-generic/gpio.h
|
||||
+++ b/include/asm-generic/gpio.h
|
||||
Index: linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/include/asm-generic/gpio.h
|
||||
===================================================================
|
||||
--- linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452.orig/include/asm-generic/gpio.h
|
||||
+++ linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/include/asm-generic/gpio.h
|
||||
@@ -127,6 +127,12 @@ static inline int gpio_export(unsigned g
|
||||
return gpiod_export(gpio_to_desc(gpio), direction_may_change);
|
||||
}
|
||||
@ -139,8 +145,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
static inline int gpio_export_link(struct device *dev, const char *name,
|
||||
unsigned gpio)
|
||||
{
|
||||
--- a/include/linux/gpio/consumer.h
|
||||
+++ b/include/linux/gpio/consumer.h
|
||||
Index: linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/include/linux/gpio/consumer.h
|
||||
===================================================================
|
||||
--- linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452.orig/include/linux/gpio/consumer.h
|
||||
+++ linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/include/linux/gpio/consumer.h
|
||||
@@ -668,6 +668,7 @@ static inline void devm_acpi_dev_remove_
|
||||
|
||||
#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
|
||||
|
||||
@ -45,20 +45,11 @@ Link: https://lore.kernel.org/bpf/20211130181607.593149-1-maximmi@nvidia.com
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
|
||||
--- a/kernel/bpf/verifier.c
|
||||
+++ b/kernel/bpf/verifier.c
|
||||
@@ -5372,7 +5372,7 @@ static void find_good_pkt_pointers(struc
|
||||
|
||||
new_range = dst_reg->off;
|
||||
if (range_right_open)
|
||||
- new_range--;
|
||||
+ new_range++;
|
||||
|
||||
/* Examples for register markings:
|
||||
*
|
||||
--- a/tools/testing/selftests/bpf/verifier/xdp_direct_packet_access.c
|
||||
+++ b/tools/testing/selftests/bpf/verifier/xdp_direct_packet_access.c
|
||||
@@ -112,10 +112,10 @@
|
||||
Index: linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/tools/testing/selftests/bpf/verifier/xdp_direct_packet_access.c
|
||||
===================================================================
|
||||
--- linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452.orig/tools/testing/selftests/bpf/verifier/xdp_direct_packet_access.c
|
||||
+++ linux-5.4.213-qsdk-f2ee796db820cd8261889849f043c9c816196452/tools/testing/selftests/bpf/verifier/xdp_direct_packet_access.c
|
||||
@@ -202,10 +202,10 @@
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1,
|
||||
offsetof(struct xdp_md, data_end)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
@ -71,7 +62,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||
BPF_EXIT_INSN(),
|
||||
},
|
||||
@@ -167,10 +167,10 @@
|
||||
@@ -293,10 +293,10 @@
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1,
|
||||
offsetof(struct xdp_md, data_end)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
@ -84,7 +75,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||
BPF_EXIT_INSN(),
|
||||
},
|
||||
@@ -274,9 +274,9 @@
|
||||
@@ -469,9 +469,9 @@
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1,
|
||||
offsetof(struct xdp_md, data_end)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
@ -96,7 +87,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||
BPF_EXIT_INSN(),
|
||||
},
|
||||
@@ -437,9 +437,9 @@
|
||||
@@ -740,9 +740,9 @@
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1,
|
||||
offsetof(struct xdp_md, data_end)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
@ -108,7 +99,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||
BPF_EXIT_INSN(),
|
||||
},
|
||||
@@ -544,10 +544,10 @@
|
||||
@@ -918,10 +918,10 @@
|
||||
offsetof(struct xdp_md, data_meta)),
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1, offsetof(struct xdp_md, data)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
@ -121,7 +112,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||
BPF_EXIT_INSN(),
|
||||
},
|
||||
@@ -599,10 +599,10 @@
|
||||
@@ -1009,10 +1009,10 @@
|
||||
offsetof(struct xdp_md, data_meta)),
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1, offsetof(struct xdp_md, data)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
@ -134,7 +125,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||
BPF_EXIT_INSN(),
|
||||
},
|
||||
@@ -706,9 +706,9 @@
|
||||
@@ -1185,9 +1185,9 @@
|
||||
offsetof(struct xdp_md, data_meta)),
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1, offsetof(struct xdp_md, data)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
@ -146,7 +137,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||
BPF_EXIT_INSN(),
|
||||
},
|
||||
@@ -869,9 +869,9 @@
|
||||
@@ -1456,9 +1456,9 @@
|
||||
offsetof(struct xdp_md, data_meta)),
|
||||
BPF_LDX_MEM(BPF_W, BPF_REG_3, BPF_REG_1, offsetof(struct xdp_md, data)),
|
||||
BPF_MOV64_REG(BPF_REG_1, BPF_REG_2),
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
From: Xiongwei Song <sxwjean@gmail.com>
|
||||
Date: Fri, 14 Jan 2022 14:07:24 -0800
|
||||
Subject: [PATCH] mm: page_alloc: fix building error on -Werror=array-compare
|
||||
|
||||
Arthur Marsh reported we would hit the error below when building kernel
|
||||
with gcc-12:
|
||||
|
||||
CC mm/page_alloc.o
|
||||
mm/page_alloc.c: In function `mem_init_print_info':
|
||||
mm/page_alloc.c:8173:27: error: comparison between two arrays [-Werror=array-compare]
|
||||
8173 | if (start <= pos && pos < end && size > adj) \
|
||||
|
|
||||
|
||||
In C++20, the comparision between arrays should be warned.
|
||||
|
||||
Link: https://lkml.kernel.org/r/20211125130928.32465-1-sxwjean@me.com
|
||||
Signed-off-by: Xiongwei Song <sxwjean@gmail.com>
|
||||
Reported-by: Arthur Marsh <arthur.marsh@internode.on.net>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -7579,7 +7579,7 @@ void __init mem_init_print_info(const ch
|
||||
*/
|
||||
#define adj_init_size(start, end, size, pos, adj) \
|
||||
do { \
|
||||
- if (start <= pos && pos < end && size > adj) \
|
||||
+ if (&start[0] <= &pos[0] && &pos[0] < &end[0] && size > adj) \
|
||||
size -= adj; \
|
||||
} while (0)
|
||||
|
||||
@ -1,42 +1,49 @@
|
||||
Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/arch/arm64/boot/dts/qcom/ipq8074-memory.dtsi
|
||||
Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/arch/arm64/boot/dts/qcom/ipq6018-memory.dtsi
|
||||
===================================================================
|
||||
--- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/arch/arm64/boot/dts/qcom/ipq8074-memory.dtsi
|
||||
+++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/arch/arm64/boot/dts/qcom/ipq8074-memory.dtsi
|
||||
@@ -129,6 +129,12 @@
|
||||
no-map;
|
||||
reg = <0x0 0x4d900000 0x0 0x100000>;
|
||||
};
|
||||
+
|
||||
+ ramoops@4da00000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0x0 0x4da00000 0x0 0x100000>;
|
||||
+ record-size = <0x1000>;
|
||||
+ };
|
||||
};
|
||||
#elif __IPQ_MEM_PROFILE_512_MB__
|
||||
/* 512 MB Profile
|
||||
@@ -249,6 +255,12 @@
|
||||
no-map;
|
||||
reg = <0x0 0x4e800000 0x0 0x100000>;
|
||||
};
|
||||
+
|
||||
+ ramoops@4e900000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0x0 0x4e900000 0x0 0x100000>;
|
||||
+ record-size = <0x1000>;
|
||||
+ };
|
||||
};
|
||||
#else
|
||||
/* Default Profile
|
||||
@@ -371,6 +383,11 @@
|
||||
reg = <0x0 0x51000000 0x0 0x100000>;
|
||||
--- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/arch/arm64/boot/dts/qcom/ipq6018-memory.dtsi
|
||||
+++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/arch/arm64/boot/dts/qcom/ipq6018-memory.dtsi
|
||||
@@ -132,6 +132,14 @@
|
||||
reg = <0x0 0x4d400000 0x0 0x100000>;
|
||||
};
|
||||
|
||||
+ ramoops@51200000 {
|
||||
+ ramoops@4d500000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0x0 0x51200000 0x0 0x100000>;
|
||||
+ reg = <0x0 0x4d500000 0x0 0x100000>;
|
||||
+ record-size = <0x1000>;
|
||||
+ console-size = <0x1000>;
|
||||
+ pmsg-size = <0x1000>;
|
||||
+ };
|
||||
};
|
||||
#endif
|
||||
};
|
||||
+
|
||||
rpm_msg_ram: rpm_msg_ram@0x60000 {
|
||||
no-map;
|
||||
reg = <0x0 0x60000 0x0 0x6000>;
|
||||
@@ -256,6 +264,14 @@
|
||||
reg = <0x0 0x4e300000 0x0 0x100000>;
|
||||
};
|
||||
|
||||
+ ramoops@4e400000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0x0 0x4e400000 0x0 0x100000>;
|
||||
+ record-size = <0x1000>;
|
||||
+ console-size = <0x1000>;
|
||||
+ pmsg-size = <0x1000>;
|
||||
+ };
|
||||
+
|
||||
rpm_msg_ram: rpm_msg_ram@0x60000 {
|
||||
no-map;
|
||||
reg = <0x0 0x60000 0x0 0x6000>;
|
||||
@@ -383,6 +399,14 @@
|
||||
reg = <0x0 0x50100000 0x0 0x100000>;
|
||||
};
|
||||
|
||||
+ ramoops@50200000 {
|
||||
+ compatible = "ramoops";
|
||||
+ reg = <0x0 0x50200000 0x0 0x100000>;
|
||||
+ record-size = <0x1000>;
|
||||
+ console-size = <0x1000>;
|
||||
+ pmsg-size = <0x1000>;
|
||||
+ };
|
||||
+
|
||||
rpm_msg_ram: rpm_msg_ram@0x60000 {
|
||||
no-map;
|
||||
reg = <0x0 0x60000 0x0 0x6000>;
|
||||
|
||||
@ -13,7 +13,7 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://www.kernel.org/pub/software/network/iw
|
||||
PKG_MD5SUM:=782a3460da2854bd2e5b8f96845a62f8
|
||||
PKG_HASH:=4c44e42762f903f9094ba5a598998c800a97a62afd6fd31ec1e0a799e308659c
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -289,7 +289,7 @@ define KernelPackage/ath11k
|
||||
TITLE:=Atheros 802.11ax wireless cards support
|
||||
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k
|
||||
DEPENDS+= @TARGET_ipq95xx +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT \
|
||||
+@DRIVER_11AX_SUPPORT +HWMON:kmod-hwmon-core
|
||||
+@DRIVER_11AX_SUPPORT
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k.ko
|
||||
endef
|
||||
@ -324,7 +324,7 @@ define KernelPackage/ath12k
|
||||
TITLE:=Atheros 802.11be wireless cards support
|
||||
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath12k
|
||||
DEPENDS+= @TARGET_ipq95xx +kmod-ath +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11W_SUPPORT \
|
||||
+@DRIVER_11AX_SUPPORT +HWMON:kmod-hwmon-core
|
||||
+@DRIVER_11AX_SUPPORT
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath12k/ath12k.ko
|
||||
AUTOLOAD:=$(call AutoProbe,ath12k)
|
||||
|
||||
@ -20,7 +20,7 @@ define KernelPackage/nat46
|
||||
SECTION:=kernel
|
||||
SUBMENU:=Network Support
|
||||
FILES:=$(PKG_BUILD_DIR)/nat46/modules/nat46.ko
|
||||
AUTOLOAD:=$(call AutoLoad,29,nat46)
|
||||
AUTOLOAD:=$(call AutoLoad,20,nat46)
|
||||
endef
|
||||
|
||||
include $(INCLUDE_DIR)/kernel-defaults.mk
|
||||
|
||||
@ -6,8 +6,8 @@ PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=master
|
||||
PKG_RELEASE:=2
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-dp
|
||||
PKG_MIRROR_HASH:=40d262941d32f025b12f8d295453b34e63c6df5988f71267357e23aca2bfb6cd
|
||||
PKG_VERSION:=8b8f7b1bbfb9f3bde16c42fb61d8ffaa87d9b1b6
|
||||
PKG_MIRROR_HASH:=317e92240197e203d7cdc50a69c97631bc6c35ad71a903a616d9917b64ce26e7
|
||||
PKG_VERSION:=5cd7e43b5f76bb14de38ac8fe1805c367abef91a
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
@ -6,8 +6,8 @@ PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=master
|
||||
PKG_RELEASE:=2
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/nss-ppe
|
||||
PKG_MIRROR_HASH:=f3355f9e5b6635954806eb9653751ebf40a04cf7b8113c8abca17b075de30619
|
||||
PKG_VERSION:=15a863594d33ad56044d7f11905bcbb41e3eb948
|
||||
PKG_MIRROR_HASH:=754a604e282d97af3eac8b6af0a16c4fe48fdef8f04ae593d016e1f0ba9886da
|
||||
PKG_VERSION:=ffc8f2447dbb2d4a29d1fca4fad516132d5848fe
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
@ -119,6 +119,8 @@ EXTRA_CFLAGS+= \
|
||||
-I$(STAGING_DIR)/usr/include/qca-ssdk/fal \
|
||||
-I$(STAGING_DIR)/usr/include/qca-ssdk/init \
|
||||
-I$(STAGING_DIR)/usr/include/nat46 \
|
||||
-Wno-error=unused-variable \
|
||||
|
||||
|
||||
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-ppe-bridge-mgr),)
|
||||
MAKE_OPTS+=bridge-mgr=y
|
||||
@ -149,6 +151,7 @@ define Build/Compile
|
||||
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
|
||||
SoC="$(subtarget)" \
|
||||
KBUILD_MODPOST_WARN=1 \
|
||||
V=1 \
|
||||
modules
|
||||
endef
|
||||
|
||||
|
||||
25
feeds/ipq95xx/qca-nss-ppe/patches/100-compile.patch
Normal file
25
feeds/ipq95xx/qca-nss-ppe/patches/100-compile.patch
Normal file
@ -0,0 +1,25 @@
|
||||
Index: qca-nss-ppe-ffc8f2447dbb2d4a29d1fca4fad516132d5848fe/drv/ppe_drv/tun/ppe_drv_tun.c
|
||||
===================================================================
|
||||
--- qca-nss-ppe-ffc8f2447dbb2d4a29d1fca4fad516132d5848fe.orig/drv/ppe_drv/tun/ppe_drv_tun.c
|
||||
+++ qca-nss-ppe-ffc8f2447dbb2d4a29d1fca4fad516132d5848fe/drv/ppe_drv/tun/ppe_drv_tun.c
|
||||
@@ -114,7 +114,7 @@ static void ppe_drv_tun_free(struct kref
|
||||
*/
|
||||
static bool ppe_drv_tun_deref(struct ppe_drv_tun *ptun)
|
||||
{
|
||||
- uint8_t tun_idx = ptun->tun_idx;
|
||||
+ //uint8_t tun_idx = ptun->tun_idx;
|
||||
|
||||
ppe_drv_assert(kref_read(&ptun->ref), "%p: ref count under run for tun", ptun);
|
||||
|
||||
Index: qca-nss-ppe-ffc8f2447dbb2d4a29d1fca4fad516132d5848fe/drv/ppe_drv/tun/ppe_drv_tun_encap.c
|
||||
===================================================================
|
||||
--- qca-nss-ppe-ffc8f2447dbb2d4a29d1fca4fad516132d5848fe.orig/drv/ppe_drv/tun/ppe_drv_tun_encap.c
|
||||
+++ qca-nss-ppe-ffc8f2447dbb2d4a29d1fca4fad516132d5848fe/drv/ppe_drv/tun/ppe_drv_tun_encap.c
|
||||
@@ -95,7 +95,6 @@ void ppe_drv_tun_encap_free(struct kref
|
||||
*/
|
||||
bool ppe_drv_tun_encap_deref(struct ppe_drv_tun_encap *ptec)
|
||||
{
|
||||
- uint8_t tun_idx = ptec->tun_idx;
|
||||
|
||||
ppe_drv_assert(kref_read(&ptec->ref), "%p: ref count under run for ptec", ptec);
|
||||
|
||||
@ -6,7 +6,7 @@ PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=master
|
||||
PKG_RELEASE:=2
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-psdk
|
||||
PKG_VERSION:=402973acc8a17d9b685ed3c3490b7d6289f4798f
|
||||
PKG_VERSION:=ffc8f2447dbb2d4a29d1fca4fad516132d5848fe
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
@ -7,8 +7,7 @@ PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=master
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/ssdk-shell
|
||||
PKG_MIRROR_HASH:=5bb53abc2b8e2cfaad10b1a94aa6d70d60d678ae9c1be043130f714888cb93a4
|
||||
PKG_VERSION:=0e1460b64a61355bebace6773070272610b12199
|
||||
PKG_VERSION:=b78d6095444e22b274e8b47e10100a2f51a3b65e
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
@ -7,9 +7,8 @@ PKG_SOURCE_PROTO:=git
|
||||
PKG_BRANCH:=master
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/qsdk/oss/lklm/qca-ssdk
|
||||
PKG_MIRROR_HASH:=0c3384b2220d29a3e6ec544c2736c205423a7f11122950c4a4ddc271489f57ec
|
||||
#PKG_MIRROR_HASH:=3be4158fc80540c8dcb2d844110205685fa81c935fdd2268aee72b04d34d7c1f
|
||||
PKG_VERSION:=6ee7e05bd4cf4961d85f535e9aaf9f028c9e4e92
|
||||
PKG_MIRROR_HASH:=63209e01c092bd6ee63a4094995b78772c8e4ff7cd7f81f8dba51366697a4639
|
||||
PKG_VERSION:=9e687f44ee13ce0904f291c9771172b488b7f9ed
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
13
profiles/qcom_al02-c15.yml
Normal file
13
profiles/qcom_al02-c15.yml
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
profile: qcom_al02-c15
|
||||
target: ipq95xx
|
||||
subtarget: generic
|
||||
description: Build image for the IPQ9574/AP-AL02-C15
|
||||
image: bin/targets/ipq60xx/generic/openwrt-ipq60xx-edgecore_eap101-squashfs-sysupgrade.tar
|
||||
feeds:
|
||||
- name: ipq95xx
|
||||
path: ../../feeds/ipq95xx
|
||||
packages:
|
||||
- ipq95xx
|
||||
diffconfig: |
|
||||
CONFIG_KERNEL_IPQ_MEM_PROFILE=0
|
||||
Loading…
Reference in New Issue
Block a user