mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
fix
This commit is contained in:
parent
6d6e649d27
commit
ea4609897c
17 changed files with 3269 additions and 0 deletions
472
build.sh
Executable file
472
build.sh
Executable file
|
@ -0,0 +1,472 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2017 OVH OverTheBox
|
||||
# Copyright (C) 2017-2020 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter project
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
umask 0022
|
||||
unset GREP_OPTIONS SED
|
||||
|
||||
_get_repo() (
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
[ -d .git ] || git init
|
||||
if git remote get-url origin >/dev/null 2>/dev/null; then
|
||||
git remote set-url origin "$2"
|
||||
else
|
||||
git remote add origin "$2"
|
||||
fi
|
||||
git fetch origin -f
|
||||
git fetch origin --tags -f
|
||||
git checkout -f "origin/$3" -B "build" 2>/dev/null || git checkout "$3" -B "build"
|
||||
)
|
||||
|
||||
OMR_DIST=${OMR_DIST:-openmptcprouter}
|
||||
OMR_HOST=${OMR_HOST:-$(curl -sS ifconfig.co)}
|
||||
OMR_PORT=${OMR_PORT:-80}
|
||||
OMR_KEEPBIN=${OMR_KEEPBIN:-no}
|
||||
OMR_IMG=${OMR_IMG:-yes}
|
||||
#OMR_UEFI=${OMR_UEFI:-yes}
|
||||
OMR_PACKAGES=${OMR_PACKAGES:-full}
|
||||
OMR_ALL_PACKAGES=${OMR_ALL_PACKAGES:-no}
|
||||
OMR_TARGET=${OMR_TARGET:-x86_64}
|
||||
OMR_TARGET_CONFIG="config-$OMR_TARGET"
|
||||
OMR_KERNEL=${OMR_KERNEL:-5.4}
|
||||
#OMR_RELEASE=${OMR_RELEASE:-$(git describe --tags `git rev-list --tags --max-count=1` | sed 's/^\([0-9.]*\).*/\1/')}
|
||||
#OMR_RELEASE=${OMR_RELEASE:-$(git tag --sort=committerdate | tail -1)}
|
||||
OMR_RELEASE=${OMR_RELEASE:-$(git describe --tags `git rev-list --tags --max-count=1` | tail -1 | cut -d '-' -f1)}
|
||||
OMR_REPO=${OMR_REPO:-http://$OMR_HOST:$OMR_PORT/release/$OMR_RELEASE/$OMR_TARGET}
|
||||
|
||||
OMR_FEED_URL="${OMR_FEED_URL:-https://github.com/suyuan168/openmptcprouter-feeds}"
|
||||
OMR_FEED_SRC="${OMR_FEED_SRC:-develop}"
|
||||
|
||||
CUSTOM_FEED_URL="${CUSTOM_FEED_URL}"
|
||||
|
||||
OMR_OPENWRT=${OMR_OPENWRT:-default}
|
||||
|
||||
OMR_FORCE_DSA=${OMR_FORCE_DSA:-0}
|
||||
|
||||
if [ ! -f "$OMR_TARGET_CONFIG" ]; then
|
||||
echo "Target $OMR_TARGET not found !"
|
||||
#exit 1
|
||||
fi
|
||||
|
||||
if [ "$OMR_TARGET" = "rpi3" ]; then
|
||||
OMR_REAL_TARGET="aarch64_cortex-a53"
|
||||
elif [ "$OMR_TARGET" = "rpi4" ]; then
|
||||
OMR_REAL_TARGET="aarch64_cortex-a72"
|
||||
elif [ "$OMR_TARGET" = "rpi2" ]; then
|
||||
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
||||
elif [ "$OMR_TARGET" = "wrt3200acm" ]; then
|
||||
OMR_REAL_TARGET="arm_cortex-a9_vfpv3"
|
||||
elif [ "$OMR_TARGET" = "wrt32x" ]; then
|
||||
OMR_REAL_TARGET="arm_cortex-a9_vfpv3"
|
||||
elif [ "$OMR_TARGET" = "bpi-r1" ]; then
|
||||
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
||||
elif [ "$OMR_TARGET" = "bpi-r2" ]; then
|
||||
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
||||
elif [ "$OMR_TARGET" = "bpi-r64" ]; then
|
||||
OMR_REAL_TARGET="aarch64_cortex-a53"
|
||||
elif [ "$OMR_TARGET" = "espressobin" ]; then
|
||||
OMR_REAL_TARGET="aarch64_cortex-a53"
|
||||
elif [ "$OMR_TARGET" = "x86" ]; then
|
||||
OMR_REAL_TARGET="i386_pentium4"
|
||||
else
|
||||
OMR_REAL_TARGET=${OMR_TARGET}
|
||||
fi
|
||||
|
||||
#_get_repo source https://github.com/ysurac/openmptcprouter-source "master"
|
||||
if [ "$OMR_OPENWRT" = "default" ]; then
|
||||
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "ffeb37047e85a5efd96890db12710e9d60b4b76a"
|
||||
_get_repo feeds/packages https://github.com/openwrt/packages "7bc897eb94c09c8fe2472091709fab7446b37976"
|
||||
_get_repo feeds/luci https://github.com/openwrt/luci "5af5f4a1ee5cbcd4a3099e6e210aca0099973410"
|
||||
elif [ "$OMR_OPENWRT" = "master" ]; then
|
||||
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "master"
|
||||
_get_repo feeds/packages https://github.com/openwrt/packages "master"
|
||||
_get_repo feeds/luci https://github.com/openwrt/luci "master"
|
||||
else
|
||||
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "${OMR_OPENWRT}"
|
||||
_get_repo feeds/packages https://github.com/openwrt/packages "${OMR_OPENWRT}"
|
||||
_get_repo feeds/luci https://github.com/openwrt/luci "${OMR_OPENWRT}"
|
||||
fi
|
||||
|
||||
if [ -z "$OMR_FEED" ]; then
|
||||
OMR_FEED=feeds/openmptcprouter
|
||||
_get_repo "$OMR_FEED" "$OMR_FEED_URL" "$OMR_FEED_SRC"
|
||||
fi
|
||||
|
||||
if [ -n "$CUSTOM_FEED_URL" ] && [ -z "$CUSTOM_FEED" ]; then
|
||||
CUSTOM_FEED=feeds/${OMR_DIST}
|
||||
_get_repo "$CUSTOM_FEED" "$CUSTOM_FEED_URL" "master"
|
||||
fi
|
||||
|
||||
if [ -n "$1" ] && [ -f "$OMR_FEED/$1/Makefile" ]; then
|
||||
OMR_DIST=$1
|
||||
shift 1
|
||||
fi
|
||||
|
||||
if [ "$OMR_KEEPBIN" = "no" ]; then
|
||||
rm -rf "$OMR_TARGET/source/bin"
|
||||
fi
|
||||
rm -rf "$OMR_TARGET/source/files" "$OMR_TARGET/source/tmp"
|
||||
#rm -rf "$OMR_TARGET/source/target/linux/mediatek/patches-4.14"
|
||||
cp -rf root/* "$OMR_TARGET/source"
|
||||
|
||||
cat >> "$OMR_TARGET/source/package/base-files/files/etc/banner" <<EOF
|
||||
-----------------------------------------------------
|
||||
PACKAGE: $OMR_DIST
|
||||
VERSION: $(git -C "$OMR_FEED" tag --sort=committerdate | tail -1)
|
||||
|
||||
BUILD REPO: $(git config --get remote.origin.url)
|
||||
BUILD DATE: $(date -u)
|
||||
-----------------------------------------------------
|
||||
EOF
|
||||
|
||||
cat > "$OMR_TARGET/source/feeds.conf" <<EOF
|
||||
src-link packages $(readlink -f feeds/packages)
|
||||
src-link luci $(readlink -f feeds/luci)
|
||||
src-link openmptcprouter $(readlink -f "$OMR_FEED")
|
||||
EOF
|
||||
|
||||
if [ -n "$CUSTOM_FEED" ]; then
|
||||
echo "src-link ${OMR_DIST} $(readlink -f ${CUSTOM_FEED})" >> "$OMR_TARGET/source/feeds.conf"
|
||||
fi
|
||||
|
||||
if [ "$OMR_DIST" = "openmptcprouter" ]; then
|
||||
cat > "$OMR_TARGET/source/package/system/opkg/files/customfeeds.conf" <<-EOF
|
||||
src/gz openwrt_luci http://packages.openmptcprouter.com/${OMR_RELEASE}/${OMR_REAL_TARGET}/luci
|
||||
src/gz openwrt_packages http://packages.openmptcprouter.com/${OMR_RELEASE}/${OMR_REAL_TARGET}/packages
|
||||
src/gz openwrt_base http://packages.openmptcprouter.com/${OMR_RELEASE}/${OMR_REAL_TARGET}/base
|
||||
src/gz openwrt_routing http://packages.openmptcprouter.com/${OMR_RELEASE}/${OMR_REAL_TARGET}/routing
|
||||
src/gz openwrt_telephony http://packages.openmptcprouter.com/${OMR_RELEASE}/${OMR_REAL_TARGET}/telephony
|
||||
EOF
|
||||
elif [ -n "$OMR_PACKAGES_URL" ]; then
|
||||
cat > "$OMR_TARGET/source/package/system/opkg/files/customfeeds.conf" <<-EOF
|
||||
src/gz openwrt_luci ${OMR_PACKAGES_URL}/${OMR_RELEASE}/${OMR_REAL_TARGET}/luci
|
||||
src/gz openwrt_packages ${OMR_PACKAGES_URL}/${OMR_RELEASE}/${OMR_REAL_TARGET}/packages
|
||||
src/gz openwrt_base ${OMR_PACKAGES_URL}/${OMR_RELEASE}/${OMR_REAL_TARGET}/base
|
||||
src/gz openwrt_routing ${OMR_PACKAGES_URL}/${OMR_RELEASE}/${OMR_REAL_TARGET}/routing
|
||||
src/gz openwrt_telephony ${OMR_PACKAGES_URL}/${OMR_RELEASE}/${OMR_REAL_TARGET}/telephony
|
||||
EOF
|
||||
else
|
||||
cat > "$OMR_TARGET/source/package/system/opkg/files/customfeeds.conf" <<-EOF
|
||||
src/gz openwrt_luci http://downloads.openwrt.org/snapshots/packages/${OMR_REAL_TARGET}/luci
|
||||
src/gz openwrt_packages http://downloads.openwrt.org/snapshots/packages/${OMR_REAL_TARGET}/packages
|
||||
src/gz openwrt_base http://downloads.openwrt.org/snapshots/packages/${OMR_REAL_TARGET}/base
|
||||
src/gz openwrt_routing http://downloads.openwrt.org/snapshots/packages/${OMR_REAL_TARGET}/routing
|
||||
src/gz openwrt_telephony http://downloads.openwrt.org/snapshots/packages/${OMR_REAL_TARGET}/telephony
|
||||
EOF
|
||||
fi
|
||||
#cat > "$OMR_TARGET/source/package/system/opkg/files/customfeeds.conf" <<EOF
|
||||
#src/gz openwrt_luci http://downloads.openwrt.org/releases/18.06.0/packages/${OMR_REAL_TARGET}/luci
|
||||
#src/gz openwrt_packages http://downloads.openwrt.org/releases/18.06.0/packages/${OMR_REAL_TARGET}/packages
|
||||
#src/gz openwrt_base http://downloads.openwrt.org/releases/18.06.0/packages/${OMR_REAL_TARGET}/base
|
||||
#src/gz openwrt_routing http://downloads.openwrt.org/releases/18.06.0/packages/${OMR_REAL_TARGET}/routing
|
||||
#src/gz openwrt_telephony http://downloads.openwrt.org/releases/18.06.0/packages/${OMR_REAL_TARGET}/telephony
|
||||
#EOF
|
||||
|
||||
if [ -f "$OMR_TARGET_CONFIG" ]; then
|
||||
cat "$OMR_TARGET_CONFIG" config -> "$OMR_TARGET/source/.config" <<-EOF
|
||||
CONFIG_IMAGEOPT=y
|
||||
CONFIG_VERSIONOPT=y
|
||||
CONFIG_VERSION_DIST="$OMR_DIST"
|
||||
CONFIG_VERSION_REPO="$OMR_REPO"
|
||||
CONFIG_VERSION_NUMBER="$(git -C "$OMR_FEED" tag --sort=committerdate | tail -1)"
|
||||
EOF
|
||||
else
|
||||
cat config -> "$OMR_TARGET/source/.config" <<-EOF
|
||||
CONFIG_IMAGEOPT=y
|
||||
CONFIG_VERSIONOPT=y
|
||||
CONFIG_VERSION_DIST="$OMR_DIST"
|
||||
CONFIG_VERSION_REPO="$OMR_REPO"
|
||||
CONFIG_VERSION_NUMBER="$(git -C "$OMR_FEED" tag --sort=committerdate | tail -1)-$(git -C "$OMR_FEED" rev-parse --short HEAD)"
|
||||
EOF
|
||||
fi
|
||||
if [ "$OMR_ALL_PACKAGES" = "yes" ]; then
|
||||
echo 'CONFIG_ALL=y' >> "$OMR_TARGET/source/.config"
|
||||
echo 'CONFIG_ALL_NONSHARED=y' >> "$OMR_TARGET/source/.config"
|
||||
fi
|
||||
if [ "$OMR_IMG" = "yes" ] && [ "$OMR_TARGET" = "x86_64" ]; then
|
||||
echo 'CONFIG_VDI_IMAGES=y' >> "$OMR_TARGET/source/.config"
|
||||
echo 'CONFIG_VMDK_IMAGES=y' >> "$OMR_TARGET/source/.config"
|
||||
echo 'CONFIG_VHDX_IMAGES=y' >> "$OMR_TARGET/source/.config"
|
||||
fi
|
||||
|
||||
if [ "$OMR_PACKAGES" = "full" ]; then
|
||||
echo "CONFIG_PACKAGE_${OMR_DIST}-full=y" >> "$OMR_TARGET/source/.config"
|
||||
fi
|
||||
if [ "$OMR_PACKAGES" = "mini" ]; then
|
||||
echo "CONFIG_PACKAGE_${OMR_DIST}-mini=y" >> "$OMR_TARGET/source/.config"
|
||||
fi
|
||||
if [ "$OMR_PACKAGES" = "zuixiao" ]; then
|
||||
echo "CONFIG_PACKAGE_${OMR_DIST}-zuixiao=y" >> "$OMR_TARGET/source/.config"
|
||||
fi
|
||||
|
||||
if [ "$OMR_TARGET" = "bpi-r1" -a "$OMR_OPENWRT" = "master" ]; then
|
||||
# We disable mc in master, because it leads to unknown compilation errors on bpi-r1 target
|
||||
# No time to check this, now, cause i am focused on make this target work
|
||||
# Maybe someone can do this later
|
||||
echo -n "Disabling error causing midnight commander (mc) package..."
|
||||
sed -i "s/CONFIG_PACKAGE_mc=y/# CONFIG_PACKAGE_mc is not set/" "$OMR_TARGET/source/.config"
|
||||
sed -i "s/CONFIG_MC_EDITOR=y/# CONFIG_MC_EDITOR is not set/" "$OMR_TARGET/source/.config"
|
||||
sed -i "s/CONFIG_MC_SUBSHELL=y/# CONFIG_MC_SUBSHELL is not set/" "$OMR_TARGET/source/.config"
|
||||
sed -i "s/CONFIG_MC_CHARSET=y/# CONFIG_MC_CHARSET is not set/" "$OMR_TARGET/source/.config"
|
||||
sed -i "s/CONFIG_MC_VFS=y/# CONFIG_MC_VFS is not set/" "$OMR_TARGET/source/.config"
|
||||
echo "done"
|
||||
|
||||
# 2021-03-05 Oliver Welter <oliver@welter.rocks>
|
||||
fi
|
||||
|
||||
if [ "$OMR_TARGET" = "bpi-r1" ]; then
|
||||
# Check kernel version
|
||||
if [ "$OMR_KERNEL" != "5.4" ]; then
|
||||
echo "Sorry, but for now kernel 5.4 is the only supported one."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Remove the 310-Revert-ARM-dts-sun7i-Add-BCM53125-switch-nodes-to-th patch
|
||||
echo -n "Removing unwanted patches from kernel $OMR_KERNEL..."
|
||||
rm -f "$OMR_TARGET/source/target/linux/sunxi/patches-$OMR_KERNEL/310-Revert-ARM-dts-sun7i-Add-BCM53125-switch-nodes-to-th.patch" >/dev/null 2>&1
|
||||
echo "done"
|
||||
|
||||
if [ "$OMR_FORCE_DSA" = "1" ]; then
|
||||
# Remove support for swconfig
|
||||
echo -n "Removing swconfig support from openwrt config..."
|
||||
for i in DEFAULT_swconfig PACKAGE_swconfig PACKAGE_kmod-swconfig; do
|
||||
sed -i "s/CONFIG_${i}/# CONFIG_${i} is not set/" "$OMR_TARGET/source/.config"
|
||||
done
|
||||
echo "done"
|
||||
echo -n "Removing B53 swconfig support from kernel $OMR_KERNEL..."
|
||||
for i in SWCONFIG_B53 SWCONFIG_B53_PHY_DRIVER SWCONFIG_LEDS LED_TRIGGER_PHY SWCONFIG_B53_PHY_FIXUP SWCONFIG_B53_SPI_DRIVER SWCONFIG_B53_MMAP_DRIVER SWCONFIG_B53_SRAB_DRIVER; do
|
||||
sed -i "s/CONFIG_${i}/# CONFIG_${i} is not set/" "$OMR_TARGET/source/target/linux/sunxi/config-$OMR_KERNEL"
|
||||
sed -i "s/CONFIG_${i}/# CONFIG_${i} is not set/" "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL"
|
||||
done
|
||||
echo "done"
|
||||
|
||||
# Add support for distributed switch architecture
|
||||
echo -n "Adding B53 DSA support to kernel $OMR_KERNEL..."
|
||||
for i in B53 B53_MDIO_DRIVER BRIDGE_VLAN_FILTERING MDIO_BUS_MUX_MULTIPLEXER NET_DSA NET_DSA_TAG_8021Q NET_DSA_TAG_BRCM NET_DSA_TAG_BRCM_PREPEND; do
|
||||
check_sunxi_config=`grep "CONFIG_${i}=y" "$OMR_TARGET/source/target/linux/sunxi/config-$OMR_KERNEL" || true`
|
||||
check_cortexa7_config=`grep "CONFIG_${i}=y" "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL" || true`
|
||||
|
||||
[ "$check_sunxi_config" = "" -a "$check_cortexa7_config" = "" ] && echo "CONFIG_${i}=y" >> "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL"
|
||||
done
|
||||
echo "done"
|
||||
|
||||
# Create DSA port map file (will be filled on first boot, by uci-defaults and tells the system, that it is in DSA mode)
|
||||
touch "$OMR_TARGET/source/target/linux/sunxi/base-files/etc/dsa.map"
|
||||
|
||||
# Remove the b53 hack in preinit
|
||||
rm -f "$OMR_TARGET/source/target/linux/sunxi/base-files/lib/preinit/03_b53_hack.sh"
|
||||
else
|
||||
# Remove ip-bridge
|
||||
echo -n "Removing ip-bridge support from openwrt config..."
|
||||
for i in PACKAGE_ip-bridge; do
|
||||
sed -i "s/CONFIG_${i}/# CONFIG_${i} is not set/" "$OMR_TARGET/source/.config"
|
||||
done
|
||||
echo "done"
|
||||
|
||||
# Remove swconfig parts
|
||||
echo -n "Removing unneeded B53 swconfig parts from kernel $OMR_KERNEL..."
|
||||
for i in SWCONFIG_B53_PHY_FIXUP SWCONFIG_B53_SPI_DRIVER SWCONFIG_B53_MMAP_DRIVER SWCONFIG_B53_SRAB_DRIVER; do
|
||||
sed -i "s/CONFIG_${i}/# CONFIG_${i} is not set/" "$OMR_TARGET/source/target/linux/sunxi/config-$OMR_KERNEL"
|
||||
sed -i "s/CONFIG_${i}/# CONFIG_${i} is not set/" "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL"
|
||||
done
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
# Add led support
|
||||
echo -n "Adding LED TRIGGER support to kernel $OMR_KERNEL..."
|
||||
if [ "$OMR_FORCE_DSA" != "1" ]; then
|
||||
for i in SWCONFIG_LEDS LED_TRIGGER_PHY; do
|
||||
check_sunxi_config=`grep "CONFIG_${i}=y" "$OMR_TARGET/source/target/linux/sunxi/config-$OMR_KERNEL" || true`
|
||||
check_cortexa7_config=`grep "CONFIG_${i}=y" "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL" || true`
|
||||
|
||||
[ "$check_sunxi_config" = "" -a "$check_cortexa7_config" = "" ] && echo "CONFIG_${i}=y" >> "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL"
|
||||
done
|
||||
fi
|
||||
for i in TIMER ONESHOT DISK MTD HEARTBEAT BACKLIGHT CPU ACTIVITY GPIO DEFAULT_ON TRANSIENT CAMERA PANIC NETDEV PATTERN AUDIO; do
|
||||
check_sunxi_config=`grep "CONFIG_LEDS_TRIGGER_${i}=y" "$OMR_TARGET/source/target/linux/sunxi/config-$OMR_KERNEL" || true`
|
||||
check_cortexa7_config=`grep "CONFIG_LEDS_TRIGGER_${i}=y" "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL" || true`
|
||||
|
||||
[ "$check_sunxi_config" = "" -a "$check_cortexa7_config" = "" ] && echo "CONFIG_LEDS_TRIGGER_${i}=y" >> "$OMR_TARGET/source/target/linux/sunxi/cortexa7/config-$OMR_KERNEL"
|
||||
done
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
cd "$OMR_TARGET/source"
|
||||
|
||||
#if [ "$OMR_UEFI" = "yes" ] && [ "$OMR_TARGET" = "x86_64" ]; then
|
||||
# echo "Checking if UEFI patch is set or not"
|
||||
# if [ "$(grep 'EFI_IMAGES' target/linux/x86/image/Makefile)" = "" ]; then
|
||||
# patch -N -p1 -s < ../../patches/uefi.patch
|
||||
# fi
|
||||
# echo "Done"
|
||||
#else
|
||||
# if [ "$(grep 'EFI_IMAGES' target/linux/x86/image/Makefile)" != "" ]; then
|
||||
# patch -N -R -p1 -s < ../../patches/uefi.patch
|
||||
# fi
|
||||
#fi
|
||||
|
||||
#if [ "$OMR_TARGET" = "x86_64" ]; then
|
||||
# echo "Checking if Hyper-V patch is set or not"
|
||||
# if ! patch -Rf -N -p1 -s --dry-run < ../../patches/images.patch; then
|
||||
# patch -N -p1 -s < ../../patches/images.patch
|
||||
# fi
|
||||
# echo "Done"
|
||||
#fi
|
||||
|
||||
echo "Checking if No check patch is set or not"
|
||||
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/nocheck.patch; then
|
||||
echo "apply..."
|
||||
patch -N -p1 -s < ../../patches/nocheck.patch
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
echo "Checking if Nanqinlang patch is set or not"
|
||||
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/nanqinlang.patch; then
|
||||
echo "apply..."
|
||||
patch -N -p1 -s < ../../patches/nanqinlang.patch
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
# Add BBR2 patch, only working on 64bits images for now
|
||||
if [ "$OMR_TARGET" = "x86_64" ] || [ "$OMR_TARGET" = "bpi-r64" ] || [ "$OMR_TARGET" = "rpi4" ] || [ "$OMR_TARGET" = "espressobin" ] || [ "$OMR_TARGET" = "r2s" ] || [ "$OMR_TARGET" = "rpi3" ]; then
|
||||
echo "Checking if BBRv2 patch is set or not"
|
||||
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/bbr2.patch; then
|
||||
echo "apply..."
|
||||
patch -N -p1 -s < ../../patches/bbr2.patch
|
||||
fi
|
||||
echo "Done"
|
||||
fi
|
||||
|
||||
echo "Checking if smsc75xx patch is set or not"
|
||||
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/smsc75xx.patch; then
|
||||
echo "apply..."
|
||||
patch -N -p1 -s < ../../patches/smsc75xx.patch
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
#echo "Checking if ipt-nat patch is set or not"
|
||||
#if ! patch -Rf -N -p1 -s --dry-run < ../../patches/ipt-nat6.patch; then
|
||||
# echo "apply..."
|
||||
# patch -N -p1 -s < ../../patches/ipt-nat6.patch
|
||||
#fi
|
||||
#echo "Done"
|
||||
|
||||
#echo "Checking if mvebu patch is set or not"
|
||||
#if [ ! -d target/linux/mvebu/patches-5.4 ]; then
|
||||
# echo "apply..."
|
||||
# patch -N -p1 -s < ../../patches/mvebu-5.14.patch
|
||||
#fi
|
||||
#echo "Done"
|
||||
|
||||
echo "Checking if opkg install arguement too long patch is set or not"
|
||||
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/package-too-long.patch; then
|
||||
echo "apply..."
|
||||
patch -N -p1 -s < ../../patches/package-too-long.patch
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
echo "Download via IPv4"
|
||||
if ! patch -Rf -N -p1 -s --dry-run < ../../patches/download-ipv4.patch; then
|
||||
patch -N -p1 -s < ../../patches/download-ipv4.patch
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
#echo "Remove check rsync"
|
||||
#if [ "$(grep rsync include/prereq-build.mk)" != "" ]; then
|
||||
# patch -N -p1 -s < ../../patches/check-rsync.patch
|
||||
#fi
|
||||
#echo "Done"
|
||||
|
||||
if [ -f target/linux/mediatek/patches-5.4/0999-hnat.patch ]; then
|
||||
rm -f target/linux/mediatek/patches-5.4/0999-hnat.patch
|
||||
fi
|
||||
|
||||
if [ -f target/linux/ipq40xx/patches-5.4/100-GPIO-add-named-gpio-exports.patch ]; then
|
||||
rm -f target/linux/ipq40xx/patches-5.4/100-GPIO-add-named-gpio-exports.patch
|
||||
fi
|
||||
|
||||
#echo "Patch protobuf wrong hash"
|
||||
#patch -N -R -p1 -s < ../../patches/protobuf_hash.patch
|
||||
#echo "Done"
|
||||
|
||||
#echo "Remove gtime dependency"
|
||||
#if ! patch -Rf -N -p1 -s --dry-run < ../../patches/gtime.patch; then
|
||||
# patch -N -p1 -s < ../../patches/gtime.patch
|
||||
#fi
|
||||
#echo "Done"
|
||||
|
||||
if [ "$OMR_KERNEL" = "5.4" ]; then
|
||||
echo "Set to kernel 5.4 for rpi arch"
|
||||
find target/linux/bcm27xx -type f -name Makefile -exec sed -i 's%KERNEL_PATCHVER:=4.19%KERNEL_PATCHVER:=5.4%g' {} \;
|
||||
echo "Done"
|
||||
echo "Set to kernel 5.4 for x86 arch"
|
||||
find target/linux/x86 -type f -name Makefile -exec sed -i 's%KERNEL_PATCHVER:=4.19%KERNEL_PATCHVER:=5.4%g' {} \;
|
||||
echo "Done"
|
||||
echo "Set to kernel 5.4 for mvebu arch (WRT)"
|
||||
find target/linux/mvebu -type f -name Makefile -exec sed -i 's%KERNEL_PATCHVER:=4.19%KERNEL_PATCHVER:=5.4%g' {} \;
|
||||
echo "Done"
|
||||
echo "Set to kernel 5.4 for mediatek arch (BPI-R2)"
|
||||
find target/linux/mediatek -type f -name Makefile -exec sed -i 's%KERNEL_PATCHVER:=4.19%KERNEL_PATCHVER:=5.4%g' {} \;
|
||||
echo "Done"
|
||||
fi
|
||||
|
||||
#rm -rf feeds/packages/libs/libwebp
|
||||
cd "../.."
|
||||
rm -rf feeds/luci/modules/luci-mod-network
|
||||
[ -d feeds/${OMR_DIST}/luci-mod-status ] && rm -rf feeds/luci/modules/luci-mod-status
|
||||
[ -d feeds/${OMR_DIST}/luci-app-statistics ] && rm -rf feeds/luci/applications/luci-app-statistics
|
||||
|
||||
echo "Add Occitan translation support"
|
||||
if ! patch -Rf -N -p1 -s --dry-run < patches/luci-occitan.patch; then
|
||||
patch -N -p1 -s < patches/luci-occitan.patch
|
||||
#sh feeds/luci/build/i18n-add-language.sh oc
|
||||
fi
|
||||
[ -d $OMR_FEED/luci-base/po/oc ] && cp -rf $OMR_FEED/luci-base/po/oc feeds/luci/modules/luci-base/po/
|
||||
echo "Done"
|
||||
|
||||
cd "$OMR_TARGET/source"
|
||||
echo "Update feeds index"
|
||||
cp .config .config.keep
|
||||
scripts/feeds clean
|
||||
scripts/feeds install -a
|
||||
scripts/feeds update -a
|
||||
|
||||
#cd -
|
||||
#echo "Checking if fullconenat-luci patch is set or not"
|
||||
##if ! patch -Rf -N -p1 -s --dry-run < patches/fullconenat-luci.patch; then
|
||||
# echo "apply..."
|
||||
# patch -N -p1 -s < patches/fullconenat-luci.patch
|
||||
#fi
|
||||
#echo "Done"
|
||||
#cd "$OMR_TARGET/source"
|
||||
|
||||
if [ "$OMR_ALL_PACKAGES" = "yes" ]; then
|
||||
scripts/feeds install -a -d m -p packages
|
||||
scripts/feeds install -a -d m -p luci
|
||||
fi
|
||||
if [ -n "$CUSTOM_FEED" ]; then
|
||||
scripts/feeds install -a -d m -p openmptcprouter
|
||||
scripts/feeds install -a -d y -f -p ${OMR_DIST}
|
||||
else
|
||||
scripts/feeds install -a -d y -f -p openmptcprouter
|
||||
fi
|
||||
cp .config.keep .config
|
||||
echo "Done"
|
||||
|
||||
if [ ! -f "../../$OMR_TARGET_CONFIG" ]; then
|
||||
echo "Target $OMR_TARGET not found ! You have to configure and compile your kernel manually."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Building $OMR_DIST for the target $OMR_TARGET"
|
||||
make defconfig
|
||||
make IGNORE_ERRORS=m "$@"
|
||||
echo "Done"
|
82
root/target/linux/ipq40xx/base-files/etc/board.d/01_leds
Executable file
82
root/target/linux/ipq40xx/base-files/etc/board.d/01_leds
Executable file
|
@ -0,0 +1,82 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2015 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions/uci-defaults.sh
|
||||
|
||||
board_config_update
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
alfa-network,ap120c-ac)
|
||||
ucidef_set_led_netdev "wan" "WAN" "amber:wan" "eth1"
|
||||
;;
|
||||
asus,rt-ac58u)
|
||||
ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1"
|
||||
ucidef_set_led_switch "lan" "LAN" "blue:lan" "switch0" "0x1e"
|
||||
;;
|
||||
avm,fritzbox-4040)
|
||||
ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt" "phy1tpt"
|
||||
ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1"
|
||||
ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x1e"
|
||||
;;
|
||||
avm,fritzbox-7530 |\
|
||||
glinet,gl-b1300)
|
||||
ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt"
|
||||
;;
|
||||
edgecore,oap100)
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wlan5g" "phy1tpt"
|
||||
;;
|
||||
engenius,eap1300)
|
||||
ucidef_set_led_netdev "lan" "LAN" "blue:lan" "eth0"
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN5G" "yellow:wlan5g" "phy1tpt"
|
||||
ucidef_set_led_default "mesh" "MESH" "blue:mesh" "0"
|
||||
;;
|
||||
engenius,eap2200)
|
||||
ucidef_set_led_netdev "lan1" "LAN1" "blue:lan1" "eth0"
|
||||
ucidef_set_led_netdev "lan2" "LAN2" "blue:lan2" "eth1"
|
||||
;;
|
||||
engenius,ens620ext)
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy1tpt"
|
||||
ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth0"
|
||||
ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth1"
|
||||
;;
|
||||
mobipromo,cm520-79f)
|
||||
ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1"
|
||||
ucidef_set_led_switch "lan1" "LAN1" "blue:lan1" "switch0" "0x10"
|
||||
ucidef_set_led_switch "lan2" "LAN2" "blue:lan2" "switch0" "0x08"
|
||||
;;
|
||||
pangu,l1000)
|
||||
ucidef_set_led_default "power" "POWER" "blue:power" "1"
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wlan5g" "phy1tpt"
|
||||
ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1"
|
||||
ucidef_set_led_netdev "4g1" "4g1" "blue:4g1" "4g1"
|
||||
ucidef_set_led_netdev "4g2" "4g2" "blue:4g2" "4g2"
|
||||
ucidef_set_led_netdev "4g3" "4g3" "blue:4g3" "4g3"
|
||||
;;
|
||||
netgear,ex6100v2 |\
|
||||
netgear,ex6150v2)
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:router" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:client" "phy1tpt"
|
||||
;;
|
||||
qxwlan,e2600ac-c1 |\
|
||||
qxwlan,e2600ac-c2)
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN0" "green:wlan0" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN1" "green:wlan1" "phy1tpt"
|
||||
;;
|
||||
zyxel,nbg6617 |\
|
||||
zyxel,wre6606)
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy1tpt"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
189
root/target/linux/ipq40xx/base-files/etc/board.d/02_network
Executable file
189
root/target/linux/ipq40xx/base-files/etc/board.d/02_network
Executable file
|
@ -0,0 +1,189 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2015 The Linux Foundation. All rights reserved.
|
||||
# Copyright (c) 2011-2015 OpenWrt.org
|
||||
#
|
||||
|
||||
. /lib/functions/uci-defaults.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
ipq40xx_setup_interfaces()
|
||||
{
|
||||
local board="$1"
|
||||
|
||||
case "$board" in
|
||||
8dev,habanero-dvk|\
|
||||
8dev,jalapeno|\
|
||||
alfa-network,ap120c-ac|\
|
||||
engenius,emr3500|\
|
||||
engenius,ens620ext|\
|
||||
luma,wrtq-329acn|\
|
||||
plasmacloud,pa1200|\
|
||||
plasmacloud,pa2200)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
;;
|
||||
aruba,ap-303|\
|
||||
aruba,ap-365|\
|
||||
avm,fritzrepeater-1200|\
|
||||
dlink,dap-2610 |\
|
||||
engenius,eap1300|\
|
||||
engenius,emd1|\
|
||||
meraki,mr33|\
|
||||
netgear,ex6100v2|\
|
||||
netgear,ex6150v2|\
|
||||
zyxel,wre6606)
|
||||
ucidef_set_interface_lan "eth0"
|
||||
;;
|
||||
aruba,ap-303h)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "0u@eth1" "5:wan"
|
||||
;;
|
||||
asus,map-ac2200|\
|
||||
cilab,meshpoint-one|\
|
||||
edgecore,ecw5211|\
|
||||
edgecore,oap100|\
|
||||
openmesh,a42|\
|
||||
openmesh,a62)
|
||||
ucidef_set_interfaces_lan_wan "eth1" "eth0"
|
||||
;;
|
||||
asus,rt-ac58u|\
|
||||
p2w,r619ac-64m|\
|
||||
p2w,r619ac-128m|\
|
||||
zyxel,nbg6617)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
avm,fritzbox-4040|\
|
||||
linksys,ea6350v3|\
|
||||
pangu,l1000|\
|
||||
linksys,ea8300|\
|
||||
linksys,mr8300)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
|
||||
;;
|
||||
avm,fritzbox-7530)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
|
||||
;;
|
||||
avm,fritzrepeater-3000)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "4:lan:1" "5:lan:2"
|
||||
;;
|
||||
compex,wpj419|\
|
||||
compex,wpj428|\
|
||||
engenius,eap2200)
|
||||
ucidef_set_interface_lan "eth0 eth1"
|
||||
;;
|
||||
buffalo,wtr-m2133hp)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
cellc,rtl30vw)
|
||||
ucidef_set_interface_lan "eth0"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "3:lan" "4:lan"
|
||||
;;
|
||||
devolo,magic-2-wifi-next)
|
||||
ucidef_set_interface_lan "eth0 eth1 eth2"
|
||||
;;
|
||||
ezviz,cs-w3-wd1200g-eup)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "0u@eth1" "5:wan"
|
||||
;;
|
||||
glinet,gl-ap1300 |\
|
||||
glinet,gl-b1300 |\
|
||||
glinet,gl-s1300)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "3:lan" "4:lan"
|
||||
;;
|
||||
mobipromo,cm520-79f)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "3:lan:2" "4:lan:1"
|
||||
ucidef_set_interface_wan "eth1"
|
||||
;;
|
||||
qxwlan,e2600ac-c1 |\
|
||||
qxwlan,e2600ac-c2)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "3:lan" "4:lan" "0u@eth1" "5:wan"
|
||||
;;
|
||||
unielec,u4019-32m)
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
ucidef_add_switch "switch0" \
|
||||
"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "0u@eth1" "5:wan"
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported hardware. Network interfaces not initialized"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
ipq40xx_setup_macs()
|
||||
{
|
||||
local board="$1"
|
||||
local lan_mac=""
|
||||
local wan_mac=""
|
||||
local label_mac=""
|
||||
|
||||
case "$board" in
|
||||
8dev,habanero-dvk)
|
||||
label_mac=$(mtd_get_mac_binary "ART" 0x1006)
|
||||
;;
|
||||
asus,rt-ac58u)
|
||||
CI_UBIPART=UBI_DEV
|
||||
wan_mac=$(mtd_get_mac_binary_ubi Factory 0x1006)
|
||||
lan_mac=$(mtd_get_mac_binary_ubi Factory 0x5006)
|
||||
label_mac=$wan_mac
|
||||
;;
|
||||
cilab,meshpoint-one)
|
||||
label_mac=$(mtd_get_mac_binary "ART" 0x1006)
|
||||
;;
|
||||
devolo,magic-2-wifi-next)
|
||||
lan_mac=$(mtd_get_mac_ascii APPSBLENV MacAddress0)
|
||||
label_mac=$lan_mac
|
||||
;;
|
||||
dlink,dap-2610)
|
||||
lan_mac=$(mtd_get_mac_ascii bdcfg lanmac)
|
||||
label_mac=$lan_mac
|
||||
;;
|
||||
engenius,eap2200|\
|
||||
engenius,emd1)
|
||||
lan_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr)
|
||||
label_mac=$lan_mac
|
||||
;;
|
||||
engenius,emr3500)
|
||||
wan_mac=$(mtd_get_mac_ascii 0:APPSBLENV wanaddr)
|
||||
lan_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr)
|
||||
label_mac=$wan_mac
|
||||
;;
|
||||
engenius,ens620ext)
|
||||
wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
|
||||
lan_mac=$(macaddr_add "$wan_mac" 1)
|
||||
;;
|
||||
ezviz,cs-w3-wd1200g-eup)
|
||||
label_mac=$(mtd_get_mac_binary "ART" 0x6)
|
||||
;;
|
||||
linksys,ea6350v3)
|
||||
wan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr)
|
||||
lan_mac=$(macaddr_add "$wan_mac" 1)
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
|
||||
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
|
||||
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
|
||||
}
|
||||
|
||||
board_config_update
|
||||
board=$(board_name)
|
||||
ipq40xx_setup_interfaces $board
|
||||
ipq40xx_setup_macs $board
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
26
root/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches
Executable file
26
root/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /lib/functions/uci-defaults.sh
|
||||
|
||||
board_config_update
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
cellc,rtl30vw)
|
||||
ucidef_add_gpio_switch "w_disable" "W_DISABLE mPCIE pin" "398" "1"
|
||||
ucidef_add_gpio_switch "pmd_resin_n" "PMD_RESIN_N pin" "399" "1"
|
||||
ucidef_add_gpio_switch "mcpie_vcc" "LTE power" "400" "0"
|
||||
ucidef_add_gpio_switch "usb_vcc" "USB power" "401" "0"
|
||||
;;
|
||||
cilab,meshpoint-one)
|
||||
ucidef_add_gpio_switch "poe_passtrough" "POE passtrough enable" "413" "1"
|
||||
;;
|
||||
compex,wpj428)
|
||||
ucidef_add_gpio_switch "sim_card_select" "SIM card select" "3" "0"
|
||||
;;
|
||||
esac
|
||||
|
||||
board_config_flush
|
||||
|
||||
exit 0
|
274
root/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
Executable file
274
root/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
Executable file
|
@ -0,0 +1,274 @@
|
|||
#!/bin/sh
|
||||
|
||||
[ -e /lib/firmware/$FIRMWARE ] && exit 0
|
||||
|
||||
. /lib/functions/caldata.sh
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$FIRMWARE" in
|
||||
"ath10k/cal-pci-0000:01:00.0.bin")
|
||||
case "$board" in
|
||||
meraki,mr33)
|
||||
caldata_extract_ubi "ART" 0x9000 0x844
|
||||
caldata_valid "4408" || caldata_extract "ART" 0x9000 0x844
|
||||
ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +1)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"ath10k/pre-cal-pci-0000:01:00.0.bin")
|
||||
case "$board" in
|
||||
asus,map-ac2200)
|
||||
caldata_extract_ubi "Factory" 0x9000 0x2f20
|
||||
ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
|
||||
/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
|
||||
;;
|
||||
avm,fritzrepeater-3000)
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
|
||||
;;
|
||||
buffalo,wtr-m2133hp)
|
||||
caldata_extract "ART" 0x9000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x32)
|
||||
;;
|
||||
engenius,eap2200 |\
|
||||
openmesh,a62 |\
|
||||
plasmacloud,pa2200)
|
||||
caldata_extract "0:ART" 0x9000 0x2f20
|
||||
;;
|
||||
linksys,ea8300 |\
|
||||
linksys,mr8300)
|
||||
caldata_extract "ART" 0x9000 0x2f20
|
||||
# OEM assigns 4 sequential MACs
|
||||
ath10k_patch_mac $(macaddr_setbit_la $(macaddr_add "$(cat /sys/class/net/eth0/address)" 4))
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"ath10k/pre-cal-ahb-a000000.wifi.bin")
|
||||
case "$board" in
|
||||
8dev,habanero-dvk |\
|
||||
8dev,jalapeno |\
|
||||
alfa-network,ap120c-ac |\
|
||||
cilab,meshpoint-one |\
|
||||
ezviz,cs-w3-wd1200g-eup |\
|
||||
glinet,gl-ap1300 |\
|
||||
glinet,gl-b1300 |\
|
||||
glinet,gl-s1300 |\
|
||||
linksys,ea6350v3 |\
|
||||
mobipromo,cm520-79f |\
|
||||
p2w,r619ac-64m |\
|
||||
p2w,r619ac-128m |\
|
||||
qcom,ap-dk01.1-c1)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
;;
|
||||
aruba,ap-303 |\
|
||||
aruba,ap-303h |\
|
||||
aruba,ap-365)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_binary mfginfo 0x1D)
|
||||
;;
|
||||
asus,map-ac2200)
|
||||
caldata_extract_ubi "Factory" 0x1000 0x2f20
|
||||
;;
|
||||
asus,rt-ac58u)
|
||||
CI_UBIPART=UBI_DEV
|
||||
caldata_extract_ubi "Factory" 0x1000 0x2f20
|
||||
;;
|
||||
avm,fritzbox-4040)
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
|
||||
;;
|
||||
avm,fritzbox-7530 |\
|
||||
avm,fritzrepeater-1200 |\
|
||||
avm,fritzrepeater-3000)
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
|
||||
;;
|
||||
buffalo,wtr-m2133hp)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x26)
|
||||
;;
|
||||
cellc,rtl30vw |\
|
||||
compex,wpj419 |\
|
||||
compex,wpj428 |\
|
||||
edgecore,ecw5211 |\
|
||||
edgecore,oap100 |\
|
||||
engenius,eap1300 |\
|
||||
engenius,eap2200 |\
|
||||
luma,wrtq-329acn|\
|
||||
openmesh,a42 |\
|
||||
openmesh,a62 |\
|
||||
plasmacloud,pa1200 |\
|
||||
plasmacloud,pa2200 |\
|
||||
qxwlan,e2600ac-c1 |\
|
||||
qxwlan,e2600ac-c2 |\
|
||||
unielec,u4019-32m)
|
||||
caldata_extract "0:ART" 0x1000 0x2f20
|
||||
;;
|
||||
devolo,magic-2-wifi-next)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0)
|
||||
;;
|
||||
dlink,dap-2610)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac)
|
||||
;;
|
||||
engenius,emd1)
|
||||
caldata_extract "0:ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr)
|
||||
;;
|
||||
engenius,emr3500)
|
||||
caldata_extract "0:ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii 0:APPSBLENV ethaddr)
|
||||
;;
|
||||
engenius,ens620ext)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +2)
|
||||
;;
|
||||
linksys,ea8300 |\
|
||||
linksys,mr8300)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2)
|
||||
;;
|
||||
pangu,l1000)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2)
|
||||
;;
|
||||
meraki,mr33)
|
||||
caldata_extract_ubi "ART" 0x1000 0x2f20
|
||||
caldata_valid "202f" || caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +2)
|
||||
;;
|
||||
netgear,ex6100v2 |\
|
||||
netgear,ex6150v2)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_binary dnidata 0x0)
|
||||
;;
|
||||
zyxel,nbg6617 |\
|
||||
zyxel,wre6606)
|
||||
caldata_extract "ART" 0x1000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"ath10k/pre-cal-ahb-a800000.wifi.bin")
|
||||
case "$board" in
|
||||
8dev,habanero-dvk |\
|
||||
8dev,jalapeno |\
|
||||
alfa-network,ap120c-ac |\
|
||||
cilab,meshpoint-one |\
|
||||
ezviz,cs-w3-wd1200g-eup |\
|
||||
glinet,gl-ap1300 |\
|
||||
glinet,gl-b1300 |\
|
||||
glinet,gl-s1300 |\
|
||||
linksys,ea6350v3 |\
|
||||
mobipromo,cm520-79f |\
|
||||
p2w,r619ac-64m |\
|
||||
p2w,r619ac-128m |\
|
||||
qcom,ap-dk01.1-c1)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
;;
|
||||
aruba,ap-303 |\
|
||||
aruba,ap-303h |\
|
||||
aruba,ap-365)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary mfginfo 0x1D) +1)
|
||||
;;
|
||||
asus,map-ac2200)
|
||||
caldata_extract_ubi "Factory" 0x5000 0x2f20
|
||||
;;
|
||||
asus,rt-ac58u)
|
||||
CI_UBIPART=UBI_DEV
|
||||
caldata_extract_ubi "Factory" 0x5000 0x2f20
|
||||
;;
|
||||
avm,fritzbox-4040)
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config")
|
||||
;;
|
||||
avm,fritzbox-7530 |\
|
||||
avm,fritzrepeater-1200 |\
|
||||
avm,fritzrepeater-3000)
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
|
||||
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
|
||||
;;
|
||||
buffalo,wtr-m2133hp)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x2c)
|
||||
;;
|
||||
cellc,rtl30vw |\
|
||||
compex,wpj419 |\
|
||||
compex,wpj428 |\
|
||||
edgecore,ecw5211 |\
|
||||
edgecore,oap100 |\
|
||||
engenius,eap1300 |\
|
||||
engenius,eap2200 |\
|
||||
luma,wrtq-329acn|\
|
||||
openmesh,a42 |\
|
||||
openmesh,a62 |\
|
||||
plasmacloud,pa1200 |\
|
||||
plasmacloud,pa2200 |\
|
||||
qxwlan,e2600ac-c1 |\
|
||||
qxwlan,e2600ac-c2 |\
|
||||
unielec,u4019-32m)
|
||||
caldata_extract "0:ART" 0x5000 0x2f20
|
||||
;;
|
||||
devolo,magic-2-wifi-next)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1)
|
||||
;;
|
||||
dlink,dap-2610)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a)
|
||||
;;
|
||||
engenius,emd1)
|
||||
caldata_extract "0:ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr) +1)
|
||||
;;
|
||||
engenius,emr3500)
|
||||
caldata_extract "0:ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV ethaddr) +1)
|
||||
;;
|
||||
engenius,ens620ext)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +3)
|
||||
;;
|
||||
linksys,ea8300 |\
|
||||
linksys,mr8300)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
|
||||
;;
|
||||
pangu,l1000)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3)
|
||||
;;
|
||||
meraki,mr33)
|
||||
caldata_extract_ubi "ART" 0x5000 0x2f20
|
||||
caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +3)
|
||||
;;
|
||||
netgear,ex6100v2 |\
|
||||
netgear,ex6150v2)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(mtd_get_mac_binary dnidata 0xc)
|
||||
;;
|
||||
zyxel,nbg6617 |\
|
||||
zyxel,wre6606)
|
||||
caldata_extract "ART" 0x5000 0x2f20
|
||||
ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
19
root/target/linux/ipq40xx/base-files/etc/init.d/adjust_network
Executable file
19
root/target/linux/ipq40xx/base-files/etc/init.d/adjust_network
Executable file
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2006-2011 OpenWrt.org
|
||||
|
||||
START=11
|
||||
STOP=98
|
||||
|
||||
adjust_smp_affinity() {
|
||||
test -f /lib/adjust_network.sh && {
|
||||
. /lib/adjust_network.sh
|
||||
|
||||
adjust_eth_queue
|
||||
adjust_edma_smp_affinity
|
||||
adjust_radio_smp_affinity
|
||||
}
|
||||
}
|
||||
|
||||
boot() {
|
||||
adjust_smp_affinity
|
||||
}
|
89
root/target/linux/ipq40xx/base-files/lib/adjust_network.sh
Executable file
89
root/target/linux/ipq40xx/base-files/lib/adjust_network.sh
Executable file
|
@ -0,0 +1,89 @@
|
|||
#!/bin/sh
|
||||
# this scripts is used for adjust cpu's choice of interrupts.
|
||||
#
|
||||
|
||||
################################################
|
||||
# Adjust smp_affinity of edma
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
# Remark:
|
||||
# execute only once on start-up.
|
||||
################################################
|
||||
adjust_edma_smp_affinity() {
|
||||
grep -q edma_eth_ /proc/interrupts || return 0
|
||||
local nr=`cat /proc/cpuinfo | grep processor | wc -l`
|
||||
local cpu=0
|
||||
local tx_irq_num
|
||||
|
||||
for tx_num in `seq 0 1 15` ; do
|
||||
cpu=`printf "%x" $((1<<((tx_num/4+0)%nr)))`
|
||||
tx_irq_num=`grep -m1 edma_eth_tx$tx_num /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
|
||||
[ -n "$tx_irq_num" ] && echo $cpu > /proc/irq/$tx_irq_num/smp_affinity
|
||||
done
|
||||
|
||||
for rx_num in `seq 0 1 7` ; do
|
||||
cpu=`printf "%x" $((1<<((rx_num/2)%nr)))`
|
||||
rx_irq_num=`grep -m1 edma_eth_rx$rx_num /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '`
|
||||
[ -n "$rx_irq_num" ] && echo $cpu > /proc/irq/$rx_irq_num/smp_affinity
|
||||
done
|
||||
}
|
||||
|
||||
################################################
|
||||
# Adjust smp_affinity of ath10k for 2G and 5G
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
# Remark:
|
||||
# execute only once on start-up.
|
||||
################################################
|
||||
adjust_radio_smp_affinity() {
|
||||
local irqs="`grep -E 'ath10k' /proc/interrupts | cut -d ':' -f 1 | tr -d ' '`"
|
||||
local nr=`cat /proc/cpuinfo | grep processor | wc -l`
|
||||
local idx=2
|
||||
|
||||
for irq in $irqs; do
|
||||
cpu=`printf "%x" $((1<<((idx)%nr)))`
|
||||
echo $cpu > /proc/irq/$irq/smp_affinity
|
||||
idx=$((idx+1))
|
||||
done
|
||||
}
|
||||
|
||||
################################################
|
||||
# Adjust queue of eth
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
# Remark:
|
||||
# Each network reboot needs to be executed.
|
||||
################################################
|
||||
adjust_eth_queue() {
|
||||
local nr=`cat /proc/cpuinfo | grep processor | wc -l`
|
||||
local idx=0
|
||||
|
||||
for epath in /sys/class/net/eth[0-9]*; do
|
||||
test -e $epath || break
|
||||
echo $epath | grep -q "\." && continue
|
||||
eth=`basename $epath`
|
||||
idx=0
|
||||
for exps in /sys/class/net/$eth/queues/rx-[0-9]*/rps_cpus; do
|
||||
test -e $exps || break
|
||||
cpu=`printf "%x" $((1<<((idx+1)%nr)))`
|
||||
idx=$((idx+1))
|
||||
echo $cpu > $exps
|
||||
echo 256 > `dirname $exps`/rps_flow_cnt
|
||||
done
|
||||
which ethtool >/dev/null 2>&1 && ethtool -K $eth gro off
|
||||
done
|
||||
|
||||
echo 1024 > /proc/sys/net/core/rps_sock_flow_entries
|
||||
}
|
122
root/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh
Executable file
122
root/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh
Executable file
|
@ -0,0 +1,122 @@
|
|||
linksys_get_target_firmware() {
|
||||
local cur_boot_part mtd_ubi0
|
||||
|
||||
cur_boot_part="$(/usr/sbin/fw_printenv -n boot_part)"
|
||||
if [ -z "${cur_boot_part}" ]; then
|
||||
mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num)
|
||||
case "$(grep -E "^mtd${mtd_ubi0}:" /proc/mtd | cut -d '"' -f 2)" in
|
||||
kernel|rootfs)
|
||||
cur_boot_part=1
|
||||
;;
|
||||
alt_kernel|alt_rootfs)
|
||||
cur_boot_part=2
|
||||
;;
|
||||
esac
|
||||
>&2 printf "Current boot_part='%s' selected from ubi0/mtd_num='%s'" \
|
||||
"${cur_boot_part}" "${mtd_ubi0}"
|
||||
fi
|
||||
|
||||
# OEM U-Boot for EA6350v3, EA8300 and MR8300; bootcmd=
|
||||
# if test $auto_recovery = no;
|
||||
# then bootipq;
|
||||
# elif test $boot_part = 1;
|
||||
# then run bootpart1;
|
||||
# else run bootpart2;
|
||||
# fi
|
||||
|
||||
case "$cur_boot_part" in
|
||||
1)
|
||||
fw_setenv -s - <<-EOF
|
||||
boot_part 2
|
||||
auto_recovery yes
|
||||
EOF
|
||||
printf "alt_kernel"
|
||||
return
|
||||
;;
|
||||
2)
|
||||
fw_setenv -s - <<-EOF
|
||||
boot_part 1
|
||||
auto_recovery yes
|
||||
EOF
|
||||
printf "kernel"
|
||||
return
|
||||
;;
|
||||
*)
|
||||
return
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
linksys_get_root_magic() {
|
||||
(get_image "$@" | dd skip=786432 bs=4 count=1 | hexdump -v -n 4 -e '1/1 "%02x"') 2>/dev/null
|
||||
}
|
||||
|
||||
platform_do_upgrade_linksys() {
|
||||
local magic_long="$(get_magic_long "$1")"
|
||||
|
||||
local rm_oem_fw_vols="squashfs ubifs" # from OEM [alt_]rootfs UBI
|
||||
local vol
|
||||
|
||||
mkdir -p /var/lock
|
||||
local part_label="$(linksys_get_target_firmware)"
|
||||
touch /var/lock/fw_printenv.lock
|
||||
|
||||
if [ -z "$part_label" ]; then
|
||||
echo "cannot find target partition"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local target_mtd=$(find_mtd_part "$part_label")
|
||||
|
||||
[ "$magic_long" = "73797375" ] && {
|
||||
CI_KERNPART="$part_label"
|
||||
if [ "$part_label" = "kernel" ]; then
|
||||
CI_UBIPART="rootfs"
|
||||
else
|
||||
CI_UBIPART="alt_rootfs"
|
||||
fi
|
||||
|
||||
local mtdnum="$(find_mtd_index "$CI_UBIPART")"
|
||||
if [ ! "$mtdnum" ]; then
|
||||
echo "cannot find ubi mtd partition $CI_UBIPART"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local ubidev="$(nand_find_ubi "$CI_UBIPART")"
|
||||
if [ ! "$ubidev" ]; then
|
||||
ubiattach -m "$mtdnum"
|
||||
sync
|
||||
ubidev="$(nand_find_ubi "$CI_UBIPART")"
|
||||
fi
|
||||
|
||||
if [ "$ubidev" ]; then
|
||||
for vol in $rm_oem_fw_vols; do
|
||||
ubirmvol "/dev/$ubidev" -N "$vol" 2>/dev/null
|
||||
done
|
||||
fi
|
||||
|
||||
# complete std upgrade
|
||||
nand_upgrade_tar "$1"
|
||||
}
|
||||
|
||||
[ "$magic_long" = "27051956" ] && {
|
||||
# This magic is for a uImage (which is a sysupgrade image)
|
||||
# check firmwares' rootfs types
|
||||
local oldroot="$(linksys_get_root_magic "$target_mtd")"
|
||||
local newroot="$(linksys_get_root_magic "$1")"
|
||||
|
||||
if [ "$newroot" = "55424923" ] && [ "$oldroot" = "55424923" ]; then
|
||||
# we're upgrading from a firmware with UBI to one with UBI
|
||||
# erase everything to be safe
|
||||
# - Is that really needed? Won't remove (or comment) the if,
|
||||
# because it may be needed in a future device.
|
||||
#mtd erase $part_label
|
||||
#get_image "$1" | mtd -n write - $part_label
|
||||
echo "writing \"$1\" UBI image to \"$part_label\" (UBI)..."
|
||||
get_image "$1" | mtd write - "$part_label"
|
||||
else
|
||||
echo "writing \"$1\" image to \"$part_label\""
|
||||
get_image "$1" | mtd write - "$part_label"
|
||||
fi
|
||||
}
|
||||
}
|
106
root/target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh
Executable file
106
root/target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh
Executable file
|
@ -0,0 +1,106 @@
|
|||
# The U-Boot loader of the OpenMesh devices requires image sizes and
|
||||
# checksums to be provided in the U-Boot environment.
|
||||
# The OpenMesh devices come with 2 main partitions - while one is active
|
||||
# sysupgrade will flash the other. The boot order is changed to boot the
|
||||
# newly flashed partition. If the new partition can't be booted due to
|
||||
# upgrade failures the previously used partition is loaded.
|
||||
|
||||
platform_do_upgrade_openmesh() {
|
||||
local tar_file="$1"
|
||||
local restore_backup
|
||||
local primary_kernel_mtd
|
||||
|
||||
local setenv_script="/tmp/fw_env_upgrade"
|
||||
|
||||
local kernel_mtd="$(find_mtd_index $PART_NAME)"
|
||||
local kernel_offset="$(cat /sys/class/mtd/mtd${kernel_mtd}/offset)"
|
||||
local total_size="$(cat /sys/class/mtd/mtd${kernel_mtd}/size)"
|
||||
|
||||
# detect to which flash region the new image is written to.
|
||||
#
|
||||
# 1. check what is the mtd index for the first flash region on this
|
||||
# device
|
||||
# 2. check if the target partition ("inactive") has the mtd index of
|
||||
# the first flash region
|
||||
#
|
||||
# - when it is: the new bootseq will be 1,2 and the first region is
|
||||
# modified
|
||||
# - when it isnt: bootseq will be 2,1 and the second region is
|
||||
# modified
|
||||
#
|
||||
# The detection has to be done via the hardcoded mtd partition because
|
||||
# the current boot might be done with the fallback region. Let us
|
||||
# assume that the current bootseq is 1,2. The bootloader detected that
|
||||
# the image in flash region 1 is corrupt and thus switches to flash
|
||||
# region 2. The bootseq in the u-boot-env is now still the same and
|
||||
# the sysupgrade code can now only rely on the actual mtd indexes and
|
||||
# not the bootseq variable to detect the currently booted flash
|
||||
# region/image.
|
||||
#
|
||||
# In the above example, an implementation which uses bootseq ("1,2") to
|
||||
# detect the currently booted image would assume that region 1 is booted
|
||||
# and then overwrite the variables for the wrong flash region (aka the
|
||||
# one which isn't modified). This could result in a device which doesn't
|
||||
# boot anymore to Linux until it was reflashed with ap51-flash.
|
||||
local next_boot_part="1"
|
||||
case "$(board_name)" in
|
||||
openmesh,a42)
|
||||
primary_kernel_mtd=8
|
||||
;;
|
||||
openmesh,a62)
|
||||
primary_kernel_mtd=10
|
||||
;;
|
||||
*)
|
||||
echo "failed to detect primary kernel mtd partition for board"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
[ "$kernel_mtd" = "$primary_kernel_mtd" ] || next_boot_part="2"
|
||||
|
||||
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
||||
board_dir=${board_dir%/}
|
||||
|
||||
local kernel_length=$(tar xf $tar_file ${board_dir}/kernel -O | wc -c)
|
||||
local rootfs_length=$(tar xf $tar_file ${board_dir}/root -O | wc -c)
|
||||
# rootfs without EOF marker
|
||||
rootfs_length=$((rootfs_length-4))
|
||||
|
||||
local kernel_md5=$(tar xf $tar_file ${board_dir}/kernel -O | md5sum); kernel_md5="${kernel_md5%% *}"
|
||||
# md5 checksum of rootfs with EOF marker
|
||||
local rootfs_md5=$(tar xf $tar_file ${board_dir}/root -O | dd bs=1 count=$rootfs_length | md5sum); rootfs_md5="${rootfs_md5%% *}"
|
||||
|
||||
#
|
||||
# add tar support to get_image() to use default_do_upgrade() instead?
|
||||
#
|
||||
|
||||
# take care of restoring a saved config
|
||||
[ -n "$UPGRADE_BACKUP" ] && restore_backup="${MTD_CONFIG_ARGS} -j ${UPGRADE_BACKUP}"
|
||||
|
||||
mtd -q erase inactive
|
||||
tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME
|
||||
tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME
|
||||
|
||||
# prepare new u-boot env
|
||||
if [ "$next_boot_part" = "1" ]; then
|
||||
echo "bootseq 1,2" > $setenv_script
|
||||
else
|
||||
echo "bootseq 2,1" > $setenv_script
|
||||
fi
|
||||
|
||||
printf "kernel_size_%i 0x%08x\n" $next_boot_part $kernel_length >> $setenv_script
|
||||
printf "vmlinux_start_addr 0x%08x\n" ${kernel_offset} >> $setenv_script
|
||||
printf "vmlinux_size 0x%08x\n" ${kernel_length} >> $setenv_script
|
||||
printf "vmlinux_checksum %s\n" ${kernel_md5} >> $setenv_script
|
||||
|
||||
printf "rootfs_size_%i 0x%08x\n" $next_boot_part $((total_size-kernel_length)) >> $setenv_script
|
||||
printf "rootfs_start_addr 0x%08x\n" $((kernel_offset+kernel_length)) >> $setenv_script
|
||||
printf "rootfs_size 0x%08x\n" ${rootfs_length} >> $setenv_script
|
||||
printf "rootfs_checksum %s\n" ${rootfs_md5} >> $setenv_script
|
||||
|
||||
# store u-boot env changes
|
||||
mkdir -p /var/lock
|
||||
fw_setenv -s $setenv_script || {
|
||||
echo "failed to update U-Boot environment"
|
||||
return 1
|
||||
}
|
||||
}
|
131
root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
Executable file
131
root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
Executable file
|
@ -0,0 +1,131 @@
|
|||
PART_NAME=firmware
|
||||
REQUIRE_IMAGE_METADATA=1
|
||||
|
||||
RAMFS_COPY_BIN='fw_printenv fw_setenv'
|
||||
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
||||
|
||||
platform_check_image() {
|
||||
case "$(board_name)" in
|
||||
asus,rt-ac58u)
|
||||
CI_UBIPART="UBI_DEV"
|
||||
local ubidev=$(nand_find_ubi $CI_UBIPART)
|
||||
local asus_root=$(nand_find_volume $ubidev jffs2)
|
||||
|
||||
[ -n "$asus_root" ] || return 0
|
||||
|
||||
cat << EOF
|
||||
jffs2 partition is still present.
|
||||
There's probably no space left
|
||||
to install the filesystem.
|
||||
|
||||
You need to delete the jffs2 partition first:
|
||||
# ubirmvol /dev/ubi0 --name=jffs2
|
||||
|
||||
Once this is done. Retry.
|
||||
EOF
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
return 0;
|
||||
}
|
||||
|
||||
askey_do_upgrade() {
|
||||
local tar_file="$1"
|
||||
|
||||
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
||||
board_dir=${board_dir%/}
|
||||
|
||||
tar Oxf $tar_file ${board_dir}/root | mtd write - rootfs
|
||||
|
||||
nand_do_upgrade "$1"
|
||||
}
|
||||
|
||||
zyxel_do_upgrade() {
|
||||
local tar_file="$1"
|
||||
|
||||
local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
|
||||
board_dir=${board_dir%/}
|
||||
|
||||
tar Oxf $tar_file ${board_dir}/kernel | mtd write - kernel
|
||||
|
||||
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_do_upgrade() {
|
||||
case "$(board_name)" in
|
||||
8dev,jalapeno |\
|
||||
aruba,ap-303 |\
|
||||
pangu,l1000 |\
|
||||
aruba,ap-303h |\
|
||||
aruba,ap-365 |\
|
||||
avm,fritzbox-7530 |\
|
||||
avm,fritzrepeater-1200 |\
|
||||
avm,fritzrepeater-3000 |\
|
||||
buffalo,wtr-m2133hp |\
|
||||
cilab,meshpoint-one |\
|
||||
edgecore,ecw5211 |\
|
||||
edgecore,oap100 |\
|
||||
engenius,eap2200 |\
|
||||
glinet,gl-ap1300 |\
|
||||
luma,wrtq-329acn |\
|
||||
mobipromo,cm520-79f |\
|
||||
p2w,r619ac-64m |\
|
||||
p2w,r619ac-128m |\
|
||||
qxwlan,e2600ac-c2)
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
alfa-network,ap120c-ac)
|
||||
part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')"
|
||||
if [ "$part" = "rootfs1" ]; then
|
||||
fw_setenv active 2 || exit 1
|
||||
CI_UBIPART="rootfs2"
|
||||
else
|
||||
fw_setenv active 1 || exit 1
|
||||
CI_UBIPART="rootfs1"
|
||||
fi
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
asus,map-ac2200)
|
||||
CI_KERNPART="linux"
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
asus,rt-ac58u)
|
||||
CI_UBIPART="UBI_DEV"
|
||||
CI_KERNPART="linux"
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
cellc,rtl30vw)
|
||||
CI_UBIPART="ubifs"
|
||||
askey_do_upgrade "$1"
|
||||
;;
|
||||
compex,wpj419)
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
linksys,ea6350v3 |\
|
||||
linksys,ea8300 |\
|
||||
linksys,mr8300)
|
||||
platform_do_upgrade_linksys "$1"
|
||||
;;
|
||||
meraki,mr33)
|
||||
CI_KERNPART="part.safe"
|
||||
nand_do_upgrade "$1"
|
||||
;;
|
||||
openmesh,a42 |\
|
||||
openmesh,a62 |\
|
||||
plasmacloud,pa1200 |\
|
||||
plasmacloud,pa2200)
|
||||
PART_NAME="inactive"
|
||||
platform_do_upgrade_dualboot_datachk "$1"
|
||||
;;
|
||||
zyxel,nbg6617)
|
||||
zyxel_do_upgrade "$1"
|
||||
;;
|
||||
*)
|
||||
default_do_upgrade "$1"
|
||||
;;
|
||||
esac
|
||||
}
|
406
root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-l1000.dts
Executable file
406
root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-l1000.dts
Executable file
|
@ -0,0 +1,406 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
*
|
||||
* Copyright (c) 2018 Peng Zhang <sd20@qxwlan.com>
|
||||
*
|
||||
*/
|
||||
|
||||
#include "qcom-ipq4019.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/soc/qcom,tcsr.h>
|
||||
|
||||
/ {
|
||||
|
||||
model = "GZ841902_55860.com";
|
||||
compatible = "pangu,l1000", "qcom,ipq4019";
|
||||
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x80000000 0x20000000>; /* 512MB */
|
||||
};
|
||||
|
||||
aliases {
|
||||
sdhc1 = &sdhci;
|
||||
led-boot = &power;
|
||||
led-failsafe = &power;
|
||||
led-running = &power;
|
||||
led-upgrade = &power;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs";
|
||||
};
|
||||
|
||||
soc {
|
||||
rng@22000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
mdio@90000 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&mdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <2000>;
|
||||
};
|
||||
|
||||
ess-psgmii@98000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
tcsr@1949000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1949000 0x100>;
|
||||
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
|
||||
};
|
||||
|
||||
tcsr@194b000 {
|
||||
/* select hostmode */
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x194b000 0x100>;
|
||||
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ess_tcsr@1953000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1953000 0x1000>;
|
||||
qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
|
||||
};
|
||||
|
||||
tcsr@1957000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1957000 0x100>;
|
||||
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
|
||||
};
|
||||
|
||||
usb2@60f8800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb3@8af8800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
crypto@8e3a000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
watchdog@b017000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ess-switch@c000000 {
|
||||
status = "okay";
|
||||
switch_lan_bmp = <0x18>;
|
||||
switch_wan_bmp = <0x20>;
|
||||
};
|
||||
|
||||
i2c@78b7000 { /* BLSP1 QUP2 */
|
||||
pinctrl-0 = <&i2c_0_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
edma@c080000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
power: status {
|
||||
label = "blue:status";
|
||||
gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wlan2g {
|
||||
label = "blue:wlan2g";
|
||||
gpios = <&tlmm 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wlan5g {
|
||||
label = "bule:wlan5g";
|
||||
gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan {
|
||||
label = "bule:wan";
|
||||
gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
4g1 {
|
||||
label = "bule:4g1";
|
||||
gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
4g2 {
|
||||
label = "bule:4g2";
|
||||
gpios = <&tlmm 45 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
4g3 {
|
||||
label = "bule:4g3";
|
||||
gpios = <&tlmm 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
usb {
|
||||
label = "bule:usb";
|
||||
gpios = <&tlmm 5 GPIO_ACTIVE_LOW>;
|
||||
trigger-sources = <&usb2>, <&usb3>;
|
||||
linux,default-trigger = "usbport";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&vqmmc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&sd_pins>;
|
||||
pinctrl-names = "default";
|
||||
cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
|
||||
vqmmc-supply = <&vqmmc>;
|
||||
};
|
||||
|
||||
&blsp_dma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cryptobam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp1_spi1 {
|
||||
pinctrl-0 = <&spi_0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <24000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
SBL1@0 {
|
||||
label = "SBL1";
|
||||
reg = <0x0 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
MIBIB@40000 {
|
||||
label = "MIBIB";
|
||||
reg = <0x40000 0x20000>;
|
||||
};
|
||||
|
||||
QSEE@60000 {
|
||||
label = "QSEE";
|
||||
reg = <0x60000 0x60000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
CDT@c0000 {
|
||||
label = "CDT";
|
||||
reg = <0xc0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
DDRPARAMS@d0000 {
|
||||
label = "DDRPARAMS";
|
||||
reg = <0xd0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
APPSBLENV@e0000 {
|
||||
label = "APPSBLENV";
|
||||
reg = <0xe0000 0x10000>;
|
||||
};
|
||||
|
||||
APPSBL@f0000 {
|
||||
label = "APPSBL";
|
||||
reg = <0xf0000 0x80000>;
|
||||
};
|
||||
|
||||
ART@170000 {
|
||||
label = "ART";
|
||||
reg = <0x170000 0x10000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
pinctrl-0 = <&nand_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
rootfs@0 {
|
||||
label = "rootfs";
|
||||
reg = <0x0 0x8000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp1_uart1 {
|
||||
pinctrl-0 = <&serial_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp1_uart2 {
|
||||
pinctrl-0 = <&serial_1_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
serial_pins: serial_pinmux {
|
||||
mux {
|
||||
pins = "gpio16", "gpio17";
|
||||
function = "blsp_uart0";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
mdio_pins: mdio_pinmux {
|
||||
mux_1 {
|
||||
pins = "gpio6";
|
||||
function = "mdio";
|
||||
bias-pull-up;
|
||||
};
|
||||
mux_2 {
|
||||
pins = "gpio7";
|
||||
function = "mdc";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
serial_1_pins: serial1_pinmux {
|
||||
mux {
|
||||
pins = "gpio8", "gpio9",
|
||||
"gpio10", "gpio11";
|
||||
function = "blsp_uart1";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c_0_pins: i2c-0-pinmux {
|
||||
mux {
|
||||
pins = "gpio20", "gpio21";
|
||||
function = "blsp_i2c0";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
spi_0_pins: spi_0_pinmux {
|
||||
pinmux {
|
||||
function = "blsp_spi0";
|
||||
pins = "gpio13", "gpio14", "gpio15";
|
||||
};
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio12";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio13", "gpio14", "gpio15";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
pinconf_cs {
|
||||
pins = "gpio12";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
nand_pins: nand_pins {
|
||||
pullups {
|
||||
pins = "gpio52", "gpio53", "gpio58",
|
||||
"gpio59";
|
||||
function = "qpic";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
pulldowns {
|
||||
pins = "gpio54", "gpio55", "gpio56",
|
||||
"gpio57", "gpio60", "gpio61",
|
||||
"gpio62", "gpio63", "gpio64",
|
||||
"gpio65", "gpio66", "gpio67",
|
||||
"gpio68", "gpio69";
|
||||
function = "qpic";
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
sd_pins: sd_pins {
|
||||
pinmux {
|
||||
function = "sdio";
|
||||
pins = "gpio23", "gpio24", "gpio25", "gpio26",
|
||||
"gpio28", "gpio29", "gpio30", "gpio31";
|
||||
drive-strength = <10>;
|
||||
};
|
||||
|
||||
pinmux_sd_clk {
|
||||
function = "sdio";
|
||||
pins = "gpio27";
|
||||
drive-strength = <16>;
|
||||
};
|
||||
|
||||
pinmux_sd7 {
|
||||
function = "sdio";
|
||||
pins = "gpio32";
|
||||
drive-strength = <10>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb2_hs_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3_hs_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3_ss_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wifi0 {
|
||||
status = "okay";
|
||||
qcom,ath10k-calibration-variant = "PANGU-L1000";
|
||||
};
|
||||
|
||||
&wifi1 {
|
||||
status = "okay";
|
||||
qcom,ath10k-calibration-variant = "PANGU-L1000";
|
||||
};
|
|
@ -0,0 +1,29 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "qcom-ipq4019-r619ac.dtsi"
|
||||
|
||||
/ {
|
||||
model = "P&W R619AC 128M";
|
||||
compatible = "p2w,r619ac-128m";
|
||||
|
||||
chosen {
|
||||
bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs";
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "rootfs";
|
||||
reg = <0x0 0x8000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,29 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "qcom-ipq4019-r619ac.dtsi"
|
||||
|
||||
/ {
|
||||
model = "P&W R619AC 64M";
|
||||
compatible = "p2w,r619ac-64m";
|
||||
|
||||
chosen {
|
||||
bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs";
|
||||
};
|
||||
};
|
||||
|
||||
&nand {
|
||||
status = "okay";
|
||||
|
||||
nand@0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "rootfs";
|
||||
reg = <0x0 0x4000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
319
root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dtsi
Executable file
319
root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dtsi
Executable file
|
@ -0,0 +1,319 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
#include "qcom-ipq4019.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/soc/qcom,tcsr.h>
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
led-boot = &led_sys;
|
||||
led-failsafe = &led_sys;
|
||||
led-running = &led_sys;
|
||||
led-upgrade = &led_sys;
|
||||
label-mac-device = &gmac0;
|
||||
};
|
||||
|
||||
soc {
|
||||
rng@22000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
mdio@90000 {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&mdio_pins>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
ess-psgmii@98000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
tcsr@1949000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1949000 0x100>;
|
||||
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
|
||||
};
|
||||
|
||||
tcsr@194b000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x194b000 0x100>;
|
||||
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
|
||||
};
|
||||
|
||||
ess_tcsr@1953000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1953000 0x1000>;
|
||||
qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
|
||||
};
|
||||
|
||||
tcsr@1957000 {
|
||||
compatible = "qcom,tcsr";
|
||||
reg = <0x1957000 0x100>;
|
||||
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
|
||||
};
|
||||
|
||||
usb2@60f8800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
usb3@8af8800 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
crypto@8e3a000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
watchdog@b017000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ess-switch@c000000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
edma@c080000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_sys: sys {
|
||||
label = "blue:sys";
|
||||
gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
wlan2g {
|
||||
label = "blue:wlan2g";
|
||||
gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
|
||||
wlan5g {
|
||||
label = "blue:wlan5g";
|
||||
gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "phy1tpt";
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&blsp_dma {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&blsp1_spi1 {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
reg = <0>;
|
||||
compatible = "jedec,spi-nor";
|
||||
spi-max-frequency = <24000000>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "SBL1";
|
||||
reg = <0x0 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "MIBIB";
|
||||
reg = <0x40000 0x20000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@60000 {
|
||||
label = "QSEE";
|
||||
reg = <0x60000 0x60000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@c0000 {
|
||||
label = "CDT";
|
||||
reg = <0xc0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@d0000 {
|
||||
label = "DDRPARAMS";
|
||||
reg = <0xd0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@e0000 {
|
||||
label = "APPSBLENV";
|
||||
reg = <0xe0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@f0000 {
|
||||
label = "APPSBL";
|
||||
reg = <0xf0000 0x80000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@170000 {
|
||||
label = "ART";
|
||||
reg = <0x170000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&blsp1_uart1 {
|
||||
pinctrl-0 = <&serial_0_pins>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cryptobam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcie_pins>;
|
||||
perst-gpio = <&tlmm 4 GPIO_ACTIVE_LOW>;
|
||||
wake-gpio = <&tlmm 40 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
/* Free slot for use */
|
||||
bridge@0,0 {
|
||||
reg = <0x00000000 0 0 0 0>;
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
};
|
||||
};
|
||||
|
||||
&qpic_bam {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci {
|
||||
pinctrl-0 = <&sd_0_pins>;
|
||||
pinctrl-names = "default";
|
||||
vqmmc-supply = <&vqmmc>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tlmm {
|
||||
pcie_pins: pcie_pinmux {
|
||||
mux {
|
||||
pins = "gpio2";
|
||||
function = "gpio";
|
||||
output-low;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
mdio_pins: mdio_pinmux {
|
||||
mux_1 {
|
||||
pins = "gpio6";
|
||||
function = "mdio";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
mux_2 {
|
||||
pins = "gpio7";
|
||||
function = "mdc";
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
sd_0_pins: sd_0_pinmux {
|
||||
mux_1 {
|
||||
pins = "gpio23", "gpio24", "gpio25", "gpio26", "gpio28";
|
||||
function = "sdio";
|
||||
drive-strength = <10>;
|
||||
};
|
||||
|
||||
mux_2 {
|
||||
pins = "gpio27";
|
||||
function = "sdio";
|
||||
drive-strength = <16>;
|
||||
};
|
||||
};
|
||||
|
||||
serial_0_pins: serial0-pinmux {
|
||||
mux {
|
||||
pins = "gpio16", "gpio17";
|
||||
function = "blsp_uart0";
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ðphy0 {
|
||||
qcom,single-led-1000;
|
||||
qcom,single-led-100;
|
||||
qcom,single-led-10;
|
||||
};
|
||||
|
||||
ðphy1 {
|
||||
qcom,single-led-1000;
|
||||
qcom,single-led-100;
|
||||
qcom,single-led-10;
|
||||
};
|
||||
|
||||
ðphy2 {
|
||||
qcom,single-led-1000;
|
||||
qcom,single-led-100;
|
||||
qcom,single-led-10;
|
||||
};
|
||||
|
||||
ðphy3 {
|
||||
qcom,single-led-1000;
|
||||
qcom,single-led-100;
|
||||
qcom,single-led-10;
|
||||
};
|
||||
|
||||
ðphy4 {
|
||||
qcom,single-led-1000;
|
||||
qcom,single-led-100;
|
||||
qcom,single-led-10;
|
||||
};
|
||||
|
||||
&usb3_ss_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb3_hs_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb2_hs_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&vqmmc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wifi0 {
|
||||
status = "okay";
|
||||
qcom,ath10k-calibration-variant = "P&W R619AC";
|
||||
};
|
||||
|
||||
&wifi1 {
|
||||
status = "okay";
|
||||
qcom,ath10k-calibration-variant = "P&W R619AC";
|
||||
};
|
849
root/target/linux/ipq40xx/image/generic.mk
Normal file
849
root/target/linux/ipq40xx/image/generic.mk
Normal file
|
@ -0,0 +1,849 @@
|
|||
|
||||
DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
|
||||
DEVICE_VARS += RAS_BOARD RAS_ROOTFS_SIZE RAS_VERSION
|
||||
DEVICE_VARS += WRGG_DEVNAME WRGG_SIGNATURE
|
||||
|
||||
define Device/FitImage
|
||||
KERNEL_SUFFIX := -fit-uImage.itb
|
||||
KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
||||
KERNEL_NAME := Image
|
||||
endef
|
||||
|
||||
define Device/FitImageLzma
|
||||
KERNEL_SUFFIX := -fit-uImage.itb
|
||||
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
||||
KERNEL_NAME := Image
|
||||
endef
|
||||
|
||||
define Device/FitzImage
|
||||
KERNEL_SUFFIX := -fit-zImage.itb
|
||||
KERNEL = kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
||||
KERNEL_NAME := zImage
|
||||
endef
|
||||
|
||||
define Device/UbiFit
|
||||
KERNEL_IN_UBI := 1
|
||||
IMAGES := nand-factory.ubi nand-sysupgrade.bin
|
||||
IMAGE/nand-factory.ubi := append-ubi
|
||||
IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
endef
|
||||
|
||||
define Device/DniImage
|
||||
$(call Device/FitzImage)
|
||||
NETGEAR_BOARD_ID :=
|
||||
NETGEAR_HW_ID :=
|
||||
IMAGES += factory.img
|
||||
IMAGE/factory.img := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | append-rootfs | pad-rootfs | netgear-dni
|
||||
IMAGE/sysupgrade.bin := append-kernel | pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
|
||||
append-rootfs | pad-rootfs | append-metadata | check-size
|
||||
endef
|
||||
|
||||
define Build/append-rootfshdr
|
||||
mkimage -A $(LINUX_KARCH) \
|
||||
-O linux -T filesystem \
|
||||
-C lzma -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
|
||||
-n root.squashfs -d $(IMAGE_ROOTFS) $@.new
|
||||
dd if=$@.new bs=64 count=1 >> $(IMAGE_KERNEL)
|
||||
endef
|
||||
|
||||
define Build/mkmylofw_32m
|
||||
$(eval device_id=$(word 1,$(1)))
|
||||
$(eval revision=$(word 2,$(1)))
|
||||
|
||||
let \
|
||||
size="$$(stat -c%s $@)" \
|
||||
pad="$(subst k,* 1024,$(BLOCKSIZE))" \
|
||||
pad="(pad - (size % pad)) % pad" \
|
||||
newsize='size + pad'; \
|
||||
$(STAGING_DIR_HOST)/bin/mkmylofw \
|
||||
-B WPE72 -i 0x11f6:$(device_id):0x11f6:$(device_id) -r $(revision) \
|
||||
-s 0x2000000 -p0x180000:$$newsize:al:0x80208000:"OpenWrt":$@ \
|
||||
$@.new
|
||||
@mv $@.new $@
|
||||
endef
|
||||
|
||||
define Build/qsdk-ipq-factory-nand-askey
|
||||
$(TOPDIR)/scripts/mkits-qsdk-ipq-image.sh $@.its\
|
||||
askey_kernel $(IMAGE_KERNEL) \
|
||||
askey_fs $(IMAGE_ROOTFS) \
|
||||
ubifs $@
|
||||
PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new
|
||||
@mv $@.new $@
|
||||
endef
|
||||
|
||||
define Build/SenaoFW
|
||||
-$(STAGING_DIR_HOST)/bin/mksenaofw \
|
||||
-n $(BOARD_NAME) -r $(VENDOR_ID) -p $(1) \
|
||||
-c $(DATECODE) -w $(2) -x $(CW_VER) -t 0 \
|
||||
-e $@ \
|
||||
-o $@.new
|
||||
@cp $@.new $@
|
||||
endef
|
||||
|
||||
define Build/wrgg-image
|
||||
mkwrggimg -i $@ \
|
||||
-o $@.new \
|
||||
-d "$(WRGG_DEVNAME)" \
|
||||
-s "$(WRGG_SIGNATURE)" \
|
||||
-v "" -m "" -B ""
|
||||
mv $@.new $@
|
||||
endef
|
||||
|
||||
define Device/8dev_habanero-dvk
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := 8devices
|
||||
DEVICE_MODEL := Habanero DVK
|
||||
IMAGE_SIZE := 30976k
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_PACKAGES := ipq-wifi-8dev_habanero-dvk
|
||||
IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | append-rootfs | pad-rootfs | append-metadata | check-size
|
||||
endef
|
||||
TARGET_DEVICES += 8dev_habanero-dvk
|
||||
|
||||
define Device/8dev_jalapeno-common
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
SOC := qcom-ipq4018
|
||||
endef
|
||||
|
||||
define Device/8dev_jalapeno
|
||||
$(call Device/8dev_jalapeno-common)
|
||||
DEVICE_VENDOR := 8devices
|
||||
DEVICE_MODEL := Jalapeno
|
||||
endef
|
||||
TARGET_DEVICES += 8dev_jalapeno
|
||||
|
||||
define Device/pangu_l1000
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := PANGU
|
||||
DEVICE_MODEL := L1000
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS := qcom-ipq4019-l1000
|
||||
KERNEL_INSTALL := 1
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
BOARD_NAME := l1000
|
||||
DEVICE_PACKAGES := ipq-wifi-pangu_l1000
|
||||
endef
|
||||
TARGET_DEVICES += pangu_l1000
|
||||
|
||||
define Device/p2w_r619ac
|
||||
$(call Device/FitzImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := P&W
|
||||
DEVICE_MODEL := R619AC
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS_CONFIG := config@10
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := ipq-wifi-p2w_r619ac
|
||||
endef
|
||||
|
||||
define Device/p2w_r619ac-64m
|
||||
$(call Device/p2w_r619ac)
|
||||
DEVICE_VARIANT := 64M NAND
|
||||
IMAGES += nand-factory.bin
|
||||
IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
|
||||
endef
|
||||
TARGET_DEVICES += p2w_r619ac-64m
|
||||
|
||||
define Device/p2w_r619ac-128m
|
||||
$(call Device/p2w_r619ac)
|
||||
DEVICE_VARIANT := 128M NAND
|
||||
endef
|
||||
TARGET_DEVICES += p2w_r619ac-128m
|
||||
|
||||
|
||||
define Device/alfa-network_ap120c-ac
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := ALFA Network
|
||||
DEVICE_MODEL := AP120C-AC
|
||||
SOC := qcom-ipq4018
|
||||
DEVICE_PACKAGES := kmod-usb-acm \
|
||||
kmod-tpm-i2c-atmel uboot-envtools
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
IMAGE_SIZE := 65536k
|
||||
IMAGES := nand-factory.bin nand-sysupgrade.bin
|
||||
IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
|
||||
endef
|
||||
TARGET_DEVICES += alfa-network_ap120c-ac
|
||||
|
||||
define Device/aruba_glenmorangie
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := Aruba
|
||||
SOC := qcom-ipq4029
|
||||
DEVICE_PACKAGES := ipq-wifi-aruba_ap-303
|
||||
endef
|
||||
|
||||
define Device/aruba_ap-303
|
||||
$(call Device/aruba_glenmorangie)
|
||||
DEVICE_MODEL := AP-303
|
||||
DEVICE_PACKAGES += uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += aruba_ap-303
|
||||
|
||||
define Device/aruba_ap-303h
|
||||
$(call Device/aruba_glenmorangie)
|
||||
DEVICE_MODEL := AP-303H
|
||||
endef
|
||||
TARGET_DEVICES += aruba_ap-303h
|
||||
|
||||
define Device/aruba_ap-365
|
||||
$(call Device/aruba_glenmorangie)
|
||||
DEVICE_MODEL := AP-365
|
||||
DEVICE_PACKAGES += kmod-hwmon-ad7418 uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += aruba_ap-365
|
||||
|
||||
define Device/asus_map-ac2200
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := ASUS
|
||||
DEVICE_MODEL := Lyra (MAP-AC2200)
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-ath3k
|
||||
endef
|
||||
TARGET_DEVICES += asus_map-ac2200
|
||||
|
||||
define Device/asus_rt-ac58u
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := ASUS
|
||||
DEVICE_MODEL := RT-AC58U
|
||||
SOC := qcom-ipq4018
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DTB_SIZE := 65536
|
||||
IMAGE_SIZE := 20439364
|
||||
FILESYSTEMS := squashfs
|
||||
# Someone - in their infinite wisdom - decided to put the firmware
|
||||
# version in front of the image name \03\00\00\04 => Version 3.0.0.4
|
||||
# Since u-boot works with strings we either need another fixup step
|
||||
# to add a version... or we are very careful not to add '\0' into that
|
||||
# string and call it a day.... Yeah, we do the latter!
|
||||
UIMAGE_NAME:=$(shell echo -e '\03\01\01\01RT-AC58U')
|
||||
DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers \
|
||||
kmod-usb-ledtrig-usbport
|
||||
endef
|
||||
TARGET_DEVICES += asus_rt-ac58u
|
||||
|
||||
define Device/avm_fritzbox-4040
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := AVM
|
||||
DEVICE_MODEL := FRITZ!Box 4040
|
||||
SOC := qcom-ipq4018
|
||||
BOARD_NAME := fritz4040
|
||||
IMAGE_SIZE := 29056k
|
||||
UBOOT_PATH := $(STAGING_DIR_IMAGE)/uboot-fritz4040.bin
|
||||
UBOOT_PARTITION_SIZE := 524288
|
||||
IMAGES += eva.bin
|
||||
IMAGE/eva.bin := append-uboot | pad-to $$$$(UBOOT_PARTITION_SIZE) | append-kernel | append-rootfs | pad-rootfs
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size
|
||||
DEVICE_PACKAGES := fritz-tffs fritz-caldata
|
||||
endef
|
||||
TARGET_DEVICES += avm_fritzbox-4040
|
||||
|
||||
define Device/avm_fritzbox-7530
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := AVM
|
||||
DEVICE_MODEL := FRITZ!Box 7530
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_PACKAGES := fritz-caldata fritz-tffs-nand
|
||||
endef
|
||||
TARGET_DEVICES += avm_fritzbox-7530
|
||||
|
||||
define Device/avm_fritzrepeater-1200
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := AVM
|
||||
DEVICE_MODEL := FRITZ!Repeater 1200
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_PACKAGES := fritz-caldata fritz-tffs-nand ipq-wifi-avm_fritzrepeater-1200
|
||||
endef
|
||||
TARGET_DEVICES += avm_fritzrepeater-1200
|
||||
|
||||
define Device/avm_fritzrepeater-3000
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := AVM
|
||||
DEVICE_MODEL := FRITZ!Repeater 3000
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9984-ct fritz-caldata fritz-tffs-nand
|
||||
endef
|
||||
TARGET_DEVICES += avm_fritzrepeater-3000
|
||||
|
||||
define Device/buffalo_wtr-m2133hp
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := Buffalo
|
||||
DEVICE_MODEL := WTR-M2133HP
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9984-ct ipq-wifi-buffalo_wtr-m2133hp
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
endef
|
||||
TARGET_DEVICES += buffalo_wtr-m2133hp
|
||||
|
||||
define Device/cellc_rtl30vw
|
||||
KERNEL_SUFFIX := -fit-uImage.itb
|
||||
KERNEL_INITRAMFS = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
|
||||
KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb | uImage lzma | pad-to 2048
|
||||
KERNEL_NAME := Image
|
||||
KERNEL_IN_UBI :=
|
||||
IMAGES := nand-factory.bin nand-sysupgrade.bin
|
||||
IMAGE/nand-factory.bin := append-rootfshdr | append-ubi | qsdk-ipq-factory-nand-askey
|
||||
IMAGE/nand-sysupgrade.bin := append-rootfshdr | sysupgrade-tar | append-metadata
|
||||
DEVICE_VENDOR := Cell C
|
||||
DEVICE_MODEL := RTL30VW
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS_CONFIG := config@5
|
||||
KERNEL_INSTALL := 1
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 57344k
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi ipq-wifi-cellc_rtl30vw
|
||||
endef
|
||||
TARGET_DEVICES += cellc_rtl30vw
|
||||
|
||||
define Device/cilab_meshpoint-one
|
||||
$(call Device/8dev_jalapeno-common)
|
||||
DEVICE_VENDOR := Crisis Innovation Lab
|
||||
DEVICE_MODEL := MeshPoint.One
|
||||
DEVICE_PACKAGES := kmod-i2c-gpio kmod-iio-bmp280-i2c kmod-hwmon-ina2xx kmod-rtc-pcf2127
|
||||
endef
|
||||
TARGET_DEVICES += cilab_meshpoint-one
|
||||
|
||||
define Device/compex_wpj419
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := Compex
|
||||
DEVICE_MODEL := WPJ419
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS_CONFIG := config@12
|
||||
KERNEL_INSTALL := 1
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
FILESYSTEMS := squashfs
|
||||
endef
|
||||
TARGET_DEVICES += compex_wpj419
|
||||
|
||||
define Device/compex_wpj428
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := Compex
|
||||
DEVICE_MODEL := WPJ428
|
||||
SOC := qcom-ipq4028
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
BLOCKSIZE := 64k
|
||||
IMAGE_SIZE := 31232k
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGES += cpximg-6a04.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
IMAGE/cpximg-6a04.bin := append-kernel | append-rootfs | pad-rootfs | mkmylofw_32m 0x8A2 3
|
||||
DEVICE_PACKAGES := kmod-gpio-beeper
|
||||
endef
|
||||
TARGET_DEVICES += compex_wpj428
|
||||
|
||||
define Device/devolo_magic-2-wifi-next
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := devolo
|
||||
DEVICE_MODEL := Magic 2 WiFi next
|
||||
SOC := qcom-ipq4018
|
||||
KERNEL_SIZE := 4096k
|
||||
|
||||
# If the bootloader sees 0xDEADC0DE and this trailer at the 64k boundary of a TFTP image
|
||||
# it will bootm it, just like we want for the initramfs.
|
||||
KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to 64k |\
|
||||
append-string -e '\xDE\xAD\xC0\xDE{"fl_initramfs":""}\x00'
|
||||
|
||||
IMAGE_SIZE := 26624k
|
||||
IMAGES := sysupgrade.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
DEVICE_PACKAGES := ipq-wifi-devolo_magic-2-wifi-next uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += devolo_magic-2-wifi-next
|
||||
|
||||
define Device/dlink_dap-2610
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := D-Link
|
||||
DEVICE_MODEL := DAP-2610
|
||||
SOC := qcom-ipq4018
|
||||
DEVICE_DTS_CONFIG := config@ap.dk01.1-c1
|
||||
BLOCKSIZE := 64k
|
||||
WRGG_DEVNAME := /dev/mtdblock/8
|
||||
WRGG_SIGNATURE := wapac30_dkbs_dap2610
|
||||
IMAGE_SIZE := 14080k
|
||||
IMAGES += factory.bin
|
||||
# Bootloader expects a special 160 byte header which is added by
|
||||
# wrgg-image.
|
||||
# Factory image size must be larger than 6MB, and size in wrgg header must
|
||||
# match actual factory image size to be flashable from D-Link http server.
|
||||
# Bootloader verifies checksum of wrgg image before booting, thus jffs2
|
||||
# cannot be part of the wrgg image. This is solved in the factory image by
|
||||
# having the rootfs at the end of the image (without pad-rootfs). And in
|
||||
# the sysupgrade image only the kernel is included in the wrgg checksum,
|
||||
# but this is not flashable from the D-link http server.
|
||||
# append-rootfs must start on an erase block boundary.
|
||||
IMAGE/factory.bin := append-kernel | pad-offset 6144k 160 | append-rootfs | wrgg-image | check-size
|
||||
IMAGE/sysupgrade.bin := append-kernel | wrgg-image | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size | append-metadata
|
||||
DEVICE_PACKAGES := ipq-wifi-dlink_dap2610
|
||||
endef
|
||||
TARGET_DEVICES += dlink_dap-2610
|
||||
|
||||
define Device/edgecore_ecw5211
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := Edgecore
|
||||
DEVICE_MODEL := ECW5211
|
||||
SOC := qcom-ipq4018
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := kmod-tpm-i2c-atmel kmod-usb-acm uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += edgecore_ecw5211
|
||||
|
||||
define Device/edgecore_oap100
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := Edgecore
|
||||
DEVICE_MODEL := OAP100
|
||||
SOC := qcom-ipq4019
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
IMAGES := nand-sysupgrade.bin
|
||||
DEVICE_DTS_CONFIG := config@ap.dk07.1-c1
|
||||
DEVICE_PACKAGES := ipq-wifi-edgecore_oap100 kmod-usb-acm kmod-usb-net kmod-usb-net-cdc-qmi uqmi
|
||||
endef
|
||||
TARGET_DEVICES += edgecore_oap100
|
||||
|
||||
define Device/engenius_eap1300
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := EnGenius
|
||||
DEVICE_MODEL := EAP1300
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
BOARD_NAME := eap1300
|
||||
SOC := qcom-ipq4018
|
||||
KERNEL_SIZE := 5120k
|
||||
IMAGE_SIZE := 25344k
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += engenius_eap1300
|
||||
|
||||
define Device/engenius_eap2200
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := EnGenius
|
||||
DEVICE_MODEL := EAP2200
|
||||
SOC := qcom-ipq4019
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-engenius_eap2200 -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers
|
||||
endef
|
||||
TARGET_DEVICES += engenius_eap2200
|
||||
|
||||
define Device/engenius_emd1
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := EnGenius
|
||||
DEVICE_MODEL := EMD1
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
SOC := qcom-ipq4018
|
||||
IMAGE_SIZE := 30720k
|
||||
IMAGES += factory.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
IMAGE/factory.bin := qsdk-ipq-factory-nor | check-size
|
||||
endef
|
||||
TARGET_DEVICES += engenius_emd1
|
||||
|
||||
define Device/engenius_emr3500
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := EnGenius
|
||||
DEVICE_MODEL := EMR3500
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
SOC := qcom-ipq4018
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 30720k
|
||||
IMAGES += factory.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
IMAGE/factory.bin := qsdk-ipq-factory-nor | check-size
|
||||
endef
|
||||
TARGET_DEVICES += engenius_emr3500
|
||||
|
||||
define Device/engenius_ens620ext
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := EnGenius
|
||||
DEVICE_MODEL := ENS620EXT
|
||||
SOC := qcom-ipq4018
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
BLOCKSIZE := 64k
|
||||
PAGESIZE := 256
|
||||
BOARD_NAME := ENS620EXT
|
||||
VENDOR_ID := 0x0101
|
||||
PRODUCT_ID := 0x79
|
||||
PRODUCT_ID_NEW := 0xA4
|
||||
DATECODE := 190507
|
||||
FW_VER := 3.1.2
|
||||
FW_VER_NEW := 3.5.6
|
||||
CW_VER := 1.8.99
|
||||
IMAGE_SIZE := 21312k
|
||||
KERNEL_SIZE := 5120k
|
||||
FILESYSTEMS := squashfs
|
||||
IMAGES += factory_30.bin factory_35.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | check-size | append-metadata
|
||||
IMAGE/factory_30.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size | SenaoFW $$$$(PRODUCT_ID) $$$$(FW_VER)
|
||||
IMAGE/factory_35.bin := qsdk-ipq-factory-nor | check-size | SenaoFW $$$$(PRODUCT_ID_NEW) $$$$(FW_VER_NEW)
|
||||
endef
|
||||
TARGET_DEVICES += engenius_ens620ext
|
||||
|
||||
define Device/ezviz_cs-w3-wd1200g-eup
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := EZVIZ
|
||||
DEVICE_MODEL := CS-W3-WD1200G
|
||||
DEVICE_VARIANT := EUP
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
IMAGE_SIZE := 14848k
|
||||
SOC := qcom-ipq4018
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \
|
||||
append-metadata
|
||||
DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers \
|
||||
ipq-wifi-ezviz_cs-w3-wd1200g-eup
|
||||
endef
|
||||
TARGET_DEVICES += ezviz_cs-w3-wd1200g-eup
|
||||
|
||||
define Device/glinet_gl-ap1300
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := GL.iNet
|
||||
DEVICE_MODEL := GL-AP1300
|
||||
SOC := qcom-ipq4018
|
||||
DEVICE_DTS_CONFIG := config@ap.dk01.1-c2
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
IMAGE_SIZE := 131072k
|
||||
KERNEL_INSTALL := 1
|
||||
DEVICE_PACKAGES := ipq-wifi-glinet_gl-ap1300
|
||||
endef
|
||||
TARGET_DEVICES += glinet_gl-ap1300
|
||||
|
||||
define Device/glinet_gl-b1300
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := GL.iNet
|
||||
DEVICE_MODEL := GL-B1300
|
||||
BOARD_NAME := gl-b1300
|
||||
SOC := qcom-ipq4029
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 26624k
|
||||
IMAGE/sysupgrade.bin := append-kernel |append-rootfs | pad-rootfs | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += glinet_gl-b1300
|
||||
|
||||
define Device/glinet_gl-s1300
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := GL.iNet
|
||||
DEVICE_MODEL := GL-S1300
|
||||
SOC := qcom-ipq4029
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 26624k
|
||||
IMAGES := sysupgrade.bin
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
DEVICE_PACKAGES := ipq-wifi-glinet_gl-s1300 kmod-fs-ext4 kmod-mmc kmod-spi-dev
|
||||
endef
|
||||
TARGET_DEVICES += glinet_gl-s1300
|
||||
|
||||
define Device/linksys_ea6350v3
|
||||
# The Linksys EA6350v3 has a uboot bootloader that does not
|
||||
# support either booting lzma kernel images nor booting UBI
|
||||
# partitions. This uboot, however, supports raw kernel images and
|
||||
# gzipped images.
|
||||
#
|
||||
# As for the time of writing this, the device will boot the kernel
|
||||
# from a fixed address with a fixed length of 3MiB. Also, the
|
||||
# device has a hard-coded kernel command line that requieres the
|
||||
# rootfs and alt_rootfs to be in mtd11 and mtd13 respectively.
|
||||
# Oh... and the kernel partition overlaps with the rootfs
|
||||
# partition (the same for alt_kernel and alt_rootfs).
|
||||
#
|
||||
# If you are planing re-partitioning the device, you may want to
|
||||
# keep those details in mind:
|
||||
# 1. The kernel adresses you should honor are 0x00000000 and
|
||||
# 0x02800000 respectively.
|
||||
# 2. The kernel size (plus the dtb) cannot exceed 3.00MiB in size.
|
||||
# 3. You can use 'zImage', but not a raw 'Image' packed with lzma.
|
||||
# 4. The kernel command line from uboot is harcoded to boot with
|
||||
# rootfs either in mtd11 or mtd13.
|
||||
$(call Device/FitzImage)
|
||||
DEVICE_VENDOR := Linksys
|
||||
DEVICE_MODEL := EA6350
|
||||
DEVICE_VARIANT := v3
|
||||
SOC := qcom-ipq4018
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
KERNEL_SIZE := 3072k
|
||||
IMAGE_SIZE := 37888k
|
||||
UBINIZE_OPTS := -E 5
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-kernel | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=EA6350v3
|
||||
DEVICE_PACKAGES := uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += linksys_ea6350v3
|
||||
|
||||
define Device/linksys_ea8300
|
||||
$(call Device/FitzImage)
|
||||
DEVICE_VENDOR := Linksys
|
||||
DEVICE_MODEL := EA8300
|
||||
SOC := qcom-ipq4019
|
||||
KERNEL_SIZE := 3072k
|
||||
IMAGE_SIZE := 87040k
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=EA8300
|
||||
DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9888-ct ipq-wifi-linksys_ea8300 kmod-usb-ledtrig-usbport
|
||||
endef
|
||||
TARGET_DEVICES += linksys_ea8300
|
||||
|
||||
define Device/linksys_mr8300
|
||||
$(call Device/FitzImage)
|
||||
DEVICE_VENDOR := Linksys
|
||||
DEVICE_MODEL := MR8300
|
||||
SOC := qcom-ipq4019
|
||||
KERNEL_SIZE := 3072k
|
||||
IMAGE_SIZE := 87040k
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=MR8300
|
||||
DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9888-ct ipq-wifi-linksys_mr8300-v0 kmod-usb-ledtrig-usbport
|
||||
endef
|
||||
TARGET_DEVICES += linksys_mr8300
|
||||
|
||||
define Device/luma_wrtq-329acn
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := Luma Home
|
||||
DEVICE_MODEL := WRTQ-329ACN
|
||||
SOC := qcom-ipq4018
|
||||
DEVICE_PACKAGES := ipq-wifi-luma_wrtq-329acn kmod-ath3k kmod-eeprom-at24 kmod-i2c-gpio uboot-envtools
|
||||
IMAGE_SIZE := 76632k
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
endef
|
||||
TARGET_DEVICES += luma_wrtq-329acn
|
||||
|
||||
define Device/meraki_mr33
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := Cisco Meraki
|
||||
DEVICE_MODEL := MR33
|
||||
SOC := qcom-ipq4029
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := -swconfig ath10k-firmware-qca9887-ct
|
||||
endef
|
||||
TARGET_DEVICES += meraki_mr33
|
||||
|
||||
define Device/mobipromo_cm520-79f
|
||||
$(call Device/FitzImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := MobiPromo
|
||||
DEVICE_MODEL := CM520-79F
|
||||
SOC := qcom-ipq4019
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := ipq-wifi-mobipromo_cm520-79f kmod-usb-ledtrig-usbport
|
||||
endef
|
||||
TARGET_DEVICES += mobipromo_cm520-79f
|
||||
|
||||
define Device/netgear_ex61x0v2
|
||||
$(call Device/DniImage)
|
||||
DEVICE_VENDOR := NETGEAR
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
NETGEAR_BOARD_ID := EX6150v2series
|
||||
NETGEAR_HW_ID := 29765285+16+0+128+2x2
|
||||
IMAGE_SIZE := 14400k
|
||||
SOC := qcom-ipq4018
|
||||
endef
|
||||
|
||||
define Device/netgear_ex6100v2
|
||||
$(call Device/netgear_ex61x0v2)
|
||||
DEVICE_MODEL := EX6100
|
||||
DEVICE_VARIANT := v2
|
||||
endef
|
||||
TARGET_DEVICES += netgear_ex6100v2
|
||||
|
||||
define Device/netgear_ex6150v2
|
||||
$(call Device/netgear_ex61x0v2)
|
||||
DEVICE_MODEL := EX6150
|
||||
DEVICE_VARIANT := v2
|
||||
endef
|
||||
TARGET_DEVICES += netgear_ex6150v2
|
||||
|
||||
define Device/openmesh_a42
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := OpenMesh
|
||||
DEVICE_MODEL := A42
|
||||
SOC := qcom-ipq4018
|
||||
DEVICE_DTS_CONFIG := config@om.a42
|
||||
BLOCKSIZE := 64k
|
||||
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE)
|
||||
IMAGE_SIZE := 15616k
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=A42
|
||||
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
||||
DEVICE_PACKAGES := uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += openmesh_a42
|
||||
|
||||
define Device/openmesh_a62
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := OpenMesh
|
||||
DEVICE_MODEL := A62
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS_CONFIG := config@om.a62
|
||||
BLOCKSIZE := 64k
|
||||
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE)
|
||||
IMAGE_SIZE := 15552k
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=A62
|
||||
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += openmesh_a62
|
||||
|
||||
define Device/plasmacloud_pa1200
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := Plasma Cloud
|
||||
DEVICE_MODEL := PA1200
|
||||
SOC := qcom-ipq4018
|
||||
DEVICE_DTS_CONFIG := config@pc.pa1200
|
||||
BLOCKSIZE := 64k
|
||||
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE)
|
||||
IMAGE_SIZE := 15616k
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=PA1200
|
||||
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
||||
DEVICE_PACKAGES := uboot-envtools ipq-wifi-plasmacloud-pa1200
|
||||
endef
|
||||
TARGET_DEVICES += plasmacloud_pa1200
|
||||
|
||||
define Device/plasmacloud_pa2200
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := Plasma Cloud
|
||||
DEVICE_MODEL := PA2200
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS_CONFIG := config@pc.pa2200
|
||||
BLOCKSIZE := 64k
|
||||
KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE)
|
||||
IMAGE_SIZE := 15552k
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=PA2200
|
||||
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-plasmacloud-pa2200 uboot-envtools
|
||||
endef
|
||||
TARGET_DEVICES += plasmacloud_pa2200
|
||||
|
||||
define Device/qcom_ap-dk01.1-c1
|
||||
DEVICE_VENDOR := Qualcomm Atheros
|
||||
DEVICE_MODEL := AP-DK01.1
|
||||
DEVICE_VARIANT := C1
|
||||
BOARD_NAME := ap-dk01.1-c1
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS := qcom-ipq4019-ap.dk01.1-c1
|
||||
KERNEL_INSTALL := 1
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 26624k
|
||||
$(call Device/FitImage)
|
||||
IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += qcom_ap-dk01.1-c1
|
||||
|
||||
define Device/qcom_ap-dk04.1-c1
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := Qualcomm Atheros
|
||||
DEVICE_MODEL := AP-DK04.1
|
||||
DEVICE_VARIANT := C1
|
||||
SOC := qcom-ipq4019
|
||||
DEVICE_DTS := qcom-ipq4019-ap.dk04.1-c1
|
||||
KERNEL_INSTALL := 1
|
||||
KERNEL_SIZE := 4048k
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
BOARD_NAME := ap-dk04.1-c1
|
||||
endef
|
||||
TARGET_DEVICES += qcom_ap-dk04.1-c1
|
||||
|
||||
define Device/qxwlan_e2600ac-c1
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := Qxwlan
|
||||
DEVICE_MODEL := E2600AC
|
||||
DEVICE_VARIANT := C1
|
||||
BOARD_NAME := e2600ac-c1
|
||||
SOC := qcom-ipq4019
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 31232k
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
DEVICE_PACKAGES := ipq-wifi-qxwlan_e2600ac
|
||||
endef
|
||||
TARGET_DEVICES += qxwlan_e2600ac-c1
|
||||
|
||||
define Device/qxwlan_e2600ac-c2
|
||||
$(call Device/FitImage)
|
||||
$(call Device/UbiFit)
|
||||
DEVICE_VENDOR := Qxwlan
|
||||
DEVICE_MODEL := E2600AC
|
||||
DEVICE_VARIANT := C2
|
||||
SOC := qcom-ipq4019
|
||||
KERNEL_INSTALL := 1
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
DEVICE_PACKAGES := ipq-wifi-qxwlan_e2600ac
|
||||
endef
|
||||
TARGET_DEVICES += qxwlan_e2600ac-c2
|
||||
|
||||
define Device/unielec_u4019-32m
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := Unielec
|
||||
DEVICE_MODEL := U4019
|
||||
DEVICE_VARIANT := 32M
|
||||
BOARD_NAME := u4019-32m
|
||||
SOC := qcom-ipq4019
|
||||
KERNEL_SIZE := 4096k
|
||||
IMAGE_SIZE := 31232k
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
endef
|
||||
TARGET_DEVICES += unielec_u4019-32m
|
||||
|
||||
define Device/zyxel_nbg6617
|
||||
$(call Device/FitImageLzma)
|
||||
DEVICE_VENDOR := ZyXEL
|
||||
DEVICE_MODEL := NBG6617
|
||||
SOC := qcom-ipq4018
|
||||
KERNEL_SIZE := 4096k
|
||||
ROOTFS_SIZE := 24960k
|
||||
RAS_BOARD := NBG6617
|
||||
RAS_ROOTFS_SIZE := 19840k
|
||||
RAS_VERSION := "$(VERSION_DIST) $(REVISION)"
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
||||
IMAGES += factory.bin
|
||||
# The ZyXEL firmware allows flashing thru the web-gui only when the rootfs is
|
||||
# at least as large as the one of the initial firmware image (not the current
|
||||
# one on the device). This only applies to the Web-UI, the bootlaoder ignores
|
||||
# this minimum-size. However, the larger image can be flashed both ways.
|
||||
IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k | check-size $$$$(ROOTFS_SIZE) | zyxel-ras-image separate-kernel
|
||||
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | check-size $$$$(ROOTFS_SIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
|
||||
DEVICE_PACKAGES := uboot-envtools kmod-usb-ledtrig-usbport
|
||||
endef
|
||||
TARGET_DEVICES += zyxel_nbg6617
|
||||
|
||||
define Device/zyxel_wre6606
|
||||
$(call Device/FitImage)
|
||||
DEVICE_VENDOR := ZyXEL
|
||||
DEVICE_MODEL := WRE6606
|
||||
DEVICE_DTS_CONFIG := config@4
|
||||
SOC := qcom-ipq4018
|
||||
IMAGE_SIZE := 13184k
|
||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size
|
||||
DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers
|
||||
endef
|
||||
TARGET_DEVICES += zyxel_wre6606
|
74
root/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
Executable file
74
root/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
Executable file
|
@ -0,0 +1,74 @@
|
|||
From a10fab12a927e60b7141a602e740d70cb4d09e4a Mon Sep 17 00:00:00 2001
|
||||
From: John Crispin <john@phrozen.org>
|
||||
Date: Thu, 9 Mar 2017 11:03:18 +0100
|
||||
Subject: [PATCH] arm: boot: add dts files
|
||||
|
||||
Signed-off-by: John Crispin <john@phrozen.org>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 23 +++++++++++++++++++++++
|
||||
1 file changed, 23 insertions(+)
|
||||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -837,11 +837,61 @@ dtb-$(CONFIG_ARCH_QCOM) += \
|
||||
qcom-apq8074-dragonboard.dtb \
|
||||
qcom-apq8084-ifc6540.dtb \
|
||||
qcom-apq8084-mtp.dtb \
|
||||
+ qcom-ipq4018-a42.dtb \
|
||||
+ qcom-ipq4018-ap120c-ac.dtb \
|
||||
+ qcom-ipq4018-dap-2610.dtb \
|
||||
+ qcom-ipq4018-cs-w3-wd1200g-eup.dtb \
|
||||
+ qcom-ipq4018-magic-2-wifi-next.dtb \
|
||||
+ qcom-ipq4018-ea6350v3.dtb \
|
||||
+ qcom-ipq4018-eap1300.dtb \
|
||||
+ qcom-ipq4018-ecw5211.dtb \
|
||||
+ qcom-ipq4018-emd1.dtb \
|
||||
+ qcom-ipq4018-emr3500.dtb \
|
||||
+ qcom-ipq4018-ens620ext.dtb \
|
||||
+ qcom-ipq4018-ex6100v2.dtb \
|
||||
+ qcom-ipq4018-ex6150v2.dtb \
|
||||
+ qcom-ipq4018-fritzbox-4040.dtb \
|
||||
+ qcom-ipq4018-gl-ap1300.dtb \
|
||||
+ qcom-ipq4018-jalapeno.dtb \
|
||||
+ qcom-ipq4018-meshpoint-one.dtb \
|
||||
+ qcom-ipq4018-nbg6617.dtb \
|
||||
+ qcom-ipq4019-oap100.dtb \
|
||||
+ qcom-ipq4018-pa1200.dtb \
|
||||
+ qcom-ipq4018-rt-ac58u.dtb \
|
||||
+ qcom-ipq4018-wre6606.dtb \
|
||||
+ qcom-ipq4018-wrtq-329acn.dtb \
|
||||
qcom-ipq4019-ap.dk01.1-c1.dtb \
|
||||
qcom-ipq4019-ap.dk04.1-c1.dtb \
|
||||
qcom-ipq4019-ap.dk04.1-c3.dtb \
|
||||
qcom-ipq4019-ap.dk07.1-c1.dtb \
|
||||
qcom-ipq4019-ap.dk07.1-c2.dtb \
|
||||
+ qcom-ipq4019-a62.dtb \
|
||||
+ qcom-ipq4019-cm520-79f.dtb \
|
||||
+ qcom-ipq4019-ea8300.dtb \
|
||||
+ qcom-ipq4019-eap2200.dtb \
|
||||
+ qcom-ipq4019-fritzbox-7530.dtb \
|
||||
+ qcom-ipq4019-fritzrepeater-1200.dtb \
|
||||
+ qcom-ipq4019-fritzrepeater-3000.dtb \
|
||||
+ qcom-ipq4019-map-ac2200.dtb \
|
||||
+ qcom-ipq4019-mr8300.dtb \
|
||||
+ qcom-ipq4019-e2600ac-c1.dtb \
|
||||
+ qcom-ipq4019-e2600ac-c2.dtb \
|
||||
+ qcom-ipq4019-habanero-dvk.dtb \
|
||||
+ qcom-ipq4019-pa2200.dtb \
|
||||
+ qcom-ipq4019-r619ac-64m.dtb \
|
||||
+ qcom-ipq4019-r619ac-128m.dtb \
|
||||
+ qcom-ipq4019-l1000.dtb \
|
||||
+ qcom-ipq4019-rtl30vw.dtb \
|
||||
+ qcom-ipq4019-u4019-32m.dtb \
|
||||
+ qcom-ipq4019-wpj419.dtb \
|
||||
+ qcom-ipq4019-wtr-m2133hp.dtb \
|
||||
+ qcom-ipq4028-wpj428.dtb \
|
||||
+ qcom-ipq4029-ap-303.dtb \
|
||||
+ qcom-ipq4029-ap-303h.dtb \
|
||||
+ qcom-ipq4029-ap-365.dtb \
|
||||
+ qcom-ipq4029-gl-b1300.dtb \
|
||||
+ qcom-ipq4029-gl-s1300.dtb \
|
||||
+ qcom-ipq4029-mr33.dtb \
|
||||
qcom-ipq8064-ap148.dtb \
|
||||
qcom-msm8660-surf.dtb \
|
||||
qcom-msm8960-cdp.dtb \
|
53
root/target/linux/ipq40xx/patches-5.4/999-ipq40xx-unlock-cpu-frequency.patch
Executable file
53
root/target/linux/ipq40xx/patches-5.4/999-ipq40xx-unlock-cpu-frequency.patch
Executable file
|
@ -0,0 +1,53 @@
|
|||
From: William <gw826943555@qq.com>
|
||||
Subject: [PATCH] ipq40xx: improve CPU clock
|
||||
Date: Tue, 15 Dec 2020 15:26:35 +0800
|
||||
|
||||
This patch will match the clock-latency-ns values in the device tree
|
||||
for those found inside the OEM device tree and kernel source code and
|
||||
unlock 896Mhz CPU operating points.
|
||||
|
||||
Signed-off-by: William <gw826943555@qq.com>
|
||||
---
|
||||
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
@@ -114,20 +114,24 @@
|
||||
|
||||
opp-48000000 {
|
||||
opp-hz = /bits/ 64 <48000000>;
|
||||
- clock-latency-ns = <256000>;
|
||||
+ clock-latency-ns = <100000>;
|
||||
};
|
||||
opp-200000000 {
|
||||
opp-hz = /bits/ 64 <200000000>;
|
||||
- clock-latency-ns = <256000>;
|
||||
+ clock-latency-ns = <100000>;
|
||||
};
|
||||
opp-500000000 {
|
||||
opp-hz = /bits/ 64 <500000000>;
|
||||
- clock-latency-ns = <256000>;
|
||||
+ clock-latency-ns = <100000>;
|
||||
};
|
||||
opp-716000000 {
|
||||
opp-hz = /bits/ 64 <716000000>;
|
||||
- clock-latency-ns = <256000>;
|
||||
+ clock-latency-ns = <100000>;
|
||||
};
|
||||
+ opp-896000000 {
|
||||
+ opp-hz = /bits/ 64 <896000000>;
|
||||
+ clock-latency-ns = <100000>;
|
||||
+ };
|
||||
};
|
||||
|
||||
memory {
|
||||
--- a/drivers/clk/qcom/gcc-ipq4019.c
|
||||
+++ b/drivers/clk/qcom/gcc-ipq4019.c
|
||||
@@ -579,6 +579,9 @@ static const struct freq_tbl ftbl_gcc_ap
|
||||
F(632000000, P_DDRPLLAPSS, 1, 0, 0),
|
||||
F(672000000, P_DDRPLLAPSS, 1, 0, 0),
|
||||
F(716000000, P_DDRPLLAPSS, 1, 0, 0),
|
||||
+ F(768000000, P_DDRPLLAPSS, 1, 0, 0),
|
||||
+ F(823000000, P_DDRPLLAPSS, 1, 0, 0),
|
||||
+ F(896000000, P_DDRPLLAPSS, 1, 0, 0),
|
||||
{ }
|
||||
};
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue