From 71b87065ca9db734e90865cf0308e999a39abfea Mon Sep 17 00:00:00 2001 From: "175338101@qq.com" <175338101@qq.com> Date: Tue, 2 Nov 2021 14:46:29 +0800 Subject: [PATCH] fix --- .gitignore | 32 +- build.sh | 7 +- config | 45 +- config-4018 | 12 - config-cm520-79f | 16 - config-espressobin1 | 12 - config-nanopi_neo | 71 -- contributors/welterrocks.md | 9 + .../base-files/files/bin/config_generate | 182 +-- root/package/base-files/files/etc/banner | 43 +- .../files/etc/board.d/99-default_network | 16 + root/package/base-files/files/etc/shadow | 5 - root/package/firmware/ipq-wifi/Makefile | 26 +- .../ipq-wifi/board-p2w_r619ac.qca4019 | Bin 24308 -> 24300 bytes .../ipq-wifi/board-pangu_l1000.qca4019 | Bin 631600 -> 0 bytes .../services/dnsmasq/files/dnsmasq.init | 1134 +++++++++++++++++ root/package/utils/wmt/Makefile | 51 + root/package/utils/wmt/files/wmt.defaults | 11 + root/package/utils/wmt/files/wmt.init | 119 ++ root/target/linux/bcm27xx/bcm2708/config-4.14 | 431 +++++++ root/target/linux/bcm27xx/bcm2709/config-4.14 | 472 +++++++ root/target/linux/bcm27xx/bcm2709/config-4.19 | 568 +++++++++ .../config-5.4 => bcm2710/config-4.14} | 303 +++-- root/target/linux/bcm27xx/bcm2710/config-4.19 | 545 ++++++++ root/target/linux/bcm27xx/bcm2711/config-4.19 | 667 ++++++++++ root/target/linux/generic/config-5.14 | 2 +- .../ipq40xx/base-files/etc/board.d/01_leds | 96 -- .../ipq40xx/base-files/etc/board.d/02_network | 42 +- .../base-files/etc/board.d/03_gpio_switches | 24 - .../etc/hotplug.d/firmware/11-ath10k-caldata | 89 +- .../base-files/etc/init.d/set-irq-affinity | 22 - .../ipq40xx/base-files/lib/upgrade/linksys.sh | 122 -- .../base-files/lib/upgrade/openmesh.sh | 106 -- .../base-files/lib/upgrade/platform.sh | 23 +- .../arch/arm/boot/dts/qcom-ipq4019-l1000.dts | 409 ------ .../arm/boot/dts/qcom-ipq4019-r619ac-128m.dts | 18 + .../arch/arm/boot/dts/qcom-ipq4019-r619ac.dts | 12 + ...jalapeno.dtsi => qcom-ipq4019-r619ac.dtsi} | 292 +++-- .../arch/arm/boot/dts/qcom-ipq4019-z4019.dts | 393 ------ .../ipq40xx/image/{generic.mk => Makefile} | 211 +-- .../901-arm-boot-add-dts-files.patch | 16 +- .../999-ipq40xx-unlock-cpu-frequency.patch | 53 - 42 files changed, 4556 insertions(+), 2151 deletions(-) delete mode 100755 config-4018 delete mode 100755 config-cm520-79f delete mode 100755 config-espressobin1 delete mode 100755 config-nanopi_neo create mode 100644 contributors/welterrocks.md create mode 100644 root/package/base-files/files/etc/board.d/99-default_network delete mode 100755 root/package/base-files/files/etc/shadow delete mode 100755 root/package/firmware/ipq-wifi/board-pangu_l1000.qca4019 create mode 100644 root/package/network/services/dnsmasq/files/dnsmasq.init create mode 100644 root/package/utils/wmt/Makefile create mode 100644 root/package/utils/wmt/files/wmt.defaults create mode 100644 root/package/utils/wmt/files/wmt.init create mode 100644 root/target/linux/bcm27xx/bcm2708/config-4.14 create mode 100644 root/target/linux/bcm27xx/bcm2709/config-4.14 create mode 100644 root/target/linux/bcm27xx/bcm2709/config-4.19 rename root/target/linux/bcm27xx/{bcm2711/config-5.4 => bcm2710/config-4.14} (61%) create mode 100644 root/target/linux/bcm27xx/bcm2710/config-4.19 create mode 100644 root/target/linux/bcm27xx/bcm2711/config-4.19 delete mode 100644 root/target/linux/ipq40xx/base-files/etc/board.d/01_leds delete mode 100755 root/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches delete mode 100755 root/target/linux/ipq40xx/base-files/etc/init.d/set-irq-affinity delete mode 100755 root/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh delete mode 100755 root/target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh delete mode 100755 root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-l1000.dts create mode 100644 root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac-128m.dts create mode 100644 root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts rename root/target/linux/ipq40xx/files/arch/arm/boot/dts/{qcom-ipq4018-jalapeno.dtsi => qcom-ipq4019-r619ac.dtsi} (54%) delete mode 100644 root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-z4019.dts rename root/target/linux/ipq40xx/image/{generic.mk => Makefile} (82%) delete mode 100644 root/target/linux/ipq40xx/patches-5.4/999-ipq40xx-unlock-cpu-frequency.patch diff --git a/.gitignore b/.gitignore index 2d93d211..4bd7ccf9 100755 --- a/.gitignore +++ b/.gitignore @@ -1,29 +1,3 @@ -*.o -.DS_Store -.*.swp -/env -/dl -/.config -/.config.old -/bin -/build_dir -/staging_dir -/tmp -/logs -/feeds -/feeds.conf -/files -/overlay -/package/feeds -/package/openwrt-packages -key-build* -*.orig -*.rej -*~ -.#* -*# -.emacs.desktop* -TAGS*~ -git-src -.git-credentials -/*.log +sdk +source +feeds diff --git a/build.sh b/build.sh index dc542c2c..50834967 100755 --- a/build.sh +++ b/build.sh @@ -44,7 +44,7 @@ SHORTCUT_FE=${SHORTCUT_FE:-no} OMR_RELEASE=${OMR_RELEASE:-$(git describe --tags `git rev-list --tags --max-count=1` | tail -1 | cut -d '-' -f1)} OMR_REPO=${OMR_REPO:-http://$OMR_HOST:$OMR_PORT/release/$OMR_RELEASE/$OMR_TARGET} -OMR_FEED_URL="${OMR_FEED_URL:-https://github.com/suyuan168/openmptcprouter-feeds}" +OMR_FEED_URL="${OMR_FEED_URL:-https://github.com/ysurac/openmptcprouter-feeds}" OMR_FEED_SRC="${OMR_FEED_SRC:-develop}" CUSTOM_FEED_URL="${CUSTOM_FEED_URL}" @@ -92,7 +92,7 @@ fi if [ "$OMR_OPENWRT" = "default" ]; then if [ "$OMR_KERNEL" = "5.4" ]; then # Use OpenWrt 21.02 for 5.4 kernel - _get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "f441be3921c769b732f0148f005d4f1bbace0508" + _get_repo "$OMR_TARGET/source" https://github.com/openwrt/openwrt "f441be3921c769b732f0148f005d4f1bbace0508" _get_repo feeds/packages https://github.com/openwrt/packages "3aa30ceee4fcf7b131bdc0f98658391069573e12" _get_repo feeds/luci https://github.com/openwrt/luci "f28aaa35cd5c0cbbe59d8cc6a67de88ceeac382e" else @@ -591,7 +591,6 @@ echo "Update feeds index" cp .config .config.keep scripts/feeds clean scripts/feeds update -a -scripts/feeds install -a #cd - #echo "Checking if fullconenat-luci patch is set or not" @@ -624,4 +623,4 @@ fi echo "Building $OMR_DIST for the target $OMR_TARGET with kernel $OMR_KERNEL" make defconfig make IGNORE_ERRORS=m "$@" -echo "Done" \ No newline at end of file +echo "Done" diff --git a/config b/config index e2079a25..dec46f23 100755 --- a/config +++ b/config @@ -213,9 +213,40 @@ CONFIG_KERNEL_DEFAULT_SCHEDULER=y CONFIG_KERNEL_MPTCP=y CONFIG_KERNEL_MPTCP_IPV6=y CONFIG_KERNEL_CRYPTO_SHA256=y +CONFIG_LUCI_LANG_hu=y +CONFIG_LUCI_LANG_pt=y +CONFIG_LUCI_LANG_sk=y +CONFIG_LUCI_LANG_ro=y CONFIG_LUCI_LANG_en=y +CONFIG_LUCI_LANG_pl=y +CONFIG_LUCI_LANG_uk=y +CONFIG_LUCI_LANG_ja=y +CONFIG_LUCI_LANG_vi=y +CONFIG_LUCI_LANG_de=y +CONFIG_LUCI_LANG_no=y +CONFIG_LUCI_LANG_ms=y CONFIG_LUCI_LANG_zh_Hans=y +CONFIG_LUCI_LANG_zh_Hant=y +CONFIG_LUCI_LANG_ko=y +CONFIG_LUCI_LANG_he=y CONFIG_LUCI_LANG_zh-tw=y +CONFIG_LUCI_LANG_tr=y +CONFIG_LUCI_LANG_sv=y +CONFIG_LUCI_LANG_ru=y +CONFIG_LUCI_LANG_el=y +CONFIG_LUCI_LANG_ca=y +CONFIG_LUCI_LANG_es=y +CONFIG_LUCI_LANG_pt_BR=y +CONFIG_LUCI_LANG_cs=y +CONFIG_LUCI_LANG_fr=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_KERNEL_PARTSIZE=64 CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y @@ -225,17 +256,3 @@ CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y CONFIG_KERNEL_DEVMEM=y CONFIG_KERNEL_DEVKMEM=y CONFIG_AUTOREMOVE=y -CONFIG_AUTOREMOVE=y -CONFIG_PACKAGE_luci-theme-argon=y -CONFIG_PACKAGE_luci-theme-bootstrap=y -CONFIG_PACKAGE_luci-theme-openwrt-2020=y -# CONFIG_PACKAGE_luci-theme-argon is not set -CONFIG_PACKAGE_luci-app-status=m -CONFIG_PACKAGE_luci-mod-status=y -CONFIG_PACKAGE_frpc=y -CONFIG_PACKAGE_rtty-nossl=y -CONFIG_PACKAGE_minicom=y -CONFIG_PACKAGE_irqbalance=y -CONFIG_PACKAGE_mtr=y -CONFIG_PACKAGE_sysstat=y -CONFIG_PACKAGE_coreutils-stty=y diff --git a/config-4018 b/config-4018 deleted file mode 100755 index 7e998f3a..00000000 --- a/config-4018 +++ /dev/null @@ -1,12 +0,0 @@ -CONFIG_TARGET_ipq40xx=y -CONFIG_TARGET_ipq40xx_generic=y -CONFIG_TARGET_ipq40xx_generic_DEVICE_8dev_jalapeno=y -CONFIG_TARGET_BOARD="ipq40xx" -CONFIG_TARGET_SUBTARGET="generic" -CONFIG_TARGET_PROFILE="DEVICE_8dev_jalapeno" -CONFIG_TARGET_ARCH_PACKAGES="arm_cortex-a7_neon-vfpv4" -CONFIG_PACKAGE_ath10k-board-qca4019=y -CONFIG_PACKAGE_ath10k-firmware-qca4019-ct-htt=y -CONFIG_PACKAGE_kmod-ath10k-ct-smallbuffers=y -CONFIG_KERNEL_ARM_MODULE_PLTS=y -CONFIG_KERNEL_TCP_CONG_BBR2=y diff --git a/config-cm520-79f b/config-cm520-79f deleted file mode 100755 index ed4e2d0b..00000000 --- a/config-cm520-79f +++ /dev/null @@ -1,16 +0,0 @@ -CONFIG_TARGET_ipq40xx=y -CONFIG_TARGET_ipq40xx_generic=y -CONFIG_TARGET_ipq40xx_generic_DEVICE_mobipromo_cm520-79f=y -CONFIG_TARGET_BOARD="ipq40xx" -CONFIG_TARGET_SUBTARGET="generic" -CONFIG_TARGET_PROFILE="DEVICE_mobipromo_cm520-79f" -CONFIG_CPU_TYPE="cortex-a7+neon-vfpv4" -CONFIG_DEFAULT_ath10k-firmware-qca4019-ct=y -CONFIG_DEFAULT_ipq-wifi-mobipromo_cm520-79f=y -CONFIG_DEFAULT_kmod-ath10k-ct=y -CONFIG_PACKAGE_ath10k-board-qca4019=y -CONFIG_PACKAGE_ath10k-firmware-qca4019-ct=y -CONFIG_PACKAGE_kmod-ath10k-ct=y -CONFIG_ATH10K-CT_LEDS=y -CONFIG_KERNEL_ARM_MODULE_PLTS=y -CONFIG_KERNEL_TCP_CONG_BBR2=y \ No newline at end of file diff --git a/config-espressobin1 b/config-espressobin1 deleted file mode 100755 index 9c715409..00000000 --- a/config-espressobin1 +++ /dev/null @@ -1,12 +0,0 @@ -CONFIG_TARGET_ipq40xx=y -CONFIG_TARGET_ipq40xx_generic=y -CONFIG_TARGET_ipq40xx_generic_DEVICE_8dev_jalapeno=y -CONFIG_TARGET_BOARD="ipq40xx" -CONFIG_TARGET_SUBTARGET="generic" -CONFIG_TARGET_PROFILE="DEVICE_8dev_jalapeno" -CONFIG_TARGET_ARCH_PACKAGES="arm_cortex-a7_neon-vfpv4" -CONFIG_PACKAGE_ath10k-board-qca4019=y -CONFIG_PACKAGE_ath10k-firmware-qca4019-ct-htt=y -CONFIG_PACKAGE_kmod-ath10k-ct-smallbuffers=y -CONFIG_KERNEL_ARM_MODULE_PLTS=y -CONFIG_KERNEL_TCP_CONG_BBR2=y \ No newline at end of file diff --git a/config-nanopi_neo b/config-nanopi_neo deleted file mode 100755 index 109c6682..00000000 --- a/config-nanopi_neo +++ /dev/null @@ -1,71 +0,0 @@ -CONFIG_MODULES=y -CONFIG_HAVE_DOT_CONFIG=y -CONFIG_TARGET_sunxi=y -CONFIG_TARGET_sunxi_cortexa7=y -CONFIG_TARGET_sunxi_cortexa7_DEVICE_friendlyarm_nanopi-neo=y -CONFIG_PACKAGE_kmod-6lowpan=y -CONFIG_HAS_SUBTARGETS=y -CONFIG_HAS_DEVICES=y -CONFIG_TARGET_BOARD="sunxi" -CONFIG_TARGET_SUBTARGET="cortexa7" -CONFIG_TARGET_PROFILE="DEVICE_friendlyarm_nanopi-neo" -CONFIG_TARGET_ARCH_PACKAGES="arm_cortex-a7_neon-vfpv4" -CONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe" -CONFIG_CPU_TYPE="cortex-a7+neon-vfpv4" -CONFIG_LINUX_5_4=y -CONFIG_DEFAULT_base-files=y -CONFIG_DEFAULT_busybox=y -CONFIG_DEFAULT_ca-bundle=y -CONFIG_DEFAULT_dnsmasq=y -CONFIG_DEFAULT_dropbear=y -CONFIG_DEFAULT_e2fsprogs=y -CONFIG_DEFAULT_firewall=y -CONFIG_DEFAULT_fstools=y -CONFIG_DEFAULT_ip6tables=y -CONFIG_DEFAULT_iptables=y -CONFIG_DEFAULT_kmod-ipt-offload=y -CONFIG_DEFAULT_libc=y -CONFIG_DEFAULT_libgcc=y -CONFIG_DEFAULT_libustream-wolfssl=y -CONFIG_DEFAULT_logd=y -CONFIG_DEFAULT_mkf2fs=y -CONFIG_DEFAULT_mtd=y -CONFIG_DEFAULT_netifd=y -CONFIG_DEFAULT_odhcp6c=y -CONFIG_DEFAULT_odhcpd-ipv6only=y -CONFIG_DEFAULT_opkg=y -CONFIG_DEFAULT_partx-utils=y -CONFIG_DEFAULT_ppp=y -CONFIG_DEFAULT_ppp-mod-pppoe=y -CONFIG_DEFAULT_uboot-envtools=y -CONFIG_DEFAULT_uci=y -CONFIG_DEFAULT_uclient-fetch=y -CONFIG_DEFAULT_urandom-seed=y -CONFIG_DEFAULT_urngd=y -CONFIG_HAS_FPU=y -CONFIG_AUDIO_SUPPORT=y -CONFIG_GPIO_SUPPORT=y -CONFIG_USB_SUPPORT=y -CONFIG_RTC_SUPPORT=y -CONFIG_USES_DEVICETREE=y -CONFIG_USES_SQUASHFS=y -CONFIG_USES_EXT4=y -CONFIG_arm=y -CONFIG_arm_v7=y -CONFIG_ARCH="arm" -CONFIG_KERNEL_ARM_MODULE_PLTS=y -# CONFIG_PACKAGE_libustream-wolfssl is not set -CONFIG_KERNEL_DEVMEM=y -CONFIG_KERNEL_DEVKMEM=y -# CONFIG_PACKAGE_luci-theme-argon=y -CONFIG_PACKAGE_luci-theme-bootstrap=y -CONFIG_PACKAGE_luci-theme-openwrt-2020=y -# CONFIG_PACKAGE_luci-theme-argon is not set -CONFIG_PACKAGE_luci-app-status=m -CONFIG_PACKAGE_luci-mod-status=y -CONFIG_PACKAGE_frpc=y -CONFIG_PACKAGE_rtty-nossl=y -CONFIG_PACKAGE_minicom=y -CONFIG_PACKAGE_irqbalance=y -CONFIG_PACKAGE_mtr=y -CONFIG_KERNEL_ARM_MODULE_PLTS=y \ No newline at end of file diff --git a/contributors/welterrocks.md b/contributors/welterrocks.md new file mode 100644 index 00000000..43b2f0a0 --- /dev/null +++ b/contributors/welterrocks.md @@ -0,0 +1,9 @@ +2021-03-05 + +I hereby agree to the terms of the "OpenMPTCProuter Individual Contributor License Agreement", with MD5 checksum bc827a07eb93611d793ddb7c75083c00. + +I furthermore declare that I am authorized and able to make this agreement and sign this declaration. + +Signed, + +Oliver Welter https://github.com/welterrocks diff --git a/root/package/base-files/files/bin/config_generate b/root/package/base-files/files/bin/config_generate index ae7f2de7..1deda8e2 100755 --- a/root/package/base-files/files/bin/config_generate +++ b/root/package/base-files/files/bin/config_generate @@ -7,58 +7,25 @@ CFG=/etc/board.json [ -s $CFG ] || /bin/board_detect || exit 1 [ -s /etc/config/network -a -s /etc/config/system ] && exit 0 -generate_bridge() { - local name=$1 - local macaddr=$2 - uci -q batch <<-EOF - set network.$name=device - set network.$name.name=$name - set network.$name.type=bridge - EOF - if [ -n "$macaddr" ]; then - uci -q batch <<-EOF - set network.$name.macaddr=$macaddr - EOF - fi -} - -bridge_vlan_id=0 -generate_bridge_vlan() { - local name=$1_vlan - local device=$2 - local ports="$3" - local vlan="$4" - uci -q batch <<-EOF - set network.$name=bridge-vlan - set network.$name.device='$device' - set network.$name.vlan='$vlan' - set network.$name.ports='$ports' - EOF -} - generate_static_network() { uci -q batch <<-EOF delete network.loopback set network.loopback='interface' - set network.loopback.device='lo' + set network.loopback.ifname='lo' set network.loopback.proto='static' set network.loopback.ipaddr='127.0.0.1' set network.loopback.netmask='255.0.0.0' + delete network.globals + set network.globals='globals' + set network.globals.ula_prefix='auto' EOF - [ -e /proc/sys/net/ipv6 ] && { - uci -q batch <<-EOF - delete network.globals - set network.globals='globals' - set network.globals.ula_prefix='auto' - EOF - } if json_is_a dsl object; then json_select dsl if json_is_a atmbridge object; then json_select atmbridge - local vpi vci encaps payload nameprefix - json_get_vars vpi vci encaps payload nameprefix + local vpi vci encaps payload + json_get_vars vpi vci encaps payload uci -q batch <<-EOF delete network.atm set network.atm='atm-bridge' @@ -66,7 +33,6 @@ generate_static_network() { set network.atm.vci='$vci' set network.atm.encaps='$encaps' set network.atm.payload='$payload' - set network.atm.nameprefix='$nameprefix' EOF json_select .. fi @@ -91,69 +57,41 @@ generate_static_network() { addr_offset=2 generate_network() { - local ports device macaddr protocol type ipaddr netmask vlan - local bridge=$2 + local ifname macaddr protocol type ipaddr netmask json_select network json_select "$1" - json_get_vars device macaddr protocol ipaddr netmask vlan - json_get_values ports ports + json_get_vars ifname macaddr protocol ipaddr netmask json_select .. json_select .. - [ -n "$device" -o -n "$ports" ] || return + [ -n "$ifname" ] || return - # Force bridge for "lan" as it may have other devices (e.g. wireless) - # bridged - [ "$1" = "lan" -a -z "$ports" ] && { - ports="$device" - } - - [ -n "$ports" -a -z "$bridge" ] && { - uci -q batch <<-EOF - add network device - set network.@device[-1].name='br-$1' - set network.@device[-1].type='bridge' - EOF - for port in $ports; do uci add_list network.@device[-1].ports="$port"; done - [ -n "$macaddr" ] && { - for port in $ports; do - uci -q batch <<-EOF - add network device - set network.@device[-1].name='$port' - set network.@device[-1].macaddr='$macaddr' - EOF - done - } - device=br-$1 - type= - macaddr="" - } - - [ -n "$bridge" ] && { - [ -z "$ports" ] && ports="$device" - if [ -z "$vlan" ]; then - bridge_vlan_id=$((bridge_vlan_id + 1)) - vlan=$bridge_vlan_id - fi - generate_bridge_vlan $1 $bridge "$ports" $vlan - device=$bridge.$vlan - type="" - } + case "$1" in + # hack (see /etc/board.d/02_network) + none) return ;; + lan*) proto=${proto:-static} ;; + wan*) proto=${proto:-dhcp} ;; + esac if [ -n "$macaddr" ]; then + type=macvlan # useless, only for legacy uci -q batch <<-EOF - add network device - set network.@device[-1].name='$device' - set network.@device[-1].macaddr='$macaddr' + delete network.${1}_dev + set network.${1}_dev='device' + set network.${1}_dev.name='$1' + set network.${1}_dev.type='$type' + set network.${1}_dev.ifname='$ifname' + set network.${1}_dev.macaddr='$macaddr' EOF + ifname=$1 fi uci -q batch <<-EOF delete network.$1 set network.$1='interface' set network.$1.type='$type' - set network.$1.device='$device' + set network.$1.ifname='$ifname' set network.$1.proto='none' EOF @@ -171,23 +109,17 @@ generate_network() { set network.$1.proto='static' set network.$1.ipaddr='$ipad' set network.$1.netmask='$netm' + set network.$1.ip6assign='60' EOF - [ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60' ;; dhcp) # fixup IPv6 slave interface if parent is a bridge - [ "$type" = "bridge" ] && device="br-$1" + [ "$type" = "bridge" ] && ifname="br-$1" - uci set network.$1.proto='dhcp' - [ -e /proc/sys/net/ipv6 ] && { - uci -q batch <<-EOF - delete network.${1}6 - set network.${1}6='interface' - set network.${1}6.device='$device' - set network.${1}6.proto='dhcpv6' - EOF - } + uci -q batch <<-EOF + set network.$1.proto='dhcp' + EOF ;; pppoe) @@ -195,16 +127,12 @@ generate_network() { set network.$1.proto='pppoe' set network.$1.username='username' set network.$1.password='password' + set network.$1.ipv6='1' + delete network.${1}6 + set network.${1}6='interface' + set network.${1}6.ifname='@${1}' + set network.${1}6.proto='dhcpv6' EOF - [ -e /proc/sys/net/ipv6 ] && { - uci -q batch <<-EOF - set network.$1.ipv6='1' - delete network.${1}6 - set network.${1}6='interface' - set network.${1}6.device='@${1}' - set network.${1}6.proto='dhcpv6' - EOF - } ;; esac } @@ -278,8 +206,7 @@ generate_switch() { json_select switch json_select "$key" - json_get_vars enable reset blinkrate cpu_port \ - ar8xxx_mib_type ar8xxx_mib_poll_interval + json_get_vars enable reset blinkrate cpu_port uci -q batch <<-EOF add network switch @@ -287,8 +214,6 @@ generate_switch() { set network.@switch[-1].reset='$reset' set network.@switch[-1].enable_vlan='$enable' set network.@switch[-1].blinkrate='$blinkrate' - set network.@switch[-1].ar8xxx_mib_type='$ar8xxx_mib_type' - set network.@switch[-1].ar8xxx_mib_poll_interval='$ar8xxx_mib_poll_interval' EOF generate_switch_vlans_ports "$1" @@ -297,11 +222,12 @@ generate_switch() { json_select .. } + generate_static_system() { uci -q batch <<-EOF delete system.@system[0] add system system - set system.@system[-1].hostname='antrouter' + set system.@system[-1].hostname='OpenMPTCProuter' set system.@system[-1].timezone='UTC' set system.@system[-1].ttylogin='0' set system.@system[-1].log_size='64' @@ -311,10 +237,10 @@ generate_static_system() { set system.ntp='timeserver' set system.ntp.enabled='1' set system.ntp.enable_server='0' - add_list system.ntp.server='ntp.aliyun.com' - add_list system.ntp.server='time1.cloud.tencent.com' - add_list system.ntp.server='time.ustc.edu.cn' - add_list system.ntp.server='cn.pool.ntp.org' + add_list system.ntp.server='0.openwrt.pool.ntp.org' + add_list system.ntp.server='1.openwrt.pool.ntp.org' + add_list system.ntp.server='2.openwrt.pool.ntp.org' + add_list system.ntp.server='3.openwrt.pool.ntp.org' EOF if json_is_a system object; then @@ -324,13 +250,6 @@ generate_static_system() { uci -q set "system.@system[-1].hostname=$hostname" fi - local compat_version - if json_get_var compat_version compat_version; then - uci -q set "system.@system[-1].compat_version=$compat_version" - else - uci -q set "system.@system[-1].compat_version=1.0" - fi - if json_is_a ntpserver array; then local keys key json_get_keys keys ntpserver @@ -440,12 +359,11 @@ generate_led() { ;; switch) - local port_mask speed_mask mode - json_get_vars port_mask speed_mask mode + local port_mask speed_mask + json_get_vars port_mask speed_mask uci -q batch <<-EOF set system.$cfg.port_mask='$port_mask' set system.$cfg.speed_mask='$speed_mask' - set system.$cfg.mode='$mode' EOF ;; @@ -493,24 +411,12 @@ generate_gpioswitch() { json_init json_load "$(cat ${CFG})" -umask 077 - if [ ! -s /etc/config/network ]; then - bridge_name="" touch /etc/config/network generate_static_network - json_get_vars bridge - [ -n "$bridge" ] && { - json_select bridge - json_get_vars name macaddr - generate_bridge "$name" "$macaddr" - json_select .. - bridge_name=$name - } - json_get_keys keys network - for key in $keys; do generate_network $key $bridge_name; done + for key in $keys; do generate_network $key; done json_get_keys keys switch for key in $keys; do generate_switch $key; done diff --git a/root/package/base-files/files/etc/banner b/root/package/base-files/files/etc/banner index 4dd2e767..01a091a6 100755 --- a/root/package/base-files/files/etc/banner +++ b/root/package/base-files/files/etc/banner @@ -1,39 +1,8 @@ - -/*** - * ,s555SB@@& - * :9H####@@@@@Xi - * 1@@@@@@@@@@@@@@8 - * ,8@@@@@@@@@B@@@@@@8 - * :B@@@@X3hi8Bs;B@@@@@Ah, - * ,8i r@@@B: 1S ,M@@@@@@#8; - * 1AB35.i: X@@8 . SGhr ,A@@@@@@@@S - * 1@h31MX8 18Hhh3i .i3r ,A@@@@@@@@@5 - * ;@&i,58r5 rGSS: :B@@@@@@@@@@A - * 1#i . 9i hX. .: .5@@@@@@@@@@@1 - * sG1, ,G53s. 9#Xi;hS5 3B@@@@@@@B1 - * .h8h.,A@@@MXSs, #@H1: 3ssSSX@1 - * s ,@@@@@@@@@@@@Xhi, r#@@X1s9M8 .GA981 - * ,. rS8H#@@@@@@@@@@#HG51;. .h31i;9@r .8@@@@BS;i; - * .19AXXXAB@@@@@@@@@@@@@@#MHXG893hrX#XGGXM@@@@@@@@@@MS - * s@@MM@@@hsX#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&, - * :GB@#3G@@Brs ,1GM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B, - * .hM@@@#@@#MX 51 r;iSGAM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8 - * :3B@@@@@@@@@@@&9@h :Gs .;sSXH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@: - * s&HA#@@@@@@@@@@@@@@M89A;.8S. ,r3@@@@@@@@@@@@@@@@@@@@@@@@@@@r - * ,13B@@@@@@@@@@@@@@@@@@@5 5B3 ;. ;@@@@@@@@@@@@@@@@@@@@@@@@@@@i - * 5#@@#&@@@@@@@@@@@@@@@@@@9 .39: ;@@@@@@@@@@@@@@@@@@@@@@@@@@@; - * 9@@@X:MM@@@@@@@@@@@@@@@#; ;31. H@@@@@@@@@@@@@@@@@@@@@@@@@@: - * SH#@B9.rM@@@@@@@@@@@@@B :. 3@@@@@@@@@@@@@@@@@@@@@@@@@@5 - * ,:. 9@@@@@@@@@@@#HB5 .M@@@@@@@@@@@@@@@@@@@@@@@@@B - * ,ssirhSM@&1;i19911i,. s@@@@@@@@@@@@@@@@@@@@@@@@@@S - * ,,,rHAri1h1rh&@#353Sh: 8@@@@@@@@@@@@@@@@@@@@@@@@@#: - * .A3hH@#5S553&@@#h i:i9S #@@@@@@@@@@@@@@@@@@@@@@@@@A. - * - * - * 又看源码,看你妹妹呀! - */ - + ___ __ __ ___ _____ ___ ___ _ + / _ \ _ __ ___ _ _ | \/ | _ \_ _/ __| _ \_ _ ___ _ _| |_ ___ _ _ + | (_) | '_ \/ -_) ' \| |\/| | _/ | || (__| _/ '_/ _ \ || | _/ -_) '_| + \___/| .__/\___|_||_|_| |_|_| |_| \___|_| |_| \___/\_,_|\__\___|_| + |_| ------------------------------------------------------------------------------ -55860.com QQ 175338181 weixin:xinyangla -(%C) + (%C) ------------------------------------------------------------------------------ diff --git a/root/package/base-files/files/etc/board.d/99-default_network b/root/package/base-files/files/etc/board.d/99-default_network new file mode 100644 index 00000000..55d5d79a --- /dev/null +++ b/root/package/base-files/files/etc/board.d/99-default_network @@ -0,0 +1,16 @@ +#!/bin/sh +# +# Copyright (C) 2013-2015 OpenWrt.org +# + +. /lib/functions/uci-defaults.sh + +board_config_update + +json_is_a network object && exit 0 + +ucidef_set_interface_lan 'eth0' + +board_config_flush + +exit 0 diff --git a/root/package/base-files/files/etc/shadow b/root/package/base-files/files/etc/shadow deleted file mode 100755 index 40218708..00000000 --- a/root/package/base-files/files/etc/shadow +++ /dev/null @@ -1,5 +0,0 @@ -root:$1$ie.8vTnt$7EzhI1ZYiwp8hSAC4eSId0:18473:0:99999:7::: -daemon:*:0:0:99999:7::: -ftp:*:0:0:99999:7::: -network:*:0:0:99999:7::: -nobody:*:0:0:99999:7::: diff --git a/root/package/firmware/ipq-wifi/Makefile b/root/package/firmware/ipq-wifi/Makefile index b43b5e02..8bf3b414 100755 --- a/root/package/firmware/ipq-wifi/Makefile +++ b/root/package/firmware/ipq-wifi/Makefile @@ -30,25 +30,15 @@ ALLWIFIBOARDS:= \ avm_fritzrepeater-1200 \ buffalo_wtr-m2133hp \ cellc_rtl30vw \ - devolo_magic-2-wifi-next \ dlink_dap2610 \ - edgecore_ecw5410 \ - edgecore_oap100 \ engenius_eap2200 \ engenius_emd1 \ engenius_emr3500 \ ezviz_cs-w3-wd1200g-eup \ - glinet_gl-ap1300 \ glinet_gl-s1300 \ linksys_ea8300 \ - linksys_mr8300-v0 \ - luma_wrtq-329acn \ + p2w_r619ac \ mobipromo_cm520-79f \ - nec_wg2600hp3 \ - plasmacloud_pa1200 \ - plasmacloud_pa2200 \ - pangu_l1000 \ - p2w_r619ac \ qxwlan_e2600ac ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) @@ -57,7 +47,7 @@ define Package/ipq-wifi-default SUBMENU:=ath10k Board-Specific Overrides SECTION:=firmware CATEGORY:=Firmware - DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x) + DEPENDS:=@TARGET_ipq40xx TITLE:=Custom Board endef @@ -115,25 +105,15 @@ $(eval $(call generate-ipq-wifi-package,aruba_ap-303,Aruba AP-303)) $(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200)) $(eval $(call generate-ipq-wifi-package,buffalo_wtr-m2133hp,Buffalo WTR-M2133HP)) $(eval $(call generate-ipq-wifi-package,cellc_rtl30vw, Cell C RTL30VW)) -$(eval $(call generate-ipq-wifi-package,devolo_magic-2-wifi-next,devolo Magic 2 WiFi next)) $(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610)) -$(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410)) -$(eval $(call generate-ipq-wifi-package,edgecore_oap100,Edgecore OAP100)) $(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200)) $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) $(eval $(call generate-ipq-wifi-package,engenius_emr3500,EnGenius EMR3500)) $(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) -$(eval $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300)) $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) -$(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) -$(eval $(call generate-ipq-wifi-package,luma_wrtq-329acn,Luma WRTQ-329ACN)) $(eval $(call generate-ipq-wifi-package,mobipromo_cm520-79f,MobiPromo CM520-79F)) -$(eval $(call generate-ipq-wifi-package,nec_wg2600hp3,NEC Platforms WG2600HP3)) -$(eval $(call generate-ipq-wifi-package,plasmacloud_pa1200,Plasma Cloud PA1200)) -$(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200)) $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC)) -$(eval $(call generate-ipq-wifi-package,pangu_l1000,PANGU L1000)) $(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC)) -$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) \ No newline at end of file +$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) diff --git a/root/package/firmware/ipq-wifi/board-p2w_r619ac.qca4019 b/root/package/firmware/ipq-wifi/board-p2w_r619ac.qca4019 index 0ebe28575f16e782b2a3a30c4da82c3e1485118e..a1b1166f6f9dd713fd5d45bbf50767a03703e902 100644 GIT binary patch delta 44 ocmeyem+{SB#t9OfDf$dxU@}qBaATN}K0;vfM18}}$Mp5|0T);cc>n+a delta 63 zcmaE}m+{M9#t9Of8Tt%hU@=kAkR?DZTw!C7kv_7hI-j{tSz=LUVqS?YNPhD^eLZ~u D3`r1E diff --git a/root/package/firmware/ipq-wifi/board-pangu_l1000.qca4019 b/root/package/firmware/ipq-wifi/board-pangu_l1000.qca4019 deleted file mode 100755 index f61f4f52bbd612e8fe3b2e200cdb4a139d506c01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631600 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�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
  • h@PR5m2 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 diff --git a/root/package/network/services/dnsmasq/files/dnsmasq.init b/root/package/network/services/dnsmasq/files/dnsmasq.init new file mode 100644 index 00000000..ddd19a54 --- /dev/null +++ b/root/package/network/services/dnsmasq/files/dnsmasq.init @@ -0,0 +1,1134 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2007-2012 OpenWrt.org + +START=19 + +USE_PROCD=1 +PROG=/usr/sbin/dnsmasq + +ADD_LOCAL_DOMAIN=1 +ADD_LOCAL_HOSTNAME=1 +ADD_WAN_FQDN=0 +ADD_LOCAL_FQDN="" + +BASECONFIGFILE="/var/etc/dnsmasq.conf" +BASEHOSTFILE="/tmp/hosts/dhcp" +TRUSTANCHORSFILE="/usr/share/dnsmasq/trust-anchors.conf" +TIMEVALIDFILE="/var/state/dnsmasqsec" +BASEDHCPSTAMPFILE="/var/run/dnsmasq" +RFC6761FILE="/usr/share/dnsmasq/rfc6761.conf" +DHCPSCRIPT="/usr/lib/dnsmasq/dhcp-script.sh" + +DNSMASQ_DHCP_VER=4 + +xappend() { + local value="$1" + + echo "${value#--}" >> $CONFIGFILE_TMP +} + +hex_to_hostid() { + local var="$1" + local hex="${2#0x}" # strip optional "0x" prefix + + if [ -n "${hex//[0-9a-fA-F]/}" ]; then + # is invalid hex literal + return 1 + fi + + # convert into host id + export "$var=$( + printf "%0x:%0x" \ + $(((0x$hex >> 16) % 65536)) \ + $(( 0x$hex % 65536)) + )" + + return 0 +} + +dhcp_calc() { + local ip="$1" + local res=0 + + while [ -n "$ip" ]; do + part="${ip%%.*}" + res="$(($res * 256))" + res="$(($res + $part))" + [ "${ip%.*}" != "$ip" ] && ip="${ip#*.}" || ip= + done + echo "$res" +} + +dhcp_check() { + local ifname="$1" + local stamp="${BASEDHCPSTAMPFILE_CFG}.${ifname}.dhcp" + local rv=0 + + [ -s "$stamp" ] && return $(cat "$stamp") + + # If there's no carrier yet, skip this interface. + # The init script will be called again once the link is up + case "$(devstatus "$ifname" | jsonfilter -e @.carrier)" in + false) return 1;; + esac + + udhcpc -n -q -s /bin/true -t 1 -i "$ifname" >&- && rv=1 || rv=0 + + [ $rv -eq 1 ] && \ + logger -t dnsmasq \ + "found already running DHCP-server on interface '$ifname'" \ + "refusing to start, use 'option force 1' to override" + + echo $rv > "$stamp" + return $rv +} + +log_once() { + pidof dnsmasq >/dev/null || \ + logger -t dnsmasq "$@" +} + +has_handler() { + local file + + for file in /etc/hotplug.d/dhcp/* /etc/hotplug.d/tftp/* /etc/hotplug.d/neigh/*; do + [ -f "$file" ] && return 0 + done + + return 1 +} + +append_bool() { + local section="$1" + local option="$2" + local value="$3" + local default="$4" + local _loctmp + [ -z "$default" ] && default="0" + config_get_bool _loctmp "$section" "$option" "$default" + [ $_loctmp -gt 0 ] && xappend "$value" +} + +append_parm() { + local section="$1" + local option="$2" + local switch="$3" + local default="$4" + local _loctmp + config_get _loctmp "$section" "$option" "$default" + [ -z "$_loctmp" ] && return 0 + xappend "$switch=$_loctmp" +} + +append_server() { + xappend "--server=$1" +} + +append_rev_server() { + xappend "--rev-server=$1" +} + +append_address() { + xappend "--address=$1" +} + +append_ipset() { + xappend "--ipset=$1" +} + +append_interface() { + network_get_device ifname "$1" || ifname="$1" + xappend "--interface=$ifname" +} + +append_listenaddress() { + xappend "--listen-address=$1" +} + +append_notinterface() { + network_get_device ifname "$1" || ifname="$1" + xappend "--except-interface=$ifname" +} + +append_addnhosts() { + xappend "--addn-hosts=$1" +} + +append_bogusnxdomain() { + xappend "--bogus-nxdomain=$1" +} + +append_pxe_service() { + xappend "--pxe-service=$1" +} + +append_interface_name() { + xappend "--interface-name=$1,$2" +} + +filter_dnsmasq() { + local cfg="$1" func="$2" match_cfg="$3" found_cfg + + # use entry when no instance entry set, or if it matches + config_get found_cfg "$cfg" "instance" + if [ -z "$found_cfg" -o "$found_cfg" = "$match_cfg" ]; then + $func $cfg + fi +} + +dhcp_subscrid_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get subscriberid "$cfg" subscriberid + [ -n "$subscriberid" ] || return 0 + + xappend "--dhcp-subscrid=$networkid,$subscriberid" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_remoteid_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get remoteid "$cfg" remoteid + [ -n "$remoteid" ] || return 0 + + xappend "--dhcp-remoteid=$networkid,$remoteid" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_circuitid_add() { + # TODO: DHCPV6 does not have circuitid; catch "option6:" + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get circuitid "$cfg" circuitid + [ -n "$circuitid" ] || return 0 + + xappend "--dhcp-circuitid=$networkid,$circuitid" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_userclass_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get userclass "$cfg" userclass + [ -n "$userclass" ] || return 0 + + xappend "--dhcp-userclass=$networkid,$userclass" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_vendorclass_add() { + # TODO: DHCPV6 vendor class has stricter definitions; catch? fixup? + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get vendorclass "$cfg" vendorclass + [ -n "$vendorclass" ] || return 0 + + xappend "--dhcp-vendorclass=$networkid,$vendorclass" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_match_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get match "$cfg" match + [ -n "$match" ] || return 0 + + xappend "--dhcp-match=$networkid,$match" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + +dhcp_host_add() { + local cfg="$1" + local hosttag nametime addrs duids macs tags + + config_get_bool force "$cfg" force 0 + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] && dhcp_option_add "$cfg" "$networkid" "$force" + + config_get_bool enable "$cfg" enable 1 + [ "$enable" = "0" ] && return 0 + + config_get name "$cfg" name + config_get ip "$cfg" ip + config_get hostid "$cfg" hostid + + [ -n "$ip" -o -n "$name" -o -n "$hostid" ] || return 0 + + config_get_bool dns "$cfg" dns 0 + [ "$dns" = "1" -a -n "$ip" -a -n "$name" ] && { + echo "$ip $name${DOMAIN:+.$DOMAIN}" >> $HOSTFILE_TMP + } + + config_get mac "$cfg" mac + config_get duid "$cfg" duid + config_get tag "$cfg" tag + config_get gw "$cfg" gw + + if [ -n "$mac" ]; then + # --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap + # many MAC are possible to track a laptop ON/OFF dock + for m in $mac; do append macs "$m" ","; done + fi + + if [ $DNSMASQ_DHCP_VER -eq 6 -a -n "$duid" ]; then + # --dhcp-host=id:00:03:00:01:12:00:00:01:02:03,[::beef],lap + # one (virtual) machine gets one DUID per RFC3315 + duids="id:${duid// */}" + fi + + if [ -z "$macs" -a -z "$duids" ]; then + # --dhcp-host=lap,192.168.0.199,[::beef] + [ -n "$name" ] || return 0 + macs="$name" + name="" + fi + + if [ -n "$hostid" ]; then + hex_to_hostid hostid "$hostid" + fi + + if [ -n "$tag" ]; then + for t in $tag; do append tags "$t" ",set:"; done + fi + + if [ -n "$gw" ]; then + append tags "$cfg" ",set:" + fi + + config_get_bool broadcast "$cfg" broadcast 0 + config_get leasetime "$cfg" leasetime + + [ "$broadcast" = "0" ] && broadcast= || broadcast=",set:needs-broadcast" + + hosttag="${networkid:+,set:${networkid}}${tags:+,set:${tags}}$broadcast" + nametime="${name:+,$name}${leasetime:+,$leasetime}" + + if [ $DNSMASQ_DHCP_VER -eq 6 ]; then + addrs="${ip:+,$ip}${hostid:+,[::$hostid]}" + xappend "--dhcp-host=$macs${duids:+,$duids}$hosttag$addrs$nametime" + else + xappend "--dhcp-host=$macs$hosttag${ip:+,$ip}$nametime" + fi + if [ -n "$gw" ]; then + xappend "--dhcp-option=tag:$cfg,option:router,$gw" + fi +} + +dhcp_this_host_add() { + local net="$1" + local ifname="$2" + local mode="$3" + local routerstub routername ifdashname + local lanaddr lanaddr6 lanaddrs6 ulaprefix + + if [ "$mode" -gt 0 ] ; then + ifdashname="${ifname//./-}" + routerstub="$( md5sum /etc/os-release )" + routerstub="router-${routerstub// */}" + routername="$( uci_get system @system[0] hostname $routerstub )" + + if [ "$mode" -gt 1 ] ; then + if [ "$mode" -gt 2 ] ; then + if [ "$mode" -gt 3 ] ; then + append_interface_name "$ifdashname.$routername.$DOMAIN" "$ifname" + fi + + append_interface_name "$routername.$DOMAIN" "$ifname" + fi + + # All IP addresses discovered by dnsmasq will be labeled (except fe80::) + append_interface_name "$routername" "$ifname" + + else + # This uses a static host file entry for only limited addresses. + # Use dnsmasq option "--expandhosts" to enable FQDN on host files. + ulaprefix="$(uci_get network @globals[0] ula_prefix)" + network_get_ipaddr lanaddr "$net" + network_get_ipaddrs6 lanaddrs6 "$net" + + if [ -n "$lanaddr" ] ; then + dhcp_domain_add "" "$routername" "$lanaddr" + fi + + if [ -n "$ulaprefix" -a -n "$lanaddrs6" ] ; then + for lanaddr6 in $lanaddrs6 ; do + case "$lanaddr6" in + "${ulaprefix%%:/*}"*) + dhcp_domain_add "" "$routername" "$lanaddr6" + ;; + esac + done + fi + fi + fi +} + +dhcp_tag_add() { + # NOTE: dnsmasq has explicit "option6:" prefix for DHCPv6 so no collisions + local cfg="$1" + + tag="$cfg" + + [ -n "$tag" ] || return 0 + + config_get_bool force "$cfg" force 0 + [ "$force" = "0" ] && force= + + config_get option "$cfg" dhcp_option + for o in $option; do + xappend "--dhcp-option${force:+-force}=tag:$tag,$o" + done +} + +dhcp_mac_add() { + local cfg="$1" + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || return 0 + + config_get mac "$cfg" mac + [ -n "$mac" ] || return 0 + + xappend "--dhcp-mac=$networkid,$mac" + + dhcp_option_add "$cfg" "$networkid" +} + +dhcp_boot_add() { + # TODO: BOOTURL is different between DHCPv4 and DHCPv6 + local cfg="$1" + + config_get networkid "$cfg" networkid + + config_get filename "$cfg" filename + [ -n "$filename" ] || return 0 + + config_get servername "$cfg" servername + config_get serveraddress "$cfg" serveraddress + + [ -n "$serveraddress" -a ! -n "$servername" ] && return 0 + + xappend "--dhcp-boot=${networkid:+net:$networkid,}${filename}${servername:+,$servername}${serveraddress:+,$serveraddress}" + + config_get_bool force "$cfg" force 0 + + dhcp_option_add "$cfg" "$networkid" "$force" +} + + +dhcp_add() { + local cfg="$1" + local dhcp6range="::" + local nettag + local tags + + config_get net "$cfg" interface + [ -n "$net" ] || return 0 + + config_get networkid "$cfg" networkid + [ -n "$networkid" ] || networkid="$net" + + network_get_device ifname "$net" || return 0 + + [ "$cachelocal" = "0" ] && network_get_dnsserver dnsserver "$net" && { + DNS_SERVERS="$DNS_SERVERS $dnsserver" + } + + append_bool "$cfg" ignore "--no-dhcp-interface=$ifname" && { + # Many ISP do not have useful names for DHCP customers (your WAN). + dhcp_this_host_add "$net" "$ifname" "$ADD_WAN_FQDN" + return 0 + } + + network_get_subnet subnet "$net" || return 0 + network_get_protocol proto "$net" || return 0 + + # Do not support non-static interfaces for now + [ static = "$proto" ] || return 0 + + # Override interface netmask with dhcp config if applicable + config_get netmask "$cfg" netmask "${subnet##*/}" + + #check for an already active dhcp server on the interface, unless 'force' is set + config_get_bool force "$cfg" force 0 + [ $force -gt 0 ] || dhcp_check "$ifname" || return 0 + + config_get start "$cfg" start 100 + config_get limit "$cfg" limit 150 + config_get leasetime "$cfg" leasetime 12h + config_get options "$cfg" options + config_get_bool dynamicdhcp "$cfg" dynamicdhcp 1 + + config_get dhcpv4 "$cfg" dhcpv4 + config_get dhcpv6 "$cfg" dhcpv6 + + config_get ra "$cfg" ra + config_get ra_management "$cfg" ra_management + config_get ra_preference "$cfg" ra_preference + config_get dns "$cfg" dns + + config_list_foreach "$cfg" "interface_name" append_interface_name "$ifname" + + # Put the router host name on this DHCP served interface address(es) + dhcp_this_host_add "$net" "$ifname" "$ADD_LOCAL_FQDN" + + start="$( dhcp_calc "$start" )" + + add_tag() { + tags="${tags}tag:$1," + } + config_list_foreach "$cfg" tag add_tag + + nettag="${networkid:+set:${networkid},}" + + if [ "$limit" -gt 0 ] ; then + limit=$((limit-1)) + fi + + eval "$(ipcalc.sh "${subnet%%/*}" $netmask $start $limit)" + + if [ "$dynamicdhcp" = "0" ] ; then + END="static" + dhcp6range="::,static" + else + dhcp6range="::1000,::ffff" + fi + + + if [ "$dhcpv4" != "disabled" ] ; then + xappend "--dhcp-range=$tags$nettag$START,$END,$NETMASK,$leasetime${options:+ $options}" + fi + + + if [ $DNSMASQ_DHCP_VER -eq 6 -a "$ra" = "server" ] ; then + # Note: dnsmasq cannot just be a DHCPv6 server (all-in-1) + # and let some other machine(s) send RA pointing to it. + + case $ra_preference in + *high*) + xappend "--ra-param=$ifname,high,0,7200" + ;; + *low*) + xappend "--ra-param=$ifname,low,0,7200" + ;; + *) + # Send UNSOLICITED RA at default interval and live for 2 hours. + # TODO: convert flexible lease time into route life time (only seconds). + xappend "--ra-param=$ifname,0,7200" + ;; + esac + + if [ "$dhcpv6" = "disabled" ] ; then + ra_management="3" + fi + + + case $ra_management in + 0) + # SLACC with DCHP for extended options + xappend "--dhcp-range=$nettag::,constructor:$ifname,ra-stateless,ra-names" + ;; + 2) + # DHCP address and RA only for management redirection + xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,$leasetime" + ;; + 3) + # SLAAC only but dnsmasq attempts to link HOSTNAME, DHCPv4 MAC, and SLAAC + xappend "--dhcp-range=$nettag::,constructor:$ifname,ra-only,ra-names" + ;; + *) + # SLAAC and full DHCP + xappend "--dhcp-range=$nettag$dhcp6range,constructor:$ifname,slaac,ra-names,$leasetime" + ;; + esac + + if [ -n "$dns" ]; then + dnss="" + for d in $dns; do append dnss "[$d]" ","; done + else + dnss="[::]" + fi + + dhcp_option_append "option6:dns-server,$dnss" "$networkid" + fi + + dhcp_option_add "$cfg" "$networkid" 0 + dhcp_option_add "$cfg" "$networkid" 2 +} + +dhcp_option_append() { + local option="$1" + local networkid="$2" + local force="$3" + + xappend "--dhcp-option${force:+-force}=${networkid:+$networkid,}$option" +} + +dhcp_option_add() { + # NOTE: dnsmasq has explicit "option6:" prefix for DHCPv6 so no collisions + local cfg="$1" + local networkid="$2" + local force="$3" + local opt="dhcp_option" + + [ "$force" = "0" ] && force= + [ "$force" = "2" ] && opt="dhcp_option_force" + + local list_len + config_get list_len "$cfg" "${opt}_LENGTH" + + if [ -n "$list_len" ]; then + config_list_foreach "$cfg" "$opt" dhcp_option_append "$networkid" "$force" + else + config_get dhcp_option "$cfg" "$opt" + + [ -n "$dhcp_option" ] && echo "Warning: the 'option $opt' syntax is deprecated, use 'list $opt'" >&2 + + local option + for option in $dhcp_option; do + dhcp_option_append "$option" "$networkid" "$force" + done + fi +} + +dhcp_domain_add() { + local cfg="$1" + local ip name names record + + config_get names "$cfg" name "$2" + [ -n "$names" ] || return 0 + + config_get ip "$cfg" ip "$3" + [ -n "$ip" ] || return 0 + + for name in $names; do + record="${record:+$record }$name" + done + + echo "$ip $record" >> $HOSTFILE_TMP +} + +dhcp_srv_add() { + local cfg="$1" + + config_get srv "$cfg" srv + [ -n "$srv" ] || return 0 + + config_get target "$cfg" target + [ -n "$target" ] || return 0 + + config_get port "$cfg" port + [ -n "$port" ] || return 0 + + config_get class "$cfg" class + config_get weight "$cfg" weight + + local service="$srv,$target,$port${class:+,$class${weight:+,$weight}}" + + xappend "--srv-host=$service" +} + +dhcp_mx_add() { + local cfg="$1" + local domain relay pref + + config_get domain "$cfg" domain + [ -n "$domain" ] || return 0 + + config_get relay "$cfg" relay + [ -n "$relay" ] || return 0 + + config_get pref "$cfg" pref 0 + + local service="$domain,$relay,$pref" + + xappend "--mx-host=$service" +} + +dhcp_cname_add() { + local cfg="$1" + local cname target + + config_get cname "$cfg" cname + [ -n "$cname" ] || return 0 + + config_get target "$cfg" target + [ -n "$target" ] || return 0 + + xappend "--cname=${cname},${target}" +} + +dhcp_hostrecord_add() { + local cfg="$1" + local names addresses record val + + config_get names "$cfg" name "$2" + if [ -z "$names" ]; then + return 0 + fi + + config_get addresses "$cfg" ip "$3" + if [ -z "$addresses" ]; then + return 0 + fi + + for val in $names $addresses; do + record="${record:+$record,}$val" + done + + xappend "--host-record=$record" +} + +dhcp_relay_add() { + local cfg="$1" + local local_addr server_addr interface + + config_get local_addr "$cfg" local_addr + [ -n "$local_addr" ] || return 0 + + config_get server_addr "$cfg" server_addr + [ -n "$server_addr" ] || return 0 + + config_get interface "$cfg" interface + if [ -z "$interface" ]; then + xappend "--dhcp-relay=$local_addr,$server_addr" + else + network_get_device ifname "$interface" || return + xappend "--dhcp-relay=$local_addr,$server_addr,$ifname" + fi +} + +dnsmasq_start() +{ + local cfg="$1" disabled resolvfile user_dhcpscript + + config_get_bool disabled "$cfg" disabled 0 + [ "$disabled" -gt 0 ] && return 0 + + # reset list of DOMAINS and DNS servers (for each dnsmasq instance) + DNS_SERVERS="" + DOMAIN="" + CONFIGFILE="${BASECONFIGFILE}.${cfg}" + CONFIGFILE_TMP="${CONFIGFILE}.$$" + HOSTFILE="${BASEHOSTFILE}.${cfg}" + HOSTFILE_TMP="${HOSTFILE}.$$" + BASEDHCPSTAMPFILE_CFG="${BASEDHCPSTAMPFILE}.${cfg}" + + # before we can call xappend + mkdir -p /var/run/dnsmasq/ + mkdir -p $(dirname $CONFIGFILE) + mkdir -p $(dirname $HOSTFILE) + mkdir -p /var/lib/misc + chown dnsmasq:dnsmasq /var/run/dnsmasq + + echo "# auto-generated config file from /etc/config/dhcp" > $CONFIGFILE_TMP + echo "# auto-generated config file from /etc/config/dhcp" > $HOSTFILE_TMP + + local dnsmasqconffile="/etc/dnsmasq.${cfg}.conf" + if [ ! -r "$dnsmasqconffile" ]; then + dnsmasqconffile=/etc/dnsmasq.conf + fi + + # if we did this last, we could override auto-generated config + [ -f "${dnsmasqconffile}" ] && { + xappend "--conf-file=${dnsmasqconffile}" + } + + $PROG --version | grep -osqE "^Compile time options:.* DHCPv6( |$)" && DHCPv6CAPABLE=1 || DHCPv6CAPABLE=0 + + + if [ -x /usr/sbin/odhcpd -a -x /etc/init.d/odhcpd ] ; then + local odhcpd_is_main odhcpd_is_enabled + config_get odhcpd_is_main odhcpd maindhcp 0 + /etc/init.d/odhcpd enabled && odhcpd_is_enabled=1 || odhcpd_is_enabled=0 + + + if [ "$odhcpd_is_enabled" -eq 0 -a "$DHCPv6CAPABLE" -eq 1 ] ; then + # DHCP V4 and V6 in DNSMASQ + DNSMASQ_DHCP_VER=6 + elif [ "$odhcpd_is_main" -gt 0 ] ; then + # ODHCPD is doing it all + DNSMASQ_DHCP_VER=0 + else + # You have ODHCPD but use DNSMASQ for DHCPV4 + DNSMASQ_DHCP_VER=4 + fi + + elif [ "$DHCPv6CAPABLE" -eq 1 ] ; then + # DHCP V4 and V6 in DNSMASQ + DNSMASQ_DHCP_VER=6 + else + DNSMASQ_DHCP_VER=4 + fi + + # Allow DHCP/DHCPv6 to be handled by ISC DHCPD + if [ -x /usr/sbin/dhcpd ] ; then + if [ -x /etc/init.d/dhcpd ] ; then + /etc/init.d/dhcpd enabled && DNSMASQ_DHCP_VER=0 + fi + if [ -x /etc/init.d/dhcpd6 -a "$DNSMASQ_DHCP_VER" -gt 0 ] ; then + /etc/init.d/dhcpd6 enabled && DNSMASQ_DHCP_VER=4 + fi + fi + + append_bool "$cfg" authoritative "--dhcp-authoritative" + append_bool "$cfg" nodaemon "--no-daemon" + append_bool "$cfg" domainneeded "--domain-needed" + append_bool "$cfg" filterwin2k "--filterwin2k" + append_bool "$cfg" nohosts "--no-hosts" + append_bool "$cfg" nonegcache "--no-negcache" + append_bool "$cfg" strictorder "--strict-order" + append_bool "$cfg" logqueries "--log-queries=extra" + append_bool "$cfg" noresolv "--no-resolv" + append_bool "$cfg" localise_queries "--localise-queries" + append_bool "$cfg" readethers "--read-ethers" + append_bool "$cfg" dbus "--enable-dbus" + append_bool "$cfg" expandhosts "--expand-hosts" + config_get tftp_root "$cfg" "tftp_root" + [ -n "$tftp_root" ] && mkdir -p "$tftp_root" && append_bool "$cfg" enable_tftp "--enable-tftp" + append_bool "$cfg" tftp_no_fail "--tftp-no-fail" + append_bool "$cfg" nonwildcard "--bind-dynamic" 1 + append_bool "$cfg" fqdn "--dhcp-fqdn" + append_bool "$cfg" proxydnssec "--proxy-dnssec" + append_bool "$cfg" localservice "--local-service" + append_bool "$cfg" logdhcp "--log-dhcp" + append_bool "$cfg" quietdhcp "--quiet-dhcp" + append_bool "$cfg" sequential_ip "--dhcp-sequential-ip" + append_bool "$cfg" allservers "--all-servers" + append_bool "$cfg" noping "--no-ping" + + append_parm "$cfg" logfacility "--log-facility" + + append_parm "$cfg" cachesize "--cache-size" + append_parm "$cfg" dnsforwardmax "--dns-forward-max" + append_parm "$cfg" port "--port" + append_parm "$cfg" ednspacket_max "--edns-packet-max" + append_parm "$cfg" dhcpleasemax "--dhcp-lease-max" + append_parm "$cfg" "queryport" "--query-port" + append_parm "$cfg" "minport" "--min-port" + append_parm "$cfg" "maxport" "--max-port" + append_parm "$cfg" "domain" "--domain" + append_parm "$cfg" "local" "--server" + config_list_foreach "$cfg" "listen_address" append_listenaddress + config_list_foreach "$cfg" "server" append_server + config_list_foreach "$cfg" "rev_server" append_rev_server + config_list_foreach "$cfg" "address" append_address + config_list_foreach "$cfg" "ipset" append_ipset + [ -n "$BOOT" ] || { + config_list_foreach "$cfg" "interface" append_interface + config_list_foreach "$cfg" "notinterface" append_notinterface + } + config_list_foreach "$cfg" "addnhosts" append_addnhosts + config_list_foreach "$cfg" "bogusnxdomain" append_bogusnxdomain + append_parm "$cfg" "leasefile" "--dhcp-leasefile" "/tmp/dhcp.leases" + append_parm "$cfg" "serversfile" "--servers-file" + append_parm "$cfg" "tftp_root" "--tftp-root" + append_parm "$cfg" "dhcp_boot" "--dhcp-boot" + append_parm "$cfg" "local_ttl" "--local-ttl" + append_parm "$cfg" "pxe_prompt" "--pxe-prompt" + config_list_foreach "$cfg" "pxe_service" append_pxe_service + config_get DOMAIN "$cfg" domain + + config_get_bool ADD_LOCAL_DOMAIN "$cfg" add_local_domain 1 + config_get_bool ADD_LOCAL_HOSTNAME "$cfg" add_local_hostname 1 + config_get ADD_LOCAL_FQDN "$cfg" add_local_fqdn "" + config_get ADD_WAN_FQDN "$cfg" add_wan_fqdn 0 + + if [ -z "$ADD_LOCAL_FQDN" ] ; then + # maintain support for previous UCI + ADD_LOCAL_FQDN="$ADD_LOCAL_HOSTNAME" + fi + + config_get_bool readethers "$cfg" readethers + [ "$readethers" = "1" -a \! -e "/etc/ethers" ] && touch /etc/ethers + + config_get user_dhcpscript $cfg dhcpscript + if has_handler || [ -n "$user_dhcpscript" ]; then + xappend "--dhcp-script=$DHCPSCRIPT" + fi + + config_get leasefile $cfg leasefile "/tmp/dhcp.leases" + [ -n "$leasefile" -a \! -e "$leasefile" ] && touch "$leasefile" + config_get_bool cachelocal "$cfg" cachelocal 1 + + config_get_bool noresolv "$cfg" noresolv 0 + if [ "$noresolv" != "1" ]; then + config_get resolvfile "$cfg" resolvfile "/tmp/resolv.conf.auto" + # So jail doesn't complain if file missing + [ -n "$resolvfile" -a \! -e "$resolvfile" ] && touch "$resolvfile" + fi + + [ -n "$resolvfile" ] && xappend "--resolv-file=$resolvfile" + + config_get hostsfile "$cfg" dhcphostsfile + [ -e "$hostsfile" ] && xappend "--dhcp-hostsfile=$hostsfile" + + local rebind + config_get_bool rebind "$cfg" rebind_protection 1 + [ $rebind -gt 0 ] && { + log_once \ + "DNS rebinding protection is active," \ + "will discard upstream RFC1918 responses!" + xappend "--stop-dns-rebind" + + local rebind_localhost + config_get_bool rebind_localhost "$cfg" rebind_localhost 0 + [ $rebind_localhost -gt 0 ] && { + log_once "Allowing 127.0.0.0/8 responses" + xappend "--rebind-localhost-ok" + } + + append_rebind_domain() { + log_once "Allowing RFC1918 responses for domain $1" + xappend "--rebind-domain-ok=$1" + } + + config_list_foreach "$cfg" rebind_domain append_rebind_domain + } + + config_get_bool dnssec "$cfg" dnssec 0 + [ "$dnssec" -gt 0 ] && { + xappend "--conf-file=$TRUSTANCHORSFILE" + xappend "--dnssec" + [ -x /etc/init.d/sysntpd ] && { + /etc/init.d/sysntpd enabled + [ "$?" -ne 0 -o "$(uci_get system.ntp.enabled)" = "1" ] && { + [ -f "$TIMEVALIDFILE" ] || xappend "--dnssec-no-timecheck" + } + } + append_bool "$cfg" dnsseccheckunsigned "--dnssec-check-unsigned" + } + + config_get addmac "$cfg" addmac 0 + [ "$addmac" != "0" ] && { + [ "$addmac" = "1" ] && addmac= + xappend "--add-mac${addmac:+="$addmac"}" + } + + dhcp_option_add "$cfg" "" 0 + dhcp_option_add "$cfg" "" 2 + + xappend "--dhcp-broadcast=tag:needs-broadcast" + + xappend "--addn-hosts=$(dirname $HOSTFILE)" + + config_get dnsmasqconfdir "$cfg" confdir "/tmp/dnsmasq.d" + xappend "--conf-dir=$dnsmasqconfdir" + dnsmasqconfdir="${dnsmasqconfdir%%,*}" + [ ! -d "$dnsmasqconfdir" ] && mkdir -p $dnsmasqconfdir + xappend "--user=dnsmasq" + xappend "--group=dnsmasq" + echo >> $CONFIGFILE_TMP + + config_get_bool enable_tftp "$cfg" enable_tftp 0 + [ "$enable_tftp" -gt 0 ] && { + config_get tftp_root "$cfg" tftp_root + append EXTRA_MOUNT $tftp_root + } + + config_foreach filter_dnsmasq host dhcp_host_add "$cfg" + echo >> $CONFIGFILE_TMP + config_foreach filter_dnsmasq boot dhcp_boot_add "$cfg" + config_foreach filter_dnsmasq mac dhcp_mac_add "$cfg" + config_foreach filter_dnsmasq tag dhcp_tag_add "$cfg" + config_foreach filter_dnsmasq vendorclass dhcp_vendorclass_add "$cfg" + config_foreach filter_dnsmasq userclass dhcp_userclass_add "$cfg" + config_foreach filter_dnsmasq circuitid dhcp_circuitid_add "$cfg" + config_foreach filter_dnsmasq remoteid dhcp_remoteid_add "$cfg" + config_foreach filter_dnsmasq subscrid dhcp_subscrid_add "$cfg" + config_foreach filter_dnsmasq match dhcp_match_add "$cfg" + config_foreach filter_dnsmasq domain dhcp_domain_add "$cfg" + config_foreach filter_dnsmasq hostrecord dhcp_hostrecord_add "$cfg" + [ -n "$BOOT" ] || config_foreach filter_dnsmasq relay dhcp_relay_add "$cfg" + + echo >> $CONFIGFILE_TMP + config_foreach filter_dnsmasq srvhost dhcp_srv_add "$cfg" + config_foreach filter_dnsmasq mxhost dhcp_mx_add "$cfg" + echo >> $CONFIGFILE_TMP + + config_get_bool boguspriv "$cfg" boguspriv 1 + [ "$boguspriv" -gt 0 ] && { + xappend "--bogus-priv" + [ -r "$RFC6761FILE" ] && xappend "--conf-file=$RFC6761FILE" + } + + if [ "$DNSMASQ_DHCP_VER" -gt 4 ] ; then + # Enable RA feature for when/if it is constructed, + # and RA is selected per interface pool (RA, DHCP, or both), + # but no one (should) want RA broadcast in syslog + [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg" + xappend "--enable-ra" + xappend "--quiet-ra" + append_bool "$cfg" quietdhcp "--quiet-dhcp6" + + elif [ "$DNSMASQ_DHCP_VER" -gt 0 ] ; then + [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg" + fi + + + echo >> $CONFIGFILE_TMP + config_foreach filter_dnsmasq cname dhcp_cname_add "$cfg" + echo >> $CONFIGFILE_TMP + + echo >> $CONFIGFILE_TMP + mv -f $CONFIGFILE_TMP $CONFIGFILE + mv -f $HOSTFILE_TMP $HOSTFILE + + [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && { + rm -f /tmp/resolv.conf + [ $ADD_LOCAL_DOMAIN -eq 1 ] && [ -n "$DOMAIN" ] && { + echo "search $DOMAIN" >> /tmp/resolv.conf + } + DNS_SERVERS="$DNS_SERVERS 127.0.0.1" + for DNS_SERVER in $DNS_SERVERS ; do + echo "nameserver $DNS_SERVER" >> /tmp/resolv.conf + done + } + + procd_open_instance $cfg + procd_set_param command $PROG -C $CONFIGFILE -k -x /var/run/dnsmasq/dnsmasq."${cfg}".pid + procd_set_param file $CONFIGFILE + [ -n "$user_dhcpscript" ] && procd_set_param env USER_DHCPSCRIPT="$user_dhcpscript" + procd_set_param respawn + + procd_add_jail dnsmasq ubus log + procd_add_jail_mount $CONFIGFILE $TRUSTANCHORSFILE $HOSTFILE $RFC6761FILE /etc/passwd /etc/group /etc/TZ /dev/null /dev/urandom $dnsmasqconffile $dnsmasqconfdir $resolvfile $user_dhcpscript /etc/hosts /etc/ethers /sbin/hotplug-call $EXTRA_MOUNT $DHCPSCRIPT + procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile + + procd_close_instance +} + +dnsmasq_stop() +{ + local cfg="$1" resolvfile + + config_get resolvfile "$cfg" "resolvfile" + + #relink /tmp/resolve.conf only for main instance + [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && { + [ -f /tmp/resolv.conf ] && { + rm -f /tmp/resolv.conf + ln -s "$resolvfile" /tmp/resolv.conf + } + } + + rm -f ${BASEDHCPSTAMPFILE}.${cfg}.*.dhcp +} + +add_interface_trigger() +{ + local interface ignore + + config_get interface "$1" interface + config_get_bool ignore "$1" ignore 0 + + [ -n "$interface" -a $ignore -eq 0 ] && procd_add_interface_trigger "interface.*" "$interface" /etc/init.d/dnsmasq reload +} + +service_triggers() +{ + procd_add_reload_trigger "dhcp" "system" + + config_load dhcp + config_foreach add_interface_trigger dhcp + config_foreach add_interface_trigger relay +} + +boot() +{ + BOOT=1 + start "$@" +} + +start_service() { + local instance="$1" + local instance_found=0 + + . /lib/functions/network.sh + + config_cb() { + local type="$1" + local name="$2" + if [ "$type" = "dnsmasq" ]; then + if [ -n "$instance" -a "$instance" = "$name" ]; then + instance_found=1 + fi + fi + } + + config_load dhcp + + if [ -n "$instance" ]; then + [ "$instance_found" -gt 0 ] || return + dnsmasq_start "$instance" + else + config_foreach dnsmasq_start dnsmasq + fi +} + +reload_service() { + rc_procd start_service "$@" + procd_send_signal dnsmasq "$@" +} + +stop_service() { + local instance="$1" + local instance_found=0 + + config_cb() { + local type="$1" + local name="$2" + if [ "$type" = "dnsmasq" ]; then + if [ -n "$instance" -a "$instance" = "$name" ]; then + instance_found=1 + fi + fi + } + + config_load dhcp + + if [ -n "$instance" ]; then + [ "$instance_found" -gt 0 ] || return + dnsmasq_stop "$instance" + else + config_foreach dnsmasq_stop dnsmasq + fi +} diff --git a/root/package/utils/wmt/Makefile b/root/package/utils/wmt/Makefile new file mode 100644 index 00000000..dffd032e --- /dev/null +++ b/root/package/utils/wmt/Makefile @@ -0,0 +1,51 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=wmt +PKG_VERSION:=1.0.0 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/abbradar/wmt +PKG_SOURCE_VERSION:=2127e23dd94df960b12f3ffff806bcf41ebbf4b8 +PKG_MAINTAINER:=Nikolay Amiantov + +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=utils + CATEGORY:=Utilities + TITLE:=wmt utility for MT6625L + DEPENDS:=kmod-mt6625l-wlan-gen2 + MAINTAINER:=Jinkai li +endef + +define Package/$(PKG_NAME)/description + Utility for loading MT6625L firmware. +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/stp_uart_launcher $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/wmt_loader $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/wmt_loopback $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/system/etc/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/config/WMT_SOC.cfg $(1)/system/etc/firmware + $(INSTALL_DATA) $(PKG_BUILD_DIR)/config/WMT_SOC.cfg $(1)/system/etc/firmware/WMT.cfg + $(INSTALL_DIR) $(1)/etc/firmware + $(CP) -r $(PKG_BUILD_DIR)/firmware/* $(1)/etc/firmware/ + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/wmt.init $(1)/etc/init.d/wmt + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_BIN) ./files/wmt.defaults $(1)/etc/uci-defaults/8803-wmt +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/root/package/utils/wmt/files/wmt.defaults b/root/package/utils/wmt/files/wmt.defaults new file mode 100644 index 00000000..ff619a29 --- /dev/null +++ b/root/package/utils/wmt/files/wmt.defaults @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ -z "$(uci -q get ucitrack.@wmt[0])" ]; then + uci -q batch <<-EOF + set ucitrack.@wmt[-1]=wmt + set ucitrack.@wmt[-1].init=wmt + add_list ucitrack.@wireless[0].affects=wmt + commit ucitrack + EOF +fi +exit 0 diff --git a/root/package/utils/wmt/files/wmt.init b/root/package/utils/wmt/files/wmt.init new file mode 100644 index 00000000..bf4580e3 --- /dev/null +++ b/root/package/utils/wmt/files/wmt.init @@ -0,0 +1,119 @@ +#!/bin/sh /etc/rc.common + +START=69 + +check_mtk_device() { + config_get phy "$1" phy + [ "$phy" = "mtkp2p0" ] && { + [ "$(uci -q get wireless.$1.disabled)" = "1" ] || apmode="$1" + [ -z "$(uci -q get wireless.default_$1.ifname)" ] && { + uci -q batch <<-EOF + set wireless.default_$1.ifname=mtkap0 + set wireless.default_$1.bss_load_update_period=0 + rename wireless.$1=ap + rename wireless.default_$1=default_ap + set wireless.default_$1.device=ap + EOF + } + } + [ "$phy" = "mtkphy0" ] && { + [ "$(uci -q get wireless.$1.disabled)" = "1" ] || wlanmode="$1" + [ "$(uci -q get wireless.default_$1.mode)" = "ap" ] && { + uci -q batch <<-EOF + set wireless.default_$1.mode=sta + EOF + } + [ -z "$(uci -q get wireless.default_$1.ifname)" ] && { + uci -q batch <<-EOF + set wireless.default_$1.ifname=mtkwlan0 + set wireless.default_$1.bss_load_update_period=0 + rename wireless.$1=client + rename wireless.default_$1=default_client + set wireless.default_$1.device=client + EOF + } + } +} + +find_radio() { + config_load wireless + apmode="" + wlanmode="" + config_foreach check_mtk_device wifi-device + uci -q commit wireless +} + +start_ap() { + echo A > /dev/wmtWifi + # Those are recommended by vendor to avoid chip lockup. + tc qdisc add dev mtkap0 root handle 1: htb default 11 + tc class add dev mtkap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2 + + find_radio + if [ -n "$apmode" ]; then + config_get_bool disabled "$apmode" disabled + [ "$disabled" = "1" ] || wifi up "$apmode" 2>/dev/null + fi +} + +start_wlan() { + echo 1 > /dev/wmtWifi + # Those are recommended by vendor to avoid chip lockup. + tc qdisc add dev mtkap0 root handle 1: htb default 11 + tc class add dev mtkap0 parent 1:1 classid 1:2 htb rate 8Mbit ceil 4Mbit prio 2 + + find_radio + if [ -n "$wlanmode" ]; then + config_get_bool disabled "$wlanmode" disabled + [ "$disabled" = "1" ] || wifi up "$wlanmode" 2>/dev/null + fi +} + +stop_apwlan() { + find_radio + [ -n "$apmode" ] && wifi down "$apmode" 2>/dev/null + [ -n "$wlanmode" ] && wifi down "$wlanmode" 2>/dev/null + echo 0 > /dev/wmtWifi + +} + +start() { + find_radio + + [ -c /dev/stpwmt ] || /usr/bin/wmt_loader 2>&1 + /usr/bin/stp_uart_launcher -p /etc/firmware 2>&1 | logger -t stp_uart_launcher & + echo "$!" > /var/run/stp_uart_launcher.pid + sleep 3 + if [ -c /dev/wmtWifi ]; then + [ -n "$apmode" ] && start_ap + [ -n "$wlanmode" ] && start_wlan + [ -z "$apmode" ] && [ -z "$wlanmode" ] && start_ap + return 0 + else + return 1 + fi +} + +stop() { + find_radio + + if [ -c /dev/wmtWifi ]; then + stop_apwlan + stp_pid="$(cat /var/run/stp_uart_launcher.pid 2>/dev/null)" + if [ -n "$stp_pid" ]; then + kill "$stp_pid" + rm /var/run/stp_uart_launcher.pid + fi + fi +} + +reload() { + find_radio + + if [ -c /dev/wmtWifi ]; then + stop_apwlan + [ -n "$apmode" ] && start_ap + [ -n "$wlanmode" ] && start_wlan + [ -z "$apmode" ] && [ -z "$wlanmode" ] && start_ap + fi +} diff --git a/root/target/linux/bcm27xx/bcm2708/config-4.14 b/root/target/linux/bcm27xx/bcm2708/config-4.14 new file mode 100644 index 00000000..9af3e766 --- /dev/null +++ b/root/target/linux/bcm27xx/bcm2708/config-4.14 @@ -0,0 +1,431 @@ +# CONFIG_AIO is not set +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ARCH_BCM=y +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +CONFIG_ARCH_MULTI_V6=y +CONFIG_ARCH_MULTI_V6_V7=y +CONFIG_ARCH_NR_GPIO=0 +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +# CONFIG_ARCH_WANTS_THP_SWAP is not set +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_ARM=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_BCM2835_CPUFREQ=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_ERRATA_411920=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_ARM_PATCH_PHYS_VIRT=y +# CONFIG_ARM_SP805_WATCHDOG is not set +CONFIG_ARM_THUMB=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_ARM_UNWIND=y +CONFIG_AUTO_ZRELADDR=y +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BCM2708_VCMEM=y +# CONFIG_BCM2835_DEVGPIOMEM is not set +CONFIG_BCM2835_FAST_MEMCPY=y +CONFIG_BCM2835_MBOX=y +# CONFIG_BCM2835_SMI is not set +CONFIG_BCM2835_THERMAL=y +CONFIG_BCM2835_TIMER=y +CONFIG_BCM2835_VCHIQ=y +# CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP is not set +CONFIG_BCM2835_WDT=y +CONFIG_BCM_VCIO=y +CONFIG_BCM_VC_SM=y +CONFIG_BCM_VIDEOCORE=y +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BUILD_BIN2C=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_SIZE_MBYTES=16 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +CONFIG_COMMON_CLK=y +CONFIG_CONFIGFS_FS=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_TRANSLATIONS=y +# CONFIG_CPUFREQ_DT is not set +CONFIG_CPU_32v6=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_ABRT_EV6=y +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_CPU_CACHE_V6=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_HAS_ASID=y +# CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_PABRT_V6=y +CONFIG_CPU_PM=y +# CONFIG_CPU_THERMAL is not set +CONFIG_CPU_THUMB_CAPABLE=y +CONFIG_CPU_TLB_V6=y +CONFIG_CPU_V6K=y +CONFIG_CRC16=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DEBUG_ALIGN_RODATA=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_UART_8250 is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DMADEVICES=y +CONFIG_DMA_BCM2708=y +CONFIG_DMA_BCM2835=y +CONFIG_DMA_CMA=y +CONFIG_DMA_ENGINE=y +# CONFIG_DMA_NOOP_OPS is not set +CONFIG_DMA_OF=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +# CONFIG_DMA_VIRT_OPS is not set +CONFIG_DNOTIFY=y +# CONFIG_DRM_LIB_RANDOM is not set +# CONFIG_DRM_PANEL_LVDS is not set +# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set +# CONFIG_DRM_VC4_HDMI_CEC is not set +CONFIG_DTC=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_EXPORTFS=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_F2FS_FS=y +# CONFIG_F2FS_FS_SECURITY is not set +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_STAT_FS=y +CONFIG_FB=y +CONFIG_FB_BCM2708=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CMDLINE=y +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set +# CONFIG_FB_RPISENSE is not set +CONFIG_FIQ=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIX_EARLYCON_MEM=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FPE_FASTFPE is not set +# CONFIG_FPE_NWFPE is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FREEZER=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FUTEX_PI=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_GPIO_BCM_EXP is not set +# CONFIG_GPIO_BCM_VIRT is not set +CONFIG_GPIO_SYSFS=y +# CONFIG_GRO_CELLS is not set +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +# CONFIG_HAVE_ARCH_BITREVERSE is not set +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_CC_STACKPROTECTOR=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UID16=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HW_CONSOLE=y +CONFIG_HZ_FIXED=0 +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_INPUT=y +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_IOMMU_HELPER=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_WORK=y +CONFIG_JBD2=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_INPUT=y +CONFIG_LIBFDT=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAILBOX=y +# CONFIG_MAILBOX_TEST is not set +CONFIG_MAX_RAW_DEVS=256 +# CONFIG_MDIO_BUS is not set +CONFIG_MEMORY_ISOLATION=y +CONFIG_MFD_RPISENSE_CORE=y +CONFIG_MFD_SYSCON=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_MIGRATION=y +CONFIG_MMC=y +CONFIG_MMC_BCM2835=y +CONFIG_MMC_BCM2835_DMA=y +CONFIG_MMC_BCM2835_MMC=y +CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 +CONFIG_MMC_BCM2835_SDHOST=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MODULES_USE_ELF_REL=y +# CONFIG_MTD is not set +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_KM=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y +CONFIG_OABI_COMPAT=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_CONFIGFS=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_PAGE_OFFSET=0xC0000000 +# CONFIG_PCI_DOMAINS_GENERIC is not set +# CONFIG_PCI_SYSCALL is not set +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_PINCTRL=y +CONFIG_PINCTRL_BCM2835=y +CONFIG_PM=y +CONFIG_PM_CLK=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_SLEEP=y +CONFIG_POWER_SUPPLY=y +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +CONFIG_PRINTK_TIME=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PWM=y +CONFIG_PWM_BCM2835=y +CONFIG_PWM_SYSFS=y +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_RASPBERRYPI_POWER=y +CONFIG_RATIONAL=y +CONFIG_RAW_DRIVER=y +# CONFIG_RCU_NEED_SEGCBLIST is not set +# CONFIG_RCU_STALL_COMMON is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_SCHED_INFO is not set +CONFIG_SCSI=y +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_SCSI_PROC_FS is not set +CONFIG_SERIAL_8250_BCM2835AUX=y +# CONFIG_SERIAL_8250_DMA is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SG_POOL=y +# CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD is not set +# CONFIG_SND_BCM2708_SOC_RPI_CIRRUS is not set +CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=m +CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=m +CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=m +# CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC is not set +# CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD is not set +CONFIG_SND_SOC_ICS43432=y +CONFIG_SPARSE_IRQ=y +CONFIG_SRCU=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWIOTLB=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +# CONFIG_TEXTSEARCH is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_OF=y +CONFIG_THIN_ARCHIVES=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TINY_SRCU=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UID16 is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_COMMON=y +CONFIG_USB_DWCOTG=y +CONFIG_USB_LAN78XX=y +# CONFIG_USB_EHCI_HCD is not set +CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_NET_SMSC95XX=y +CONFIG_USB_STORAGE=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_UAS=y +CONFIG_USB_USBNET=y +CONFIG_USE_OF=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_VFP=y +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_WATCHDOG_CORE=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ZBOOT_ROM_TEXT=0x0 diff --git a/root/target/linux/bcm27xx/bcm2709/config-4.14 b/root/target/linux/bcm27xx/bcm2709/config-4.14 new file mode 100644 index 00000000..083c4b94 --- /dev/null +++ b/root/target/linux/bcm27xx/bcm2709/config-4.14 @@ -0,0 +1,472 @@ +# CONFIG_AIO is not set +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ARCH_BCM=y +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +CONFIG_ARCH_MMAP_RND_BITS_MAX=15 +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +CONFIG_ARCH_MULTI_V6_V7=y +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_NR_GPIO=0 +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +# CONFIG_ARCH_WANTS_THP_SWAP is not set +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_ARM=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_BCM2835_CPUFREQ=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_L1_CACHE_SHIFT_6=y +# CONFIG_ARM_LPAE is not set +CONFIG_ARM_PATCH_IDIV=y +CONFIG_ARM_PATCH_PHYS_VIRT=y +# CONFIG_ARM_SP805_WATCHDOG is not set +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_ARM_TIMER_SP804=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_AUTO_ZRELADDR=y +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BCM2708_VCMEM=y +# CONFIG_BCM2835_DEVGPIOMEM is not set +CONFIG_BCM2835_MBOX=y +# CONFIG_BCM2835_SMI is not set +CONFIG_BCM2835_THERMAL=y +CONFIG_BCM2835_TIMER=y +CONFIG_BCM2835_VCHIQ=y +# CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP is not set +CONFIG_BCM2835_WDT=y +CONFIG_BCM_VCIO=y +CONFIG_BCM_VC_SM=y +CONFIG_BCM_VIDEOCORE=y +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BUILD_BIN2C=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_SIZE_MBYTES=16 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +CONFIG_COMMON_CLK=y +CONFIG_CONFIGFS_FS=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_TRANSLATIONS=y +# CONFIG_CPUFREQ_DT is not set +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_HAS_ASID=y +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=y +# CONFIG_CPU_THERMAL is not set +CONFIG_CPU_THUMB_CAPABLE=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_V7=y +CONFIG_CRC16=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DEBUG_ALIGN_RODATA=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_UART_8250 is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DMADEVICES=y +CONFIG_DMA_BCM2708=y +CONFIG_DMA_BCM2835=y +CONFIG_DMA_CMA=y +CONFIG_DMA_ENGINE=y +# CONFIG_DMA_NOOP_OPS is not set +CONFIG_DMA_OF=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +# CONFIG_DMA_VIRT_OPS is not set +CONFIG_DNOTIFY=y +# CONFIG_DRM_LIB_RANDOM is not set +CONFIG_DRM_PANEL_LVDS=n +CONFIG_DRM_PANEL_INNOLUX_P079ZCA=n +CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=n +CONFIG_DRM_PANEL_SITRONIX_ST7789V=n +CONFIG_DRM_VC4_HDMI_CEC=n +CONFIG_DTC=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_EXPORTFS=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_F2FS_FS=y +# CONFIG_F2FS_FS_SECURITY is not set +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_STAT_FS=y +CONFIG_FB=y +CONFIG_FB_BCM2708=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CMDLINE=y +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set +# CONFIG_FB_RPISENSE is not set +CONFIG_FIQ=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIX_EARLYCON_MEM=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FPE_FASTFPE is not set +# CONFIG_FPE_NWFPE is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FREEZER=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FUTEX_PI=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ARCH_TOPOLOGY=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_ARIZONA=y +CONFIG_GPIO_BCM_EXP=y +CONFIG_GPIO_BCM_VIRT=y +CONFIG_GPIO_SYSFS=y +# CONFIG_GRO_CELLS is not set +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_SMCCC=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_CC_STACKPROTECTOR=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SMP=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UID16=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HW_CONSOLE=y +CONFIG_HZ_FIXED=0 +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_INPUT=y +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_IOMMU_HELPER=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_WORK=y +CONFIG_JBD2=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_INPUT=y +CONFIG_LIBFDT=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAILBOX=y +# CONFIG_MAILBOX_TEST is not set +CONFIG_MAX_RAW_DEVS=256 +# CONFIG_MDIO_BUS is not set +CONFIG_MEMORY_ISOLATION=y +CONFIG_MFD_ARIZONA=y +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_RPISENSE_CORE is not set +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_MIGRATION=y +CONFIG_MMC=y +CONFIG_MMC_BCM2835=y +CONFIG_MMC_BCM2835_DMA=y +CONFIG_MMC_BCM2835_MMC=y +CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 +CONFIG_MMC_BCM2835_SDHOST=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MODULES_USE_ELF_REL=y +# CONFIG_MTD is not set +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEON=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=4 +CONFIG_OABI_COMPAT=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_CONFIGFS=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_PADATA=y +CONFIG_PAGE_OFFSET=0x80000000 +# CONFIG_PCI_DOMAINS_GENERIC is not set +# CONFIG_PCI_SYSCALL is not set +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_PINCTRL=y +CONFIG_PINCTRL_BCM2835=y +CONFIG_PM=y +CONFIG_PM_CLK=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_POWER_SUPPLY=y +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +CONFIG_PRINTK_TIME=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PWM=y +CONFIG_PWM_BCM2835=y +CONFIG_PWM_SYSFS=y +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_RASPBERRYPI_POWER=y +CONFIG_RATIONAL=y +CONFIG_RAW_DRIVER=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_RFS_ACCEL=y +CONFIG_RPS=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_SCHED_INFO is not set +CONFIG_SCSI=y +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_SCSI_PROC_FS is not set +CONFIG_SERIAL_8250_BCM2835AUX=y +# CONFIG_SERIAL_8250_DMA is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SG_POOL=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=n +CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=n +CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=n +CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=n +CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=n +CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=n +CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=n +# CONFIG_SND_SOC_ICS43432 is not set +CONFIG_SPARSE_IRQ=y +CONFIG_SRCU=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWIOTLB=y +CONFIG_SWP_EMULATE=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +# CONFIG_TEE is not set +# CONFIG_TEXTSEARCH is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_OF=y +CONFIG_THIN_ARCHIVES=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UID16 is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_COMMON=y +CONFIG_USB_DWCOTG=y +# CONFIG_USB_EHCI_HCD is not set +CONFIG_USB_LAN78XX=y +CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_NET_SMSC95XX=y +CONFIG_USB_STORAGE=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_UAS=y +CONFIG_USB_USBNET=y +CONFIG_USE_OF=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_VMSPLIT_2G=y +# CONFIG_VMSPLIT_3G is not set +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_WATCHDOG_CORE=y +CONFIG_XPS=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ZBOOT_ROM_TEXT=0x0 diff --git a/root/target/linux/bcm27xx/bcm2709/config-4.19 b/root/target/linux/bcm27xx/bcm2709/config-4.19 new file mode 100644 index 00000000..0dacdda4 --- /dev/null +++ b/root/target/linux/bcm27xx/bcm2709/config-4.19 @@ -0,0 +1,568 @@ +# CONFIG_AIO is not set +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_ARCH_AXXIA is not set +CONFIG_ARCH_BCM=y +CONFIG_ARCH_BCM2835=y +# CONFIG_ARCH_BCM_HR2 is not set +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_ARCH_HAS_KCOV=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_ARCH_HAS_PHYS_TO_DMA=y +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +CONFIG_ARCH_MULTIPLATFORM=y +CONFIG_ARCH_MULTI_V6_V7=y +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_NR_GPIO=0 +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_ARGON_MEM=y +CONFIG_ARM=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_BCM2835_CPUFREQ=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_CRYPTO=y +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_GIC=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_ARM_HEAVY_MB=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_LPAE=y +CONFIG_ARM_MODULE_PLTS=y +CONFIG_ARM_PATCH_IDIV=y +CONFIG_ARM_PATCH_PHYS_VIRT=y +# CONFIG_ARM_SCMI_PROTOCOL is not set +# CONFIG_ARM_SP805_WATCHDOG is not set +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_ARM_TIMER_SP804=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_AUTO_ZRELADDR=y +# CONFIG_AX88796B_PHY is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BCM2708_VCMEM=y +CONFIG_BCM2835_DEVGPIOMEM=y +CONFIG_BCM2835_MBOX=y +CONFIG_BCM2835_POWER=y +# CONFIG_BCM2835_SMI is not set +CONFIG_BCM2835_THERMAL=y +CONFIG_BCM2835_TIMER=y +CONFIG_BCM2835_VCHIQ=y +CONFIG_BCM2835_VCHIQ_MMAL=y +CONFIG_BCM2835_WDT=y +CONFIG_BCM7XXX_PHY=y +CONFIG_BCMGENET=y +CONFIG_BCM_NET_PHYLIB=y +CONFIG_BCM_VCIO=y +CONFIG_BCM_VC_SM=y +CONFIG_BCM_VC_SM_CMA=y +CONFIG_BCM_VIDEOCORE=y +CONFIG_BLK_DEBUG_FS=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_DM is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BOUNCE=y +CONFIG_BRCMSTB_THERMAL=y +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BROADCOM_PHY=y +CONFIG_BUILD_BIN2C=y +CONFIG_CACHE_L2X0=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_SIZE_MBYTES=5 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +CONFIG_COMMON_CLK=y +CONFIG_CONFIGFS_FS=y +CONFIG_CONSOLE_TRANSLATIONS=y +# CONFIG_CPUFREQ_DT is not set +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_HAS_ASID=y +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=y +CONFIG_CPU_SPECTRE=y +# CONFIG_CPU_THERMAL is not set +CONFIG_CPU_THUMB_CAPABLE=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_V7=y +CONFIG_CRC16=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AES_ARM=y +CONFIG_CRYPTO_AES_ARM_BS=y +CONFIG_CRYPTO_AES_ARM_CE=y +CONFIG_CRYPTO_CHACHA20=y +CONFIG_CRYPTO_CHACHA20_NEON=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32_ARM_CE=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_GHASH_ARM_CE=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA1_ARM_CE=y +CONFIG_CRYPTO_SHA1_ARM_NEON=y +CONFIG_CRYPTO_SHA256_ARM=y +CONFIG_CRYPTO_SHA2_ARM_CE=y +CONFIG_CRYPTO_SHA512_ARM=y +CONFIG_CRYPTO_SIMD=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DEBUG_ALIGN_RODATA=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_USER is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MPTCP_PM="fullmesh" +CONFIG_DEVMEM=y +CONFIG_DMADEVICES=y +CONFIG_DMA_BCM2708=y +CONFIG_DMA_BCM2835=y +CONFIG_DMA_CMA=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DNOTIFY=y +CONFIG_DTC=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_F2FS_FS=y +# CONFIG_F2FS_FS_SECURITY is not set +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_STAT_FS=y +CONFIG_FB=y +CONFIG_FB_BCM2708=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CMDLINE=y +# CONFIG_FB_RPISENSE is not set +CONFIG_FIQ=y +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FPE_FASTFPE is not set +# CONFIG_FPE_NWFPE is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FREEZER=y +CONFIG_FS_IOMAP=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ARCH_TOPOLOGY=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_BCM_VIRT=y +CONFIG_GPIO_RASPBERRYPI_EXP=y +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_SYSFS=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_SMCCC=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_GENERIC_GUP=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_SMP=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UID16=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_HOTPLUG_CPU=y +# CONFIG_HUGETLBFS is not set +CONFIG_HW_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_BCM2835=y +CONFIG_HW_RANDOM_IPROC_RNG200=y +CONFIG_HZ_FIXED=0 +CONFIG_I2C=y +# CONFIG_I2C_BCM2708 is not set +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_HELPER_AUTO=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_INPUT=y +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_IOSCHED_CFQ=y +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_WORK=y +CONFIG_JBD2=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_INPUT=y +CONFIG_LIBFDT=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAILBOX=y +# CONFIG_MAILBOX_TEST is not set +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MD=y +CONFIG_MDIO_BCM_UNIMAC=y +CONFIG_MDIO_BUS=y +CONFIG_MDIO_DEVICE=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_MFD_CORE=y +# CONFIG_MFD_RPISENSE_CORE is not set +CONFIG_MFD_STMPE=y +CONFIG_MFD_SYSCON=y +CONFIG_MICROCHIP_PHY=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_MIGRATION=y +CONFIG_MMC=y +CONFIG_MMC_BCM2835=y +CONFIG_MMC_BCM2835_DMA=y +CONFIG_MMC_BCM2835_MMC=y +CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 +CONFIG_MMC_BCM2835_SDHOST=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_IPROC=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_TIFM_SD is not set +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEON=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=4 +CONFIG_NVMEM=y +CONFIG_OABI_COMPAT=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_CONFIGFS=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_MDIO=y +CONFIG_OF_NET=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_PADATA=y +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIE_BRCMSTB=y +CONFIG_PCIE_PME=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +# CONFIG_PCI_V3_SEMI is not set +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_PHYLIB=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_BCM2835=y +# CONFIG_PL310_ERRATA_588369 is not set +# CONFIG_PL310_ERRATA_727915 is not set +# CONFIG_PL310_ERRATA_753970 is not set +# CONFIG_PL310_ERRATA_769419 is not set +CONFIG_PLUGIN_HOSTCC="g++" +CONFIG_PM=y +CONFIG_PM_CLK=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_SUPPLY=y +CONFIG_PRINTK_TIME=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PWM=y +CONFIG_PWM_BCM2835=y +# CONFIG_PWM_STMPE is not set +CONFIG_PWM_SYSFS=y +CONFIG_RAS=y +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_RASPBERRYPI_POWER=y +CONFIG_RATIONAL=y +CONFIG_RAW_DRIVER=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_REFCOUNT_FULL=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_RESET_CONTROLLER=y +CONFIG_RFS_ACCEL=y +# CONFIG_RPIVID_MEM is not set +CONFIG_RPS=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_SCSI=y +CONFIG_SCSI_ISCSI_ATTRS=y +CONFIG_SCSI_MQ_DEFAULT=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_SERIAL_8250_BCM2835AUX=y +# CONFIG_SERIAL_8250_DMA is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SG_POOL=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPI=y +# CONFIG_SPI_BCM2835AUX is not set +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y +CONFIG_SPI_SLAVE=y +# CONFIG_SPI_SLAVE_SYSTEM_CONTROL is not set +# CONFIG_SPI_SLAVE_TIME is not set +CONFIG_SRCU=y +CONFIG_STMPE_I2C=y +CONFIG_STMPE_SPI=y +CONFIG_STREAM_PARSER=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWPHY=y +CONFIG_SWP_EMULATE=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +# CONFIG_TEXTSEARCH is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_OF=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +CONFIG_TTY_PRINTK=y +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UID16 is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_USB=y +CONFIG_USB_PCI=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_COMMON=y +CONFIG_USB_DWCOTG=y +# CONFIG_USB_EHCI_HCD is not set +CONFIG_USB_LAN78XX=y +CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_NET_SMSC95XX=y +CONFIG_USB_STORAGE=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_UAS=y +CONFIG_USB_USBNET=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PCI=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USE_OF=y +CONFIG_VDSO=y +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_WATCHDOG_CORE=y +CONFIG_XPS=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_ZBOOT_ROM_TEXT=0 diff --git a/root/target/linux/bcm27xx/bcm2711/config-5.4 b/root/target/linux/bcm27xx/bcm2710/config-4.14 similarity index 61% rename from root/target/linux/bcm27xx/bcm2711/config-5.4 rename to root/target/linux/bcm27xx/bcm2710/config-4.14 index 6292171a..f9efa9fe 100644 --- a/root/target/linux/bcm27xx/bcm2711/config-5.4 +++ b/root/target/linux/bcm27xx/bcm2710/config-4.14 @@ -3,77 +3,95 @@ CONFIG_64BIT=y CONFIG_ARCH_BCM2835=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_HAS_KCOV=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_ARCH_MMAP_RND_BITS=18 CONFIG_ARCH_MMAP_RND_BITS_MAX=24 CONFIG_ARCH_MMAP_RND_BITS_MIN=18 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +# CONFIG_ARCH_WANTS_THP_SWAP is not set +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARM64=y +# CONFIG_ARM64_16K_PAGES is not set CONFIG_ARM64_4K_PAGES=y -CONFIG_ARM64_CNP=y +# CONFIG_ARM64_64K_PAGES is not set CONFIG_ARM64_CONT_SHIFT=4 -CONFIG_ARM64_ERRATUM_1165522=y -CONFIG_ARM64_ERRATUM_1286807=y +# CONFIG_ARM64_CRYPTO is not set CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_827319=y CONFIG_ARM64_ERRATUM_832075=y CONFIG_ARM64_ERRATUM_843419=y +CONFIG_ARM64_ERRATUM_1024718=y CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_MODULE_PLTS=y +# CONFIG_ARM64_LSE_ATOMICS is not set +CONFIG_ARM64_MODULE_CMODEL_LARGE=y CONFIG_ARM64_PAGE_SHIFT=12 CONFIG_ARM64_PAN=y -CONFIG_ARM64_PA_BITS=48 -CONFIG_ARM64_PA_BITS_48=y -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_SSBD=y -CONFIG_ARM64_SVE=y -CONFIG_ARM64_TAGGED_ADDR_ABI=y +# CONFIG_ARM64_PMEM is not set +# CONFIG_ARM64_PTDUMP_CORE is not set +# CONFIG_ARM64_PTDUMP_DEBUGFS is not set +# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set +# CONFIG_ARM64_SW_TTBR0_PAN is not set CONFIG_ARM64_UAO=y CONFIG_ARM64_VA_BITS=39 CONFIG_ARM64_VA_BITS_39=y +# CONFIG_ARM64_VA_BITS_48 is not set CONFIG_ARM64_VHE=y -CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y -CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y +CONFIG_ARM64_SSBD=y CONFIG_ARM_AMBA=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -# CONFIG_ARM_BCM2835_CPUFREQ is not set +CONFIG_ARM_BCM2835_CPUFREQ=y CONFIG_ARM_GIC=y -CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y -CONFIG_ARM_GIC_V3_ITS=y -CONFIG_ARM_GIC_V3_ITS_PCI=y CONFIG_ARM_PSCI_FW=y -CONFIG_ARM_RASPBERRYPI_CPUFREQ=y -# CONFIG_ARM_SCMI_PROTOCOL is not set +# CONFIG_ARM_SP805_WATCHDOG is not set CONFIG_ARM_TIMER_SP804=y -CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BCM2708_VCMEM=y -CONFIG_BCM2711_THERMAL=y -CONFIG_BCM2835_DEVGPIOMEM=y +# CONFIG_BCM2835_DEVGPIOMEM is not set CONFIG_BCM2835_MBOX=y -CONFIG_BCM2835_POWER=y # CONFIG_BCM2835_SMI is not set -# CONFIG_BCM2835_THERMAL is not set +CONFIG_BCM2835_THERMAL=y CONFIG_BCM2835_VCHIQ=y -# CONFIG_BCM2835_VCHIQ_MMAL is not set +# CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP is not set CONFIG_BCM2835_WDT=y -CONFIG_BCM7XXX_PHY=y -CONFIG_BCMGENET=y -CONFIG_BCM_NET_PHYLIB=y -CONFIG_BCM_VCIO=y +# CONFIG_BCM_FLEXRM_MBOX is not set +# CONFIG_BCM_VCIO is not set # CONFIG_BCM_VC_SM is not set -# CONFIG_BCM_VC_SM_CMA is not set CONFIG_BCM_VIDEOCORE=y # CONFIG_BLK_DEV_INITRD is not set CONFIG_BLK_DEV_LOOP=y @@ -81,41 +99,37 @@ CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y CONFIG_BLK_SCSI_REQUEST=y CONFIG_BOUNCE=y CONFIG_BRCM_CHAR_DRIVERS=y -CONFIG_BROADCOM_PHY=y +CONFIG_BUILD_BIN2C=y CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23154=y CONFIG_CAVIUM_ERRATUM_27456=y -CONFIG_CAVIUM_TX2_ERRATUM_219=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKSRC_MMIO=y -CONFIG_CLK_BCM2835=y -CONFIG_CLK_RASPBERRYPI=y CONFIG_CLONE_BACKWARDS=y CONFIG_CMA=y CONFIG_CMA_ALIGNMENT=8 CONFIG_CMA_AREAS=7 # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=5 +CONFIG_CMA_SIZE_MBYTES=16 # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_MIN is not set # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_VERSATILE is not set CONFIG_COMMON_CLK_XGENE=y +# CONFIG_COMPAT is not set CONFIG_CONFIGFS_FS=y CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y +# CONFIG_CPUFREQ_DT is not set +# CONFIG_CPU_BIG_ENDIAN is not set CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y @@ -124,6 +138,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y @@ -133,85 +148,68 @@ CONFIG_CPU_RMAP=y CONFIG_CRC16=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CRC32=y CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CTR=y -CONFIG_CRYPTO_CTS=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_LIB_SHA256=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y -CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_XTS=y +CONFIG_CRYPTO_WORKQUEUE=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_INFO=y -CONFIG_DIMLIB=y -CONFIG_DMABUF_HEAPS=y -CONFIG_DMABUF_HEAPS_CMA=y -CONFIG_DMABUF_HEAPS_SYSTEM=y +CONFIG_DEFAULT_DUMMY=y +CONFIG_DEFAULT_SCHEDULER=y CONFIG_DMADEVICES=y CONFIG_DMA_BCM2708=y CONFIG_DMA_BCM2835=y CONFIG_DMA_CMA=y -CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_ENGINE=y +# CONFIG_DMA_NOOP_OPS is not set CONFIG_DMA_OF=y -CONFIG_DMA_REMAP=y -CONFIG_DMA_SHARED_BUFFER=y CONFIG_DMA_VIRTUAL_CHANNELS=y +# CONFIG_DMA_VIRT_OPS is not set CONFIG_DNOTIFY=y -CONFIG_DRM_RCAR_WRITEBACK=y +# CONFIG_DRM_LIB_RANDOM is not set CONFIG_DTC=y CONFIG_DUMMY_CONSOLE=y CONFIG_EDAC_SUPPORT=y CONFIG_ENABLE_MUST_CHECK=y +CONFIG_EXPORTFS=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -CONFIG_EXTCON=y +# CONFIG_F2FS_CHECK_FS is not set CONFIG_F2FS_FS=y +# CONFIG_F2FS_FS_SECURITY is not set +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_STAT_FS=y CONFIG_FB=y CONFIG_FB_BCM2708=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_CMDLINE=y +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set # CONFIG_FB_RPISENSE is not set -CONFIG_FB_SIMPLE=y +CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_FIXED_PHY=y CONFIG_FIX_EARLYCON_MEM=y -# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_FONTS is not set CONFIG_FONT_8x16=y CONFIG_FONT_8x8=y CONFIG_FONT_SUPPORT=y CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FRAME_POINTER=y CONFIG_FREEZER=y CONFIG_FSL_ERRATUM_A008585=y -CONFIG_FS_ENCRYPTION=y -CONFIG_FS_IOMAP=y CONFIG_FS_MBCACHE=y CONFIG_FS_POSIX_ACL=y -CONFIG_FUJITSU_ERRATUM_010001=y -CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_FUTEX_PI=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_GENERIC_ARCH_TOPOLOGY=y CONFIG_GENERIC_BUG=y @@ -219,20 +217,15 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_GENERIC_CSUM=y CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IO=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_IRQ_MULTI_HANDLER=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PINCONF=y CONFIG_GENERIC_PINCTRL_GROUPS=y CONFIG_GENERIC_PINMUX_FUNCTIONS=y @@ -243,25 +236,64 @@ CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_BCM_EXP=y CONFIG_GPIO_BCM_VIRT=y -# CONFIG_GPIO_FSM is not set -CONFIG_GPIO_RASPBERRYPI_EXP=y +CONFIG_GPIO_SYSFS=y +# CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_HAVE_ARM_SMCCC=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_CC_STACKPROTECTOR=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_BUGVERBOSE=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_GENERIC_GUP=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HOLES_IN_ZONE=y CONFIG_HOTPLUG_CPU=y +# CONFIG_HUGETLBFS is not set CONFIG_HW_CONSOLE=y -CONFIG_HW_RANDOM=y -# CONFIG_HW_RANDOM_BCM2835 is not set -CONFIG_HW_RANDOM_IPROC_RNG200=y -CONFIG_I2C=y -# CONFIG_I2C_BCM2708 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_BRCMSTB is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 @@ -270,18 +302,18 @@ CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_IOMMU_HELPER=y +CONFIG_IOSCHED_CFQ=y CONFIG_IRQCHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_WORK=y CONFIG_JBD2=y -CONFIG_KEYS=y +# CONFIG_LCD_CLASS_DEVICE is not set CONFIG_LEDS_GPIO=y -CONFIG_LEDS_TRIGGER_ACTPWR=y CONFIG_LEDS_TRIGGER_INPUT=y CONFIG_LIBFDT=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_LOGO=y CONFIG_LOGO_LINUX_CLUT224=y @@ -292,14 +324,11 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_MAILBOX=y # CONFIG_MAILBOX_TEST is not set CONFIG_MAX_RAW_DEVS=256 -CONFIG_MDIO_BCM_UNIMAC=y CONFIG_MDIO_BUS=y CONFIG_MDIO_DEVICE=y -CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_ISOLATION=y -CONFIG_MFD_CORE=y -# CONFIG_MFD_RPISENSE_CORE is not set CONFIG_MFD_SYSCON=y +CONFIG_MICROCHIP_PHY=y CONFIG_MIGRATION=y CONFIG_MMC=y CONFIG_MMC_BCM2835=y @@ -310,9 +339,6 @@ CONFIG_MMC_BCM2835_SDHOST=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_IPROC=y -# CONFIG_MMC_SDHCI_PCI is not set CONFIG_MMC_SDHCI_PLTFM=y CONFIG_MODULES_USE_ELF_RELA=y # CONFIG_MTD is not set @@ -322,12 +348,14 @@ CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NET_FLOW_LIMIT=y CONFIG_NLS=y CONFIG_NLS_ASCII=y -CONFIG_NOP_USB_XCEIV=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NO_BOOTMEM=y CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y +CONFIG_NO_IOPORT_MAP=y CONFIG_NR_CPUS=4 -CONFIG_NVMEM=y +# CONFIG_NUMA is not set CONFIG_OF=y CONFIG_OF_ADDRESS=y CONFIG_OF_CONFIGFS=y @@ -335,62 +363,54 @@ CONFIG_OF_DYNAMIC=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_FLATTREE=y CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_KOBJ=y CONFIG_OF_MDIO=y +CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_OVERLAY=y +CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_PADATA=y CONFIG_PARTITION_PERCPU=y -CONFIG_PCI=y -CONFIG_PCIEAER=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_BRCMSTB=y -CONFIG_PCIE_PME=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y +# CONFIG_PCI_DOMAINS is not set +# CONFIG_PCI_DOMAINS_GENERIC is not set +# CONFIG_PCI_SYSCALL is not set CONFIG_PGTABLE_LEVELS=3 CONFIG_PHYLIB=y CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_PHY_XGENE is not set CONFIG_PINCTRL=y CONFIG_PINCTRL_BCM2835=y CONFIG_PM=y CONFIG_PM_CLK=y +# CONFIG_PM_DEBUG is not set CONFIG_PM_GENERIC_DOMAINS=y CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_PM_GENERIC_DOMAINS_SLEEP=y -CONFIG_PM_OPP=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_POWER_RESET=y CONFIG_POWER_SUPPLY=y CONFIG_PRINTK_TIME=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_RAS=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PWM=y +CONFIG_PWM_BCM2835=y +CONFIG_PWM_SYSFS=y +# CONFIG_RANDOMIZE_BASE is not set CONFIG_RASPBERRYPI_FIRMWARE=y CONFIG_RASPBERRYPI_POWER=y CONFIG_RATIONAL=y -# CONFIG_RAVE_SP_CORE is not set CONFIG_RAW_DRIVER=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_RCU_STALL_COMMON=y -CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -CONFIG_RESET_CONTROLLER=y -CONFIG_RESET_SIMPLE=y CONFIG_RFS_ACCEL=y -CONFIG_RODATA_FULL_DEFAULT_ENABLED=y -# CONFIG_RPIVID_MEM is not set CONFIG_RPS=y CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_SCHED_INFO is not set CONFIG_SCSI=y # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_PROC_FS is not set @@ -403,9 +423,6 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=0 CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set -CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SG_POOL=y CONFIG_SMP=y @@ -429,7 +446,7 @@ CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_OF=y -CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THIN_ARCHIVES=y CONFIG_THREAD_INFO_IN_TASK=y CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_TIMER_OF=y @@ -438,23 +455,18 @@ CONFIG_TMPFS_POSIX_ACL=y CONFIG_TREE_RCU=y CONFIG_TREE_SRCU=y CONFIG_UEVENT_HELPER_PATH="" -CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_USB=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_COMMON=y CONFIG_USB_DWCOTG=y -CONFIG_USB_GADGET=y CONFIG_USB_LAN78XX=y +# CONFIG_USB_EHCI_HCD is not set CONFIG_USB_NET_DRIVERS=y -CONFIG_USB_PCI=y -CONFIG_USB_PHY=y +CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_STORAGE=y CONFIG_USB_SUPPORT=y CONFIG_USB_UAS=y -# CONFIG_USB_UHCI_HCD is not set -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_PCI=y -CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USB_USBNET=y CONFIG_VMAP_STACK=y CONFIG_VT=y CONFIG_VT_CONSOLE=y @@ -464,4 +476,17 @@ CONFIG_WATCHDOG_CORE=y CONFIG_XPS=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_BCJ=y -CONFIG_ZONE_DMA32=y \ No newline at end of file +CONFIG_MFD_RPISENSE_CORE=n +CONFIG_DRM_PANEL_LVDS=n +CONFIG_DRM_PANEL_INNOLUX_P079ZCA=n +CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=n +CONFIG_DRM_PANEL_SITRONIX_ST7789V=n +CONFIG_DRM_VC4_HDMI_CEC=n +CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=n +CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=n +CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=n +CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=n +CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=n +CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=n +CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=n +CONFIG_SND_SOC_ICS43432=n diff --git a/root/target/linux/bcm27xx/bcm2710/config-4.19 b/root/target/linux/bcm27xx/bcm2710/config-4.19 new file mode 100644 index 00000000..f8592d40 --- /dev/null +++ b/root/target/linux/bcm27xx/bcm2710/config-4.19 @@ -0,0 +1,545 @@ +CONFIG_64BIT=y +# CONFIG_AIO is not set +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_HAS_KCOV=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_INLINE_READ_LOCK=y +CONFIG_ARCH_INLINE_READ_LOCK_BH=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_READ_UNLOCK=y +CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_SPIN_LOCK=y +CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_WRITE_LOCK=y +CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=24 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_ARM64=y +# CONFIG_ARM64_16K_PAGES is not set +CONFIG_ARM64_4K_PAGES=y +# CONFIG_ARM64_64K_PAGES is not set +CONFIG_ARM64_CONT_SHIFT=4 +# CONFIG_ARM64_CRYPTO is not set +CONFIG_ARM64_ERRATUM_1024718=y +CONFIG_ARM64_ERRATUM_1463225=y +CONFIG_ARM64_ERRATUM_819472=y +CONFIG_ARM64_ERRATUM_824069=y +CONFIG_ARM64_ERRATUM_826319=y +CONFIG_ARM64_ERRATUM_827319=y +CONFIG_ARM64_ERRATUM_832075=y +CONFIG_ARM64_ERRATUM_843419=y +CONFIG_ARM64_HW_AFDBM=y +# CONFIG_ARM64_LSE_ATOMICS is not set +CONFIG_ARM64_MODULE_PLTS=y +CONFIG_ARM64_PAGE_SHIFT=12 +CONFIG_ARM64_PAN=y +CONFIG_ARM64_PA_BITS=48 +CONFIG_ARM64_PA_BITS_48=y +# CONFIG_ARM64_PMEM is not set +# CONFIG_ARM64_PTDUMP_DEBUGFS is not set +# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set +CONFIG_ARM64_SSBD=y +CONFIG_ARM64_SVE=y +# CONFIG_ARM64_SW_TTBR0_PAN is not set +CONFIG_ARM64_UAO=y +CONFIG_ARM64_VA_BITS=39 +CONFIG_ARM64_VA_BITS_39=y +# CONFIG_ARM64_VA_BITS_48 is not set +CONFIG_ARM64_VHE=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y +CONFIG_ARM_BCM2835_CPUFREQ=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_PSCI_FW=y +# CONFIG_ARM_SCMI_PROTOCOL is not set +# CONFIG_ARM_SP805_WATCHDOG is not set +CONFIG_ARM_TIMER_SP804=y +# CONFIG_AX88796B_PHY is not set +CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BCM2708_VCMEM=y +# CONFIG_BCM2835_DEVGPIOMEM is not set +CONFIG_BCM2835_MBOX=y +CONFIG_BCM2835_POWER=y +# CONFIG_BCM2835_SMI is not set +CONFIG_BCM2835_THERMAL=y +CONFIG_BCM2835_VCHIQ=y +CONFIG_BCM2835_VCHIQ_MMAL=y +CONFIG_BCM2835_WDT=y +# CONFIG_BCM_VCIO is not set +# CONFIG_BCM_VC_SM is not set +CONFIG_BCM_VIDEOCORE=y +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BRCMSTB_THERMAL=y +CONFIG_BUILD_BIN2C=y +CONFIG_CAVIUM_ERRATUM_22375=y +CONFIG_CAVIUM_ERRATUM_23154=y +CONFIG_CAVIUM_ERRATUM_27456=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_SIZE_MBYTES=16 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +CONFIG_COMMON_CLK=y +CONFIG_COMMON_CLK_XGENE=y +# CONFIG_COMPAT is not set +CONFIG_CONFIGFS_FS=y +CONFIG_CONSOLE_TRANSLATIONS=y +# CONFIG_CPUFREQ_DT is not set +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=y +# CONFIG_CPU_THERMAL is not set +CONFIG_CRC16=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +CONFIG_DEFAULT_MPTCP_PM="fullmesh" +CONFIG_DMADEVICES=y +CONFIG_DMA_BCM2708=y +CONFIG_DMA_BCM2835=y +CONFIG_DMA_CMA=y +CONFIG_DMA_DIRECT_OPS=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +CONFIG_DMA_SHARED_BUFFER=m +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DNOTIFY=y +CONFIG_DTC=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_EDAC_SUPPORT=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_F2FS_FS=y +# CONFIG_F2FS_FS_SECURITY is not set +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_STAT_FS=y +CONFIG_FB=y +CONFIG_FB_BCM2708=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CMDLINE=y +# CONFIG_FB_RPISENSE is not set +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_SUPPORT=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAME_POINTER=y +CONFIG_FREEZER=y +CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FS_IOMAP=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ARCH_TOPOLOGY=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_BCM_VIRT=y +CONFIG_GPIO_RASPBERRYPI_EXP=y +CONFIG_GPIO_SYSFS=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_HAVE_ARM_SMCCC=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_BUGVERBOSE=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_GENERIC_GUP=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HOLES_IN_ZONE=y +CONFIG_HOTPLUG_CPU=y +# CONFIG_HUGETLBFS is not set +CONFIG_HW_CONSOLE=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_INLINE_READ_LOCK=y +CONFIG_INLINE_READ_LOCK_BH=y +CONFIG_INLINE_READ_LOCK_IRQ=y +CONFIG_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_INLINE_READ_UNLOCK_BH=y +CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_SPIN_LOCK=y +CONFIG_INLINE_SPIN_LOCK_BH=y +CONFIG_INLINE_SPIN_LOCK_IRQ=y +CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_INLINE_SPIN_TRYLOCK=y +CONFIG_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_INLINE_SPIN_UNLOCK_BH=y +CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_WRITE_LOCK=y +CONFIG_INLINE_WRITE_LOCK_BH=y +CONFIG_INLINE_WRITE_LOCK_IRQ=y +CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_INLINE_WRITE_UNLOCK_BH=y +CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_INPUT=y +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_IOSCHED_CFQ=y +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_WORK=y +CONFIG_JBD2=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_INPUT=y +CONFIG_LIBFDT=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAILBOX=y +# CONFIG_MAILBOX_TEST is not set +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MDIO_BUS=y +CONFIG_MDIO_DEVICE=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_MFD_RPISENSE_CORE is not set +CONFIG_MFD_SYSCON=y +CONFIG_MICROCHIP_PHY=y +CONFIG_MIGRATION=y +CONFIG_MMC=y +CONFIG_MMC_BCM2835=y +CONFIG_MMC_BCM2835_DMA=y +CONFIG_MMC_BCM2835_MMC=y +CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 +CONFIG_MMC_BCM2835_SDHOST=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MODULES_USE_ELF_RELA=y +# CONFIG_MTD is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_IOPORT_MAP=y +CONFIG_NR_CPUS=4 +# CONFIG_NUMA is not set +CONFIG_NVMEM=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_CONFIGFS=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_MDIO=y +CONFIG_OF_NET=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_PADATA=y +CONFIG_PARTITION_PERCPU=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_PHYLIB=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_BCM2835=y +CONFIG_PLUGIN_HOSTCC="g++" +CONFIG_PM=y +CONFIG_PM_CLK=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_POWER_RESET=y +CONFIG_POWER_SUPPLY=y +CONFIG_PRINTK_TIME=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PWM=y +CONFIG_PWM_BCM2835=y +CONFIG_PWM_SYSFS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +# CONFIG_RANDOMIZE_BASE is not set +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_RASPBERRYPI_POWER=y +CONFIG_RATIONAL=y +CONFIG_RAW_DRIVER=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_REFCOUNT_FULL=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_RFS_ACCEL=y +# CONFIG_RPIVID_MEM is not set +CONFIG_RPS=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_SCSI=y +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_SCSI_PROC_FS is not set +# CONFIG_SENSORS_RASPBERRYPI_HWMON is not set +CONFIG_SERIAL_8250_BCM2835AUX=y +# CONFIG_SERIAL_8250_DMA is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SG_POOL=y +CONFIG_SMP=y +# CONFIG_SND_AUDIOSENSE_PI is not set +# CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC is not set +# CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M is not set +# CONFIG_SND_RPI_SIMPLE_SOUNDCARD is not set +# CONFIG_SND_RPI_WM8804_SOUNDCARD is not set +# CONFIG_SND_SOC_AD193X_SPI is not set +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSE_IRQ=y +CONFIG_SRCU=y +CONFIG_STREAM_PARSER=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWIOTLB=y +CONFIG_SWPHY=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +# CONFIG_TEXTSEARCH is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_OF=y +CONFIG_THREAD_INFO_IN_TASK=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TOUCHSCREEN_RPI_FT5406 is not set +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_UNMAP_KERNEL_AT_EL0=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_COMMON=y +CONFIG_USB_DWCOTG=y +# CONFIG_USB_EHCI_HCD is not set +CONFIG_USB_LAN78XX=y +CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_NET_SMSC95XX=y +CONFIG_USB_STORAGE=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_UAS=y +CONFIG_USB_USBNET=y +# CONFIG_VIDEO_CODEC_BCM2835 is not set +CONFIG_VMAP_STACK=y +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_WATCHDOG_CORE=y +CONFIG_XPS=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_ZONE_DMA32=y diff --git a/root/target/linux/bcm27xx/bcm2711/config-4.19 b/root/target/linux/bcm27xx/bcm2711/config-4.19 new file mode 100644 index 00000000..b1691271 --- /dev/null +++ b/root/target/linux/bcm27xx/bcm2711/config-4.19 @@ -0,0 +1,667 @@ +CONFIG_64BIT=y +# CONFIG_AIO is not set +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_HAS_KCOV=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_ARCH_HAS_PHYS_TO_DMA=y +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_INLINE_READ_LOCK=y +CONFIG_ARCH_INLINE_READ_LOCK_BH=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_READ_UNLOCK=y +CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_SPIN_LOCK=y +CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y +CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_INLINE_WRITE_LOCK=y +CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=24 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_ARGON_MEM=y +CONFIG_ARM64=y +# CONFIG_ARM64_16K_PAGES is not set +CONFIG_ARM64_4K_PAGES=y +# CONFIG_ARM64_64K_PAGES is not set +CONFIG_ARM64_CONT_SHIFT=4 +CONFIG_ARM64_CRYPTO=y +CONFIG_ARM64_ERRATUM_1024718=y +CONFIG_ARM64_ERRATUM_1463225=y +CONFIG_ARM64_ERRATUM_819472=y +CONFIG_ARM64_ERRATUM_824069=y +CONFIG_ARM64_ERRATUM_826319=y +CONFIG_ARM64_ERRATUM_827319=y +CONFIG_ARM64_ERRATUM_832075=y +CONFIG_ARM64_ERRATUM_843419=y +CONFIG_ARM64_HW_AFDBM=y +# CONFIG_ARM64_LSE_ATOMICS is not set +CONFIG_ARM64_MODULE_PLTS=y +CONFIG_ARM64_PAGE_SHIFT=12 +CONFIG_ARM64_PAN=y +CONFIG_ARM64_PA_BITS=48 +CONFIG_ARM64_PA_BITS_48=y +# CONFIG_ARM64_PMEM is not set +# CONFIG_ARM64_PTDUMP_DEBUGFS is not set +# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set +CONFIG_ARM64_SSBD=y +CONFIG_ARM64_SVE=y +# CONFIG_ARM64_SW_TTBR0_PAN is not set +CONFIG_ARM64_UAO=y +CONFIG_ARM64_VA_BITS=39 +CONFIG_ARM64_VA_BITS_39=y +# CONFIG_ARM64_VA_BITS_48 is not set +CONFIG_ARM64_VHE=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y +CONFIG_ARM_BCM2835_CPUFREQ=y +CONFIG_ARM_CRYPTO=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_V2M=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_ARM_HEAVY_MB=y +CONFIG_ARM_LPAE=y +CONFIG_ARM_PSCI_FW=y +CONFIG_ARM_MODULE_PLTS=y +# CONFIG_ARM_SCMI_PROTOCOL is not set +# CONFIG_ARM_SP805_WATCHDOG is not set +CONFIG_ARM_TIMER_SP804=y +# CONFIG_AX88796B_PHY is not set +CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BCM2708_VCMEM=y +CONFIG_BCM2835_DEVGPIOMEM=y +CONFIG_BCM2835_MBOX=y +CONFIG_BCM2835_POWER=y +# CONFIG_BCM2835_SMI is not set +CONFIG_BCM2835_THERMAL=y +CONFIG_BCM2835_VCHIQ=y +CONFIG_BCM2835_VCHIQ_MMAL=y +CONFIG_BCM2835_WDT=y +CONFIG_BCM7XXX_PHY=y +CONFIG_BCMGENET=y +CONFIG_BCM_NET_PHYLIB=y +CONFIG_BCM_VCIO=y +# CONFIG_BCM_VC_SM is not set +CONFIG_BCM_VC_SM_CMA=y +CONFIG_BCM_VIDEOCORE=y +CONFIG_BLK_DEBUG_FS=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_DM is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BOUNCE=y +CONFIG_BRCMSTB_THERMAL=y +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BROADCOM_PHY=y +CONFIG_BUILD_BIN2C=y +CONFIG_CACHE_L2X0=y +CONFIG_CAVIUM_ERRATUM_22375=y +CONFIG_CAVIUM_ERRATUM_23154=y +CONFIG_CAVIUM_ERRATUM_27456=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_SIZE_MBYTES=5 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +CONFIG_COMMON_CLK=y +CONFIG_COMMON_CLK_XGENE=y +CONFIG_COMPAT=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_CONFIGFS_FS=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_CP15_BARRIER_EMULATION=y +# CONFIG_CPUFREQ_DT is not set +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=y +# CONFIG_CPU_THERMAL is not set +CONFIG_CRC16=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AES_ARM64=y +CONFIG_CRYPTO_AES_ARM64_BS=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_CHACHA20=y +CONFIG_CRYPTO_CHACHA20_NEON=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32_ARM64_CE=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA256_ARM64=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_SHA3=y +CONFIG_CRYPTO_SHA3_ARM64=y +CONFIG_CRYPTO_SHA512_ARM64=y +CONFIG_CRYPTO_SHA512_ARM64_CE=y +CONFIG_CRYPTO_SIMD=y +CONFIG_CRYPTO_SM3=y +CONFIG_CRYPTO_SM3_ARM64_CE=y +CONFIG_CRYPTO_SM4=y +CONFIG_CRYPTO_SM4_ARM64_CE=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MPTCP_PM="fullmesh" +CONFIG_DEVMEM=y +CONFIG_DMADEVICES=y +CONFIG_DMA_BCM2708=y +CONFIG_DMA_BCM2835=y +CONFIG_DMA_CMA=y +CONFIG_DMA_DIRECT_OPS=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DNOTIFY=y +CONFIG_DTC=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_EDAC_SUPPORT=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_FB=y +CONFIG_FB_BCM2708=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CMDLINE=y +# CONFIG_FB_RPISENSE is not set +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_SUPPORT=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAME_POINTER=y +CONFIG_FREEZER=y +CONFIG_FIXED_PHY=y +CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FS_IOMAP=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ARCH_TOPOLOGY=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_BCM_VIRT=y +CONFIG_GPIO_RASPBERRYPI_EXP=y +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_SYSFS=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_HAVE_ARM_SMCCC=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_BUGVERBOSE=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_GENERIC_GUP=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UID16=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_BCM2835=y +CONFIG_HW_RANDOM_IPROC_RNG200=y +CONFIG_HOLES_IN_ZONE=y +CONFIG_HOTPLUG_CPU=y +# CONFIG_HUGETLBFS is not set +CONFIG_HW_CONSOLE=y +CONFIG_I2C=y +# CONFIG_I2C_BCM2708 is not set +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_HELPER_AUTO=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_INLINE_READ_LOCK=y +CONFIG_INLINE_READ_LOCK_BH=y +CONFIG_INLINE_READ_LOCK_IRQ=y +CONFIG_INLINE_READ_LOCK_IRQSAVE=y +CONFIG_INLINE_READ_UNLOCK_BH=y +CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_SPIN_LOCK=y +CONFIG_INLINE_SPIN_LOCK_BH=y +CONFIG_INLINE_SPIN_LOCK_IRQ=y +CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y +CONFIG_INLINE_SPIN_TRYLOCK=y +CONFIG_INLINE_SPIN_TRYLOCK_BH=y +CONFIG_INLINE_SPIN_UNLOCK_BH=y +CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y +CONFIG_INLINE_WRITE_LOCK=y +CONFIG_INLINE_WRITE_LOCK_BH=y +CONFIG_INLINE_WRITE_LOCK_IRQ=y +CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y +CONFIG_INLINE_WRITE_UNLOCK_BH=y +CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y +CONFIG_INPUT=y +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_IOSCHED_CFQ=y +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_WORK=y +CONFIG_JBD2=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGER_INPUT=y +CONFIG_LIBFDT=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAILBOX=y +# CONFIG_MAILBOX_TEST is not set +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MD=y +CONFIG_MDIO_BCM_UNIMAC=y +CONFIG_MDIO_BUS=y +CONFIG_MDIO_DEVICE=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_MFD_CORE=y +# CONFIG_MFD_RPISENSE_CORE is not set +CONFIG_MFD_STMPE=y +CONFIG_MFD_SYSCON=y +CONFIG_MICROCHIP_PHY=y +CONFIG_MIGRATION=y +CONFIG_MMC=y +# CONFIG_MMC_BCM2835 is not set +CONFIG_MMC_BCM2835_DMA=y +CONFIG_MMC_BCM2835_MMC=y +CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 +CONFIG_MMC_BCM2835_SDHOST=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_IPROC=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_TIFM_SD is not set +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_MTD_BLOCK2MTD=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_BLOCK is not set +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=4 +# CONFIG_NUMA is not set +CONFIG_NVMEM=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_CONFIGFS=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_MDIO=y +CONFIG_OF_NET=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_PADATA=y +CONFIG_PARTITION_PERCPU=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIE_BRCMSTB=y +CONFIG_PCIE_PME=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_PHYLIB=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_BCM2835=y +CONFIG_PLUGIN_HOSTCC="g++" +CONFIG_PM=y +CONFIG_PM_CLK=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_SUPPLY=y +CONFIG_PRINTK_TIME=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PWM=y +CONFIG_PWM_BCM2835=y +# CONFIG_PWM_STMPE is not set +CONFIG_PWM_SYSFS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +# CONFIG_RANDOMIZE_BASE is not set +CONFIG_RAS=y +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_RASPBERRYPI_POWER=y +CONFIG_RATIONAL=y +CONFIG_RAW_DRIVER=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_REFCOUNT_FULL=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_RESET_CONTROLLER=y +CONFIG_RFS_ACCEL=y +# CONFIG_RPIVID_MEM is not set +CONFIG_RPS=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_SCSI=y +CONFIG_SCSI_ISCSI_ATTRS=y +# CONFIG_SCSI_LOWLEVEL is not set +CONFIG_SCSI_MQ_DEFAULT=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_SERIAL_8250_BCM2835AUX=y +# CONFIG_SERIAL_8250_DMA is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=0 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_DEV_BUS=y +# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SETEND_EMULATION=y +CONFIG_SG_POOL=y +CONFIG_SMP=y +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSE_IRQ=y +CONFIG_SPI=y +# CONFIG_SPI_BCM2835AUX is not set +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y +CONFIG_SPI_SLAVE=y +# CONFIG_SPI_SLAVE_SYSTEM_CONTROL is not set +# CONFIG_SPI_SLAVE_TIME is not set +CONFIG_SRCU=y +CONFIG_STMPE_I2C=y +CONFIG_STMPE_SPI=y +CONFIG_STREAM_PARSER=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWIOTLB=y +CONFIG_SWPHY=y +CONFIG_SWP_EMULATION=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +# CONFIG_TEXTSEARCH is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_OF=y +CONFIG_THREAD_INFO_IN_TASK=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TI_ST=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +# CONFIG_UBIFS_FS is not set +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_UNMAP_KERNEL_AT_EL0=y +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_COMMON=y +CONFIG_USB_DWCOTG=y +# CONFIG_USB_EHCI_HCD is not set +CONFIG_USB_LAN78XX=y +CONFIG_USB_NET_DRIVERS=y +CONFIG_USB_NET_SMSC95XX=y +CONFIG_USB_PCI=y +CONFIG_USB_STORAGE=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_UAS=y +CONFIG_USB_USBNET=y +# CONFIG_USB_UHCI_HCD is not set +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PCI=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_VMAP_STACK=y +CONFIG_VDSO=y +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_WATCHDOG_CORE=y +CONFIG_XPS=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_ZONE_DMA32=y diff --git a/root/target/linux/generic/config-5.14 b/root/target/linux/generic/config-5.14 index 919b169a..b1d3024e 100644 --- a/root/target/linux/generic/config-5.14 +++ b/root/target/linux/generic/config-5.14 @@ -7288,4 +7288,4 @@ ZRAM_DEF_COMP_LZORLE=y # CONFIG_ZRAM_DEF_COMP_LZO is not set # CONFIG_ZRAM_MEMORY_TRACKING is not set # CONFIG_ZSMALLOC is not set -# CONFIG_ZX_TDM is not set \ No newline at end of file +# CONFIG_ZX_TDM is not set diff --git a/root/target/linux/ipq40xx/base-files/etc/board.d/01_leds b/root/target/linux/ipq40xx/base-files/etc/board.d/01_leds deleted file mode 100644 index a2a69eae..00000000 --- a/root/target/linux/ipq40xx/base-files/etc/board.d/01_leds +++ /dev/null @@ -1,96 +0,0 @@ -# -# Copyright (C) 2015 OpenWrt.org -# - -. /lib/functions/uci-defaults.sh - -board_config_update - -board=$(board_name) - -case "$board" in -alfa-network,ap120c-ac) - ucidef_set_led_netdev "wan" "WAN" "amber:wan" "eth1" - ;; -asus,rt-ac58u) - ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1" - ucidef_set_led_switch "lan" "LAN" "blue:lan" "switch0" "0x1e" - ;; -avm,fritzbox-4040) - ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt" "phy1tpt" - ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1" - ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x1e" - ;; -avm,fritzbox-7530 |\ -glinet,gl-b1300) - ucidef_set_led_wlan "wlan" "WLAN" "green:wlan" "phy0tpt" - ;; -edgecore,oap100) - ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wlan5g" "phy1tpt" - ;; -engenius,eap1300) - ucidef_set_led_netdev "lan" "LAN" "blue:lan" "eth0" - ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN5G" "yellow:wlan5g" "phy1tpt" - ucidef_set_led_default "mesh" "MESH" "blue:mesh" "0" - ;; -engenius,eap2200) - ucidef_set_led_netdev "lan1" "LAN1" "blue:lan1" "eth0" - ucidef_set_led_netdev "lan2" "LAN2" "blue:lan2" "eth1" - ;; -engenius,ens620ext) - ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy1tpt" - ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth0" - ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth1" - ;; -mobipromo,cm520-79f) - ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1" - ucidef_set_led_switch "lan1" "LAN1" "blue:lan1" "switch0" "0x10" - ucidef_set_led_switch "lan2" "LAN2" "blue:lan2" "switch0" "0x08" - ;; -pangu,l1000) - ucidef_set_led_default "power" "POWER" "blue:power" "1" - ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wlan5g" "phy1tpt" - ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1" - ucidef_set_led_netdev "4g1" "4g1" "blue:4g1" "4g1" - ucidef_set_led_netdev "4g2" "4g2" "blue:4g2" "4g2" - ucidef_set_led_netdev "4g3" "4g3" "blue:4g3" "4g3" - ;; -zbt,z4019) - ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan0" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan1" "phy1tpt" - ucidef_set_led_netdev "wwan0" "4G" "green:4g" "wwan0" - ucidef_set_led_netdev "wwan1" "4G1" "green:4g2" "wwan1" - ucidef_set_led_netdev "wwan2" "4G2" "green:4g3" "wwan2" - ;; -8dev,jalapeno) - ucidef_set_led_default "power" "POWER" "blue:power" "1" - ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wlan2g" "phy0tpt" - ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1" - ucidef_set_led_netdev "4g1" "4g1" "blue:4g1" "4g1" - ucidef_set_led_netdev "4g2" "4g2" "blue:4g2" "4g2" - ucidef_set_led_netdev "4g3" "4g3" "blue:4g3" "4g3" - ;; -netgear,ex6100v2 |\ -netgear,ex6150v2) - ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:router" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:client" "phy1tpt" - ;; -qxwlan,e2600ac-c1 |\ -qxwlan,e2600ac-c2) - ucidef_set_led_wlan "wlan2g" "WLAN0" "green:wlan0" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN1" "green:wlan1" "phy1tpt" - ;; -zyxel,nbg6617 |\ -zyxel,wre6606) - ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy0tpt" - ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy1tpt" - ;; -esac - -board_config_flush - -exit 0 \ No newline at end of file diff --git a/root/target/linux/ipq40xx/base-files/etc/board.d/02_network b/root/target/linux/ipq40xx/base-files/etc/board.d/02_network index 0752f8be..0ac8b59a 100755 --- a/root/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/root/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -1,3 +1,4 @@ +#!/bin/sh # # Copyright (c) 2015 The Linux Foundation. All rights reserved. # Copyright (c) 2011-2015 OpenWrt.org @@ -15,10 +16,7 @@ ipq40xx_setup_interfaces() 8dev,jalapeno|\ alfa-network,ap120c-ac|\ engenius,emr3500|\ - engenius,ens620ext|\ - luma,wrtq-329acn|\ - plasmacloud,pa1200|\ - plasmacloud,pa2200) + engenius,ens620ext) ucidef_set_interfaces_lan_wan "eth0" "eth1" ;; aruba,ap-303|\ @@ -40,13 +38,13 @@ ipq40xx_setup_interfaces() ;; asus,map-ac2200|\ cilab,meshpoint-one|\ - edgecore,ecw5211|\ - edgecore,oap100|\ openmesh,a42|\ openmesh,a62) ucidef_set_interfaces_lan_wan "eth1" "eth0" ;; asus,rt-ac58u|\ + p2w,r619ac-128m|\ + p2w,r619ac|\ zyxel,nbg6617) ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "switch0" \ @@ -54,9 +52,7 @@ ipq40xx_setup_interfaces() ;; avm,fritzbox-4040|\ linksys,ea6350v3|\ - pangu,l1000|\ - linksys,ea8300|\ - linksys,mr8300) + linksys,ea8300) ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "switch0" \ "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" @@ -65,10 +61,7 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" ;; - avm,fritzrepeater-3000) - ucidef_add_switch "switch0" \ - "0u@eth0" "4:lan:1" "5:lan:2" - ;; + avm,fritzrepeater-3000|\ compex,wpj419|\ compex,wpj428|\ engenius,eap2200) @@ -84,15 +77,11 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0u@eth0" "3:lan" "4:lan" ;; - devolo,magic-2-wifi-next) - ucidef_set_interface_lan "eth0 eth1 eth2" - ;; ezviz,cs-w3-wd1200g-eup) ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "switch0" \ "0u@eth0" "2:lan:3" "3:lan:2" "4:lan:1" "0u@eth1" "5:wan" ;; - glinet,gl-ap1300 |\ glinet,gl-b1300 |\ glinet,gl-s1300) ucidef_set_interfaces_lan_wan "eth0" "eth1" @@ -110,11 +99,6 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0u@eth0" "3:lan" "4:lan" "0u@eth1" "5:wan" ;; - zbt,z4019) - ucidef_set_interfaces_lan_wan "eth0" "eth1" - ucidef_add_switch "switch0" \ - "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" - ;; unielec,u4019-32m) ucidef_set_interfaces_lan_wan "eth0" "eth1" ucidef_add_switch "switch0" \ @@ -137,7 +121,9 @@ ipq40xx_setup_macs() 8dev,habanero-dvk) label_mac=$(mtd_get_mac_binary "ART" 0x1006) ;; - asus,rt-ac58u) + 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) @@ -146,10 +132,6 @@ ipq40xx_setup_macs() cilab,meshpoint-one) label_mac=$(mtd_get_mac_binary "ART" 0x1006) ;; - devolo,magic-2-wifi-next) - lan_mac=$(mtd_get_mac_ascii APPSBLENV MacAddress0) - label_mac=$lan_mac - ;; dlink,dap-2610) lan_mac=$(mtd_get_mac_ascii bdcfg lanmac) label_mac=$lan_mac @@ -164,10 +146,6 @@ ipq40xx_setup_macs() lan_mac=$(mtd_get_mac_ascii 0:APPSBLENV ethaddr) label_mac=$wan_mac ;; - zbt,z4019) - wan_mac=$(mtd_get_mac_binary "0:ART" 0x0) - lan_mac=$(mtd_get_mac_binary "0:ART" 0x6) - ;; engenius,ens620ext) wan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) lan_mac=$(macaddr_add "$wan_mac" 1) @@ -192,4 +170,4 @@ ipq40xx_setup_interfaces $board ipq40xx_setup_macs $board board_config_flush -exit 0 \ No newline at end of file +exit 0 diff --git a/root/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches b/root/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches deleted file mode 100755 index a15f60b8..00000000 --- a/root/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches +++ /dev/null @@ -1,24 +0,0 @@ -. /lib/functions/uci-defaults.sh - -board_config_update - -board=$(board_name) - -case "$board" in -cellc,rtl30vw) - ucidef_add_gpio_switch "w_disable" "W_DISABLE mPCIE pin" "398" "1" - ucidef_add_gpio_switch "pmd_resin_n" "PMD_RESIN_N pin" "399" "1" - ucidef_add_gpio_switch "mcpie_vcc" "LTE power" "400" "0" - ucidef_add_gpio_switch "usb_vcc" "USB power" "401" "0" - ;; -cilab,meshpoint-one) - ucidef_add_gpio_switch "poe_passtrough" "POE passtrough enable" "413" "1" - ;; -compex,wpj428) - ucidef_add_gpio_switch "sim_card_select" "SIM card select" "3" "0" - ;; -esac - -board_config_flush - -exit 0 \ No newline at end of file diff --git a/root/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/root/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index f073af48..4b69c79f 100755 --- a/root/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/root/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -12,7 +12,7 @@ case "$FIRMWARE" 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) + ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) +1) ;; esac ;; @@ -36,12 +36,10 @@ case "$FIRMWARE" in ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x32) ;; engenius,eap2200 |\ - openmesh,a62 |\ - plasmacloud,pa2200) + openmesh,a62) caldata_extract "0:ART" 0x9000 0x2f20 ;; - linksys,ea8300 |\ - linksys,mr8300) + 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)) @@ -55,11 +53,12 @@ case "$FIRMWARE" in alfa-network,ap120c-ac |\ cilab,meshpoint-one |\ ezviz,cs-w3-wd1200g-eup |\ - glinet,gl-ap1300 |\ glinet,gl-b1300 |\ glinet,gl-s1300 |\ linksys,ea6350v3 |\ mobipromo,cm520-79f |\ + p2w,r619ac-128m |\ + p2w,r619ac |\ qcom,ap-dk01.1-c1) caldata_extract "ART" 0x1000 0x2f20 ;; @@ -96,24 +95,15 @@ case "$FIRMWARE" in cellc,rtl30vw |\ compex,wpj419 |\ compex,wpj428 |\ - edgecore,ecw5211 |\ - edgecore,oap100 |\ engenius,eap1300 |\ engenius,eap2200 |\ - luma,wrtq-329acn|\ openmesh,a42 |\ openmesh,a62 |\ - plasmacloud,pa1200 |\ - plasmacloud,pa2200 |\ qxwlan,e2600ac-c1 |\ qxwlan,e2600ac-c2 |\ unielec,u4019-32m) caldata_extract "0:ART" 0x1000 0x2f20 ;; - devolo,magic-2-wifi-next) - caldata_extract "ART" 0x1000 0x2f20 - ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress0) - ;; dlink,dap-2610) caldata_extract "ART" 0x1000 0x2f20 ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac) @@ -128,45 +118,27 @@ case "$FIRMWARE" in ;; engenius,ens620ext) caldata_extract "ART" 0x1000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) 2) + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +2) ;; - linksys,ea8300 |\ - linksys,mr8300) - caldata_extract "ART" 0x1000 0x2f20 - ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2) - ;; - pangu,l1000) + 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) - ;; - mikrotik,hap-ac2) - wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data" - ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x0 0x2f20 ) || \ - ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_0" 0x0 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) ;; - netgear,wac510) - caldata_extract "0:ART" 0x1000 0x2f20 - ath10k_patch_mac $(mtd_get_mac_binary "0:MANUDATA" 0x6) - ;; zyxel,nbg6617 |\ zyxel,wre6606) caldata_extract "ART" 0x1000 0x2f20 ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -2) ;; - zbt,z4019) - caldata_extract "0:ART" 0x1000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:ART" 0x6) +1) - ;; esac ;; "ath10k/pre-cal-ahb-a800000.wifi.bin") @@ -176,11 +148,12 @@ case "$FIRMWARE" in alfa-network,ap120c-ac |\ cilab,meshpoint-one |\ ezviz,cs-w3-wd1200g-eup |\ - glinet,gl-ap1300 |\ glinet,gl-b1300 |\ glinet,gl-s1300 |\ linksys,ea6350v3 |\ mobipromo,cm520-79f |\ + p2w,r619ac-128m |\ + p2w,r619ac |\ qcom,ap-dk01.1-c1) caldata_extract "ART" 0x5000 0x2f20 ;; @@ -188,7 +161,7 @@ case "$FIRMWARE" in aruba,ap-303h |\ aruba,ap-365) caldata_extract "ART" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary mfginfo 0x1D) 1) + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary mfginfo 0x1D) +1) ;; asus,map-ac2200) caldata_extract_ubi "Factory" 0x5000 0x2f20 @@ -217,81 +190,53 @@ case "$FIRMWARE" in cellc,rtl30vw |\ compex,wpj419 |\ compex,wpj428 |\ - edgecore,ecw5211 |\ - edgecore,oap100 |\ engenius,eap1300 |\ engenius,eap2200 |\ - luma,wrtq-329acn|\ openmesh,a42 |\ openmesh,a62 |\ - plasmacloud,pa1200 |\ - plasmacloud,pa2200 |\ qxwlan,e2600ac-c1 |\ qxwlan,e2600ac-c2 |\ unielec,u4019-32m) caldata_extract "0:ART" 0x5000 0x2f20 ;; - devolo,magic-2-wifi-next) - caldata_extract "ART" 0x5000 0x2f20 - ath10k_patch_mac $(mtd_get_mac_ascii APPSBLENV WiFiMacAddress1) - ;; dlink,dap-2610) caldata_extract "ART" 0x5000 0x2f20 ath10k_patch_mac $(mtd_get_mac_ascii bdcfg wlanmac_a) ;; engenius,emd1) caldata_extract "0:ART" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii 0:APPSBLENV wlanaddr) 1) + 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) + 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) + ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +3) ;; - linksys,ea8300 |\ - linksys,mr8300) - caldata_extract "ART" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3) - ;; - pangu,l1000) + 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) - ;; - mikrotik,hap-ac2|\ - mikrotik,sxtsq-5-ac) - wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data" - ( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x8000 0x2f20 ) || \ - ( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_2" 0x0 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) ;; - netgear,wac510) - caldata_extract "0:ART" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:MANUDATA" 0x6) 16) - ;; zyxel,nbg6617 |\ zyxel,wre6606) caldata_extract "ART" 0x5000 0x2f20 ath10k_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1) ;; - zbt,z4019) - caldata_extract "0:ART" 0x5000 0x2f20 - ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:ART" 0x6) +2) - ;; esac ;; *) exit 1 ;; -esac \ No newline at end of file +esac diff --git a/root/target/linux/ipq40xx/base-files/etc/init.d/set-irq-affinity b/root/target/linux/ipq40xx/base-files/etc/init.d/set-irq-affinity deleted file mode 100755 index 910f661b..00000000 --- a/root/target/linux/ipq40xx/base-files/etc/init.d/set-irq-affinity +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=99 - -start() { - mask=4 - for rps in /sys/class/net/eth0/queues/rx-* - do - echo "$mask" > "$rps/rps_cpus" - done - for irq in $(grep -F "ath10k_ahb" /proc/interrupts | cut -d: -f1 | sed 's, *,,') - do - echo "$mask" > "/proc/irq/$irq/smp_affinity" - mask=8 - done - - mask=2 - for irq in $(grep -F "edma_eth_rx" /proc/interrupts | cut -d: -f1 | sed 's, *,,') - do - echo "$mask" > "/proc/irq/$irq/smp_affinity" - done -} \ No newline at end of file diff --git a/root/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh b/root/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh deleted file mode 100755 index de09d34a..00000000 --- a/root/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh +++ /dev/null @@ -1,122 +0,0 @@ -linksys_get_target_firmware() { - local cur_boot_part mtd_ubi0 - - cur_boot_part="$(/usr/sbin/fw_printenv -n boot_part)" - if [ -z "${cur_boot_part}" ]; then - mtd_ubi0=$(cat /sys/devices/virtual/ubi/ubi0/mtd_num) - case "$(grep -E "^mtd${mtd_ubi0}:" /proc/mtd | cut -d '"' -f 2)" in - kernel|rootfs) - cur_boot_part=1 - ;; - alt_kernel|alt_rootfs) - cur_boot_part=2 - ;; - esac - >&2 printf "Current boot_part='%s' selected from ubi0/mtd_num='%s'" \ - "${cur_boot_part}" "${mtd_ubi0}" - fi - - # OEM U-Boot for EA6350v3, EA8300 and MR8300; bootcmd= - # if test $auto_recovery = no; - # then bootipq; - # elif test $boot_part = 1; - # then run bootpart1; - # else run bootpart2; - # fi - - case "$cur_boot_part" in - 1) - fw_setenv -s - <<-EOF - boot_part 2 - auto_recovery yes - EOF - printf "alt_kernel" - return - ;; - 2) - fw_setenv -s - <<-EOF - boot_part 1 - auto_recovery yes - EOF - printf "kernel" - return - ;; - *) - return - ;; - esac -} - -linksys_get_root_magic() { - (get_image "$@" | dd skip=786432 bs=4 count=1 | hexdump -v -n 4 -e '1/1 "%02x"') 2>/dev/null -} - -platform_do_upgrade_linksys() { - local magic_long="$(get_magic_long "$1")" - - local rm_oem_fw_vols="squashfs ubifs" # from OEM [alt_]rootfs UBI - local vol - - mkdir -p /var/lock - local part_label="$(linksys_get_target_firmware)" - touch /var/lock/fw_printenv.lock - - if [ -z "$part_label" ]; then - echo "cannot find target partition" - exit 1 - fi - - local target_mtd=$(find_mtd_part "$part_label") - - [ "$magic_long" = "73797375" ] && { - CI_KERNPART="$part_label" - if [ "$part_label" = "kernel" ]; then - CI_UBIPART="rootfs" - else - CI_UBIPART="alt_rootfs" - fi - - local mtdnum="$(find_mtd_index "$CI_UBIPART")" - if [ ! "$mtdnum" ]; then - echo "cannot find ubi mtd partition $CI_UBIPART" - return 1 - fi - - local ubidev="$(nand_find_ubi "$CI_UBIPART")" - if [ ! "$ubidev" ]; then - ubiattach -m "$mtdnum" - sync - ubidev="$(nand_find_ubi "$CI_UBIPART")" - fi - - if [ "$ubidev" ]; then - for vol in $rm_oem_fw_vols; do - ubirmvol "/dev/$ubidev" -N "$vol" 2>/dev/null - done - fi - - # complete std upgrade - nand_upgrade_tar "$1" - } - - [ "$magic_long" = "27051956" ] && { - # This magic is for a uImage (which is a sysupgrade image) - # check firmwares' rootfs types - local oldroot="$(linksys_get_root_magic "$target_mtd")" - local newroot="$(linksys_get_root_magic "$1")" - - if [ "$newroot" = "55424923" ] && [ "$oldroot" = "55424923" ]; then - # we're upgrading from a firmware with UBI to one with UBI - # erase everything to be safe - # - Is that really needed? Won't remove (or comment) the if, - # because it may be needed in a future device. - #mtd erase $part_label - #get_image "$1" | mtd -n write - $part_label - echo "writing \"$1\" UBI image to \"$part_label\" (UBI)..." - get_image "$1" | mtd write - "$part_label" - else - echo "writing \"$1\" image to \"$part_label\"" - get_image "$1" | mtd write - "$part_label" - fi - } -} diff --git a/root/target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh b/root/target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh deleted file mode 100755 index 8e02186e..00000000 --- a/root/target/linux/ipq40xx/base-files/lib/upgrade/openmesh.sh +++ /dev/null @@ -1,106 +0,0 @@ -# The U-Boot loader of the OpenMesh devices requires image sizes and -# checksums to be provided in the U-Boot environment. -# The OpenMesh devices come with 2 main partitions - while one is active -# sysupgrade will flash the other. The boot order is changed to boot the -# newly flashed partition. If the new partition can't be booted due to -# upgrade failures the previously used partition is loaded. - -platform_do_upgrade_openmesh() { - local tar_file="$1" - local restore_backup - local primary_kernel_mtd - - local setenv_script="/tmp/fw_env_upgrade" - - local kernel_mtd="$(find_mtd_index $PART_NAME)" - local kernel_offset="$(cat /sys/class/mtd/mtd${kernel_mtd}/offset)" - local total_size="$(cat /sys/class/mtd/mtd${kernel_mtd}/size)" - - # detect to which flash region the new image is written to. - # - # 1. check what is the mtd index for the first flash region on this - # device - # 2. check if the target partition ("inactive") has the mtd index of - # the first flash region - # - # - when it is: the new bootseq will be 1,2 and the first region is - # modified - # - when it isnt: bootseq will be 2,1 and the second region is - # modified - # - # The detection has to be done via the hardcoded mtd partition because - # the current boot might be done with the fallback region. Let us - # assume that the current bootseq is 1,2. The bootloader detected that - # the image in flash region 1 is corrupt and thus switches to flash - # region 2. The bootseq in the u-boot-env is now still the same and - # the sysupgrade code can now only rely on the actual mtd indexes and - # not the bootseq variable to detect the currently booted flash - # region/image. - # - # In the above example, an implementation which uses bootseq ("1,2") to - # detect the currently booted image would assume that region 1 is booted - # and then overwrite the variables for the wrong flash region (aka the - # one which isn't modified). This could result in a device which doesn't - # boot anymore to Linux until it was reflashed with ap51-flash. - local next_boot_part="1" - case "$(board_name)" in - openmesh,a42) - primary_kernel_mtd=8 - ;; - openmesh,a62) - primary_kernel_mtd=10 - ;; - *) - echo "failed to detect primary kernel mtd partition for board" - return 1 - ;; - esac - [ "$kernel_mtd" = "$primary_kernel_mtd" ] || next_boot_part="2" - - local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') - board_dir=${board_dir%/} - - local kernel_length=$(tar xf $tar_file ${board_dir}/kernel -O | wc -c) - local rootfs_length=$(tar xf $tar_file ${board_dir}/root -O | wc -c) - # rootfs without EOF marker - rootfs_length=$((rootfs_length-4)) - - local kernel_md5=$(tar xf $tar_file ${board_dir}/kernel -O | md5sum); kernel_md5="${kernel_md5%% *}" - # md5 checksum of rootfs with EOF marker - local rootfs_md5=$(tar xf $tar_file ${board_dir}/root -O | dd bs=1 count=$rootfs_length | md5sum); rootfs_md5="${rootfs_md5%% *}" - - # - # add tar support to get_image() to use default_do_upgrade() instead? - # - - # take care of restoring a saved config - [ -n "$UPGRADE_BACKUP" ] && restore_backup="${MTD_CONFIG_ARGS} -j ${UPGRADE_BACKUP}" - - mtd -q erase inactive - tar xf $tar_file ${board_dir}/root -O | mtd -n -p $kernel_length $restore_backup write - $PART_NAME - tar xf $tar_file ${board_dir}/kernel -O | mtd -n write - $PART_NAME - - # prepare new u-boot env - if [ "$next_boot_part" = "1" ]; then - echo "bootseq 1,2" > $setenv_script - else - echo "bootseq 2,1" > $setenv_script - fi - - printf "kernel_size_%i 0x%08x\n" $next_boot_part $kernel_length >> $setenv_script - printf "vmlinux_start_addr 0x%08x\n" ${kernel_offset} >> $setenv_script - printf "vmlinux_size 0x%08x\n" ${kernel_length} >> $setenv_script - printf "vmlinux_checksum %s\n" ${kernel_md5} >> $setenv_script - - printf "rootfs_size_%i 0x%08x\n" $next_boot_part $((total_size-kernel_length)) >> $setenv_script - printf "rootfs_start_addr 0x%08x\n" $((kernel_offset+kernel_length)) >> $setenv_script - printf "rootfs_size 0x%08x\n" ${rootfs_length} >> $setenv_script - printf "rootfs_checksum %s\n" ${rootfs_md5} >> $setenv_script - - # store u-boot env changes - mkdir -p /var/lock - fw_setenv -s $setenv_script || { - echo "failed to update U-Boot environment" - return 1 - } -} diff --git a/root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index 2ed19f12..f874aa4b 100755 --- a/root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/root/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -59,7 +59,6 @@ platform_do_upgrade() { case "$(board_name)" in 8dev,jalapeno |\ aruba,ap-303 |\ - pangu,l1000 |\ aruba,ap-303h |\ aruba,ap-365 |\ avm,fritzbox-7530 |\ @@ -67,15 +66,8 @@ platform_do_upgrade() { avm,fritzrepeater-3000 |\ buffalo,wtr-m2133hp |\ cilab,meshpoint-one |\ - edgecore,ecw5211 |\ - edgecore,oap100 |\ engenius,eap2200 |\ - glinet,gl-ap1300 |\ - luma,wrtq-329acn |\ - zbt,z4019 |\ mobipromo,cm520-79f |\ - p2w,r619ac-64m |\ - p2w,r619ac-128m |\ qxwlan,e2600ac-c2) nand_do_upgrade "$1" ;; @@ -103,12 +95,13 @@ platform_do_upgrade() { CI_UBIPART="ubifs" askey_do_upgrade "$1" ;; - compex,wpj419) + compex,wpj419|\ + p2w,r619ac-128m|\ + p2w,r619ac) nand_do_upgrade "$1" ;; linksys,ea6350v3 |\ - linksys,ea8300 |\ - linksys,mr8300) + linksys,ea8300) platform_do_upgrade_linksys "$1" ;; meraki,mr33) @@ -116,11 +109,9 @@ platform_do_upgrade() { nand_do_upgrade "$1" ;; openmesh,a42 |\ - openmesh,a62 |\ - plasmacloud,pa1200 |\ - plasmacloud,pa2200) + openmesh,a62) PART_NAME="inactive" - platform_do_upgrade_dualboot_datachk "$1" + platform_do_upgrade_openmesh "$1" ;; zyxel,nbg6617) zyxel_do_upgrade "$1" @@ -129,4 +120,4 @@ platform_do_upgrade() { default_do_upgrade "$1" ;; esac -} \ No newline at end of file +} diff --git a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-l1000.dts b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-l1000.dts deleted file mode 100755 index 89ef08d7..00000000 --- a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-l1000.dts +++ /dev/null @@ -1,409 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT - * - * Copyright (c) 2018 Peng Zhang - * - */ - -#include "qcom-ipq4019.dtsi" -#include -#include -#include - -/ { - - model = "GZ419"; - compatible = "pangu,l1000", "qcom,ipq4019"; - - memory { - device_type = "memory"; - reg = <0x80000000 0x20000000>; /* 512MB */ - }; - - aliases { - sdhc1 = &sdhci; - led-boot = &power; - led-failsafe = &power; - led-running = &power; - led-upgrade = &power; - serial0 = &blsp1_uart1; - serial1 = &blsp1_uart2; - }; - - chosen { - bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs"; - linux,stdout-path = "serial0:115200n8"; - }; - - - soc { - rng@22000 { - status = "okay"; - }; - - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <2000>; - }; - - ess-psgmii@98000 { - status = "okay"; - }; - - tcsr@1949000 { - compatible = "qcom,tcsr"; - reg = <0x1949000 0x100>; - qcom,wifi_glb_cfg = ; - }; - - tcsr@194b000 { - /* select hostmode */ - compatible = "qcom,tcsr"; - reg = <0x194b000 0x100>; - qcom,usb-hsphy-mode-select = ; - status = "okay"; - }; - - ess_tcsr@1953000 { - compatible = "qcom,tcsr"; - reg = <0x1953000 0x1000>; - qcom,ess-interface-select = ; - }; - - tcsr@1957000 { - compatible = "qcom,tcsr"; - reg = <0x1957000 0x100>; - qcom,wifi_noc_memtype_m0_m2 = ; - }; - - usb2@60f8800 { - status = "okay"; - }; - - usb3@8af8800 { - status = "okay"; - }; - - crypto@8e3a000 { - status = "okay"; - }; - - watchdog@b017000 { - status = "okay"; - }; - - ess-switch@c000000 { - status = "okay"; - switch_lan_bmp = <0x18>; - switch_wan_bmp = <0x20>; - }; - - i2c@78b7000 { /* BLSP1 QUP2 */ - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - - status = "okay"; - }; - - edma@c080000 { - status = "okay"; - }; - }; - - keys { - compatible = "gpio-keys"; - - reset { - label = "reset"; - gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; - - leds { - compatible = "gpio-leds"; - - power: status { - label = "blue:status"; - gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; - }; - - wlan2g { - label = "blue:wlan2g"; - gpios = <&tlmm 1 GPIO_ACTIVE_LOW>; - }; - - wlan5g { - label = "bule:wlan5g"; - gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; - }; - - wan { - label = "bule:wan"; - gpios = <&tlmm 4 GPIO_ACTIVE_LOW>; - }; - 4g1 { - label = "bule:4g1"; - gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; - }; - 4g2 { - label = "bule:4g2"; - gpios = <&tlmm 45 GPIO_ACTIVE_LOW>; - }; - 4g3 { - label = "bule:4g3"; - gpios = <&tlmm 46 GPIO_ACTIVE_LOW>; - }; - usb { - label = "bule:usb"; - gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; - trigger-sources = <&usb2>, <&usb3>; - linux,default-trigger = "usbport"; - }; - }; -}; - -&vqmmc { - status = "okay"; -}; - -&sdhci { - status = "okay"; - pinctrl-0 = <&sd_pins>; - pinctrl-names = "default"; - cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>; - vqmmc-supply = <&vqmmc>; -}; - -&blsp_dma { - status = "okay"; -}; - -&cryptobam { - status = "okay"; -}; - -&blsp1_spi1 { - pinctrl-0 = <&spi_0_pins>; - pinctrl-names = "default"; - status = "okay"; - cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0>; - spi-max-frequency = <24000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - SBL1@0 { - label = "SBL1"; - reg = <0x0 0x40000>; - read-only; - }; - - MIBIB@40000 { - label = "MIBIB"; - reg = <0x40000 0x20000>; - }; - - QSEE@60000 { - label = "QSEE"; - reg = <0x60000 0x60000>; - read-only; - }; - - CDT@c0000 { - label = "CDT"; - reg = <0xc0000 0x10000>; - read-only; - }; - - DDRPARAMS@d0000 { - label = "DDRPARAMS"; - reg = <0xd0000 0x10000>; - read-only; - }; - - APPSBLENV@e0000 { - label = "APPSBLENV"; - reg = <0xe0000 0x10000>; - }; - - APPSBL@f0000 { - label = "APPSBL"; - reg = <0xf0000 0x80000>; - }; - - ART@170000 { - label = "ART"; - reg = <0x170000 0x10000>; - }; - }; - }; -}; - -&nand { - pinctrl-0 = <&nand_pins>; - pinctrl-names = "default"; - status = "okay"; - - nand@0 { - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - rootfs@0 { - label = "rootfs"; - reg = <0x0 0x8000000>; - }; - }; - }; -}; - -&qpic_bam { - status = "okay"; -}; - -&blsp1_uart1 { - pinctrl-0 = <&serial_pins>; - pinctrl-names = "default"; - status = "okay"; -}; - -&blsp1_uart2 { - pinctrl-0 = <&serial_1_pins>; - pinctrl-names = "default"; - status = "okay"; -}; - -&tlmm { - serial_pins: serial_pinmux { - mux { - pins = "gpio16", "gpio17"; - function = "blsp_uart0"; - bias-disable; - }; - }; - - mdio_pins: mdio_pinmux { - mux_1 { - pins = "gpio6"; - function = "mdio"; - bias-pull-up; - }; - mux_2 { - pins = "gpio7"; - function = "mdc"; - bias-pull-up; - }; - }; - - serial_1_pins: serial1_pinmux { - mux { - pins = "gpio8", "gpio9", - "gpio10", "gpio11"; - function = "blsp_uart1"; - bias-disable; - }; - }; - - i2c_0_pins: i2c-0-pinmux { - mux { - pins = "gpio20", "gpio21"; - function = "blsp_i2c0"; - bias-disable; - }; - }; - - spi_0_pins: spi_0_pinmux { - pinmux { - function = "blsp_spi0"; - pins = "gpio13", "gpio14", "gpio15"; - }; - pinmux_cs { - function = "gpio"; - pins = "gpio12"; - }; - pinconf { - pins = "gpio13", "gpio14", "gpio15"; - drive-strength = <12>; - bias-disable; - }; - pinconf_cs { - pins = "gpio12"; - drive-strength = <2>; - bias-disable; - output-high; - }; - }; - - nand_pins: nand_pins { - pullups { - pins = "gpio52", "gpio53", "gpio58", - "gpio59"; - function = "qpic"; - bias-pull-up; - }; - - pulldowns { - pins = "gpio54", "gpio55", "gpio56", - "gpio57", "gpio60", "gpio61", - "gpio62", "gpio63", "gpio64", - "gpio65", "gpio66", "gpio67", - "gpio68", "gpio69"; - function = "qpic"; - bias-pull-down; - }; - }; - - sd_pins: sd_pins { - pinmux { - function = "sdio"; - pins = "gpio23", "gpio24", "gpio25", "gpio26", - "gpio28", "gpio29", "gpio30", "gpio31"; - drive-strength = <10>; - }; - - pinmux_sd_clk { - function = "sdio"; - pins = "gpio27"; - drive-strength = <16>; - }; - - pinmux_sd7 { - function = "sdio"; - pins = "gpio32"; - drive-strength = <10>; - bias-disable; - }; - }; -}; - -&usb2_hs_phy { - status = "okay"; -}; - -&usb3_hs_phy { - status = "okay"; -}; - -&usb3_ss_phy { - status = "okay"; -}; - -&wifi0 { - status = "okay"; - qcom,ath10k-calibration-variant = "PANGU-L1000"; -}; - -&wifi1 { - status = "okay"; - qcom,ath10k-calibration-variant = "PANGU-L1000"; -}; diff --git a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac-128m.dts b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac-128m.dts new file mode 100644 index 00000000..b51378a7 --- /dev/null +++ b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac-128m.dts @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019-r619ac.dtsi" + +/ { + model = "P&W R619AC 128M"; + compatible = "p2w,r619ac-128m"; + + chosen { + bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs"; + }; +}; + +&rootfs_part1 { + reg = <0x0 0x8000000>; +}; + +/delete-node/ &rootfs_part2; diff --git a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts new file mode 100644 index 00000000..31010dd1 --- /dev/null +++ b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019-r619ac.dtsi" + +/ { + model = "P&W R619AC"; + compatible = "p2w,r619ac"; + + chosen { + bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs"; + }; +}; diff --git a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-jalapeno.dtsi b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dtsi similarity index 54% rename from root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-jalapeno.dtsi rename to root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dtsi index 44aed3ad..81018dd0 100644 --- a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-jalapeno.dtsi +++ b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-r619ac.dtsi @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -// Copyright (c) 2018, Robert Marko #include "qcom-ipq4019.dtsi" #include @@ -7,22 +6,21 @@ #include / { + 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"; }; - - aliases { - led-boot = &power; - led-failsafe = &power; - led-running = &power; - led-upgrade = &power; - }; - mdio@90000 { status = "okay"; - pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; }; @@ -31,11 +29,6 @@ status = "okay"; }; - counter@4a1000 { - compatible = "qcom,qca-gcnt"; - reg = <0x4a1000 0x4>; - }; - tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; @@ -43,8 +36,6 @@ }; tcsr@194b000 { - status = "okay"; - compatible = "qcom,tcsr"; reg = <0x194b000 0x100>; qcom,usb-hsphy-mode-select = ; @@ -62,11 +53,11 @@ qcom,wifi_noc_memtype_m0_m2 = ; }; - usb2: usb2@60f8800 { + usb2@60f8800 { status = "okay"; }; - usb3: usb3@8af8800 { + usb3@8af8800 { status = "okay"; }; @@ -80,87 +71,43 @@ ess-switch@c000000 { status = "okay"; - - switch_lan_bmp = <0x10>; /* lan port bitmap */ }; edma@c080000 { status = "okay"; }; }; - -leds { - compatible = "gpio-leds"; - power: status { - label = "blue:status"; - gpios = <&tlmm 63 GPIO_ACTIVE_HIGH>; + 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 = "blue:wlan2g"; - gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; + label = "r619ac:blue:wlan2g"; + gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy0tpt"; }; - wan { - label = "bule:wan"; - gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>; - }; - 4g1 { - label = "bule:4g1"; - gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; - }; - 4g2 { - label = "bule:4g2"; - gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; - }; - 4g3 { - label = "bule:4g3"; - gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; - }; - }; -}; - -&tlmm { - mdio_pins: mdio_pinmux { - pinmux_1 { - pins = "gpio53"; - function = "mdio"; - }; - - pinmux_2 { - pins = "gpio52"; - function = "mdc"; - }; - - pinconf { - pins = "gpio52", "gpio53"; - bias-pull-up; + wlan5g { + label = "r619ac:blue:wlan5g"; + gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "phy1tpt"; }; }; - serial_pins: serial_pinmux { - mux { - pins = "gpio60", "gpio61"; - function = "blsp_uart0"; - bias-disable; - }; - }; + keys { + compatible = "gpio-keys"; - spi_0_pins: spi_0_pinmux { - pin { - function = "blsp_spi0"; - pins = "gpio55", "gpio56", "gpio57"; - drive-strength = <2>; - bias-disable; - }; - - pin_cs { - function = "gpio"; - pins = "gpio54", "gpio59"; - drive-strength = <2>; - bias-disable; - output-high; + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; }; }; }; @@ -172,15 +119,9 @@ leds { &blsp1_spi1 { status = "okay"; - pinctrl-0 = <&spi_0_pins>; - pinctrl-names = "default"; - cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 59 GPIO_ACTIVE_HIGH>; - flash@0 { - status = "okay"; - - compatible = "jedec,spi-nor"; reg = <0>; + compatible = "jedec,spi-nor"; spi-max-frequency = <24000000>; partitions { @@ -190,109 +131,168 @@ leds { partition@0 { label = "SBL1"; - reg = <0x00000000 0x00040000>; + reg = <0x0 0x40000>; read-only; }; partition@40000 { label = "MIBIB"; - reg = <0x00040000 0x00020000>; + reg = <0x40000 0x20000>; read-only; }; partition@60000 { label = "QSEE"; - reg = <0x00060000 0x00060000>; + reg = <0x60000 0x60000>; read-only; }; partition@c0000 { label = "CDT"; - reg = <0x000c0000 0x00010000>; + reg = <0xc0000 0x10000>; read-only; }; partition@d0000 { label = "DDRPARAMS"; - reg = <0x000d0000 0x00010000>; + reg = <0xd0000 0x10000>; read-only; }; partition@e0000 { - label = "APPSBLENV"; /* uboot env*/ - reg = <0x000e0000 0x00010000>; + label = "APPSBLENV"; + reg = <0xe0000 0x10000>; read-only; }; partition@f0000 { - label = "APPSBL"; /* uboot */ - reg = <0x000f0000 0x00080000>; + label = "APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + + partition@1 { + label = "Bootloader"; + reg = <0x0 0x170000>; read-only; }; partition@170000 { label = "ART"; - reg = <0x00170000 0x00010000>; + reg = <0x170000 0x10000>; read-only; }; - }; - }; - spi-nand@1 { - status = "okay"; - - compatible = "spi-nand"; - reg = <1>; - spi-max-frequency = <24000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "ubi"; - reg = <0x00000000 0x08000000>; + partition@180000 { + label = "unused"; + reg = <0x180000 0xe80000>; }; }; }; }; &blsp1_uart1 { - status = "okay"; - - pinctrl-0 = <&serial_pins>; + pinctrl-0 = <&serial_0_pins>; pinctrl-names = "default"; + status = "okay"; }; &cryptobam { status = "okay"; }; -&gmac0 { - qcom,poll_required = <1>; - qcom,poll_required_dynamic = <1>; - qcom,phy_mdio_addr = <3>; - vlan_tag = <1 0x10>; -}; - -&gmac1 { - qcom,poll_required = <1>; - qcom,poll_required_dynamic = <1>; - qcom,phy_mdio_addr = <4>; - vlan_tag = <2 0x20>; -}; - -&wifi0 { +&nand { status = "okay"; - qcom,ath10k-calibration-variant = "8devices-Jalapeno"; + 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>; + }; + }; + }; }; -&wifi1 { +&qpic_bam { status = "okay"; +}; - qcom,ath10k-calibration-variant = "8devices-Jalapeno"; +&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 { @@ -306,3 +306,17 @@ leds { &usb2_hs_phy { status = "okay"; }; + +&vqmmc { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "R619AC"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "R619AC"; +}; diff --git a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-z4019.dts b/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-z4019.dts deleted file mode 100644 index c89e9c30..00000000 --- a/root/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-z4019.dts +++ /dev/null @@ -1,393 +0,0 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -#include "qcom-ipq4019.dtsi" -#include -#include -#include - -/ { - model = "Z4019"; - compatible = "zbt,z4019"; - - aliases { - led-boot = &power; - led-failsafe = &power; - led-running = &power; - led-upgrade = &power; - serial0 = &blsp1_uart1; - serial1 = &blsp1_uart2; - }; - - chosen { - bootargs-append = " root=/dev/ubiblock0_1 rootfstype=squashfs"; - linux,stdout-path = "serial0:115200n8"; - }; - - memory { - device_type = "memory"; - reg = <0x80000000 0x10000000>; - }; - - soc { - rng@22000 { - status = "okay"; - }; - - mdio@90000 { - status = "okay"; - pinctrl-0 = <&mdio_pins>; - pinctrl-names = "default"; - reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; - reset-delay-us = <1000>; - }; - - ess-psgmii@98000 { - status = "okay"; - }; - - tcsr@1949000 { - compatible = "qcom,tcsr"; - reg = <0x1949000 0x100>; - qcom,wifi_glb_cfg = ; - }; - - tcsr@194b000 { - /* select hostmode */ - compatible = "qcom,tcsr"; - reg = <0x194b000 0x100>; - qcom,usb-hsphy-mode-select = ; - status = "okay"; - }; - - ess_tcsr@1953000 { - compatible = "qcom,tcsr"; - reg = <0x1953000 0x1000>; - qcom,ess-interface-select = ; - }; - - tcsr@1957000 { - compatible = "qcom,tcsr"; - reg = <0x1957000 0x100>; - qcom,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"; - }; - }; - - keys { - compatible = "gpio-keys"; - - reset { - label = "reset"; - gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; - - leds { - compatible = "gpio-leds"; - - power: power { - label = "green:power"; - gpios = <&tlmm 36 GPIO_ACTIVE_LOW>; - }; - - wifi0 { - label = "green:wlan0"; - gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; - }; - - wifi1 { - label = "green:wlan1"; - gpios = <&tlmm 42 GPIO_ACTIVE_LOW>; - }; - - 4g { - label = "green:4g"; - gpios = <&tlmm 1 GPIO_ACTIVE_LOW>; - }; - - 4g2 { - label = "green:4g2"; - gpios = <&tlmm 2 GPIO_ACTIVE_LOW>; - }; - - 4g3 { - label = "green:4g3"; - gpios = <&tlmm 4 GPIO_ACTIVE_LOW>; - }; - }; -}; - -&blsp_dma { - status = "okay"; -}; - -&cryptobam { - status = "okay"; -}; - -&blsp1_spi1 { - pinctrl-0 = <&spi_0_pins>; - pinctrl-names = "default"; - status = "okay"; - cs-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; - - flash@0 { - compatible = "jedec,spi-nor"; - reg = <0>; - spi-max-frequency = <24000000>; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "0:SBL1"; - reg = <0x0 0x40000>; - read-only; - }; - partition@40000 { - label = "0:MIBIB"; - reg = <0x40000 0x20000>; - }; - partition@60000 { - label = "0:QSEE"; - reg = <0x60000 0x60000>; - read-only; - }; - partition@c0000 { - label = "0:CDT"; - reg = <0xc0000 0x10000>; - read-only; - }; - partition@d0000 { - label = "0:DDRPARAMS"; - reg = <0xd0000 0x10000>; - read-only; - }; - - partition@e0000 { - label = "0:APPSBLENV"; - reg = <0xe0000 0x10000>; - read-only; - }; - - partition@f0000 { - label = "0:APPSBL"; - reg = <0xf0000 0x80000>; - }; - - partition@170000 { - label = "0:ART"; - reg = <0x170000 0x10000>; - }; - }; - }; -}; - -&qpic_bam { - status = "okay"; -}; - -&nand { - pinctrl-0 = <&nand_pins>; - pinctrl-names = "default"; - status = "okay"; - - nand@0 { - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@b80000 { - label = "rootfs"; - reg = <0x0 0x8000000>; - }; - }; - }; -}; - -&blsp1_uart1 { - pinctrl-0 = <&serial_0_pins>; - pinctrl-names = "default"; - status = "okay"; -}; - -&blsp1_uart2 { - pinctrl-0 = <&serial_1_pins>; - pinctrl-names = "default"; - 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; - }; - }; - - serial_0_pins: serial0-pinmux { - mux { - pins = "gpio16", "gpio17"; - function = "blsp_uart0"; - bias-disable; - }; - }; - serial_1_pins: serial1_pinmux { - mux { - pins = "gpio8", "gpio9"; - function = "blsp_uart1"; - bias-disable; - }; - }; - - power_4g_pinmux { - mux { - pins = "gpio20"; - function = "gpio"; - drive-strength = <12>; - bias-pull-down; - output-high; - }; - }; - - power_4g2_pinmux { - mux { - pins = "gpio8"; - function = "gpio"; - drive-strength = <12>; - bias-pull-down; - output-high; - }; - }; - - power_4g3_pinmux { - mux { - pins = "gpio9"; - function = "gpio"; - drive-strength = <12>; - bias-pull-down; - output-high; - }; - }; - - power_sim_sw_pinmux { - mux { - pins = "gpio0"; - function = "gpio"; - drive-strength = <12>; - bias-pull-down; - output-high; - }; - }; - - spi_0_pins: spi_0_pinmux { - pinmux { - function = "blsp_spi0"; - pins = "gpio13", "gpio14", "gpio15"; - drive-strength = <12>; - bias-disable; - }; - - pinmux_cs { - function = "gpio"; - pins = "gpio12"; - drive-strength = <2>; - bias-disable; - output-high; - }; - }; - - nand_pins: nand_pins { - pullups { - pins = "gpio52", "gpio53", "gpio58", - "gpio59"; - function = "qpic"; - bias-pull-up; - }; - - pulldowns { - pins = "gpio54", "gpio55", "gpio56", - "gpio57", "gpio60", "gpio61", - "gpio62", "gpio63", "gpio64", - "gpio65", "gpio66", "gpio67", - "gpio68", "gpio69"; - function = "qpic"; - bias-pull-down; - }; - }; -}; - -&usb2_hs_phy { - status = "okay"; -}; - -&usb3_hs_phy { - status = "okay"; -}; - -&usb3_ss_phy { - status = "okay"; -}; - -&pcie0 { - status = "okay"; - perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; - wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; -}; - -&wifi0 { - status = "okay"; - qcom,ath10k-calibration-variant = "ZBT-Z4019"; -}; - -&wifi1 { - status = "okay"; - qcom,ath10k-calibration-variant = "ZBT-Z4019"; -}; diff --git a/root/target/linux/ipq40xx/image/generic.mk b/root/target/linux/ipq40xx/image/Makefile similarity index 82% rename from root/target/linux/ipq40xx/image/generic.mk rename to root/target/linux/ipq40xx/image/Makefile index 738967c8..44b6da6d 100644 --- a/root/target/linux/ipq40xx/image/generic.mk +++ b/root/target/linux/ipq40xx/image/Makefile @@ -1,8 +1,23 @@ +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 @@ -115,21 +130,6 @@ define Device/8dev_jalapeno endef TARGET_DEVICES += 8dev_jalapeno -define Device/pangu_l1000 - $(call Device/FitImage) - $(call Device/UbiFit) - DEVICE_VENDOR := PANGU - DEVICE_MODEL := L1000 - SOC := qcom-ipq4019 - DEVICE_DTS := qcom-ipq4019-l1000 - KERNEL_INSTALL := 1 - BLOCKSIZE := 128k - PAGESIZE := 2048 - BOARD_NAME := l1000 - DEVICE_PACKAGES := ipq-wifi-pangu_l1000 -endef -TARGET_DEVICES += pangu_l1000 - define Device/alfa-network_ap120c-ac $(call Device/FitImage) $(call Device/UbiFit) @@ -137,7 +137,7 @@ define Device/alfa-network_ap120c-ac DEVICE_MODEL := AP120C-AC SOC := qcom-ipq4018 DEVICE_PACKAGES := kmod-usb-acm \ - kmod-tpm-i2c-atmel + kmod-tpm-i2c-atmel uboot-envtools BLOCKSIZE := 128k PAGESIZE := 2048 IMAGE_SIZE := 65536k @@ -251,7 +251,7 @@ define Device/buffalo_wtr-m2133hp DEVICE_VENDOR := Buffalo DEVICE_MODEL := WTR-M2133HP SOC := qcom-ipq4019 - DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-buffalo_wtr-m2133hp + DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9984-ct ipq-wifi-buffalo_wtr-m2133hp BLOCKSIZE := 128k PAGESIZE := 2048 endef @@ -317,25 +317,6 @@ define Device/compex_wpj428 endef TARGET_DEVICES += compex_wpj428 -define Device/devolo_magic-2-wifi-next - $(call Device/FitImage) - DEVICE_VENDOR := devolo - DEVICE_MODEL := Magic 2 WiFi next - SOC := qcom-ipq4018 - KERNEL_SIZE := 4096k - - # If the bootloader sees 0xDEADC0DE and this trailer at the 64k boundary of a TFTP image - # it will bootm it, just like we want for the initramfs. - KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to 64k |\ - append-string -e '\xDE\xAD\xC0\xDE{"fl_initramfs":""}\x00' - - IMAGE_SIZE := 26624k - IMAGES := sysupgrade.bin - IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata - DEVICE_PACKAGES := ipq-wifi-devolo_magic-2-wifi-next -endef -TARGET_DEVICES += devolo_magic-2-wifi-next - define Device/dlink_dap-2610 $(call Device/FitImageLzma) DEVICE_VENDOR := D-Link @@ -363,32 +344,6 @@ define Device/dlink_dap-2610 endef TARGET_DEVICES += dlink_dap-2610 -define Device/edgecore_ecw5211 - $(call Device/FitImage) - $(call Device/UbiFit) - DEVICE_VENDOR := Edgecore - DEVICE_MODEL := ECW5211 - SOC := qcom-ipq4018 - BLOCKSIZE := 128k - PAGESIZE := 2048 - DEVICE_PACKAGES := kmod-tpm-i2c-atmel kmod-usb-acm -endef -TARGET_DEVICES += edgecore_ecw5211 - -define Device/edgecore_oap100 - $(call Device/FitImage) - $(call Device/UbiFit) - DEVICE_VENDOR := Edgecore - DEVICE_MODEL := OAP100 - SOC := qcom-ipq4019 - BLOCKSIZE := 128k - PAGESIZE := 2048 - IMAGES := nand-sysupgrade.bin - DEVICE_DTS_CONFIG := config@ap.dk07.1-c1 - DEVICE_PACKAGES := ipq-wifi-edgecore_oap100 kmod-usb-acm kmod-usb-net kmod-usb-net-cdc-qmi uqmi -endef -TARGET_DEVICES += edgecore_oap100 - define Device/engenius_eap1300 $(call Device/FitImage) DEVICE_VENDOR := EnGenius @@ -482,21 +437,6 @@ define Device/ezviz_cs-w3-wd1200g-eup endef TARGET_DEVICES += ezviz_cs-w3-wd1200g-eup -define Device/glinet_gl-ap1300 - $(call Device/FitImage) - $(call Device/UbiFit) - DEVICE_VENDOR := GL.iNet - DEVICE_MODEL := GL-AP1300 - SOC := qcom-ipq4018 - DEVICE_DTS_CONFIG := config@ap.dk01.1-c2 - BLOCKSIZE := 128k - PAGESIZE := 2048 - IMAGE_SIZE := 131072k - KERNEL_INSTALL := 1 - DEVICE_PACKAGES := ipq-wifi-glinet_gl-ap1300 -endef -TARGET_DEVICES += glinet_gl-ap1300 - define Device/glinet_gl-b1300 $(call Device/FitImage) DEVICE_VENDOR := GL.iNet @@ -509,18 +449,6 @@ define Device/glinet_gl-b1300 endef TARGET_DEVICES += glinet_gl-b1300 -define Device/zbt_z4019 - $(call Device/FitImage) - $(call Device/UbiFit) - DEVICE_VENDOR := ZBT - DEVICE_MODEL := Z4019 - SOC := qcom-ipq4019 - BLOCKSIZE := 128k - PAGESIZE := 2048 - DEVICE_PACKAGES := -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers -endef -TARGET_DEVICES += zbt_z4019 - define Device/glinet_gl-s1300 $(call Device/FitImage) DEVICE_VENDOR := GL.iNet @@ -567,6 +495,7 @@ define Device/linksys_ea6350v3 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 @@ -582,38 +511,10 @@ define Device/linksys_ea8300 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 := ath10k-firmware-qca9888-ct ipq-wifi-linksys_ea8300 kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9888-ct ipq-wifi-linksys_ea8300 kmod-usb-ledtrig-usbport endef TARGET_DEVICES += linksys_ea8300 -define Device/linksys_mr8300 - $(call Device/FitzImage) - DEVICE_VENDOR := Linksys - DEVICE_MODEL := MR8300 - SOC := qcom-ipq4019 - KERNEL_SIZE := 3072k - IMAGE_SIZE := 87040k - BLOCKSIZE := 128k - PAGESIZE := 2048 - UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF - IMAGES += factory.bin - IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=MR8300 - DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-linksys_mr8300-v0 kmod-usb-ledtrig-usbport -endef -TARGET_DEVICES += linksys_mr8300 - -define Device/luma_wrtq-329acn - $(call Device/FitImage) - DEVICE_VENDOR := Luma Home - DEVICE_MODEL := WRTQ-329ACN - SOC := qcom-ipq4018 - DEVICE_PACKAGES := ipq-wifi-luma_wrtq-329acn kmod-ath3k kmod-eeprom-at24 kmod-i2c-gpio - IMAGE_SIZE := 76632k - BLOCKSIZE := 128k - PAGESIZE := 2048 -endef -TARGET_DEVICES += luma_wrtq-329acn - define Device/meraki_mr33 $(call Device/FitImage) DEVICE_VENDOR := Cisco Meraki @@ -639,7 +540,6 @@ TARGET_DEVICES += mobipromo_cm520-79f define Device/netgear_ex61x0v2 $(call Device/DniImage) - DEVICE_VENDOR := NETGEAR DEVICE_DTS_CONFIG := config@4 NETGEAR_BOARD_ID := EX6150v2series NETGEAR_HW_ID := 29765285+16+0+128+2x2 @@ -649,6 +549,7 @@ endef define Device/netgear_ex6100v2 $(call Device/netgear_ex61x0v2) + DEVICE_VENDOR := Netgear DEVICE_MODEL := EX6100 DEVICE_VARIANT := v2 endef @@ -656,6 +557,7 @@ TARGET_DEVICES += netgear_ex6100v2 define Device/netgear_ex6150v2 $(call Device/netgear_ex61x0v2) + DEVICE_VENDOR := Netgear DEVICE_MODEL := EX6150 DEVICE_VARIANT := v2 endef @@ -673,6 +575,7 @@ define Device/openmesh_a42 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 @@ -688,42 +591,11 @@ define Device/openmesh_a62 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 + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct uboot-envtools endef + TARGET_DEVICES += openmesh_a62 -define Device/plasmacloud_pa1200 - $(call Device/FitImageLzma) - DEVICE_VENDOR := Plasma Cloud - DEVICE_MODEL := PA1200 - SOC := qcom-ipq4018 - DEVICE_DTS_CONFIG := config@pc.pa1200 - BLOCKSIZE := 64k - KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE) - IMAGE_SIZE := 15616k - IMAGES += factory.bin - IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=PA1200 - IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata - DEVICE_PACKAGES := ipq-wifi-plasmacloud-pa1200 -endef -TARGET_DEVICES += plasmacloud_pa1200 - -define Device/plasmacloud_pa2200 - $(call Device/FitImageLzma) - DEVICE_VENDOR := Plasma Cloud - DEVICE_MODEL := PA2200 - SOC := qcom-ipq4019 - DEVICE_DTS_CONFIG := config@pc.pa2200 - BLOCKSIZE := 64k - KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb | pad-to $$(BLOCKSIZE) - IMAGE_SIZE := 15552k - IMAGES += factory.bin - IMAGE/factory.bin := append-rootfs | pad-rootfs | openmesh-image ce_type=PA2200 - IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata - DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-plasmacloud-pa2200 -endef -TARGET_DEVICES += plasmacloud_pa2200 - define Device/qcom_ap-dk01.1-c1 DEVICE_VENDOR := Qualcomm Atheros DEVICE_MODEL := AP-DK01.1 @@ -755,6 +627,35 @@ define Device/qcom_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 @@ -814,7 +715,7 @@ define Device/zyxel_nbg6617 # 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 := kmod-usb-ledtrig-usbport + DEVICE_PACKAGES := uboot-envtools kmod-usb-ledtrig-usbport endef TARGET_DEVICES += zyxel_nbg6617 @@ -828,4 +729,6 @@ define Device/zyxel_wre6606 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 \ No newline at end of file +TARGET_DEVICES += zyxel_wre6606 + +$(eval $(call BuildImage)) diff --git a/root/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/root/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch index 51cd7da5..ade7a675 100755 --- a/root/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch +++ b/root/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -837,11 +837,60 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -837,11 +837,52 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -18,25 +18,19 @@ Signed-off-by: John Crispin + qcom-ipq4018-ap120c-ac.dtb \ + qcom-ipq4018-dap-2610.dtb \ + qcom-ipq4018-cs-w3-wd1200g-eup.dtb \ -+ qcom-ipq4018-magic-2-wifi-next.dtb \ + qcom-ipq4018-ea6350v3.dtb \ + qcom-ipq4018-eap1300.dtb \ -+ qcom-ipq4018-ecw5211.dtb \ + qcom-ipq4018-emd1.dtb \ + qcom-ipq4018-emr3500.dtb \ + qcom-ipq4018-ens620ext.dtb \ + qcom-ipq4018-ex6100v2.dtb \ + qcom-ipq4018-ex6150v2.dtb \ + qcom-ipq4018-fritzbox-4040.dtb \ -+ qcom-ipq4018-gl-ap1300.dtb \ + qcom-ipq4018-jalapeno.dtb \ + qcom-ipq4018-meshpoint-one.dtb \ + qcom-ipq4018-nbg6617.dtb \ -+ qcom-ipq4019-oap100.dtb \ -+ qcom-ipq4018-pa1200.dtb \ + qcom-ipq4018-rt-ac58u.dtb \ + qcom-ipq4018-wre6606.dtb \ -+ qcom-ipq4018-wrtq-329acn.dtb \ qcom-ipq4019-ap.dk01.1-c1.dtb \ qcom-ipq4019-ap.dk04.1-c1.dtb \ qcom-ipq4019-ap.dk04.1-c3.dtb \ @@ -49,12 +43,12 @@ Signed-off-by: John Crispin + 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-mr8300.dtb \ + qcom-ipq4019-e2600ac-c1.dtb \ + qcom-ipq4019-e2600ac-c2.dtb \ + qcom-ipq4019-habanero-dvk.dtb \ -+ qcom-ipq4019-pa2200.dtb \ + qcom-ipq4019-rtl30vw.dtb \ + qcom-ipq4019-u4019-32m.dtb \ + qcom-ipq4019-wpj419.dtb \ @@ -66,8 +60,6 @@ Signed-off-by: John Crispin + qcom-ipq4029-gl-b1300.dtb \ + qcom-ipq4029-gl-s1300.dtb \ + qcom-ipq4029-mr33.dtb \ -+ qcom-ipq4019-l1000.dtb \ -+ qcom-ipq4019-z4019.dtb \ qcom-ipq8064-ap148.dtb \ qcom-msm8660-surf.dtb \ - qcom-msm8960-cdp.dtb \ \ No newline at end of file + qcom-msm8960-cdp.dtb \ diff --git a/root/target/linux/ipq40xx/patches-5.4/999-ipq40xx-unlock-cpu-frequency.patch b/root/target/linux/ipq40xx/patches-5.4/999-ipq40xx-unlock-cpu-frequency.patch deleted file mode 100644 index 86e4ba12..00000000 --- a/root/target/linux/ipq40xx/patches-5.4/999-ipq40xx-unlock-cpu-frequency.patch +++ /dev/null @@ -1,53 +0,0 @@ -From: William -Subject: [PATCH] ipq40xx: improve CPU clock -Date: Tue, 15 Dec 2020 15:26:35 +0800 - -This patch will match the clock-latency-ns values in the device tree -for those found inside the OEM device tree and kernel source code and -unlock 896Mhz CPU operating points. - -Signed-off-by: William ---- ---- a/arch/arm/boot/dts/qcom-ipq4019.dtsi -+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi -@@ -114,20 +114,24 @@ - - opp-48000000 { - opp-hz = /bits/ 64 <48000000>; -- clock-latency-ns = <256000>; -+ clock-latency-ns = <100000>; - }; - opp-200000000 { - opp-hz = /bits/ 64 <200000000>; -- clock-latency-ns = <256000>; -+ clock-latency-ns = <100000>; - }; - opp-500000000 { - opp-hz = /bits/ 64 <500000000>; -- clock-latency-ns = <256000>; -+ clock-latency-ns = <100000>; - }; - opp-716000000 { - opp-hz = /bits/ 64 <716000000>; -- clock-latency-ns = <256000>; -+ clock-latency-ns = <100000>; - }; -+ opp-896000000 { -+ opp-hz = /bits/ 64 <896000000>; -+ clock-latency-ns = <100000>; -+ }; - }; - - memory { ---- a/drivers/clk/qcom/gcc-ipq4019.c -+++ b/drivers/clk/qcom/gcc-ipq4019.c -@@ -579,6 +579,9 @@ static const struct freq_tbl ftbl_gcc_ap - F(632000000, P_DDRPLLAPSS, 1, 0, 0), - F(672000000, P_DDRPLLAPSS, 1, 0, 0), - F(716000000, P_DDRPLLAPSS, 1, 0, 0), -+ F(768000000, P_DDRPLLAPSS, 1, 0, 0), -+ F(823000000, P_DDRPLLAPSS, 1, 0, 0), -+ F(896000000, P_DDRPLLAPSS, 1, 0, 0), - { } - }; -