mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
Revert "Merge pull request #7 from Ysurac/develop"
This reverts commita3d8be9afc
, reversing changes made toe119041403
.
This commit is contained in:
parent
942ef23b0a
commit
afbca218bd
33 changed files with 1767 additions and 2217 deletions
41
build.sh
41
build.sh
|
@ -22,6 +22,7 @@ _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}
|
||||||
|
@ -31,14 +32,11 @@ 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 tag --sort=committerdate | tail -1)}
|
OMR_RELEASE=${OMR_RELEASE:-$(git describe --tags `git rev-list --tags --max-count=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
|
||||||
|
@ -58,10 +56,6 @@ 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
|
||||||
|
@ -70,9 +64,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 "da986035973a8c803e6f193ae502ff65e6d551c3"
|
_get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "635f111148c3f7ccb0ecc92863a3b1a142f6ebeb"
|
||||||
_get_repo feeds/packages https://github.com/openwrt/packages "91bf524845d4733c77c11f359b1c915e788ece14"
|
_get_repo feeds/packages https://github.com/openwrt/packages "c7dca50f110d5458ceff21a2274eddae2aae119b"
|
||||||
_get_repo feeds/luci https://github.com/openwrt/luci "b2fa7903ebfdbe9f485a94710b77320fe7897dba"
|
_get_repo feeds/luci https://github.com/openwrt/luci "558525783cf33a986efa33d23f5283b33a6c936e"
|
||||||
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"
|
||||||
|
@ -88,11 +82,6 @@ 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
|
||||||
|
@ -121,10 +110,6 @@ 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
|
||||||
|
@ -157,6 +142,7 @@ 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
|
||||||
|
@ -165,6 +151,7 @@ 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
|
||||||
|
@ -178,10 +165,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"
|
||||||
|
@ -283,7 +270,10 @@ if [ "$OMR_KERNEL" = "5.4" ]; then
|
||||||
echo "Done"
|
echo "Done"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#rm -rf feeds/packages/libs/libwebp
|
# Remove patch that can make BPI-R2 slow
|
||||||
|
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
|
||||||
|
@ -305,12 +295,7 @@ 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 is not set
|
CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_DECIMALS=y
|
||||||
# CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU is not set
|
CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_CPU=y
|
||||||
# CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS is not set
|
CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_SMP_PROCESS=y
|
||||||
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,8 +218,7 @@ 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_Hans=y
|
CONFIG_LUCI_LANG_zh-cn=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
|
||||||
|
@ -229,17 +228,10 @@ 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=y
|
# CONFIG_TARGET_ROOTFS_SQUASHFS is not set
|
||||||
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
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
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
|
|
58
root/package/boot/uboot-mediatek/Makefile
Normal file
58
root/package/boot/uboot-mediatek/Makefile
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
#
|
||||||
|
# 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))
|
|
@ -0,0 +1,64 @@
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,219 @@
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
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
|
||||||
|
|
91
root/package/boot/uboot-mediatek/uEnv-default.txt
Normal file
91
root/package/boot/uboot-mediatek/uEnv-default.txt
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
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;
|
49
root/package/boot/uboot-mtk-bpi-r2/Makefile
Normal file
49
root/package/boot/uboot-mtk-bpi-r2/Makefile
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#
|
||||||
|
# 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))
|
|
@ -0,0 +1,56 @@
|
||||||
|
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--)
|
|
@ -0,0 +1,38 @@
|
||||||
|
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) {}
|
||||||
|
|
||||||
|
/*
|
||||||
|
************************************************************************
|
|
@ -0,0 +1,14 @@
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
--- 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.
|
|
@ -0,0 +1,287 @@
|
||||||
|
--- /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
|
|
@ -0,0 +1,287 @@
|
||||||
|
--- /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
|
Binary file not shown.
65
root/package/kernel/mt7623-preloader/Makefile
Normal file
65
root/package/kernel/mt7623-preloader/Makefile
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#
|
||||||
|
# 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,36 +12,3 @@
|
||||||
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 ||
|
|
||||||
|
|
|
@ -1,173 +0,0 @@
|
||||||
#!/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
|
|
|
@ -1,242 +0,0 @@
|
||||||
#!/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
|
|
|
@ -1,123 +0,0 @@
|
||||||
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
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
// 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;
|
|
|
@ -1,12 +0,0 @@
|
||||||
// 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";
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,322 +0,0 @@
|
||||||
// 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";
|
|
||||||
};
|
|
|
@ -1,734 +0,0 @@
|
||||||
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))
|
|
|
@ -1,65 +0,0 @@
|
||||||
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 \
|
|
4
root/target/linux/mediatek/image/Config.in
Normal file
4
root/target/linux/mediatek/image/Config.in
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
config MEDIATEK_SD_BOOT_PARTSIZE
|
||||||
|
int "Boot (SD Card) filesystem partition size (in MB)"
|
||||||
|
depends on TARGET_mediatek
|
||||||
|
default 128
|
90
root/target/linux/mediatek/image/Makefile
Normal file
90
root/target/linux/mediatek/image/Makefile
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
#
|
||||||
|
# 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))
|
48
root/target/linux/mediatek/image/gen_mt7623_sdcard_img.sh
Executable file
48
root/target/linux/mediatek/image/gen_mt7623_sdcard_img.sh
Executable file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/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
|
21
root/target/linux/mediatek/image/mt7623.mk
Normal file
21
root/target/linux/mediatek/image/mt7623.mk
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
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