├── .github └── workflows │ ├── OWRT-CORE.yml │ └── ipq807x-nss.yml ├── Config ├── General.txt └── ipq807x-nss.txt ├── Depends.txt ├── README.md ├── Scripts ├── Extras.sh ├── Plugins.sh ├── Renames.sh └── Settings.sh ├── general └── AX6 │ ├── package │ └── firmware │ │ └── ipq-wifi │ │ ├── Makefile │ │ ├── board-redmi_ax6.ipq8074 │ │ ├── board-xiaomi_ax3600.ipq8074 │ │ ├── board-xiaomi_ax3600.qca9889 │ │ └── board-xiaomi_ax9000.ipq8074 │ └── target │ └── linux │ └── ipq807x │ ├── base-files │ ├── etc │ │ ├── board.d │ │ │ ├── 01_leds │ │ │ └── 02_network │ │ └── hotplug.d │ │ │ └── firmware │ │ │ ├── 11-ath10k-caldata │ │ │ └── 11-ath11k-caldata │ └── lib │ │ └── upgrade │ │ └── platform.sh │ ├── files │ └── arch │ │ └── arm64 │ │ └── boot │ │ └── dts │ │ └── qcom │ │ ├── ipq8071-ax3600-1G.dts │ │ ├── ipq8071-ax3600.dts │ │ ├── ipq8071-ax3600.dtsi │ │ ├── ipq8071-ax6.dts │ │ └── ipq8072-ax9000.dts │ ├── image │ └── generic.mk │ └── patches-5.10 │ └── 900-arm64-dts-add-OpenWrt-DTS-files.patch └── result.m3u /.github/workflows/OWRT-CORE.yml: -------------------------------------------------------------------------------- 1 | #云编译公用核心 2 | name: OWRT-CORE 3 | 4 | on: 5 | #公用核心标识 6 | workflow_call: 7 | inputs: 8 | OWRT_TARGET: 9 | required: true 10 | type: string 11 | OWRT_THEME: 12 | required: true 13 | type: string 14 | OWRT_NAME: 15 | required: true 16 | type: string 17 | OWRT_URL: 18 | required: true 19 | type: string 20 | OWRT_PW: 21 | required: true 22 | type: string 23 | OWRT_IP: 24 | required: true 25 | type: string 26 | 27 | env: 28 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 29 | OWRT_TARGET: ${{inputs.OWRT_TARGET}} 30 | OWRT_THEME: ${{inputs.OWRT_THEME}} 31 | OWRT_NAME: ${{inputs.OWRT_NAME}} 32 | OWRT_URL: ${{inputs.OWRT_URL}} 33 | OWRT_PW: ${{inputs.OWRT_PW}} 34 | OWRT_IP: ${{inputs.OWRT_IP}} 35 | 36 | jobs: 37 | owrt_core: 38 | runs-on: ubuntu-latest 39 | steps: 40 | - name: Checkout Projects 41 | uses: actions/checkout@main 42 | 43 | - name: Initialization Environment 44 | env: 45 | DEBIAN_FRONTEND: noninteractive 46 | run: | 47 | docker rmi $(docker images -q) 48 | sudo -E rm -rf $(cat $GITHUB_WORKSPACE/Depends.txt | sed -n "1{s/\r$//;p;q}") 49 | sudo -E apt -yqq update 50 | sudo -E apt -yqq purge $(cat $GITHUB_WORKSPACE/Depends.txt | sed -n "2{s/\r$//;p;q}") 51 | sudo -E apt -yqq full-upgrade 52 | sudo -E apt -yqq install $(cat $GITHUB_WORKSPACE/Depends.txt | sed -n "3{s/\r$//;p;q}") 53 | sudo -E apt -yqq autoremove --purge 54 | sudo -E apt -yqq autoclean 55 | sudo -E apt -yqq clean 56 | sudo -E systemctl daemon-reload 57 | sudo -E timedatectl set-timezone "Asia/Shanghai" 58 | 59 | - name: Initialization Values 60 | run: | 61 | export OWRT_DATE=$(TZ=UTC-8 date +"%y.%m.%d_%H.%M.%S") 62 | export OWRT_SOURCE=$(echo $OWRT_URL | cut -d '/' -f 5-) 63 | export OWRT_TYPE=$(sed -n "1{s/^#//;s/\r$//;p;q}" $GITHUB_WORKSPACE/Config/$OWRT_TARGET.txt) 64 | 65 | echo "OWRT_SOURCE=$OWRT_SOURCE" >> $GITHUB_ENV 66 | echo "OWRT_TARGET=$OWRT_TARGET" >> $GITHUB_ENV 67 | echo "OWRT_DATE=$OWRT_DATE" >> $GITHUB_ENV 68 | echo "OWRT_TYPE=$OWRT_TYPE" >> $GITHUB_ENV 69 | echo "OWRT_PW=$OWRT_PW" >> $GITHUB_ENV 70 | echo "OWRT_IP=$OWRT_IP" >> $GITHUB_ENV 71 | 72 | - name: Check Scripts 73 | run: | 74 | cd ./Scripts 75 | 76 | dos2unix ./*.sh 77 | chmod +x ./*.sh 78 | 79 | - name: Clone OWRT Code 80 | run: | 81 | git clone $OWRT_URL ./owrt 82 | 83 | - name: Load custom feeds 84 | run: | 85 | cd ./owrt 86 | echo 'src-git smpackage https://github.com/kenzok8/small-package' >> feeds.conf.default 87 | 88 | - name: Update Feeds 89 | run: | 90 | cd ./owrt 91 | 92 | ./scripts/feeds update -a 93 | ./scripts/feeds install -a 94 | 95 | - name: Custom Scripts 96 | run: | 97 | cd ./owrt 98 | 99 | $GITHUB_WORKSPACE/Scripts/Settings.sh 100 | 101 | cd ./package 102 | 103 | $GITHUB_WORKSPACE/Scripts/Plugins.sh 104 | 105 | - name: Custom Settings 106 | run: | 107 | cd ./owrt 108 | 109 | rm -rf ./tmp* ./.config* 110 | cat $GITHUB_WORKSPACE/Config/$OWRT_TARGET.txt $GITHUB_WORKSPACE/Config/General.txt >> .config 111 | 112 | $GITHUB_WORKSPACE/Scripts/Extras.sh 113 | 114 | make defconfig 115 | 116 | - name: Cleanup Toolchain 117 | run: | 118 | cd ./owrt 119 | 120 | make dirclean 121 | 122 | - name: Download Packages 123 | run: | 124 | cd ./owrt 125 | 126 | make download -j$(nproc) 127 | 128 | - name: Compile Firmware 129 | run: | 130 | cd ./owrt 131 | 132 | make -j$(nproc) || make -j1 V=s 133 | 134 | echo "=======================" 135 | df -h 136 | echo "=======================" 137 | du -h --max-depth=1 138 | echo "=======================" 139 | 140 | - name: Package Firmware 141 | run: | 142 | cd ./owrt && mkdir ./upload 143 | 144 | rm -rf $(find ./bin/targets/ -iregex ".*\(json\|manifest\|buildinfo\|sha256sums\|packages\)$") 145 | cp -rf $(find ./bin/targets/ -type f -iname "*.*") ./upload/ 146 | cp -rf ./.config ./upload/Config_"$OWRT_TARGET"_"$OWRT_SOURCE"_"$OWRT_DATE".txt 147 | 148 | cd ./upload 149 | 150 | $GITHUB_WORKSPACE/Scripts/Renames.sh 151 | 152 | - name: Release Firmware 153 | uses: softprops/action-gh-release@master 154 | with: 155 | tag_name: ${{env.OWRT_TARGET}}_${{env.OWRT_SOURCE}}_${{env.OWRT_DATE}} 156 | files: ./owrt/upload/*.* 157 | body: | 158 | 这是个平台固件包,内含多个设备! 159 | 请注意选择你需要的设备固件! 160 | 不要问,更就完事了! 161 | 162 | 源码:${{env.OWRT_SOURCE}} 163 | 平台:${{env.OWRT_TARGET}} 164 | 设备:${{env.OWRT_TYPE}} 165 | 密码:${{env.OWRT_PW}} 166 | 地址:${{env.OWRT_IP}} 167 | 168 | - name: Delete Old Releases 169 | uses: dev-drprasad/delete-older-releases@master 170 | with: 171 | keep_latest: 6 172 | delete_tags: true 173 | 174 | - name: Delete Old Workflows 175 | uses: Mattraks/delete-workflow-runs@main 176 | with: 177 | retain_days: 0 178 | keep_minimum_runs: 1 179 | -------------------------------------------------------------------------------- /.github/workflows/ipq807x-nss.yml: -------------------------------------------------------------------------------- 1 | #CI项目名 2 | name: ipq807x-nss 3 | 4 | on: 5 | #自动编译:每天早上4点 6 | schedule: 7 | - cron: 0 20 * * * 8 | #手动编译 9 | workflow_dispatch: 10 | 11 | #CI权限 12 | permissions: write-all 13 | 14 | #CI任务 15 | jobs: 16 | owrt_config: 17 | #调用公用编译核心OWRT-CORE.yml 18 | uses: ./.github/workflows/OWRT-CORE.yml 19 | with: 20 | #编译,AX6包含AX3600通用配置 21 | OWRT_TARGET: ipq807x-nss 22 | #默认主题 23 | OWRT_THEME: design 24 | #默认主机名 25 | #OWRT_NAME: Redmi-AX6 26 | OWRT_NAME: iPQ807X 27 | #默认密码,仅作展示,更改无效 28 | OWRT_PW: password 29 | #默认地址 30 | OWRT_IP: 192.168.31.1 31 | #默认源码 32 | OWRT_URL: https://github.com/qosmio/openwrt-ipq.git 33 | -------------------------------------------------------------------------------- /Depends.txt: -------------------------------------------------------------------------------- 1 | /etc/apt/sources.list.d* /usr/local/lib/android* /etc/docker* /etc/firefox* /etc/mysql* /etc/php* /opt/google* /usr/share/dotnet* /usr/share/google* /usr/share/moby* /usr/share/mysql* /usr/share/php* 2 | azure* docker* dotnet* firefox* ghc* google* llvm* mongodb* mysql* openjdk* php* powershell* snap* zulu* 3 | ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential bzip2 ccache cmake cpio curl device-tree-compiler dos2unix ecj fakeroot fastjar flex g++-multilib gawk gcc-multilib gettext git gnutls-dev gperf haveged help2man intltool jq lib32gcc-s1 libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5 libncursesw5-dev libpython3-dev libreadline-dev libssl-dev libtool libyaml-dev libz-dev lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python3 python3-docutils python3-pip python3-ply python3-pyelftools qemu-utils quilt re2c rsync scons squashfs-tools subversion swig texinfo uglifyjs unzip upx-ucl vim wget xmlto xxd zlib1g-dev 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 涵盖:ipq807X的NSS固件测试AX6,AX3600,AX9000 2 | 使用:https://github.com/qosmio/openwrt-ipq.git 源码编译 3 | 本项目仅编译测试,不作为主固件使用 4 | 插件源码默认:kenzok8大神的 5 | -------------------------------------------------------------------------------- /Scripts/Extras.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #增加主题 4 | echo "CONFIG_PACKAGE_luci-theme-$OWRT_THEME=y" >> .config 5 | echo "CONFIG_PACKAGE_luci-app-$OWRT_THEME-config=y" >> .config 6 | 7 | #根据源码来修改 8 | if [[ $OWRT_URL != *"lede"* ]] ; then 9 | #增加luci界面 10 | echo "CONFIG_PACKAGE_luci=y" >> .config 11 | echo "CONFIG_LUCI_LANG_zh_Hans=y" >> .config 12 | fi 13 | -------------------------------------------------------------------------------- /Scripts/Plugins.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #Design Theme 4 | git clone --depth=1 --single-branch --branch $(echo $OWRT_URL | grep -iq "lede" && echo "main" || echo "js") https://github.com/gngpp/luci-theme-design.git 5 | git clone --depth=1 --single-branch https://github.com/gngpp/luci-app-design-config.git 6 | sed -i 's/dark/light/g' luci-app-design-config/root/etc/config/design 7 | #Argon Theme 8 | git clone --depth=1 --single-branch --branch $(echo $OWRT_URL | grep -iq "lede" && echo "18.06" || echo "master") https://github.com/jerrykuku/luci-theme-argon.git 9 | git clone --depth=1 --single-branch --branch $(echo $OWRT_URL | grep -iq "lede" && echo "18.06" || echo "master") https://github.com/jerrykuku/luci-app-argon-config.git 10 | #Linkease 11 | git clone --depth=1 --single-branch https://github.com/linkease/istore.git 12 | git clone --depth=1 --single-branch https://github.com/linkease/nas-packages.git 13 | git clone --depth=1 --single-branch https://github.com/linkease/nas-packages-luci.git 14 | #Open Clash 15 | git clone --depth=1 --single-branch --branch "dev" https://github.com/vernesong/OpenClash.git 16 | #Pass Wall 17 | git clone --depth=1 --single-branch --branch "main" https://github.com/xiaorouji/openwrt-passwall.git ./pw_luci 18 | git clone --depth=1 --single-branch --branch "main" https://github.com/xiaorouji/openwrt-passwall-packages.git ./pw_packages 19 | 20 | #预置OpenClash内核和GEO数据 21 | export CORE_VER=https://raw.githubusercontent.com/vernesong/OpenClash/core/dev/core_version 22 | export CORE_TUN=https://github.com/vernesong/OpenClash/raw/core/dev/premium/clash-linux 23 | export CORE_DEV=https://github.com/vernesong/OpenClash/raw/core/dev/dev/clash-linux 24 | export CORE_MATE=https://github.com/vernesong/OpenClash/raw/core/dev/meta/clash-linux 25 | 26 | export CORE_TYPE=$(echo $OWRT_TARGET | grep -Eiq "64|86" && echo "amd64" || echo "arm64") 27 | export TUN_VER=$(curl -sfL $CORE_VER | sed -n "2{s/\r$//;p;q}") 28 | 29 | export GEO_MMDB=https://github.com/alecthw/mmdb_china_ip_list/raw/release/lite/Country.mmdb 30 | export GEO_SITE=https://github.com/Loyalsoldier/v2ray-rules-dat/raw/release/geosite.dat 31 | export GEO_IP=https://github.com/Loyalsoldier/v2ray-rules-dat/raw/release/geoip.dat 32 | 33 | cd ./OpenClash/luci-app-openclash/root/etc/openclash 34 | 35 | curl -sfL -o ./Country.mmdb $GEO_MMDB 36 | curl -sfL -o ./GeoSite.dat $GEO_SITE 37 | curl -sfL -o ./GeoIP.dat $GEO_IP 38 | 39 | mkdir ./core && cd ./core 40 | 41 | curl -sfL -o ./tun.gz "$CORE_TUN"-"$CORE_TYPE"-"$TUN_VER".gz 42 | gzip -d ./tun.gz && mv ./tun ./clash_tun 43 | 44 | curl -sfL -o ./meta.tar.gz "$CORE_MATE"-"$CORE_TYPE".tar.gz 45 | tar -zxf ./meta.tar.gz && mv ./clash ./clash_meta 46 | 47 | curl -sfL -o ./dev.tar.gz "$CORE_DEV"-"$CORE_TYPE".tar.gz 48 | tar -zxf ./dev.tar.gz 49 | 50 | chmod +x ./clash* ; rm -rf ./*.gz 51 | -------------------------------------------------------------------------------- /Scripts/Renames.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #批量重命名为 源码_型号_日期 4 | for var in $OWRT_TYPE ; do 5 | for file in $(find ./ -type f -iname "*$var*.*" ! -iname "*.txt") ; do 6 | export ext=$(basename "$file" | cut -d '.' -f 2-) 7 | export name=$(basename "$file" | cut -d '.' -f 1 | grep -io "\($var\).*") 8 | export new_file="$OWRT_SOURCE"_"$name"_"$OWRT_DATE"."$ext" 9 | mv -f "$file" "$new_file" 10 | done 11 | done 12 | -------------------------------------------------------------------------------- /Scripts/Settings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #删除冲突插件 4 | rm -rf $(find ./feeds/luci/ -type d -regex ".*\(argon\|design\|openclash\).*") 5 | rm -rf feeds/smpackage/{base-files,dnsmasq,firewall*,fullconenat,libnftnl,nftables,ppp,opkg,ucl,upx,vsftpd-alt,miniupnpd-iptables,wireless-regdb} 6 | #修改默认主题 7 | sed -i "s/luci-theme-bootstrap/luci-theme-$OWRT_THEME/g" $(find ./feeds/luci/collections/ -type f -name "Makefile") 8 | #修改默认IP地址 9 | sed -i "s/192\.168\.[0-9]*\.[0-9]*/$OWRT_IP/g" ./package/base-files/files/bin/config_generate 10 | #修改默认主机名 11 | sed -i "s/hostname='.*'/hostname='$OWRT_NAME'/g" ./package/base-files/files/bin/config_generate 12 | #修改默认时区 13 | sed -i "s/timezone='.*'/timezone='CST-8'/g" ./package/base-files/files/bin/config_generate 14 | sed -i "/timezone='.*'/a\\\t\t\set system.@system[-1].zonename='Asia/Shanghai'" ./package/base-files/files/bin/config_generate 15 | 16 | #根据源码来修改 17 | if [[ $OWRT_URL == *"lede"* ]] ; then 18 | #修改默认时间格式 19 | sed -i 's/os.date()/os.date("%Y-%m-%d %H:%M:%S %A")/g' $(find ./package/*/autocore/files/ -type f -name "index.htm") 20 | fi 21 | -------------------------------------------------------------------------------- /general/AX6/package/firmware/ipq-wifi/Makefile: -------------------------------------------------------------------------------- 1 | include $(TOPDIR)/rules.mk 2 | include $(INCLUDE_DIR)/version.mk 3 | 4 | PKG_NAME:=ipq-wifi 5 | PKG_RELEASE:=1 6 | PKG_FLAGS:=nonshared 7 | 8 | include $(INCLUDE_DIR)/package.mk 9 | 10 | define Build/Prepare 11 | mkdir -p $(PKG_BUILD_DIR) 12 | endef 13 | 14 | define Build/Compile 15 | endef 16 | 17 | # Use ath10k-bdencoder from https://github.com/qca/qca-swiss-army-knife.git 18 | # to generate the board-* files here. 19 | # 20 | # This is intended to be used on an interim basis until device-specific 21 | # board data for new devices is available through the upstream compilation 22 | # 23 | # Please send a mail with your device-specific board files upstream. 24 | # You can find instructions and examples on the linux-wireless wiki: 25 | # 26 | 27 | ALLWIFIBOARDS:= \ 28 | 8dev_habanero-dvk \ 29 | aruba_ap-303 \ 30 | asus_rt-acrh17 \ 31 | avm_fritzrepeater-1200 \ 32 | buffalo_wtr-m2133hp \ 33 | cellc_rtl30vw \ 34 | century_wr142ac \ 35 | devolo_magic-2-wifi-next \ 36 | dlink_dap2610 \ 37 | edgecore_ecw5410 \ 38 | edgecore_oap100 \ 39 | engenius_eap2200 \ 40 | engenius_emd1 \ 41 | engenius_emr3500 \ 42 | ezviz_cs-w3-wd1200g-eup \ 43 | glinet_gl-ap1300 \ 44 | glinet_gl-s1300 \ 45 | hiwifi_c526a \ 46 | linksys_ea8300 \ 47 | linksys_mr8300-v0 \ 48 | luma_wrtq-329acn \ 49 | mikrotik_hap-ac2 \ 50 | mikrotik_sxtsq-5-ac \ 51 | mobipromo_cm520-79f \ 52 | nec_wg2600hp3 \ 53 | netgear_sxr80 \ 54 | netgear_wac510 \ 55 | plasmacloud_pa1200 \ 56 | plasmacloud_pa2200 \ 57 | p2w_r619ac \ 58 | qnap_301w \ 59 | qxwlan_e2600ac \ 60 | redmi_ax6 \ 61 | xiaomi_ax3600 \ 62 | xiaomi_ax9000 \ 63 | zte_mf263 \ 64 | zte_mf269 65 | 66 | ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) 67 | 68 | define Package/ipq-wifi-default 69 | SUBMENU:=ath10k Board-Specific Overrides 70 | SECTION:=firmware 71 | CATEGORY:=Firmware 72 | DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_ipq807x) 73 | TITLE:=Custom Board 74 | endef 75 | 76 | define ipq-wifi-install-one-to 77 | $(INSTALL_DIR) $(2)/lib/firmware/ath10k/$(3)/ 78 | $(INSTALL_DATA) $(1) $(2)/lib/firmware/ath10k/$(3)/board-2.bin 79 | endef 80 | 81 | define ipq-wifi-install-ath11-one-to 82 | $(INSTALL_DIR) $(2)/lib/firmware/ath11k/$(3)/ 83 | $(INSTALL_DATA) $(1) $(2)/lib/firmware/ath11k/$(3)/board-2.bin 84 | endef 85 | 86 | define ipq-wifi-install-one 87 | $(if $(filter $(suffix $(1)),.QCA4019 .qca4019),\ 88 | $(call ipq-wifi-install-one-to,$(1),$(2),QCA4019/hw1.0),\ 89 | $(if $(filter $(suffix $(1)),.QCA9888 .qca9888),\ 90 | $(call ipq-wifi-install-one-to,$(1),$(2),QCA9888/hw2.0),\ 91 | $(if $(filter $(suffix $(1)),.QCA9984 .qca9984),\ 92 | $(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\ 93 | $(if $(filter $(suffix $(1)),.QCA9889 .qca9889),\ 94 | $(call ipq-wifi-install-one-to,$(1),$(2),QCA9887/hw1.0),\ 95 | $(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074),\ 96 | $(call ipq-wifi-install-ath11-one-to,$(1),$(2),IPQ8074/hw2.0),\ 97 | $(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\ 98 | ))))) 99 | 100 | endef 101 | # Blank line required at end of above define due to foreach context 102 | 103 | define generate-ipq-wifi-package 104 | define Package/ipq-wifi-$(1) 105 | $(call Package/ipq-wifi-default) 106 | TITLE:=board-2.bin Overrides for $(2) 107 | CONFLICTS:=$(PREV_BOARD) 108 | endef 109 | 110 | define Package/ipq-wifi-$(1)/description 111 | The $(2) requires board-specific, reference ("cal") data 112 | that is not yet present in the upstream wireless firmware distribution. 113 | 114 | This package supplies board-2.bin file(s) that, in the interim, 115 | overwrite those supplied by the ath10k-firmware-* packages. 116 | 117 | This is package is only necessary for the $(2). 118 | 119 | Do not install it for any other device! 120 | endef 121 | 122 | define Package/ipq-wifi-$(1)/install-overlay 123 | $$$$(foreach IPQ_WIFI_BOARD_FILE,$$$$(wildcard board-$(1).*),\ 124 | $$$$(call ipq-wifi-install-one,$$$$(IPQ_WIFI_BOARD_FILE),$$(1))) 125 | endef 126 | 127 | PREV_BOARD+=ipq-wifi-$(1) 128 | endef 129 | 130 | # Add board name to ALLWIFIBOARDS 131 | # Place files in this directory as board-. 132 | # Add $(eval $(call generate-ipq-wifi-package,,)) 133 | 134 | $(eval $(call generate-ipq-wifi-package,8dev_habanero-dvk,8devices Habanero DVK)) 135 | $(eval $(call generate-ipq-wifi-package,aruba_ap-303,Aruba AP-303)) 136 | $(eval $(call generate-ipq-wifi-package,asus_rt-acrh17,ASUS RT-ACRH17/RT-AC82U/RT-AC42U)) 137 | $(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200)) 138 | $(eval $(call generate-ipq-wifi-package,buffalo_wtr-m2133hp,Buffalo WTR-M2133HP)) 139 | $(eval $(call generate-ipq-wifi-package,cellc_rtl30vw, Cell C RTL30VW)) 140 | $(eval $(call generate-ipq-wifi-package,century_wr142ac,Century WR142AC)) 141 | $(eval $(call generate-ipq-wifi-package,devolo_magic-2-wifi-next,devolo Magic 2 WiFi next)) 142 | $(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610)) 143 | $(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410)) 144 | $(eval $(call generate-ipq-wifi-package,edgecore_oap100,Edgecore OAP100)) 145 | $(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200)) 146 | $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) 147 | $(eval $(call generate-ipq-wifi-package,engenius_emr3500,EnGenius EMR3500)) 148 | $(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) 149 | $(eval $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300)) 150 | $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) 151 | $(eval $(call generate-ipq-wifi-package,hiwifi_c526a,HiWiFi C526A)) 152 | $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) 153 | $(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) 154 | $(eval $(call generate-ipq-wifi-package,luma_wrtq-329acn,Luma WRTQ-329ACN)) 155 | $(eval $(call generate-ipq-wifi-package,mikrotik_hap-ac2,Mikrotik hAP ac2)) 156 | $(eval $(call generate-ipq-wifi-package,mikrotik_sxtsq-5-ac,MikroTik SXTsq 5 ac)) 157 | $(eval $(call generate-ipq-wifi-package,mobipromo_cm520-79f,MobiPromo CM520-79F)) 158 | $(eval $(call generate-ipq-wifi-package,nec_wg2600hp3,NEC Platforms WG2600HP3)) 159 | $(eval $(call generate-ipq-wifi-package,netgear_sxr80,Netgear SXR80)) 160 | $(eval $(call generate-ipq-wifi-package,netgear_wac510,Netgear WAC510)) 161 | $(eval $(call generate-ipq-wifi-package,plasmacloud_pa1200,Plasma Cloud PA1200)) 162 | $(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200)) 163 | $(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC)) 164 | $(eval $(call generate-ipq-wifi-package,qnap_301w,QNAP 301w)) 165 | $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC)) 166 | $(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6)) 167 | $(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600)) 168 | $(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000)) 169 | $(eval $(call generate-ipq-wifi-package,zte_mf263,ZTE MF263)) 170 | $(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269)) 171 | 172 | $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) 173 | -------------------------------------------------------------------------------- /general/AX6/package/firmware/ipq-wifi/board-redmi_ax6.ipq8074: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yaya131/RedMi-AX6-NSS/c78e874ed8080192cbdebd3f091077482e9c9ec0/general/AX6/package/firmware/ipq-wifi/board-redmi_ax6.ipq8074 -------------------------------------------------------------------------------- /general/AX6/package/firmware/ipq-wifi/board-xiaomi_ax3600.ipq8074: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yaya131/RedMi-AX6-NSS/c78e874ed8080192cbdebd3f091077482e9c9ec0/general/AX6/package/firmware/ipq-wifi/board-xiaomi_ax3600.ipq8074 -------------------------------------------------------------------------------- /general/AX6/package/firmware/ipq-wifi/board-xiaomi_ax3600.qca9889: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yaya131/RedMi-AX6-NSS/c78e874ed8080192cbdebd3f091077482e9c9ec0/general/AX6/package/firmware/ipq-wifi/board-xiaomi_ax3600.qca9889 -------------------------------------------------------------------------------- /general/AX6/package/firmware/ipq-wifi/board-xiaomi_ax9000.ipq8074: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yaya131/RedMi-AX6-NSS/c78e874ed8080192cbdebd3f091077482e9c9ec0/general/AX6/package/firmware/ipq-wifi/board-xiaomi_ax9000.ipq8074 -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/base-files/etc/board.d/01_leds: -------------------------------------------------------------------------------- 1 | 2 | . /lib/functions/leds.sh 3 | . /lib/functions/uci-defaults.sh 4 | 5 | board=$(board_name) 6 | 7 | board_config_update 8 | 9 | case $board in 10 | xiaomi,ax3600|\ 11 | redmi,ax6) 12 | ucidef_set_led_netdev "wan" "WAN" "blue:network" "eth0" 13 | ;; 14 | qnap,301w) 15 | ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth0" 16 | ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth1" 17 | ucidef_set_led_netdev "lan3" "LAN3" "green:lan3" "eth2" 18 | ucidef_set_led_netdev "lan4" "LAN4" "green:lan4" "eth3" 19 | ucidef_set_led_netdev "10G_1" "10G_1" "green:10g_1" "eth4" 20 | ucidef_set_led_netdev "10G_2" "10G_2" "green:10g_2" "eth5" 21 | ;; 22 | esac 23 | 24 | board_config_flush 25 | 26 | exit 0 27 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/base-files/etc/board.d/02_network: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2015 The Linux Foundation. All rights reserved. 3 | # Copyright (c) 2011-2015 OpenWrt.org 4 | # 5 | 6 | . /lib/functions/uci-defaults.sh 7 | . /lib/functions/system.sh 8 | 9 | ipq807x_setup_interfaces() 10 | { 11 | local board="$1" 12 | 13 | case "$board" in 14 | qnap,301w) 15 | ucidef_set_interfaces_lan_wan "eth0 eth1 eth2 eth3 eth4" "eth5" 16 | ;; 17 | redmi,ax6|\ 18 | xiaomi,ax3600) 19 | ucidef_set_interfaces_lan_wan "eth1 eth2 eth3" "eth0" 20 | ;; 21 | zte,mf269) 22 | ucidef_set_interfaces_lan_wan "eth0" "eth1" 23 | hw_mac_addr=$(mtd_get_mac_binary "mac" 0x0) 24 | ucidef_set_interface_macaddr "wan" "$hw_mac_addr" 25 | ucidef_set_interface_macaddr "lan" "$(macaddr_add $hw_mac_addr 1)" 26 | ;; 27 | *) 28 | echo "Unsupported hardware. Network interfaces not initialized" 29 | ;; 30 | esac 31 | } 32 | 33 | board_config_update 34 | board=$(board_name) 35 | ipq807x_setup_interfaces $board 36 | board_config_flush 37 | 38 | exit 0 39 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | [ -e /lib/firmware/$FIRMWARE ] && exit 0 4 | 5 | . /lib/functions/caldata.sh 6 | 7 | board=$(board_name) 8 | 9 | case "$FIRMWARE" in 10 | "ath10k/cal-pci-0000:01:00.0.bin") 11 | case "$board" in 12 | xiaomi,ax3600) 13 | caldata_extract "0:art" 0x33000 0x844 14 | ;; 15 | esac 16 | ;; 17 | *) 18 | exit 1 19 | ;; 20 | esac 21 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | [ -e /lib/firmware/$FIRMWARE ] && exit 0 4 | 5 | . /lib/functions/caldata.sh 6 | 7 | board=$(board_name) 8 | 9 | case "$FIRMWARE" in 10 | "ath11k/IPQ8074/hw2.0/caldata.bin") 11 | case "$board" in 12 | qnap,301w|\ 13 | redmi,ax6|\ 14 | xiaomi,ax3600|\ 15 | xiaomi,ax9000) 16 | caldata_extract "0:art" 0x1000 0x20000 17 | ;; 18 | zte,mf269) 19 | caldata_extract "0:ART" 0x1000 0x20000 20 | ;; 21 | esac 22 | ;; 23 | *) 24 | exit 1 25 | ;; 26 | esac 27 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/base-files/lib/upgrade/platform.sh: -------------------------------------------------------------------------------- 1 | PART_NAME=firmware 2 | REQUIRE_IMAGE_METADATA=1 3 | 4 | RAMFS_COPY_BIN='fw_printenv fw_setenv' 5 | RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' 6 | 7 | platform_check_image() { 8 | return 0; 9 | } 10 | 11 | platform_do_upgrade() { 12 | case "$(board_name)" in 13 | qnap,301w) 14 | kernelname="0:HLOS" 15 | rootfsname="rootfs" 16 | mmc_do_upgrade "$1" 17 | ;; 18 | redmi,ax6|\ 19 | xiaomi,ax3600|\ 20 | xiaomi,ax9000) 21 | part_num="$(fw_printenv -n flag_boot_rootfs)" 22 | if [ "$part_num" -eq "1" ]; then 23 | CI_UBIPART="rootfs_1" 24 | target_num=1 25 | # Reset fail flag for the current partition 26 | # With both partition set to fail, the partition 2 (bit 1) 27 | # is loaded 28 | fw_setenv flag_try_sys2_failed 0 29 | else 30 | CI_UBIPART="rootfs" 31 | target_num=0 32 | # Reset fail flag for the current partition 33 | # or uboot will skip the loading of this partition 34 | fw_setenv flag_try_sys1_failed 0 35 | fi 36 | 37 | # Tell uboot to switch partition 38 | fw_setenv flag_boot_rootfs $target_num 39 | fw_setenv flag_last_success $target_num 40 | 41 | # Reset success flag 42 | fw_setenv flag_boot_success 0 43 | 44 | nand_do_upgrade "$1" 45 | ;; 46 | zte,mf269) 47 | nand_do_upgrade "$1" 48 | ;; 49 | *) 50 | default_do_upgrade "$1" 51 | ;; 52 | esac 53 | } 54 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-ax3600-1G.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 | /* Copyright (c) 2021, Robert Marko */ 3 | 4 | /dts-v1/; 5 | 6 | #include "ipq8071-ax3600.dtsi" 7 | 8 | / { 9 | model = "Xiaomi Mi AIoT Router AX3600 1G"; 10 | compatible = "xiaomi,ax3600-1G", "qcom,ipq8074"; 11 | 12 | leds { 13 | compatible = "gpio-leds"; 14 | 15 | led_system_blue: system-blue { 16 | label = "blue:system"; 17 | gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; 18 | }; 19 | 20 | led_system_yellow: system-yellow { 21 | label = "yellow:system"; 22 | gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>; 23 | }; 24 | 25 | network-yellow { 26 | label = "yellow:network"; 27 | gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>; 28 | }; 29 | 30 | network-blue { 31 | label = "blue:network"; 32 | gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 33 | }; 34 | 35 | aiot { 36 | label = "blue:aiot"; 37 | gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>; 38 | linux,default-trigger = "phy0tpt"; 39 | }; 40 | }; 41 | }; 42 | 43 | &qmp_pcie_phy0 { 44 | status = "okay"; 45 | }; 46 | 47 | &pcie0 { 48 | status = "okay"; 49 | 50 | perst-gpio = <&tlmm 52 GPIO_ACTIVE_HIGH>; 51 | 52 | bridge@0,0 { 53 | reg = <0x00000000 0 0 0 0>; 54 | #address-cells = <3>; 55 | #size-cells = <2>; 56 | ranges; 57 | 58 | wifi0: wifi@1,0 { 59 | status = "okay"; 60 | 61 | compatible = "qcom,ath10k"; 62 | reg = <0x00010000 0 0 0 0>; 63 | 64 | qcom,ath10k-calibration-variant = "Xiaomi-AX3600"; 65 | }; 66 | }; 67 | }; 68 | 69 | &wifi { 70 | qcom,ath11k-calibration-variant = "Xiaomi-AX3600"; 71 | }; 72 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-ax3600.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 | /* Copyright (c) 2021, Robert Marko */ 3 | 4 | /dts-v1/; 5 | 6 | #include "ipq8071-ax3600.dtsi" 7 | 8 | / { 9 | model = "Xiaomi AX3600"; 10 | compatible = "xiaomi,ax3600", "qcom,ipq8074"; 11 | 12 | leds { 13 | compatible = "gpio-leds"; 14 | 15 | led_system_blue: system-blue { 16 | label = "blue:system"; 17 | gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; 18 | }; 19 | 20 | led_system_yellow: system-yellow { 21 | label = "yellow:system"; 22 | gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>; 23 | }; 24 | 25 | network-yellow { 26 | label = "yellow:network"; 27 | gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>; 28 | }; 29 | 30 | network-blue { 31 | label = "blue:network"; 32 | gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 33 | }; 34 | 35 | aiot { 36 | label = "blue:aiot"; 37 | gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>; 38 | linux,default-trigger = "phy0tpt"; 39 | }; 40 | }; 41 | }; 42 | 43 | &qmp_pcie_phy0 { 44 | status = "okay"; 45 | }; 46 | 47 | &pcie0 { 48 | status = "okay"; 49 | 50 | perst-gpio = <&tlmm 52 GPIO_ACTIVE_HIGH>; 51 | 52 | bridge@0,0 { 53 | reg = <0x00000000 0 0 0 0>; 54 | #address-cells = <3>; 55 | #size-cells = <2>; 56 | ranges; 57 | 58 | wifi0: wifi@1,0 { 59 | status = "okay"; 60 | 61 | compatible = "qcom,ath10k"; 62 | reg = <0x00010000 0 0 0 0>; 63 | 64 | qcom,ath10k-calibration-variant = "Xiaomi-AX3600"; 65 | }; 66 | }; 67 | }; 68 | 69 | &wifi { 70 | qcom,ath11k-calibration-variant = "Xiaomi-AX3600"; 71 | }; 72 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-ax3600.dtsi: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 | /* Copyright (c) 2021, Robert Marko */ 3 | 4 | #include "ipq8074.dtsi" 5 | #include "ipq8074-ac-cpu.dtsi" 6 | #include "ipq8074-ac-nss.dtsi" 7 | #include "ipq8074-memory-512m.dtsi" 8 | #include 9 | #include 10 | 11 | / { 12 | #address-cells = <2>; 13 | #size-cells = <2>; 14 | 15 | interrupt-parent = <&intc>; 16 | 17 | aliases { 18 | serial0 = &blsp1_uart5; 19 | led-boot = &led_system_yellow; 20 | led-failsafe = &led_system_yellow; 21 | led-running = &led_system_blue; 22 | led-upgrade = &led_system_yellow; 23 | /* Aliases as required by u-boot to patch MAC addresses */ 24 | ethernet1 = &dp2; 25 | ethernet2 = &dp3; 26 | ethernet3 = &dp4; 27 | ethernet4 = &dp5; 28 | label-mac-device = &dp2; 29 | }; 30 | 31 | chosen { 32 | stdout-path = "serial0:115200n8"; 33 | bootargs-append = " root=/dev/ubiblock0_1"; 34 | }; 35 | 36 | keys { 37 | compatible = "gpio-keys"; 38 | 39 | reset { 40 | label = "reset"; 41 | gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; 42 | linux,code = ; 43 | }; 44 | }; 45 | 46 | reserved-memory { 47 | /delete-node/ tzapp@4a400000; 48 | /delete-node/ q6_etr_dump@50f00000; 49 | /delete-node/ m3_dump@51000000; 50 | }; 51 | }; 52 | 53 | &tlmm { 54 | mdio_pins: mdio-pins { 55 | mdc { 56 | pins = "gpio68"; 57 | function = "mdc"; 58 | drive-strength = <8>; 59 | bias-pull-up; 60 | }; 61 | 62 | mdio { 63 | pins = "gpio69"; 64 | function = "mdio"; 65 | drive-strength = <8>; 66 | bias-pull-up; 67 | }; 68 | }; 69 | }; 70 | 71 | &blsp1_uart5 { 72 | status = "okay"; 73 | }; 74 | 75 | &prng { 76 | status = "okay"; 77 | }; 78 | 79 | &cryptobam { 80 | status = "okay"; 81 | }; 82 | 83 | &crypto { 84 | status = "okay"; 85 | }; 86 | 87 | &qpic_bam { 88 | status = "okay"; 89 | }; 90 | 91 | &qpic_nand { 92 | status = "okay"; 93 | 94 | nand@0 { 95 | reg = <0>; 96 | nand-ecc-strength = <4>; 97 | nand-ecc-step-size = <512>; 98 | nand-bus-width = <8>; 99 | 100 | partitions { 101 | compatible = "qcom,smem-part"; 102 | }; 103 | }; 104 | }; 105 | 106 | &mdio { 107 | status = "okay"; 108 | 109 | pinctrl-0 = <&mdio_pins>; 110 | pinctrl-names = "default"; 111 | /* 112 | * Disable the reset GPIO temporarely as it 113 | * resets the 100Mbit LED configuration which 114 | * the bootloader writes. 115 | */ 116 | //reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; 117 | 118 | ethernet-phy@1 { 119 | reg = <1>; 120 | }; 121 | 122 | ethernet-phy@2 { 123 | reg = <2>; 124 | }; 125 | 126 | ethernet-phy@3 { 127 | reg = <3>; 128 | }; 129 | 130 | ethernet-phy@4 { 131 | reg = <4>; 132 | }; 133 | }; 134 | 135 | &ess_switch { 136 | switch_cpu_bmp = <0x1>; /* cpu port bitmap */ 137 | switch_lan_bmp = <0x1e>; /* lan port bitmap */ 138 | switch_wan_bmp = <0x20>; /* wan port bitmap */ 139 | switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ 140 | switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ 141 | switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ 142 | bm_tick_mode = <0>; /* bm tick mode */ 143 | tm_tick_mode = <0>; /* tm tick mode */ 144 | qcom,port_phyinfo { 145 | port@0 { 146 | port_id = <1>; 147 | phy_address = <0>; 148 | }; 149 | port@1 { 150 | port_id = <2>; 151 | phy_address = <1>; 152 | }; 153 | port@2 { 154 | port_id = <3>; 155 | phy_address = <2>; 156 | }; 157 | port@3 { 158 | port_id = <4>; 159 | phy_address = <3>; 160 | }; 161 | port@4 { 162 | port_id = <5>; 163 | phy_address = <4>; 164 | }; 165 | }; 166 | port_scheduler_resource { 167 | port@0 { 168 | port_id = <0>; 169 | ucast_queue = <0 143>; 170 | mcast_queue = <256 271>; 171 | l0sp = <0 35>; 172 | l0cdrr = <0 47>; 173 | l0edrr = <0 47>; 174 | l1cdrr = <0 7>; 175 | l1edrr = <0 7>; 176 | }; 177 | port@1 { 178 | port_id = <1>; 179 | ucast_queue = <144 159>; 180 | mcast_queue = <272 275>; 181 | l0sp = <36 39>; 182 | l0cdrr = <48 63>; 183 | l0edrr = <48 63>; 184 | l1cdrr = <8 11>; 185 | l1edrr = <8 11>; 186 | }; 187 | port@2 { 188 | port_id = <2>; 189 | ucast_queue = <160 175>; 190 | mcast_queue = <276 279>; 191 | l0sp = <40 43>; 192 | l0cdrr = <64 79>; 193 | l0edrr = <64 79>; 194 | l1cdrr = <12 15>; 195 | l1edrr = <12 15>; 196 | }; 197 | port@3 { 198 | port_id = <3>; 199 | ucast_queue = <176 191>; 200 | mcast_queue = <280 283>; 201 | l0sp = <44 47>; 202 | l0cdrr = <80 95>; 203 | l0edrr = <80 95>; 204 | l1cdrr = <16 19>; 205 | l1edrr = <16 19>; 206 | }; 207 | port@4 { 208 | port_id = <4>; 209 | ucast_queue = <192 207>; 210 | mcast_queue = <284 287>; 211 | l0sp = <48 51>; 212 | l0cdrr = <96 111>; 213 | l0edrr = <96 111>; 214 | l1cdrr = <20 23>; 215 | l1edrr = <20 23>; 216 | }; 217 | port@5 { 218 | port_id = <5>; 219 | ucast_queue = <208 223>; 220 | mcast_queue = <288 291>; 221 | l0sp = <52 55>; 222 | l0cdrr = <112 127>; 223 | l0edrr = <112 127>; 224 | l1cdrr = <24 27>; 225 | l1edrr = <24 27>; 226 | }; 227 | port@6 { 228 | port_id = <6>; 229 | ucast_queue = <224 239>; 230 | mcast_queue = <292 295>; 231 | l0sp = <56 59>; 232 | l0cdrr = <128 143>; 233 | l0edrr = <128 143>; 234 | l1cdrr = <28 31>; 235 | l1edrr = <28 31>; 236 | }; 237 | port@7 { 238 | port_id = <7>; 239 | ucast_queue = <240 255>; 240 | mcast_queue = <296 299>; 241 | l0sp = <60 63>; 242 | l0cdrr = <144 159>; 243 | l0edrr = <144 159>; 244 | l1cdrr = <32 35>; 245 | l1edrr = <32 35>; 246 | }; 247 | }; 248 | port_scheduler_config { 249 | port@0 { 250 | port_id = <0>; 251 | l1scheduler { 252 | group@0 { 253 | sp = <0 1>; /*L0 SPs*/ 254 | /*cpri cdrr epri edrr*/ 255 | cfg = <0 0 0 0>; 256 | }; 257 | }; 258 | l0scheduler { 259 | group@0 { 260 | /*unicast queues*/ 261 | ucast_queue = <0 4 8>; 262 | /*multicast queues*/ 263 | mcast_queue = <256 260>; 264 | /*sp cpri cdrr epri edrr*/ 265 | cfg = <0 0 0 0 0>; 266 | }; 267 | group@1 { 268 | ucast_queue = <1 5 9>; 269 | mcast_queue = <257 261>; 270 | cfg = <0 1 1 1 1>; 271 | }; 272 | group@2 { 273 | ucast_queue = <2 6 10>; 274 | mcast_queue = <258 262>; 275 | cfg = <0 2 2 2 2>; 276 | }; 277 | group@3 { 278 | ucast_queue = <3 7 11>; 279 | mcast_queue = <259 263>; 280 | cfg = <0 3 3 3 3>; 281 | }; 282 | }; 283 | }; 284 | port@1 { 285 | port_id = <1>; 286 | l1scheduler { 287 | group@0 { 288 | sp = <36>; 289 | cfg = <0 8 0 8>; 290 | }; 291 | group@1 { 292 | sp = <37>; 293 | cfg = <1 9 1 9>; 294 | }; 295 | }; 296 | l0scheduler { 297 | group@0 { 298 | ucast_queue = <144>; 299 | ucast_loop_pri = <16>; 300 | mcast_queue = <272>; 301 | mcast_loop_pri = <4>; 302 | cfg = <36 0 48 0 48>; 303 | }; 304 | }; 305 | }; 306 | port@2 { 307 | port_id = <2>; 308 | l1scheduler { 309 | group@0 { 310 | sp = <40>; 311 | cfg = <0 12 0 12>; 312 | }; 313 | group@1 { 314 | sp = <41>; 315 | cfg = <1 13 1 13>; 316 | }; 317 | }; 318 | l0scheduler { 319 | group@0 { 320 | ucast_queue = <160>; 321 | ucast_loop_pri = <16>; 322 | mcast_queue = <276>; 323 | mcast_loop_pri = <4>; 324 | cfg = <40 0 64 0 64>; 325 | }; 326 | }; 327 | }; 328 | port@3 { 329 | port_id = <3>; 330 | l1scheduler { 331 | group@0 { 332 | sp = <44>; 333 | cfg = <0 16 0 16>; 334 | }; 335 | group@1 { 336 | sp = <45>; 337 | cfg = <1 17 1 17>; 338 | }; 339 | }; 340 | l0scheduler { 341 | group@0 { 342 | ucast_queue = <176>; 343 | ucast_loop_pri = <16>; 344 | mcast_queue = <280>; 345 | mcast_loop_pri = <4>; 346 | cfg = <44 0 80 0 80>; 347 | }; 348 | }; 349 | }; 350 | port@4 { 351 | port_id = <4>; 352 | l1scheduler { 353 | group@0 { 354 | sp = <48>; 355 | cfg = <0 20 0 20>; 356 | }; 357 | group@1 { 358 | sp = <49>; 359 | cfg = <1 21 1 21>; 360 | }; 361 | }; 362 | l0scheduler { 363 | group@0 { 364 | ucast_queue = <192>; 365 | ucast_loop_pri = <16>; 366 | mcast_queue = <284>; 367 | mcast_loop_pri = <4>; 368 | cfg = <48 0 96 0 96>; 369 | }; 370 | }; 371 | }; 372 | port@5 { 373 | port_id = <5>; 374 | l1scheduler { 375 | group@0 { 376 | sp = <52>; 377 | cfg = <0 24 0 24>; 378 | }; 379 | group@1 { 380 | sp = <53>; 381 | cfg = <1 25 1 25>; 382 | }; 383 | }; 384 | l0scheduler { 385 | group@0 { 386 | ucast_queue = <208>; 387 | ucast_loop_pri = <16>; 388 | mcast_queue = <288>; 389 | mcast_loop_pri = <4>; 390 | cfg = <52 0 112 0 112>; 391 | }; 392 | }; 393 | }; 394 | port@6 { 395 | port_id = <6>; 396 | l1scheduler { 397 | group@0 { 398 | sp = <56>; 399 | cfg = <0 28 0 28>; 400 | }; 401 | group@1 { 402 | sp = <57>; 403 | cfg = <1 29 1 29>; 404 | }; 405 | }; 406 | l0scheduler { 407 | group@0 { 408 | ucast_queue = <224>; 409 | ucast_loop_pri = <16>; 410 | mcast_queue = <292>; 411 | mcast_loop_pri = <4>; 412 | cfg = <56 0 128 0 128>; 413 | }; 414 | }; 415 | }; 416 | port@7 { 417 | port_id = <7>; 418 | l1scheduler { 419 | group@0 { 420 | sp = <60>; 421 | cfg = <0 32 0 32>; 422 | }; 423 | group@1 { 424 | sp = <61>; 425 | cfg = <1 33 1 33>; 426 | }; 427 | }; 428 | l0scheduler { 429 | group@0 { 430 | ucast_queue = <240>; 431 | ucast_loop_pri = <16>; 432 | mcast_queue = <296>; 433 | cfg = <60 0 144 0 144>; 434 | }; 435 | }; 436 | }; 437 | }; 438 | }; 439 | 440 | &soc { 441 | dp2: dp2 { 442 | device_type = "network"; 443 | compatible = "qcom,nss-dp"; 444 | qcom,id = <2>; 445 | reg = <0x3a001200 0x200>; 446 | qcom,mactype = <0>; 447 | local-mac-address = [000000000000]; 448 | qcom,link-poll = <1>; 449 | qcom,phy-mdio-addr = <1>; 450 | phy-mode = "sgmii"; 451 | mdio-bus = <&mdio>; 452 | }; 453 | 454 | dp3: dp3 { 455 | device_type = "network"; 456 | compatible = "qcom,nss-dp"; 457 | qcom,id = <3>; 458 | reg = <0x3a001400 0x200>; 459 | qcom,mactype = <0>; 460 | local-mac-address = [000000000000]; 461 | qcom,link-poll = <1>; 462 | qcom,phy-mdio-addr = <2>; 463 | phy-mode = "sgmii"; 464 | mdio-bus = <&mdio>; 465 | }; 466 | 467 | dp4: dp4 { 468 | device_type = "network"; 469 | compatible = "qcom,nss-dp"; 470 | qcom,id = <4>; 471 | reg = <0x3a001600 0x200>; 472 | qcom,mactype = <0>; 473 | local-mac-address = [000000000000]; 474 | qcom,link-poll = <1>; 475 | qcom,phy-mdio-addr = <3>; 476 | phy-mode = "sgmii"; 477 | mdio-bus = <&mdio>; 478 | }; 479 | 480 | dp5: dp5 { 481 | device_type = "network"; 482 | compatible = "qcom,nss-dp"; 483 | qcom,id = <5>; 484 | reg = <0x3a001800 0x200>; 485 | qcom,mactype = <0>; 486 | local-mac-address = [000000000000]; 487 | qcom,link-poll = <1>; 488 | qcom,phy-mdio-addr = <4>; 489 | phy-mode = "sgmii"; 490 | mdio-bus = <&mdio>; 491 | }; 492 | }; 493 | 494 | &wifi { 495 | status = "okay"; 496 | 497 | qcom,board_id = <658>; 498 | }; 499 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-ax6.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 | /* Copyright (c) 2021, Zhijun You */ 3 | 4 | /dts-v1/; 5 | 6 | #include "ipq8071-ax3600.dtsi" 7 | 8 | / { 9 | model = "Redmi AX6"; 10 | compatible = "redmi,ax6", "qcom,ipq8074"; 11 | 12 | leds { 13 | compatible = "gpio-leds"; 14 | 15 | led_system_blue: system-blue { 16 | label = "blue:system"; 17 | gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 18 | }; 19 | 20 | led_system_yellow: system-yellow { 21 | label = "yellow:system"; 22 | gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>; 23 | }; 24 | 25 | network-blue { 26 | label = "blue:network"; 27 | gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; 28 | }; 29 | 30 | network-yellow { 31 | label = "yellow:network"; 32 | gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>; 33 | }; 34 | }; 35 | }; 36 | 37 | &wifi { 38 | qcom,ath11k-calibration-variant = "Redmi-AX6"; 39 | }; 40 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-ax9000.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2 | /* Copyright (c) 2021, Robert Marko */ 3 | 4 | /dts-v1/; 5 | 6 | #include "ipq8074.dtsi" 7 | #include "ipq8074-hk-cpu.dtsi" 8 | #include "ipq8074-ac-nss.dtsi" 9 | #include 10 | #include 11 | #include 12 | 13 | / { 14 | #address-cells = <2>; 15 | #size-cells = <2>; 16 | 17 | model = "Xiaomi AX9000"; 18 | compatible = "xiaomi,ax9000", "qcom,ipq8074"; 19 | interrupt-parent = <&intc>; 20 | 21 | aliases { 22 | serial0 = &blsp1_uart5; 23 | led-boot = &led_system_yellow; 24 | led-failsafe = &led_system_yellow; 25 | led-running = &led_system_blue; 26 | led-upgrade = &led_system_yellow; 27 | /* Aliases as required by u-boot to patch MAC addresses */ 28 | ethernet0 = &dp1; 29 | ethernet1 = &dp2; 30 | ethernet2 = &dp3; 31 | ethernet3 = &dp4; 32 | ethernet4 = &dp5; 33 | label-mac-device = &dp5; 34 | }; 35 | 36 | chosen { 37 | stdout-path = "serial0:115200n8"; 38 | bootargs-append = " root=/dev/ubiblock0_1"; 39 | }; 40 | 41 | keys { 42 | compatible = "gpio-keys"; 43 | 44 | reset { 45 | label = "reset"; 46 | gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; 47 | linux,code = ; 48 | }; 49 | 50 | wps { 51 | label = "wps"; /* Labeled Mesh on the device */ 52 | gpios = <&tlmm 46 GPIO_ACTIVE_LOW>; 53 | linux,code = ; 54 | }; 55 | }; 56 | 57 | leds { 58 | compatible = "gpio-leds"; 59 | 60 | led_system_blue: system-blue { 61 | label = "blue:system"; 62 | gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; 63 | color = ; 64 | }; 65 | 66 | led_system_yellow: system-yellow { 67 | label = "yellow:system"; 68 | gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>; 69 | color = ; 70 | }; 71 | 72 | network-yellow { 73 | label = "yellow:network"; 74 | gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; 75 | color = ; 76 | }; 77 | 78 | network-blue { 79 | label = "blue:network"; 80 | gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>; 81 | color = ; 82 | }; 83 | 84 | top-red { 85 | label = "red:top"; 86 | gpios = <&tlmm 63 GPIO_ACTIVE_HIGH>; 87 | color = ; 88 | default-state = "keep"; 89 | }; 90 | 91 | top-green { 92 | label = "green:top"; 93 | gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>; 94 | color = ; 95 | default-state = "keep"; 96 | }; 97 | 98 | top-blue { 99 | label = "blue:top"; 100 | gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>; 101 | color = ; 102 | default-state = "keep"; 103 | }; 104 | }; 105 | }; 106 | 107 | &tlmm { 108 | mdio_pins: mdio-pins { 109 | mdc { 110 | pins = "gpio68"; 111 | function = "mdc"; 112 | drive-strength = <8>; 113 | bias-pull-up; 114 | }; 115 | 116 | mdio { 117 | pins = "gpio69"; 118 | function = "mdio"; 119 | drive-strength = <8>; 120 | bias-pull-up; 121 | }; 122 | }; 123 | 124 | i2c_pins: i2c-pins { 125 | pins = "gpio0", "gpio2"; 126 | function = "blsp5_i2c"; 127 | drive-strength = <8>; 128 | bias-disable; 129 | }; 130 | }; 131 | 132 | &blsp1_uart5 { 133 | status = "okay"; 134 | }; 135 | 136 | &blsp1_i2c6 { 137 | status = "okay"; 138 | 139 | pinctrl-0 = <&i2c_pins>; 140 | pinctrl-names = "default"; 141 | 142 | /* Driver missing, justa placeholder */ 143 | emc2301@2f { 144 | compatible = "smsc,emc2301"; 145 | reg = <0x2f>; 146 | }; 147 | }; 148 | 149 | &prng { 150 | status = "okay"; 151 | }; 152 | 153 | &cryptobam { 154 | status = "okay"; 155 | }; 156 | 157 | &crypto { 158 | status = "okay"; 159 | }; 160 | 161 | &qpic_bam { 162 | status = "okay"; 163 | }; 164 | 165 | &qpic_nand { 166 | status = "okay"; 167 | 168 | nand@0 { 169 | reg = <0>; 170 | nand-ecc-strength = <4>; 171 | nand-ecc-step-size = <512>; 172 | nand-bus-width = <8>; 173 | 174 | partitions { 175 | compatible = "qcom,smem-part"; 176 | }; 177 | }; 178 | }; 179 | 180 | &qusb_phy_0 { 181 | status = "okay"; 182 | }; 183 | 184 | &ssphy_0 { 185 | status = "okay"; 186 | }; 187 | 188 | &usb_0 { 189 | status = "okay"; 190 | }; 191 | 192 | &mdio { 193 | status = "okay"; 194 | 195 | pinctrl-0 = <&mdio_pins>; 196 | pinctrl-names = "default"; 197 | reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; 198 | 199 | ethernet-phy@0 { 200 | reg = <0>; 201 | }; 202 | 203 | ethernet-phy@1 { 204 | reg = <1>; 205 | }; 206 | 207 | ethernet-phy@2 { 208 | reg = <2>; 209 | }; 210 | 211 | ethernet-phy@3 { 212 | reg = <3>; 213 | }; 214 | 215 | ethernet-phy@24 { 216 | /* 217 | * It looks like the PHY is too slow for 218 | * auto probing after reset is deasserted 219 | * so set the ID manually. 220 | */ 221 | compatible = "ethernet-phy-id004d.d101"; 222 | reg = <24>; 223 | reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; 224 | }; 225 | }; 226 | 227 | &qmp_pcie_phy0 { 228 | status = "okay"; 229 | }; 230 | 231 | &pcie0 { 232 | status = "okay"; 233 | 234 | perst-gpio = <&tlmm 58 GPIO_ACTIVE_LOW>; 235 | }; 236 | 237 | &qmp_pcie_phy1 { 238 | status = "disabled"; 239 | }; 240 | 241 | &pcie1 { 242 | status = "disabled"; 243 | 244 | perst-gpio = <&tlmm 62 GPIO_ACTIVE_HIGH>; 245 | }; 246 | 247 | &ess_switch { 248 | switch_cpu_bmp = <0x1>; /* cpu port bitmap */ 249 | switch_lan_bmp = <0x1e>; /* lan port bitmap */ 250 | switch_wan_bmp = <0x20>; /* wan port bitmap */ 251 | switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ 252 | switch_mac_mode1 = <0x0f>; /* mac mode for uniphy instance1*/ 253 | switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ 254 | bm_tick_mode = <0>; /* bm tick mode */ 255 | tm_tick_mode = <0>; /* tm tick mode */ 256 | qcom,port_phyinfo { 257 | port@0 { 258 | port_id = <1>; 259 | phy_address = <0>; 260 | }; 261 | 262 | port@1 { 263 | port_id = <2>; 264 | phy_address = <1>; 265 | }; 266 | 267 | port@2 { 268 | port_id = <3>; 269 | phy_address = <2>; 270 | }; 271 | 272 | port@3 { 273 | port_id = <4>; 274 | phy_address = <3>; 275 | }; 276 | 277 | port@4 { 278 | port_id = <5>; 279 | phy_address = <24>; 280 | port_mac_sel = "QGMAC_PORT"; 281 | }; 282 | }; 283 | port_scheduler_resource { 284 | port@0 { 285 | port_id = <0>; 286 | ucast_queue = <0 143>; 287 | mcast_queue = <256 271>; 288 | l0sp = <0 35>; 289 | l0cdrr = <0 47>; 290 | l0edrr = <0 47>; 291 | l1cdrr = <0 7>; 292 | l1edrr = <0 7>; 293 | }; 294 | port@1 { 295 | port_id = <1>; 296 | ucast_queue = <144 159>; 297 | mcast_queue = <272 275>; 298 | l0sp = <36 39>; 299 | l0cdrr = <48 63>; 300 | l0edrr = <48 63>; 301 | l1cdrr = <8 11>; 302 | l1edrr = <8 11>; 303 | }; 304 | port@2 { 305 | port_id = <2>; 306 | ucast_queue = <160 175>; 307 | mcast_queue = <276 279>; 308 | l0sp = <40 43>; 309 | l0cdrr = <64 79>; 310 | l0edrr = <64 79>; 311 | l1cdrr = <12 15>; 312 | l1edrr = <12 15>; 313 | }; 314 | port@3 { 315 | port_id = <3>; 316 | ucast_queue = <176 191>; 317 | mcast_queue = <280 283>; 318 | l0sp = <44 47>; 319 | l0cdrr = <80 95>; 320 | l0edrr = <80 95>; 321 | l1cdrr = <16 19>; 322 | l1edrr = <16 19>; 323 | }; 324 | port@4 { 325 | port_id = <4>; 326 | ucast_queue = <192 207>; 327 | mcast_queue = <284 287>; 328 | l0sp = <48 51>; 329 | l0cdrr = <96 111>; 330 | l0edrr = <96 111>; 331 | l1cdrr = <20 23>; 332 | l1edrr = <20 23>; 333 | }; 334 | port@5 { 335 | port_id = <5>; 336 | ucast_queue = <208 223>; 337 | mcast_queue = <288 291>; 338 | l0sp = <52 55>; 339 | l0cdrr = <112 127>; 340 | l0edrr = <112 127>; 341 | l1cdrr = <24 27>; 342 | l1edrr = <24 27>; 343 | }; 344 | port@6 { 345 | port_id = <6>; 346 | ucast_queue = <224 239>; 347 | mcast_queue = <292 295>; 348 | l0sp = <56 59>; 349 | l0cdrr = <128 143>; 350 | l0edrr = <128 143>; 351 | l1cdrr = <28 31>; 352 | l1edrr = <28 31>; 353 | }; 354 | port@7 { 355 | port_id = <7>; 356 | ucast_queue = <240 255>; 357 | mcast_queue = <296 299>; 358 | l0sp = <60 63>; 359 | l0cdrr = <144 159>; 360 | l0edrr = <144 159>; 361 | l1cdrr = <32 35>; 362 | l1edrr = <32 35>; 363 | }; 364 | }; 365 | port_scheduler_config { 366 | port@0 { 367 | port_id = <0>; 368 | l1scheduler { 369 | group@0 { 370 | sp = <0 1>; /*L0 SPs*/ 371 | /*cpri cdrr epri edrr*/ 372 | cfg = <0 0 0 0>; 373 | }; 374 | }; 375 | l0scheduler { 376 | group@0 { 377 | /*unicast queues*/ 378 | ucast_queue = <0 4 8>; 379 | /*multicast queues*/ 380 | mcast_queue = <256 260>; 381 | /*sp cpri cdrr epri edrr*/ 382 | cfg = <0 0 0 0 0>; 383 | }; 384 | group@1 { 385 | ucast_queue = <1 5 9>; 386 | mcast_queue = <257 261>; 387 | cfg = <0 1 1 1 1>; 388 | }; 389 | group@2 { 390 | ucast_queue = <2 6 10>; 391 | mcast_queue = <258 262>; 392 | cfg = <0 2 2 2 2>; 393 | }; 394 | group@3 { 395 | ucast_queue = <3 7 11>; 396 | mcast_queue = <259 263>; 397 | cfg = <0 3 3 3 3>; 398 | }; 399 | }; 400 | }; 401 | port@1 { 402 | port_id = <1>; 403 | l1scheduler { 404 | group@0 { 405 | sp = <36>; 406 | cfg = <0 8 0 8>; 407 | }; 408 | group@1 { 409 | sp = <37>; 410 | cfg = <1 9 1 9>; 411 | }; 412 | }; 413 | l0scheduler { 414 | group@0 { 415 | ucast_queue = <144>; 416 | ucast_loop_pri = <16>; 417 | mcast_queue = <272>; 418 | mcast_loop_pri = <4>; 419 | cfg = <36 0 48 0 48>; 420 | }; 421 | }; 422 | }; 423 | port@2 { 424 | port_id = <2>; 425 | l1scheduler { 426 | group@0 { 427 | sp = <40>; 428 | cfg = <0 12 0 12>; 429 | }; 430 | group@1 { 431 | sp = <41>; 432 | cfg = <1 13 1 13>; 433 | }; 434 | }; 435 | l0scheduler { 436 | group@0 { 437 | ucast_queue = <160>; 438 | ucast_loop_pri = <16>; 439 | mcast_queue = <276>; 440 | mcast_loop_pri = <4>; 441 | cfg = <40 0 64 0 64>; 442 | }; 443 | }; 444 | }; 445 | port@3 { 446 | port_id = <3>; 447 | l1scheduler { 448 | group@0 { 449 | sp = <44>; 450 | cfg = <0 16 0 16>; 451 | }; 452 | group@1 { 453 | sp = <45>; 454 | cfg = <1 17 1 17>; 455 | }; 456 | }; 457 | l0scheduler { 458 | group@0 { 459 | ucast_queue = <176>; 460 | ucast_loop_pri = <16>; 461 | mcast_queue = <280>; 462 | mcast_loop_pri = <4>; 463 | cfg = <44 0 80 0 80>; 464 | }; 465 | }; 466 | }; 467 | port@4 { 468 | port_id = <4>; 469 | l1scheduler { 470 | group@0 { 471 | sp = <48>; 472 | cfg = <0 20 0 20>; 473 | }; 474 | group@1 { 475 | sp = <49>; 476 | cfg = <1 21 1 21>; 477 | }; 478 | }; 479 | l0scheduler { 480 | group@0 { 481 | ucast_queue = <192>; 482 | ucast_loop_pri = <16>; 483 | mcast_queue = <284>; 484 | mcast_loop_pri = <4>; 485 | cfg = <48 0 96 0 96>; 486 | }; 487 | }; 488 | }; 489 | port@5 { 490 | port_id = <5>; 491 | l1scheduler { 492 | group@0 { 493 | sp = <52>; 494 | cfg = <0 24 0 24>; 495 | }; 496 | group@1 { 497 | sp = <53>; 498 | cfg = <1 25 1 25>; 499 | }; 500 | }; 501 | l0scheduler { 502 | group@0 { 503 | ucast_queue = <208>; 504 | ucast_loop_pri = <16>; 505 | mcast_queue = <288>; 506 | mcast_loop_pri = <4>; 507 | cfg = <52 0 112 0 112>; 508 | }; 509 | }; 510 | }; 511 | port@6 { 512 | port_id = <6>; 513 | l1scheduler { 514 | group@0 { 515 | sp = <56>; 516 | cfg = <0 28 0 28>; 517 | }; 518 | group@1 { 519 | sp = <57>; 520 | cfg = <1 29 1 29>; 521 | }; 522 | }; 523 | l0scheduler { 524 | group@0 { 525 | ucast_queue = <224>; 526 | ucast_loop_pri = <16>; 527 | mcast_queue = <292>; 528 | mcast_loop_pri = <4>; 529 | cfg = <56 0 128 0 128>; 530 | }; 531 | }; 532 | }; 533 | port@7 { 534 | port_id = <7>; 535 | l1scheduler { 536 | group@0 { 537 | sp = <60>; 538 | cfg = <0 32 0 32>; 539 | }; 540 | group@1 { 541 | sp = <61>; 542 | cfg = <1 33 1 33>; 543 | }; 544 | }; 545 | l0scheduler { 546 | group@0 { 547 | ucast_queue = <240>; 548 | ucast_loop_pri = <16>; 549 | mcast_queue = <296>; 550 | cfg = <60 0 144 0 144>; 551 | }; 552 | }; 553 | }; 554 | }; 555 | }; 556 | 557 | &soc { 558 | dp1: dp1 { 559 | device_type = "network"; 560 | compatible = "qcom,nss-dp"; 561 | qcom,id = <1>; 562 | reg = <0x3a001000 0x200>; 563 | qcom,mactype = <0>; 564 | local-mac-address = [000000000000]; 565 | qcom,link-poll = <1>; 566 | qcom,phy-mdio-addr = <0>; 567 | phy-mode = "sgmii"; 568 | mdio-bus = <&mdio>; 569 | }; 570 | 571 | dp2: dp2 { 572 | device_type = "network"; 573 | compatible = "qcom,nss-dp"; 574 | qcom,id = <2>; 575 | reg = <0x3a001200 0x200>; 576 | qcom,mactype = <0>; 577 | local-mac-address = [000000000000]; 578 | qcom,link-poll = <1>; 579 | qcom,phy-mdio-addr = <1>; 580 | phy-mode = "sgmii"; 581 | mdio-bus = <&mdio>; 582 | }; 583 | 584 | dp3: dp3 { 585 | device_type = "network"; 586 | compatible = "qcom,nss-dp"; 587 | qcom,id = <3>; 588 | reg = <0x3a001400 0x200>; 589 | qcom,mactype = <0>; 590 | local-mac-address = [000000000000]; 591 | qcom,link-poll = <1>; 592 | qcom,phy-mdio-addr = <2>; 593 | phy-mode = "sgmii"; 594 | mdio-bus = <&mdio>; 595 | }; 596 | 597 | dp4: dp4 { 598 | device_type = "network"; 599 | compatible = "qcom,nss-dp"; 600 | qcom,id = <4>; 601 | reg = <0x3a001600 0x200>; 602 | qcom,mactype = <0>; 603 | local-mac-address = [000000000000]; 604 | qcom,link-poll = <1>; 605 | qcom,phy-mdio-addr = <3>; 606 | phy-mode = "sgmii"; 607 | mdio-bus = <&mdio>; 608 | }; 609 | 610 | dp5: dp5 { 611 | device_type = "network"; 612 | compatible = "qcom,nss-dp"; 613 | qcom,id = <5>; 614 | reg = <0x3a001800 0x200>; 615 | qcom,mactype = <0>; 616 | local-mac-address = [000000000000]; 617 | qcom,link-poll = <1>; 618 | qcom,phy-mdio-addr = <24>; 619 | phy-mode = "sgmii"; 620 | mdio-bus = <&mdio>; 621 | }; 622 | }; 623 | 624 | &wifi { 625 | status = "okay"; 626 | 627 | qcom,board_id = <660>; 628 | qcom,ath11k-calibration-variant = "Xiaomi-AX9000"; 629 | }; 630 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/image/generic.mk: -------------------------------------------------------------------------------- 1 | define Device/FitImage 2 | KERNEL_SUFFIX := -fit-uImage.itb 3 | KERNEL = kernel-bin | gzip | fit gzip $$(DEVICE_DTS_DIR)/$$(DEVICE_DTS).dtb 4 | KERNEL_NAME := Image 5 | endef 6 | 7 | define Device/FitImageLzma 8 | KERNEL_SUFFIX := -fit-uImage.itb 9 | KERNEL = kernel-bin | lzma | fit lzma $$(DEVICE_DTS_DIR)/$$(DEVICE_DTS).dtb 10 | KERNEL_NAME := Image 11 | endef 12 | 13 | define Device/UbiFit 14 | KERNEL_IN_UBI := 1 15 | IMAGES := nand-factory.ubi nand-sysupgrade.bin 16 | IMAGE/nand-factory.ubi := append-ubi 17 | IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata 18 | endef 19 | 20 | define Device/qnap_301w 21 | $(call Device/FitImage) 22 | DEVICE_VENDOR := QNAP 23 | DEVICE_MODEL := 301w 24 | DEVICE_DTS_CONFIG := config@hk01 25 | KERNEL_SIZE := 16384k 26 | BLOCKSIZE := 512k 27 | SOC := ipq8072 28 | IMAGES += factory.bin sysupgrade.bin 29 | IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k 30 | IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | sysupgrade-tar rootfs=$$$$@ | append-metadata 31 | DEVICE_PACKAGES := ipq-wifi-qnap_301w e2fsprogs kmod-fs-ext4 losetup 32 | endef 33 | TARGET_DEVICES += qnap_301w 34 | 35 | define Device/redmi_ax6 36 | $(call Device/xiaomi_ax3600) 37 | DEVICE_VENDOR := Redmi 38 | DEVICE_MODEL := AX6 39 | DEVICE_PACKAGES := ipq-wifi-redmi_ax6 uboot-envtools 40 | endef 41 | TARGET_DEVICES += redmi_ax6 42 | 43 | define Device/xiaomi_ax3600 44 | $(call Device/FitImage) 45 | $(call Device/UbiFit) 46 | DEVICE_VENDOR := Xiaomi 47 | DEVICE_MODEL := AX3600 48 | BLOCKSIZE := 128k 49 | PAGESIZE := 2048 50 | DEVICE_DTS_CONFIG := config@ac04 51 | SOC := ipq8071 52 | DEVICE_PACKAGES := ath10k-firmware-qca9887-ct ipq-wifi-xiaomi_ax3600 \ 53 | kmod-ath10k-ct uboot-envtools 54 | endef 55 | TARGET_DEVICES += xiaomi_ax3600 56 | 57 | define Device/zte_mf269 58 | $(call Device/FitImage) 59 | $(call Device/UbiFit) 60 | DEVICE_VENDOR := ZTE 61 | DEVICE_MODEL := MF269 62 | BLOCKSIZE := 128k 63 | PAGESIZE := 2048 64 | DEVICE_DTS_CONFIG := config@ac04 65 | SOC := ipq8071 66 | DEVICE_PACKAGES := ipq-wifi-zte_mf269 uboot-envtools 67 | endef 68 | TARGET_DEVICES += zte_mf269 69 | -------------------------------------------------------------------------------- /general/AX6/target/linux/ipq807x/patches-5.10/900-arm64-dts-add-OpenWrt-DTS-files.patch: -------------------------------------------------------------------------------- 1 | From 8aec79b6d4d59616eb6ce4fbfb94658b3e79d9ce Mon Sep 17 00:00:00 2001 2 | From: Robert Marko 3 | Date: Tue, 11 May 2021 13:29:33 +0200 4 | Subject: [PATCH] arm64: dts: add OpenWrt DTS files 5 | 6 | Lets add custom OpenWrt DTS files to Makefile. 7 | 8 | Signed-off-by: Robert Marko 9 | --- 10 | arch/arm64/boot/dts/qcom/Makefile | 1 + 11 | 1 file changed, 1 insertion(+) 12 | 13 | --- a/arch/arm64/boot/dts/qcom/Makefile 14 | +++ b/arch/arm64/boot/dts/qcom/Makefile 15 | @@ -3,6 +3,10 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d 16 | dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb 17 | dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb 18 | dtb-$(CONFIG_ARCH_QCOM) += ipq6018-cp01-c1.dtb 19 | +dtb-$(CONFIG_ARCH_QCOM) += ipq8072-301w.dtb 20 | +dtb-$(CONFIG_ARCH_QCOM) += ipq8071-ax6.dtb 21 | +dtb-$(CONFIG_ARCH_QCOM) += ipq8071-ax3600.dtb 22 | +dtb-$(CONFIG_ARCH_QCOM) += ipq8071-mf269.dtb 23 | dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb 24 | dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb 25 | dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb 26 | --------------------------------------------------------------------------------