├── .github └── workflows │ ├── cache.yml │ ├── ci.yml │ └── clean.yml ├── .gitignore ├── COPYING ├── README.md ├── config ├── onecloud_defconfig └── x86-64_defconfig ├── default-settings ├── Makefile └── files │ └── zzz-default-settings ├── patches └── fullconenat-luci.patch ├── scripts ├── 00_init.sh ├── 01_customize_packages.sh ├── 02_convert_translation.sh ├── onecloud_customization.sh └── x86-64_customization.sh └── target └── linux └── amlogic ├── Makefile ├── files └── arch │ └── arm │ └── boot │ └── dts │ └── amlogic │ └── meson8b-onecloud.dts ├── image ├── Makefile ├── gen_aml_sdcard_img.sh ├── meson8b.mk └── s805_autoscript.txt ├── meson8b ├── base-files │ ├── etc │ │ ├── inittab │ │ └── uci-defaults │ │ │ ├── dhcp-proto-lan │ │ │ └── gen-mac-address │ ├── lib │ │ ├── preinit │ │ │ └── 79_move_config │ │ └── upgrade │ │ │ └── platform.sh │ └── root │ │ └── resize.sh ├── config-6.6 └── target.mk └── patches-6.6 ├── 903-add-meson8b-onecloud-makefile.patch ├── 905-generic-Revert-mmc-core-Set-HS-clock-speed-before-se.patch └── 906-generic-Revert-pwm-meson-modify-and-simplify-calculation-in-.patch /.github/workflows/cache.yml: -------------------------------------------------------------------------------- 1 | name: Fetch Cache 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: "00 00 1,7,13,19,25,31 * *" 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-22.04 11 | strategy: 12 | matrix: 13 | target: ['amlogic-meson8b', 'x86-64'] 14 | branch: ['24.10', '23.05'] 15 | 16 | steps: 17 | - name: Clone Repository 18 | uses: actions/checkout@v4 19 | with: 20 | ref: ${{ matrix.branch }} 21 | 22 | - name: Clone OpenWrt 23 | run: | 24 | git clone https://github.com/openwrt/openwrt.git 25 | 26 | - name: Get variable 27 | working-directory: ./openwrt 28 | id: var 29 | run: | 30 | case ${{ matrix.branch }} in 31 | 24.10) 32 | _release_tag=$(git tag --sort=taggerdate --list 'v24.*' | tail -1) 33 | git checkout $_release_tag 34 | ;; 35 | 23.05) 36 | _release_tag=$(git tag --sort=taggerdate --list 'v23.*' | tail -1) 37 | git checkout $_release_tag 38 | ;; 39 | *) 40 | echo "Can't get local/upstream's branch/tags" 41 | ;; 42 | esac 43 | 44 | - name: Get cache toolchain 45 | uses: HiGarfield/cachewrtbuild@main 46 | with: 47 | prefix: ${{ github.workspace }}/openwrt 48 | mixkey: ${{ matrix.target }} 49 | skip_saving: 'true' 50 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Build OpenWrt 2 | run-name: Build OpenWrt ${{ github.event.inputs.branch }} 3 | 4 | on: 5 | workflow_dispatch: 6 | inputs: 7 | branch: 8 | description: 'your local repo branch' 9 | required: true 10 | default: '24.10' 11 | type: choice 12 | options: 13 | - 'master' 14 | - '24.10' 15 | - '23.05' 16 | targets: 17 | description: 'target devices' 18 | required: true 19 | default: "['amlogic-meson8b', 'x86-64']" 20 | type: choice 21 | options: 22 | - "['amlogic-meson8b']" 23 | - "['amlogic-meson8b', 'x86-64']" 24 | 25 | jobs: 26 | build: 27 | runs-on: ubuntu-24.04 28 | strategy: 29 | matrix: 30 | target: ${{ fromJSON(github.event.inputs.targets) }} 31 | 32 | steps: 33 | - name: Maximize build space 34 | uses: easimon/maximize-build-space@master 35 | with: 36 | swap-size-mb: 1024 37 | temp-reserve-mb: 512 38 | root-reserve-mb: 4608 39 | remove-dotnet: 'true' 40 | remove-android: 'true' 41 | remove-haskell: 'true' 42 | remove-codeql: 'true' 43 | 44 | - name: Clone Repository 45 | uses: actions/checkout@v4 46 | with: 47 | ref: ${{ github.event.inputs.branch }} 48 | 49 | - name: Init build dependencies 50 | env: 51 | DEBIAN_FRONTEND: noninteractive 52 | run: | 53 | sudo -E apt-get -qq update 54 | sudo /bin/bash -c "$(curl -sL https://git.io/vokNn)" 55 | sudo -E apt-fast -y -qq install asciidoc bash bcc bin86 binutils bison build-essential bzip2 file flex g++-multilib gawk gcc-multilib gettext git gzip help2man intltool libboost-dev libelf-dev libncurses-dev libssl-dev libthread-queue-any-perl libusb-dev libxml-parser-perl patch perl-modules python3-dev python3-pip python3-pyelftools python3-setuptools rsync sharutils swig time unzip util-linux wget xsltproc zlib1g-dev zip 56 | sudo -E apt-fast -y -qq install android-sdk-libsparse-utils dos2unix dwarves quilt 57 | pip3 install --user -U pylibfdt --break-system-packages 58 | sudo -E apt-get -qq autoremove --purge 59 | sudo -E apt-get -qq clean 60 | sudo -E git config --global user.name 'github-actions[bot]' 61 | sudo -E git config --global user.email '41898282+github-actions[bot]@users.noreply.github.com' 62 | df -h 63 | 64 | - name: Clone OpenWrt 65 | run: | 66 | git clone https://github.com/openwrt/openwrt.git 67 | 68 | - name: Get variable 69 | working-directory: ./openwrt 70 | id: var 71 | run: | 72 | case ${{ github.event.inputs.branch }} in 73 | master) 74 | _release_tag=snapshot-r$(date +%g.%j) 75 | _prerelease=true 76 | ;; 77 | 24.10) 78 | _release_tag=$(git tag --sort=taggerdate --list 'v24.*' | tail -1) 79 | git checkout $_release_tag 80 | _prerelease=false 81 | ;; 82 | 23.05) 83 | _release_tag=$(git tag --sort=taggerdate --list 'v23.*' | tail -1) 84 | git checkout $_release_tag 85 | _prerelease=false 86 | ;; 87 | *) 88 | echo "Can't get local/upstream's branch/tags" 89 | ;; 90 | esac 91 | case ${{ matrix.target }} in 92 | amlogic-meson8b) _device=onecloud ;; 93 | x86-64) _device=x86-64 ;; 94 | *) echo "wrong devices" ;; 95 | esac 96 | _artifact=${{ matrix.target }} 97 | _artifact_path=openwrt/bin/targets/${_artifact/-//} 98 | echo "release_tag=$_release_tag" >> $GITHUB_OUTPUT 99 | echo "prerelease=$_prerelease" >> $GITHUB_OUTPUT 100 | echo "device=$_device" >> $GITHUB_OUTPUT 101 | echo "artifact=$_artifact_path" >> $GITHUB_OUTPUT 102 | 103 | - name: Fetch Other repos 104 | run: | 105 | ./scripts/00_init.sh other-repos 106 | 107 | - name: Feeds update & install 108 | working-directory: ./openwrt 109 | run: | 110 | ./scripts/feeds update -a && ./scripts/feeds install -a 111 | 112 | - name: Customize Packages 113 | working-directory: ./openwrt 114 | run: | 115 | cp -L ../scripts/${{ steps.var.outputs.device }}_customization.sh . 116 | cp ../scripts/01_customize_packages.sh . 117 | /bin/bash ${{ steps.var.outputs.device }}_customization.sh 118 | 119 | - if: matrix.target == 'x86-64' 120 | name: FullCone Nat 121 | run: | 122 | ./scripts/00_init.sh patch-fullconenat 123 | 124 | - name: Convert Translation 125 | working-directory: ./openwrt 126 | run: | 127 | cp ../scripts/02_convert_translation.sh . 128 | /bin/bash 02_convert_translation.sh 129 | 130 | - name: Get cache toolchain 131 | uses: HiGarfield/cachewrtbuild@main 132 | with: 133 | prefix: ${{ github.workspace }}/openwrt 134 | mixkey: ${{ matrix.target }} 135 | 136 | - name: Make Config 137 | working-directory: ./openwrt 138 | run: | 139 | cp ../config/${{ steps.var.outputs.device }}_defconfig .config 140 | make defconfig 141 | 142 | - name: Make Download 143 | working-directory: ./openwrt 144 | run: | 145 | make download -j`nproc` 146 | 147 | - name: Compile OpenWrt 148 | working-directory: ./openwrt 149 | run: | 150 | make -j`nproc` || make -j1 V=s 151 | 152 | - name: Assemble Artifact 153 | run: | 154 | ls ${{ steps.var.outputs.artifact }} 155 | cat ${{ steps.var.outputs.artifact }}/config.buildinfo 156 | rm -rf ${{ steps.var.outputs.artifact }}/{packages,*.buildinfo,*.json,*.manifest,*kernel.bin,*-rootfs.*,sha256sums} 157 | 158 | - if: matrix.target == 'amlogic-meson8b' 159 | name: Assemble burn firmware 160 | run: | 161 | ./scripts/00_init.sh burn-onecloud 162 | 163 | - name: Upload Release 164 | uses: softprops/action-gh-release@v2 165 | env: 166 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 167 | with: 168 | draft: false 169 | target_commitish: ${{ github.event.inputs.branch }} 170 | prerelease: ${{ steps.var.outputs.prerelease }} 171 | tag_name: ${{ steps.var.outputs.release_tag }} 172 | files: ${{ steps.var.outputs.artifact }}/* 173 | -------------------------------------------------------------------------------- /.github/workflows/clean.yml: -------------------------------------------------------------------------------- 1 | name: Clean old workflow runs 2 | on: 3 | workflow_dispatch: 4 | # Run at 01:00 every six days. 5 | schedule: 6 | - cron: '0 1 */6 * *' 7 | 8 | jobs: 9 | del_runs: 10 | runs-on: ubuntu-latest 11 | strategy: 12 | matrix: 13 | file: ['cache.yml', 'clean.yml'] 14 | permissions: 15 | actions: write 16 | contents: read 17 | steps: 18 | - name: Delete workflow runs 19 | uses: Mattraks/delete-workflow-runs@v2 20 | with: 21 | token: ${{ github.token }} 22 | repository: ${{ github.repository }} 23 | delete_workflow_pattern: ${{ matrix.file }} 24 | retain_days: 1 25 | keep_minimum_runs: 1 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | !.gitkeep 2 | .DS_Store 3 | .initialized 4 | .restored 5 | .Spotlight-v100 6 | openwrt 7 | immortalwrt* 8 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | SPDX-License-Identifier: GPL-2.0-only 2 | 3 | In addition, other licenses may also apply. 4 | 5 | All contributions here are subject to this COPYING file. 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #### 提醒 2 | 3 | - 默认密码:无 4 | - 固件包的增减基于我目前用到的设备 5 | - 上游为 openwrt 官方,原汁原味,一些 package 取自第三方 6 | - 内置一些 usb 无线 ac 网卡与千兆有线网卡 7 | - 各设备内置的应用,可以查看 config 文件夹 8 | - 如需添加其他包或设备,请 fork 后自行在如下文件中添加 9 | - scripts/ 10 | - config/ 11 | - 不同版本,存储在不同的 branch 12 | - OneCloud 有两个版本。 13 | - emmc 固件为直刷包,用 USB_Burning_Tool 工具刷入 14 | - sdcard 固件可以用 balenaEther 等工具刷入 U 盘/SD 卡,前提需要 eMMC 上已经刷入 hzyit [eMMC 底包](https://github.com/hzyitc/u-boot-onecloud/releases/download/build-20221028-0940/eMMC.burn.img),或包含该底包的固件。 15 | - 启动顺序为 USB -> SD card -> eMMC 16 | 17 | #### 感谢 18 | 19 | - [![coolsnowwolf](https://img.shields.io/badge/Lede-Lean-orange.svg?style=flat&logo=appveyor)](https://github.com/coolsnowwolf/lede) 20 | - [![Lienol](https://img.shields.io/badge/OpenWrt-Lienol-orange.svg?style=flat&logo=appveyor)](https://github.com/Lienol/openwrt) 21 | - [![CTCGFW](https://img.shields.io/badge/OpenWrt-CTCGFW-orange.svg?style=flat&logo=appveyor)](https://github.com/immortalwrt/immortalwrt) 22 | -------------------------------------------------------------------------------- /config/onecloud_defconfig: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_amlogic=y 2 | CONFIG_TARGET_amlogic_meson8b=y 3 | CONFIG_TARGET_amlogic_meson8b_DEVICE_thunder-onecloud=y 4 | CONFIG_TARGET_KERNEL_PARTSIZE=32 5 | CONFIG_TARGET_ROOTFS_PARTSIZE=512 6 | 7 | CONFIG_LUCI_SRCDIET=y 8 | 9 | CONFIG_PACKAGE_autocore=y 10 | CONFIG_PACKAGE_automount=y 11 | CONFIG_PACKAGE_default-settings=y 12 | # CONFIG_PACKAGE_dnsmasq is not set 13 | CONFIG_PACKAGE_dnsmasq-full=y 14 | CONFIG_PACKAGE_luci-app-accesscontrol=y 15 | CONFIG_PACKAGE_luci-app-autoreboot=y 16 | CONFIG_PACKAGE_luci-app-cpufreq=y 17 | CONFIG_PACKAGE_luci-app-ksmbd=y 18 | CONFIG_PACKAGE_luci-app-nikki=y 19 | CONFIG_PACKAGE_luci-app-ramfree=y 20 | CONFIG_PACKAGE_luci-app-usb-printer=y 21 | CONFIG_PACKAGE_luci-app-vlmcsd=y 22 | CONFIG_PACKAGE_luci-app-zerotier=y 23 | CONFIG_PACKAGE_luci-ssl=y 24 | CONFIG_PACKAGE_luci-theme-bootstrap=y 25 | CONFIG_PACKAGE_odhcp6c=y 26 | CONFIG_PACKAGE_zram-swap=y 27 | -------------------------------------------------------------------------------- /config/x86-64_defconfig: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_x86=y 2 | CONFIG_TARGET_x86_64=y 3 | CONFIG_TARGET_x86_64_DEVICE_generic=y 4 | CONFIG_TARGET_ROOTFS_PARTSIZE=512 5 | # CONFIG_TARGET_ROOTFS_TARGZ is not set 6 | 7 | CONFIG_GRUB_TIMEOUT="1" 8 | CONFIG_LUCI_SRCDIET=y 9 | 10 | CONFIG_PACKAGE_ath10k-firmware-qca9888=y 11 | CONFIG_PACKAGE_ath10k-firmware-qca988x=y 12 | CONFIG_PACKAGE_ath10k-firmware-qca9984=y 13 | CONFIG_PACKAGE_autocore=y 14 | CONFIG_PACKAGE_automount=y 15 | CONFIG_PACKAGE_brcmfmac-firmware-43602a1-pcie=y 16 | CONFIG_PACKAGE_default-settings=y 17 | # CONFIG_PACKAGE_dnsmasq is not set 18 | CONFIG_PACKAGE_dnsmasq-full=y 19 | CONFIG_PACKAGE_fdisk=y 20 | CONFIG_PACKAGE_kmod-8139cp=y 21 | CONFIG_PACKAGE_kmod-8139too=y 22 | CONFIG_PACKAGE_kmod-ath10k=y 23 | CONFIG_PACKAGE_kmod-igbvf=y 24 | CONFIG_PACKAGE_kmod-macvlan=y 25 | CONFIG_PACKAGE_kmod-mmc-spi=y 26 | CONFIG_PACKAGE_kmod-mt7663u=y 27 | CONFIG_PACKAGE_kmod-mt76x0u=y 28 | CONFIG_PACKAGE_kmod-mt76x2u=y 29 | CONFIG_PACKAGE_kmod-nft-fullcone=y 30 | CONFIG_PACKAGE_kmod-pcnet32=y 31 | CONFIG_PACKAGE_kmod-r8125=y 32 | CONFIG_PACKAGE_kmod-rtl8192cu=y 33 | CONFIG_PACKAGE_kmod-rtl8812au-ct=y 34 | CONFIG_PACKAGE_kmod-tulip=y 35 | CONFIG_PACKAGE_kmod-usb-hid=y 36 | CONFIG_PACKAGE_kmod-usb-net-asix-ax88179=y 37 | CONFIG_PACKAGE_kmod-usb-net-rndis=y 38 | CONFIG_PACKAGE_kmod-usb-net-rtl8152-vendor=y 39 | CONFIG_PACKAGE_kmod-vmxnet3=y 40 | CONFIG_PACKAGE_lm-sensors-detect=y 41 | CONFIG_PACKAGE_luci-app-accesscontrol=y 42 | CONFIG_PACKAGE_luci-app-arpbind=y 43 | CONFIG_PACKAGE_luci-app-autoreboot=y 44 | CONFIG_PACKAGE_luci-app-ksmbd=y 45 | CONFIG_PACKAGE_luci-app-nikki=y 46 | CONFIG_PACKAGE_luci-app-ramfree=y 47 | CONFIG_PACKAGE_luci-app-upnp=y 48 | CONFIG_PACKAGE_luci-app-usb-printer=y 49 | CONFIG_PACKAGE_luci-app-vlmcsd=y 50 | CONFIG_PACKAGE_luci-app-zerotier=y 51 | CONFIG_PACKAGE_luci-ssl=y 52 | CONFIG_PACKAGE_luci-theme-bootstrap=y 53 | CONFIG_PACKAGE_odhcp6c=y 54 | CONFIG_PACKAGE_odhcpd-ipv6only=y 55 | # CONFIG_PACKAGE_open-vm-tools is not set 56 | CONFIG_PACKAGE_wpad-basic-mbedtls=y 57 | CONFIG_PACKAGE_zram-swap=y 58 | -------------------------------------------------------------------------------- /default-settings/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2007-2021 OpenWrt.org 3 | # Copyright (C) 2010 Vertical Communications 4 | # 5 | # This is free software, licensed under the GNU General Public License v2. 6 | # See /LICENSE for more information. 7 | # 8 | 9 | include $(TOPDIR)/rules.mk 10 | 11 | PKG_NAME:=default-settings 12 | PKG_RELEASE:=1 13 | 14 | PKG_LICENSE:=GPL-3.0 15 | 16 | include $(INCLUDE_DIR)/package.mk 17 | 18 | # wireguard: kmod-wireguard 19 | # ipsec: kmod-{ipsec,ipsec4,ipsec6,ipt-ipsec,pppol2tp} 20 | 21 | define Package/default-settings 22 | SECTION:=luci 23 | CATEGORY:=LuCI 24 | TITLE:=LuCI support for Default Settings 25 | PKGARCH:=all 26 | DEPENDS:= \ 27 | +kmod-wireguard \ 28 | +libustream-mbedtls \ 29 | +luci \ 30 | +@LUCI_LANG_zh_Hans 31 | endef 32 | 33 | define Build/Compile 34 | endef 35 | 36 | define Package/default-settings/install 37 | $(INSTALL_DIR) $(1)/etc/uci-defaults 38 | $(INSTALL_BIN) ./files/zzz-default-settings $(1)/etc/uci-defaults/99-default-settings 39 | endef 40 | 41 | $(eval $(call BuildPackage,default-settings)) 42 | -------------------------------------------------------------------------------- /default-settings/files/zzz-default-settings: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # lang 4 | uci set luci.main.lang=auto 5 | uci commit luci 6 | 7 | # system settings 8 | uci -q batch <<-EOF 9 | set system.@system[0].timezone=CST-8 10 | set system.@system[0].zonename=Asia/Shanghai 11 | 12 | set system.@system[0].zram_priority=100 13 | 14 | delete system.ntp.server 15 | add_list system.ntp.server="ntp.tencent.com" 16 | add_list system.ntp.server="ntp1.aliyun.com" 17 | add_list system.ntp.server="ntp.ntsc.ac.cn" 18 | add_list system.ntp.server="cn.pool.ntp.org" 19 | EOF 20 | uci commit system 21 | 22 | # uhttpd 23 | uci set uhttpd.main.rfc1918_filter=0 24 | uci set uhttpd.main.redirect_https=0 25 | uci commit uhttpd && service uhttpd reload 26 | 27 | # dnsmasq 28 | sed -i '/log-facility/d' /etc/dnsmasq.conf 29 | echo "log-facility=/dev/null" >> /etc/dnsmasq.conf 30 | 31 | # feed 32 | sed -i 's,downloads.openwrt.org,mirror.sjtu.edu.cn/openwrt,g' /etc/opkg/distfeeds.conf 33 | 34 | opkg flag hold luci-app-firewall 35 | opkg flag hold firewall 36 | opkg flag hold dnsmasq-full 37 | 38 | # luci cache 39 | rm -rf /tmp/luci-modulecache/ 40 | rm -f /tmp/luci-indexcache 41 | 42 | exit 0 43 | -------------------------------------------------------------------------------- /patches/fullconenat-luci.patch: -------------------------------------------------------------------------------- 1 | --- a/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js 2 | +++ b/applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js 3 | @@ -57,6 +57,8 @@ return view.extend({ 4 | 5 | o = s.option(form.Flag, 'drop_invalid', _('Drop invalid packets')); 6 | 7 | + o = s.option(form.Flag, 'fullcone', _('Enable FullCone-NAT')); 8 | + 9 | var p = [ 10 | s.option(form.ListValue, 'input', _('Input')), 11 | s.option(form.ListValue, 'output', _('Output')), 12 | -------------------------------------------------------------------------------- /scripts/00_init.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -ex 4 | 5 | 6 | __get_other-repos() { 7 | git clone -b master --depth 1 --single-branch https://github.com/coolsnowwolf/lede lede 8 | git clone -b master --depth 1 --single-branch https://github.com/immortalwrt/immortalwrt immortalwrt 9 | git clone -b master --depth 1 --single-branch https://github.com/immortalwrt/packages immortalwrt-packages 10 | git clone -b master --depth 1 --single-branch https://github.com/immortalwrt/luci immortalwrt-luci 11 | echo "src-git nikki https://github.com/nikkinikki-org/OpenWrt-nikki.git;main" >> ./openwrt/feeds.conf.default 12 | } 13 | 14 | __patch_fullconenat() { 15 | # patch kernel 16 | cp -f ./lede/target/linux/generic/hack-6.12/952-add-net-conntrack-events-support-multiple-registrant.patch ./openwrt/target/linux/generic/hack-6.12/ 17 | # disable KERNEL_WERROR 18 | sed -i 's,imply KERNEL_WERROR,#imply KERNEL_WERROR,g' ./openwrt/toolchain/gcc/Config.version 19 | # fullconenat-nft 20 | cp -rf ./immortalwrt/package/network/utils/fullconenat-nft ./openwrt/package/network/utils/ 21 | # libnftnl 22 | rm -rf ./openwrt/package/libs/libnftnl 23 | cp -rf ./immortalwrt/package/libs/libnftnl ./openwrt/package/libs/ 24 | # nftables 25 | rm -rf ./openwrt/package/network/utils/nftables/ 26 | cp -rf ./immortalwrt/package/network/utils/nftables ./openwrt/package/network/utils/ 27 | # firewall4 28 | rm -rf ./openwrt/package/network/config/firewall4 29 | cp -rf ./immortalwrt/package/network/config/firewall4 ./openwrt/package/network/config/ 30 | # patch luci 31 | patch -d ./openwrt/feeds/luci -p1 -i ../../../patches/fullconenat-luci.patch 32 | } 33 | 34 | __burn_onecloud() { 35 | ver="v0.3.1" 36 | curl -L -o ./AmlImg https://github.com/hzyitc/AmlImg/releases/download/$ver/AmlImg_${ver}_linux_amd64 37 | chmod +x ./AmlImg 38 | 39 | curl -L -o ./uboot.img https://github.com/hzyitc/u-boot-onecloud/releases/download/build-20221028-0940/eMMC.burn.img 40 | ./AmlImg unpack ./uboot.img burn/ 41 | echo "::endgroup::" 42 | gunzip -k openwrt/bin/targets/*/*/*.gz 43 | diskimg=$(ls openwrt/bin/targets/*/*/*.img) 44 | loop=$(sudo losetup --find --show --partscan $diskimg) 45 | img_ext="openwrt.img" 46 | img_mnt="xd" 47 | rootfs_mnt="img" 48 | boot_img=$1${img_ext} 49 | boot_img_mnt=$1${img_mnt} 50 | rootfs_img_mnt=$1${rootfs_mnt} 51 | echo ${boot_img} 52 | echo ${boot_img_mnt} 53 | echo ${rootfs_img_mnt} 54 | sudo rm -rf ${boot_img} 55 | sudo rm -rf ${boot_img_mnt} 56 | sudo rm -rf ${rootfs_img_mnt} 57 | sudo dd if=/dev/zero of=${boot_img} bs=1M count=400 58 | sudo mkfs.ext4 ${boot_img} 59 | sudo mkdir ${boot_img_mnt} 60 | sudo mkdir ${rootfs_img_mnt} 61 | sudo mount ${boot_img} ${boot_img_mnt} 62 | sudo mount ${loop}p2 ${rootfs_img_mnt} 63 | 64 | pushd ${rootfs_img_mnt} 65 | sudo cp -r * ../${boot_img_mnt} 66 | sudo sync 67 | popd 68 | 69 | sudo umount ${boot_img_mnt} 70 | sudo umount ${rootfs_img_mnt} 71 | 72 | sudo img2simg ${loop}p1 burn/boot.simg 73 | sudo img2simg openwrt.img burn/rootfs.simg 74 | 75 | sudo rm -rf *.img 76 | sudo losetup -d $loop 77 | cat <>burn/commands.txt 78 | PARTITION:boot:sparse:boot.simg 79 | PARTITION:rootfs:sparse:rootfs.simg 80 | EOF 81 | prefix=$(ls openwrt/bin/targets/*/*/*.img | sed 's/sdcard.img$/emmc/') 82 | burnimg=${prefix}.img 83 | ./AmlImg pack $burnimg burn/ 84 | 85 | for f in openwrt/bin/targets/*/*/*-emmc.img; do 86 | gzip "$f" 87 | done 88 | sudo rm -rf openwrt/bin/targets/*/*/*.img 89 | } 90 | 91 | 92 | case $1 in 93 | other-repos) __get_other-repos ;; 94 | patch-fullconenat) __patch_fullconenat ;; 95 | burn-onecloud) __burn_onecloud ;; 96 | *) echo "input error" ;; 97 | esac 98 | 99 | exit 0 100 | -------------------------------------------------------------------------------- /scripts/01_customize_packages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # create directory 4 | [[ ! -d package/new ]] && mkdir -p package/new 5 | 6 | # arpbind 7 | cp -rf ../immortalwrt-luci/applications/luci-app-arpbind package/new/ 8 | 9 | # AutoCore 10 | cp -rf ../immortalwrt/package/emortal/autocore package/new/ 11 | cp -rf ../immortalwrt/package/utils/mhz package/utils/ 12 | rm -rf feeds/luci/modules/luci-base 13 | cp -rf ../immortalwrt-luci/modules/luci-base feeds/luci/modules 14 | rm -rf feeds/luci/modules/luci-mod-status 15 | cp -rf ../immortalwrt-luci/modules/luci-mod-status feeds/luci/modules/ 16 | 17 | # automount 18 | cp -rf ../lede/package/lean/automount package/new/ 19 | cp -rf ../lede/package/lean/ntfs3-mount package/new/ 20 | 21 | # cpufreq 22 | cp -rf ../immortalwrt-luci/applications/luci-app-cpufreq package/new/ 23 | cp -rf ../immortalwrt/package/emortal/cpufreq package/new/ 24 | 25 | # dnsmasq 26 | rm -rf package/network/services/dnsmasq 27 | cp -rf ../immortalwrt/package/network/services/dnsmasq package/network/services/ 28 | 29 | # Realtek RTL8152/8153 30 | cp -rf ../immortalwrt/package/kernel/r8152 package/new/ 31 | 32 | # Release Ram 33 | cp -rf ../immortalwrt-luci/applications/luci-app-ramfree package/new/ 34 | 35 | # Scheduled Reboot 36 | cp -rf ../immortalwrt-luci/applications/luci-app-autoreboot package/new/ 37 | 38 | # ShadowsocksR Plus+ 39 | #svn export -q https://github.com/fw876/helloworld/trunk package/helloworld 40 | #svn export -q https://github.com/coolsnowwolf/packages/trunk/net/shadowsocks-libev package/helloworld/shadowsocks-libev 41 | #rm -rf ./feeds/packages/net/{xray-core,shadowsocks-libev} 42 | 43 | # USB Printer 44 | cp -rf ../immortalwrt-luci/applications/luci-app-usb-printer package/new/ 45 | 46 | # vlmcsd 47 | cp -rf ../immortalwrt-luci/applications/luci-app-vlmcsd package/new/ 48 | cp -rf ../immortalwrt-packages/net/vlmcsd package/new/ 49 | 50 | # Zerotier 51 | cp -rf ../immortalwrt-luci/applications/luci-app-zerotier package/new/ 52 | 53 | # default settings and translation 54 | cp -rf ../default-settings package/new/ 55 | 56 | # fix include luci.mk 57 | find package/new/ -type f -name Makefile -exec sed -i 's,../../luci.mk,$(TOPDIR)/feeds/luci/luci.mk,g' {} + 58 | -------------------------------------------------------------------------------- /scripts/02_convert_translation.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # [CTCGFW]Project-OpenWrt 3 | # Use it under GPLv3, please. 4 | # -------------------------------------------------------- 5 | # Convert translation files zh-cn to zh_Hans 6 | # The script is still in testing, welcome to report bugs. 7 | 8 | po_file="$({ find |grep -E "[a-z0-9]+\.zh\-cn.+po"; } 2>"/dev/null")" 9 | for a in ${po_file} 10 | do 11 | [ -n "$(grep "Language: zh_CN" "$a")" ] && sed -i "s/Language: zh_CN/Language: zh_Hans/g" "$a" 12 | po_new_file="$(echo -e "$a"|sed "s/zh-cn/zh_Hans/g")" 13 | mv "$a" "${po_new_file}" 2>"/dev/null" 14 | done 15 | 16 | po_file2="$({ find |grep "/zh-cn/" |grep "\.po"; } 2>"/dev/null")" 17 | for b in ${po_file2} 18 | do 19 | [ -n "$(grep "Language: zh_CN" "$b")" ] && sed -i "s/Language: zh_CN/Language: zh_Hans/g" "$b" 20 | po_new_file2="$(echo -e "$b"|sed "s/zh-cn/zh_Hans/g")" 21 | mv "$b" "${po_new_file2}" 2>"/dev/null" 22 | done 23 | 24 | lmo_file="$({ find |grep -E "[a-z0-9]+\.zh_Hans.+lmo"; } 2>"/dev/null")" 25 | for c in ${lmo_file} 26 | do 27 | lmo_new_file="$(echo -e "$c"|sed "s/zh_Hans/zh-cn/g")" 28 | mv "$c" "${lmo_new_file}" 2>"/dev/null" 29 | done 30 | 31 | lmo_file2="$({ find |grep "/zh_Hans/" |grep "\.lmo"; } 2>"/dev/null")" 32 | for d in ${lmo_file2} 33 | do 34 | lmo_new_file2="$(echo -e "$d"|sed "s/zh_Hans/zh-cn/g")" 35 | mv "$d" "${lmo_new_file2}" 2>"/dev/null" 36 | done 37 | 38 | po_dir="$({ find |grep "/zh-cn" |sed "/\.po/d" |sed "/\.lmo/d"; } 2>"/dev/null")" 39 | for e in ${po_dir} 40 | do 41 | po_new_dir="$(echo -e "$e"|sed "s/zh-cn/zh_Hans/g")" 42 | mv "$e" "${po_new_dir}" 2>"/dev/null" 43 | done 44 | 45 | makefile_file="$({ find|grep Makefile |sed "/Makefile./d"; } 2>"/dev/null")" 46 | for f in ${makefile_file} 47 | do 48 | [ -n "$(grep "zh-cn" "$f")" ] && sed -i "s/zh-cn/zh_Hans/g" "$f" 49 | [ -n "$(grep "zh_Hans.lmo" "$f")" ] && sed -i "s/zh_Hans.lmo/zh-cn.lmo/g" "$f" 50 | done 51 | 52 | makefile_file="$({ find package | grep Makefile | sed "/Makefile./d"; } 2>"/dev/null")" 53 | for g in ${makefile_file}; do 54 | [ -n "$(grep "golang-package.mk" "$g")" ] && sed -i "s,\../..,\$(TOPDIR)/feeds/packages,g" "$g" 55 | [ -n "$(grep "luci.mk" "$g")" ] && sed -i "s,\../..,\$(TOPDIR)/feeds/luci,g" "$g" 56 | done 57 | 58 | exit 0 59 | -------------------------------------------------------------------------------- /scripts/onecloud_customization.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | cp -rf ../target/linux/amlogic target/linux/ 6 | 7 | source ./01_customize_packages.sh 8 | 9 | exit 0 10 | -------------------------------------------------------------------------------- /scripts/x86-64_customization.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -ex 4 | 5 | source ./01_customize_packages.sh 6 | 7 | exit 0 8 | -------------------------------------------------------------------------------- /target/linux/amlogic/Makefile: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-only 2 | 3 | include $(TOPDIR)/rules.mk 4 | 5 | BOARD:=amlogic 6 | BOARDNAME:=Amlogic 7 | BOARDNAME:=Amlogic Meson family 8 | FEATURES:=boot-part ext4 fpu legacy-sdcard squashfs usbgadget 9 | SUBTARGETS:=meson8b 10 | 11 | KERNEL_PATCHVER:=6.6 12 | 13 | define Target/Description 14 | Build firmware image for Amlogic Meson SoC devices. 15 | Currently produces SD Card/USB disk image. 16 | endef 17 | 18 | include $(INCLUDE_DIR)/target.mk 19 | 20 | DEFAULT_PACKAGES += \ 21 | e2fsprogs \ 22 | kmod-usb-hid \ 23 | losetup \ 24 | mkf2fs \ 25 | parted \ 26 | partx-utils \ 27 | resize2fs 28 | 29 | KERNELNAME:=Image dtbs 30 | 31 | $(eval $(call BuildTarget)) 32 | -------------------------------------------------------------------------------- /target/linux/amlogic/files/arch/arm/boot/dts/amlogic/meson8b-onecloud.dts: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-only 2 | /* 3 | * Author: hzy 4 | */ 5 | 6 | /dts-v1/; 7 | 8 | #include "meson8b.dtsi" 9 | #include 10 | #include 11 | 12 | / { 13 | model = "Thunder OneCloud"; 14 | compatible = "thunder,onecloud", "amlogic,meson8b"; 15 | 16 | aliases { 17 | serial0 = &uart_AO; 18 | mmc0 = &sd_card_slot; 19 | mmc1 = &sdhc; 20 | }; 21 | 22 | chosen { 23 | stdout-path = "serial0:115200n8"; 24 | }; 25 | 26 | memory { 27 | device_type = "memory"; 28 | reg = <0x40000000 0x40000000>; 29 | }; 30 | 31 | emmc_pwrseq: emmc-pwrseq { 32 | compatible = "mmc-pwrseq-emmc"; 33 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 34 | }; 35 | 36 | button { 37 | // compatible = "gpio-keys-polled"; 38 | // poll-interval = <100>; 39 | 40 | compatible = "gpio-keys"; 41 | 42 | autorepeat; 43 | 44 | reset-button { 45 | label = "reset"; 46 | linux,code = ; 47 | 48 | // gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_LOW>; 49 | 50 | interrupt-parent = <&gpio_intc>; 51 | interrupts = <5 IRQ_TYPE_LEVEL_LOW>; // GPIOAO 5 52 | }; 53 | }; 54 | 55 | leds { 56 | compatible = "gpio-leds"; 57 | 58 | red { 59 | label = "onecloud:red:alive"; 60 | gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 61 | 62 | default-state = "on"; 63 | linux,default-trigger = "default-on"; 64 | }; 65 | 66 | green { 67 | label = "onecloud:green:alive"; 68 | gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 69 | 70 | default-state = "off"; 71 | linux,default-trigger = "mmc1"; 72 | }; 73 | 74 | blue { 75 | label = "onecloud:blue:alive"; 76 | gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_HIGH>; 77 | 78 | default-state = "off"; 79 | linux,default-trigger = "usb-host"; 80 | }; 81 | }; 82 | 83 | p12v: regulator-p12v { 84 | compatible = "regulator-fixed"; 85 | 86 | regulator-name = "P12V"; 87 | regulator-min-microvolt = <12000000>; 88 | regulator-max-microvolt = <12000000>; 89 | }; 90 | 91 | vcc_5v: regulator-vcc-5v { 92 | compatible = "regulator-fixed"; 93 | 94 | regulator-name = "VCC5V"; 95 | regulator-min-microvolt = <5000000>; 96 | regulator-max-microvolt = <5000000>; 97 | 98 | vin-supply = <&p12v>; 99 | 100 | regulator-boot-on; 101 | regulator-always-on; 102 | }; 103 | 104 | vcc_3v3: regulator-vcc-3v3 { 105 | compatible = "regulator-fixed"; 106 | 107 | regulator-name = "VCC3V3"; 108 | regulator-min-microvolt = <3300000>; 109 | regulator-max-microvolt = <3300000>; 110 | 111 | vin-supply = <&p12v>; 112 | 113 | regulator-boot-on; 114 | regulator-always-on; 115 | }; 116 | 117 | vcc_1v8: regulator-vcc-1v8 { 118 | compatible = "regulator-fixed"; 119 | 120 | regulator-name = "VCC1V8"; 121 | regulator-min-microvolt = <1800000>; 122 | regulator-max-microvolt = <1800000>; 123 | 124 | vin-supply = <&p12v>; 125 | 126 | regulator-boot-on; 127 | regulator-always-on; 128 | }; 129 | 130 | vcc_ddr: regulator-vcc-ddr { 131 | compatible = "regulator-fixed"; 132 | 133 | regulator-name = "VCC_DDR"; 134 | regulator-min-microvolt = <1500000>; 135 | regulator-max-microvolt = <1500000>; 136 | 137 | vin-supply = <&vcc_3v3>; 138 | 139 | regulator-boot-on; 140 | regulator-always-on; 141 | }; 142 | 143 | vcc_core: regulator-vcc-core { 144 | compatible = "pwm-regulator"; 145 | 146 | regulator-name = "VCC_CORE"; 147 | 148 | // +---------------------------------------------------+ 149 | // | The actual mapping in phyical | 150 | // +------+--------+--------+--------+--------+--------+ 151 | // | | 100% | 60% | 30% | 10% | 0% | 152 | // +------+--------+--------+--------+--------+--------+ 153 | // | V1.0 | 677mV | 857mV | 992mV | 1082mV | 1127mV | 154 | // | V1.3 | 1116mV | 1121mV | 1125mV | 1128mV | 1129mV | 155 | // +------+--------+--------+--------+--------+--------+ 156 | // 157 | // According to meson8b.dtsi, the CPU should be able to 158 | // run at 504MHz with 870mV. But this regulator supplies 159 | // not only CPU but also GPU. And according to the users' 160 | // tests on V1.0, we need such higher voltages. 161 | 162 | pwms = <&pwm_cd 1 12001 0>; // PWM_D 163 | pwm-dutycycle-range = <10 0>; 164 | regulator-min-microvolt = <860000>; 165 | regulator-max-microvolt = <1140000>; 166 | 167 | pwm-supply = <&p12v>; 168 | 169 | regulator-boot-on; 170 | regulator-always-on; 171 | }; 172 | }; 173 | 174 | &uart_AO { 175 | status = "okay"; 176 | pinctrl-0 = <&uart_ao_a_pins>; 177 | pinctrl-names = "default"; 178 | }; 179 | 180 | &pwm_cd { 181 | status = "okay"; 182 | pinctrl-0 = <&pwm_c1_pins>, <&pwm_d_pins>; 183 | pinctrl-names = "default"; 184 | clocks = <&xtal>, <&xtal>; 185 | clock-names = "clkin0", "clkin1"; 186 | }; 187 | 188 | &cpu0 { 189 | cpu-supply = <&vcc_core>; 190 | }; 191 | 192 | &saradc { 193 | status = "okay"; 194 | vref-supply = <&vcc_1v8>; 195 | }; 196 | 197 | &mali { 198 | // commented to allow cpufreq tweaking 199 | // mali-supply = <&vcc_core>; 200 | }; 201 | 202 | &gpio { 203 | gpio-line-names = 204 | /* 0 */ "WIFI_SDIO_D0 PIN18 (GPIOX_0)", 205 | /* 1 */ "WIFI_SDIO_D1 PIN19 (GPIOX_1)", 206 | /* 2 */ "WIFI_SDIO_D2 PIN14 (GPIOX_2)", 207 | /* 3 */ "WIFI_SDIO_D3 PIN15 (GPIOX_3)", 208 | /* 4 */ "WIFI_PCM_DIN PIN27 (GPIOX_4)", 209 | /* 5 */ "WIFI_PCM_DOUT PIN25 (GPIOX_5)", 210 | /* 6 */ "WIFI_PCM_SYNC PIN28 (GPIOX_6)", 211 | /* 7 */ "WIFI_PCM_CLK PIN26 (GPIOX_7)", 212 | /* 8 */ "WIFI_SDIO_CLK PIN17_Resistor (GPIOX_8)", 213 | /* 9 */ "WIFI_SDIO_CMD PIN16 (GPIOX_9)", 214 | /* 10 */ "GPIOX_10", 215 | /* 11 */ "WIFI PIN12 (GPIOX_11)", 216 | /* 12 */ "WIFI_UART_RX PIN43 (GPIOX_16)", 217 | /* 13 */ "WIFI_UART_TX PIN42 (GPIOX_17)", 218 | /* 14 */ "WIFI_UART_RTS PIN41_Resistor (GPIOX_18)", 219 | /* 15 */ "WIFI_UART_CTS PIN44 (GPIOX_19)", 220 | /* 16 */ "WIFI PIN34 (GPIOX_20)", 221 | /* 17 */ "WIFI_WAKE PIN13 (GPIOX_21)", 222 | 223 | /* 18 */ "Resistor_TopOf_LED (GPIOY_0)", 224 | /* 19 */ "GPIOY_1", 225 | /* 20 */ "GPIOY_3", 226 | /* 21 */ "GPIOY_6", 227 | /* 22 */ "GPIOY_7", 228 | /* 23 */ "GPIOY_8", 229 | /* 24 */ "GPIOY_9", 230 | /* 25 */ "GPIOY_10", 231 | /* 26 */ "GPIOY_11", 232 | /* 27 */ "GPIOY_12", 233 | /* 28 */ "Left_BottomOf_CPU (GPIOY_13)", 234 | /* 29 */ "Right_BottomOf_CPU (GPIOY_14)", 235 | 236 | /* 30 */ "GPIODV_9 (PWM_C)", 237 | /* 31 */ "GPIODV_24", 238 | /* 32 */ "GPIODV_25", 239 | /* 33 */ "GPIODV_26", 240 | /* 34 */ "GPIODV_27", 241 | /* 35 */ "VCC_CPU_PWM (GPIODV_28)", 242 | /* 36 */ "GPIODV_29", 243 | 244 | /* 37 */ "HDMI_HPD (GPIOH_0)", 245 | /* 38 */ "HDMI_SDA (GPIOH_1)", 246 | /* 39 */ "HDMI_SCL (GPIOH_2)", 247 | /* 40 */ "ETH_PHY_INTR (GPIOH_3)", 248 | /* 41 */ "ETH_PHY_nRST (GPIOH_4)", 249 | /* 42 */ "ETH_TXD1 (GPIOH_5)", 250 | /* 43 */ "ETH_TXD0 (GPIOH_6)", 251 | /* 44 */ "ETH_TXD3 (GPIOH_7)", 252 | /* 45 */ "ETH_TXD2 (GPIOH_8)", 253 | /* 46 */ "ETH_TX_CLK (GPIOH_9)", 254 | 255 | /* 47 */ "SDCARD_D1 (CARD_0)", 256 | /* 48 */ "SDCARD_D0 (CARD_1)", 257 | /* 49 */ "SDCARD_CLK (CARD_2)", 258 | /* 50 */ "SDCARD_CMD (CARD_3)", 259 | /* 51 */ "SDCARD_D3 (CARD_4)", 260 | /* 52 */ "SDCARD_D2 (CARD_5)", 261 | /* 53 */ "SDCARD_CD (CARD_6)", 262 | 263 | /* 54 */ "EMMC_D0 (BOOT_0)", 264 | /* 55 */ "EMMC_D1 (BOOT_1)", 265 | /* 56 */ "EMMC_D2 (BOOT_2)", 266 | /* 57 */ "EMMC_D3 (BOOT_3)", 267 | /* 58 */ "EMMC_D4 (BOOT_4)", 268 | /* 59 */ "EMMC_D5 (BOOT_5)", 269 | /* 60 */ "EMMC_D6 (BOOT_6)", 270 | /* 61 */ "EMMC_D7 (BOOT_7)", 271 | /* 62 */ "EMMC_CLK (BOOT_8)", 272 | /* 63 */ "EMMC_nRST (BOOT_9)", 273 | /* 64 */ "EMMC_CMD (BOOT_10)", 274 | /* 65 */ "BOOT_11", 275 | /* 66 */ "BOOT_12", 276 | /* 67 */ "BOOT_13", 277 | /* 68 */ "BOOT_14", 278 | /* 69 */ "BOOT_15", 279 | /* 70 */ "BOOT_16", 280 | /* 71 */ "BOOT_17", 281 | /* 72 */ "BOOT_18", 282 | 283 | /* 73 */ "ETH_RXD1 (DIF_0_P)", 284 | /* 74 */ "ETH_RXD0 (DIF_0_N)", 285 | /* 75 */ "ETH_RX_DV (DIF_1_P)", 286 | /* 76 */ "ETH_RX_CLK (DIF_1_N)", 287 | /* 77 */ "ETH_RXD3 (DIF_2_P)", 288 | /* 78 */ "ETH_RXD2 (DIF_2_N)", 289 | /* 79 */ "ETH_TX_EN (DIF_3_P)", 290 | /* 80 */ "ETH_REF_CLK (DIF_3_N)", 291 | /* 81 */ "ETH_MDC (DIF_4_P)", 292 | /* 82 */ "ETH_MDIO_EN (DIF_4_N)"; 293 | }; 294 | 295 | &gpio_ao { 296 | gpio-line-names = 297 | /* 0 */ "UART TX (GPIOAO_0)", 298 | /* 1 */ "UART RX (GPIOAO_1)", 299 | /* 2 */ "RED_LED (GPIOAO_2)", 300 | /* 3 */ "GREEN_LED (GPIOAO_3)", 301 | /* 4 */ "BLUE_LED (GPIOAO_4)", 302 | /* 5 */ "BUTTON (GPIOAO_5)", 303 | /* 6 */ "GPIOAO_6", 304 | /* 7 */ "IR_IN (GPIOAO_7)", 305 | /* 8 */ "GPIOAO_8", 306 | /* 9 */ "GPIOAO_9", 307 | /* 10 */ "GPIOAO_10", 308 | /* 11 */ "GPIOAO_11", 309 | /* 12 */ "GPIOAO_12", 310 | /* 13 */ "GPIOAO_13", 311 | 312 | /* 14 */ "GPIO_BSD_EN", 313 | /* 15 */ "GPIO_TEST_N"; 314 | }; 315 | 316 | // eMMC 317 | &sdhc { 318 | status = "okay"; 319 | 320 | pinctrl-0 = <&sdxc_c_pins>; 321 | pinctrl-names = "default"; 322 | 323 | non-removable; 324 | bus-width = <8>; 325 | max-frequency = <200000000>; 326 | cap-mmc-highspeed; 327 | mmc-hs200-1_8v; 328 | 329 | mmc-pwrseq = <&emmc_pwrseq>; 330 | vmmc-supply = <&vcc_3v3>; 331 | // vqmmc-supply = <&vcc_3v3>; 332 | }; 333 | 334 | &sdio { 335 | status = "okay"; 336 | 337 | pinctrl-0 = <&sd_b_pins>; 338 | pinctrl-names = "default"; 339 | 340 | // SD card 341 | sd_card_slot: slot@1 { 342 | compatible = "mmc-slot"; 343 | reg = <1>; 344 | status = "okay"; 345 | 346 | bus-width = <4>; 347 | no-sdio; 348 | cap-mmc-highspeed; 349 | cap-sd-highspeed; 350 | disable-wp; 351 | 352 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; 353 | 354 | vmmc-supply = <&vcc_3v3>; 355 | // vqmmc-supply = <&vcc_3v3>; 356 | }; 357 | }; 358 | 359 | ðmac { 360 | status = "okay"; 361 | 362 | pinctrl-0 = <ð_rgmii_pins>; 363 | pinctrl-names = "default"; 364 | 365 | phy-handle = <ð_phy>; 366 | phy-mode = "rgmii-rxid"; 367 | 368 | mdio { 369 | compatible = "snps,dwmac-mdio"; 370 | #address-cells = <1>; 371 | #size-cells = <0>; 372 | 373 | // Realtek RTL8211F (0x001cc916) 374 | eth_phy: ethernet-phy@0 { 375 | reg = <0>; 376 | 377 | reset-assert-us = <10000>; 378 | reset-deassert-us = <80000>; 379 | reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>; 380 | 381 | interrupt-parent = <&gpio_intc>; 382 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; // GPIOH 3 383 | }; 384 | }; 385 | }; 386 | 387 | &usb0 { 388 | status = "okay"; 389 | dr_mode = "otg"; 390 | usb-role-switch; 391 | role-switch-default-mode = "host"; 392 | }; 393 | 394 | &usb0_phy { 395 | status = "okay"; 396 | }; 397 | 398 | &usb1 { 399 | status = "okay"; 400 | }; 401 | 402 | &usb1_phy { 403 | status = "okay"; 404 | }; 405 | 406 | &ir_receiver { 407 | status = "okay"; 408 | pinctrl-0 = <&ir_recv_pins>; 409 | pinctrl-names = "default"; 410 | }; 411 | -------------------------------------------------------------------------------- /target/linux/amlogic/image/Makefile: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-only 2 | 3 | include $(TOPDIR)/rules.mk 4 | include $(INCLUDE_DIR)/image.mk 5 | 6 | FAT32_BLOCK_SIZE=1024 7 | FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) 8 | 9 | define Build/sdcard-img 10 | $(RM) -f $@.boot 11 | mkfs.fat -C $@.boot $(FAT32_BLOCKS) 12 | mkdir -p $(KDIR)/boot.fat 13 | 14 | mcopy -i $@.boot $(KDIR)/uInitrd :: 15 | mcopy -i $@.boot $(KDIR)/s805_autoscript.scr ::boot.scr 16 | mcopy -i $@.boot $(KDIR)/s805_autoscript.txt ::boot.txt 17 | 18 | $(CP) $(IMAGE_KERNEL) $(KDIR)/boot.fat/uImage 19 | mcopy -i $@.boot $(KDIR)/boot.fat/uImage :: 20 | 21 | $(foreach dts,$(shell echo $(DEVICE_DTS)),$(CP) $(DTS_DIR)/$(dts).dtb $(KDIR)/boot.fat/dtb;) 22 | mcopy -i $@.boot $(KDIR)/boot.fat/dtb :: 23 | 24 | $(RM) -rf $(KDIR)/boot.fat 25 | 26 | ./gen_aml_sdcard_img.sh $@ $@.boot $(IMAGE_ROOTFS) \ 27 | $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) 28 | endef 29 | 30 | define Build/uImage-meson 31 | $(RM) -rf $(KDIR)/uInitrd 32 | $(RM) -rf $(KDIR)/s805_autoscript.scr 33 | $(RM) -rf $(KDIR)/s805_autoscript.txt 34 | 35 | $(call Build/uImage,none) 36 | 37 | touch $(KDIR)/uInitrd 38 | $(CP) s805_autoscript.txt $(KDIR)/s805_autoscript.txt 39 | mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "s805_autoscript.scr" -d s805_autoscript.txt $(KDIR)/s805_autoscript.scr 40 | endef 41 | 42 | include $(SUBTARGET).mk 43 | 44 | $(eval $(call BuildImage)) 45 | -------------------------------------------------------------------------------- /target/linux/amlogic/image/gen_aml_sdcard_img.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -x 4 | [ $# -eq 5 ] || { 5 | echo "SYNTAX: $0 " 6 | exit 1 7 | } 8 | 9 | OUTPUT="$1" 10 | BOOTFS="$2" 11 | ROOTFS="$3" 12 | BOOTFSSIZE="$4" 13 | ROOTFSSIZE="$5" 14 | 15 | head=4 16 | sect=63 17 | 18 | set $(ptgen -o $OUTPUT -h $head -s $sect -l 4096 -t c -p ${BOOTFSSIZE}M -t 83 -p ${ROOTFSSIZE}M) 19 | 20 | BOOTOFFSET="$(($1 / 512))" 21 | BOOTSIZE="$(($2 / 512))" 22 | ROOTFSOFFSET="$(($3 / 512))" 23 | ROOTFSSIZE="$(($4 / 512))" 24 | 25 | dd bs=512 if="$BOOTFS" of="$OUTPUT" seek="$BOOTOFFSET" conv=notrunc 26 | dd bs=512 if="$ROOTFS" of="$OUTPUT" seek="$ROOTFSOFFSET" conv=notrunc 27 | -------------------------------------------------------------------------------- /target/linux/amlogic/image/meson8b.mk: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-only 2 | 3 | define Device/Default 4 | PROFILES = Default $$(DEVICE_NAME) 5 | KERNEL_NAME := Image 6 | KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) 7 | KERNEL := kernel-bin | uImage-meson none 8 | FILESYSTEMS := ext4 9 | IMAGES := sdcard.img 10 | endef 11 | 12 | define Device/thunder-onecloud 13 | DEVICE_DTS := amlogic/meson8b-onecloud 14 | DEVICE_TITLE := Thunder OneCloud 15 | KERNEL_LOADADDR := 0x00208000 16 | IMAGE/sdcard.img := sdcard-img $$(DEVICE_NAME) 17 | endef 18 | TARGET_DEVICES += thunder-onecloud 19 | -------------------------------------------------------------------------------- /target/linux/amlogic/image/s805_autoscript.txt: -------------------------------------------------------------------------------- 1 | setenv condev "console=ttyAML0,115200n8 no_console_suspend consoleblank=0" 2 | setenv bootargs "root=/dev/sda2 rootwait ro ${condev} fsck.repair=yes net.ifnames=0 mac=${mac}" 3 | setenv bootargs_sd "root=/dev/mmcblk0p2 rootwait ro ${condev} fsck.repair=yes net.ifnames=0 mac=${mac}" 4 | setenv bootargs_emmc "root=/dev/mmcblk1p2 rootwait ro ${condev} fsck.repair=yes net.ifnames=0 mac=${mac}" 5 | setenv kernel_loadaddr "0x00208000" 6 | setenv dtb_loadaddr "0x21800000" 7 | setenv initrd_loadaddr "0x22000000" 8 | setenv dtb_name "dtb" 9 | #setenv boot_start bootm ${kernel_loadaddr} ${initrd_loadaddr} ${dtb_loadaddr} 10 | setenv boot_start bootm ${kernel_loadaddr} - ${dtb_loadaddr} 11 | 12 | if fatload usb 0 ${initrd_loadaddr} uInitrd; then if fatload usb 0 ${kernel_loadaddr} uImage; then if fatload usb 0 ${dtb_loadaddr} ${dtb_name}; then run boot_start; else imgread dtb boot ${loadaddr} ${dtb_loadaddr}; run boot_start;fi;fi;fi; 13 | if fatload usb 1 ${initrd_loadaddr} uInitrd; then if fatload usb 1 ${kernel_loadaddr} uImage; then if fatload usb 1 ${dtb_loadaddr} ${dtb_name}; then run boot_start; else imgread dtb boot ${loadaddr} ${dtb_loadaddr}; run boot_start;fi;fi;fi; 14 | if fatload usb 2 ${initrd_loadaddr} uInitrd; then if fatload usb 2 ${kernel_loadaddr} uImage; then if fatload usb 2 ${dtb_loadaddr} ${dtb_name}; then run boot_start; else imgread dtb boot ${loadaddr} ${dtb_loadaddr}; run boot_start;fi;fi;fi; 15 | if fatload usb 3 ${initrd_loadaddr} uInitrd; then if fatload usb 3 ${kernel_loadaddr} uImage; then if fatload usb 3 ${dtb_loadaddr} ${dtb_name}; then run boot_start; else imgread dtb boot ${loadaddr} ${dtb_loadaddr}; run boot_start;fi;fi;fi; 16 | if fatload mmc 0 ${initrd_loadaddr} uInitrd; setenv bootargs ${bootargs_sd}; then if fatload mmc 0 ${kernel_loadaddr} uImage; then if fatload mmc 0 ${dtb_loadaddr} ${dtb_name}; then run boot_start; else imgread dtb boot ${loadaddr} ${dtb_loadaddr}; run boot_start;fi;fi;fi; 17 | if fatload mmc 1 ${initrd_loadaddr} uInitrd; setenv bootargs ${bootargs_emmc}; then if fatload mmc 1 ${kernel_loadaddr} uImage; then if fatload mmc 1 ${dtb_loadaddr} ${dtb_name}; then run boot_start; else imgread dtb boot ${loadaddr} ${dtb_loadaddr}; run boot_start;fi;fi;fi; 18 | 19 | #rebuild 20 | #mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "s805_autoscript.scr" -d s805_autoscript.txt ./s805_autoscript.scr 21 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/base-files/etc/inittab: -------------------------------------------------------------------------------- 1 | ::sysinit:/etc/init.d/rcS S boot 2 | ::shutdown:/etc/init.d/rcS K shutdown 3 | ::askconsole:/usr/libexec/login.sh 4 | tty1::askfirst:/usr/libexec/login.sh 5 | ttyAML0::askfirst:/usr/libexec/login.sh 6 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/base-files/etc/uci-defaults/dhcp-proto-lan: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Set dhcp proto on lan 4 | 5 | uci -q batch <<-EOF >/dev/null 6 | delete network.lan.ipaddr 7 | delete network.lan.netmask 8 | set network.lan.proto='dhcp' 9 | commit network 10 | EOF 11 | 12 | rm -f /tmp/luci-indexcache 13 | exit 0 14 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/base-files/etc/uci-defaults/gen-mac-address: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Generate random MAC address on first boot 4 | 5 | MAC=$(printf "%02x" $(( $(hexdump -n1 -e'/1 "0x%02x"' /dev/urandom) & ~1 | 2)) && hexdump -n5 -e'/1 ":%02x"' /dev/urandom) 6 | 7 | uci -q batch <<-EOF >/dev/null 8 | set network.@device[1].macaddr=${MAC} 9 | commit network 10 | EOF 11 | 12 | rm -f /tmp/luci-indexcache 13 | exit 0 14 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/base-files/lib/preinit/79_move_config: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright (C) 2012-2015 OpenWrt.org 3 | 4 | move_config() { 5 | local partdev 6 | 7 | . /lib/upgrade/common.sh 8 | 9 | if export_bootdevice && export_partdevice partdev 1; then 10 | mkdir -p /boot 11 | if mount -t ext4 -o ro,noatime "/dev/$partdev" /boot; then 12 | if [ -f /boot/sysupgrade.tgz ]; then 13 | mount /boot -o remount,rw,noatime 14 | mv -f /boot/sysupgrade.tgz / 15 | mount /boot -o remount,ro,noatime 16 | fi 17 | fi 18 | fi 19 | } 20 | 21 | boot_hook_add preinit_mount_root move_config 22 | 23 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/base-files/lib/upgrade/platform.sh: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | 3 | RAMFS_COPY_BIN='fw_printenv fw_setenv' 4 | RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' 5 | REQUIRE_IMAGE_METADATA=1 6 | 7 | platform_check_image() { 8 | case "$(board_name)" in 9 | hardkernel,odroid-c2) 10 | legacy_sdcard_check_image "$1" 11 | ;; 12 | *) 13 | return 0 14 | ;; 15 | esac 16 | } 17 | 18 | platform_do_upgrade() { 19 | case "$(board_name)" in 20 | hardkernel,odroid-c2) 21 | legacy_sdcard_do_upgrade "$1" 22 | ;; 23 | *) 24 | default_do_upgrade "$1" 25 | ;; 26 | esac 27 | } 28 | platform_copy_config() { 29 | case "$(board_name)" in 30 | hardkernel,odroid-c2) 31 | legacy_sdcard_copy_config 32 | ;; 33 | esac 34 | } 35 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/base-files/root/resize.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # SD card: /dev/mmcblk0 4 | # eMMC: /dev/mmcblk1 5 | 6 | _help () { 7 | echo "./resize.sh emmc|sd\n" 8 | exit 0 9 | } 10 | 11 | _resize() { 12 | parted /dev/${DISK} resizepart 2 100% 13 | losetup /dev/loop0 /dev/${DISK}p2 14 | resize2fs -f /dev/loop0 15 | } 16 | 17 | case $1 in 18 | emmc) DISK=mmcblk1 _resize ;; 19 | sd) DISK=mmcblk0 _resize ;; 20 | *) _help ;; 21 | esac 22 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/config-6.6: -------------------------------------------------------------------------------- 1 | CONFIG_ALIGNMENT_TRAP=y 2 | CONFIG_AMLOGIC_THERMAL=y 3 | CONFIG_ARCH_32BIT_OFF_T=y 4 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y 5 | CONFIG_ARCH_KEEP_MEMBLOCK=y 6 | CONFIG_ARCH_MESON=y 7 | CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y 8 | CONFIG_ARCH_MULTIPLATFORM=y 9 | CONFIG_ARCH_MULTI_V6_V7=y 10 | CONFIG_ARCH_MULTI_V7=y 11 | CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y 12 | CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y 13 | CONFIG_ARCH_SELECT_MEMORY_MODEL=y 14 | CONFIG_ARCH_SPARSEMEM_ENABLE=y 15 | CONFIG_ARCH_STACKWALK=y 16 | CONFIG_ARCH_SUSPEND_POSSIBLE=y 17 | CONFIG_ARM=y 18 | CONFIG_ARM_GIC=y 19 | CONFIG_ARM_GLOBAL_TIMER=y 20 | CONFIG_ARM_GT_INITIAL_PRESCALER_VAL=1 21 | CONFIG_ARM_HAS_GROUP_RELOCS=y 22 | CONFIG_ARM_HEAVY_MB=y 23 | CONFIG_ARM_L1_CACHE_SHIFT=6 24 | CONFIG_ARM_L1_CACHE_SHIFT_6=y 25 | CONFIG_ARM_PATCH_IDIV=y 26 | CONFIG_ARM_PATCH_PHYS_VIRT=y 27 | CONFIG_ARM_THUMB=y 28 | CONFIG_ARM_THUMBEE=y 29 | CONFIG_ARM_UNWIND=y 30 | CONFIG_ARM_VIRT_EXT=y 31 | CONFIG_ASN1=y 32 | CONFIG_ASSOCIATIVE_ARRAY=y 33 | CONFIG_AUTO_ZRELADDR=y 34 | CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y 35 | CONFIG_BLK_CGROUP=y 36 | CONFIG_BLK_CGROUP_RWSTAT=y 37 | CONFIG_BLK_DEBUG_FS=y 38 | # CONFIG_BLK_DEV_INITRD is not set 39 | CONFIG_BLK_DEV_LOOP=y 40 | CONFIG_BLK_DEV_SD=y 41 | CONFIG_BLK_DEV_THROTTLING=y 42 | # CONFIG_BLK_DEV_THROTTLING_LOW is not set 43 | CONFIG_BLK_PM=y 44 | CONFIG_BUFFER_HEAD=y 45 | CONFIG_CACHE_L2X0=y 46 | CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y 47 | CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" 48 | CONFIG_CC_NO_ARRAY_BOUNDS=y 49 | CONFIG_CFS_BANDWIDTH=y 50 | CONFIG_CGROUPS=y 51 | CONFIG_CGROUP_BPF=y 52 | CONFIG_CGROUP_CPUACCT=y 53 | # CONFIG_CGROUP_DEBUG is not set 54 | # CONFIG_CGROUP_DEVICE is not set 55 | CONFIG_CGROUP_FAVOR_DYNMODS=y 56 | # CONFIG_CGROUP_FREEZER is not set 57 | CONFIG_CGROUP_MISC=y 58 | # CONFIG_CGROUP_NET_CLASSID is not set 59 | # CONFIG_CGROUP_NET_PRIO is not set 60 | CONFIG_CGROUP_PIDS=y 61 | CONFIG_CGROUP_RDMA=y 62 | CONFIG_CGROUP_SCHED=y 63 | CONFIG_CGROUP_WRITEBACK=y 64 | CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y 65 | CONFIG_CLKSRC_MMIO=y 66 | CONFIG_CLONE_BACKWARDS=y 67 | CONFIG_CLZ_TAB=y 68 | CONFIG_CMA=y 69 | CONFIG_CMA_ALIGNMENT=8 70 | CONFIG_CMA_AREAS=7 71 | # CONFIG_CMA_DEBUG is not set 72 | # CONFIG_CMA_DEBUGFS is not set 73 | CONFIG_CMA_SIZE_MBYTES=16 74 | # CONFIG_CMA_SIZE_SEL_MAX is not set 75 | CONFIG_CMA_SIZE_SEL_MBYTES=y 76 | # CONFIG_CMA_SIZE_SEL_MIN is not set 77 | # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set 78 | CONFIG_CMA_SYSFS=y 79 | CONFIG_COMMON_CLK=y 80 | CONFIG_COMMON_CLK_CS2000_CP=y 81 | CONFIG_COMMON_CLK_MESON8B=y 82 | CONFIG_COMMON_CLK_MESON_CLKC_UTILS=y 83 | CONFIG_COMMON_CLK_MESON_MPLL=y 84 | CONFIG_COMMON_CLK_MESON_PLL=y 85 | CONFIG_COMMON_CLK_MESON_REGMAP=y 86 | CONFIG_COMMON_CLK_PWM=y 87 | CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 88 | CONFIG_COMPAT_32BIT_TIME=y 89 | CONFIG_CONSOLE_TRANSLATIONS=y 90 | CONFIG_CONTEXT_TRACKING=y 91 | CONFIG_CONTEXT_TRACKING_IDLE=y 92 | CONFIG_CONTIG_ALLOC=y 93 | CONFIG_COREDUMP=y 94 | CONFIG_CPUFREQ_DT=y 95 | CONFIG_CPUFREQ_DT_PLATDEV=y 96 | CONFIG_CPUSETS=y 97 | CONFIG_CPU_32v6K=y 98 | CONFIG_CPU_32v7=y 99 | CONFIG_CPU_ABRT_EV7=y 100 | CONFIG_CPU_CACHE_V7=y 101 | CONFIG_CPU_CACHE_VIPT=y 102 | CONFIG_CPU_COPY_V6=y 103 | CONFIG_CPU_CP15=y 104 | CONFIG_CPU_CP15_MMU=y 105 | CONFIG_CPU_FREQ=y 106 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y 107 | CONFIG_CPU_FREQ_GOV_ATTR_SET=y 108 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set 109 | # CONFIG_CPU_FREQ_GOV_ONDEMAND is not set 110 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y 111 | # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set 112 | CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y 113 | # CONFIG_CPU_FREQ_GOV_USERSPACE is not set 114 | CONFIG_CPU_FREQ_STAT=y 115 | CONFIG_CPU_FREQ_THERMAL=y 116 | CONFIG_CPU_HAS_ASID=y 117 | CONFIG_CPU_LITTLE_ENDIAN=y 118 | CONFIG_CPU_MITIGATIONS=y 119 | CONFIG_CPU_PABRT_V7=y 120 | CONFIG_CPU_RMAP=y 121 | CONFIG_CPU_SPECTRE=y 122 | CONFIG_CPU_THERMAL=y 123 | CONFIG_CPU_THUMB_CAPABLE=y 124 | CONFIG_CPU_TLB_V7=y 125 | CONFIG_CPU_V7=y 126 | CONFIG_CRASH_CORE=y 127 | CONFIG_CRASH_DUMP=y 128 | CONFIG_CRC16=y 129 | CONFIG_CRC7=y 130 | CONFIG_CRC_CCITT=m 131 | CONFIG_CRC_ITU_T=y 132 | CONFIG_CRYPTO_AES_ARM=y 133 | CONFIG_CRYPTO_AES_ARM_BS=y 134 | CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y 135 | CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=y 136 | CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y 137 | CONFIG_CRYPTO_BLAKE2B=y 138 | CONFIG_CRYPTO_BLAKE2B_NEON=y 139 | CONFIG_CRYPTO_CBC=y 140 | CONFIG_CRYPTO_CHACHA20_NEON=y 141 | CONFIG_CRYPTO_CMAC=y 142 | CONFIG_CRYPTO_CRC32=y 143 | CONFIG_CRYPTO_CRC32C=y 144 | CONFIG_CRYPTO_CRC32_ARM_CE=y 145 | CONFIG_CRYPTO_CRYPTD=y 146 | CONFIG_CRYPTO_CURVE25519_NEON=y 147 | CONFIG_CRYPTO_DES=y 148 | CONFIG_CRYPTO_DRBG=y 149 | CONFIG_CRYPTO_DRBG_HMAC=y 150 | CONFIG_CRYPTO_DRBG_MENU=y 151 | CONFIG_CRYPTO_ECB=y 152 | CONFIG_CRYPTO_GENIV=y 153 | CONFIG_CRYPTO_HMAC=y 154 | CONFIG_CRYPTO_JITTERENTROPY=y 155 | CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y 156 | CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=y 157 | CONFIG_CRYPTO_LIB_DES=y 158 | CONFIG_CRYPTO_LIB_GF128MUL=y 159 | CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y 160 | CONFIG_CRYPTO_LIB_SHA1=y 161 | CONFIG_CRYPTO_LIB_SHA256=y 162 | CONFIG_CRYPTO_LIB_UTILS=y 163 | CONFIG_CRYPTO_NHPOLY1305=y 164 | CONFIG_CRYPTO_NHPOLY1305_NEON=y 165 | CONFIG_CRYPTO_POLY1305_ARM=y 166 | CONFIG_CRYPTO_RNG=y 167 | CONFIG_CRYPTO_RNG2=y 168 | CONFIG_CRYPTO_RNG_DEFAULT=y 169 | CONFIG_CRYPTO_RSA=y 170 | CONFIG_CRYPTO_SEQIV=y 171 | CONFIG_CRYPTO_SHA1=y 172 | CONFIG_CRYPTO_SHA1_ARM=y 173 | CONFIG_CRYPTO_SHA1_ARM_NEON=y 174 | CONFIG_CRYPTO_SHA256=y 175 | CONFIG_CRYPTO_SHA256_ARM=y 176 | CONFIG_CRYPTO_SHA3=y 177 | CONFIG_CRYPTO_SHA512=y 178 | CONFIG_CRYPTO_SHA512_ARM=y 179 | CONFIG_CRYPTO_SIMD=y 180 | CONFIG_CURRENT_POINTER_IN_TPIDRURO=y 181 | CONFIG_DCACHE_WORD_ACCESS=y 182 | CONFIG_DEBUG_INFO=y 183 | CONFIG_DEBUG_INFO_REDUCED=y 184 | CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" 185 | CONFIG_DMA_CMA=y 186 | CONFIG_DMA_OPS=y 187 | CONFIG_DMA_SHARED_BUFFER=y 188 | CONFIG_DTC=y 189 | CONFIG_DUMMY_CONSOLE=y 190 | CONFIG_DWMAC_DWC_QOS_ETH=y 191 | # CONFIG_DWMAC_GENERIC is not set 192 | CONFIG_DWMAC_MESON=y 193 | CONFIG_EDAC_ATOMIC_SCRUB=y 194 | CONFIG_EDAC_SUPPORT=y 195 | CONFIG_ELF_CORE=y 196 | # CONFIG_ETHTOOL_NETLINK is not set 197 | CONFIG_EXCLUSIVE_SYSTEM_RAM=y 198 | CONFIG_EXT4_FS=y 199 | CONFIG_EXTCON=y 200 | CONFIG_F2FS_FS=y 201 | CONFIG_FAIR_GROUP_SCHED=y 202 | CONFIG_FANOTIFY=y 203 | CONFIG_FHANDLE=y 204 | CONFIG_FIXED_PHY=y 205 | CONFIG_FIX_EARLYCON_MEM=y 206 | # CONFIG_FORTIFY_SOURCE is not set 207 | CONFIG_FS_IOMAP=y 208 | CONFIG_FS_MBCACHE=y 209 | CONFIG_FUNCTION_ALIGNMENT=0 210 | CONFIG_FWNODE_MDIO=y 211 | CONFIG_FW_LOADER_PAGED_BUF=y 212 | CONFIG_FW_LOADER_SYSFS=y 213 | CONFIG_GCC10_NO_ARRAY_BOUNDS=y 214 | CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y 215 | CONFIG_GENERIC_ADC_THERMAL=y 216 | CONFIG_GENERIC_ALLOCATOR=y 217 | CONFIG_GENERIC_ARCH_TOPOLOGY=y 218 | CONFIG_GENERIC_BUG=y 219 | CONFIG_GENERIC_CLOCKEVENTS=y 220 | CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y 221 | CONFIG_GENERIC_CPU_AUTOPROBE=y 222 | CONFIG_GENERIC_CPU_VULNERABILITIES=y 223 | CONFIG_GENERIC_EARLY_IOREMAP=y 224 | CONFIG_GENERIC_GETTIMEOFDAY=y 225 | CONFIG_GENERIC_IDLE_POLL_SETUP=y 226 | CONFIG_GENERIC_IRQ_CHIP=y 227 | CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y 228 | CONFIG_GENERIC_IRQ_MULTI_HANDLER=y 229 | CONFIG_GENERIC_IRQ_SHOW=y 230 | CONFIG_GENERIC_IRQ_SHOW_LEVEL=y 231 | CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y 232 | CONFIG_GENERIC_PCI_IOMAP=y 233 | CONFIG_GENERIC_PHY=y 234 | CONFIG_GENERIC_PINCONF=y 235 | CONFIG_GENERIC_PINCTRL_GROUPS=y 236 | CONFIG_GENERIC_PINMUX_FUNCTIONS=y 237 | CONFIG_GENERIC_SCHED_CLOCK=y 238 | CONFIG_GENERIC_SMP_IDLE_THREAD=y 239 | CONFIG_GENERIC_STRNCPY_FROM_USER=y 240 | CONFIG_GENERIC_STRNLEN_USER=y 241 | CONFIG_GENERIC_TIME_VSYSCALL=y 242 | CONFIG_GENERIC_VDSO_32=y 243 | CONFIG_GLOB=y 244 | CONFIG_GPIO_CDEV=y 245 | # CONFIG_HARDENED_USERCOPY is not set 246 | # CONFIG_HARDEN_BRANCH_HISTORY is not set 247 | # CONFIG_HARDEN_BRANCH_PREDICTOR is not set 248 | CONFIG_HARDIRQS_SW_RESEND=y 249 | CONFIG_HAS_DMA=y 250 | CONFIG_HAS_IOMEM=y 251 | CONFIG_HAS_IOPORT=y 252 | CONFIG_HAS_IOPORT_MAP=y 253 | CONFIG_HAVE_SMP=y 254 | CONFIG_HID=m 255 | CONFIG_HIDRAW=y 256 | CONFIG_HID_BATTERY_STRENGTH=y 257 | CONFIG_HID_GENERIC=m 258 | CONFIG_HID_SUPPORT=y 259 | CONFIG_HIGHMEM=y 260 | CONFIG_HIGHPTE=y 261 | CONFIG_HWMON=y 262 | CONFIG_HW_CONSOLE=y 263 | CONFIG_HW_RANDOM=y 264 | CONFIG_HW_RANDOM_MESON=y 265 | CONFIG_HZ_FIXED=0 266 | CONFIG_I2C=y 267 | CONFIG_I2C_ALGOBIT=y 268 | CONFIG_I2C_BOARDINFO=y 269 | CONFIG_I2C_MESON=y 270 | CONFIG_ICPLUS_PHY=y 271 | CONFIG_IIO=y 272 | CONFIG_INPUT=y 273 | CONFIG_INPUT_EVDEV=m 274 | CONFIG_IPC_NS=y 275 | CONFIG_IP_MROUTE=y 276 | CONFIG_IP_MROUTE_COMMON=y 277 | CONFIG_IP_PIMSM_V1=y 278 | CONFIG_IP_PIMSM_V2=y 279 | CONFIG_IRQCHIP=y 280 | CONFIG_IRQSTACKS=y 281 | CONFIG_IRQ_DOMAIN=y 282 | CONFIG_IRQ_DOMAIN_HIERARCHY=y 283 | CONFIG_IRQ_FORCED_THREADING=y 284 | CONFIG_IRQ_WORK=y 285 | # CONFIG_IR_MESON is not set 286 | CONFIG_IR_MESON_TX=y 287 | CONFIG_JBD2=y 288 | CONFIG_KALLSYMS=y 289 | CONFIG_KALLSYMS_UNCOMPRESSED=y 290 | CONFIG_KCMP=y 291 | CONFIG_KEXEC_CORE=y 292 | CONFIG_KEYS=y 293 | CONFIG_KMAP_LOCAL=y 294 | CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y 295 | # CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set 296 | CONFIG_LEDS_GPIO=y 297 | CONFIG_LIBCRC32C=m 298 | CONFIG_LIBFDT=y 299 | CONFIG_LOCK_DEBUGGING_SUPPORT=y 300 | CONFIG_LOCK_SPIN_ON_OWNER=y 301 | CONFIG_LWTUNNEL=y 302 | # CONFIG_LWTUNNEL_BPF is not set 303 | # CONFIG_MACH_MESON6 is not set 304 | CONFIG_MACH_MESON8=y 305 | CONFIG_MAGIC_SYSRQ=y 306 | CONFIG_MAILBOX=y 307 | # CONFIG_MAILBOX_TEST is not set 308 | CONFIG_MDIO_BITBANG=y 309 | CONFIG_MDIO_BUS=y 310 | CONFIG_MDIO_BUS_MUX=y 311 | # CONFIG_MDIO_BUS_MUX_MESON_G12A is not set 312 | # CONFIG_MDIO_BUS_MUX_MESON_GXL is not set 313 | CONFIG_MDIO_BUS_MUX_MMIOREG=y 314 | CONFIG_MDIO_DEVICE=y 315 | CONFIG_MDIO_DEVRES=y 316 | # CONFIG_MDIO_GPIO is not set 317 | CONFIG_MEMCG=y 318 | CONFIG_MEMCG_KMEM=y 319 | CONFIG_MEMORY=y 320 | CONFIG_MEMORY_ISOLATION=y 321 | CONFIG_MESON6_TIMER=y 322 | # CONFIG_MESON_CANVAS is not set 323 | CONFIG_MESON_CLK_MEASURE=y 324 | CONFIG_MESON_EE_PM_DOMAINS=y 325 | # CONFIG_MESON_GXBB_WATCHDOG is not set 326 | # CONFIG_MESON_GXL_PHY is not set 327 | CONFIG_MESON_GX_PM_DOMAINS=y 328 | CONFIG_MESON_IRQ_GPIO=y 329 | CONFIG_MESON_MX_SOCINFO=y 330 | CONFIG_MESON_SARADC=y 331 | CONFIG_MESON_WATCHDOG=y 332 | # CONFIG_MFD_KHADAS_MCU is not set 333 | CONFIG_MFD_SYSCON=y 334 | CONFIG_MIGHT_HAVE_CACHE_L2X0=y 335 | CONFIG_MIGRATION=y 336 | CONFIG_MMC=y 337 | CONFIG_MMC_BLOCK=y 338 | CONFIG_MMC_BLOCK_MINORS=32 339 | CONFIG_MMC_CQHCI=y 340 | CONFIG_MMC_DW=y 341 | # CONFIG_MMC_DW_BLUEFIELD is not set 342 | # CONFIG_MMC_DW_EXYNOS is not set 343 | # CONFIG_MMC_DW_HI3798CV200 is not set 344 | CONFIG_MMC_DW_K3=y 345 | CONFIG_MMC_DW_PLTFM=y 346 | # CONFIG_MMC_MESON_GX is not set 347 | CONFIG_MMC_MESON_MX_SDHC=y 348 | CONFIG_MMC_MESON_MX_SDIO=y 349 | CONFIG_MMC_SDHCI=y 350 | CONFIG_MMC_SDHCI_OF_ARASAN=y 351 | CONFIG_MMC_SDHCI_PLTFM=y 352 | CONFIG_MMC_SPI=y 353 | CONFIG_MMU_LAZY_TLB_REFCOUNT=y 354 | CONFIG_MODULES_USE_ELF_REL=y 355 | CONFIG_MPILIB=y 356 | CONFIG_MQ_IOSCHED_DEADLINE=y 357 | CONFIG_MQ_IOSCHED_KYBER=y 358 | CONFIG_MUTEX_SPIN_ON_OWNER=y 359 | CONFIG_NAMESPACES=y 360 | CONFIG_NEED_DMA_MAP_STATE=y 361 | CONFIG_NEED_SRCU_NMI_SAFE=y 362 | CONFIG_NEON=y 363 | CONFIG_NET_CLS_ACT=y 364 | # CONFIG_NET_CLS_CGROUP is not set 365 | CONFIG_NET_EGRESS=y 366 | CONFIG_NET_EMATCH=y 367 | CONFIG_NET_FLOW_LIMIT=y 368 | CONFIG_NET_INGRESS=y 369 | CONFIG_NET_NS=y 370 | CONFIG_NET_PTP_CLASSIFY=y 371 | CONFIG_NET_SELFTESTS=y 372 | CONFIG_NET_XGRESS=y 373 | CONFIG_NLS=y 374 | CONFIG_NO_HZ_COMMON=y 375 | CONFIG_NO_HZ_IDLE=y 376 | CONFIG_NR_CPUS=4 377 | CONFIG_NVMEM=y 378 | CONFIG_NVMEM_LAYOUTS=y 379 | CONFIG_NVMEM_MESON_MX_EFUSE=y 380 | CONFIG_OF=y 381 | CONFIG_OF_ADDRESS=y 382 | CONFIG_OF_EARLY_FLATTREE=y 383 | CONFIG_OF_FLATTREE=y 384 | CONFIG_OF_GPIO=y 385 | CONFIG_OF_IRQ=y 386 | CONFIG_OF_KOBJ=y 387 | CONFIG_OF_MDIO=y 388 | CONFIG_OID_REGISTRY=y 389 | CONFIG_OLD_SIGACTION=y 390 | CONFIG_OLD_SIGSUSPEND3=y 391 | CONFIG_OUTER_CACHE=y 392 | CONFIG_OUTER_CACHE_SYNC=y 393 | CONFIG_PADATA=y 394 | CONFIG_PAGE_COUNTER=y 395 | CONFIG_PAGE_OFFSET=0xC0000000 396 | CONFIG_PAGE_POOL=y 397 | CONFIG_PAGE_SIZE_LESS_THAN_256KB=y 398 | CONFIG_PAGE_SIZE_LESS_THAN_64KB=y 399 | CONFIG_PCS_XPCS=y 400 | CONFIG_PERF_USE_VMALLOC=y 401 | CONFIG_PGTABLE_LEVELS=2 402 | CONFIG_PHYLIB=y 403 | CONFIG_PHYLIB_LEDS=y 404 | CONFIG_PHYLINK=y 405 | CONFIG_PHY_MESON8B_USB2=y 406 | # CONFIG_PHY_MESON8_HDMI_TX is not set 407 | # CONFIG_PHY_MESON_AXG_MIPI_DPHY is not set 408 | # CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG is not set 409 | # CONFIG_PHY_MESON_AXG_PCIE is not set 410 | # CONFIG_PHY_MESON_G12A_MIPI_DPHY_ANALOG is not set 411 | # CONFIG_PHY_MESON_G12A_USB2 is not set 412 | # CONFIG_PHY_MESON_G12A_USB3_PCIE is not set 413 | # CONFIG_PHY_MESON_GXL_USB2 is not set 414 | CONFIG_PID_NS=y 415 | CONFIG_PINCTRL=y 416 | CONFIG_PINCTRL_MESON=y 417 | CONFIG_PINCTRL_MESON8=y 418 | CONFIG_PINCTRL_MESON8B=y 419 | CONFIG_PINCTRL_MESON8_PMX=y 420 | CONFIG_PLATFORM_MHU=y 421 | CONFIG_PM=y 422 | CONFIG_PM_CLK=y 423 | CONFIG_PM_GENERIC_DOMAINS=y 424 | CONFIG_PM_GENERIC_DOMAINS_OF=y 425 | CONFIG_PM_OPP=y 426 | CONFIG_POSIX_MQUEUE=y 427 | CONFIG_POSIX_MQUEUE_SYSCTL=y 428 | CONFIG_POWER_RESET=y 429 | # CONFIG_POWER_RESET_ODROID_GO_ULTRA_POWEROFF is not set 430 | CONFIG_POWER_SUPPLY=y 431 | CONFIG_POWER_SUPPLY_HWMON=y 432 | CONFIG_PPP=m 433 | CONFIG_PPPOE=m 434 | CONFIG_PPPOE_HASH_BITS=4 435 | CONFIG_PPP_ASYNC=m 436 | CONFIG_PPS=y 437 | CONFIG_PREEMPT_NONE_BUILD=y 438 | CONFIG_PRINTK_TIME=y 439 | # CONFIG_PROC_PID_CPUSET is not set 440 | CONFIG_PROC_VMCORE=y 441 | CONFIG_PTP_1588_CLOCK=y 442 | CONFIG_PTP_1588_CLOCK_OPTIONAL=y 443 | CONFIG_PWM=y 444 | CONFIG_PWM_MESON=y 445 | CONFIG_PWM_SYSFS=y 446 | CONFIG_RANDSTRUCT_NONE=y 447 | CONFIG_RATIONAL=y 448 | CONFIG_RC_CORE=y 449 | CONFIG_RC_DEVICES=y 450 | CONFIG_REALTEK_AUTOPM=y 451 | CONFIG_REALTEK_PHY=y 452 | CONFIG_REGMAP=y 453 | CONFIG_REGMAP_I2C=y 454 | CONFIG_REGMAP_MMIO=y 455 | CONFIG_REGULATOR=y 456 | CONFIG_REGULATOR_FIXED_VOLTAGE=y 457 | CONFIG_REGULATOR_GPIO=y 458 | CONFIG_REGULATOR_PWM=y 459 | CONFIG_RESET_CONTROLLER=y 460 | CONFIG_RESET_MESON=y 461 | # CONFIG_RESET_MESON_AUDIO_ARB is not set 462 | CONFIG_RFS_ACCEL=y 463 | CONFIG_RPS=y 464 | CONFIG_RTC_CLASS=y 465 | CONFIG_RTC_DRV_MESON=y 466 | # CONFIG_RTC_DRV_MESON_VRTC is not set 467 | CONFIG_RTC_I2C_AND_SPI=y 468 | CONFIG_RTC_MC146818_LIB=y 469 | CONFIG_RT_GROUP_SCHED=y 470 | CONFIG_RWSEM_SPIN_ON_OWNER=y 471 | CONFIG_SCHED_THERMAL_PRESSURE=y 472 | CONFIG_SCSI=y 473 | CONFIG_SCSI_COMMON=y 474 | CONFIG_SDIO_UART=y 475 | CONFIG_SECCOMP=y 476 | CONFIG_SECCOMP_FILTER=y 477 | # CONFIG_SECURITY_DMESG_RESTRICT is not set 478 | CONFIG_SENSORS_IIO_HWMON=y 479 | CONFIG_SERIAL_8250_FSL=y 480 | CONFIG_SERIAL_MCTRL_GPIO=y 481 | CONFIG_SERIAL_MESON=y 482 | CONFIG_SERIAL_MESON_CONSOLE=y 483 | CONFIG_SG_POOL=y 484 | CONFIG_SLHC=m 485 | CONFIG_SMP=y 486 | CONFIG_SMP_ON_UP=y 487 | CONFIG_SOCK_CGROUP_DATA=y 488 | CONFIG_SOCK_RX_QUEUE_MAPPING=y 489 | CONFIG_SOC_BUS=y 490 | CONFIG_SOFTIRQ_ON_OWN_STACK=y 491 | CONFIG_SPARSE_IRQ=y 492 | CONFIG_SPI=y 493 | # CONFIG_SPI_AMLOGIC_SPIFC_A1 is not set 494 | CONFIG_SPI_MASTER=y 495 | CONFIG_SPI_MESON_SPICC=y 496 | CONFIG_SPI_MESON_SPIFC=y 497 | CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y 498 | CONFIG_STACKPROTECTOR=y 499 | CONFIG_STACKTRACE=y 500 | CONFIG_STMMAC_ETH=y 501 | CONFIG_STMMAC_PLATFORM=y 502 | CONFIG_SWPHY=y 503 | CONFIG_SWP_EMULATE=y 504 | CONFIG_SYNC_FILE=y 505 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y 506 | CONFIG_THERMAL=y 507 | CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y 508 | CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 509 | CONFIG_THERMAL_GOV_STEP_WISE=y 510 | CONFIG_THERMAL_HWMON=y 511 | CONFIG_THERMAL_OF=y 512 | CONFIG_THREAD_INFO_IN_TASK=y 513 | CONFIG_TICK_CPU_ACCOUNTING=y 514 | CONFIG_TIMER_OF=y 515 | CONFIG_TIMER_PROBE=y 516 | CONFIG_TREE_RCU=y 517 | CONFIG_TREE_SRCU=y 518 | # CONFIG_UCLAMP_TASK is not set 519 | CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" 520 | CONFIG_UNWINDER_ARM=y 521 | CONFIG_USB=y 522 | CONFIG_USB_COMMON=y 523 | CONFIG_USB_DWC2=y 524 | CONFIG_USB_DWC2_DUAL_ROLE=y 525 | CONFIG_USB_DWC3=y 526 | CONFIG_USB_DWC3_DUAL_ROLE=y 527 | # CONFIG_USB_DWC3_GADGET is not set 528 | # CONFIG_USB_DWC3_HOST is not set 529 | # CONFIG_USB_DWC3_MESON_G12A is not set 530 | CONFIG_USB_DWC3_OF_SIMPLE=y 531 | CONFIG_USB_EHCI_HCD=y 532 | CONFIG_USB_EHCI_HCD_PLATFORM=y 533 | CONFIG_USB_GADGET=y 534 | CONFIG_USB_HID=m 535 | CONFIG_USB_HIDDEV=y 536 | CONFIG_USB_OHCI_HCD=y 537 | CONFIG_USB_OHCI_HCD_PLATFORM=y 538 | CONFIG_USB_OTG=y 539 | CONFIG_USB_OTG_FSM=y 540 | CONFIG_USB_PHY=y 541 | CONFIG_USB_ROLE_SWITCH=y 542 | CONFIG_USB_STORAGE=y 543 | CONFIG_USB_STORAGE_REALTEK=y 544 | CONFIG_USB_SUPPORT=y 545 | CONFIG_USB_ULPI=y 546 | CONFIG_USB_ULPI_VIEWPORT=y 547 | CONFIG_USB_XHCI_HCD=y 548 | CONFIG_USB_XHCI_PLATFORM=y 549 | CONFIG_USER_NS=y 550 | CONFIG_USE_OF=y 551 | CONFIG_UTS_NS=y 552 | CONFIG_VFP=y 553 | CONFIG_VFPv3=y 554 | CONFIG_VT=y 555 | CONFIG_VT_CONSOLE=y 556 | CONFIG_VT_HW_CONSOLE_BINDING=y 557 | CONFIG_WATCHDOG_CORE=y 558 | # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set 559 | CONFIG_XPS=y 560 | CONFIG_ZBOOT_ROM_BSS=0 561 | CONFIG_ZBOOT_ROM_TEXT=0 562 | -------------------------------------------------------------------------------- /target/linux/amlogic/meson8b/target.mk: -------------------------------------------------------------------------------- 1 | ARCH:=arm 2 | SUBTARGET:=meson8b 3 | BOARDNAME:=Amlogic S805 boards (32 bit) 4 | CPU_TYPE:=cortex-a5 5 | CPU_SUBTYPE:=vfpv4 6 | 7 | define Target/Description 8 | Build firmware image for Amlogic S805 SoC devices. 9 | This firmware features a 32 bit kernel. 10 | endef 11 | -------------------------------------------------------------------------------- /target/linux/amlogic/patches-6.6/903-add-meson8b-onecloud-makefile.patch: -------------------------------------------------------------------------------- 1 | --- a/arch/arm/boot/dts/amlogic/Makefile 2 | +++ b/arch/arm/boot/dts/amlogic/Makefile 3 | @@ -6,4 +6,5 @@ dtb-$(CONFIG_MACH_MESON8) += \ 4 | meson8b-ec100.dtb \ 5 | meson8b-mxq.dtb \ 6 | meson8b-odroidc1.dtb \ 7 | + meson8b-onecloud.dtb \ 8 | meson8m2-mxiii-plus.dtb 9 | -------------------------------------------------------------------------------- /target/linux/amlogic/patches-6.6/905-generic-Revert-mmc-core-Set-HS-clock-speed-before-se.patch: -------------------------------------------------------------------------------- 1 | --- a/drivers/mmc/core/mmc.c 2 | +++ b/drivers/mmc/core/mmc.c 3 | @@ -1393,17 +1393,13 @@ static int mmc_select_hs400es(struct mmc 4 | goto out_err; 5 | } 6 | 7 | - /* 8 | - * Bump to HS timing and frequency. Some cards don't handle 9 | - * SEND_STATUS reliably at the initial frequency. 10 | - */ 11 | mmc_set_timing(host, MMC_TIMING_MMC_HS); 12 | - mmc_set_bus_speed(card); 13 | - 14 | err = mmc_switch_status(card, true); 15 | if (err) 16 | goto out_err; 17 | 18 | + mmc_set_clock(host, card->ext_csd.hs_max_dtr); 19 | + 20 | /* Switch card to DDR with strobe bit */ 21 | val = EXT_CSD_DDR_BUS_WIDTH_8 | EXT_CSD_BUS_WIDTH_STROBE; 22 | err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, 23 | @@ -1461,7 +1457,7 @@ out_err: 24 | static int mmc_select_hs200(struct mmc_card *card) 25 | { 26 | struct mmc_host *host = card->host; 27 | - unsigned int old_timing, old_signal_voltage, old_clock; 28 | + unsigned int old_timing, old_signal_voltage; 29 | int err = -EINVAL; 30 | u8 val; 31 | 32 | @@ -1492,17 +1488,8 @@ static int mmc_select_hs200(struct mmc_c 33 | false, true, MMC_CMD_RETRIES); 34 | if (err) 35 | goto err; 36 | - 37 | - /* 38 | - * Bump to HS timing and frequency. Some cards don't handle 39 | - * SEND_STATUS reliably at the initial frequency. 40 | - * NB: We can't move to full (HS200) speeds until after we've 41 | - * successfully switched over. 42 | - */ 43 | old_timing = host->ios.timing; 44 | - old_clock = host->ios.clock; 45 | mmc_set_timing(host, MMC_TIMING_MMC_HS200); 46 | - mmc_set_clock(card->host, card->ext_csd.hs_max_dtr); 47 | 48 | /* 49 | * For HS200, CRC errors are not a reliable way to know the 50 | @@ -1515,10 +1502,8 @@ static int mmc_select_hs200(struct mmc_c 51 | * mmc_select_timing() assumes timing has not changed if 52 | * it is a switch error. 53 | */ 54 | - if (err == -EBADMSG) { 55 | - mmc_set_clock(host, old_clock); 56 | + if (err == -EBADMSG) 57 | mmc_set_timing(host, old_timing); 58 | - } 59 | } 60 | err: 61 | if (err) { 62 | -------------------------------------------------------------------------------- /target/linux/amlogic/patches-6.6/906-generic-Revert-pwm-meson-modify-and-simplify-calculation-in-.patch: -------------------------------------------------------------------------------- 1 | --- a/drivers/pwm/pwm-meson.c 2 | +++ b/drivers/pwm/pwm-meson.c 3 | @@ -322,8 +322,18 @@ static int meson_pwm_get_state(struct pw 4 | channel->lo = FIELD_GET(PWM_LOW_MASK, value); 5 | channel->hi = FIELD_GET(PWM_HIGH_MASK, value); 6 | 7 | - state->period = meson_pwm_cnt_to_ns(chip, pwm, channel->lo + channel->hi); 8 | - state->duty_cycle = meson_pwm_cnt_to_ns(chip, pwm, channel->hi); 9 | + if (channel->lo == 0) { 10 | + state->period = meson_pwm_cnt_to_ns(chip, pwm, channel->hi); 11 | + state->duty_cycle = state->period; 12 | + } else if (channel->lo >= channel->hi) { 13 | + state->period = meson_pwm_cnt_to_ns(chip, pwm, 14 | + channel->lo + channel->hi); 15 | + state->duty_cycle = meson_pwm_cnt_to_ns(chip, pwm, 16 | + channel->hi); 17 | + } else { 18 | + state->period = 0; 19 | + state->duty_cycle = 0; 20 | + } 21 | 22 | state->polarity = PWM_POLARITY_NORMAL; 23 | 24 | --------------------------------------------------------------------------------