mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
commit
a3d8be9afc
34 changed files with 2336 additions and 1767 deletions
41
build.sh
41
build.sh
|
@ -22,7 +22,6 @@ _get_repo() (
|
||||||
OMR_DIST=${OMR_DIST:-openmptcprouter}
|
OMR_DIST=${OMR_DIST:-openmptcprouter}
|
||||||
OMR_HOST=${OMR_HOST:-$(curl -sS ifconfig.co)}
|
OMR_HOST=${OMR_HOST:-$(curl -sS ifconfig.co)}
|
||||||
OMR_PORT=${OMR_PORT:-8000}
|
OMR_PORT=${OMR_PORT:-8000}
|
||||||
OMR_REPO=${OMR_REPO:-http://$OMR_HOST:$OMR_PORT/release/$OMR_KERNEL}
|
|
||||||
OMR_KEEPBIN=${OMR_KEEPBIN:-no}
|
OMR_KEEPBIN=${OMR_KEEPBIN:-no}
|
||||||
OMR_IMG=${OMR_IMG:-yes}
|
OMR_IMG=${OMR_IMG:-yes}
|
||||||
#OMR_UEFI=${OMR_UEFI:-yes}
|
#OMR_UEFI=${OMR_UEFI:-yes}
|
||||||
|
@ -32,11 +31,14 @@ OMR_TARGET=${OMR_TARGET:-x86_64}
|
||||||
OMR_TARGET_CONFIG="config-$OMR_TARGET"
|
OMR_TARGET_CONFIG="config-$OMR_TARGET"
|
||||||
OMR_KERNEL=${OMR_KERNEL:-5.4}
|
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 describe --tags `git rev-list --tags --max-count=1` | sed 's/^\([0-9.]*\).*/\1/')}
|
||||||
OMR_RELEASE=${OMR_RELEASE:-$(git describe --tags `git rev-list --tags --max-count=1`)}
|
OMR_RELEASE=${OMR_RELEASE:-$(git tag --sort=committerdate | tail -1)}
|
||||||
|
OMR_REPO=${OMR_REPO:-http://$OMR_HOST:$OMR_PORT/release/$OMR_RELEASE/$OMR_TARGET}
|
||||||
|
|
||||||
OMR_FEED_URL="${OMR_FEED_URL:-https://github.com/ysurac/openmptcprouter-feeds}"
|
OMR_FEED_URL="${OMR_FEED_URL:-https://github.com/ysurac/openmptcprouter-feeds}"
|
||||||
OMR_FEED_SRC="${OMR_FEED_SRC:-develop}"
|
OMR_FEED_SRC="${OMR_FEED_SRC:-develop}"
|
||||||
|
|
||||||
|
CUSTOM_FEED_URL="${CUSTOM_FEED_URL}"
|
||||||
|
|
||||||
OMR_OPENWRT=${OMR_OPENWRT:-default}
|
OMR_OPENWRT=${OMR_OPENWRT:-default}
|
||||||
|
|
||||||
if [ ! -f "$OMR_TARGET_CONFIG" ]; then
|
if [ ! -f "$OMR_TARGET_CONFIG" ]; then
|
||||||
|
@ -56,6 +58,10 @@ elif [ "$OMR_TARGET" = "wrt32x" ]; then
|
||||||
OMR_REAL_TARGET="arm_cortex-a9_vfpv3"
|
OMR_REAL_TARGET="arm_cortex-a9_vfpv3"
|
||||||
elif [ "$OMR_TARGET" = "bpi-r2" ]; then
|
elif [ "$OMR_TARGET" = "bpi-r2" ]; then
|
||||||
OMR_REAL_TARGET="arm_cortex-a7_neon-vfpv4"
|
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
|
elif [ "$OMR_TARGET" = "x86" ]; then
|
||||||
OMR_REAL_TARGET="i386_pentium4"
|
OMR_REAL_TARGET="i386_pentium4"
|
||||||
else
|
else
|
||||||
|
@ -64,9 +70,9 @@ fi
|
||||||
|
|
||||||
#_get_repo source https://github.com/ysurac/openmptcprouter-source "master"
|
#_get_repo source https://github.com/ysurac/openmptcprouter-source "master"
|
||||||
if [ "$OMR_OPENWRT" = "default" ]; then
|
if [ "$OMR_OPENWRT" = "default" ]; then
|
||||||
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "635f111148c3f7ccb0ecc92863a3b1a142f6ebeb"
|
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "da986035973a8c803e6f193ae502ff65e6d551c3"
|
||||||
_get_repo feeds/packages https://github.com/openwrt/packages "c7dca50f110d5458ceff21a2274eddae2aae119b"
|
_get_repo feeds/packages https://github.com/openwrt/packages "91bf524845d4733c77c11f359b1c915e788ece14"
|
||||||
_get_repo feeds/luci https://github.com/openwrt/luci "558525783cf33a986efa33d23f5283b33a6c936e"
|
_get_repo feeds/luci https://github.com/openwrt/luci "b2fa7903ebfdbe9f485a94710b77320fe7897dba"
|
||||||
elif [ "$OMR_OPENWRT" = "master" ]; then
|
elif [ "$OMR_OPENWRT" = "master" ]; then
|
||||||
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "master"
|
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "master"
|
||||||
_get_repo feeds/packages https://github.com/openwrt/packages "master"
|
_get_repo feeds/packages https://github.com/openwrt/packages "master"
|
||||||
|
@ -82,6 +88,11 @@ if [ -z "$OMR_FEED" ]; then
|
||||||
_get_repo "$OMR_FEED" "$OMR_FEED_URL" "$OMR_FEED_SRC"
|
_get_repo "$OMR_FEED" "$OMR_FEED_URL" "$OMR_FEED_SRC"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$CUSTOM_FEED_URL" ]; then
|
||||||
|
CUSTOM_FEED=feeds/${OMR_DIST}
|
||||||
|
_get_repo "$CUSTOM_FEED" "$CUSTOM_FEED_URL" "master"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$1" ] && [ -f "$OMR_FEED/$1/Makefile" ]; then
|
if [ -n "$1" ] && [ -f "$OMR_FEED/$1/Makefile" ]; then
|
||||||
OMR_DIST=$1
|
OMR_DIST=$1
|
||||||
shift 1
|
shift 1
|
||||||
|
@ -110,6 +121,10 @@ src-link luci $(readlink -f feeds/luci)
|
||||||
src-link openmptcprouter $(readlink -f "$OMR_FEED")
|
src-link openmptcprouter $(readlink -f "$OMR_FEED")
|
||||||
EOF
|
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
|
if [ "$OMR_DIST" = "openmptcprouter" ]; then
|
||||||
cat > "$OMR_TARGET/source/package/system/opkg/files/customfeeds.conf" <<-EOF
|
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_luci http://packages.openmptcprouter.com/${OMR_RELEASE}/${OMR_REAL_TARGET}/luci
|
||||||
|
@ -142,7 +157,6 @@ if [ -f "$OMR_TARGET_CONFIG" ]; then
|
||||||
CONFIG_VERSION_DIST="$OMR_DIST"
|
CONFIG_VERSION_DIST="$OMR_DIST"
|
||||||
CONFIG_VERSION_REPO="$OMR_REPO"
|
CONFIG_VERSION_REPO="$OMR_REPO"
|
||||||
CONFIG_VERSION_NUMBER="$(git -C "$OMR_FEED" describe --tag --always)"
|
CONFIG_VERSION_NUMBER="$(git -C "$OMR_FEED" describe --tag --always)"
|
||||||
CONFIG_PACKAGE_${OMR_DIST}-full=y
|
|
||||||
EOF
|
EOF
|
||||||
else
|
else
|
||||||
cat config -> "$OMR_TARGET/source/.config" <<-EOF
|
cat config -> "$OMR_TARGET/source/.config" <<-EOF
|
||||||
|
@ -151,7 +165,6 @@ else
|
||||||
CONFIG_VERSION_DIST="$OMR_DIST"
|
CONFIG_VERSION_DIST="$OMR_DIST"
|
||||||
CONFIG_VERSION_REPO="$OMR_REPO"
|
CONFIG_VERSION_REPO="$OMR_REPO"
|
||||||
CONFIG_VERSION_NUMBER="$(git -C "$OMR_FEED" describe --tag --always)"
|
CONFIG_VERSION_NUMBER="$(git -C "$OMR_FEED" describe --tag --always)"
|
||||||
CONFIG_PACKAGE_${OMR_DIST}-full=y
|
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
if [ "$OMR_ALL_PACKAGES" = "yes" ]; then
|
if [ "$OMR_ALL_PACKAGES" = "yes" ]; then
|
||||||
|
@ -165,10 +178,10 @@ if [ "$OMR_IMG" = "yes" ] && [ "$OMR_TARGET" = "x86_64" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$OMR_PACKAGES" = "full" ]; then
|
if [ "$OMR_PACKAGES" = "full" ]; then
|
||||||
echo 'CONFIG_PACKAGE_${OMR_DIST}-full=y' >> "$OMR_TARGET/source/.config"
|
echo "CONFIG_PACKAGE_${OMR_DIST}-full=y" >> "$OMR_TARGET/source/.config"
|
||||||
fi
|
fi
|
||||||
if [ "$OMR_PACKAGES" = "mini" ]; then
|
if [ "$OMR_PACKAGES" = "mini" ]; then
|
||||||
echo 'CONFIG_PACKAGE_${OMR_DIST}-mini=y' >> "$OMR_TARGET/source/.config"
|
echo "CONFIG_PACKAGE_${OMR_DIST}-mini=y" >> "$OMR_TARGET/source/.config"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd "$OMR_TARGET/source"
|
cd "$OMR_TARGET/source"
|
||||||
|
@ -270,10 +283,7 @@ if [ "$OMR_KERNEL" = "5.4" ]; then
|
||||||
echo "Done"
|
echo "Done"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove patch that can make BPI-R2 slow
|
#rm -rf feeds/packages/libs/libwebp
|
||||||
rm -rf target/linux/mediatek/patches-4.14/0027-*.patch
|
|
||||||
|
|
||||||
rm -rf feeds/packages/libs/libwebp
|
|
||||||
|
|
||||||
echo "Update feeds index"
|
echo "Update feeds index"
|
||||||
rm -rf feeds/luci/modules/luci-mod-network
|
rm -rf feeds/luci/modules/luci-mod-network
|
||||||
|
@ -295,7 +305,12 @@ if [ "$OMR_ALL_PACKAGES" = "yes" ]; then
|
||||||
scripts/feeds install -a -d m -p packages
|
scripts/feeds install -a -d m -p packages
|
||||||
scripts/feeds install -a -d m -p luci
|
scripts/feeds install -a -d m -p luci
|
||||||
fi
|
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
|
scripts/feeds install -a -d y -f -p openmptcprouter
|
||||||
|
fi
|
||||||
cp .config.keep .config
|
cp .config.keep .config
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
|
||||||
|
|
18
config
18
config
|
@ -17,9 +17,9 @@ CONFIG_BUSYBOX_CONFIG_FEATURE_SEAMLESS_BZ2=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_SHOW_THREADS=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_SHOW_THREADS=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_STAT_FILESYSTEM=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_STAT_FILESYSTEM=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_STAT_FORMAT=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_STAT_FORMAT=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS=y
|
# CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS is not set
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU=y
|
# CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU is not set
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS=y
|
# CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS is not set
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_USE_TERMIOS=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_USE_TERMIOS=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO=y
|
||||||
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE=y
|
CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO_QUEUE=y
|
||||||
|
@ -218,7 +218,8 @@ CONFIG_LUCI_LANG_vi=y
|
||||||
CONFIG_LUCI_LANG_de=y
|
CONFIG_LUCI_LANG_de=y
|
||||||
CONFIG_LUCI_LANG_no=y
|
CONFIG_LUCI_LANG_no=y
|
||||||
CONFIG_LUCI_LANG_ms=y
|
CONFIG_LUCI_LANG_ms=y
|
||||||
CONFIG_LUCI_LANG_zh-cn=y
|
CONFIG_LUCI_LANG_zh_Hans=y
|
||||||
|
CONFIG_LUCI_LANG_zh_Hant=y
|
||||||
CONFIG_LUCI_LANG_ko=y
|
CONFIG_LUCI_LANG_ko=y
|
||||||
CONFIG_LUCI_LANG_he=y
|
CONFIG_LUCI_LANG_he=y
|
||||||
CONFIG_LUCI_LANG_zh-tw=y
|
CONFIG_LUCI_LANG_zh-tw=y
|
||||||
|
@ -228,10 +229,17 @@ CONFIG_LUCI_LANG_ru=y
|
||||||
CONFIG_LUCI_LANG_el=y
|
CONFIG_LUCI_LANG_el=y
|
||||||
CONFIG_LUCI_LANG_ca=y
|
CONFIG_LUCI_LANG_ca=y
|
||||||
CONFIG_LUCI_LANG_es=y
|
CONFIG_LUCI_LANG_es=y
|
||||||
CONFIG_LUCI_LANG_pt-br=y
|
CONFIG_LUCI_LANG_pt_BR=y
|
||||||
CONFIG_LUCI_LANG_cs=y
|
CONFIG_LUCI_LANG_cs=y
|
||||||
CONFIG_LUCI_LANG_fr=y
|
CONFIG_LUCI_LANG_fr=y
|
||||||
CONFIG_LUCI_LANG_it=y
|
CONFIG_LUCI_LANG_it=y
|
||||||
|
CONFIG_LUCI_LANG_ar=y
|
||||||
|
CONFIG_LUCI_LANG_bg=y
|
||||||
|
CONFIG_LUCI_LANG_bn_BD=y
|
||||||
|
CONFIG_LUCI_LANG_fi=y
|
||||||
|
CONFIG_LUCI_LANG_hi=y
|
||||||
|
CONFIG_LUCI_LANG_mr=y
|
||||||
|
CONFIG_LUCI_LANG_nb_NO=y
|
||||||
CONFIG_TARGET_ROOTFS_PARTSIZE=512
|
CONFIG_TARGET_ROOTFS_PARTSIZE=512
|
||||||
CONFIG_TARGET_KERNEL_PARTSIZE=64
|
CONFIG_TARGET_KERNEL_PARTSIZE=64
|
||||||
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
|
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
|
||||||
|
|
|
@ -2,7 +2,7 @@ CONFIG_TARGET_mediatek=y
|
||||||
CONFIG_TARGET_mediatek_mt7623=y
|
CONFIG_TARGET_mediatek_mt7623=y
|
||||||
CONFIG_TARGET_mediatek_mt7623_DEVICE_bpi_bananapi-r2=y
|
CONFIG_TARGET_mediatek_mt7623_DEVICE_bpi_bananapi-r2=y
|
||||||
CONFIG_TARGET_ROOTFS_EXT4FS=y
|
CONFIG_TARGET_ROOTFS_EXT4FS=y
|
||||||
# CONFIG_TARGET_ROOTFS_SQUASHFS is not set
|
CONFIG_TARGET_ROOTFS_SQUASHFS=y
|
||||||
CONFIG_PACKAGE_kmod-cryptodev=y
|
CONFIG_PACKAGE_kmod-cryptodev=y
|
||||||
CONFIG_OPENSSL_HARDWARE_SUPPORT=y
|
CONFIG_OPENSSL_HARDWARE_SUPPORT=y
|
||||||
CONFIG_OPENSSL_ENGINE_CRYPTO=y
|
CONFIG_OPENSSL_ENGINE_CRYPTO=y
|
||||||
|
|
7
config-espressobin
Normal file
7
config-espressobin
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
CONFIG_TARGET_mvebu=y
|
||||||
|
CONFIG_TARGET_mvebu_cortexa53=y
|
||||||
|
CONFIG_TARGET_mvebu_cortexa53_DEVICE_globalscale_espressobin-v7=y
|
||||||
|
CONFIG_PACKAGE_kmod-6lowpan=y
|
||||||
|
CONFIG_PACKAGE_luci-app-advanced-reboot=y
|
||||||
|
# CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE is not set
|
||||||
|
CONFIG_KERNEL_CC_OPTIMIZE_FOR_SIZE=y
|
|
@ -1,58 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (C) 2013-2019 OpenWrt.org
|
|
||||||
# Copyright (C) 2019 Alexey Loukianov
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
|
||||||
|
|
||||||
PKG_VERSION:=2020.04
|
|
||||||
|
|
||||||
PKG_HASH:=fe732aaf037d9cc3c0909bad8362af366ae964bbdac6913a34081ff4ad565372
|
|
||||||
|
|
||||||
PKG_MAINTAINER:=Cristian Ciobanu <cioby.service@gmail.com>
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/u-boot.mk
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
define U-Boot/Default
|
|
||||||
BUILD_TARGET:=mediatek
|
|
||||||
UBOOT_IMAGE:=u-boot.bin
|
|
||||||
UENV:=default
|
|
||||||
HIDDEN:=1
|
|
||||||
endef
|
|
||||||
|
|
||||||
define U-Boot/mt7623n_bpir2
|
|
||||||
BUILD_SUBTARGET:=mt7623
|
|
||||||
NAME:=Bannana PI R2 (mt7623)
|
|
||||||
BUILD_DEVICES:=bpi_bananapi-r2
|
|
||||||
endef
|
|
||||||
|
|
||||||
UBOOT_TARGETS := \
|
|
||||||
mt7623n_bpir2
|
|
||||||
|
|
||||||
UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
|
|
||||||
|
|
||||||
UBOOT_MAKE_FLAGS = \
|
|
||||||
HOSTCC="$(HOSTCC)" \
|
|
||||||
HOSTCFLAGS="$(HOST_CFLAGS) $(HOST_CPPFLAGS) -std=gnu11" \
|
|
||||||
HOSTLDFLAGS="$(HOST_LDFLAGS)"
|
|
||||||
|
|
||||||
define Build/Prepare
|
|
||||||
$(call Build/Prepare/Default)
|
|
||||||
$(CP) uEnv-$(UENV).txt ${PKG_BUILD_DIR}/uEnv.txt
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/InstallDev
|
|
||||||
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-uboot-mediatek.bin
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/uEnv.txt $(STAGING_DIR_IMAGE)/$(BUILD_DEVICES)-uEnv.txt
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/u-boot/install/default
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage/U-Boot))
|
|
|
@ -1,64 +0,0 @@
|
||||||
From 075db54b57761868cd63434b466fffe7ba7a564f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cristian Ciobanu <cioby.service@gmail.com>
|
|
||||||
Date: Thu, 9 Apr 2020 17:59:27 +0300
|
|
||||||
Subject: [PATCH] defconfig: r2: Add additional U-boot options for mt7623n
|
|
||||||
|
|
||||||
---
|
|
||||||
configs/mt7623n_bpir2_defconfig | 30 ++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 28 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/configs/mt7623n_bpir2_defconfig b/configs/mt7623n_bpir2_defconfig
|
|
||||||
index 07ddade76a..36a903cbe7 100644
|
|
||||||
--- a/configs/mt7623n_bpir2_defconfig
|
|
||||||
+++ b/configs/mt7623n_bpir2_defconfig
|
|
||||||
@@ -3,7 +3,7 @@ CONFIG_SYS_THUMB_BUILD=y
|
|
||||||
CONFIG_ARCH_MEDIATEK=y
|
|
||||||
CONFIG_SYS_TEXT_BASE=0x81e00000
|
|
||||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
|
||||||
-CONFIG_ENV_SIZE=0x1000
|
|
||||||
+CONFIG_ENV_SIZE=0x2000
|
|
||||||
CONFIG_ENV_OFFSET=0x100000
|
|
||||||
CONFIG_TARGET_MT7623=y
|
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
|
||||||
@@ -14,7 +14,7 @@ CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
|
||||||
CONFIG_DEFAULT_FDT_FILE="mt7623n-bananapi-bpi-r2"
|
|
||||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
|
||||||
CONFIG_HUSH_PARSER=y
|
|
||||||
-CONFIG_SYS_PROMPT="U-Boot> "
|
|
||||||
+CONFIG_SYS_PROMPT="BPI-R2> "
|
|
||||||
CONFIG_CMD_BOOTMENU=y
|
|
||||||
# CONFIG_CMD_ELF is not set
|
|
||||||
# CONFIG_CMD_XIMG is not set
|
|
||||||
@@ -57,3 +57,29 @@ CONFIG_MTK_TIMER=y
|
|
||||||
CONFIG_WDT_MTK=y
|
|
||||||
CONFIG_LZMA=y
|
|
||||||
# CONFIG_EFI_LOADER is not set
|
|
||||||
+
|
|
||||||
+CONFIG_LOCALVERSION_AUTO=n
|
|
||||||
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
|
||||||
+CONFIG_DEFAULT_ENV_FILE="uEnv.txt"
|
|
||||||
+CONFIG_CMD_BOOTZ=y
|
|
||||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
|
||||||
+
|
|
||||||
+#commands used in uenv.txt
|
|
||||||
+CONFIG_CMD_ASKENV=y
|
|
||||||
+CONFIG_CMD_STRINGS=y
|
|
||||||
+CONFIG_CMD_SETEXPR=y
|
|
||||||
+CONFIG_CMD_CACHE=y
|
|
||||||
+CONFIG_CMD_ERASEENV=y
|
|
||||||
+CONFIG_PCI=y
|
|
||||||
+CONFIG_DM_PCI=y
|
|
||||||
+CONFIG_PCIE_MEDIATEK=y
|
|
||||||
+CONFIG_PHY=y
|
|
||||||
+CONFIG_PHY_MTK_TPHY=y
|
|
||||||
+CONFIG_CMD_PCI=y
|
|
||||||
+CONFIG_AHCI=y
|
|
||||||
+CONFIG_AHCI_PCI=y
|
|
||||||
+CONFIG_SCSI=y
|
|
||||||
+CONFIG_DM_SCSI=y
|
|
||||||
+CONFIG_SCSI_AHCI=y
|
|
||||||
+CONFIG_HAVE_BLOCK_DEVICE=y
|
|
||||||
+CONFIG_POWER_MT6323=y
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
From 15e032f5b06ba97a7777bc32aef15e10d0086041 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cristian Ciobanu <cioby.service@gmail.com>
|
|
||||||
Date: Wed, 8 Apr 2020 22:27:01 +0300
|
|
||||||
Subject: [PATCH] u-boot: Modify environment offset for mt7623
|
|
||||||
|
|
||||||
---
|
|
||||||
include/configs/mt7623.h | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/include/configs/mt7623.h b/include/configs/mt7623.h
|
|
||||||
index faab0913fc..5d0da71ce9 100644
|
|
||||||
--- a/include/configs/mt7623.h
|
|
||||||
+++ b/include/configs/mt7623.h
|
|
||||||
@@ -56,5 +56,6 @@
|
|
||||||
#define CONFIG_SERVERIP 192.168.1.2
|
|
||||||
|
|
||||||
#define CONFIG_SYS_MMC_ENV_DEV 0
|
|
||||||
+#define CONFIG_ENV_OFFSET 0xF3800
|
|
||||||
|
|
||||||
#endif
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
|
@ -1,219 +0,0 @@
|
||||||
From 798f0fc54926093a074a9cbb011de833a0614c3a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Frank Wunderlich <frank-w@public-files.de>
|
|
||||||
Date: Fri, 28 Dec 2018 17:56:19 +0100
|
|
||||||
Subject: [PATCH 1/2] bootmenu: added key-input (1-9,a-f)
|
|
||||||
|
|
||||||
---
|
|
||||||
cmd/bootmenu.c | 145 ++++++++++++++++++++++++++++++++-----------------
|
|
||||||
1 file changed, 94 insertions(+), 51 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c
|
|
||||||
index 3dc2c854ac..fd6ba6c8af 100644
|
|
||||||
--- a/cmd/bootmenu.c
|
|
||||||
+++ b/cmd/bootmenu.c
|
|
||||||
@@ -40,7 +40,22 @@ struct bootmenu_data {
|
|
||||||
|
|
||||||
enum bootmenu_key {
|
|
||||||
KEY_NONE = 0,
|
|
||||||
- KEY_UP,
|
|
||||||
+ KEY_1,
|
|
||||||
+ KEY_2,
|
|
||||||
+ KEY_3,
|
|
||||||
+ KEY_4,
|
|
||||||
+ KEY_5,
|
|
||||||
+ KEY_6,
|
|
||||||
+ KEY_7,
|
|
||||||
+ KEY_8,
|
|
||||||
+ KEY_9,
|
|
||||||
+ KEY_a,
|
|
||||||
+ KEY_b,
|
|
||||||
+ KEY_c,
|
|
||||||
+ KEY_d,
|
|
||||||
+ KEY_e,
|
|
||||||
+ KEY_f,
|
|
||||||
+ KEY_UP = 20,
|
|
||||||
KEY_DOWN,
|
|
||||||
KEY_SELECT,
|
|
||||||
};
|
|
||||||
@@ -78,6 +93,23 @@ static void bootmenu_print_entry(void *data)
|
|
||||||
puts(ANSI_COLOR_RESET);
|
|
||||||
}
|
|
||||||
|
|
||||||
+bool get_bootmenu_key(enum bootmenu_key *key, int c)
|
|
||||||
+{
|
|
||||||
+ /* ANSI '1~9' - was pressed */
|
|
||||||
+ if (c <= '9' && c >= '1' )
|
|
||||||
+ {
|
|
||||||
+ *key = c-48;
|
|
||||||
+ return true;
|
|
||||||
+ }else
|
|
||||||
+ /* ANSI 'a~f' - was pressed */
|
|
||||||
+ if (c <= 'f' && c >= 'a' )
|
|
||||||
+ {
|
|
||||||
+ *key = c-87;
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void bootmenu_autoboot_loop(struct bootmenu_data *menu,
|
|
||||||
enum bootmenu_key *key, int *esc)
|
|
||||||
{
|
|
||||||
@@ -98,23 +130,23 @@ static void bootmenu_autoboot_loop(struct bootmenu_data *menu,
|
|
||||||
|
|
||||||
menu->delay = -1;
|
|
||||||
c = getc();
|
|
||||||
-
|
|
||||||
- switch (c) {
|
|
||||||
- case '\e':
|
|
||||||
- *esc = 1;
|
|
||||||
- *key = KEY_NONE;
|
|
||||||
- break;
|
|
||||||
- case '\r':
|
|
||||||
- *key = KEY_SELECT;
|
|
||||||
- break;
|
|
||||||
- default:
|
|
||||||
- *key = KEY_NONE;
|
|
||||||
- break;
|
|
||||||
+ if (!get_bootmenu_key(key,c))
|
|
||||||
+ {
|
|
||||||
+ switch (c) {
|
|
||||||
+ case '\e':
|
|
||||||
+ *esc = 1;
|
|
||||||
+ *key = KEY_NONE;
|
|
||||||
+ break;
|
|
||||||
+ case '\r':
|
|
||||||
+ *key = KEY_SELECT;
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ *key = KEY_NONE;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
-
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
if (menu->delay < 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
@@ -141,47 +173,49 @@ static void bootmenu_loop(struct bootmenu_data *menu,
|
|
||||||
|
|
||||||
c = getc();
|
|
||||||
|
|
||||||
- switch (*esc) {
|
|
||||||
- case 0:
|
|
||||||
- /* First char of ANSI escape sequence '\e' */
|
|
||||||
- if (c == '\e') {
|
|
||||||
- *esc = 1;
|
|
||||||
- *key = KEY_NONE;
|
|
||||||
- }
|
|
||||||
- break;
|
|
||||||
- case 1:
|
|
||||||
- /* Second char of ANSI '[' */
|
|
||||||
- if (c == '[') {
|
|
||||||
- *esc = 2;
|
|
||||||
- *key = KEY_NONE;
|
|
||||||
- } else {
|
|
||||||
- *esc = 0;
|
|
||||||
- }
|
|
||||||
- break;
|
|
||||||
- case 2:
|
|
||||||
- case 3:
|
|
||||||
- /* Third char of ANSI (number '1') - optional */
|
|
||||||
- if (*esc == 2 && c == '1') {
|
|
||||||
- *esc = 3;
|
|
||||||
+ if (!get_bootmenu_key(key,c))
|
|
||||||
+ {
|
|
||||||
+ switch (*esc) {
|
|
||||||
+ case 0:
|
|
||||||
+ /* First char of ANSI escape sequence '\e' */
|
|
||||||
+ if (c == '\e') {
|
|
||||||
+ *esc = 1;
|
|
||||||
+ *key = KEY_NONE;
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+ case 1:
|
|
||||||
+ /* Second char of ANSI '[' */
|
|
||||||
+ if (c == '[') {
|
|
||||||
+ *esc = 2;
|
|
||||||
*key = KEY_NONE;
|
|
||||||
+ } else {
|
|
||||||
+ *esc = 0;
|
|
||||||
+ }
|
|
||||||
break;
|
|
||||||
- }
|
|
||||||
+ case 2:
|
|
||||||
+ case 3:
|
|
||||||
+ /* Third char of ANSI (number '1') - optional */
|
|
||||||
+ if (*esc == 2 && c == '1') {
|
|
||||||
+ *esc = 3;
|
|
||||||
+ *key = KEY_NONE;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- *esc = 0;
|
|
||||||
+ *esc = 0;
|
|
||||||
|
|
||||||
- /* ANSI 'A' - key up was pressed */
|
|
||||||
- if (c == 'A')
|
|
||||||
- *key = KEY_UP;
|
|
||||||
- /* ANSI 'B' - key down was pressed */
|
|
||||||
- else if (c == 'B')
|
|
||||||
- *key = KEY_DOWN;
|
|
||||||
- /* other key was pressed */
|
|
||||||
- else
|
|
||||||
- *key = KEY_NONE;
|
|
||||||
+ /* ANSI 'A' - key up was pressed */
|
|
||||||
+ if (c == 'A')
|
|
||||||
+ *key = KEY_UP;
|
|
||||||
+ /* ANSI 'B' - key down was pressed */
|
|
||||||
+ else if (c == 'B')
|
|
||||||
+ *key = KEY_DOWN;
|
|
||||||
+ /* other key was pressed */
|
|
||||||
+ else
|
|
||||||
+ *key = KEY_NONE;
|
|
||||||
|
|
||||||
- break;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
-
|
|
||||||
/* enter key was pressed */
|
|
||||||
if (c == '\r')
|
|
||||||
*key = KEY_SELECT;
|
|
||||||
@@ -204,6 +238,14 @@ static char *bootmenu_choice_entry(void *data)
|
|
||||||
bootmenu_loop(menu, &key, &esc);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (key < KEY_UP && key > KEY_NONE)
|
|
||||||
+ {
|
|
||||||
+ menu->active = key-1;
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+
|
|
||||||
switch (key) {
|
|
||||||
case KEY_UP:
|
|
||||||
if (menu->active > 0)
|
|
||||||
@@ -223,6 +265,7 @@ static char *bootmenu_choice_entry(void *data)
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* never happens */
|
|
||||||
@@ -467,7 +510,7 @@ void menu_display_statusline(struct menu *m)
|
|
||||||
printf(ANSI_CURSOR_POSITION, menu->count + 5, 1);
|
|
||||||
puts(ANSI_CLEAR_LINE);
|
|
||||||
printf(ANSI_CURSOR_POSITION, menu->count + 6, 1);
|
|
||||||
- puts(" Press UP/DOWN to move, ENTER to select");
|
|
||||||
+ puts(" Press UP/DOWN to move or Press 1~9,a~f to choose, ENTER to select");
|
|
||||||
puts(ANSI_CLEAR_LINE_TO_END);
|
|
||||||
printf(ANSI_CURSOR_POSITION, menu->count + 7, 1);
|
|
||||||
puts(ANSI_CLEAR_LINE);
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
From 39b0c824b56be1000844cedb5faba506b6b09b9b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Cristian Ciobanu <cioby.service@gmail.com>
|
|
||||||
Date: Fri, 10 Apr 2020 00:41:42 +0300
|
|
||||||
Subject: [PATCH] Add EXT4 support in U-boot
|
|
||||||
|
|
||||||
---
|
|
||||||
configs/mt7623n_bpir2_defconfig | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/configs/mt7623n_bpir2_defconfig b/configs/mt7623n_bpir2_defconfig
|
|
||||||
index 36a903cbe7..09b9b6f797 100644
|
|
||||||
--- a/configs/mt7623n_bpir2_defconfig
|
|
||||||
+++ b/configs/mt7623n_bpir2_defconfig
|
|
||||||
@@ -83,3 +83,8 @@ CONFIG_DM_SCSI=y
|
|
||||||
CONFIG_SCSI_AHCI=y
|
|
||||||
CONFIG_HAVE_BLOCK_DEVICE=y
|
|
||||||
CONFIG_POWER_MT6323=y
|
|
||||||
+
|
|
||||||
+CONFIG_CMD_EXT4=y
|
|
||||||
+CONFIG_CMD_EXT4_WRITE=y
|
|
||||||
+CONFIG_FS_EXT4=y
|
|
||||||
+CONFIG_EXT4_WRITE=y
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
|
@ -1,91 +0,0 @@
|
||||||
scriptaddr=0x83000000
|
|
||||||
device=mmc
|
|
||||||
bootenv=uEnv.txt
|
|
||||||
kernel=uImage
|
|
||||||
loadaddr=0x80200000
|
|
||||||
#default bootargs will be overidden by buildargs
|
|
||||||
bootargs=console=ttyS2,115200 root=/dev/mmcblk1p2 rw rootwait ip=dhcp
|
|
||||||
|
|
||||||
console=earlyprintk console=ttyS2,115200 console=tty1 fbcon=map:0
|
|
||||||
roottmpl=${rootdev} rootfstype=ext4 rootwait
|
|
||||||
prepsetroot=setenv setroot setenv root ${roottmpl}
|
|
||||||
bootopts=vmalloc=496M debug=7 initcall_debug=0
|
|
||||||
graphic=video=1920x1080 drm.debug=0x7
|
|
||||||
|
|
||||||
buildargs=setenv bootargs "console=${console} root=${root} ${bootopts} ${graphic}"
|
|
||||||
|
|
||||||
checkenv=test -e ${device} ${partition} ${bootenv}
|
|
||||||
importenv=env import -t ${scriptaddr} ${filesize}
|
|
||||||
loadbootenv=if fatload ${device} ${partition} ${scriptaddr} ${bootenv};then run importenv;else echo "fatload (${bootenv}) failed";fi
|
|
||||||
resetenv=env default -a;printenv;
|
|
||||||
|
|
||||||
# Here we assume that SD card id mmcblk1 and eMMC is mmcblk0 in linux. Swap them if your DTS define them in reverse order.
|
|
||||||
usesd=setenv partition 1:1; setenv rootdev /dev/mmcblk1p2; setenv bootdev SD; setenv swaproot 'run useemmc';
|
|
||||||
useemmc=setenv partition 0:1; setenv rootdev /dev/mmcblk0p2; setenv bootdev eMMC; setenv swaproot 'run usesd';
|
|
||||||
|
|
||||||
checkbootedfrom=if itest.l *81dffff0 == 434d4d65 ; then setenv bootedfrom eMMC; else setenv bootedfrom SD; fi;
|
|
||||||
|
|
||||||
checkroot=fatinfo ${device} ${partition}
|
|
||||||
checksd=fatinfo ${device} 1:1
|
|
||||||
checkmmc=fatinfo ${device} 0:1
|
|
||||||
|
|
||||||
reportbootedfrom=echo "Preloader/U-Boot loaded from ${bootedfrom}."; run validroot || echo "Both SD and eMMC pt#1 are not FAT, falling back to U-Boot shell."
|
|
||||||
reportvalidroot=run validroot || echo "Both SD and eMMC pt#1 are not FAT, falling back to U-Boot shell."
|
|
||||||
reportrootswapwarn=if test "${bootedfrom}" != "${bootdev}" ; then echo "Warning: Partition 1 on ${bootedfrom} is not FAT, failing back to ${bootdev}"; fi; true;
|
|
||||||
reportbootdev=echo "Booting from ${bootdev}."
|
|
||||||
reportboot=run reportbootedfrom reportvalidroot reportrootswapwarn reportbootdev
|
|
||||||
|
|
||||||
detectroot=run useemmc; run checkbootedfrom; if test "${bootedfrom}" == "SD"; then run usesd; fi; run validateroot;
|
|
||||||
validateroot=setenv validroot false; run checkroot || run swaproot; run checkroot && setenv validroot true || run swaproot;
|
|
||||||
|
|
||||||
newboot=run prepsetroot; run setroot;run buildargs;printenv bootargs;fatload ${device} ${partition} ${loadaddr} ${kernel}; bootm
|
|
||||||
|
|
||||||
reloadenv=run detectroot; if run validroot; then if run checkenv; then run loadbootenv; run detectroot; else echo uEnv.txt file not found on ${bootdev}; fi; fi;
|
|
||||||
reloadmenu=run reloadenv; run reportboot; if run validroot; then if run checkenv; then run loadbootenv; else echo uEnv.txt file not found on ${bootdev}; fi; bootmenu; fi;
|
|
||||||
|
|
||||||
lskernel=ls ${device} ${partition};
|
|
||||||
lsdtb=ls ${device} ${partition} dtb
|
|
||||||
askkernel=askenv kernelinput "enter uImage-name:";
|
|
||||||
askdtb=askenv dtbinput "enter dtb-name:";
|
|
||||||
|
|
||||||
#bootmenu
|
|
||||||
boot0=run lskernel;run askkernel;if printenv kernelinput ;then setenv kernel ${kernelinput};run lsdtb;run askdtb;if printenv dtbinput ;then setenv fdt ${dtbinput};fi; run newboot2; fi;
|
|
||||||
boot1=run newboot;
|
|
||||||
|
|
||||||
bootmenu_default=2
|
|
||||||
bootmenu_0=1. Enter kernel-name to boot from SD/EMMC.=run boot0
|
|
||||||
bootmenu_1=2. Boot kernel from TFTP.=run bootnet
|
|
||||||
bootmenu_2=3. Boot from SD/EMMC.=run boot1
|
|
||||||
bootmenu_3=4. Boot from eMMC.=run useemmc; run boot1
|
|
||||||
bootmenu_4=5. Boot from SD.=run usesd; run boot1
|
|
||||||
|
|
||||||
#Netboot
|
|
||||||
ipaddr=192.168.0.11
|
|
||||||
netmask=255.255.255.0
|
|
||||||
serverip=192.168.0.10
|
|
||||||
|
|
||||||
bootfile=uImage
|
|
||||||
netbootargs=console=ttyS2,115200 root=/dev/mmcblk1p2 rw rootwait
|
|
||||||
#ip=dhcp sets ip on eth0 instead of wan
|
|
||||||
|
|
||||||
lstftp=tftp ${loadaddr} ${serverip}:files.lst;setexpr listend ${loadaddr} + ${filesize};mw.b ${listend} 00 2;strings ${loadaddr};
|
|
||||||
#md.b ${loadaddr} 60;
|
|
||||||
|
|
||||||
bootnet=run lstftp;run askkernel;if printenv kernelinput ;then setenv bootfile "${kernelinput}"; fi;printenv; setenv bootargs ${netbootargs};tftp ${loadaddr} ${bootfile};bootm
|
|
||||||
|
|
||||||
#separate fdt+dto
|
|
||||||
dtaddr=0x83f00000
|
|
||||||
fdt_high=0xffffffff
|
|
||||||
|
|
||||||
loadfdt=fatload ${device} ${partition} ${dtaddr} dtb/${fdt}
|
|
||||||
loadkernel=echo "loading kernel ${kernel}...";fatload ${device} ${partition} ${loadaddr} ${kernel}
|
|
||||||
|
|
||||||
loaddto=echo "loaddto:${dto}";fdt addr ${dtaddr};fdt resize 8192; setexpr fdtovaddr ${dtaddr} + F000;fatload ${device} ${partition} ${fdtovaddr} dtb/${dto} && fdt apply ${fdtovaddr}
|
|
||||||
loaddtolist=for dto in ${dtolist} ; do run loaddto ; done
|
|
||||||
|
|
||||||
bootall=if printenv fdt; then run loadfdt; if printenv dtolist;then run loaddtolist;fi; bootm ${loadaddr} - ${dtaddr} ;else bootm; fi
|
|
||||||
newboot2=run prepsetroot; run setroot;run buildargs; printenv bootargs; run loadkernel; run bootall;
|
|
||||||
|
|
||||||
#automatic reload from sd/emmc
|
|
||||||
bootdelay=0
|
|
||||||
bootcmd=setenv bootdelay 3; run reloadmenu;
|
|
|
@ -1,49 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (C) 2016 Gary Wang <gary.wang@bananapi.org>
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
|
||||||
|
|
||||||
PKG_NAME:=uboot-mtk-bpi-r2
|
|
||||||
PKG_VERSION:=v1.0
|
|
||||||
PKG_RELEASE:=1
|
|
||||||
HOSTCPPFLAGS:="-I."
|
|
||||||
PKG_SOURCE_PROTO:=git
|
|
||||||
PKG_SOURCE_URL:=https://github.com/BPI-SINOVOIP/BPI-R2-LEDE-Uboot.git
|
|
||||||
PKG_SOURCE_VERSION:=b05a4e323e1fd8727fcfe32c35d562f12b88a23b
|
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0 GPL-2.0+
|
|
||||||
PKG_LICENSE_FILES:=Licenses/README
|
|
||||||
|
|
||||||
PKG_MAINTAINER:=Gary Wang <gary.wang@bananapi.com>
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/u-boot.mk
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
define U-Boot/bpi_r2
|
|
||||||
BUILD_TARGET:=mediatek
|
|
||||||
NAME:=Mediatek Banana Pi R2 board
|
|
||||||
BUILD_DEVICES:=7623n-bananapi-bpi-r2
|
|
||||||
endef
|
|
||||||
|
|
||||||
UBOOT_TARGETS := \
|
|
||||||
bpi_r2
|
|
||||||
|
|
||||||
|
|
||||||
UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
|
|
||||||
|
|
||||||
define Build/InstallDev
|
|
||||||
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/mtk-bpi-r2-uboot.bin
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/bpi_r2_preloader/EMMC_PRELOADER_1600MHz.img $(STAGING_DIR_IMAGE)/mtk-bpi-r2-preloader-emmc.bin
|
|
||||||
$(CP) $(PKG_BUILD_DIR)/bpi_r2_preloader/SD_PRELOADER_1600MHz.img $(STAGING_DIR_IMAGE)/mtk-bpi-r2-preloader-sd.bin
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/u-boot/install/default
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage/U-Boot))
|
|
|
@ -1,56 +0,0 @@
|
||||||
Index: uboot-mtk-bpi-r2-v1.0/arch/arm/include/asm/io.h
|
|
||||||
===================================================================
|
|
||||||
--- uboot-mtk-bpi-r2-v1.0.orig/arch/arm/include/asm/io.h
|
|
||||||
+++ uboot-mtk-bpi-r2-v1.0/arch/arm/include/asm/io.h
|
|
||||||
@@ -75,7 +75,7 @@ static inline phys_addr_t virt_to_phys(v
|
|
||||||
#define __arch_putw(v,a) (*(volatile unsigned short *)(a) = (v))
|
|
||||||
#define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v))
|
|
||||||
|
|
||||||
-extern inline void __raw_writesb(unsigned long addr, const void *data,
|
|
||||||
+static inline void __raw_writesb(unsigned long addr, const void *data,
|
|
||||||
int bytelen)
|
|
||||||
{
|
|
||||||
uint8_t *buf = (uint8_t *)data;
|
|
||||||
@@ -83,7 +83,7 @@ extern inline void __raw_writesb(unsigne
|
|
||||||
__arch_putb(*buf++, addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
-extern inline void __raw_writesw(unsigned long addr, const void *data,
|
|
||||||
+static inline void __raw_writesw(unsigned long addr, const void *data,
|
|
||||||
int wordlen)
|
|
||||||
{
|
|
||||||
uint16_t *buf = (uint16_t *)data;
|
|
||||||
@@ -91,7 +91,7 @@ extern inline void __raw_writesw(unsigne
|
|
||||||
__arch_putw(*buf++, addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
-extern inline void __raw_writesl(unsigned long addr, const void *data,
|
|
||||||
+static inline void __raw_writesl(unsigned long addr, const void *data,
|
|
||||||
int longlen)
|
|
||||||
{
|
|
||||||
uint32_t *buf = (uint32_t *)data;
|
|
||||||
@@ -99,21 +99,21 @@ extern inline void __raw_writesl(unsigne
|
|
||||||
__arch_putl(*buf++, addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
-extern inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
|
|
||||||
+static inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
|
|
||||||
{
|
|
||||||
uint8_t *buf = (uint8_t *)data;
|
|
||||||
while(bytelen--)
|
|
||||||
*buf++ = __arch_getb(addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
-extern inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
|
|
||||||
+static inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
|
|
||||||
{
|
|
||||||
uint16_t *buf = (uint16_t *)data;
|
|
||||||
while(wordlen--)
|
|
||||||
*buf++ = __arch_getw(addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
-extern inline void __raw_readsl(unsigned long addr, void *data, int longlen)
|
|
||||||
+static inline void __raw_readsl(unsigned long addr, void *data, int longlen)
|
|
||||||
{
|
|
||||||
uint32_t *buf = (uint32_t *)data;
|
|
||||||
while(longlen--)
|
|
|
@ -1,38 +0,0 @@
|
||||||
Index: uboot-mtk-bpi-r2-v1.0/arch/arm/lib/board.c
|
|
||||||
===================================================================
|
|
||||||
--- uboot-mtk-bpi-r2-v1.0.orig/arch/arm/lib/board.c
|
|
||||||
+++ uboot-mtk-bpi-r2-v1.0/arch/arm/lib/board.c
|
|
||||||
@@ -69,24 +69,15 @@ extern void dataflash_print_info(void);
|
|
||||||
************************************************************************
|
|
||||||
* May be supplied by boards if desired
|
|
||||||
*/
|
|
||||||
-inline void __coloured_LED_init(void) {}
|
|
||||||
-void coloured_LED_init(void) __attribute__((weak, alias("__coloured_LED_init")));
|
|
||||||
-inline void __red_led_on(void) {}
|
|
||||||
-void red_led_on(void) __attribute__((weak, alias("__red_led_on")));
|
|
||||||
-inline void __red_led_off(void) {}
|
|
||||||
-void red_led_off(void) __attribute__((weak, alias("__red_led_off")));
|
|
||||||
-inline void __green_led_on(void) {}
|
|
||||||
-void green_led_on(void) __attribute__((weak, alias("__green_led_on")));
|
|
||||||
-inline void __green_led_off(void) {}
|
|
||||||
-void green_led_off(void) __attribute__((weak, alias("__green_led_off")));
|
|
||||||
-inline void __yellow_led_on(void) {}
|
|
||||||
-void yellow_led_on(void) __attribute__((weak, alias("__yellow_led_on")));
|
|
||||||
-inline void __yellow_led_off(void) {}
|
|
||||||
-void yellow_led_off(void) __attribute__((weak, alias("__yellow_led_off")));
|
|
||||||
-inline void __blue_led_on(void) {}
|
|
||||||
-void blue_led_on(void) __attribute__((weak, alias("__blue_led_on")));
|
|
||||||
-inline void __blue_led_off(void) {}
|
|
||||||
-void blue_led_off(void) __attribute__((weak, alias("__blue_led_off")));
|
|
||||||
+__weak void coloured_LED_init(void) {}
|
|
||||||
+__weak void red_led_on(void) {}
|
|
||||||
+__weak void red_led_off(void) {}
|
|
||||||
+__weak void green_led_on(void) {}
|
|
||||||
+__weak void green_led_off(void) {}
|
|
||||||
+__weak void yellow_led_on(void) {}
|
|
||||||
+__weak void yellow_led_off(void) {}
|
|
||||||
+__weak void blue_led_on(void) {}
|
|
||||||
+__weak void blue_led_off(void) {}
|
|
||||||
|
|
||||||
/*
|
|
||||||
************************************************************************
|
|
|
@ -1,14 +0,0 @@
|
||||||
Index: uboot-mtk-bpi-r2-v1.0/common/main.c
|
|
||||||
===================================================================
|
|
||||||
--- uboot-mtk-bpi-r2-v1.0.orig/common/main.c
|
|
||||||
+++ uboot-mtk-bpi-r2-v1.0/common/main.c
|
|
||||||
@@ -27,8 +27,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
|
||||||
/*
|
|
||||||
* Board-specific Platform code can reimplement show_boot_progress () if needed
|
|
||||||
*/
|
|
||||||
-void inline __show_boot_progress (int val) {}
|
|
||||||
-void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
|
|
||||||
+__weak void show_boot_progress(int val) {}
|
|
||||||
|
|
||||||
#define MAX_DELAY_STOP_STR 32
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
--- a/include/libfdt_env.h
|
|
||||||
+++ b/include/libfdt_env.h
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
|
|
||||||
#ifndef _LIBFDT_ENV_H
|
|
||||||
#define _LIBFDT_ENV_H
|
|
||||||
+#define LIBFDT_ENV_H
|
|
||||||
|
|
||||||
#include "compiler.h"
|
|
||||||
#include "linux/types.h"
|
|
||||||
--- a/include/libfdt.h
|
|
||||||
+++ b/include/libfdt.h
|
|
||||||
@@ -1,5 +1,6 @@
|
|
||||||
#ifndef _LIBFDT_H
|
|
||||||
#define _LIBFDT_H
|
|
||||||
+#define LIBFDT_H
|
|
||||||
/*
|
|
||||||
* libfdt - Flat Device Tree manipulation
|
|
||||||
* Copyright (C) 2006 David Gibson, IBM Corporation.
|
|
|
@ -1,287 +0,0 @@
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/linux/compiler-gcc7.h
|
|
||||||
@@ -0,0 +1,284 @@
|
|
||||||
+#ifndef __LINUX_COMPILER_H
|
|
||||||
+#error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead."
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Common definitions for all gcc versions go here.
|
|
||||||
+ */
|
|
||||||
+#define GCC_VERSION (__GNUC__ * 10000 \
|
|
||||||
+ + __GNUC_MINOR__ * 100 \
|
|
||||||
+ + __GNUC_PATCHLEVEL__)
|
|
||||||
+
|
|
||||||
+/* Optimization barrier */
|
|
||||||
+
|
|
||||||
+/* The "volatile" is due to gcc bugs */
|
|
||||||
+#define barrier() __asm__ __volatile__("": : :"memory")
|
|
||||||
+/*
|
|
||||||
+ * This version is i.e. to prevent dead stores elimination on @ptr
|
|
||||||
+ * where gcc and llvm may behave differently when otherwise using
|
|
||||||
+ * normal barrier(): while gcc behavior gets along with a normal
|
|
||||||
+ * barrier(), llvm needs an explicit input variable to be assumed
|
|
||||||
+ * clobbered. The issue is as follows: while the inline asm might
|
|
||||||
+ * access any memory it wants, the compiler could have fit all of
|
|
||||||
+ * @ptr into memory registers instead, and since @ptr never escaped
|
|
||||||
+ * from that, it proofed that the inline asm wasn't touching any of
|
|
||||||
+ * it. This version works well with both compilers, i.e. we're telling
|
|
||||||
+ * the compiler that the inline asm absolutely may see the contents
|
|
||||||
+ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
|
|
||||||
+ */
|
|
||||||
+#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * This macro obfuscates arithmetic on a variable address so that gcc
|
|
||||||
+ * shouldn't recognize the original var, and make assumptions about it.
|
|
||||||
+ *
|
|
||||||
+ * This is needed because the C standard makes it undefined to do
|
|
||||||
+ * pointer arithmetic on "objects" outside their boundaries and the
|
|
||||||
+ * gcc optimizers assume this is the case. In particular they
|
|
||||||
+ * assume such arithmetic does not wrap.
|
|
||||||
+ *
|
|
||||||
+ * A miscompilation has been observed because of this on PPC.
|
|
||||||
+ * To work around it we hide the relationship of the pointer and the object
|
|
||||||
+ * using this macro.
|
|
||||||
+ *
|
|
||||||
+ * Versions of the ppc64 compiler before 4.1 had a bug where use of
|
|
||||||
+ * RELOC_HIDE could trash r30. The bug can be worked around by changing
|
|
||||||
+ * the inline assembly constraint from =g to =r, in this particular
|
|
||||||
+ * case either is valid.
|
|
||||||
+ */
|
|
||||||
+#define RELOC_HIDE(ptr, off) \
|
|
||||||
+({ \
|
|
||||||
+ unsigned long __ptr; \
|
|
||||||
+ __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
|
|
||||||
+ (typeof(ptr)) (__ptr + (off)); \
|
|
||||||
+})
|
|
||||||
+
|
|
||||||
+/* Make the optimizer believe the variable can be manipulated arbitrarily. */
|
|
||||||
+#define OPTIMIZER_HIDE_VAR(var) \
|
|
||||||
+ __asm__ ("" : "=r" (var) : "0" (var))
|
|
||||||
+
|
|
||||||
+#ifdef __CHECKER__
|
|
||||||
+#define __must_be_array(a) 0
|
|
||||||
+#else
|
|
||||||
+/* &a[0] degrades to a pointer: a different type from an array */
|
|
||||||
+#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Force always-inline if the user requests it so via the .config,
|
|
||||||
+ * or if gcc is too old:
|
|
||||||
+ */
|
|
||||||
+#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
|
|
||||||
+ !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
|
|
||||||
+#define inline inline __attribute__((always_inline)) notrace
|
|
||||||
+#define __inline__ __inline__ __attribute__((always_inline)) notrace
|
|
||||||
+#define __inline __inline __attribute__((always_inline)) notrace
|
|
||||||
+#else
|
|
||||||
+/* A lot of inline functions can cause havoc with function tracing */
|
|
||||||
+#define inline inline notrace
|
|
||||||
+#define __inline__ __inline__ notrace
|
|
||||||
+#define __inline __inline notrace
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#define __always_inline inline __attribute__((always_inline))
|
|
||||||
+#define noinline __attribute__((noinline))
|
|
||||||
+
|
|
||||||
+#define __deprecated __attribute__((deprecated))
|
|
||||||
+#define __packed __attribute__((packed))
|
|
||||||
+#define __weak __attribute__((weak))
|
|
||||||
+#define __alias(symbol) __attribute__((alias(#symbol)))
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * it doesn't make sense on ARM (currently the only user of __naked)
|
|
||||||
+ * to trace naked functions because then mcount is called without
|
|
||||||
+ * stack and frame pointer being set up and there is no chance to
|
|
||||||
+ * restore the lr register to the value before mcount was called.
|
|
||||||
+ *
|
|
||||||
+ * The asm() bodies of naked functions often depend on standard calling
|
|
||||||
+ * conventions, therefore they must be noinline and noclone.
|
|
||||||
+ *
|
|
||||||
+ * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
|
|
||||||
+ * See GCC PR44290.
|
|
||||||
+ */
|
|
||||||
+#define __naked __attribute__((naked)) noinline __noclone notrace
|
|
||||||
+
|
|
||||||
+#define __noreturn __attribute__((noreturn))
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * From the GCC manual:
|
|
||||||
+ *
|
|
||||||
+ * Many functions have no effects except the return value and their
|
|
||||||
+ * return value depends only on the parameters and/or global
|
|
||||||
+ * variables. Such a function can be subject to common subexpression
|
|
||||||
+ * elimination and loop optimization just as an arithmetic operator
|
|
||||||
+ * would be.
|
|
||||||
+ * [...]
|
|
||||||
+ */
|
|
||||||
+#define __pure __attribute__((pure))
|
|
||||||
+#define __aligned(x) __attribute__((aligned(x)))
|
|
||||||
+#define __printf(a, b) __attribute__((format(printf, a, b)))
|
|
||||||
+#define __scanf(a, b) __attribute__((format(scanf, a, b)))
|
|
||||||
+#define __attribute_const__ __attribute__((__const__))
|
|
||||||
+#define __maybe_unused __attribute__((unused))
|
|
||||||
+#define __always_unused __attribute__((unused))
|
|
||||||
+
|
|
||||||
+/* gcc version specific checks */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION < 30200
|
|
||||||
+# error Sorry, your compiler is too old - please upgrade it.
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION < 30300
|
|
||||||
+# define __used __attribute__((__unused__))
|
|
||||||
+#else
|
|
||||||
+# define __used __attribute__((__used__))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef CONFIG_GCOV_KERNEL
|
|
||||||
+# if GCC_VERSION < 30400
|
|
||||||
+# error "GCOV profiling support for gcc versions below 3.4 not included"
|
|
||||||
+# endif /* __GNUC_MINOR__ */
|
|
||||||
+#endif /* CONFIG_GCOV_KERNEL */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 30400
|
|
||||||
+#define __must_check __attribute__((warn_unused_result))
|
|
||||||
+#define __malloc __attribute__((__malloc__))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40000
|
|
||||||
+
|
|
||||||
+/* GCC 4.1.[01] miscompiles __weak */
|
|
||||||
+#ifdef __KERNEL__
|
|
||||||
+# if GCC_VERSION >= 40100 && GCC_VERSION <= 40101
|
|
||||||
+# error Your version of gcc miscompiles the __weak directive
|
|
||||||
+# endif
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#define __used __attribute__((__used__))
|
|
||||||
+#define __compiler_offsetof(a, b) \
|
|
||||||
+ __builtin_offsetof(a, b)
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
|
|
||||||
+# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40300
|
|
||||||
+/* Mark functions as cold. gcc will assume any path leading to a call
|
|
||||||
+ * to them will be unlikely. This means a lot of manual unlikely()s
|
|
||||||
+ * are unnecessary now for any paths leading to the usual suspects
|
|
||||||
+ * like BUG(), printk(), panic() etc. [but let's keep them for now for
|
|
||||||
+ * older compilers]
|
|
||||||
+ *
|
|
||||||
+ * Early snapshots of gcc 4.3 don't support this and we can't detect this
|
|
||||||
+ * in the preprocessor, but we can live with this because they're unreleased.
|
|
||||||
+ * Maketime probing would be overkill here.
|
|
||||||
+ *
|
|
||||||
+ * gcc also has a __attribute__((__hot__)) to move hot functions into
|
|
||||||
+ * a special section, but I don't see any sense in this right now in
|
|
||||||
+ * the kernel context
|
|
||||||
+ */
|
|
||||||
+#define __cold __attribute__((__cold__))
|
|
||||||
+
|
|
||||||
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
|
||||||
+
|
|
||||||
+#ifndef __CHECKER__
|
|
||||||
+# define __compiletime_warning(message) __attribute__((warning(message)))
|
|
||||||
+# define __compiletime_error(message) __attribute__((error(message)))
|
|
||||||
+#endif /* __CHECKER__ */
|
|
||||||
+#endif /* GCC_VERSION >= 40300 */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40500
|
|
||||||
+/*
|
|
||||||
+ * Mark a position in code as unreachable. This can be used to
|
|
||||||
+ * suppress control flow warnings after asm blocks that transfer
|
|
||||||
+ * control elsewhere.
|
|
||||||
+ *
|
|
||||||
+ * Early snapshots of gcc 4.5 don't support this and we can't detect
|
|
||||||
+ * this in the preprocessor, but we can live with this because they're
|
|
||||||
+ * unreleased. Really, we need to have autoconf for the kernel.
|
|
||||||
+ */
|
|
||||||
+#define unreachable() __builtin_unreachable()
|
|
||||||
+
|
|
||||||
+/* Mark a function definition as prohibited from being cloned. */
|
|
||||||
+#define __noclone __attribute__((__noclone__, __optimize__("no-tracer")))
|
|
||||||
+
|
|
||||||
+#endif /* GCC_VERSION >= 40500 */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40600
|
|
||||||
+/*
|
|
||||||
+ * When used with Link Time Optimization, gcc can optimize away C functions or
|
|
||||||
+ * variables which are referenced only from assembly code. __visible tells the
|
|
||||||
+ * optimizer that something else uses this function or variable, thus preventing
|
|
||||||
+ * this.
|
|
||||||
+ */
|
|
||||||
+#define __visible __attribute__((externally_visible))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
|
|
||||||
+/*
|
|
||||||
+ * __assume_aligned(n, k): Tell the optimizer that the returned
|
|
||||||
+ * pointer can be assumed to be k modulo n. The second argument is
|
|
||||||
+ * optional (default 0), so we use a variadic macro to make the
|
|
||||||
+ * shorthand.
|
|
||||||
+ *
|
|
||||||
+ * Beware: Do not apply this to functions which may return
|
|
||||||
+ * ERR_PTRs. Also, it is probably unwise to apply it to functions
|
|
||||||
+ * returning extra information in the low bits (but in that case the
|
|
||||||
+ * compiler should see some alignment anyway, when the return value is
|
|
||||||
+ * massaged by 'flags = ptr & 3; ptr &= ~3;').
|
|
||||||
+ */
|
|
||||||
+#define __assume_aligned(a, ...) __attribute__((__assume_aligned__(a, ## __VA_ARGS__)))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * GCC 'asm goto' miscompiles certain code sequences:
|
|
||||||
+ *
|
|
||||||
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
|
||||||
+ *
|
|
||||||
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
|
||||||
+ *
|
|
||||||
+ * (asm goto is automatically volatile - the naming reflects this.)
|
|
||||||
+ */
|
|
||||||
+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
|
||||||
+
|
|
||||||
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
|
||||||
+#if GCC_VERSION >= 40400
|
|
||||||
+#define __HAVE_BUILTIN_BSWAP32__
|
|
||||||
+#define __HAVE_BUILTIN_BSWAP64__
|
|
||||||
+#endif
|
|
||||||
+#if GCC_VERSION >= 40800
|
|
||||||
+#define __HAVE_BUILTIN_BSWAP16__
|
|
||||||
+#endif
|
|
||||||
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 50000
|
|
||||||
+#define KASAN_ABI_VERSION 4
|
|
||||||
+#elif GCC_VERSION >= 40902
|
|
||||||
+#define KASAN_ABI_VERSION 3
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40902
|
|
||||||
+/*
|
|
||||||
+ * Tell the compiler that address safety instrumentation (KASAN)
|
|
||||||
+ * should not be applied to that function.
|
|
||||||
+ * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
|
|
||||||
+ */
|
|
||||||
+#define __no_sanitize_address __attribute__((no_sanitize_address))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#endif /* gcc version >= 40000 specific checks */
|
|
||||||
+
|
|
||||||
+#if !defined(__noclone)
|
|
||||||
+#define __noclone /* not needed */
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if !defined(__no_sanitize_address)
|
|
||||||
+#define __no_sanitize_address
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * A trick to suppress uninitialized variable warning without generating any
|
|
||||||
+ * code
|
|
||||||
+ */
|
|
||||||
+#define uninitialized_var(x) x = x
|
|
|
@ -1,287 +0,0 @@
|
||||||
--- /dev/null
|
|
||||||
+++ b/include/linux/compiler-gcc8.h
|
|
||||||
@@ -0,0 +1,284 @@
|
|
||||||
+#ifndef __LINUX_COMPILER_H
|
|
||||||
+#error "Please don't include <linux/compiler-gcc.h> directly, include <linux/compiler.h> instead."
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Common definitions for all gcc versions go here.
|
|
||||||
+ */
|
|
||||||
+#define GCC_VERSION (__GNUC__ * 10000 \
|
|
||||||
+ + __GNUC_MINOR__ * 100 \
|
|
||||||
+ + __GNUC_PATCHLEVEL__)
|
|
||||||
+
|
|
||||||
+/* Optimization barrier */
|
|
||||||
+
|
|
||||||
+/* The "volatile" is due to gcc bugs */
|
|
||||||
+#define barrier() __asm__ __volatile__("": : :"memory")
|
|
||||||
+/*
|
|
||||||
+ * This version is i.e. to prevent dead stores elimination on @ptr
|
|
||||||
+ * where gcc and llvm may behave differently when otherwise using
|
|
||||||
+ * normal barrier(): while gcc behavior gets along with a normal
|
|
||||||
+ * barrier(), llvm needs an explicit input variable to be assumed
|
|
||||||
+ * clobbered. The issue is as follows: while the inline asm might
|
|
||||||
+ * access any memory it wants, the compiler could have fit all of
|
|
||||||
+ * @ptr into memory registers instead, and since @ptr never escaped
|
|
||||||
+ * from that, it proofed that the inline asm wasn't touching any of
|
|
||||||
+ * it. This version works well with both compilers, i.e. we're telling
|
|
||||||
+ * the compiler that the inline asm absolutely may see the contents
|
|
||||||
+ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
|
|
||||||
+ */
|
|
||||||
+#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * This macro obfuscates arithmetic on a variable address so that gcc
|
|
||||||
+ * shouldn't recognize the original var, and make assumptions about it.
|
|
||||||
+ *
|
|
||||||
+ * This is needed because the C standard makes it undefined to do
|
|
||||||
+ * pointer arithmetic on "objects" outside their boundaries and the
|
|
||||||
+ * gcc optimizers assume this is the case. In particular they
|
|
||||||
+ * assume such arithmetic does not wrap.
|
|
||||||
+ *
|
|
||||||
+ * A miscompilation has been observed because of this on PPC.
|
|
||||||
+ * To work around it we hide the relationship of the pointer and the object
|
|
||||||
+ * using this macro.
|
|
||||||
+ *
|
|
||||||
+ * Versions of the ppc64 compiler before 4.1 had a bug where use of
|
|
||||||
+ * RELOC_HIDE could trash r30. The bug can be worked around by changing
|
|
||||||
+ * the inline assembly constraint from =g to =r, in this particular
|
|
||||||
+ * case either is valid.
|
|
||||||
+ */
|
|
||||||
+#define RELOC_HIDE(ptr, off) \
|
|
||||||
+({ \
|
|
||||||
+ unsigned long __ptr; \
|
|
||||||
+ __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
|
|
||||||
+ (typeof(ptr)) (__ptr + (off)); \
|
|
||||||
+})
|
|
||||||
+
|
|
||||||
+/* Make the optimizer believe the variable can be manipulated arbitrarily. */
|
|
||||||
+#define OPTIMIZER_HIDE_VAR(var) \
|
|
||||||
+ __asm__ ("" : "=r" (var) : "0" (var))
|
|
||||||
+
|
|
||||||
+#ifdef __CHECKER__
|
|
||||||
+#define __must_be_array(a) 0
|
|
||||||
+#else
|
|
||||||
+/* &a[0] degrades to a pointer: a different type from an array */
|
|
||||||
+#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Force always-inline if the user requests it so via the .config,
|
|
||||||
+ * or if gcc is too old:
|
|
||||||
+ */
|
|
||||||
+#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
|
|
||||||
+ !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
|
|
||||||
+#define inline inline __attribute__((always_inline)) notrace
|
|
||||||
+#define __inline__ __inline__ __attribute__((always_inline)) notrace
|
|
||||||
+#define __inline __inline __attribute__((always_inline)) notrace
|
|
||||||
+#else
|
|
||||||
+/* A lot of inline functions can cause havoc with function tracing */
|
|
||||||
+#define inline inline notrace
|
|
||||||
+#define __inline__ __inline__ notrace
|
|
||||||
+#define __inline __inline notrace
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#define __always_inline inline __attribute__((always_inline))
|
|
||||||
+#define noinline __attribute__((noinline))
|
|
||||||
+
|
|
||||||
+#define __deprecated __attribute__((deprecated))
|
|
||||||
+#define __packed __attribute__((packed))
|
|
||||||
+#define __weak __attribute__((weak))
|
|
||||||
+#define __alias(symbol) __attribute__((alias(#symbol)))
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * it doesn't make sense on ARM (currently the only user of __naked)
|
|
||||||
+ * to trace naked functions because then mcount is called without
|
|
||||||
+ * stack and frame pointer being set up and there is no chance to
|
|
||||||
+ * restore the lr register to the value before mcount was called.
|
|
||||||
+ *
|
|
||||||
+ * The asm() bodies of naked functions often depend on standard calling
|
|
||||||
+ * conventions, therefore they must be noinline and noclone.
|
|
||||||
+ *
|
|
||||||
+ * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
|
|
||||||
+ * See GCC PR44290.
|
|
||||||
+ */
|
|
||||||
+#define __naked __attribute__((naked)) noinline __noclone notrace
|
|
||||||
+
|
|
||||||
+#define __noreturn __attribute__((noreturn))
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * From the GCC manual:
|
|
||||||
+ *
|
|
||||||
+ * Many functions have no effects except the return value and their
|
|
||||||
+ * return value depends only on the parameters and/or global
|
|
||||||
+ * variables. Such a function can be subject to common subexpression
|
|
||||||
+ * elimination and loop optimization just as an arithmetic operator
|
|
||||||
+ * would be.
|
|
||||||
+ * [...]
|
|
||||||
+ */
|
|
||||||
+#define __pure __attribute__((pure))
|
|
||||||
+#define __aligned(x) __attribute__((aligned(x)))
|
|
||||||
+#define __printf(a, b) __attribute__((format(printf, a, b)))
|
|
||||||
+#define __scanf(a, b) __attribute__((format(scanf, a, b)))
|
|
||||||
+#define __attribute_const__ __attribute__((__const__))
|
|
||||||
+#define __maybe_unused __attribute__((unused))
|
|
||||||
+#define __always_unused __attribute__((unused))
|
|
||||||
+
|
|
||||||
+/* gcc version specific checks */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION < 30200
|
|
||||||
+# error Sorry, your compiler is too old - please upgrade it.
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION < 30300
|
|
||||||
+# define __used __attribute__((__unused__))
|
|
||||||
+#else
|
|
||||||
+# define __used __attribute__((__used__))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifdef CONFIG_GCOV_KERNEL
|
|
||||||
+# if GCC_VERSION < 30400
|
|
||||||
+# error "GCOV profiling support for gcc versions below 3.4 not included"
|
|
||||||
+# endif /* __GNUC_MINOR__ */
|
|
||||||
+#endif /* CONFIG_GCOV_KERNEL */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 30400
|
|
||||||
+#define __must_check __attribute__((warn_unused_result))
|
|
||||||
+#define __malloc __attribute__((__malloc__))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40000
|
|
||||||
+
|
|
||||||
+/* GCC 4.1.[01] miscompiles __weak */
|
|
||||||
+#ifdef __KERNEL__
|
|
||||||
+# if GCC_VERSION >= 40100 && GCC_VERSION <= 40101
|
|
||||||
+# error Your version of gcc miscompiles the __weak directive
|
|
||||||
+# endif
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#define __used __attribute__((__used__))
|
|
||||||
+#define __compiler_offsetof(a, b) \
|
|
||||||
+ __builtin_offsetof(a, b)
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
|
|
||||||
+# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40300
|
|
||||||
+/* Mark functions as cold. gcc will assume any path leading to a call
|
|
||||||
+ * to them will be unlikely. This means a lot of manual unlikely()s
|
|
||||||
+ * are unnecessary now for any paths leading to the usual suspects
|
|
||||||
+ * like BUG(), printk(), panic() etc. [but let's keep them for now for
|
|
||||||
+ * older compilers]
|
|
||||||
+ *
|
|
||||||
+ * Early snapshots of gcc 4.3 don't support this and we can't detect this
|
|
||||||
+ * in the preprocessor, but we can live with this because they're unreleased.
|
|
||||||
+ * Maketime probing would be overkill here.
|
|
||||||
+ *
|
|
||||||
+ * gcc also has a __attribute__((__hot__)) to move hot functions into
|
|
||||||
+ * a special section, but I don't see any sense in this right now in
|
|
||||||
+ * the kernel context
|
|
||||||
+ */
|
|
||||||
+#define __cold __attribute__((__cold__))
|
|
||||||
+
|
|
||||||
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
|
||||||
+
|
|
||||||
+#ifndef __CHECKER__
|
|
||||||
+# define __compiletime_warning(message) __attribute__((warning(message)))
|
|
||||||
+# define __compiletime_error(message) __attribute__((error(message)))
|
|
||||||
+#endif /* __CHECKER__ */
|
|
||||||
+#endif /* GCC_VERSION >= 40300 */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40500
|
|
||||||
+/*
|
|
||||||
+ * Mark a position in code as unreachable. This can be used to
|
|
||||||
+ * suppress control flow warnings after asm blocks that transfer
|
|
||||||
+ * control elsewhere.
|
|
||||||
+ *
|
|
||||||
+ * Early snapshots of gcc 4.5 don't support this and we can't detect
|
|
||||||
+ * this in the preprocessor, but we can live with this because they're
|
|
||||||
+ * unreleased. Really, we need to have autoconf for the kernel.
|
|
||||||
+ */
|
|
||||||
+#define unreachable() __builtin_unreachable()
|
|
||||||
+
|
|
||||||
+/* Mark a function definition as prohibited from being cloned. */
|
|
||||||
+#define __noclone __attribute__((__noclone__, __optimize__("no-tracer")))
|
|
||||||
+
|
|
||||||
+#endif /* GCC_VERSION >= 40500 */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40600
|
|
||||||
+/*
|
|
||||||
+ * When used with Link Time Optimization, gcc can optimize away C functions or
|
|
||||||
+ * variables which are referenced only from assembly code. __visible tells the
|
|
||||||
+ * optimizer that something else uses this function or variable, thus preventing
|
|
||||||
+ * this.
|
|
||||||
+ */
|
|
||||||
+#define __visible __attribute__((externally_visible))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
|
|
||||||
+/*
|
|
||||||
+ * __assume_aligned(n, k): Tell the optimizer that the returned
|
|
||||||
+ * pointer can be assumed to be k modulo n. The second argument is
|
|
||||||
+ * optional (default 0), so we use a variadic macro to make the
|
|
||||||
+ * shorthand.
|
|
||||||
+ *
|
|
||||||
+ * Beware: Do not apply this to functions which may return
|
|
||||||
+ * ERR_PTRs. Also, it is probably unwise to apply it to functions
|
|
||||||
+ * returning extra information in the low bits (but in that case the
|
|
||||||
+ * compiler should see some alignment anyway, when the return value is
|
|
||||||
+ * massaged by 'flags = ptr & 3; ptr &= ~3;').
|
|
||||||
+ */
|
|
||||||
+#define __assume_aligned(a, ...) __attribute__((__assume_aligned__(a, ## __VA_ARGS__)))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * GCC 'asm goto' miscompiles certain code sequences:
|
|
||||||
+ *
|
|
||||||
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
|
||||||
+ *
|
|
||||||
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
|
||||||
+ *
|
|
||||||
+ * (asm goto is automatically volatile - the naming reflects this.)
|
|
||||||
+ */
|
|
||||||
+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
|
||||||
+
|
|
||||||
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
|
||||||
+#if GCC_VERSION >= 40400
|
|
||||||
+#define __HAVE_BUILTIN_BSWAP32__
|
|
||||||
+#define __HAVE_BUILTIN_BSWAP64__
|
|
||||||
+#endif
|
|
||||||
+#if GCC_VERSION >= 40800
|
|
||||||
+#define __HAVE_BUILTIN_BSWAP16__
|
|
||||||
+#endif
|
|
||||||
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 50000
|
|
||||||
+#define KASAN_ABI_VERSION 4
|
|
||||||
+#elif GCC_VERSION >= 40902
|
|
||||||
+#define KASAN_ABI_VERSION 3
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if GCC_VERSION >= 40902
|
|
||||||
+/*
|
|
||||||
+ * Tell the compiler that address safety instrumentation (KASAN)
|
|
||||||
+ * should not be applied to that function.
|
|
||||||
+ * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
|
|
||||||
+ */
|
|
||||||
+#define __no_sanitize_address __attribute__((no_sanitize_address))
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#endif /* gcc version >= 40000 specific checks */
|
|
||||||
+
|
|
||||||
+#if !defined(__noclone)
|
|
||||||
+#define __noclone /* not needed */
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if !defined(__no_sanitize_address)
|
|
||||||
+#define __no_sanitize_address
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * A trick to suppress uninitialized variable warning without generating any
|
|
||||||
+ * code
|
|
||||||
+ */
|
|
||||||
+#define uninitialized_var(x) x = x
|
|
119
root/package/firmware/ipq-wifi/Makefile
Normal file
119
root/package/firmware/ipq-wifi/Makefile
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
include $(INCLUDE_DIR)/version.mk
|
||||||
|
|
||||||
|
PKG_NAME:=ipq-wifi
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
PKG_FLAGS:=nonshared
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Build/Prepare
|
||||||
|
mkdir -p $(PKG_BUILD_DIR)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Use ath10k-bdencoder from https://github.com/qca/qca-swiss-army-knife.git
|
||||||
|
# to generate the board-* files here.
|
||||||
|
#
|
||||||
|
# This is intended to be used on an interim basis until device-specific
|
||||||
|
# board data for new devices is available through the upstream compilation
|
||||||
|
#
|
||||||
|
# Please send a mail with your device-specific board files upstream.
|
||||||
|
# You can find instructions and examples on the linux-wireless wiki:
|
||||||
|
# <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles>
|
||||||
|
|
||||||
|
ALLWIFIBOARDS:= \
|
||||||
|
8dev_habanero-dvk \
|
||||||
|
aruba_ap-303 \
|
||||||
|
avm_fritzrepeater-1200 \
|
||||||
|
buffalo_wtr-m2133hp \
|
||||||
|
cellc_rtl30vw \
|
||||||
|
dlink_dap2610 \
|
||||||
|
engenius_eap2200 \
|
||||||
|
engenius_emd1 \
|
||||||
|
engenius_emr3500 \
|
||||||
|
ezviz_cs-w3-wd1200g-eup \
|
||||||
|
glinet_gl-s1300 \
|
||||||
|
linksys_ea8300 \
|
||||||
|
p2w_r619c \
|
||||||
|
mobipromo_cm520-79f \
|
||||||
|
qxwlan_e2600ac
|
||||||
|
|
||||||
|
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
|
||||||
|
|
||||||
|
define Package/ipq-wifi-default
|
||||||
|
SUBMENU:=ath10k Board-Specific Overrides
|
||||||
|
SECTION:=firmware
|
||||||
|
CATEGORY:=Firmware
|
||||||
|
DEPENDS:=@TARGET_ipq40xx
|
||||||
|
TITLE:=Custom Board
|
||||||
|
endef
|
||||||
|
|
||||||
|
define ipq-wifi-install-one-to
|
||||||
|
$(INSTALL_DIR) $(2)/lib/firmware/ath10k/$(3)/
|
||||||
|
$(INSTALL_DATA) $(1) $(2)/lib/firmware/ath10k/$(3)/board-2.bin
|
||||||
|
endef
|
||||||
|
|
||||||
|
define ipq-wifi-install-one
|
||||||
|
$(if $(filter $(suffix $(1)),.QCA4019 .qca4019),\
|
||||||
|
$(call ipq-wifi-install-one-to,$(1),$(2),QCA4019/hw1.0),\
|
||||||
|
$(if $(filter $(suffix $(1)),.QCA9888 .qca9888),\
|
||||||
|
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9888/hw2.0),\
|
||||||
|
$(if $(filter $(suffix $(1)),.QCA9984 .qca9984),\
|
||||||
|
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\
|
||||||
|
$(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\
|
||||||
|
)))
|
||||||
|
|
||||||
|
endef
|
||||||
|
# Blank line required at end of above define due to foreach context
|
||||||
|
|
||||||
|
define generate-ipq-wifi-package
|
||||||
|
define Package/ipq-wifi-$(1)
|
||||||
|
$(call Package/ipq-wifi-default)
|
||||||
|
TITLE:=board-2.bin Overrides for $(2)
|
||||||
|
CONFLICTS:=$(PREV_BOARD)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/ipq-wifi-$(1)/description
|
||||||
|
The $(2) requires board-specific, reference ("cal") data
|
||||||
|
that is not yet present in the upstream wireless firmware distribution.
|
||||||
|
|
||||||
|
This package supplies board-2.bin file(s) that, in the interim,
|
||||||
|
overwrite those supplied by the ath10k-firmware-* packages.
|
||||||
|
|
||||||
|
This is package is only necessary for the $(2).
|
||||||
|
|
||||||
|
Do not install it for any other device!
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/ipq-wifi-$(1)/install-overlay
|
||||||
|
$$$$(foreach IPQ_WIFI_BOARD_FILE,$$$$(wildcard board-$(1).*),\
|
||||||
|
$$$$(call ipq-wifi-install-one,$$$$(IPQ_WIFI_BOARD_FILE),$$(1)))
|
||||||
|
endef
|
||||||
|
|
||||||
|
PREV_BOARD+=ipq-wifi-$(1)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Add board name to ALLWIFIBOARDS
|
||||||
|
# Place files in this directory as board-<devicename>.<qca4019|qca9888|qca9984>
|
||||||
|
# Add $(eval $(call generate-ipq-wifi-package,<devicename>,<display name>))
|
||||||
|
|
||||||
|
$(eval $(call generate-ipq-wifi-package,8dev_habanero-dvk,8devices Habanero DVK))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,aruba_ap-303,Aruba AP-303))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,buffalo_wtr-m2133hp,Buffalo WTR-M2133HP))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,cellc_rtl30vw, Cell C RTL30VW))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,engenius_emr3500,EnGenius EMR3500))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,mobipromo_cm520-79f,MobiPromo CM520-79F))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,p2w_r619ac,PW R619AC))
|
||||||
|
|
||||||
|
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
|
BIN
root/package/firmware/ipq-wifi/board-p2w_r619ac.qca4019
Normal file
BIN
root/package/firmware/ipq-wifi/board-p2w_r619ac.qca4019
Normal file
Binary file not shown.
|
@ -1,65 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (C) 2012-2016 OpenWrt.org
|
|
||||||
# Copyright (C) 2017 LEDE project
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
|
||||||
#include $(INCLUDE_DIR)/image.mk
|
|
||||||
|
|
||||||
PKG_NAME:=mt7623n-preloader
|
|
||||||
PKG_VERSION:=2019-10-24
|
|
||||||
PKG_RELEASE:=1b7b6039b9d92c48193f38ac29dd2f71e303e280
|
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)/$(PKG_NAME)-$(PKG_RELEASE)
|
|
||||||
|
|
||||||
PKG_FLAGS:=nonshared
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
BPI_PRELOADER_URL:=@GITHUB/BPI-SINOVOIP/BPI-files/$(PKG_RELEASE)/SD/100MB/
|
|
||||||
BPI_PRELOADER_PREFIX:=bpi-preloader-$(PKG_RELEASE)
|
|
||||||
|
|
||||||
define Download/BPI-R2-preloader-DDR1600-20191024-2k.img.gz
|
|
||||||
FILE:=$(BPI_PRELOADER_PREFIX)-BPI-R2-preloader-DDR1600-20191024-2k.img.gz
|
|
||||||
URL:=$(BPI_PRELOADER_URL)
|
|
||||||
URL_FILE:=BPI-R2-preloader-DDR1600-20191024-2k.img.gz
|
|
||||||
HASH:=c731cc166c912c84846e2ed5faf727504e4dec1463754baa6328e9908c84a373
|
|
||||||
endef
|
|
||||||
$(eval $(call Download,BPI-R2-preloader-DDR1600-20191024-2k.img.gz))
|
|
||||||
|
|
||||||
|
|
||||||
define Package/mt7623n-preloader
|
|
||||||
SECTION:=boot
|
|
||||||
CATEGORY:=Boot Loaders
|
|
||||||
DEPENDS:=@TARGET_mediatek_mt7623
|
|
||||||
TITLE:=mt7623n-preloader
|
|
||||||
DEFAULT:=y if TARGET_mediatek
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/mt7623n-preloader/description
|
|
||||||
Preloader image for mt7623n based boards like Bannana Pi R2.
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Prepare
|
|
||||||
rm -rf $(PKG_BUILD_DIR)
|
|
||||||
mkdir -p $(PKG_BUILD_DIR)
|
|
||||||
cp $(DL_DIR)/$(BPI_PRELOADER_PREFIX)-BPI-R2-preloader-DDR1600-20191024-2k.img.gz $(PKG_BUILD_DIR)/bpi-r2-preloader.bin.gz
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Compile
|
|
||||||
true
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/brcm2708-gpu-fw/install
|
|
||||||
true
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/InstallDev
|
|
||||||
mkdir -p $(STAGING_DIR_IMAGE)
|
|
||||||
gunzip -c $(PKG_BUILD_DIR)/bpi-r2-preloader.bin.gz > $(STAGING_DIR_IMAGE)/bpi-r2-preloader.bin
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage,mt7623n-preloader))
|
|
File diff suppressed because it is too large
Load diff
|
@ -12,3 +12,36 @@
|
||||||
if (audit_enabled) {
|
if (audit_enabled) {
|
||||||
current_uid_gid(&uid, &gid);
|
current_uid_gid(&uid, &gid);
|
||||||
audit_log(current->audit_context, GFP_ATOMIC,
|
audit_log(current->audit_context, GFP_ATOMIC,
|
||||||
|
--- a/drivers/net/usb/r8152.c 2020-08-13 13:11:25.866435255 +0200
|
||||||
|
+++ b/drivers/net/usb/r8152.c 2020-08-13 13:11:51.973994306 +0200
|
||||||
|
@@ -2353,7 +2353,7 @@
|
||||||
|
|
||||||
|
if (netdev->flags & IFF_PROMISC) {
|
||||||
|
/* Unconditionally log net taps. */
|
||||||
|
- netif_notice(tp, link, netdev, "Promiscuous mode enabled\n");
|
||||||
|
+ //netif_notice(tp, link, netdev, "Promiscuous mode enabled\n");
|
||||||
|
ocp_data |= RCR_AM | RCR_AAP;
|
||||||
|
mc_filter[1] = 0xffffffff;
|
||||||
|
mc_filter[0] = 0xffffffff;
|
||||||
|
--- a/drivers/net/usb/pegasus.c 2020-08-13 13:14:15.519570376 +0200
|
||||||
|
+++ b/drivers/net/usb/pegasus.c 2020-08-13 13:14:26.795380006 +0200
|
||||||
|
@@ -1031,7 +1031,7 @@
|
||||||
|
|
||||||
|
if (net->flags & IFF_PROMISC) {
|
||||||
|
pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS;
|
||||||
|
- netif_info(pegasus, link, net, "Promiscuous mode enabled\n");
|
||||||
|
+ //netif_info(pegasus, link, net, "Promiscuous mode enabled\n");
|
||||||
|
} else if (!netdev_mc_empty(net) || (net->flags & IFF_ALLMULTI)) {
|
||||||
|
pegasus->eth_regs[EthCtrl0] |= RX_MULTICAST;
|
||||||
|
pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
|
||||||
|
--- a/drivers/net/ethernet/realtek/r8169_main.c 2020-08-13 13:15:44.478068638 +0200
|
||||||
|
+++ b/drivers/net/ethernet/realtek/r8169_main.c 2020-08-13 13:15:59.181820450 +0200
|
||||||
|
@@ -4313,7 +4313,7 @@
|
||||||
|
|
||||||
|
if (dev->flags & IFF_PROMISC) {
|
||||||
|
/* Unconditionally log net taps. */
|
||||||
|
- netif_notice(tp, link, dev, "Promiscuous mode enabled\n");
|
||||||
|
+ //netif_notice(tp, link, dev, "Promiscuous mode enabled\n");
|
||||||
|
rx_mode |= AcceptAllPhys;
|
||||||
|
} else if (netdev_mc_count(dev) > MC_FILTER_LIMIT ||
|
||||||
|
dev->flags & IFF_ALLMULTI ||
|
||||||
|
|
173
root/target/linux/ipq40xx/base-files/etc/board.d/02_network
Executable file
173
root/target/linux/ipq40xx/base-files/etc/board.d/02_network
Executable file
|
@ -0,0 +1,173 @@
|
||||||
|
#!/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)
|
||||||
|
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|\
|
||||||
|
openmesh,a42|\
|
||||||
|
openmesh,a62)
|
||||||
|
ucidef_set_interfaces_lan_wan "eth1" "eth0"
|
||||||
|
;;
|
||||||
|
asus,rt-ac58u|\
|
||||||
|
p2w,r619ac-128m|\
|
||||||
|
p2w,r619ac|\
|
||||||
|
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|\
|
||||||
|
linksys,ea8300)
|
||||||
|
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|\
|
||||||
|
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"
|
||||||
|
;;
|
||||||
|
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-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|\
|
||||||
|
p2w,r619ac-128m|\
|
||||||
|
p2w,r619ac)
|
||||||
|
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)
|
||||||
|
;;
|
||||||
|
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
|
|
@ -0,0 +1,242 @@
|
||||||
|
#!/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)
|
||||||
|
caldata_extract "0:ART" 0x9000 0x2f20
|
||||||
|
;;
|
||||||
|
linksys,ea8300)
|
||||||
|
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-b1300 |\
|
||||||
|
glinet,gl-s1300 |\
|
||||||
|
linksys,ea6350v3 |\
|
||||||
|
mobipromo,cm520-79f |\
|
||||||
|
p2w,r619ac-128m |\
|
||||||
|
p2w,r619ac |\
|
||||||
|
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 |\
|
||||||
|
engenius,eap1300 |\
|
||||||
|
engenius,eap2200 |\
|
||||||
|
openmesh,a42 |\
|
||||||
|
openmesh,a62 |\
|
||||||
|
qxwlan,e2600ac-c1 |\
|
||||||
|
qxwlan,e2600ac-c2 |\
|
||||||
|
unielec,u4019-32m)
|
||||||
|
caldata_extract "0:ART" 0x1000 0x2f20
|
||||||
|
;;
|
||||||
|
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)
|
||||||
|
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-b1300 |\
|
||||||
|
glinet,gl-s1300 |\
|
||||||
|
linksys,ea6350v3 |\
|
||||||
|
mobipromo,cm520-79f |\
|
||||||
|
p2w,r619ac-128m |\
|
||||||
|
p2w,r619ac |\
|
||||||
|
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 |\
|
||||||
|
engenius,eap1300 |\
|
||||||
|
engenius,eap2200 |\
|
||||||
|
openmesh,a42 |\
|
||||||
|
openmesh,a62 |\
|
||||||
|
qxwlan,e2600ac-c1 |\
|
||||||
|
qxwlan,e2600ac-c2 |\
|
||||||
|
unielec,u4019-32m)
|
||||||
|
caldata_extract "0:ART" 0x5000 0x2f20
|
||||||
|
;;
|
||||||
|
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)
|
||||||
|
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
|
123
root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
Normal file
123
root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
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 |\
|
||||||
|
aruba,ap-303h |\
|
||||||
|
aruba,ap-365 |\
|
||||||
|
avm,fritzbox-7530 |\
|
||||||
|
avm,fritzrepeater-1200 |\
|
||||||
|
avm,fritzrepeater-3000 |\
|
||||||
|
buffalo,wtr-m2133hp |\
|
||||||
|
cilab,meshpoint-one |\
|
||||||
|
engenius,eap2200 |\
|
||||||
|
mobipromo,cm520-79f |\
|
||||||
|
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|\
|
||||||
|
p2w,r619ac-128m|\
|
||||||
|
p2w,r619ac)
|
||||||
|
nand_do_upgrade "$1"
|
||||||
|
;;
|
||||||
|
linksys,ea6350v3 |\
|
||||||
|
linksys,ea8300)
|
||||||
|
platform_do_upgrade_linksys "$1"
|
||||||
|
;;
|
||||||
|
meraki,mr33)
|
||||||
|
CI_KERNPART="part.safe"
|
||||||
|
nand_do_upgrade "$1"
|
||||||
|
;;
|
||||||
|
openmesh,a42 |\
|
||||||
|
openmesh,a62)
|
||||||
|
PART_NAME="inactive"
|
||||||
|
platform_do_upgrade_openmesh "$1"
|
||||||
|
;;
|
||||||
|
zyxel,nbg6617)
|
||||||
|
zyxel_do_upgrade "$1"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
default_do_upgrade "$1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
// 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&rootfs_part1 {
|
||||||
|
reg = <0x0 0x8000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/delete-node/ &rootfs_part2;
|
|
@ -0,0 +1,12 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
|
||||||
|
#include "qcom-ipq4019-r619ac.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "P&W R619AC";
|
||||||
|
compatible = "p2w,r619ac";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs";
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,322 @@
|
||||||
|
// 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";
|
||||||
|
pinctrl-0 = <&led_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
|
||||||
|
led_sys: sys {
|
||||||
|
label = "r619ac:blue:sys";
|
||||||
|
gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan2g {
|
||||||
|
label = "r619ac:blue:wlan2g";
|
||||||
|
gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
|
||||||
|
linux,default-trigger = "phy0tpt";
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan5g {
|
||||||
|
label = "r619ac: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@1 {
|
||||||
|
label = "Bootloader";
|
||||||
|
reg = <0x0 0x170000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@170000 {
|
||||||
|
label = "ART";
|
||||||
|
reg = <0x170000 0x10000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@180000 {
|
||||||
|
label = "unused";
|
||||||
|
reg = <0x180000 0xe80000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&blsp1_uart1 {
|
||||||
|
pinctrl-0 = <&serial_0_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cryptobam {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&nand {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
nand@0 {
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
rootfs_part1: partition@0 {
|
||||||
|
label = "rootfs";
|
||||||
|
reg = <0x0 0x4000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
rootfs_part2: partition@4000000 {
|
||||||
|
label = "unused1";
|
||||||
|
reg = <0x4000000 0x4000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&qpic_bam {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sdhci {
|
||||||
|
pinctrl-0 = <&sd_0_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
vqmmc-supply = <&vqmmc>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&tlmm {
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
led_pins: led_pinmux {
|
||||||
|
mux {
|
||||||
|
pins = "gpio32", "gpio39", "gpio50";
|
||||||
|
function = "gpio";
|
||||||
|
bias-pull-up;
|
||||||
|
output-low;
|
||||||
|
};
|
||||||
|
|
||||||
|
mux_1 {
|
||||||
|
pins = "gpio52";
|
||||||
|
function = "gpio";
|
||||||
|
bias-pull-up;
|
||||||
|
output-high;
|
||||||
|
};
|
||||||
|
|
||||||
|
mux_2 {
|
||||||
|
pins = "gpio61";
|
||||||
|
function = "gpio";
|
||||||
|
bias-pull-down;
|
||||||
|
output-high;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&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 = "R619AC";
|
||||||
|
};
|
||||||
|
|
||||||
|
&wifi1 {
|
||||||
|
status = "okay";
|
||||||
|
qcom,ath10k-calibration-variant = "R619AC";
|
||||||
|
};
|
734
root/target/linux/ipq40xx/image/Makefile
Normal file
734
root/target/linux/ipq40xx/image/Makefile
Normal file
|
@ -0,0 +1,734 @@
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
include $(INCLUDE_DIR)/image.mk
|
||||||
|
|
||||||
|
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/Default
|
||||||
|
PROFILES := Default
|
||||||
|
KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
|
||||||
|
KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
|
||||||
|
KERNEL_PREFIX := $$(IMAGE_PREFIX)
|
||||||
|
KERNEL_LOADADDR := 0x80208000
|
||||||
|
DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
|
||||||
|
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
|
||||||
|
IMAGES := sysupgrade.bin
|
||||||
|
IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
|
||||||
|
IMAGE/sysupgrade.bin/squashfs :=
|
||||||
|
endef
|
||||||
|
|
||||||
|
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/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
|
||||||
|
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
|
||||||
|
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/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/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-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/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_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_VENDOR := Netgear
|
||||||
|
DEVICE_MODEL := EX6100
|
||||||
|
DEVICE_VARIANT := v2
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += netgear_ex6100v2
|
||||||
|
|
||||||
|
define Device/netgear_ex6150v2
|
||||||
|
$(call Device/netgear_ex61x0v2)
|
||||||
|
DEVICE_VENDOR := Netgear
|
||||||
|
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/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/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
|
||||||
|
IMAGES += nand-factory.bin
|
||||||
|
IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand
|
||||||
|
DEVICE_PACKAGES := ipq-wifi-p2w_r619ac
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += p2w_r619ac
|
||||||
|
|
||||||
|
define Device/p2w_r619ac-128m
|
||||||
|
$(call Device/FitzImage)
|
||||||
|
$(call Device/UbiFit)
|
||||||
|
DEVICE_VENDOR := P&W
|
||||||
|
DEVICE_MODEL := R619AC
|
||||||
|
DEVICE_VARIANT := 128M
|
||||||
|
SOC := qcom-ipq4019
|
||||||
|
DEVICE_DTS_CONFIG := config@10
|
||||||
|
BLOCKSIZE := 128k
|
||||||
|
PAGESIZE := 2048
|
||||||
|
DEVICE_PACKAGES := ipq-wifi-p2w_r619ac
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += p2w_r619ac-128m
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
$(eval $(call BuildImage))
|
|
@ -0,0 +1,65 @@
|
||||||
|
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,52 @@ 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-ea6350v3.dtb \
|
||||||
|
+ qcom-ipq4018-eap1300.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-jalapeno.dtb \
|
||||||
|
+ qcom-ipq4018-meshpoint-one.dtb \
|
||||||
|
+ qcom-ipq4018-nbg6617.dtb \
|
||||||
|
+ qcom-ipq4018-rt-ac58u.dtb \
|
||||||
|
+ qcom-ipq4018-wre6606.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-r619ac.dtb \
|
||||||
|
+ qcom-ipq4019-r619ac-128m.dtb \
|
||||||
|
+ qcom-ipq4019-map-ac2200.dtb \
|
||||||
|
+ qcom-ipq4019-e2600ac-c1.dtb \
|
||||||
|
+ qcom-ipq4019-e2600ac-c2.dtb \
|
||||||
|
+ qcom-ipq4019-habanero-dvk.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 \
|
|
@ -1,4 +0,0 @@
|
||||||
config MEDIATEK_SD_BOOT_PARTSIZE
|
|
||||||
int "Boot (SD Card) filesystem partition size (in MB)"
|
|
||||||
depends on TARGET_mediatek
|
|
||||||
default 128
|
|
|
@ -1,90 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (C) 2012-2015 OpenWrt.org
|
|
||||||
# Copyright (C) 2016-2017 LEDE project
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
include $(INCLUDE_DIR)/image.mk
|
|
||||||
|
|
||||||
FAT32_BLOCK_SIZE=1024
|
|
||||||
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_MEDIATEK_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
|
|
||||||
|
|
||||||
# for arm
|
|
||||||
KERNEL_LOADADDR := 0x80008000
|
|
||||||
|
|
||||||
define Build/mediatek-sdcard
|
|
||||||
rm -f $@.boot
|
|
||||||
mkfs.fat $@.boot -C $(FAT32_BLOCKS)
|
|
||||||
|
|
||||||
mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-uEnv.txt ::uEnv.txt
|
|
||||||
mcopy -i $@.boot $(IMAGE_KERNEL) ::uImage
|
|
||||||
./gen_mt7623_sdcard_img.sh $@ \
|
|
||||||
$(STAGING_DIR_IMAGE)/bpi-r2-preloader.bin \
|
|
||||||
$(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-uboot-mediatek.bin \
|
|
||||||
$@.boot \
|
|
||||||
$(IMAGE_ROOTFS) \
|
|
||||||
$(CONFIG_MEDIATEK_SD_BOOT_PARTSIZE) \
|
|
||||||
$(CONFIG_TARGET_ROOTFS_PARTSIZE)
|
|
||||||
rm -f $@.boot
|
|
||||||
|
|
||||||
endef
|
|
||||||
|
|
||||||
# for arm64
|
|
||||||
ifeq ($(SUBTARGET),mt7622)
|
|
||||||
KERNEL_LOADADDR = 0x41080000
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(SUBTARGET),mt7629)
|
|
||||||
KERNEL_LOADADDR = 0x40008000
|
|
||||||
endif
|
|
||||||
|
|
||||||
define Build/sysupgrade-emmc
|
|
||||||
rm -f $@.recovery
|
|
||||||
mkfs.fat -C $@.recovery 3070
|
|
||||||
|
|
||||||
./gen_mt7623_emmc_img.sh $@ \
|
|
||||||
$(IMAGE_KERNEL) \
|
|
||||||
$@.recovery \
|
|
||||||
$(IMAGE_ROOTFS)
|
|
||||||
endef
|
|
||||||
|
|
||||||
# default all platform image(fit) build
|
|
||||||
define Device/Default
|
|
||||||
PROFILES = Default $$(DEVICE_NAME)
|
|
||||||
KERNEL_NAME := zImage
|
|
||||||
FILESYSTEMS := squashfs
|
|
||||||
DEVICE_DTS_DIR := $(DTS_DIR)
|
|
||||||
IMAGES := sysupgrade.bin
|
|
||||||
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
|
|
||||||
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
|
|
||||||
ifeq ($(SUBTARGET),mt7623)
|
|
||||||
DEVICE_VARS := MEDIATEK_UBOOT
|
|
||||||
KERNEL_NAME := zImage
|
|
||||||
KERNEL := kernel-bin | append-dtb | uImage none
|
|
||||||
KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
|
|
||||||
FILESYSTEMS += ext4
|
|
||||||
IMAGES := sysupgrade.tar sdcard.img.gz
|
|
||||||
IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
|
|
||||||
IMAGE/sdcard.img.gz := mediatek-sdcard | gzip | append-metadata
|
|
||||||
else
|
|
||||||
KERNEL_NAME := Image
|
|
||||||
KERNEL = kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
|
|
||||||
KERNEL_INITRAMFS = kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
|
|
||||||
endif
|
|
||||||
endef
|
|
||||||
|
|
||||||
ifeq ($(SUBTARGET),mt7622)
|
|
||||||
include mt7622.mk
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(SUBTARGET),mt7623)
|
|
||||||
include mt7623.mk
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(SUBTARGET),mt7629)
|
|
||||||
include mt7629.mk
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(eval $(call BuildImage))
|
|
|
@ -1,48 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# Copyright (C) 2013 OpenWrt.org
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
set -e
|
|
||||||
[ $# -eq 7 ] || {
|
|
||||||
echo "SYNTAX: $0 <file> <preloader image> <u-boot image> <bootfs image> <rootfs image> <bootfs size> <rootfs size>"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
OUTPUT="$1"
|
|
||||||
PRELOADER="$2"
|
|
||||||
UBOOT="$3"
|
|
||||||
BOOTFS="$4"
|
|
||||||
ROOTFS="$5"
|
|
||||||
BOOTFSSIZE="$6"
|
|
||||||
ROOTFSSIZE="$7"
|
|
||||||
|
|
||||||
head=4
|
|
||||||
sect=63
|
|
||||||
|
|
||||||
set `ptgen -o $OUTPUT -h $head -s $sect -l 1024 -t c -p ${BOOTFSSIZE}M -t 83 -p ${ROOTFSSIZE}M -a 0`
|
|
||||||
|
|
||||||
BOOT_OFFSET="$(($1 / 512))"
|
|
||||||
BOOT_SIZE="$(($2 / 512))"
|
|
||||||
ROOTFS_OFFSET="$(($3 / 512))"
|
|
||||||
ROOTFS_SIZE="$(($4 / 512))"
|
|
||||||
|
|
||||||
PRELOADER_OFFSET=2 # 2KB
|
|
||||||
UBOOT_OFFSET=320 # 320KB
|
|
||||||
|
|
||||||
SDMMC_BOOT="SDMMC_BOOT\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00"
|
|
||||||
BRLYT="\
|
|
||||||
BRLYT\x00\x00\x00\x01\x00\x00\x00\x00\x08\x00\x00\
|
|
||||||
\x00\x08\x00\x00\x42\x42\x42\x42\x08\x00\x01\x00\x00\x08\x00\x00\
|
|
||||||
\x00\x08\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
|
|
||||||
|
|
||||||
echo -en "${SDMMC_BOOT}" | dd bs=1 of="${OUTPUT}" seek=0 conv=notrunc
|
|
||||||
echo -en "${BRLYT}" | dd bs=1 of="${OUTPUT}" seek=512 conv=notrunc
|
|
||||||
|
|
||||||
dd bs=1024 if="${PRELOADER}" of="${OUTPUT}" seek="${PRELOADER_OFFSET}" conv=notrunc
|
|
||||||
dd bs=1024 if="${UBOOT}" of="${OUTPUT}" seek="${UBOOT_OFFSET}" conv=notrunc
|
|
||||||
dd bs=512 if="${BOOTFS}" of="${OUTPUT}" seek="${BOOT_OFFSET}" conv=notrunc
|
|
||||||
dd bs=512 if="${ROOTFS}" of="${OUTPUT}" seek="${ROOTFS_OFFSET}" conv=notrunc
|
|
|
@ -1,21 +0,0 @@
|
||||||
define Device/unielec_u7623-02-emmc-512m
|
|
||||||
DEVICE_VENDOR := UniElec
|
|
||||||
DEVICE_MODEL := U7623-02
|
|
||||||
DEVICE_VARIANT := eMMC/512MB RAM
|
|
||||||
DEVICE_DTS := mt7623a-unielec-u7623-02-emmc-512m
|
|
||||||
DEVICE_PACKAGES := mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc
|
|
||||||
IMAGES := sysupgrade-emmc.bin.gz
|
|
||||||
IMAGE/sysupgrade-emmc.bin.gz := sysupgrade-emmc | gzip | append-metadata
|
|
||||||
endef
|
|
||||||
TARGET_DEVICES += unielec_u7623-02-emmc-512m
|
|
||||||
|
|
||||||
define Device/bpi_bananapi-r2
|
|
||||||
DEVICE_VENDOR := Bpi
|
|
||||||
DEVICE_MODEL := Banana Pi R2
|
|
||||||
DEVICE_DTS := mt7623n-bananapi-bpi-r2
|
|
||||||
DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb3 \
|
|
||||||
kmod-ata-core kmod-ata-ahci-mtk \
|
|
||||||
mt7623n-preloader
|
|
||||||
SUPPORTED_DEVICES := bananapi,bpi-r2
|
|
||||||
endef
|
|
||||||
TARGET_DEVICES += bpi_bananapi-r2
|
|
Loading…
Add table
Add a link
Reference in a new issue