From b6d063d41a607acfae8acf6390be393cd5e20cf4 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sat, 16 Mar 2024 01:12:38 -0400 Subject: [PATCH 01/41] CI: build bcm2711 RPi 4B firmware Signed-off-by: Marty Jones --- .github/workflows/bcm2711.yaml | 86 ++++ .github/workflows/config.buildinfo4 | 687 ++++++++++++++++++++++++++++ 2 files changed, 773 insertions(+) create mode 100644 .github/workflows/bcm2711.yaml create mode 100644 .github/workflows/config.buildinfo4 diff --git a/.github/workflows/bcm2711.yaml b/.github/workflows/bcm2711.yaml new file mode 100644 index 00000000000000..7d530001f0deeb --- /dev/null +++ b/.github/workflows/bcm2711.yaml @@ -0,0 +1,86 @@ +name: Build bcm2711 RPi 4B +on: [push] + +jobs: + build: + name: Build Raspberry Pi 4 images + runs-on: ubuntu-latest + + steps: + - name: Maximize build space + uses: easimon/maximize-build-space@master + with: + root-reserve-mb: 512 + swap-size-mb: 1024 + remove-dotnet: 'true' + overprovision-lvm: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' + - name: Checkout + uses: actions/checkout@v4 + + - name: Build + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + cd feeds/luci + wget https://gist.githubusercontent.com/mj22226/363cefecd314e45b49d8eafff8473fcf/raw/69b47c9a972e15056f94870d76d93a5146893f99/01-diskman.patch + + git apply 01-diskman.patch + + cd - + cd feeds/packages + wget https://gist.githubusercontent.com/mj22226/351f11e66f08f06e37a985719a31ddb4/raw/b35ba7a3aac1949bd6bbeaad065a0a93dc3c34f0/01-cpu.patch + wget https://gist.githubusercontent.com/mj22226/b66f5c1bd5fc7e1cb3cf2c690b5dbd5a/raw/b955e726cbb0948d932c8d6143229ad604320149/20-lxc.patch + wget https://github.com/mj22226/packages/commit/37264a2e636b790df9cb037db695505341030e98.patch + git apply 01-cpu.patch + git apply 20-lxc.patch + + cd - + sed -i "71s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "84s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "195s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "212s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "13s/'1'/'0'/" feeds/packages/utils/dockerd/files/etc/config/dockerd + sed -i 's/default n/default y/g' feeds/packages/utils/dockerd/Config.in + ./scripts/feeds update -a + ./scripts/feeds install -a -f + wget https://downloads.openwrt.org/snapshots/targets/bcm27xx/bcm2711/llvm-bpf-18.1.7.Linux-x86_64.tar.zst + tar -xvf llvm-bpf-18.1.7.Linux-x86_64.tar.zst + cp .github/workflows/config.buildinfo4 .config + make defconfig + wget https://gist.githubusercontent.com/mj22226/23edc25efeb65ef69d8eb6598f4f8179/raw/29c862e3e2558852523f4e8edd5f3d0cc145067e/01-key.patch + git apply 01-key.patch + make download -j32 + rm 01-key.patch + + + mkdir -p files/www/repo + wget https://gist.githubusercontent.com/mj22226/681178b344f588b4625a7f83febd9131/raw/73ff0c720a0eefb99fe086ec2d715e0052976df0/03.patch + git apply 03.patch + make -j$(nproc) 'IGNORE_ERRORS=n m' + cp -R bin/targets/bcm27xx/bcm2711/packages/ files/www/repo/ + make -j$(nproc) 'IGNORE_ERRORS=n m' + rm -rf bin/targets/bcm27xx/bcm2711/packages + echo "DATE=$(date +'%Y.%m.%d')" >> $GITHUB_ENV + echo "HASH=$(git log -1 --format="%H")" >> $GITHUB_ENV + - name: Delete tag + uses: ClementTsang/delete-tag-and-release@v0.4.0 + with: + delete_release: true + tag_name: bcm2711-6.6 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create release + uses: ncipollo/release-action@v1.14.0 + with: + allowUpdates: true + commit: ${{ env.HASH }} + name: Raspberry Pi 4 Firmware Images + tag: bcm2711-6.6 + replacesArtifacts: true + prerelease: true + token: "${{ secrets.GITHUB_TOKEN }}" + artifacts: bin/targets/bcm27xx/bcm2711/* diff --git a/.github/workflows/config.buildinfo4 b/.github/workflows/config.buildinfo4 new file mode 100644 index 00000000000000..41df4844e6f162 --- /dev/null +++ b/.github/workflows/config.buildinfo4 @@ -0,0 +1,687 @@ +CONFIG_TARGET_bcm27xx=y +CONFIG_TARGET_bcm27xx_bcm2711=y +CONFIG_TARGET_MULTI_PROFILE=y +CONFIG_TARGET_DEVICE_bcm27xx_bcm2711_DEVICE_rpi-4=y +CONFIG_TARGET_DEVICE_PACKAGES_bcm27xx_bcm2711_DEVICE_rpi-4="" +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y +CONFIG_DEVEL=y +CONFIG_BUSYBOX_CUSTOM=y +CONFIG_TARGET_PER_DEVICE_ROOTFS=y +CONFIG_BUILDBOT=y +CONFIG_BUILD_LOG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_BUSYBOX_CONFIG_GETOPT=y +CONFIG_BUSYBOX_CONFIG_MOUNTPOINT=y +CONFIG_BUSYBOX_CONFIG_UNXZ=y +CONFIG_BUSYBOX_CONFIG_XZ=y +CONFIG_CGROUPFS_MOUNT_KERNEL_CGROUPS=y +CONFIG_DOCKER_CGROUP_OPTIONS=y +CONFIG_DOCKER_CHECK_CONFIG=y +CONFIG_DOCKER_NET_ENCRYPT=y +CONFIG_DOCKER_NET_MACVLAN=y +CONFIG_DOCKER_NET_OVERLAY=y +CONFIG_DOCKER_NET_TFTP=y +CONFIG_DOCKER_OPTIONAL_FEATURES=y +CONFIG_DOCKER_STO_BTRFS=y +CONFIG_DOCKER_STO_DEVMAPPER=y +CONFIG_DOCKER_STO_EXT4=y +CONFIG_GNUTLS_ALPN=y +CONFIG_GNUTLS_ANON=y +CONFIG_GNUTLS_DTLS_SRTP=y +CONFIG_GNUTLS_HEARTBEAT=y +CONFIG_GNUTLS_OCSP=y +CONFIG_GNUTLS_PSK=y +CONFIG_HTOP_LMSENSORS=y +CONFIG_JSON_CYCLONEDX_SBOM=n +CONFIG_KERNEL_ARM_PMU=y +CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y +CONFIG_KERNEL_BUILD_DOMAIN="buildhost" +CONFIG_KERNEL_BUILD_USER="builder" +CONFIG_KERNEL_CFQ_GROUP_IOSCHED=y +CONFIG_KERNEL_CGROUP_DEVICE=y +CONFIG_KERNEL_CGROUP_FREEZER=y +CONFIG_KERNEL_CGROUP_HUGETLB=y +CONFIG_KERNEL_CGROUP_NET_PRIO=y +CONFIG_KERNEL_CGROUP_PERF=y +CONFIG_KERNEL_EXT4_FS_POSIX_ACL=y +CONFIG_KERNEL_EXT4_FS_SECURITY=y +CONFIG_KERNEL_FS_POSIX_ACL=y +CONFIG_KERNEL_HUGETLBFS=y +CONFIG_KERNEL_HUGETLB_PAGE=y +CONFIG_KERNEL_MEMCG_SWAP_ENABLED=y +CONFIG_KERNEL_NET_CLS_CGROUP=y +CONFIG_KERNEL_PERF_EVENTS=y +CONFIG_KERNEL_RPI_AXIPERF=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_KERNEL_WERROR is not set +CONFIG_LIBCURL_COOKIES=y +CONFIG_LIBCURL_FILE=y +CONFIG_LIBCURL_FTP=y +CONFIG_LIBCURL_HTTP=y +CONFIG_LIBCURL_MBEDTLS=y +CONFIG_LIBCURL_NGHTTP2=y +CONFIG_LIBCURL_NO_SMB="!" +CONFIG_LIBCURL_PROXY=y +CONFIG_LIBCURL_UNIX_SOCKETS=y +CONFIG_LXC_BUSYBOX_OPTIONS=y +CONFIG_LXC_KERNEL_OPTIONS=y +CONFIG_LXC_NETWORKING=y +CONFIG_LXC_SECCOMP=y +CONFIG_OPENSSL_ENGINE=y +CONFIG_OPENSSL_ENGINE_BUILTIN=y +CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO=y +CONFIG_OPENSSL_OPTIMIZE_SPEED=y +CONFIG_OPENSSL_WITH_ASM=y +CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y +CONFIG_OPENSSL_WITH_CMS=y +CONFIG_OPENSSL_WITH_DEPRECATED=y +CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y +CONFIG_OPENSSL_WITH_IDEA=y +CONFIG_OPENSSL_WITH_MDC2=y +CONFIG_OPENSSL_WITH_PSK=y +CONFIG_OPENSSL_WITH_SEED=y +CONFIG_OPENSSL_WITH_SRP=y +CONFIG_OPENSSL_WITH_TLS13=y +CONFIG_OPENSSL_WITH_WHIRLPOOL=y +CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_openssl_ENABLE_LZ4=y +CONFIG_OPENVPN_openssl_ENABLE_LZO=y +CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y +CONFIG_OPENVPN_openssl_ENABLE_X509_ALT_USERNAME=y +CONFIG_PACKAGE_TAR_BZIP2=y +CONFIG_PACKAGE_TAR_GZIP=y +CONFIG_PACKAGE_TAR_POSIX_ACL=y +CONFIG_PACKAGE_TAR_XATTR=y +CONFIG_PACKAGE_TAR_XZ=y +CONFIG_PACKAGE_TAR_ZSTD=y +CONFIG_PACKAGE_adb=y +CONFIG_PACKAGE_adblock=y +CONFIG_PACKAGE_arp-scan=y +CONFIG_PACKAGE_arp-scan-database=y +CONFIG_PACKAGE_atop=y +CONFIG_PACKAGE_bash=y +CONFIG_PACKAGE_bcm2711-eeprom=y +CONFIG_PACKAGE_bcm27xx-eeprom=y +CONFIG_PACKAGE_luci-app-filebrowser=y +CONFIG_PACKAGE_bcm27xx-utils=y +CONFIG_PACKAGE_blkdiscard=y +CONFIG_PACKAGE_blkid=y +CONFIG_PACKAGE_block-mount=y +CONFIG_PACKAGE_blockd=y +CONFIG_PACKAGE_blockdev=y +CONFIG_PACKAGE_bluez-daemon=y +CONFIG_PACKAGE_bluez-libs=y +CONFIG_PACKAGE_bluez-tools=y +CONFIG_PACKAGE_bluez-utils=y +CONFIG_PACKAGE_bluez-utils-extra=y +CONFIG_PACKAGE_btop=y +CONFIG_PACKAGE_btrfs-progs=y +CONFIG_PACKAGE_bzip2=y +CONFIG_PACKAGE_ca-certificates=y +CONFIG_PACKAGE_ccrypt=y +CONFIG_PACKAGE_certtool=y +CONFIG_PACKAGE_cfdisk=y +CONFIG_PACKAGE_cgdisk=y +CONFIG_PACKAGE_cgi-io=y +CONFIG_PACKAGE_cgroup-tools=y +CONFIG_PACKAGE_cgroupfs-mount=y +CONFIG_PACKAGE_collectd=y +CONFIG_PACKAGE_collectd-mod-conntrack=y +CONFIG_PACKAGE_collectd-mod-cpu=y +CONFIG_PACKAGE_collectd-mod-cpufreq=y +CONFIG_PACKAGE_collectd-mod-interface=y +CONFIG_PACKAGE_collectd-mod-irq=y +CONFIG_PACKAGE_collectd-mod-iwinfo=y +CONFIG_PACKAGE_collectd-mod-load=y +CONFIG_PACKAGE_collectd-mod-memory=y +CONFIG_PACKAGE_collectd-mod-network=y +CONFIG_PACKAGE_collectd-mod-rrdtool=y +CONFIG_PACKAGE_collectd-mod-sensors=y +CONFIG_PACKAGE_collectd-mod-thermal=y +CONFIG_PACKAGE_containerd=y +CONFIG_PACKAGE_coreutils=y +CONFIG_PACKAGE_coreutils-od=y +CONFIG_PACKAGE_coreutils-sort=y +CONFIG_PACKAGE_cryptsetup=y +CONFIG_PACKAGE_cryptsetup-ssh=y +CONFIG_PACKAGE_dbus=y +CONFIG_PACKAGE_debugfs=y +CONFIG_PACKAGE_dnsmasq=m +CONFIG_PACKAGE_dnsmasq-full=y +CONFIG_PACKAGE_dnsmasq_full_auth=y +CONFIG_PACKAGE_dnsmasq_full_conntrack=y +CONFIG_PACKAGE_dnsmasq_full_dhcp=y +CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y +CONFIG_PACKAGE_dnsmasq_full_dnssec=y +CONFIG_PACKAGE_dnsmasq_full_nftset=y +CONFIG_PACKAGE_dnsmasq_full_noid=y +CONFIG_PACKAGE_dnsmasq_full_tftp=y +CONFIG_PACKAGE_docker=y +CONFIG_PACKAGE_docker-compose=y +CONFIG_PACKAGE_dockerd=y +CONFIG_PACKAGE_dosfstools=y +CONFIG_PACKAGE_dumpe2fs=y +CONFIG_PACKAGE_e2freefrag=y +CONFIG_PACKAGE_e4crypt=y +CONFIG_PACKAGE_eject=y +CONFIG_PACKAGE_ethtool-full=y +CONFIG_PACKAGE_exfat-fsck=y +CONFIG_PACKAGE_exfat-mkfs=y +CONFIG_PACKAGE_f2fs-tools=m +CONFIG_PACKAGE_f2fs-tools-selinux=y +CONFIG_PACKAGE_f2fsck=m +CONFIG_PACKAGE_f2fsck-selinux=y +CONFIG_PACKAGE_fdisk=y +CONFIG_PACKAGE_findfs=y +CONFIG_PACKAGE_fixparts=y +CONFIG_PACKAGE_flock=y +CONFIG_PACKAGE_fuse-utils=y +CONFIG_PACKAGE_gdisk=y +CONFIG_PACKAGE_getopt=y +CONFIG_PACKAGE_glib2=y +CONFIG_PACKAGE_gnupg=y +CONFIG_PACKAGE_gnupg-utils=y +CONFIG_PACKAGE_gnupg2=y +CONFIG_PACKAGE_gnupg2-utils=y +CONFIG_PACKAGE_gzip=y +CONFIG_PACKAGE_hdparm=y +CONFIG_PACKAGE_hostapd-common=y +CONFIG_PACKAGE_htop=y +CONFIG_PACKAGE_hwclock=y +CONFIG_PACKAGE_ip-full=y +CONFIG_PACKAGE_ip6tables-nft=y +CONFIG_PACKAGE_iperf3-ssl=y +CONFIG_PACKAGE_ipset=y + +CONFIG_PACKAGE_iptables-mod-ipopt=y +CONFIG_PACKAGE_iptables-nft=y +CONFIG_PACKAGE_irqbalance=y +CONFIG_PACKAGE_iw=y +CONFIG_PACKAGE_iwinfo=y +CONFIG_PACKAGE_kmod-asn1-decoder=y +CONFIG_PACKAGE_kmod-asn1-encoder=y +CONFIG_PACKAGE_kmod-ata-ahci=y +CONFIG_PACKAGE_kmod-ata-core=y +CONFIG_PACKAGE_kmod-atm=y +CONFIG_PACKAGE_kmod-bluetooth=y +CONFIG_PACKAGE_kmod-br-netfilter=y +CONFIG_PACKAGE_kmod-cdrom=y +CONFIG_PACKAGE_kmod-cfg80211=y +CONFIG_PACKAGE_kmod-crypto-aead=y +CONFIG_PACKAGE_kmod-crypto-arc4=y +CONFIG_PACKAGE_kmod-crypto-authenc=y +CONFIG_PACKAGE_kmod-crypto-cbc=y +CONFIG_PACKAGE_kmod-crypto-ccm=y +CONFIG_PACKAGE_kmod-crypto-chacha20poly1305=y +CONFIG_PACKAGE_kmod-crypto-cmac=y +CONFIG_PACKAGE_kmod-crypto-crc32=y +CONFIG_PACKAGE_kmod-crypto-ctr=y +CONFIG_PACKAGE_kmod-crypto-cts=y +CONFIG_PACKAGE_kmod-crypto-deflate=y +CONFIG_PACKAGE_kmod-crypto-des=y +CONFIG_PACKAGE_kmod-crypto-ecb=y +CONFIG_PACKAGE_kmod-crypto-ecdh=y +CONFIG_PACKAGE_kmod-crypto-echainiv=y +CONFIG_PACKAGE_kmod-crypto-essiv=y +CONFIG_PACKAGE_kmod-crypto-fcrypt=y +CONFIG_PACKAGE_kmod-crypto-gcm=y +CONFIG_PACKAGE_kmod-crypto-gf128=y +CONFIG_PACKAGE_kmod-crypto-ghash=y +CONFIG_PACKAGE_kmod-crypto-hmac=y +CONFIG_PACKAGE_kmod-crypto-kpp=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20poly1305=y +CONFIG_PACKAGE_kmod-crypto-lib-curve25519=y +CONFIG_PACKAGE_kmod-crypto-lib-poly1305=y +CONFIG_PACKAGE_kmod-crypto-manager=y +CONFIG_PACKAGE_kmod-crypto-md4=y +CONFIG_PACKAGE_kmod-crypto-md5=y +CONFIG_PACKAGE_kmod-crypto-michael-mic=y +CONFIG_PACKAGE_kmod-crypto-misc=y +CONFIG_PACKAGE_kmod-crypto-null=y +CONFIG_PACKAGE_kmod-crypto-pcbc=y +CONFIG_PACKAGE_kmod-crypto-rmd160=y +CONFIG_PACKAGE_kmod-crypto-rng=y +CONFIG_PACKAGE_kmod-crypto-seqiv=y +CONFIG_PACKAGE_kmod-crypto-sha1=y +CONFIG_PACKAGE_kmod-crypto-sha256=y +CONFIG_PACKAGE_kmod-crypto-sha512=y +CONFIG_PACKAGE_kmod-crypto-test=y +CONFIG_PACKAGE_kmod-crypto-user=y +CONFIG_PACKAGE_kmod-crypto-xcbc=y +CONFIG_PACKAGE_kmod-crypto-xts=y +CONFIG_PACKAGE_kmod-cryptodev=y +CONFIG_PACKAGE_kmod-dax=y +CONFIG_PACKAGE_kmod-dm=y +CONFIG_PACKAGE_kmod-dummy=y +CONFIG_PACKAGE_kmod-fs-autofs4=y +CONFIG_PACKAGE_kmod-fs-btrfs=y +CONFIG_PACKAGE_kmod-fs-configfs=y +CONFIG_PACKAGE_kmod-fs-exfat=y +CONFIG_PACKAGE_kmod-fs-exportfs=y +CONFIG_PACKAGE_kmod-fs-ext4=y +CONFIG_PACKAGE_kmod-fs-f2fs=y +CONFIG_PACKAGE_kmod-fs-hfs=y +CONFIG_PACKAGE_kmod-fs-hfsplus=y +CONFIG_PACKAGE_kmod-fs-ksmbd=y +CONFIG_PACKAGE_kmod-fs-ntfs3=y +CONFIG_PACKAGE_kmod-fs-smbfs-common=y +CONFIG_PACKAGE_kmod-fs-squashfs=y +CONFIG_PACKAGE_kmod-fs-xfs=y +CONFIG_PACKAGE_kmod-fuse=y +CONFIG_PACKAGE_kmod-gre=y +CONFIG_PACKAGE_kmod-hwmon-core=y +CONFIG_PACKAGE_kmod-i2c-bcm2835=y +CONFIG_PACKAGE_kmod-i2c-core=y +CONFIG_PACKAGE_kmod-ifb=y +CONFIG_PACKAGE_kmod-ikconfig=y +CONFIG_PACKAGE_kmod-ip6tables=y +CONFIG_PACKAGE_kmod-ipsec=y +CONFIG_PACKAGE_kmod-ipt-conntrack=y +CONFIG_PACKAGE_kmod-ipt-core=y +CONFIG_PACKAGE_kmod-ipt-extra=y +CONFIG_PACKAGE_kmod-ipt-ipopt=y +CONFIG_PACKAGE_kmod-ipt-ipset=y +CONFIG_PACKAGE_kmod-ipt-nat=y +CONFIG_PACKAGE_kmod-ipt-nat6=y +CONFIG_PACKAGE_kmod-ipt-physdev=y +CONFIG_PACKAGE_kmod-iptunnel=y +CONFIG_PACKAGE_kmod-keys-encrypted=y +CONFIG_PACKAGE_kmod-keys-trusted=y +CONFIG_PACKAGE_kmod-l2tp=y +CONFIG_PACKAGE_kmod-lib-crc16=y +CONFIG_PACKAGE_kmod-lib-raid6=y +CONFIG_PACKAGE_kmod-lib-textsearch=y +CONFIG_PACKAGE_kmod-lib-xor=y +CONFIG_PACKAGE_kmod-lib-zlib-deflate=y +CONFIG_PACKAGE_kmod-lib-zlib-inflate=y +CONFIG_PACKAGE_kmod-lib-zstd=y +CONFIG_PACKAGE_kmod-libphy=y +CONFIG_PACKAGE_kmod-mac80211=y +CONFIG_PACKAGE_kmod-macvlan=y +CONFIG_PACKAGE_kmod-md-mod=y +CONFIG_PACKAGE_kmod-md-raid0=y +CONFIG_PACKAGE_kmod-md-raid1=y +CONFIG_PACKAGE_kmod-md-raid10=y +CONFIG_PACKAGE_kmod-mdio-devres=y +CONFIG_PACKAGE_kmod-mii=y +CONFIG_PACKAGE_kmod-mppe=y +CONFIG_PACKAGE_kmod-mt76-connac=y +CONFIG_PACKAGE_kmod-mt76-core=y +CONFIG_PACKAGE_kmod-mt76-usb=y +CONFIG_PACKAGE_kmod-mt76x02-common=y +CONFIG_PACKAGE_kmod-mt76x02-usb=y +CONFIG_PACKAGE_kmod-mt76x2-common=y +CONFIG_PACKAGE_kmod-mt76x2u=y +CONFIG_PACKAGE_kmod-mt7921-common=y +CONFIG_PACKAGE_kmod-mt7921-firmware=y +CONFIG_PACKAGE_kmod-mt7921u=y +CONFIG_PACKAGE_kmod-mt792x-common=y +CONFIG_PACKAGE_kmod-mt792x-usb=y +CONFIG_PACKAGE_kmod-net-selftests=y +CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y +CONFIG_PACKAGE_kmod-nf-ipt=y +CONFIG_PACKAGE_kmod-nf-ipt6=y +CONFIG_PACKAGE_kmod-nf-ipvs=y +CONFIG_PACKAGE_kmod-nf-nat6=y +CONFIG_PACKAGE_kmod-nf-nathelper=y +CONFIG_PACKAGE_kmod-nf-nathelper-extra=y +CONFIG_PACKAGE_kmod-nft-compat=y +CONFIG_PACKAGE_kmod-nvme=y +CONFIG_PACKAGE_kmod-oid-registry=y +CONFIG_PACKAGE_kmod-phy-ax88796b=y +CONFIG_PACKAGE_kmod-phy-realtek=y +CONFIG_PACKAGE_kmod-phylink=y +CONFIG_PACKAGE_kmod-pppoa=y +CONFIG_PACKAGE_kmod-pppol2tp=y +CONFIG_PACKAGE_kmod-pptp=y +CONFIG_PACKAGE_kmod-r8169=y +CONFIG_PACKAGE_kmod-random-core=y +CONFIG_PACKAGE_kmod-regmap-core=y +CONFIG_PACKAGE_kmod-rtl8812au-ac=y +CONFIG_PACKAGE_kmod-rtw88=y +CONFIG_PACKAGE_kmod-rtw88-8821c=y +CONFIG_PACKAGE_kmod-rtw88-8821cu=y +CONFIG_PACKAGE_kmod-rtw88-8822b=y +CONFIG_PACKAGE_kmod-rtw88-8822bu=y +CONFIG_PACKAGE_kmod-rtw88-8822c=y +CONFIG_PACKAGE_kmod-rtw88-8822cu=y +CONFIG_PACKAGE_kmod-rtw88-usb=y +CONFIG_PACKAGE_kmod-sched-bpf=y +CONFIG_PACKAGE_kmod-sched-cake=y +CONFIG_PACKAGE_kmod-sched-core=y +CONFIG_PACKAGE_kmod-scsi-core=y +CONFIG_PACKAGE_kmod-tpm=y +CONFIG_PACKAGE_kmod-tun=y +CONFIG_PACKAGE_kmod-udptunnel4=y +CONFIG_PACKAGE_kmod-udptunnel6=y +CONFIG_PACKAGE_kmod-usb-net=y +CONFIG_PACKAGE_kmod-usb-net-aqc111=y +CONFIG_PACKAGE_kmod-usb-net-asix=y +CONFIG_PACKAGE_kmod-usb-net-asix-ax88179=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ether=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ncm=y +CONFIG_PACKAGE_kmod-usb-net-ipheth=y +CONFIG_PACKAGE_kmod-usb-net-rndis=y +CONFIG_PACKAGE_kmod-usb-net-rtl8150=y +CONFIG_PACKAGE_kmod-usb-net-rtl8152=y +CONFIG_PACKAGE_kmod-usb-ohci=y +CONFIG_PACKAGE_kmod-usb-storage=y +CONFIG_PACKAGE_kmod-usb-storage-extras=y +CONFIG_PACKAGE_kmod-usb-storage-uas=y +CONFIG_PACKAGE_kmod-usb-wdm=y +CONFIG_PACKAGE_kmod-veth=y +CONFIG_PACKAGE_kmod-vxlan=y +CONFIG_PACKAGE_kmod-wireguard=y +CONFIG_PACKAGE_ksmbd-server=y +CONFIG_PACKAGE_libacl=y +CONFIG_PACKAGE_libaio=y +CONFIG_PACKAGE_libassuan=y +CONFIG_PACKAGE_libatomic=y +CONFIG_PACKAGE_libattr=y +CONFIG_PACKAGE_libbfd=m +CONFIG_PACKAGE_libbpf=y +CONFIG_PACKAGE_libbz2=y +CONFIG_PACKAGE_libcap=y +CONFIG_PACKAGE_libcap-ng=y +CONFIG_PACKAGE_libcgroup=y +CONFIG_PACKAGE_libctf=m +CONFIG_PACKAGE_libcurl=y +CONFIG_PACKAGE_libdbus=y +CONFIG_PACKAGE_libdevmapper=y +CONFIG_PACKAGE_libdw=m +CONFIG_PACKAGE_libelf=y +CONFIG_PACKAGE_libevdev=y +CONFIG_PACKAGE_libexpat=y +CONFIG_PACKAGE_libf2fs=m +CONFIG_PACKAGE_libf2fs-selinux=y +CONFIG_PACKAGE_libfdisk=y +CONFIG_PACKAGE_libffi=y +CONFIG_PACKAGE_libfuse=y +CONFIG_PACKAGE_libgcrypt=y +CONFIG_PACKAGE_libgmp=y +CONFIG_PACKAGE_libgnutls=y +CONFIG_PACKAGE_libgpg-error=y +CONFIG_PACKAGE_libical=y +CONFIG_PACKAGE_libipset=y +CONFIG_PACKAGE_libiptext=y +CONFIG_PACKAGE_libiptext-nft=y +CONFIG_PACKAGE_libiptext6=y +CONFIG_PACKAGE_libiwinfo=y +CONFIG_PACKAGE_libiwinfo-data=y +CONFIG_PACKAGE_libkmod=y +CONFIG_PACKAGE_libksba=y +CONFIG_PACKAGE_libltdl=y +CONFIG_PACKAGE_liblua=y +CONFIG_PACKAGE_liblucihttp=y +CONFIG_PACKAGE_liblucihttp-lua=y +CONFIG_PACKAGE_liblucihttp-ucode=y +CONFIG_PACKAGE_liblxc=y +CONFIG_PACKAGE_liblz4=y +CONFIG_PACKAGE_liblzma=y +CONFIG_PACKAGE_liblzo=y +CONFIG_PACKAGE_libmount=y +CONFIG_PACKAGE_libncurses=y +CONFIG_PACKAGE_libnetfilter-conntrack=y +CONFIG_PACKAGE_libnettle=y +CONFIG_PACKAGE_libnfnetlink=y +CONFIG_PACKAGE_libnghttp2=y +CONFIG_PACKAGE_libnl-core=y +CONFIG_PACKAGE_libnl-genl=y +CONFIG_PACKAGE_libnpth=y +CONFIG_PACKAGE_libopcodes=m +CONFIG_PACKAGE_libopenssl=y +CONFIG_PACKAGE_libopenssl-conf=y +CONFIG_PACKAGE_libparted=y +CONFIG_PACKAGE_libpcap=y +CONFIG_PACKAGE_libpci=y +CONFIG_PACKAGE_libpcre2=y +CONFIG_PACKAGE_libpopt=y +CONFIG_PACKAGE_libpython3=y +CONFIG_PACKAGE_libqrencode=y +CONFIG_PACKAGE_libreadline=y +CONFIG_PACKAGE_librrd1=y +CONFIG_PACKAGE_libseccomp=y +CONFIG_PACKAGE_libselinux=y +CONFIG_PACKAGE_libsensors=y +CONFIG_PACKAGE_libsepol=y +CONFIG_PACKAGE_libssh=y +CONFIG_PACKAGE_libstdcpp=y +CONFIG_PACKAGE_libsysfs=y +CONFIG_PACKAGE_libtirpc=y +CONFIG_PACKAGE_libubus-lua=y +CONFIG_PACKAGE_libudev-zero=y +CONFIG_PACKAGE_libusb-1.0=y +CONFIG_PACKAGE_libuv=y +CONFIG_PACKAGE_libwebsockets-full=y +CONFIG_PACKAGE_libxtables=y +CONFIG_PACKAGE_libzstd=y +CONFIG_PACKAGE_linux-atm=y +CONFIG_PACKAGE_lm-sensors=y +CONFIG_PACKAGE_losetup=y +CONFIG_PACKAGE_lsblk=y +CONFIG_PACKAGE_lscpu=y +CONFIG_PACKAGE_lua=y +CONFIG_PACKAGE_luci=y +CONFIG_PACKAGE_luci-app-adblock=y +CONFIG_PACKAGE_luci-app-commands=y +CONFIG_PACKAGE_luci-app-diskman=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_btrfs_progs=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_lsblk=y +CONFIG_PACKAGE_luci-app-dockerman=y +CONFIG_PACKAGE_luci-app-firewall=y +CONFIG_PACKAGE_luci-app-ksmbd=y +CONFIG_PACKAGE_luci-app-lxc=y +CONFIG_PACKAGE_luci-app-nlbwmon=y +CONFIG_PACKAGE_luci-app-openvpn=y +CONFIG_PACKAGE_luci-app-opkg=y +CONFIG_PACKAGE_luci-app-pbr=y +CONFIG_PACKAGE_luci-app-sqm=y +CONFIG_PACKAGE_luci-app-statistics=y +CONFIG_PACKAGE_luci-app-ttyd=y +CONFIG_PACKAGE_luci-base=y +CONFIG_PACKAGE_luci-compat=y +CONFIG_PACKAGE_luci-lib-base=y +CONFIG_PACKAGE_luci-lib-docker=y +CONFIG_PACKAGE_luci-lib-ip=y +CONFIG_PACKAGE_luci-lib-jsonc=y +CONFIG_PACKAGE_luci-lib-nixio=y +CONFIG_PACKAGE_luci-light=y +CONFIG_PACKAGE_luci-lua-runtime=y +CONFIG_PACKAGE_luci-mod-admin-full=y +CONFIG_PACKAGE_luci-mod-network=y +CONFIG_PACKAGE_luci-mod-status=y +CONFIG_PACKAGE_luci-mod-system=y +CONFIG_PACKAGE_luci-proto-ipv6=y +CONFIG_PACKAGE_luci-proto-ppp=y +CONFIG_PACKAGE_luci-proto-vxlan=y +CONFIG_PACKAGE_luci-proto-wireguard=y +CONFIG_PACKAGE_luci-theme-bootstrap=y +CONFIG_PACKAGE_lvm2=y +CONFIG_PACKAGE_lxc=y +CONFIG_PACKAGE_lxc-attach=y +CONFIG_PACKAGE_lxc-auto=y +CONFIG_PACKAGE_lxc-autostart=y +CONFIG_PACKAGE_lxc-cgroup=y +CONFIG_PACKAGE_lxc-checkconfig=y +CONFIG_PACKAGE_lxc-common=y +CONFIG_PACKAGE_lxc-config=y +CONFIG_PACKAGE_lxc-configs=y +CONFIG_PACKAGE_lxc-console=y +CONFIG_PACKAGE_lxc-copy=y +CONFIG_PACKAGE_lxc-create=y +CONFIG_PACKAGE_lxc-destroy=y +CONFIG_PACKAGE_lxc-device=y +CONFIG_PACKAGE_lxc-execute=y +CONFIG_PACKAGE_lxc-freeze=y +CONFIG_PACKAGE_lxc-hooks=y +CONFIG_PACKAGE_lxc-info=y +CONFIG_PACKAGE_lxc-init=y +CONFIG_PACKAGE_lxc-ls=y +CONFIG_PACKAGE_lxc-monitor=y +CONFIG_PACKAGE_lxc-monitord=y +CONFIG_PACKAGE_lxc-snapshot=y +CONFIG_PACKAGE_lxc-start=y +CONFIG_PACKAGE_lxc-stop=y +CONFIG_PACKAGE_lxc-templates=y +CONFIG_PACKAGE_lxc-top=y +CONFIG_PACKAGE_lxc-unfreeze=y +CONFIG_PACKAGE_lxc-unprivileged=y +CONFIG_PACKAGE_lxc-unshare=y +CONFIG_PACKAGE_lxc-user-nic=y +CONFIG_PACKAGE_lxc-usernsexec=y +CONFIG_PACKAGE_lxc-wait=y +CONFIG_PACKAGE_lz4=y +CONFIG_PACKAGE_lzmadec=y +CONFIG_PACKAGE_lzmainfo=y +CONFIG_PACKAGE_mdadm=y +CONFIG_PACKAGE_mkf2fs=m +CONFIG_PACKAGE_mkf2fs-selinux=y +CONFIG_PACKAGE_mmc-utils=y +CONFIG_PACKAGE_mount-utils=y +CONFIG_PACKAGE_mtools=y +CONFIG_PACKAGE_musl-fts=y +CONFIG_PACKAGE_nano=y +CONFIG_PACKAGE_nfs-utils=y +CONFIG_PACKAGE_nlbwmon=y +CONFIG_PACKAGE_objdump=m +CONFIG_PACKAGE_openssl-util=y +CONFIG_PACKAGE_openvpn-easy-rsa=y +CONFIG_PACKAGE_openvpn-openssl=y +CONFIG_PACKAGE_parted=y +CONFIG_PACKAGE_pbr=y +CONFIG_PACKAGE_pciids=y +CONFIG_PACKAGE_pciutils=y +CONFIG_PACKAGE_perf=m +CONFIG_PACKAGE_ppp-mod-passwordfd=y +CONFIG_PACKAGE_ppp-mod-pppoa=y +CONFIG_PACKAGE_ppp-mod-pppol2tp=y +CONFIG_PACKAGE_ppp-mod-pptp=y +CONFIG_PACKAGE_ppp-mod-radius=y +CONFIG_PACKAGE_pppdump=y +CONFIG_PACKAGE_pppoe-discovery=y +CONFIG_PACKAGE_pptpd=y +CONFIG_PACKAGE_python3-base=y +CONFIG_PACKAGE_python3-light=y +CONFIG_PACKAGE_qosify=y +CONFIG_PACKAGE_qrencode=y +CONFIG_PACKAGE_r8152-firmware=y +CONFIG_PACKAGE_r8169-firmware=y +CONFIG_PACKAGE_resize2fs=y +CONFIG_PACKAGE_resolveip=y +CONFIG_PACKAGE_rpcd=y +CONFIG_PACKAGE_rpcd-mod-file=y +CONFIG_PACKAGE_rpcd-mod-iwinfo=y +CONFIG_PACKAGE_rpcd-mod-luci=y +CONFIG_PACKAGE_rpcd-mod-lxc=y +CONFIG_PACKAGE_rpcd-mod-rrdns=y +CONFIG_PACKAGE_rpcd-mod-ucode=y +CONFIG_PACKAGE_rrdtool1=y +CONFIG_PACKAGE_rtl8821ce-firmware=y +CONFIG_PACKAGE_rtl8822be-firmware=y +CONFIG_PACKAGE_rtl8822ce-firmware=y +CONFIG_PACKAGE_runc=y +CONFIG_PACKAGE_sfdisk=y +CONFIG_PACKAGE_sgdisk=y +CONFIG_PACKAGE_shadow=y +CONFIG_PACKAGE_shadow-chage=y +CONFIG_PACKAGE_shadow-chfn=y +CONFIG_PACKAGE_shadow-chgpasswd=y +CONFIG_PACKAGE_shadow-chpasswd=y +CONFIG_PACKAGE_shadow-chsh=y +CONFIG_PACKAGE_shadow-common=y +CONFIG_PACKAGE_shadow-expiry=y +CONFIG_PACKAGE_shadow-faillog=y +CONFIG_PACKAGE_shadow-gpasswd=y +CONFIG_PACKAGE_shadow-groupadd=y +CONFIG_PACKAGE_shadow-groupdel=y +CONFIG_PACKAGE_shadow-groupmems=y +CONFIG_PACKAGE_shadow-groupmod=y +CONFIG_PACKAGE_shadow-groups=y +CONFIG_PACKAGE_shadow-grpck=y +CONFIG_PACKAGE_shadow-grpconv=y +CONFIG_PACKAGE_shadow-grpunconv=y +CONFIG_PACKAGE_shadow-lastlog=y +CONFIG_PACKAGE_shadow-login=y +CONFIG_PACKAGE_shadow-logoutd=y +CONFIG_PACKAGE_shadow-newgidmap=y +CONFIG_PACKAGE_shadow-newgrp=y +CONFIG_PACKAGE_shadow-newuidmap=y +CONFIG_PACKAGE_shadow-newusers=y +CONFIG_PACKAGE_shadow-nologin=y +CONFIG_PACKAGE_shadow-passwd=y +CONFIG_PACKAGE_shadow-pwck=y +CONFIG_PACKAGE_shadow-pwconv=y +CONFIG_PACKAGE_shadow-pwunconv=y +CONFIG_PACKAGE_shadow-su=y +CONFIG_PACKAGE_shadow-useradd=y +CONFIG_PACKAGE_shadow-userdel=y +CONFIG_PACKAGE_shadow-usermod=y +CONFIG_PACKAGE_shadow-utils=y +CONFIG_PACKAGE_shadow-vipw=y +CONFIG_PACKAGE_smartmontools=y +CONFIG_PACKAGE_smartmontools-drivedb=y +CONFIG_PACKAGE_sqm-scripts=y +CONFIG_PACKAGE_sqm-scripts-extra=y +CONFIG_PACKAGE_squashfs-tools-mksquashfs=y +CONFIG_PACKAGE_squashfs-tools-unsquashfs=y +CONFIG_PACKAGE_sysfsutils=y +CONFIG_PACKAGE_tar=y +CONFIG_PACKAGE_tc-full=y +CONFIG_PACKAGE_tc-mod-iptables=y +CONFIG_PACKAGE_tc-tiny=y +CONFIG_PACKAGE_tcpdump-mini=y +CONFIG_PACKAGE_terminfo=y +CONFIG_PACKAGE_tini=y +CONFIG_PACKAGE_ttyd=y +CONFIG_PACKAGE_ucert-full=y +CONFIG_PACKAGE_ucode-mod-html=y +CONFIG_PACKAGE_ucode-mod-lua=y +CONFIG_PACKAGE_ucode-mod-math=y +CONFIG_PACKAGE_uencrypt-openssl=y +CONFIG_PACKAGE_uhttpd=y +CONFIG_PACKAGE_uhttpd-mod-ubus=y +CONFIG_PACKAGE_usb-modeswitch=y +CONFIG_PACKAGE_usbutils=y +CONFIG_PACKAGE_uuidd=y +CONFIG_PACKAGE_uuidgen=y +CONFIG_PACKAGE_vsftpd-tls=y +CONFIG_PACKAGE_vxlan=y +CONFIG_PACKAGE_wget-ssl=y +CONFIG_PACKAGE_wireguard-tools=y +CONFIG_PACKAGE_wireless-regdb=y +CONFIG_PACKAGE_wireless-tools=y +CONFIG_PACKAGE_wsdd2=y +CONFIG_PACKAGE_xdp-filter=m +CONFIG_PACKAGE_xdp-loader=m +CONFIG_PACKAGE_xdpdump=m +CONFIG_PACKAGE_xl2tpd=y +CONFIG_PACKAGE_xtables-nft=y +CONFIG_PACKAGE_xz=y +CONFIG_PACKAGE_xz-utils=y +CONFIG_PACKAGE_xzdec=y +CONFIG_PACKAGE_xzdiff=y +CONFIG_PACKAGE_xzgrep=y +CONFIG_PACKAGE_xzless=y +CONFIG_PACKAGE_xzmore=y +CONFIG_PACKAGE_zlib=y +CONFIG_PARTED_READLINE=y +CONFIG_REPRODUCIBLE_DEBUG_INFO=y +CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT=y +CONFIG_SQUASHFS_TOOLS_ZSTD_SUPPORT=y +CONFIG_TARGET_ALL_PROFILES=y +CONFIG_TARGET_OPTIONS=y +CONFIG_ZSTD_OPTIMIZE_O3=y +CONFIG_shadow-all=y +# CONFIG_BPF_TOOLCHAIN_BUILD_LLVM is not set +CONFIG_BPF_TOOLCHAIN_PREBUILT=y +# CONFIG_COLLECT_KERNEL_DEBUG is not set +# CONFIG_IB is not set +# CONFIG_MAKE_TOOLCHAIN is not set +# CONFIG_OPENVPN_openssl_ENABLE_SMALL is not set +# CONFIG_SDK is not set +CONFIG_USE_LLVM_PREBUILT=y From c69028d3c435709543e75b837dc73ca2d4f3c3ff Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sat, 13 Apr 2024 23:19:47 -0400 Subject: [PATCH 02/41] CI: build x86_64 images Signed-off-by: Marty Jones --- .github/workflows/x86_64-config | 681 ++++++++++++++++++++++++++++++++ .github/workflows/x86_64.yaml | 95 +++++ 2 files changed, 776 insertions(+) create mode 100644 .github/workflows/x86_64-config create mode 100644 .github/workflows/x86_64.yaml diff --git a/.github/workflows/x86_64-config b/.github/workflows/x86_64-config new file mode 100644 index 00000000000000..e2d1563c7d3be6 --- /dev/null +++ b/.github/workflows/x86_64-config @@ -0,0 +1,681 @@ +CONFIG_TARGET_x86=y +CONFIG_TARGET_x86_64=y +CONFIG_TARGET_MULTI_PROFILE=y +CONFIG_TARGET_DEVICE_x86_64_DEVICE_generic=y +CONFIG_TARGET_DEVICE_PACKAGES_x86_64_DEVICE_generic="" +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y +CONFIG_DEVEL=y +CONFIG_BUSYBOX_CUSTOM=y +CONFIG_TARGET_PER_DEVICE_ROOTFS=y +CONFIG_AUTOREMOVE=y +CONFIG_BUILDBOT=y +CONFIG_BUILD_LOG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_BUSYBOX_CONFIG_GETOPT=y +CONFIG_BUSYBOX_CONFIG_MOUNTPOINT=y +CONFIG_BUSYBOX_CONFIG_UNXZ=y +CONFIG_BUSYBOX_CONFIG_XZ=y +CONFIG_CGROUPFS_MOUNT_KERNEL_CGROUPS=y +CONFIG_DOCKER_CGROUP_OPTIONS=y +CONFIG_DOCKER_CHECK_CONFIG=y +CONFIG_DOCKER_NET_ENCRYPT=y +CONFIG_DOCKER_NET_MACVLAN=y +CONFIG_DOCKER_NET_OVERLAY=y +CONFIG_DOCKER_NET_TFTP=y +CONFIG_DOCKER_OPTIONAL_FEATURES=y +CONFIG_DOCKER_STO_BTRFS=y +CONFIG_DOCKER_STO_DEVMAPPER=y +CONFIG_DOCKER_STO_EXT4=y +CONFIG_GNUTLS_ALPN=y +CONFIG_GNUTLS_ANON=y +CONFIG_GNUTLS_DTLS_SRTP=y +CONFIG_GNUTLS_HEARTBEAT=y +CONFIG_GNUTLS_OCSP=y +CONFIG_GNUTLS_PSK=y +# CONFIG_GRUB_IMAGES is not set +CONFIG_HTOP_LMSENSORS=y +# CONFIG_JSON_OVERVIEW_IMAGE_INFO is not set +CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y +CONFIG_KERNEL_BUILD_DOMAIN="buildhost" +CONFIG_KERNEL_BUILD_USER="builder" +CONFIG_KERNEL_CFQ_GROUP_IOSCHED=y +CONFIG_KERNEL_CGROUP_DEVICE=y +CONFIG_KERNEL_CGROUP_FREEZER=y +CONFIG_KERNEL_CGROUP_HUGETLB=y +CONFIG_KERNEL_CGROUP_NET_PRIO=y +CONFIG_KERNEL_CGROUP_PERF=y +CONFIG_KERNEL_EXT4_FS_POSIX_ACL=y +CONFIG_KERNEL_EXT4_FS_SECURITY=y +CONFIG_KERNEL_FS_POSIX_ACL=y +CONFIG_KERNEL_HUGETLBFS=y +CONFIG_KERNEL_HUGETLB_PAGE=y +CONFIG_KERNEL_MEMCG_SWAP_ENABLED=y +CONFIG_KERNEL_NET_CLS_CGROUP=y +CONFIG_KERNEL_PERF_EVENTS=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS=y +CONFIG_LIBCURL_COOKIES=y +CONFIG_LIBCURL_FILE=y +CONFIG_LIBCURL_FTP=y +CONFIG_LIBCURL_HTTP=y +CONFIG_LIBCURL_MBEDTLS=y +CONFIG_LIBCURL_NGHTTP2=y +CONFIG_LIBCURL_NO_SMB="!" +CONFIG_LIBCURL_PROXY=y +CONFIG_LIBCURL_UNIX_SOCKETS=y +CONFIG_LIBQMI_COLLECTION_BASIC=y +CONFIG_LIBQMI_WITH_MBIM_QMUX=y +CONFIG_LIBQMI_WITH_QRTR_GLIB=y +CONFIG_LXC_BUSYBOX_OPTIONS=y +CONFIG_LXC_KERNEL_OPTIONS=y +CONFIG_LXC_NETWORKING=y +CONFIG_LXC_SECCOMP=y +CONFIG_MODEMMANAGER_WITH_MBIM=y +CONFIG_MODEMMANAGER_WITH_QMI=y +CONFIG_MODEMMANAGER_WITH_QRTR=y +CONFIG_OPENSSL_ENGINE=y +CONFIG_OPENSSL_ENGINE_BUILTIN=y +CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO=y +CONFIG_OPENSSL_OPTIMIZE_SPEED=y +CONFIG_OPENSSL_WITH_ASM=y +CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y +CONFIG_OPENSSL_WITH_CMS=y +CONFIG_OPENSSL_WITH_DEPRECATED=y +CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y +CONFIG_OPENSSL_WITH_IDEA=y +CONFIG_OPENSSL_WITH_MDC2=y +CONFIG_OPENSSL_WITH_PSK=y +CONFIG_OPENSSL_WITH_SEED=y +CONFIG_OPENSSL_WITH_SRP=y +CONFIG_OPENSSL_WITH_TLS13=y +CONFIG_OPENSSL_WITH_WHIRLPOOL=y +CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_openssl_ENABLE_LZ4=y +CONFIG_OPENVPN_openssl_ENABLE_LZO=y +CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y +CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y +CONFIG_PACKAGE_adb=y +CONFIG_PACKAGE_adblock=y +CONFIG_PACKAGE_arp-scan=y +CONFIG_PACKAGE_arp-scan-database=y +CONFIG_PACKAGE_atop=y +CONFIG_PACKAGE_attr=y +CONFIG_PACKAGE_autopart=y +CONFIG_PACKAGE_avahi-dbus-daemon=y +CONFIG_PACKAGE_bash=y +CONFIG_PACKAGE_blkdiscard=y +CONFIG_PACKAGE_blkid=y +CONFIG_PACKAGE_block-mount=y +CONFIG_PACKAGE_blockd=y +CONFIG_PACKAGE_blockdev=y +CONFIG_PACKAGE_bluez-daemon=y +CONFIG_PACKAGE_bluez-libs=y +CONFIG_PACKAGE_bluez-tools=y +CONFIG_PACKAGE_bluez-utils=y +CONFIG_PACKAGE_bluez-utils-extra=y +CONFIG_PACKAGE_btop=y +CONFIG_PACKAGE_btrfs-progs=y +CONFIG_PACKAGE_ca-certificates=y +CONFIG_PACKAGE_ccrypt=y +CONFIG_PACKAGE_certtool=y +CONFIG_PACKAGE_cfdisk=y +CONFIG_PACKAGE_cgdisk=y +CONFIG_PACKAGE_cgi-io=y +CONFIG_PACKAGE_cgroup-tools=y +CONFIG_PACKAGE_cgroupfs-mount=y +CONFIG_PACKAGE_collectd=y +CONFIG_PACKAGE_collectd-mod-conntrack=y +CONFIG_PACKAGE_collectd-mod-cpu=y +CONFIG_PACKAGE_collectd-mod-cpufreq=y +CONFIG_PACKAGE_collectd-mod-interface=y +CONFIG_PACKAGE_collectd-mod-irq=y +CONFIG_PACKAGE_collectd-mod-iwinfo=y +CONFIG_PACKAGE_collectd-mod-load=y +CONFIG_PACKAGE_collectd-mod-memory=y +CONFIG_PACKAGE_collectd-mod-network=y +CONFIG_PACKAGE_collectd-mod-rrdtool=y +CONFIG_PACKAGE_collectd-mod-sensors=y +CONFIG_PACKAGE_collectd-mod-thermal=y +CONFIG_PACKAGE_containerd=y +CONFIG_PACKAGE_coreutils=y +CONFIG_PACKAGE_coreutils-sort=y +CONFIG_PACKAGE_cryptsetup=y +CONFIG_PACKAGE_dbus=y +CONFIG_PACKAGE_dnsmasq=m +CONFIG_PACKAGE_dnsmasq-full=y +CONFIG_PACKAGE_dnsmasq_full_auth=y +CONFIG_PACKAGE_dnsmasq_full_conntrack=y +CONFIG_PACKAGE_dnsmasq_full_dhcp=y +CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y +CONFIG_PACKAGE_dnsmasq_full_dnssec=y +CONFIG_PACKAGE_dnsmasq_full_nftset=y +CONFIG_PACKAGE_dnsmasq_full_noid=y +CONFIG_PACKAGE_dnsmasq_full_tftp=y +CONFIG_PACKAGE_docker=y +CONFIG_PACKAGE_docker-compose=y +CONFIG_PACKAGE_dockerd=y +CONFIG_PACKAGE_dosfstools=y +CONFIG_PACKAGE_dumpe2fs=y +CONFIG_PACKAGE_e4crypt=y +CONFIG_PACKAGE_eject=y +CONFIG_PACKAGE_exfat-fsck=y +CONFIG_PACKAGE_exfat-mkfs=y +CONFIG_PACKAGE_f2fs-tools=y +CONFIG_PACKAGE_f2fsck=y +CONFIG_PACKAGE_fatresize=y +CONFIG_PACKAGE_fdisk=y +CONFIG_PACKAGE_findfs=y +CONFIG_PACKAGE_fixparts=y +CONFIG_PACKAGE_flock=y +CONFIG_PACKAGE_fuse3-utils=y +CONFIG_PACKAGE_gdisk=y +CONFIG_PACKAGE_getopt=y +CONFIG_PACKAGE_glib2=y +CONFIG_PACKAGE_gnu-efi=y +CONFIG_PACKAGE_gnu-efi-programs=y +CONFIG_PACKAGE_gnupg=y +CONFIG_PACKAGE_gnupg-utils=y +CONFIG_PACKAGE_gnupg2=y +CONFIG_PACKAGE_gnupg2-utils=y +CONFIG_PACKAGE_gnutls-utils=y +CONFIG_PACKAGE_hdparm=y +CONFIG_PACKAGE_hostapd-common=y +CONFIG_PACKAGE_htop=y +CONFIG_PACKAGE_hwclock=y +CONFIG_PACKAGE_ip-full=y +CONFIG_PACKAGE_ip6tables-nft=y +CONFIG_PACKAGE_iperf3-ssl=y + +CONFIG_PACKAGE_iptables-mod-ipopt=y +CONFIG_PACKAGE_iptables-nft=y +CONFIG_PACKAGE_irqbalance=y +# CONFIG_PACKAGE_iw is not set +CONFIG_PACKAGE_iw-full=y +CONFIG_PACKAGE_iwinfo=y +CONFIG_PACKAGE_iwlwifi-firmware-ax200=y +CONFIG_PACKAGE_iwlwifi-firmware-ax210=y +CONFIG_PACKAGE_iwlwifi-firmware-iwl9000=y +CONFIG_PACKAGE_iwlwifi-firmware-iwl9260=y +CONFIG_PACKAGE_kmod-asn1-decoder=y +CONFIG_PACKAGE_kmod-asn1-encoder=y +CONFIG_PACKAGE_kmod-ata-ahci=y +CONFIG_PACKAGE_kmod-ata-artop=y +CONFIG_PACKAGE_kmod-ata-core=y +CONFIG_PACKAGE_kmod-ata-dwc=y +CONFIG_PACKAGE_kmod-bluetooth=y +CONFIG_PACKAGE_kmod-br-netfilter=y +CONFIG_PACKAGE_kmod-cfg80211=y +CONFIG_PACKAGE_kmod-crypto-aead=y +CONFIG_PACKAGE_kmod-crypto-arc4=y +CONFIG_PACKAGE_kmod-crypto-authenc=y +CONFIG_PACKAGE_kmod-crypto-cbc=y +CONFIG_PACKAGE_kmod-crypto-ccm=y +CONFIG_PACKAGE_kmod-crypto-cmac=y +CONFIG_PACKAGE_kmod-crypto-crc32=y +CONFIG_PACKAGE_kmod-crypto-ctr=y +CONFIG_PACKAGE_kmod-crypto-deflate=y +CONFIG_PACKAGE_kmod-crypto-des=y +CONFIG_PACKAGE_kmod-crypto-ecb=y +CONFIG_PACKAGE_kmod-crypto-ecdh=y +CONFIG_PACKAGE_kmod-crypto-echainiv=y +CONFIG_PACKAGE_kmod-crypto-gcm=y +CONFIG_PACKAGE_kmod-crypto-geniv=y +CONFIG_PACKAGE_kmod-crypto-gf128=y +CONFIG_PACKAGE_kmod-crypto-ghash=y +CONFIG_PACKAGE_kmod-crypto-hmac=y +CONFIG_PACKAGE_kmod-crypto-kpp=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20poly1305=y +CONFIG_PACKAGE_kmod-crypto-lib-curve25519=y +CONFIG_PACKAGE_kmod-crypto-lib-poly1305=y +CONFIG_PACKAGE_kmod-crypto-manager=y +CONFIG_PACKAGE_kmod-crypto-md5=y +CONFIG_PACKAGE_kmod-crypto-null=y +CONFIG_PACKAGE_kmod-crypto-rng=y +CONFIG_PACKAGE_kmod-crypto-seqiv=y +CONFIG_PACKAGE_kmod-crypto-sha1=y +CONFIG_PACKAGE_kmod-crypto-sha256=y +CONFIG_PACKAGE_kmod-crypto-sha3=y +CONFIG_PACKAGE_kmod-crypto-sha512=y +CONFIG_PACKAGE_kmod-crypto-user=y +CONFIG_PACKAGE_kmod-cryptodev=y +CONFIG_PACKAGE_kmod-dax=y +CONFIG_PACKAGE_kmod-dm=y +# CONFIG_PACKAGE_kmod-drm-amdgpu is not set +# CONFIG_PACKAGE_kmod-drm-display-helper is not set +# CONFIG_PACKAGE_kmod-drm-radeon is not set +# CONFIG_PACKAGE_kmod-drm-ttm is not set +CONFIG_PACKAGE_kmod-dummy=y +CONFIG_PACKAGE_kmod-fs-autofs4=y +CONFIG_PACKAGE_kmod-fs-btrfs=y +CONFIG_PACKAGE_kmod-fs-exfat=y +CONFIG_PACKAGE_kmod-fs-ext4=y +CONFIG_PACKAGE_kmod-fs-f2fs=y +CONFIG_PACKAGE_kmod-fs-ksmbd=y +CONFIG_PACKAGE_kmod-fs-msdos=y +CONFIG_PACKAGE_kmod-fs-netfs=y +CONFIG_PACKAGE_kmod-fs-ntfs3=y +CONFIG_PACKAGE_kmod-fs-smbfs-common=y +CONFIG_PACKAGE_kmod-fs-squashfs=y +CONFIG_PACKAGE_kmod-fuse=y +CONFIG_PACKAGE_kmod-gre=y +CONFIG_PACKAGE_kmod-hid=y +CONFIG_PACKAGE_kmod-hwmon-core=y +CONFIG_PACKAGE_kmod-ifb=y +CONFIG_PACKAGE_kmod-ikconfig=y +CONFIG_PACKAGE_kmod-input-evdev=y +CONFIG_PACKAGE_kmod-ip6tables=y +CONFIG_PACKAGE_kmod-ipsec=y +CONFIG_PACKAGE_kmod-ipt-conntrack=y +CONFIG_PACKAGE_kmod-ipt-core=y +CONFIG_PACKAGE_kmod-ipt-extra=y +CONFIG_PACKAGE_kmod-ipt-ipopt=y +CONFIG_PACKAGE_kmod-ipt-nat=y +CONFIG_PACKAGE_kmod-ipt-nat6=y +CONFIG_PACKAGE_kmod-ipt-physdev=y +CONFIG_PACKAGE_kmod-iptunnel=y +CONFIG_PACKAGE_kmod-iwlwifi=y +CONFIG_PACKAGE_kmod-keys-encrypted=y +CONFIG_PACKAGE_kmod-keys-trusted=y +CONFIG_PACKAGE_kmod-l2tp=y +CONFIG_PACKAGE_kmod-lib-crc16=y +CONFIG_PACKAGE_kmod-lib-raid6=y +CONFIG_PACKAGE_kmod-lib-textsearch=y +CONFIG_PACKAGE_kmod-lib-xor=y +CONFIG_PACKAGE_kmod-lib-zlib-deflate=y +CONFIG_PACKAGE_kmod-lib-zlib-inflate=y +CONFIG_PACKAGE_kmod-lib-zstd=y +CONFIG_PACKAGE_kmod-mac80211=y +CONFIG_PACKAGE_kmod-macvlan=y +CONFIG_PACKAGE_kmod-md-mod=y +CONFIG_PACKAGE_kmod-md-raid0=y +CONFIG_PACKAGE_kmod-md-raid1=y +CONFIG_PACKAGE_kmod-md-raid10=y +CONFIG_PACKAGE_kmod-mii=y +CONFIG_PACKAGE_kmod-mppe=y +CONFIG_PACKAGE_kmod-mt76-connac=y +CONFIG_PACKAGE_kmod-mt76-core=y +CONFIG_PACKAGE_kmod-mt76-usb=y +CONFIG_PACKAGE_kmod-mt76x02-common=y +CONFIG_PACKAGE_kmod-mt76x02-usb=y +CONFIG_PACKAGE_kmod-mt76x2-common=y +CONFIG_PACKAGE_kmod-mt76x2u=y +CONFIG_PACKAGE_kmod-mt7915-firmware=y +CONFIG_PACKAGE_kmod-mt7915e=y +CONFIG_PACKAGE_kmod-mt7916-firmware=y +CONFIG_PACKAGE_kmod-mt7921-common=y +CONFIG_PACKAGE_kmod-mt7921-firmware=y +CONFIG_PACKAGE_kmod-mt7921e=y +CONFIG_PACKAGE_kmod-mt7921u=y +CONFIG_PACKAGE_kmod-mt7922-firmware=y +CONFIG_PACKAGE_kmod-mt792x-common=y +CONFIG_PACKAGE_kmod-mt792x-usb=y +CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y +CONFIG_PACKAGE_kmod-nf-ipt=y +CONFIG_PACKAGE_kmod-nf-ipt6=y +CONFIG_PACKAGE_kmod-nf-ipvs=y +CONFIG_PACKAGE_kmod-nf-nat6=y +CONFIG_PACKAGE_kmod-nf-nathelper=y +CONFIG_PACKAGE_kmod-nf-nathelper-extra=y +CONFIG_PACKAGE_kmod-nft-compat=y +CONFIG_PACKAGE_kmod-nls-cp932=y +CONFIG_PACKAGE_kmod-nls-cp936=y +CONFIG_PACKAGE_kmod-nls-cp950=y +CONFIG_PACKAGE_kmod-nls-ucs2-utils=y +CONFIG_PACKAGE_kmod-nvme=y +CONFIG_PACKAGE_kmod-oid-registry=y +CONFIG_PACKAGE_kmod-pppol2tp=y +CONFIG_PACKAGE_kmod-pps=y +CONFIG_PACKAGE_kmod-pptp=y +CONFIG_PACKAGE_kmod-ptp=y +CONFIG_PACKAGE_kmod-random-core=y +CONFIG_PACKAGE_kmod-regmap-core=y +CONFIG_PACKAGE_kmod-rtl8812au-ac=y +CONFIG_PACKAGE_kmod-rtw88=y +CONFIG_PACKAGE_kmod-rtw88-8723d=y +CONFIG_PACKAGE_kmod-rtw88-8723de=y +CONFIG_PACKAGE_kmod-rtw88-8821c=y +CONFIG_PACKAGE_kmod-rtw88-8821ce=y +CONFIG_PACKAGE_kmod-rtw88-8821cu=y +CONFIG_PACKAGE_kmod-rtw88-8822b=y +CONFIG_PACKAGE_kmod-rtw88-8822be=y +CONFIG_PACKAGE_kmod-rtw88-8822bu=y +CONFIG_PACKAGE_kmod-rtw88-8822c=y +CONFIG_PACKAGE_kmod-rtw88-8822ce=y +CONFIG_PACKAGE_kmod-rtw88-pci=y +CONFIG_PACKAGE_kmod-rtw88-usb=y +CONFIG_PACKAGE_kmod-rtw89=y +CONFIG_PACKAGE_kmod-sched-cake=y +CONFIG_PACKAGE_kmod-sched-core=y +CONFIG_PACKAGE_kmod-scsi-core=y +CONFIG_PACKAGE_kmod-thermal=y +CONFIG_PACKAGE_kmod-tpm=y +CONFIG_PACKAGE_kmod-tun=y +CONFIG_PACKAGE_kmod-udptunnel4=y +CONFIG_PACKAGE_kmod-udptunnel6=y +CONFIG_PACKAGE_kmod-usb-core=y +CONFIG_PACKAGE_kmod-usb-net=y +CONFIG_PACKAGE_kmod-usb-net-aqc111=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ether=y +CONFIG_PACKAGE_kmod-usb-net-cdc-mbim=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ncm=y +CONFIG_PACKAGE_kmod-usb-net-ipheth=y +CONFIG_PACKAGE_kmod-usb-net-qmi-wwan=y +CONFIG_PACKAGE_kmod-usb-net-rtl8152=y +CONFIG_PACKAGE_kmod-usb-storage=y +CONFIG_PACKAGE_kmod-usb-storage-extras=y +CONFIG_PACKAGE_kmod-usb-storage-uas=y +CONFIG_PACKAGE_kmod-usb-uhci=y +CONFIG_PACKAGE_kmod-usb-wdm=y +CONFIG_PACKAGE_kmod-usb-xhci-hcd=y +CONFIG_PACKAGE_kmod-usb3=y +CONFIG_PACKAGE_kmod-veth=y +CONFIG_PACKAGE_kmod-vxlan=y +CONFIG_PACKAGE_kmod-wireguard=y +CONFIG_PACKAGE_ksmbd-server=y +CONFIG_PACKAGE_libaio=y +CONFIG_PACKAGE_libassuan=y +CONFIG_PACKAGE_libatomic=y +CONFIG_PACKAGE_libattr=y +CONFIG_PACKAGE_libavahi-client=y +CONFIG_PACKAGE_libavahi-dbus-support=y +CONFIG_PACKAGE_libbfd=m +CONFIG_PACKAGE_libbpf=y +CONFIG_PACKAGE_libbz2=m +CONFIG_PACKAGE_libcap=y +CONFIG_PACKAGE_libcap-ng=y +CONFIG_PACKAGE_libcgroup=y +CONFIG_PACKAGE_libctf=m +CONFIG_PACKAGE_libcurl=y +CONFIG_PACKAGE_libdaemon=y +CONFIG_PACKAGE_libdbus=y +CONFIG_PACKAGE_libdevmapper=y +CONFIG_PACKAGE_libdw=m +CONFIG_PACKAGE_libelf=y +CONFIG_PACKAGE_libevdev=y +CONFIG_PACKAGE_libexpat=y +CONFIG_PACKAGE_libfdisk=y +CONFIG_PACKAGE_libffi=y +CONFIG_PACKAGE_libfuse3=y +CONFIG_PACKAGE_libgcrypt=y +CONFIG_PACKAGE_libgmp=y +CONFIG_PACKAGE_libgnutls=y +CONFIG_PACKAGE_libgpg-error=y +CONFIG_PACKAGE_libical=y +CONFIG_PACKAGE_libiptext=y +CONFIG_PACKAGE_libiptext-nft=y +CONFIG_PACKAGE_libiptext6=y +CONFIG_PACKAGE_libiwinfo=y +CONFIG_PACKAGE_libiwinfo-data=y +CONFIG_PACKAGE_libkmod=y +CONFIG_PACKAGE_libksba=y +CONFIG_PACKAGE_libltdl=y +CONFIG_PACKAGE_liblua=y +CONFIG_PACKAGE_liblucihttp=y +CONFIG_PACKAGE_liblucihttp-lua=y +CONFIG_PACKAGE_liblucihttp-ucode=y +CONFIG_PACKAGE_liblxc=y +CONFIG_PACKAGE_liblz4=y +CONFIG_PACKAGE_liblzma=y +CONFIG_PACKAGE_liblzo=y +CONFIG_PACKAGE_libmbim=y +CONFIG_PACKAGE_libmount=y +CONFIG_PACKAGE_libncurses=y +CONFIG_PACKAGE_libnetfilter-conntrack=y +CONFIG_PACKAGE_libnettle=y +CONFIG_PACKAGE_libnfnetlink=y +CONFIG_PACKAGE_libnghttp2=y +CONFIG_PACKAGE_libnl-core=y +CONFIG_PACKAGE_libnl-genl=y +CONFIG_PACKAGE_libnpth=y +CONFIG_PACKAGE_libnvme=y +CONFIG_PACKAGE_libopcodes=m +CONFIG_PACKAGE_libopenssl=y +CONFIG_PACKAGE_libopenssl-conf=y +CONFIG_PACKAGE_libopenssl-legacy=y +CONFIG_PACKAGE_libparted=y +CONFIG_PACKAGE_libpcap=y +CONFIG_PACKAGE_libpci=y +CONFIG_PACKAGE_libpcre2=y +CONFIG_PACKAGE_libpopt=y +CONFIG_PACKAGE_libqmi=y +CONFIG_PACKAGE_libqrtr-glib=y +CONFIG_PACKAGE_libreadline=y +CONFIG_PACKAGE_librrd1=y +CONFIG_PACKAGE_libseccomp=y +CONFIG_PACKAGE_libsensors=y +CONFIG_PACKAGE_libstdcpp=y +CONFIG_PACKAGE_libsysfs=y +CONFIG_PACKAGE_libtasn1=y +CONFIG_PACKAGE_libtirpc=y +CONFIG_PACKAGE_libubus-lua=y +CONFIG_PACKAGE_libudev-zero=y +CONFIG_PACKAGE_liburing=y +CONFIG_PACKAGE_libusb-1.0=y +CONFIG_PACKAGE_libuv=y +CONFIG_PACKAGE_libwebsockets-full=y +CONFIG_PACKAGE_libxtables=y +CONFIG_PACKAGE_libzstd=y +CONFIG_PACKAGE_lm-sensors=y +CONFIG_PACKAGE_losetup=y +CONFIG_PACKAGE_lsblk=y +CONFIG_PACKAGE_lscpu=y +CONFIG_PACKAGE_lua=y +CONFIG_PACKAGE_luci=y +CONFIG_PACKAGE_luci-app-adblock=y +CONFIG_PACKAGE_luci-app-commands=y +CONFIG_PACKAGE_luci-app-diskman=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_btrfs_progs=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_lsblk=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_ntfs_3g_utils=y +CONFIG_PACKAGE_luci-app-dockerman=y +CONFIG_PACKAGE_luci-app-filebrowser=y +CONFIG_PACKAGE_luci-app-firewall=y +CONFIG_PACKAGE_luci-app-irqbalance=y +CONFIG_PACKAGE_luci-app-ksmbd=y +CONFIG_PACKAGE_luci-app-lxc=y +CONFIG_PACKAGE_luci-app-nlbwmon=y +CONFIG_PACKAGE_luci-app-openvpn=y +CONFIG_PACKAGE_luci-app-opkg=y +CONFIG_PACKAGE_luci-app-pbr=y +CONFIG_PACKAGE_luci-app-sqm=y +CONFIG_PACKAGE_luci-app-statistics=y +CONFIG_PACKAGE_luci-app-ttyd=y +CONFIG_PACKAGE_luci-base=y +CONFIG_PACKAGE_luci-compat=y +CONFIG_PACKAGE_luci-lib-base=y +CONFIG_PACKAGE_luci-lib-docker=y +CONFIG_PACKAGE_luci-lib-ip=y +CONFIG_PACKAGE_luci-lib-ipkg=y +CONFIG_PACKAGE_luci-lib-jsonc=y +CONFIG_PACKAGE_luci-lib-nixio=y +CONFIG_PACKAGE_luci-light=y +CONFIG_PACKAGE_luci-lua-runtime=y +CONFIG_PACKAGE_luci-mod-admin-full=y +CONFIG_PACKAGE_luci-mod-network=y +CONFIG_PACKAGE_luci-mod-status=y +CONFIG_PACKAGE_luci-mod-system=y +CONFIG_PACKAGE_luci-proto-ipv6=y +CONFIG_PACKAGE_luci-proto-mbim=y +CONFIG_PACKAGE_luci-proto-modemmanager=y +CONFIG_PACKAGE_luci-proto-ppp=y +CONFIG_PACKAGE_luci-proto-wireguard=y +CONFIG_PACKAGE_luci-theme-bootstrap=y +CONFIG_PACKAGE_lvm2=y +CONFIG_PACKAGE_lxc=y +CONFIG_PACKAGE_lxc-attach=y +CONFIG_PACKAGE_lxc-auto=y +CONFIG_PACKAGE_lxc-autostart=y +CONFIG_PACKAGE_lxc-cgroup=y +CONFIG_PACKAGE_lxc-checkconfig=y +CONFIG_PACKAGE_lxc-common=y +CONFIG_PACKAGE_lxc-config=y +CONFIG_PACKAGE_lxc-configs=y +CONFIG_PACKAGE_lxc-console=y +CONFIG_PACKAGE_lxc-copy=y +CONFIG_PACKAGE_lxc-create=y +CONFIG_PACKAGE_lxc-destroy=y +CONFIG_PACKAGE_lxc-device=y +CONFIG_PACKAGE_lxc-execute=y +CONFIG_PACKAGE_lxc-freeze=y +CONFIG_PACKAGE_lxc-hooks=y +CONFIG_PACKAGE_lxc-info=y +CONFIG_PACKAGE_lxc-init=y +CONFIG_PACKAGE_lxc-ls=y +CONFIG_PACKAGE_lxc-monitor=y +CONFIG_PACKAGE_lxc-monitord=y +CONFIG_PACKAGE_lxc-snapshot=y +CONFIG_PACKAGE_lxc-start=y +CONFIG_PACKAGE_lxc-stop=y +CONFIG_PACKAGE_lxc-templates=y +CONFIG_PACKAGE_lxc-top=y +CONFIG_PACKAGE_lxc-unfreeze=y +CONFIG_PACKAGE_lxc-unprivileged=y +CONFIG_PACKAGE_lxc-unshare=y +CONFIG_PACKAGE_lxc-user-nic=y +CONFIG_PACKAGE_lxc-usernsexec=y +CONFIG_PACKAGE_lxc-wait=y +CONFIG_PACKAGE_mdadm=y +CONFIG_PACKAGE_mkhfs=y +CONFIG_PACKAGE_modemmanager=y +CONFIG_PACKAGE_mount-utils=y +CONFIG_PACKAGE_musl-fts=y +CONFIG_PACKAGE_nano=y +CONFIG_PACKAGE_nlbwmon=y +CONFIG_PACKAGE_ntfs-3g=y +CONFIG_PACKAGE_ntfs-3g-utils=y +CONFIG_PACKAGE_nvme-cli=y +CONFIG_PACKAGE_objdump=m +CONFIG_PACKAGE_openssl-util=y +CONFIG_PACKAGE_openvpn-easy-rsa=y +CONFIG_PACKAGE_openvpn-openssl=y +CONFIG_PACKAGE_parted=y +CONFIG_PACKAGE_pbr=y +CONFIG_PACKAGE_pciids=y +CONFIG_PACKAGE_pciutils=y +CONFIG_PACKAGE_perf=m +CONFIG_PACKAGE_ppp-mod-pppol2tp=y +CONFIG_PACKAGE_ppp-mod-pptp=y +CONFIG_PACKAGE_r8152-firmware=y +CONFIG_PACKAGE_resize2fs=y +CONFIG_PACKAGE_resolveip=y +CONFIG_PACKAGE_rpcd=y +CONFIG_PACKAGE_rpcd-mod-file=y +CONFIG_PACKAGE_rpcd-mod-iwinfo=y +CONFIG_PACKAGE_rpcd-mod-luci=y +CONFIG_PACKAGE_rpcd-mod-lxc=y +CONFIG_PACKAGE_rpcd-mod-rrdns=y +CONFIG_PACKAGE_rpcd-mod-ucode=y +CONFIG_PACKAGE_rrdtool1=y +CONFIG_PACKAGE_rtl8723de-firmware=y +CONFIG_PACKAGE_rtl8821ce-firmware=y +CONFIG_PACKAGE_rtl8822be-firmware=y +CONFIG_PACKAGE_rtl8822ce-firmware=y +CONFIG_PACKAGE_rtl8851be-firmware=y +CONFIG_PACKAGE_rtl8852ae-firmware=y +CONFIG_PACKAGE_rtl8852be-firmware=y +CONFIG_PACKAGE_rtl8852ce-firmware=y +CONFIG_PACKAGE_runc=y +CONFIG_PACKAGE_sfdisk=y +CONFIG_PACKAGE_sgdisk=y +CONFIG_PACKAGE_shadow=y +CONFIG_PACKAGE_shadow-chage=y +CONFIG_PACKAGE_shadow-chfn=y +CONFIG_PACKAGE_shadow-chgpasswd=y +CONFIG_PACKAGE_shadow-chpasswd=y +CONFIG_PACKAGE_shadow-chsh=y +CONFIG_PACKAGE_shadow-common=y +CONFIG_PACKAGE_shadow-expiry=y +CONFIG_PACKAGE_shadow-faillog=y +CONFIG_PACKAGE_shadow-gpasswd=y +CONFIG_PACKAGE_shadow-groupadd=y +CONFIG_PACKAGE_shadow-groupdel=y +CONFIG_PACKAGE_shadow-groupmems=y +CONFIG_PACKAGE_shadow-groupmod=y +CONFIG_PACKAGE_shadow-groups=y +CONFIG_PACKAGE_shadow-grpck=y +CONFIG_PACKAGE_shadow-grpconv=y +CONFIG_PACKAGE_shadow-grpunconv=y +CONFIG_PACKAGE_shadow-lastlog=y +CONFIG_PACKAGE_shadow-login=y +CONFIG_PACKAGE_shadow-logoutd=y +CONFIG_PACKAGE_shadow-newgidmap=y +CONFIG_PACKAGE_shadow-newgrp=y +CONFIG_PACKAGE_shadow-newuidmap=y +CONFIG_PACKAGE_shadow-newusers=y +CONFIG_PACKAGE_shadow-nologin=y +CONFIG_PACKAGE_shadow-passwd=y +CONFIG_PACKAGE_shadow-pwck=y +CONFIG_PACKAGE_shadow-pwconv=y +CONFIG_PACKAGE_shadow-pwunconv=y +CONFIG_PACKAGE_shadow-su=y +CONFIG_PACKAGE_shadow-useradd=y +CONFIG_PACKAGE_shadow-userdel=y +CONFIG_PACKAGE_shadow-usermod=y +CONFIG_PACKAGE_shadow-utils=y +CONFIG_PACKAGE_shadow-vipw=y +CONFIG_PACKAGE_smartmontools=y +CONFIG_PACKAGE_smartmontools-drivedb=y +CONFIG_PACKAGE_sqm-scripts=y +CONFIG_PACKAGE_sqm-scripts-extra=y +CONFIG_PACKAGE_squashfs-tools-mksquashfs=y +CONFIG_PACKAGE_squashfs-tools-unsquashfs=y +CONFIG_PACKAGE_sysfsutils=y +CONFIG_PACKAGE_tc-tiny=y +CONFIG_PACKAGE_tcpdump-mini=y +CONFIG_PACKAGE_terminfo=y +CONFIG_PACKAGE_tini=y +CONFIG_PACKAGE_tree=y +CONFIG_PACKAGE_ttyd=y +CONFIG_PACKAGE_ucode-mod-html=y +CONFIG_PACKAGE_ucode-mod-lua=y +CONFIG_PACKAGE_ucode-mod-math=y +CONFIG_PACKAGE_ucode-mod-nl80211=y +CONFIG_PACKAGE_ucode-mod-rtnl=y +CONFIG_PACKAGE_ucode-mod-uloop=y +CONFIG_PACKAGE_uhttpd=y +CONFIG_PACKAGE_uhttpd-mod-ubus=y +CONFIG_PACKAGE_umbim=y +CONFIG_PACKAGE_usb-modeswitch=y +CONFIG_PACKAGE_usbids=y +CONFIG_PACKAGE_usbutils=y +CONFIG_PACKAGE_vsftpd-tls=y +CONFIG_PACKAGE_wget-ssl=y +CONFIG_PACKAGE_wifi-scripts=y +CONFIG_PACKAGE_wipefs=y +CONFIG_PACKAGE_wireguard-tools=y +CONFIG_PACKAGE_wireless-regdb=y +CONFIG_PACKAGE_wireless-tools=y +CONFIG_PACKAGE_wpad-openssl=y +CONFIG_PACKAGE_wsdd2=y +CONFIG_PACKAGE_wwan=y +CONFIG_PACKAGE_xl2tpd=y +CONFIG_PACKAGE_xtables-nft=y +CONFIG_PACKAGE_zlib=y +CONFIG_PARTED_LVM2=y +CONFIG_PARTED_READLINE=y +CONFIG_PCRE2_JIT_ENABLED=y +CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT=y +CONFIG_SQUASHFS_TOOLS_ZSTD_SUPPORT=y +CONFIG_TARGET_ALL_PROFILES=y +CONFIG_TARGET_OPTIONS=y +# CONFIG_TARGET_ROOTFS_TARGZ is not set +CONFIG_WPA_MSG_MIN_PRIORITY=3 +CONFIG_ZSTD_OPTIMIZE_O3=y +CONFIG_shadow-all=y +# CONFIG_BPF_TOOLCHAIN_BUILD_LLVM is not set +CONFIG_BPF_TOOLCHAIN_PREBUILT=y +# CONFIG_COLLECT_KERNEL_DEBUG is not set +# CONFIG_IB is not set +# CONFIG_JSON_CYCLONEDX_SBOM is not set +# CONFIG_KERNEL_WERROR is not set +# CONFIG_MAKE_TOOLCHAIN is not set +# CONFIG_OPENVPN_openssl_ENABLE_SMALL is not set +CONFIG_PACKAGE_amdgpu-firmware=m +CONFIG_PACKAGE_radeon-firmware=m +# CONFIG_REPRODUCIBLE_DEBUG_INFO is not set +# CONFIG_SDK is not set +CONFIG_USE_LLVM_PREBUILT=y diff --git a/.github/workflows/x86_64.yaml b/.github/workflows/x86_64.yaml new file mode 100644 index 00000000000000..820c9b71a5137a --- /dev/null +++ b/.github/workflows/x86_64.yaml @@ -0,0 +1,95 @@ +name: Build x86_64 v6.6 +on: [push] + +jobs: + build: + name: Build x86 linux v6.6 images + runs-on: ubuntu-latest + + steps: + - name: Setup Ubuntu + run: | + sudo apt update + sudo apt install -y python3 python3-pip python3-ply python3-distutils python3-pyelftools libpython3-dev swig + - name: Maximize build space + uses: easimon/maximize-build-space@master + with: + root-reserve-mb: 512 + swap-size-mb: 1024 + remove-dotnet: 'true' + overprovision-lvm: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' + - name: Checkout + uses: actions/checkout@v4 + + - name: Build + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + cd feeds/luci + + wget https://gist.githubusercontent.com/mj22226/363cefecd314e45b49d8eafff8473fcf/raw/69b47c9a972e15056f94870d76d93a5146893f99/01-diskman.patch + + git apply 01-diskman.patch + cd - + cd feeds/packages + wget https://gist.githubusercontent.com/mj22226/351f11e66f08f06e37a985719a31ddb4/raw/b35ba7a3aac1949bd6bbeaad065a0a93dc3c34f0/01-cpu.patch + wget https://gist.githubusercontent.com/mj22226/b66f5c1bd5fc7e1cb3cf2c690b5dbd5a/raw/b955e726cbb0948d932c8d6143229ad604320149/20-lxc.patch + wget https://github.com/mj22226/packages/commit/37264a2e636b790df9cb037db695505341030e98.patch + + + + git apply 01-cpu.patch + git apply 20-lxc.patch + + + + + cd - + sed -i "71s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "84s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "195s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "212s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "13s/'1'/'0'/" feeds/packages/utils/dockerd/files/etc/config/dockerd + + ./scripts/feeds update -a + ./scripts/feeds install -a -f + wget https://downloads.openwrt.org/snapshots/targets/x86/64/llvm-bpf-18.1.7.Linux-x86_64.tar.zst + tar -xvf llvm-bpf-18.1.7.Linux-x86_64.tar.zst + cp .github/workflows/x86_64-config .config + make defconfig + wget https://gist.githubusercontent.com/mj22226/23edc25efeb65ef69d8eb6598f4f8179/raw/29c862e3e2558852523f4e8edd5f3d0cc145067e/01-key.patch + git apply 01-key.patch + make download -j32 + rm 01-key.patch + + + mkdir -p files/www/repo + wget https://gist.githubusercontent.com/mj22226/d464a1c7bf9802f03ad182a1a979c564/raw/c6147ceb53c2308c7272bd1b8f05a31b52603e43/86.patch + git apply 86.patch + make -j$(nproc) 'IGNORE_ERRORS=n m' + cp -R bin/targets/x86/64/packages files/www/repo/ + rm -rf bin/targets/rockchip/armv8/*.gz + make -j$(nproc) 'IGNORE_ERRORS=n m' + rm -rf bin/targets/x86/64/packages + echo "DATE=$(date +'%Y.%m.%d')" >> $GITHUB_ENV + echo "HASH=$(git log -1 --format="%H")" >> $GITHUB_ENV + - name: Delete tag + run: gh release delete x86-6.6 --cleanup-tag || true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create release + uses: ncipollo/release-action@v1.14.0 + with: + allowUpdates: true + commit: ${{ env.HASH }} + name: x86_64 v6.6 Images ${{ env.DATE }} + tag: x86-6.6 + replacesArtifacts: true + prerelease: true + token: "${{ secrets.GITHUB_TOKEN }}" + artifacts: bin/targets/x86/64/* + From 0e70fbefd6b810c01ef99ae8acfd1a25f93cfffb Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sat, 13 Apr 2024 23:22:40 -0400 Subject: [PATCH 03/41] CI: build bcm2712 RPi 5 Signed-off-by: Marty Jones --- .github/workflows/bcm2712.yaml | 92 ++++ .github/workflows/config.buildinfo | 698 +++++++++++++++++++++++++++++ 2 files changed, 790 insertions(+) create mode 100644 .github/workflows/bcm2712.yaml create mode 100644 .github/workflows/config.buildinfo diff --git a/.github/workflows/bcm2712.yaml b/.github/workflows/bcm2712.yaml new file mode 100644 index 00000000000000..d1c4dcf3dece2e --- /dev/null +++ b/.github/workflows/bcm2712.yaml @@ -0,0 +1,92 @@ +name: Build bcm2712 RPi 5B +on: [push] + +jobs: + build: + name: Build Raspberry Pi 5 images + runs-on: ubuntu-latest + + steps: + - name: Maximize build space + uses: easimon/maximize-build-space@master + with: + root-reserve-mb: 512 + swap-size-mb: 1024 + remove-dotnet: 'true' + overprovision-lvm: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' + - name: Checkout + uses: actions/checkout@v4 + - name: Build + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + cd feeds/luci + wget https://gist.githubusercontent.com/mj22226/363cefecd314e45b49d8eafff8473fcf/raw/69b47c9a972e15056f94870d76d93a5146893f99/01-diskman.patch + + git apply 01-diskman.patch + + cd - + cd feeds/packages + wget https://gist.githubusercontent.com/mj22226/351f11e66f08f06e37a985719a31ddb4/raw/b35ba7a3aac1949bd6bbeaad065a0a93dc3c34f0/01-cpu.patch + wget https://gist.githubusercontent.com/mj22226/b66f5c1bd5fc7e1cb3cf2c690b5dbd5a/raw/b955e726cbb0948d932c8d6143229ad604320149/20-lxc.patch + wget https://github.com/mj22226/packages/commit/37264a2e636b790df9cb037db695505341030e98.patch + + + + + git apply 01-cpu.patch + git apply 20-lxc.patch + + + + + + cd - + sed -i "71s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "84s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "195s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "212s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "13s/'1'/'0'/" feeds/packages/utils/dockerd/files/etc/config/dockerd + sed -i 's/default n/default y/g' feeds/packages/utils/dockerd/Config.in + ./scripts/feeds update -a + ./scripts/feeds install -a -f + wget https://downloads.openwrt.org/snapshots/targets/bcm27xx/bcm2712/llvm-bpf-18.1.7.Linux-x86_64.tar.zst + tar -xvf llvm-bpf-18.1.7.Linux-x86_64.tar.zst + wget https://gist.githubusercontent.com/mj22226/23edc25efeb65ef69d8eb6598f4f8179/raw/29c862e3e2558852523f4e8edd5f3d0cc145067e/01-key.patch + + git apply 01-key.patch + + rm 01-key.patch + cp .github/workflows/config.buildinfo .config + make defconfig + make download -j32 + + + mkdir -p files/www/repo + wget https://gist.githubusercontent.com/mj22226/242ed658f24ee582678ab50b553641ac/raw/ba143f1f72fe9be44c61288ac80267299ea9701e/03.patch + git apply 03.patch + make -j$(nproc) 'IGNORE_ERRORS=n m' + cp -R bin/targets/bcm27xx/bcm2712/packages/ files/www/repo/ + make -j$(nproc) 'IGNORE_ERRORS=n m' + rm -rf bin/targets/bcm27xx/bcm2712/packages + echo "DATE=$(date +'%Y.%m.%d')" >> $GITHUB_ENV + echo "HASH=$(git log -1 --format="%H")" >> $GITHUB_ENV + - name: Delete tag + run: gh release delete bcm2712-6.6 --cleanup-tag || true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create release + uses: ncipollo/release-action@v1.14.0 + with: + allowUpdates: true + commit: ${{ env.HASH }} + name: Raspberry Pi 5 v6.6 Firmware Images ${{ env.DATE }} + tag: bcm2712-6.6 + replacesArtifacts: true + prerelease: true + token: "${{ secrets.GITHUB_TOKEN }}" + artifacts: bin/targets/bcm27xx/bcm2712/* diff --git a/.github/workflows/config.buildinfo b/.github/workflows/config.buildinfo new file mode 100644 index 00000000000000..e3f1043607acea --- /dev/null +++ b/.github/workflows/config.buildinfo @@ -0,0 +1,698 @@ +CONFIG_TARGET_bcm27xx=y +CONFIG_TARGET_bcm27xx_bcm2712=y +CONFIG_TARGET_MULTI_PROFILE=y +CONFIG_TARGET_DEVICE_bcm27xx_bcm2712_DEVICE_rpi-5=y +CONFIG_TARGET_DEVICE_PACKAGES_bcm27xx_bcm2712_DEVICE_rpi-5="" +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y +CONFIG_DEVEL=y +CONFIG_BUSYBOX_CUSTOM=y +CONFIG_TARGET_PER_DEVICE_ROOTFS=y +CONFIG_BUILDBOT=y +CONFIG_BUILD_LOG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_BUSYBOX_CONFIG_GETOPT=y +CONFIG_BUSYBOX_CONFIG_MOUNTPOINT=y +CONFIG_BUSYBOX_CONFIG_UNXZ=y +CONFIG_BUSYBOX_CONFIG_XZ=y +CONFIG_CGROUPFS_MOUNT_KERNEL_CGROUPS=y +CONFIG_DOCKER_CGROUP_OPTIONS=y +CONFIG_DOCKER_CHECK_CONFIG=y +CONFIG_DOCKER_NET_ENCRYPT=y +CONFIG_DOCKER_NET_MACVLAN=y +CONFIG_DOCKER_NET_OVERLAY=y +CONFIG_DOCKER_NET_TFTP=y +CONFIG_DOCKER_OPTIONAL_FEATURES=y +CONFIG_DOCKER_STO_BTRFS=y +CONFIG_DOCKER_STO_DEVMAPPER=y +CONFIG_DOCKER_STO_EXT4=y +CONFIG_GNUTLS_ALPN=y +CONFIG_GNUTLS_ANON=y +CONFIG_GNUTLS_DTLS_SRTP=y +CONFIG_GNUTLS_HEARTBEAT=y +CONFIG_GNUTLS_OCSP=y +CONFIG_GNUTLS_PSK=y +CONFIG_HTOP_LMSENSORS=y +CONFIG_JSON_CYCLONEDX_SBOM=n +CONFIG_KERNEL_ARM_PMU=y +CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y +CONFIG_KERNEL_BUILD_DOMAIN="buildhost" +CONFIG_KERNEL_BUILD_USER="builder" +CONFIG_KERNEL_CFQ_GROUP_IOSCHED=y +CONFIG_KERNEL_CGROUP_DEVICE=y +CONFIG_KERNEL_CGROUP_FREEZER=y +CONFIG_KERNEL_CGROUP_HUGETLB=y +CONFIG_KERNEL_CGROUP_NET_PRIO=y +CONFIG_KERNEL_CGROUP_PERF=y +CONFIG_KERNEL_EXT4_FS_POSIX_ACL=y +CONFIG_KERNEL_EXT4_FS_SECURITY=y +CONFIG_KERNEL_FS_POSIX_ACL=y +CONFIG_KERNEL_HUGETLBFS=y +CONFIG_KERNEL_HUGETLB_PAGE=y +CONFIG_KERNEL_MEMCG_SWAP_ENABLED=y +CONFIG_KERNEL_NET_CLS_CGROUP=y +CONFIG_KERNEL_PERF_EVENTS=y +CONFIG_KERNEL_RPI_AXIPERF=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS=y +CONFIG_LIBCURL_COOKIES=y +CONFIG_LIBCURL_FILE=y +CONFIG_LIBCURL_FTP=y +CONFIG_LIBCURL_HTTP=y +CONFIG_LIBCURL_MBEDTLS=y +CONFIG_LIBCURL_NGHTTP2=y +CONFIG_LIBCURL_NO_SMB="!" +CONFIG_LIBCURL_PROXY=y +CONFIG_LIBCURL_UNIX_SOCKETS=y +CONFIG_LXC_BUSYBOX_OPTIONS=y +CONFIG_LXC_KERNEL_OPTIONS=y +CONFIG_LXC_NETWORKING=y +CONFIG_LXC_SECCOMP=y +CONFIG_OPENSSL_ENGINE=y +CONFIG_OPENSSL_ENGINE_BUILTIN=y +CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO=y +CONFIG_OPENSSL_OPTIMIZE_SPEED=y +CONFIG_OPENSSL_WITH_ASM=y +CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y +CONFIG_OPENSSL_WITH_CMS=y +CONFIG_OPENSSL_WITH_DEPRECATED=y +CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y +CONFIG_OPENSSL_WITH_IDEA=y +CONFIG_OPENSSL_WITH_MDC2=y +CONFIG_OPENSSL_WITH_PSK=y +CONFIG_OPENSSL_WITH_SEED=y +CONFIG_OPENSSL_WITH_SRP=y +CONFIG_OPENSSL_WITH_TLS13=y +CONFIG_OPENSSL_WITH_WHIRLPOOL=y +CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_openssl_ENABLE_LZ4=y +CONFIG_OPENVPN_openssl_ENABLE_LZO=y +CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y +CONFIG_OPENVPN_openssl_ENABLE_X509_ALT_USERNAME=y +CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y +CONFIG_PACKAGE_TAR_BZIP2=y +CONFIG_PACKAGE_TAR_GZIP=y +CONFIG_PACKAGE_TAR_POSIX_ACL=y +CONFIG_PACKAGE_TAR_XATTR=y +CONFIG_PACKAGE_TAR_XZ=y +CONFIG_PACKAGE_TAR_ZSTD=y +CONFIG_PACKAGE_adb=y +CONFIG_PACKAGE_adblock=y +CONFIG_PACKAGE_arp-scan=y +CONFIG_PACKAGE_arp-scan-database=y +CONFIG_PACKAGE_atop=y +CONFIG_PACKAGE_bash=y +CONFIG_PACKAGE_bcm2712-eeprom=y +CONFIG_PACKAGE_bcm27xx-eeprom=y +CONFIG_PACKAGE_blkdiscard=y +CONFIG_PACKAGE_blkid=y +CONFIG_PACKAGE_block-mount=y +CONFIG_PACKAGE_blockd=y +CONFIG_PACKAGE_blockdev=y +CONFIG_PACKAGE_bluez-daemon=y +CONFIG_PACKAGE_bluez-libs=y +CONFIG_PACKAGE_bluez-tools=y +CONFIG_PACKAGE_bluez-utils=y +CONFIG_PACKAGE_bluez-utils-extra=y +CONFIG_PACKAGE_btop=y +CONFIG_PACKAGE_btrfs-progs=y +CONFIG_PACKAGE_bzip2=y +CONFIG_PACKAGE_ca-certificates=y +CONFIG_PACKAGE_ccrypt=y +CONFIG_PACKAGE_certtool=y +CONFIG_PACKAGE_cfdisk=y +CONFIG_PACKAGE_cgdisk=y +CONFIG_PACKAGE_cgi-io=y +CONFIG_PACKAGE_cgroup-tools=y +CONFIG_PACKAGE_cgroupfs-mount=y +CONFIG_PACKAGE_collectd=y +CONFIG_PACKAGE_collectd-mod-conntrack=y +CONFIG_PACKAGE_collectd-mod-cpu=y +CONFIG_PACKAGE_collectd-mod-cpufreq=y +CONFIG_PACKAGE_collectd-mod-interface=y +CONFIG_PACKAGE_collectd-mod-irq=y +CONFIG_PACKAGE_collectd-mod-iwinfo=y +CONFIG_PACKAGE_collectd-mod-load=y +CONFIG_PACKAGE_collectd-mod-memory=y +CONFIG_PACKAGE_collectd-mod-network=y +CONFIG_PACKAGE_collectd-mod-rrdtool=y +CONFIG_PACKAGE_collectd-mod-sensors=y +CONFIG_PACKAGE_collectd-mod-thermal=y +CONFIG_PACKAGE_containerd=y +CONFIG_PACKAGE_coreutils=y +CONFIG_PACKAGE_coreutils-od=y +CONFIG_PACKAGE_coreutils-sort=y +CONFIG_PACKAGE_cryptsetup=y +CONFIG_PACKAGE_cryptsetup-ssh=y +CONFIG_PACKAGE_dbus=y +CONFIG_PACKAGE_debugfs=y +CONFIG_PACKAGE_dnsmasq=m +CONFIG_PACKAGE_dnsmasq-full=y +CONFIG_PACKAGE_dnsmasq_full_auth=y +CONFIG_PACKAGE_dnsmasq_full_conntrack=y +CONFIG_PACKAGE_dnsmasq_full_dhcp=y +CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y +CONFIG_PACKAGE_dnsmasq_full_dnssec=y +CONFIG_PACKAGE_dnsmasq_full_nftset=y +CONFIG_PACKAGE_dnsmasq_full_noid=y +CONFIG_PACKAGE_dnsmasq_full_tftp=y +CONFIG_PACKAGE_docker=y +CONFIG_PACKAGE_docker-compose=y +CONFIG_PACKAGE_dockerd=y +CONFIG_PACKAGE_dosfstools=y +CONFIG_PACKAGE_dumpe2fs=y +CONFIG_PACKAGE_e2freefrag=y +CONFIG_PACKAGE_e4crypt=y +CONFIG_PACKAGE_eject=y +CONFIG_PACKAGE_ethtool-full=y +CONFIG_PACKAGE_exfat-fsck=y +CONFIG_PACKAGE_exfat-mkfs=y +CONFIG_PACKAGE_f2fs-tools=m +CONFIG_PACKAGE_f2fs-tools-selinux=y +CONFIG_PACKAGE_f2fsck=m +CONFIG_PACKAGE_f2fsck-selinux=y +CONFIG_PACKAGE_fdisk=y +CONFIG_PACKAGE_findfs=y +CONFIG_PACKAGE_fixparts=y +CONFIG_PACKAGE_flock=y +CONFIG_PACKAGE_fuse-utils=y +CONFIG_PACKAGE_gdisk=y +CONFIG_PACKAGE_getopt=y +CONFIG_PACKAGE_glib2=y +CONFIG_PACKAGE_gnupg=y +CONFIG_PACKAGE_gnupg-utils=y +CONFIG_PACKAGE_gnupg2=y +CONFIG_PACKAGE_gnupg2-utils=y +CONFIG_PACKAGE_gzip=y +CONFIG_PACKAGE_hdparm=y +CONFIG_PACKAGE_hostapd-common=y +CONFIG_PACKAGE_htop=y +CONFIG_PACKAGE_hwclock=y +CONFIG_PACKAGE_ip-full=y +CONFIG_PACKAGE_ip6tables-nft=y +CONFIG_PACKAGE_iperf3-ssl=y +CONFIG_PACKAGE_ipset=y + +CONFIG_PACKAGE_iptables-mod-ipopt=y +CONFIG_PACKAGE_iptables-nft=y +CONFIG_PACKAGE_irqbalance=y +CONFIG_PACKAGE_iw=y +CONFIG_PACKAGE_iwinfo=y +CONFIG_PACKAGE_kmod-asn1-decoder=y +CONFIG_PACKAGE_kmod-asn1-encoder=y +CONFIG_PACKAGE_kmod-ata-ahci=y +CONFIG_PACKAGE_kmod-ata-core=y +CONFIG_PACKAGE_kmod-atm=y +# CONFIG_PACKAGE_kmod-b43 is not set +CONFIG_PACKAGE_kmod-bluetooth=y +CONFIG_PACKAGE_kmod-br-netfilter=y +CONFIG_PACKAGE_kmod-cdrom=y +CONFIG_PACKAGE_kmod-cfg80211=y +CONFIG_PACKAGE_kmod-crypto-aead=y +CONFIG_PACKAGE_kmod-crypto-arc4=y +CONFIG_PACKAGE_kmod-crypto-authenc=y +CONFIG_PACKAGE_kmod-crypto-cbc=y +CONFIG_PACKAGE_kmod-crypto-ccm=y +CONFIG_PACKAGE_kmod-crypto-chacha20poly1305=y +CONFIG_PACKAGE_kmod-crypto-cmac=y +CONFIG_PACKAGE_kmod-crypto-crc32=y +CONFIG_PACKAGE_kmod-crypto-ctr=y +CONFIG_PACKAGE_kmod-crypto-cts=y +CONFIG_PACKAGE_kmod-crypto-deflate=y +CONFIG_PACKAGE_kmod-crypto-des=y +CONFIG_PACKAGE_kmod-crypto-ecb=y +CONFIG_PACKAGE_kmod-crypto-ecdh=y +CONFIG_PACKAGE_kmod-crypto-echainiv=y +CONFIG_PACKAGE_kmod-crypto-essiv=y +CONFIG_PACKAGE_kmod-crypto-fcrypt=y +CONFIG_PACKAGE_kmod-crypto-gcm=y +CONFIG_PACKAGE_kmod-crypto-gf128=y +CONFIG_PACKAGE_kmod-crypto-ghash=y +CONFIG_PACKAGE_kmod-crypto-hmac=y +CONFIG_PACKAGE_kmod-crypto-kpp=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20poly1305=y +CONFIG_PACKAGE_kmod-crypto-lib-curve25519=y +CONFIG_PACKAGE_kmod-crypto-lib-poly1305=y +CONFIG_PACKAGE_kmod-crypto-manager=y +CONFIG_PACKAGE_kmod-crypto-md4=y +CONFIG_PACKAGE_kmod-crypto-md5=y +CONFIG_PACKAGE_kmod-crypto-michael-mic=y +CONFIG_PACKAGE_kmod-crypto-misc=y +CONFIG_PACKAGE_kmod-crypto-null=y +CONFIG_PACKAGE_kmod-crypto-pcbc=y +CONFIG_PACKAGE_kmod-crypto-rmd160=y +CONFIG_PACKAGE_kmod-crypto-rng=y +CONFIG_PACKAGE_kmod-crypto-seqiv=y +CONFIG_PACKAGE_kmod-crypto-sha1=y +CONFIG_PACKAGE_kmod-crypto-sha256=y +CONFIG_PACKAGE_kmod-crypto-sha512=y +CONFIG_PACKAGE_kmod-crypto-test=y +CONFIG_PACKAGE_kmod-crypto-user=y +CONFIG_PACKAGE_kmod-crypto-xcbc=y +CONFIG_PACKAGE_kmod-crypto-xts=y +CONFIG_PACKAGE_kmod-cryptodev=y +CONFIG_PACKAGE_kmod-dax=y +CONFIG_PACKAGE_kmod-dm=y +CONFIG_PACKAGE_kmod-dummy=y +CONFIG_PACKAGE_kmod-fs-autofs4=y +CONFIG_PACKAGE_kmod-fs-btrfs=y +CONFIG_PACKAGE_kmod-fs-configfs=y +CONFIG_PACKAGE_kmod-fs-exfat=y +CONFIG_PACKAGE_kmod-fs-exportfs=y +CONFIG_PACKAGE_kmod-fs-ext4=y +CONFIG_PACKAGE_kmod-fs-f2fs=y +CONFIG_PACKAGE_kmod-fs-hfs=y +CONFIG_PACKAGE_kmod-fs-hfsplus=y +CONFIG_PACKAGE_kmod-fs-ksmbd=y +CONFIG_PACKAGE_kmod-fs-msdos=y +CONFIG_PACKAGE_kmod-fs-netfs=y +CONFIG_PACKAGE_kmod-fs-ntfs3=y +CONFIG_PACKAGE_kmod-fs-smbfs-common=y +CONFIG_PACKAGE_kmod-fs-squashfs=y +CONFIG_PACKAGE_kmod-fs-xfs=y +CONFIG_PACKAGE_kmod-fuse=y +CONFIG_PACKAGE_kmod-gre=y +CONFIG_PACKAGE_kmod-hwmon-core=y +CONFIG_PACKAGE_kmod-i2c-bcm2835=y +CONFIG_PACKAGE_kmod-i2c-core=y +CONFIG_PACKAGE_kmod-ifb=y +CONFIG_PACKAGE_kmod-ikconfig=y +CONFIG_PACKAGE_kmod-ip6tables=y +CONFIG_PACKAGE_kmod-ipsec=y +CONFIG_PACKAGE_kmod-ipt-conntrack=y +CONFIG_PACKAGE_kmod-ipt-core=y +CONFIG_PACKAGE_kmod-ipt-extra=y +CONFIG_PACKAGE_kmod-ipt-ipopt=y +CONFIG_PACKAGE_kmod-ipt-ipset=y +CONFIG_PACKAGE_kmod-ipt-nat=y +CONFIG_PACKAGE_kmod-ipt-nat6=y +CONFIG_PACKAGE_kmod-ipt-physdev=y +CONFIG_PACKAGE_kmod-iptunnel=y +CONFIG_PACKAGE_kmod-keys-encrypted=y +CONFIG_PACKAGE_kmod-keys-trusted=y +CONFIG_PACKAGE_kmod-l2tp=y +CONFIG_PACKAGE_kmod-lib-crc16=y +CONFIG_PACKAGE_kmod-lib-raid6=y +CONFIG_PACKAGE_kmod-lib-textsearch=y +CONFIG_PACKAGE_kmod-lib-xor=y +CONFIG_PACKAGE_kmod-lib-zlib-deflate=y +CONFIG_PACKAGE_kmod-lib-zlib-inflate=y +CONFIG_PACKAGE_kmod-lib-zstd=y +CONFIG_PACKAGE_kmod-libphy=y +CONFIG_PACKAGE_kmod-mac80211=y +CONFIG_PACKAGE_kmod-macvlan=y +CONFIG_PACKAGE_kmod-md-mod=y +CONFIG_PACKAGE_kmod-md-raid0=y +CONFIG_PACKAGE_kmod-md-raid1=y +CONFIG_PACKAGE_kmod-md-raid10=y +CONFIG_PACKAGE_kmod-mdio-devres=y +CONFIG_PACKAGE_kmod-mii=y +CONFIG_PACKAGE_kmod-mppe=y +CONFIG_PACKAGE_kmod-mt76-connac=y +CONFIG_PACKAGE_kmod-mt76-core=y +CONFIG_PACKAGE_kmod-mt76-usb=y +CONFIG_PACKAGE_kmod-mt76x02-common=y +CONFIG_PACKAGE_kmod-mt76x02-usb=y +CONFIG_PACKAGE_kmod-mt76x2-common=y +CONFIG_PACKAGE_kmod-mt76x2u=y +CONFIG_PACKAGE_kmod-mt7921-common=y +CONFIG_PACKAGE_kmod-mt7921-firmware=y +CONFIG_PACKAGE_kmod-mt7921u=y +CONFIG_PACKAGE_kmod-mt792x-common=y +CONFIG_PACKAGE_kmod-mt792x-usb=y +CONFIG_PACKAGE_kmod-net-selftests=y +CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y +CONFIG_PACKAGE_kmod-nf-ipt=y +CONFIG_PACKAGE_kmod-nf-ipt6=y +CONFIG_PACKAGE_kmod-nf-ipvs=y +CONFIG_PACKAGE_kmod-nf-nat6=y +CONFIG_PACKAGE_kmod-nf-nathelper=y +CONFIG_PACKAGE_kmod-nf-nathelper-extra=y +CONFIG_PACKAGE_kmod-nft-compat=y +CONFIG_PACKAGE_kmod-nls-cp932=y +CONFIG_PACKAGE_kmod-nls-cp936=y +CONFIG_PACKAGE_kmod-nls-cp950=y +CONFIG_PACKAGE_kmod-nls-ucs2-utils=y +CONFIG_PACKAGE_kmod-nvme=y +CONFIG_PACKAGE_kmod-oid-registry=y +CONFIG_PACKAGE_kmod-phy-ax88796b=y +CONFIG_PACKAGE_kmod-phy-realtek=y +CONFIG_PACKAGE_kmod-phylink=y +CONFIG_PACKAGE_kmod-pppoa=y +CONFIG_PACKAGE_kmod-pppol2tp=y +CONFIG_PACKAGE_kmod-pptp=y +CONFIG_PACKAGE_kmod-r8169=y +CONFIG_PACKAGE_kmod-random-core=y +CONFIG_PACKAGE_kmod-regmap-core=y +CONFIG_PACKAGE_kmod-rtl8812au-ac=y +CONFIG_PACKAGE_kmod-rtw88=y +CONFIG_PACKAGE_kmod-rtw88-8821c=y +CONFIG_PACKAGE_kmod-rtw88-8821cu=y +CONFIG_PACKAGE_kmod-rtw88-8822b=y +CONFIG_PACKAGE_kmod-rtw88-8822bu=y +CONFIG_PACKAGE_kmod-rtw88-8822c=y +CONFIG_PACKAGE_kmod-rtw88-8822cu=y +CONFIG_PACKAGE_kmod-rtw88-usb=y +CONFIG_PACKAGE_kmod-sched-bpf=y +CONFIG_PACKAGE_kmod-sched-cake=y +CONFIG_PACKAGE_kmod-sched-core=y +CONFIG_PACKAGE_kmod-scsi-core=y +CONFIG_PACKAGE_kmod-tpm=y +CONFIG_PACKAGE_kmod-tun=y +CONFIG_PACKAGE_kmod-udptunnel4=y +CONFIG_PACKAGE_kmod-udptunnel6=y +CONFIG_PACKAGE_kmod-usb-net=y +CONFIG_PACKAGE_kmod-usb-net-aqc111=y +CONFIG_PACKAGE_kmod-usb-net-asix=y +CONFIG_PACKAGE_kmod-usb-net-asix-ax88179=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ether=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ncm=y +CONFIG_PACKAGE_kmod-usb-net-ipheth=y +CONFIG_PACKAGE_kmod-usb-net-rndis=y +CONFIG_PACKAGE_kmod-usb-net-rtl8150=y +CONFIG_PACKAGE_kmod-usb-net-rtl8152=y +CONFIG_PACKAGE_kmod-usb-ohci=y +CONFIG_PACKAGE_kmod-usb-storage=y +CONFIG_PACKAGE_kmod-usb-storage-extras=y +CONFIG_PACKAGE_kmod-usb-storage-uas=y +CONFIG_PACKAGE_kmod-usb-wdm=y +CONFIG_PACKAGE_kmod-veth=y +CONFIG_PACKAGE_kmod-vxlan=y +CONFIG_PACKAGE_kmod-wireguard=y +CONFIG_PACKAGE_ksmbd-server=y +CONFIG_PACKAGE_libacl=y +CONFIG_PACKAGE_libaio=y +CONFIG_PACKAGE_libassuan=y +CONFIG_PACKAGE_libatomic=y +CONFIG_PACKAGE_libattr=y +CONFIG_PACKAGE_libbfd=m +CONFIG_PACKAGE_libbpf=y +CONFIG_PACKAGE_libbz2=y +CONFIG_PACKAGE_libcap=y +CONFIG_PACKAGE_libcap-ng=y +CONFIG_PACKAGE_libcgroup=y +CONFIG_PACKAGE_libctf=m +CONFIG_PACKAGE_libcurl=y +CONFIG_PACKAGE_libdbus=y +CONFIG_PACKAGE_libdevmapper=y +CONFIG_PACKAGE_libdw=m +CONFIG_PACKAGE_libelf=y +CONFIG_PACKAGE_libevdev=y +CONFIG_PACKAGE_libexpat=y +CONFIG_PACKAGE_libf2fs=m +CONFIG_PACKAGE_libf2fs-selinux=y +CONFIG_PACKAGE_libfdisk=y +CONFIG_PACKAGE_libffi=y +CONFIG_PACKAGE_libfuse=y +CONFIG_PACKAGE_libgcrypt=y +CONFIG_PACKAGE_libgmp=y +CONFIG_PACKAGE_libgnutls=y +CONFIG_PACKAGE_libgpg-error=y +CONFIG_PACKAGE_libical=y +CONFIG_PACKAGE_libipset=y +CONFIG_PACKAGE_libiptext=y +CONFIG_PACKAGE_libiptext-nft=y +CONFIG_PACKAGE_libiptext6=y +CONFIG_PACKAGE_libiwinfo=y +CONFIG_PACKAGE_libiwinfo-data=y +CONFIG_PACKAGE_libkmod=y +CONFIG_PACKAGE_libksba=y +CONFIG_PACKAGE_libltdl=y +CONFIG_PACKAGE_liblua=y +CONFIG_PACKAGE_liblucihttp=y +CONFIG_PACKAGE_liblucihttp-lua=y +CONFIG_PACKAGE_liblucihttp-ucode=y +CONFIG_PACKAGE_liblxc=y +CONFIG_PACKAGE_liblz4=y +CONFIG_PACKAGE_liblzma=y +CONFIG_PACKAGE_liblzo=y +CONFIG_PACKAGE_libmount=y +CONFIG_PACKAGE_libncurses=y +CONFIG_PACKAGE_libnetfilter-conntrack=y +CONFIG_PACKAGE_libnettle=y +CONFIG_PACKAGE_libnfnetlink=y +CONFIG_PACKAGE_libnghttp2=y +CONFIG_PACKAGE_libnl-core=y +CONFIG_PACKAGE_libnl-genl=y +CONFIG_PACKAGE_libnpth=y +CONFIG_PACKAGE_libopcodes=m +CONFIG_PACKAGE_libopenssl=y +CONFIG_PACKAGE_libopenssl-conf=y +CONFIG_PACKAGE_libparted=y +CONFIG_PACKAGE_libpcap=y +CONFIG_PACKAGE_libpci=y +CONFIG_PACKAGE_libpcre2=y +CONFIG_PACKAGE_libpopt=y +CONFIG_PACKAGE_libpython3=y +CONFIG_PACKAGE_libqrencode=y +CONFIG_PACKAGE_libreadline=y +CONFIG_PACKAGE_librrd1=y +CONFIG_PACKAGE_libseccomp=y +CONFIG_PACKAGE_libselinux=y +CONFIG_PACKAGE_libsensors=y +CONFIG_PACKAGE_libsepol=y +CONFIG_PACKAGE_libssh=y +CONFIG_PACKAGE_libstdcpp=y +CONFIG_PACKAGE_libsysfs=y +CONFIG_PACKAGE_libtirpc=y +CONFIG_PACKAGE_libubus-lua=y +CONFIG_PACKAGE_libudev-zero=y +CONFIG_PACKAGE_libusb-1.0=y +CONFIG_PACKAGE_libuv=y +CONFIG_PACKAGE_libwebsockets-full=y +CONFIG_PACKAGE_libxtables=y +CONFIG_PACKAGE_libzstd=y +CONFIG_PACKAGE_linux-atm=y +CONFIG_PACKAGE_lm-sensors=y +CONFIG_PACKAGE_losetup=y +CONFIG_PACKAGE_lsblk=y +CONFIG_PACKAGE_lscpu=y +CONFIG_PACKAGE_lua=y +CONFIG_PACKAGE_luci=y +CONFIG_PACKAGE_luci-app-adblock=y +CONFIG_PACKAGE_luci-app-commands=y +CONFIG_PACKAGE_luci-app-diskman=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_btrfs_progs=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_lsblk=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_ntfs_3g_utils=y +CONFIG_PACKAGE_luci-app-dockerman=y +CONFIG_PACKAGE_luci-app-filebrowser=y +CONFIG_PACKAGE_luci-app-firewall=y +CONFIG_PACKAGE_luci-app-ksmbd=y +CONFIG_PACKAGE_luci-app-lxc=y +CONFIG_PACKAGE_luci-app-nlbwmon=y +CONFIG_PACKAGE_luci-app-openvpn=y +CONFIG_PACKAGE_luci-app-opkg=y +CONFIG_PACKAGE_luci-app-pbr=y +CONFIG_PACKAGE_luci-app-sqm=y +CONFIG_PACKAGE_luci-app-statistics=y +CONFIG_PACKAGE_luci-app-ttyd=y +CONFIG_PACKAGE_luci-base=y +CONFIG_PACKAGE_luci-compat=y +CONFIG_PACKAGE_luci-lib-base=y +CONFIG_PACKAGE_luci-lib-docker=y +CONFIG_PACKAGE_luci-lib-ip=y +CONFIG_PACKAGE_luci-lib-ipkg=y +CONFIG_PACKAGE_luci-lib-jsonc=y +CONFIG_PACKAGE_luci-lib-nixio=y +CONFIG_PACKAGE_luci-light=y +CONFIG_PACKAGE_luci-lua-runtime=y +CONFIG_PACKAGE_luci-mod-admin-full=y +CONFIG_PACKAGE_luci-mod-network=y +CONFIG_PACKAGE_luci-mod-status=y +CONFIG_PACKAGE_luci-mod-system=y +CONFIG_PACKAGE_luci-proto-ipv6=y +CONFIG_PACKAGE_luci-proto-ppp=y +CONFIG_PACKAGE_luci-proto-vxlan=y +CONFIG_PACKAGE_luci-proto-wireguard=y +CONFIG_PACKAGE_luci-theme-bootstrap=y +CONFIG_PACKAGE_lvm2=y +CONFIG_PACKAGE_lxc=y +CONFIG_PACKAGE_lxc-attach=y +CONFIG_PACKAGE_lxc-auto=y +CONFIG_PACKAGE_lxc-autostart=y +CONFIG_PACKAGE_lxc-cgroup=y +CONFIG_PACKAGE_lxc-checkconfig=y +CONFIG_PACKAGE_lxc-common=y +CONFIG_PACKAGE_lxc-config=y +CONFIG_PACKAGE_lxc-configs=y +CONFIG_PACKAGE_lxc-console=y +CONFIG_PACKAGE_lxc-copy=y +CONFIG_PACKAGE_lxc-create=y +CONFIG_PACKAGE_lxc-destroy=y +CONFIG_PACKAGE_lxc-device=y +CONFIG_PACKAGE_lxc-execute=y +CONFIG_PACKAGE_lxc-freeze=y +CONFIG_PACKAGE_lxc-hooks=y +CONFIG_PACKAGE_lxc-info=y +CONFIG_PACKAGE_lxc-init=y +CONFIG_PACKAGE_lxc-ls=y +CONFIG_PACKAGE_lxc-monitor=y +CONFIG_PACKAGE_lxc-monitord=y +CONFIG_PACKAGE_lxc-snapshot=y +CONFIG_PACKAGE_lxc-start=y +CONFIG_PACKAGE_lxc-stop=y +CONFIG_PACKAGE_lxc-templates=y +CONFIG_PACKAGE_lxc-top=y +CONFIG_PACKAGE_lxc-unfreeze=y +CONFIG_PACKAGE_lxc-unprivileged=y +CONFIG_PACKAGE_lxc-unshare=y +CONFIG_PACKAGE_lxc-user-nic=y +CONFIG_PACKAGE_lxc-usernsexec=y +CONFIG_PACKAGE_lxc-wait=y +CONFIG_PACKAGE_lz4=y +CONFIG_PACKAGE_lzmadec=y +CONFIG_PACKAGE_lzmainfo=y +CONFIG_PACKAGE_mdadm=y +CONFIG_PACKAGE_mkf2fs=m +CONFIG_PACKAGE_mkf2fs-selinux=y +CONFIG_PACKAGE_mmc-utils=y +CONFIG_PACKAGE_mount-utils=y +CONFIG_PACKAGE_mtools=y +CONFIG_PACKAGE_musl-fts=y +CONFIG_PACKAGE_nano=y +CONFIG_PACKAGE_nfs-utils=y +CONFIG_PACKAGE_nlbwmon=y +CONFIG_PACKAGE_ntfs-3g=y +CONFIG_PACKAGE_ntfs-3g-utils=y +CONFIG_PACKAGE_objdump=m +CONFIG_PACKAGE_openssl-util=y +CONFIG_PACKAGE_openvpn-easy-rsa=y +CONFIG_PACKAGE_openvpn-openssl=y +CONFIG_PACKAGE_parted=y +CONFIG_PACKAGE_pbr=y +CONFIG_PACKAGE_pciids=y +CONFIG_PACKAGE_pciutils=y +CONFIG_PACKAGE_perf=m +CONFIG_PACKAGE_ppp-mod-passwordfd=y +CONFIG_PACKAGE_ppp-mod-pppoa=y +CONFIG_PACKAGE_ppp-mod-pppol2tp=y +CONFIG_PACKAGE_ppp-mod-pptp=y +CONFIG_PACKAGE_ppp-mod-radius=y +CONFIG_PACKAGE_pppdump=y +CONFIG_PACKAGE_pppoe-discovery=y +CONFIG_PACKAGE_pptpd=y +CONFIG_PACKAGE_python3-base=y +CONFIG_PACKAGE_python3-light=y +CONFIG_PACKAGE_qosify=y +CONFIG_PACKAGE_qrencode=y +CONFIG_PACKAGE_r8152-firmware=y +CONFIG_PACKAGE_r8169-firmware=y +CONFIG_PACKAGE_resize2fs=y +CONFIG_PACKAGE_resolveip=y +CONFIG_PACKAGE_rpcd=y +CONFIG_PACKAGE_rpcd-mod-file=y +CONFIG_PACKAGE_rpcd-mod-iwinfo=y +CONFIG_PACKAGE_rpcd-mod-luci=y +CONFIG_PACKAGE_rpcd-mod-lxc=y +CONFIG_PACKAGE_rpcd-mod-rrdns=y +CONFIG_PACKAGE_rpcd-mod-ucode=y +CONFIG_PACKAGE_rrdtool1=y +CONFIG_PACKAGE_rtl8821ce-firmware=y +CONFIG_PACKAGE_rtl8822be-firmware=y +CONFIG_PACKAGE_rtl8822ce-firmware=y +CONFIG_PACKAGE_runc=y +CONFIG_PACKAGE_sfdisk=y +CONFIG_PACKAGE_sgdisk=y +CONFIG_PACKAGE_shadow=y +CONFIG_PACKAGE_shadow-chage=y +CONFIG_PACKAGE_shadow-chfn=y +CONFIG_PACKAGE_shadow-chgpasswd=y +CONFIG_PACKAGE_shadow-chpasswd=y +CONFIG_PACKAGE_shadow-chsh=y +CONFIG_PACKAGE_shadow-common=y +CONFIG_PACKAGE_shadow-expiry=y +CONFIG_PACKAGE_shadow-faillog=y +CONFIG_PACKAGE_shadow-gpasswd=y +CONFIG_PACKAGE_shadow-groupadd=y +CONFIG_PACKAGE_shadow-groupdel=y +CONFIG_PACKAGE_shadow-groupmems=y +CONFIG_PACKAGE_shadow-groupmod=y +CONFIG_PACKAGE_shadow-groups=y +CONFIG_PACKAGE_shadow-grpck=y +CONFIG_PACKAGE_shadow-grpconv=y +CONFIG_PACKAGE_shadow-grpunconv=y +CONFIG_PACKAGE_shadow-lastlog=y +CONFIG_PACKAGE_shadow-login=y +CONFIG_PACKAGE_shadow-logoutd=y +CONFIG_PACKAGE_shadow-newgidmap=y +CONFIG_PACKAGE_shadow-newgrp=y +CONFIG_PACKAGE_shadow-newuidmap=y +CONFIG_PACKAGE_shadow-newusers=y +CONFIG_PACKAGE_shadow-nologin=y +CONFIG_PACKAGE_shadow-passwd=y +CONFIG_PACKAGE_shadow-pwck=y +CONFIG_PACKAGE_shadow-pwconv=y +CONFIG_PACKAGE_shadow-pwunconv=y +CONFIG_PACKAGE_shadow-su=y +CONFIG_PACKAGE_shadow-useradd=y +CONFIG_PACKAGE_shadow-userdel=y +CONFIG_PACKAGE_shadow-usermod=y +CONFIG_PACKAGE_shadow-utils=y +CONFIG_PACKAGE_shadow-vipw=y +CONFIG_PACKAGE_smartmontools=y +CONFIG_PACKAGE_smartmontools-drivedb=y +CONFIG_PACKAGE_sqm-scripts=y +CONFIG_PACKAGE_sqm-scripts-extra=y +CONFIG_PACKAGE_squashfs-tools-mksquashfs=y +CONFIG_PACKAGE_squashfs-tools-unsquashfs=y +CONFIG_PACKAGE_sysfsutils=y +CONFIG_PACKAGE_tar=y +CONFIG_PACKAGE_tc-full=y +CONFIG_PACKAGE_tc-mod-iptables=y +CONFIG_PACKAGE_tc-tiny=y +CONFIG_PACKAGE_tcpdump-mini=y +CONFIG_PACKAGE_terminfo=y +CONFIG_PACKAGE_tini=y +CONFIG_PACKAGE_ttyd=y +CONFIG_PACKAGE_ucert-full=y +CONFIG_PACKAGE_ucode-mod-html=y +CONFIG_PACKAGE_ucode-mod-lua=y +CONFIG_PACKAGE_ucode-mod-math=y +CONFIG_PACKAGE_ucode-mod-nl80211=y +CONFIG_PACKAGE_uencrypt-openssl=y +CONFIG_PACKAGE_uhttpd=y +CONFIG_PACKAGE_uhttpd-mod-ubus=y +CONFIG_PACKAGE_usb-modeswitch=y +CONFIG_PACKAGE_usbids=y +CONFIG_PACKAGE_usbutils=y +CONFIG_PACKAGE_uuidd=y +CONFIG_PACKAGE_uuidgen=y +CONFIG_PACKAGE_vsftpd-tls=y +CONFIG_PACKAGE_vxlan=y +CONFIG_PACKAGE_wget-ssl=y +CONFIG_PACKAGE_wifi-scripts=y +CONFIG_PACKAGE_wireguard-tools=y +CONFIG_PACKAGE_wireless-regdb=y +CONFIG_PACKAGE_wireless-tools=y +CONFIG_PACKAGE_wsdd2=y +CONFIG_PACKAGE_xl2tpd=y +CONFIG_PACKAGE_xtables-nft=y +CONFIG_PACKAGE_xz=y +CONFIG_PACKAGE_xz-utils=y +CONFIG_PACKAGE_xzdec=y +CONFIG_PACKAGE_xzdiff=y +CONFIG_PACKAGE_xzgrep=y +CONFIG_PACKAGE_xzless=y +CONFIG_PACKAGE_xzmore=y +CONFIG_PACKAGE_zlib=y +CONFIG_PARTED_READLINE=y +CONFIG_REPRODUCIBLE_DEBUG_INFO=y +CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT=y +CONFIG_SQUASHFS_TOOLS_ZSTD_SUPPORT=y +CONFIG_TARGET_ALL_PROFILES=y +CONFIG_TARGET_OPTIONS=y +CONFIG_ZSTD_OPTIMIZE_O3=y +CONFIG_shadow-all=y +# CONFIG_BPF_TOOLCHAIN_BUILD_LLVM is not set +CONFIG_BPF_TOOLCHAIN_PREBUILT=y +# CONFIG_COLLECT_KERNEL_DEBUG is not set +# CONFIG_IB is not set +# CONFIG_KERNEL_WERROR is not set +# CONFIG_MAKE_TOOLCHAIN is not set +# CONFIG_OPENVPN_openssl_ENABLE_SMALL is not set +# CONFIG_SDK is not set +CONFIG_USE_LLVM_PREBUILT=y From 10b4dc16c7b036595f65bc04127d314e9dacacea Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Thu, 4 Jul 2024 15:00:08 -0400 Subject: [PATCH 04/41] CI: build rockchip images Signed-off-by: Marty Jones --- .../workflows/{coverity.yml => coverityyml} | 0 .github/workflows/{formal.yml => formalyml} | 0 .../{github-release.yml => github-releaseyml} | 0 .../{issue-labeller.yml => issue-labelleryml} | 0 .github/workflows/{kernel.yml => kernelyml} | 0 .../{label-kernel.yml => label-kernelyml} | 0 .../{label-target.yml => label-targetyml} | 0 .github/workflows/{labeler.yml => labeleryml} | 0 .../workflows/{packages.yml => packagesyml} | 0 ...push-containers.yml => push-containersyml} | 0 .github/workflows/rk-config | 708 ++++++++++++++++++ .github/workflows/rockchip.yaml | 95 +++ .../workflows/{toolchain.yml => toolchainyml} | 0 .github/workflows/{tools.yml => toolsyml} | 0 14 files changed, 803 insertions(+) rename .github/workflows/{coverity.yml => coverityyml} (100%) rename .github/workflows/{formal.yml => formalyml} (100%) rename .github/workflows/{github-release.yml => github-releaseyml} (100%) rename .github/workflows/{issue-labeller.yml => issue-labelleryml} (100%) rename .github/workflows/{kernel.yml => kernelyml} (100%) rename .github/workflows/{label-kernel.yml => label-kernelyml} (100%) rename .github/workflows/{label-target.yml => label-targetyml} (100%) rename .github/workflows/{labeler.yml => labeleryml} (100%) rename .github/workflows/{packages.yml => packagesyml} (100%) rename .github/workflows/{push-containers.yml => push-containersyml} (100%) create mode 100644 .github/workflows/rk-config create mode 100755 .github/workflows/rockchip.yaml rename .github/workflows/{toolchain.yml => toolchainyml} (100%) rename .github/workflows/{tools.yml => toolsyml} (100%) diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverityyml similarity index 100% rename from .github/workflows/coverity.yml rename to .github/workflows/coverityyml diff --git a/.github/workflows/formal.yml b/.github/workflows/formalyml similarity index 100% rename from .github/workflows/formal.yml rename to .github/workflows/formalyml diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-releaseyml similarity index 100% rename from .github/workflows/github-release.yml rename to .github/workflows/github-releaseyml diff --git a/.github/workflows/issue-labeller.yml b/.github/workflows/issue-labelleryml similarity index 100% rename from .github/workflows/issue-labeller.yml rename to .github/workflows/issue-labelleryml diff --git a/.github/workflows/kernel.yml b/.github/workflows/kernelyml similarity index 100% rename from .github/workflows/kernel.yml rename to .github/workflows/kernelyml diff --git a/.github/workflows/label-kernel.yml b/.github/workflows/label-kernelyml similarity index 100% rename from .github/workflows/label-kernel.yml rename to .github/workflows/label-kernelyml diff --git a/.github/workflows/label-target.yml b/.github/workflows/label-targetyml similarity index 100% rename from .github/workflows/label-target.yml rename to .github/workflows/label-targetyml diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeleryml similarity index 100% rename from .github/workflows/labeler.yml rename to .github/workflows/labeleryml diff --git a/.github/workflows/packages.yml b/.github/workflows/packagesyml similarity index 100% rename from .github/workflows/packages.yml rename to .github/workflows/packagesyml diff --git a/.github/workflows/push-containers.yml b/.github/workflows/push-containersyml similarity index 100% rename from .github/workflows/push-containers.yml rename to .github/workflows/push-containersyml diff --git a/.github/workflows/rk-config b/.github/workflows/rk-config new file mode 100644 index 00000000000000..b03fa154284e99 --- /dev/null +++ b/.github/workflows/rk-config @@ -0,0 +1,708 @@ +CONFIG_TARGET_rockchip=y +CONFIG_TARGET_rockchip_armv8=y +CONFIG_TARGET_MULTI_PROFILE=y +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_firefly_roc-rk3328-cc=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_firefly_roc-rk3328-cc="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyarm_nanopi-r2s=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_friendlyarm_nanopi-r2s="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyarm_nanopi-r4s=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_friendlyarm_nanopi-r4s="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyelec_nanopi-r5c=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_friendlyelec_nanopi-r5c="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyelec_nanopi-r5s=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_friendlyelec_nanopi-r5s="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyelec_nanopi-r6c=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_friendlyelec_nanopi-r6c="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyelec_nanopi-r6s=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_friendlyelec_nanopi-r6s="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_pine64_quartz64-a=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_pine64_quartz64-a="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_radxa_rock-pi-4=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_radxa_rock-pi-4="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_radxa_rock-3a=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_radxa_rock-3a="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_rockchip_bpi-r2-pro=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_rockchip_bpi-r2-pro="" +CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_xunlong_orangepi-5-plus=y +CONFIG_TARGET_DEVICE_PACKAGES_rockchip_armv8_DEVICE_xunlong_orangepi-5-plus="" +CONFIG_ALL_KMODS=y +CONFIG_ALL_NONSHARED=y +CONFIG_DEVEL=y +CONFIG_BUSYBOX_CUSTOM=y +CONFIG_TARGET_PER_DEVICE_ROOTFS=y +CONFIG_AUTOREMOVE=y +CONFIG_BUILDBOT=y +CONFIG_BUILD_LOG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_BUSYBOX_CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_BUSYBOX_CONFIG_FEATURE_TAR_LONG_OPTIONS=y +CONFIG_BUSYBOX_CONFIG_GETOPT=y +CONFIG_BUSYBOX_CONFIG_MOUNTPOINT=y +CONFIG_BUSYBOX_CONFIG_UNXZ=y +CONFIG_BUSYBOX_CONFIG_XZ=y +CONFIG_CGROUPFS_MOUNT_KERNEL_CGROUPS=y +CONFIG_DOCKER_CGROUP_OPTIONS=y +CONFIG_DOCKER_CHECK_CONFIG=y +CONFIG_DOCKER_NET_ENCRYPT=y +CONFIG_DOCKER_NET_MACVLAN=y +CONFIG_DOCKER_NET_OVERLAY=y +CONFIG_DOCKER_NET_TFTP=y +CONFIG_DOCKER_OPTIONAL_FEATURES=y +CONFIG_DOCKER_STO_BTRFS=y +CONFIG_DOCKER_STO_DEVMAPPER=y +CONFIG_DOCKER_STO_EXT4=y +CONFIG_GNUTLS_ALPN=y +CONFIG_GNUTLS_ANON=y +CONFIG_GNUTLS_DTLS_SRTP=y +CONFIG_GNUTLS_HEARTBEAT=y +CONFIG_GNUTLS_OCSP=y +CONFIG_GNUTLS_PSK=y +CONFIG_HTOP_LMSENSORS=y +CONFIG_KERNEL_ARM_PMU=y +CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y +CONFIG_KERNEL_BUILD_DOMAIN="buildhost" +CONFIG_KERNEL_BUILD_USER="builder" +CONFIG_KERNEL_CFQ_GROUP_IOSCHED=y +CONFIG_KERNEL_CGROUP_DEVICE=y +CONFIG_KERNEL_CGROUP_FREEZER=y +CONFIG_KERNEL_CGROUP_HUGETLB=y +CONFIG_KERNEL_CGROUP_NET_PRIO=y +CONFIG_KERNEL_CGROUP_PERF=y +CONFIG_KERNEL_EXT4_FS_POSIX_ACL=y +CONFIG_KERNEL_EXT4_FS_SECURITY=y +CONFIG_KERNEL_FS_POSIX_ACL=y +CONFIG_KERNEL_HUGETLBFS=y +CONFIG_KERNEL_HUGETLB_PAGE=y +CONFIG_KERNEL_MEMCG_SWAP_ENABLED=y +CONFIG_KERNEL_NET_CLS_CGROUP=y +CONFIG_KERNEL_PERF_EVENTS=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE=y +CONFIG_KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS=y +CONFIG_LIBCURL_COOKIES=y +CONFIG_LIBCURL_FILE=y +CONFIG_LIBCURL_FTP=y +CONFIG_LIBCURL_HTTP=y +CONFIG_LIBCURL_MBEDTLS=y +CONFIG_LIBCURL_NGHTTP2=y +CONFIG_LIBCURL_NO_SMB="!" +CONFIG_LIBCURL_PROXY=y +CONFIG_LIBCURL_UNIX_SOCKETS=y +CONFIG_LXC_BUSYBOX_OPTIONS=y +CONFIG_LXC_KERNEL_OPTIONS=y +CONFIG_LXC_NETWORKING=y +CONFIG_LXC_SECCOMP=y +CONFIG_OPENSSL_ENGINE_BUILTIN=y +CONFIG_OPENSSL_ENGINE_BUILTIN_DEVCRYPTO=y +CONFIG_OPENSSL_OPTIMIZE_SPEED=y +CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y +CONFIG_OPENVPN_openssl_ENABLE_LZ4=y +CONFIG_OPENVPN_openssl_ENABLE_LZO=y +CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y +CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y +CONFIG_PACKAGE_adb=y +CONFIG_PACKAGE_adblock=y +CONFIG_PACKAGE_arp-scan=y +CONFIG_PACKAGE_arp-scan-database=y +CONFIG_PACKAGE_ath10k-firmware-qca6174=y +CONFIG_PACKAGE_atop=y +CONFIG_PACKAGE_attr=y +CONFIG_PACKAGE_avahi-dbus-daemon=y +CONFIG_PACKAGE_bash=y +CONFIG_PACKAGE_blkdiscard=y +CONFIG_PACKAGE_blkid=y +CONFIG_PACKAGE_block-mount=y +CONFIG_PACKAGE_blockd=y +CONFIG_PACKAGE_blockdev=y +CONFIG_PACKAGE_bluez-daemon=y +CONFIG_PACKAGE_bluez-libs=y +CONFIG_PACKAGE_bluez-tools=y +CONFIG_PACKAGE_bluez-utils=y +CONFIG_PACKAGE_bluez-utils-extra=y +CONFIG_PACKAGE_btop=y +CONFIG_PACKAGE_btrfs-progs=y +CONFIG_PACKAGE_ca-certificates=y +CONFIG_PACKAGE_ccrypt=y +CONFIG_PACKAGE_certtool=y +CONFIG_PACKAGE_cgi-io=y +CONFIG_PACKAGE_cgroup-tools=y +CONFIG_PACKAGE_cgroupfs-mount=y +CONFIG_PACKAGE_collectd=y +CONFIG_PACKAGE_collectd-mod-conntrack=y +CONFIG_PACKAGE_collectd-mod-cpu=y +CONFIG_PACKAGE_collectd-mod-cpufreq=y +CONFIG_PACKAGE_collectd-mod-interface=y +CONFIG_PACKAGE_collectd-mod-irq=y +CONFIG_PACKAGE_collectd-mod-iwinfo=y +CONFIG_PACKAGE_collectd-mod-load=y +CONFIG_PACKAGE_collectd-mod-memory=y +CONFIG_PACKAGE_collectd-mod-network=y +CONFIG_PACKAGE_collectd-mod-rrdtool=y +CONFIG_PACKAGE_collectd-mod-sensors=y +CONFIG_PACKAGE_collectd-mod-thermal=y +CONFIG_PACKAGE_containerd=y +CONFIG_PACKAGE_coreutils=y +CONFIG_PACKAGE_coreutils-sort=y +CONFIG_PACKAGE_cryptsetup=y +CONFIG_PACKAGE_cryptsetup-ssh=y +CONFIG_PACKAGE_dbus=y +CONFIG_PACKAGE_dnsmasq=m +CONFIG_PACKAGE_dnsmasq-full=y +CONFIG_PACKAGE_dnsmasq_full_auth=y +CONFIG_PACKAGE_dnsmasq_full_conntrack=y +CONFIG_PACKAGE_dnsmasq_full_dhcp=y +CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y +CONFIG_PACKAGE_dnsmasq_full_dnssec=y +CONFIG_PACKAGE_dnsmasq_full_nftset=y +CONFIG_PACKAGE_dnsmasq_full_noid=y +CONFIG_PACKAGE_dnsmasq_full_tftp=y +CONFIG_PACKAGE_docker=y +CONFIG_PACKAGE_docker-compose=y +CONFIG_PACKAGE_dockerd=y +CONFIG_PACKAGE_dosfstools=y +CONFIG_PACKAGE_dropbearconvert=y +CONFIG_PACKAGE_ethtool-full=y +CONFIG_PACKAGE_exfat-fsck=y +CONFIG_PACKAGE_exfat-mkfs=y +CONFIG_PACKAGE_f2fs-tools=y +CONFIG_PACKAGE_f2fsck=y +CONFIG_PACKAGE_fdisk=y +CONFIG_PACKAGE_findfs=y +CONFIG_PACKAGE_fixparts=y +CONFIG_PACKAGE_flock=y +CONFIG_PACKAGE_fuse-utils=y +CONFIG_PACKAGE_fuse3-utils=y +CONFIG_PACKAGE_gdisk=y +CONFIG_PACKAGE_getopt=y +CONFIG_PACKAGE_glib2=y +CONFIG_PACKAGE_gnupg=y +CONFIG_PACKAGE_gnupg2=y +CONFIG_PACKAGE_gnupg2-utils=y +CONFIG_PACKAGE_gnutls-utils=y +CONFIG_PACKAGE_hdparm=y +CONFIG_PACKAGE_hostapd-common=y +CONFIG_PACKAGE_htop=y +CONFIG_PACKAGE_hwclock=y +CONFIG_PACKAGE_ip-full=y +CONFIG_PACKAGE_ip6tables-nft=y +CONFIG_PACKAGE_iperf3-ssl=y +CONFIG_PACKAGE_ipset=y +mt7921bt-firmware=y +CONFIG_PACKAGE_iptables-mod-ipopt=y +CONFIG_PACKAGE_iptables-nft=y +CONFIG_PACKAGE_irqbalance=y +# CONFIG_PACKAGE_iw is not set +CONFIG_PACKAGE_iw-full=y +CONFIG_PACKAGE_iwinfo=y +CONFIG_PACKAGE_kmod-asn1-decoder=y +CONFIG_PACKAGE_kmod-asn1-encoder=y +CONFIG_PACKAGE_kmod-ata-ahci=y +CONFIG_PACKAGE_kmod-ata-core=y +CONFIG_PACKAGE_kmod-ata-dwc=y +CONFIG_PACKAGE_kmod-ath=y +CONFIG_PACKAGE_kmod-ath10k=y +CONFIG_PACKAGE_kmod-ath9k=y +CONFIG_PACKAGE_kmod-ath9k-common=y +CONFIG_PACKAGE_kmod-atm=y +# CONFIG_PACKAGE_kmod-b43 is not set +CONFIG_PACKAGE_kmod-bluetooth=y +CONFIG_PACKAGE_kmod-br-netfilter=y +CONFIG_PACKAGE_kmod-cdrom=y +CONFIG_PACKAGE_kmod-cfg80211=y +CONFIG_PACKAGE_kmod-crypto-aead=y +CONFIG_PACKAGE_kmod-crypto-arc4=y +CONFIG_PACKAGE_kmod-crypto-authenc=y +CONFIG_PACKAGE_kmod-crypto-cbc=y +CONFIG_PACKAGE_kmod-crypto-ccm=y +CONFIG_PACKAGE_kmod-crypto-cmac=y +CONFIG_PACKAGE_kmod-crypto-crc32=y +CONFIG_PACKAGE_kmod-crypto-ctr=y +CONFIG_PACKAGE_kmod-crypto-deflate=y +CONFIG_PACKAGE_kmod-crypto-des=y +CONFIG_PACKAGE_kmod-crypto-ecb=y +CONFIG_PACKAGE_kmod-crypto-ecdh=y +CONFIG_PACKAGE_kmod-crypto-echainiv=y +CONFIG_PACKAGE_kmod-crypto-gcm=y +CONFIG_PACKAGE_kmod-crypto-gf128=y +CONFIG_PACKAGE_kmod-crypto-ghash=y +CONFIG_PACKAGE_kmod-crypto-hmac=y +CONFIG_PACKAGE_kmod-crypto-kpp=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20=y +CONFIG_PACKAGE_kmod-crypto-lib-chacha20poly1305=y +CONFIG_PACKAGE_kmod-crypto-lib-curve25519=y +CONFIG_PACKAGE_kmod-crypto-lib-poly1305=y +CONFIG_PACKAGE_kmod-crypto-manager=y +CONFIG_PACKAGE_kmod-crypto-md5=y +CONFIG_PACKAGE_kmod-crypto-misc=y +CONFIG_PACKAGE_kmod-crypto-null=y +CONFIG_PACKAGE_kmod-crypto-rng=y +CONFIG_PACKAGE_kmod-crypto-seqiv=y +CONFIG_PACKAGE_kmod-crypto-sha1=y +CONFIG_PACKAGE_kmod-crypto-sha256=y +CONFIG_PACKAGE_kmod-crypto-sha512=y +CONFIG_PACKAGE_kmod-crypto-user=y +CONFIG_PACKAGE_kmod-crypto-xts=y +CONFIG_PACKAGE_kmod-cryptodev=y +CONFIG_PACKAGE_kmod-dax=y +CONFIG_PACKAGE_kmod-dm=y +CONFIG_PACKAGE_kmod-dummy=y +CONFIG_PACKAGE_kmod-fs-autofs4=y +CONFIG_PACKAGE_kmod-fs-btrfs=y +CONFIG_PACKAGE_kmod-fs-exfat=y +CONFIG_PACKAGE_kmod-fs-exportfs=y +CONFIG_PACKAGE_kmod-fs-ext4=y +CONFIG_PACKAGE_kmod-fs-f2fs=y +CONFIG_PACKAGE_kmod-fs-hfs=y +CONFIG_PACKAGE_kmod-fs-hfsplus=y +CONFIG_PACKAGE_kmod-fs-ksmbd=y +CONFIG_PACKAGE_kmod-fs-msdos=y +CONFIG_PACKAGE_kmod-fs-netfs=y +CONFIG_PACKAGE_kmod-fs-ntfs3=y +CONFIG_PACKAGE_kmod-fs-smbfs-common=y +CONFIG_PACKAGE_kmod-fs-squashfs=y +CONFIG_PACKAGE_kmod-fs-vfat=y +CONFIG_PACKAGE_kmod-fs-xfs=y +CONFIG_PACKAGE_kmod-fuse=y +CONFIG_PACKAGE_kmod-gre=y +CONFIG_PACKAGE_kmod-hid=y +CONFIG_PACKAGE_kmod-hwmon-gpiofan=y +CONFIG_PACKAGE_kmod-hwmon-pwmfan=y +CONFIG_PACKAGE_kmod-i2c-core=y +CONFIG_PACKAGE_kmod-ifb=y +CONFIG_PACKAGE_kmod-ikconfig=y +CONFIG_PACKAGE_kmod-input-core=y +CONFIG_PACKAGE_kmod-input-evdev=y +CONFIG_PACKAGE_kmod-ip6tables=y +CONFIG_PACKAGE_kmod-ipsec=y +CONFIG_PACKAGE_kmod-ipt-conntrack=y +CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y +CONFIG_PACKAGE_kmod-ipt-core=y +CONFIG_PACKAGE_kmod-ipt-extra=y +CONFIG_PACKAGE_kmod-ipt-ipopt=y +CONFIG_PACKAGE_kmod-ipt-ipset=y +CONFIG_PACKAGE_kmod-ipt-nat=y +CONFIG_PACKAGE_kmod-ipt-nat6=y +CONFIG_PACKAGE_kmod-ipt-physdev=y +CONFIG_PACKAGE_kmod-iptunnel=y +CONFIG_PACKAGE_kmod-keys-encrypted=y +CONFIG_PACKAGE_kmod-keys-trusted=y +CONFIG_PACKAGE_kmod-l2tp=y +CONFIG_PACKAGE_kmod-lib-crc16=y +CONFIG_PACKAGE_kmod-lib-raid6=y +CONFIG_PACKAGE_kmod-lib-textsearch=y +CONFIG_PACKAGE_kmod-lib-xor=y +CONFIG_PACKAGE_kmod-lib-zlib-deflate=y +CONFIG_PACKAGE_kmod-lib-zlib-inflate=y +CONFIG_PACKAGE_kmod-lib-zstd=y +CONFIG_PACKAGE_kmod-libphy=y +CONFIG_PACKAGE_kmod-mac80211=y +CONFIG_PACKAGE_kmod-macvlan=y +CONFIG_PACKAGE_kmod-md-mod=y +CONFIG_PACKAGE_kmod-md-raid0=y +CONFIG_PACKAGE_kmod-md-raid1=y +CONFIG_PACKAGE_kmod-md-raid10=y +CONFIG_PACKAGE_kmod-mdio-devres=y +CONFIG_PACKAGE_kmod-mii=y +CONFIG_PACKAGE_kmod-mppe=y +CONFIG_PACKAGE_kmod-mt76-connac=y +CONFIG_PACKAGE_kmod-mt76-core=y +CONFIG_PACKAGE_kmod-mt76-usb=y +CONFIG_PACKAGE_kmod-mt76x02-common=y +CONFIG_PACKAGE_kmod-mt76x02-usb=y +CONFIG_PACKAGE_kmod-mt76x2-common=y +CONFIG_PACKAGE_kmod-mt76x2u=y +CONFIG_PACKAGE_kmod-mt7915-firmware=y +CONFIG_PACKAGE_kmod-mt7915e=y +CONFIG_PACKAGE_kmod-mt7916-firmware=y +CONFIG_PACKAGE_kmod-mt7921-common=y +CONFIG_PACKAGE_kmod-mt7921-firmware=y +CONFIG_PACKAGE_kmod-mt7921e=y +CONFIG_PACKAGE_kmod-mt7921u=y +CONFIG_PACKAGE_kmod-mt7922-firmware=y +CONFIG_PACKAGE_kmod-mt792x-common=y +CONFIG_PACKAGE_kmod-mt792x-usb=y +CONFIG_PACKAGE_kmod-nf-conncount=y +CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y +CONFIG_PACKAGE_kmod-nf-ipt=y +CONFIG_PACKAGE_kmod-nf-ipt6=y +CONFIG_PACKAGE_kmod-nf-ipvs=y +CONFIG_PACKAGE_kmod-nf-nat6=y +CONFIG_PACKAGE_kmod-nf-nathelper=y +CONFIG_PACKAGE_kmod-nf-nathelper-extra=y +CONFIG_PACKAGE_kmod-nft-arp=y +CONFIG_PACKAGE_kmod-nft-bridge=y +CONFIG_PACKAGE_kmod-nft-compat=y +CONFIG_PACKAGE_kmod-nls-base=y +CONFIG_PACKAGE_kmod-nls-cp437=y +CONFIG_PACKAGE_kmod-nls-cp932=y +CONFIG_PACKAGE_kmod-nls-cp936=y +CONFIG_PACKAGE_kmod-nls-cp950=y +CONFIG_PACKAGE_kmod-nls-iso8859-1=y +CONFIG_PACKAGE_kmod-nls-ucs2-utils=y +CONFIG_PACKAGE_kmod-nls-utf8=y +CONFIG_PACKAGE_kmod-nvme=y +CONFIG_PACKAGE_kmod-oid-registry=y +CONFIG_PACKAGE_kmod-phy-realtek=y +CONFIG_PACKAGE_kmod-pppoa=y +CONFIG_PACKAGE_kmod-pppol2tp=y +CONFIG_PACKAGE_kmod-pptp=y +CONFIG_PACKAGE_kmod-r8169=y +CONFIG_PACKAGE_kmod-random-core=y +CONFIG_PACKAGE_kmod-regmap-core=y +CONFIG_PACKAGE_kmod-rtl8812au-ac=y +CONFIG_PACKAGE_kmod-rtl8821ae=y +CONFIG_PACKAGE_kmod-rtlwifi=y +CONFIG_PACKAGE_kmod-rtlwifi-btcoexist=y +CONFIG_PACKAGE_kmod-rtlwifi-pci=y +CONFIG_PACKAGE_kmod-rtw88=y +CONFIG_PACKAGE_kmod-rtw88-8723d=y +CONFIG_PACKAGE_kmod-rtw88-8723de=y +CONFIG_PACKAGE_kmod-rtw88-8821c=y +CONFIG_PACKAGE_kmod-rtw88-8821ce=y +CONFIG_PACKAGE_kmod-rtw88-8821cu=y +CONFIG_PACKAGE_kmod-rtw88-8822b=y +CONFIG_PACKAGE_kmod-rtw88-8822be=y +CONFIG_PACKAGE_kmod-rtw88-8822bu=y +CONFIG_PACKAGE_kmod-rtw88-8822c=y +CONFIG_PACKAGE_kmod-rtw88-8822ce=y +CONFIG_PACKAGE_kmod-rtw88-8822cu=y +CONFIG_PACKAGE_kmod-rtw88-pci=y +CONFIG_PACKAGE_kmod-rtw88-usb=y +CONFIG_PACKAGE_kmod-rtw89=y +CONFIG_PACKAGE_kmod-sched-bpf=y +CONFIG_PACKAGE_kmod-sched-cake=y +CONFIG_PACKAGE_kmod-sched-core=y +CONFIG_PACKAGE_kmod-scsi-core=y +CONFIG_PACKAGE_kmod-tpm=y +CONFIG_PACKAGE_kmod-tun=y +CONFIG_PACKAGE_kmod-udptunnel4=y +CONFIG_PACKAGE_kmod-udptunnel6=y +CONFIG_PACKAGE_kmod-usb-core=y +CONFIG_PACKAGE_kmod-usb-dwc2=y +CONFIG_PACKAGE_kmod-usb-dwc3=y +CONFIG_PACKAGE_kmod-usb-ehci=y +CONFIG_PACKAGE_kmod-usb-gadget=y +CONFIG_PACKAGE_kmod-usb-net=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ether=y +CONFIG_PACKAGE_kmod-usb-net-cdc-ncm=y +CONFIG_PACKAGE_kmod-usb-net-ipheth=y +CONFIG_PACKAGE_kmod-usb-net-rndis=y +CONFIG_PACKAGE_kmod-usb-net-rtl8152=y +CONFIG_PACKAGE_kmod-usb-ohci=y +CONFIG_PACKAGE_kmod-usb-printer=y +CONFIG_PACKAGE_kmod-usb-roles=y +CONFIG_PACKAGE_kmod-usb-storage=y +CONFIG_PACKAGE_kmod-usb-storage-extras=y +CONFIG_PACKAGE_kmod-usb-storage-uas=y +CONFIG_PACKAGE_kmod-usb-xhci-hcd=y +CONFIG_PACKAGE_kmod-usb2=y +CONFIG_PACKAGE_kmod-usb2-pci=y +CONFIG_PACKAGE_kmod-usb3=y +CONFIG_PACKAGE_kmod-veth=y +CONFIG_PACKAGE_kmod-vxlan=y +CONFIG_PACKAGE_kmod-wireguard=y +CONFIG_PACKAGE_ksmbd-server=y +CONFIG_PACKAGE_libaio=y +CONFIG_PACKAGE_libassuan=y +CONFIG_PACKAGE_libatomic=y +CONFIG_PACKAGE_libattr=y +CONFIG_PACKAGE_libavahi-client=y +CONFIG_PACKAGE_libavahi-dbus-support=y +CONFIG_PACKAGE_libbfd=m +CONFIG_PACKAGE_libbpf=y +CONFIG_PACKAGE_libbz2=m +CONFIG_PACKAGE_libcap=y +CONFIG_PACKAGE_libcap-ng=y +CONFIG_PACKAGE_libcgroup=y +CONFIG_PACKAGE_libctf=m +CONFIG_PACKAGE_libcurl=y +CONFIG_PACKAGE_libdaemon=y +CONFIG_PACKAGE_libdbus=y +CONFIG_PACKAGE_libdevmapper=y +CONFIG_PACKAGE_libdw=m +CONFIG_PACKAGE_libelf=y +CONFIG_PACKAGE_libevdev=y +CONFIG_PACKAGE_libexpat=y +CONFIG_PACKAGE_libfdisk=y +CONFIG_PACKAGE_libffi=y +CONFIG_PACKAGE_libfuse=y +CONFIG_PACKAGE_libfuse3=y +CONFIG_PACKAGE_libgcrypt=y +CONFIG_PACKAGE_libgmp=y +CONFIG_PACKAGE_libgnutls=y +CONFIG_PACKAGE_libgpg-error=y +CONFIG_PACKAGE_libical=y +CONFIG_PACKAGE_libipset=y +CONFIG_PACKAGE_libiptext=y +CONFIG_PACKAGE_libiptext-nft=y +CONFIG_PACKAGE_libiptext6=y +CONFIG_PACKAGE_libiwinfo=y +CONFIG_PACKAGE_libiwinfo-data=y +CONFIG_PACKAGE_libkmod=y +CONFIG_PACKAGE_libksba=y +CONFIG_PACKAGE_libltdl=y +CONFIG_PACKAGE_liblua=y +CONFIG_PACKAGE_liblucihttp=y +CONFIG_PACKAGE_liblucihttp-lua=y +CONFIG_PACKAGE_liblucihttp-ucode=y +CONFIG_PACKAGE_liblxc=y +CONFIG_PACKAGE_liblz4=y +CONFIG_PACKAGE_liblzma=y +CONFIG_PACKAGE_liblzo=y +CONFIG_PACKAGE_libmount=y +CONFIG_PACKAGE_libncurses=y +CONFIG_PACKAGE_libnetfilter-conntrack=y +CONFIG_PACKAGE_libnettle=y +CONFIG_PACKAGE_libnfnetlink=y +CONFIG_PACKAGE_libnghttp2=y +CONFIG_PACKAGE_libnl-core=y +CONFIG_PACKAGE_libnl-genl=y +CONFIG_PACKAGE_libnpth=y +CONFIG_PACKAGE_libopcodes=m +CONFIG_PACKAGE_libopenssl=y +CONFIG_PACKAGE_libopenssl-conf=y +CONFIG_PACKAGE_libopenssl-legacy=y +CONFIG_PACKAGE_libparted=y +CONFIG_PACKAGE_libpcap=y +CONFIG_PACKAGE_libpci=y +CONFIG_PACKAGE_libpcre=y +CONFIG_PACKAGE_libpcre2=y +CONFIG_PACKAGE_libpopt=y +CONFIG_PACKAGE_libqrencode=y +CONFIG_PACKAGE_libreadline=y +CONFIG_PACKAGE_librrd1=y +CONFIG_PACKAGE_libseccomp=y +CONFIG_PACKAGE_libsensors=y +CONFIG_PACKAGE_libssh=y +CONFIG_PACKAGE_libstdcpp=y +CONFIG_PACKAGE_libsysfs=y +CONFIG_PACKAGE_libtasn1=y +CONFIG_PACKAGE_libtirpc=y +CONFIG_PACKAGE_libtraceevent=m +CONFIG_PACKAGE_libubus-lua=y +CONFIG_PACKAGE_libudev-zero=y +CONFIG_PACKAGE_liburing=y +CONFIG_PACKAGE_libusb-1.0=y +CONFIG_PACKAGE_libuv=y +CONFIG_PACKAGE_libwebsockets-full=y +CONFIG_PACKAGE_libxtables=y +CONFIG_PACKAGE_libzstd=y +CONFIG_PACKAGE_linux-atm=y +CONFIG_PACKAGE_lm-sensors=y +CONFIG_PACKAGE_losetup=y +CONFIG_PACKAGE_lsblk=y +CONFIG_PACKAGE_lua=y +CONFIG_PACKAGE_luci=y +CONFIG_PACKAGE_luci-app-adblock=y +CONFIG_PACKAGE_luci-app-commands=y +CONFIG_PACKAGE_luci-app-diskman=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_btrfs_progs=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_lsblk=y +CONFIG_PACKAGE_luci-app-diskman_INCLUDE_ntfs_3g_utils=y +CONFIG_PACKAGE_luci-app-dockerman=y +CONFIG_PACKAGE_luci-app-filebrowser=y +CONFIG_PACKAGE_luci-app-firewall=y +CONFIG_PACKAGE_luci-app-irqbalance=y +CONFIG_PACKAGE_luci-app-ksmbd=y +CONFIG_PACKAGE_luci-app-lxc=y +CONFIG_PACKAGE_luci-app-nlbwmon=y +CONFIG_PACKAGE_luci-app-openvpn=y +CONFIG_PACKAGE_luci-app-opkg=y +CONFIG_PACKAGE_luci-app-pbr=y +CONFIG_PACKAGE_luci-app-sqm=y +CONFIG_PACKAGE_luci-app-statistics=y +CONFIG_PACKAGE_luci-app-ttyd=y +CONFIG_PACKAGE_luci-base=y +CONFIG_PACKAGE_luci-compat=y +CONFIG_PACKAGE_luci-lib-base=y +CONFIG_PACKAGE_luci-lib-docker=y +CONFIG_PACKAGE_luci-lib-ip=y +CONFIG_PACKAGE_luci-lib-ipkg=y +CONFIG_PACKAGE_luci-lib-jsonc=y +CONFIG_PACKAGE_luci-lib-nixio=y +CONFIG_PACKAGE_luci-light=y +CONFIG_PACKAGE_luci-lua-runtime=y +CONFIG_PACKAGE_luci-mod-admin-full=y +CONFIG_PACKAGE_luci-mod-network=y +CONFIG_PACKAGE_luci-mod-status=y +CONFIG_PACKAGE_luci-mod-system=y +CONFIG_PACKAGE_luci-proto-ipv6=y +CONFIG_PACKAGE_luci-proto-ppp=y +CONFIG_PACKAGE_luci-proto-wireguard=y +CONFIG_PACKAGE_luci-theme-bootstrap=y +CONFIG_PACKAGE_lvm2=y +CONFIG_PACKAGE_lxc=y +CONFIG_PACKAGE_lxc-attach=y +CONFIG_PACKAGE_lxc-auto=y +CONFIG_PACKAGE_lxc-autostart=y +CONFIG_PACKAGE_lxc-cgroup=y +CONFIG_PACKAGE_lxc-checkconfig=y +CONFIG_PACKAGE_lxc-common=y +CONFIG_PACKAGE_lxc-config=y +CONFIG_PACKAGE_lxc-configs=y +CONFIG_PACKAGE_lxc-console=y +CONFIG_PACKAGE_lxc-copy=y +CONFIG_PACKAGE_lxc-create=y +CONFIG_PACKAGE_lxc-destroy=y +CONFIG_PACKAGE_lxc-device=y +CONFIG_PACKAGE_lxc-execute=y +CONFIG_PACKAGE_lxc-freeze=y +CONFIG_PACKAGE_lxc-hooks=y +CONFIG_PACKAGE_lxc-info=y +CONFIG_PACKAGE_lxc-init=y +CONFIG_PACKAGE_lxc-ls=y +CONFIG_PACKAGE_lxc-monitor=y +CONFIG_PACKAGE_lxc-monitord=y +CONFIG_PACKAGE_lxc-snapshot=y +CONFIG_PACKAGE_lxc-start=y +CONFIG_PACKAGE_lxc-stop=y +CONFIG_PACKAGE_lxc-templates=y +CONFIG_PACKAGE_lxc-top=y +CONFIG_PACKAGE_lxc-unfreeze=y +CONFIG_PACKAGE_lxc-unprivileged=y +CONFIG_PACKAGE_lxc-unshare=y +CONFIG_PACKAGE_lxc-user-nic=y +CONFIG_PACKAGE_lxc-usernsexec=y +CONFIG_PACKAGE_lxc-wait=y +CONFIG_PACKAGE_mdadm=y +CONFIG_PACKAGE_mmc-utils=y +CONFIG_PACKAGE_mount-utils=y +CONFIG_PACKAGE_mt7921bt-firmware=y +CONFIG_PACKAGE_mt7922bt-firmware=y +CONFIG_PACKAGE_musl-fts=y +CONFIG_PACKAGE_nano-full=y +CONFIG_PACKAGE_nlbwmon=y +CONFIG_PACKAGE_ntfs-3g=y +CONFIG_PACKAGE_ntfs-3g-utils=y +CONFIG_PACKAGE_objdump=m +CONFIG_PACKAGE_openssl-util=y +CONFIG_PACKAGE_openvpn-easy-rsa=y +CONFIG_PACKAGE_openvpn-openssl=y +CONFIG_PACKAGE_parted=y +CONFIG_PACKAGE_pbr=y +CONFIG_PACKAGE_pciids=y +CONFIG_PACKAGE_pciutils=y +CONFIG_PACKAGE_perf=m +CONFIG_PACKAGE_ppp-mod-pppoa=y +CONFIG_PACKAGE_ppp-mod-pppol2tp=y +CONFIG_PACKAGE_ppp-mod-pptp=y +CONFIG_PACKAGE_pptpd=y +CONFIG_PACKAGE_qosify=y +CONFIG_PACKAGE_qrencode=y +CONFIG_PACKAGE_r8152-firmware=y +CONFIG_PACKAGE_r8169-firmware=y +CONFIG_PACKAGE_realtek-bluetooth-firmware=y +CONFIG_PACKAGE_resize2fs=y +CONFIG_PACKAGE_resolveip=y +CONFIG_PACKAGE_rpcd=y +CONFIG_PACKAGE_rpcd-mod-file=y +CONFIG_PACKAGE_rpcd-mod-iwinfo=y +CONFIG_PACKAGE_rpcd-mod-luci=y +CONFIG_PACKAGE_rpcd-mod-lxc=y +CONFIG_PACKAGE_rpcd-mod-rrdns=y +CONFIG_PACKAGE_rpcd-mod-ucode=y +CONFIG_PACKAGE_rrdtool1=y +CONFIG_PACKAGE_rtl8723bu-firmware=y +CONFIG_PACKAGE_rtl8723de-firmware=y +CONFIG_PACKAGE_rtl8821ae-firmware=y +CONFIG_PACKAGE_rtl8821ce-firmware=y +CONFIG_PACKAGE_rtl8822be-firmware=y +CONFIG_PACKAGE_rtl8822ce-firmware=y +CONFIG_PACKAGE_rtl8851be-firmware=y +CONFIG_PACKAGE_rtl8852ae-firmware=y +CONFIG_PACKAGE_rtl8852be-firmware=y +CONFIG_PACKAGE_rtl8852ce-firmware=y +CONFIG_PACKAGE_runc=y +CONFIG_PACKAGE_sfdisk=y +CONFIG_PACKAGE_shadow=y +CONFIG_PACKAGE_shadow-chage=y +CONFIG_PACKAGE_shadow-chfn=y +CONFIG_PACKAGE_shadow-chgpasswd=y +CONFIG_PACKAGE_shadow-chpasswd=y +CONFIG_PACKAGE_shadow-chsh=y +CONFIG_PACKAGE_shadow-common=y +CONFIG_PACKAGE_shadow-expiry=y +CONFIG_PACKAGE_shadow-faillog=y +CONFIG_PACKAGE_shadow-gpasswd=y +CONFIG_PACKAGE_shadow-groupadd=y +CONFIG_PACKAGE_shadow-groupdel=y +CONFIG_PACKAGE_shadow-groupmems=y +CONFIG_PACKAGE_shadow-groupmod=y +CONFIG_PACKAGE_shadow-groups=y +CONFIG_PACKAGE_shadow-grpck=y +CONFIG_PACKAGE_shadow-grpconv=y +CONFIG_PACKAGE_shadow-grpunconv=y +CONFIG_PACKAGE_shadow-lastlog=y +CONFIG_PACKAGE_shadow-login=y +CONFIG_PACKAGE_shadow-logoutd=y +CONFIG_PACKAGE_shadow-newgidmap=y +CONFIG_PACKAGE_shadow-newgrp=y +CONFIG_PACKAGE_shadow-newuidmap=y +CONFIG_PACKAGE_shadow-newusers=y +CONFIG_PACKAGE_shadow-nologin=y +CONFIG_PACKAGE_shadow-passwd=y +CONFIG_PACKAGE_shadow-pwck=y +CONFIG_PACKAGE_shadow-pwconv=y +CONFIG_PACKAGE_shadow-pwunconv=y +CONFIG_PACKAGE_shadow-su=y +CONFIG_PACKAGE_shadow-useradd=y +CONFIG_PACKAGE_shadow-userdel=y +CONFIG_PACKAGE_shadow-usermod=y +CONFIG_PACKAGE_shadow-utils=y +CONFIG_PACKAGE_shadow-vipw=y +CONFIG_PACKAGE_smartmontools=y +CONFIG_PACKAGE_smartmontools-drivedb=y +CONFIG_PACKAGE_sqm-scripts=y +CONFIG_PACKAGE_sqm-scripts-extra=y +CONFIG_PACKAGE_squashfs-tools-mksquashfs=y +CONFIG_PACKAGE_sysfsutils=y +CONFIG_PACKAGE_tc-tiny=y +CONFIG_PACKAGE_tcpdump-mini=y +CONFIG_PACKAGE_terminfo=y +CONFIG_PACKAGE_tini=y +CONFIG_PACKAGE_ttyd=y +CONFIG_PACKAGE_ucert-full=y +CONFIG_PACKAGE_ucode-mod-html=y +CONFIG_PACKAGE_ucode-mod-lua=y +CONFIG_PACKAGE_ucode-mod-math=y +CONFIG_PACKAGE_ucode-mod-nl80211=y +CONFIG_PACKAGE_ucode-mod-rtnl=y +CONFIG_PACKAGE_ucode-mod-uloop=y +CONFIG_PACKAGE_uencrypt-openssl=y +CONFIG_PACKAGE_uhttpd=y +CONFIG_PACKAGE_uhttpd-mod-ubus=y +CONFIG_PACKAGE_usb-modeswitch=y +CONFIG_PACKAGE_usbids=y +CONFIG_PACKAGE_usbutils=y +CONFIG_PACKAGE_uuidd=y +CONFIG_PACKAGE_vsftpd-tls=y +CONFIG_PACKAGE_wget-ssl=y +CONFIG_PACKAGE_wifi-scripts=y +CONFIG_PACKAGE_wireguard-tools=y +CONFIG_PACKAGE_wireless-regdb=y +CONFIG_PACKAGE_wpad-openssl=y +CONFIG_PACKAGE_wsdd2=y +CONFIG_PACKAGE_xl2tpd=y +CONFIG_PACKAGE_xtables-nft=y +CONFIG_PACKAGE_zlib=y +CONFIG_PARTED_READLINE=y +CONFIG_REPRODUCIBLE_DEBUG_INFO=y +CONFIG_SQUASHFS_TOOLS_XZ_SUPPORT=y +CONFIG_SQUASHFS_TOOLS_ZSTD_SUPPORT=y +CONFIG_TARGET_ALL_PROFILES=y +CONFIG_TARGET_OPTIONS=y +CONFIG_TARGET_ROOTFS_PARTSIZE=512 +CONFIG_ZSTD_OPTIMIZE_O3=y +CONFIG_shadow-all=y +# CONFIG_BPF_TOOLCHAIN_BUILD_LLVM is not set +CONFIG_BPF_TOOLCHAIN_PREBUILT=y +# CONFIG_COLLECT_KERNEL_DEBUG is not set +# CONFIG_IB is not set +# CONFIG_JSON_CYCLONEDX_SBOM is not set +# CONFIG_KERNEL_WERROR is not set +# CONFIG_MAKE_TOOLCHAIN is not set +# CONFIG_OPENVPN_openssl_ENABLE_SMALL is not set +# CONFIG_SDK is not set +# CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyarm_nanopi-neo3 is not set +# CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_friendlyelec_nanopi-r6c-plus is not set +# CONFIG_TARGET_DEVICE_rockchip_armv8_DEVICE_pine64_rockpro64 is not set +CONFIG_USE_LLVM_PREBUILT=y diff --git a/.github/workflows/rockchip.yaml b/.github/workflows/rockchip.yaml new file mode 100755 index 00000000000000..f4e9c362905ce7 --- /dev/null +++ b/.github/workflows/rockchip.yaml @@ -0,0 +1,95 @@ +name: Build rockchip openwrt firmware v6.6 +on: [push] + +jobs: + build: + name: Build rockchip linux v6.6 images + runs-on: ubuntu-latest + + steps: + - name: Setup Ubuntu + run: | + sudo apt update + sudo apt install -y python3 python3-pip python3-ply python3-distutils python3-pyelftools libpython3-dev swig + - name: Maximize build space + uses: AdityaGarg8/remove-unwanted-software@master + with: + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + remove-codeql: 'true' + remove-docker-images: 'true' + remove-large-packages: 'true' + remove-cached-tools: 'true' + remove-swapfile: 'true' + - name: Checkout + uses: actions/checkout@v4 + + - name: Build + run: | + ./scripts/feeds update -a + ./scripts/feeds install -a + cd feeds/luci + + wget https://gist.githubusercontent.com/mj22226/363cefecd314e45b49d8eafff8473fcf/raw/69b47c9a972e15056f94870d76d93a5146893f99/01-diskman.patch + + git apply 01-diskman.patch + cd - + cd feeds/packages + wget https://gist.githubusercontent.com/mj22226/351f11e66f08f06e37a985719a31ddb4/raw/b35ba7a3aac1949bd6bbeaad065a0a93dc3c34f0/01-cpu.patch + wget https://gist.githubusercontent.com/mj22226/b66f5c1bd5fc7e1cb3cf2c690b5dbd5a/raw/b955e726cbb0948d932c8d6143229ad604320149/20-lxc.patch + wget https://github.com/mj22226/packages/commit/37264a2e636b790df9cb037db695505341030e98.patch + + + + git apply 01-cpu.patch + git apply 20-lxc.patch + + + + + cd - + sed -i "71s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "84s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "195s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "212s/'0'/'1'/" feeds/luci/applications/luci-app-statistics/root/etc/config/luci_statistics + sed -i "13s/'1'/'0'/" feeds/packages/utils/dockerd/files/etc/config/dockerd + + ./scripts/feeds update -a + ./scripts/feeds install -a -f + wget https://downloads.openwrt.org/snapshots/targets/rockchip/armv8/llvm-bpf-18.1.7.Linux-x86_64.tar.zst + tar -xvf llvm-bpf-18.1.7.Linux-x86_64.tar.zst + cp .github/workflows/rk-config .config + make defconfig + wget https://gist.githubusercontent.com/mj22226/23edc25efeb65ef69d8eb6598f4f8179/raw/29c862e3e2558852523f4e8edd5f3d0cc145067e/01-key.patch + git apply 01-key.patch + make download -j32 + rm 01-key.patch + + + mkdir -p files/www/repo + wget https://gist.githubusercontent.com/mj22226/b55f1575d30418ca2988804c70d9cc60/raw/e3b213211d937587169def6b3d91a5e34ba26f67/04.patch + git apply 04.patch + make -j$(nproc) 'IGNORE_ERRORS=n m' + cp -R bin/targets/rockchip/armv8/packages/ files/www/repo/ + rm -rf bin/targets/rockchip/armv8/*.gz + make -j$(nproc) 'IGNORE_ERRORS=n m' + rm -rf bin/targets/rockchip/armv8/packages + echo "DATE=$(date +'%Y.%m.%d')" >> $GITHUB_ENV + echo "HASH=$(git log -1 --format="%H")" >> $GITHUB_ENV + - name: Delete tag + run: gh release delete rockchip-6.6 --cleanup-tag || true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create release + uses: ncipollo/release-action@v1.14.0 + with: + allowUpdates: true + commit: ${{ env.HASH }} + name: Rockchip v6.6 Images ${{ env.DATE }} + tag: rockchip-6.6 + replacesArtifacts: true + prerelease: false + token: "${{ secrets.GITHUB_TOKEN }}" + artifacts: bin/targets/rockchip/armv8/* + diff --git a/.github/workflows/toolchain.yml b/.github/workflows/toolchainyml similarity index 100% rename from .github/workflows/toolchain.yml rename to .github/workflows/toolchainyml diff --git a/.github/workflows/tools.yml b/.github/workflows/toolsyml similarity index 100% rename from .github/workflows/tools.yml rename to .github/workflows/toolsyml From 49d41f9b2925d37d6f3c306ef4cda91a35344327 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Tue, 25 Jun 2024 16:53:01 -0400 Subject: [PATCH 05/41] misc fixes Signed-off-by: Marty Jones --- config/Config-images.in | 3 +- feeds.conf.default | 8 +- package/base-files/Makefile | 2 - .../patches/500-world-regd-5GHz.patch | 19 ++++- ...mt7921-add-CONFIG_MT76_LEDS-to-cflag.patch | 19 +++++ .../files/usr/share/hostap/common.uc | 2 +- package/network/utils/iwinfo/patches/01.patch | 85 +++++++++++++++++++ .../bcm27xx/base-files/etc/board.d/02_network | 2 +- target/linux/bcm27xx/bcm2711/config-6.6 | 2 + target/linux/bcm27xx/bcm2712/config-6.6 | 2 +- target/linux/bcm27xx/image/config.txt | 5 ++ target/linux/bcm27xx/image/distroconfig.txt | 10 +++ 12 files changed, 147 insertions(+), 12 deletions(-) create mode 100644 package/kernel/mt76/patches/0001-mt7921-add-CONFIG_MT76_LEDS-to-cflag.patch create mode 100644 package/network/utils/iwinfo/patches/01.patch diff --git a/config/Config-images.in b/config/Config-images.in index 47f3dfc0d9603f..aa3542f3f200b9 100644 --- a/config/Config-images.in +++ b/config/Config-images.in @@ -127,7 +127,6 @@ menu "Target Images" config TARGET_EXT4_JOURNAL bool "Create a journaling filesystem" depends on TARGET_ROOTFS_EXT4FS - default y help Create an ext4 filesystem with a journal. @@ -303,7 +302,7 @@ menu "Target Images" depends on USES_ROOTFS_PART || TARGET_ROOTFS_EXT4FS default 232 if TARGET_loongarch64 default 448 if TARGET_mediatek - default 104 + default 1040 help Select the root filesystem partition size. diff --git a/feeds.conf.default b/feeds.conf.default index fc679335e0e47f..afa01cf060b14c 100644 --- a/feeds.conf.default +++ b/feeds.conf.default @@ -1,7 +1,7 @@ -src-git packages https://git.openwrt.org/feed/packages.git -src-git luci https://git.openwrt.org/project/luci.git -src-git routing https://git.openwrt.org/feed/routing.git -src-git telephony https://git.openwrt.org/feed/telephony.git +src-git packages https://github.com/openwrt/packages.git +src-git luci https://github.com/openwrt/luci.git +src-git routing https://github.com/openwrt/routing.git +src-git telephony https://github.com/openwrt/telephony.git #src-git video https://github.com/openwrt/video.git #src-git targets https://github.com/openwrt/targets.git #src-git oldpackages http://git.openwrt.org/packages.git diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 313bf377b492fe..f273896a0cc060 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -134,14 +134,12 @@ ifdef CONFIG_SIGNED_PACKAGES endef -ifndef CONFIG_BUILDBOT define Package/base-files/install-key mkdir -p $(1)/etc/opkg/keys $(CP) $(BUILD_KEY).pub $(1)/etc/opkg/keys/`$(STAGING_DIR_HOST)/bin/usign -F -p $(BUILD_KEY).pub` endef endif endif -endif ifeq ($(CONFIG_NAND_SUPPORT),) define Package/base-files/nand-support diff --git a/package/firmware/wireless-regdb/patches/500-world-regd-5GHz.patch b/package/firmware/wireless-regdb/patches/500-world-regd-5GHz.patch index 3f6d4c7e8d0112..8270ebc90951ca 100644 --- a/package/firmware/wireless-regdb/patches/500-world-regd-5GHz.patch +++ b/package/firmware/wireless-regdb/patches/500-world-regd-5GHz.patch @@ -5,7 +5,7 @@ Signed-off-by: Felix Fietkau --- --- a/db.txt +++ b/db.txt -@@ -19,7 +19,7 @@ country 00: +@@ -19,13 +19,15 @@ country 00: # Channel 14. Only JP enables this and for 802.11b only (2474 - 2494 @ 20), (20), NO-IR, NO-OFDM # Channel 36 - 48 @@ -14,3 +14,20 @@ Signed-off-by: Felix Fietkau # Channel 52 - 64 (5250 - 5330 @ 80), (20), NO-IR, DFS, AUTO-BW # Channel 100 - 144 + (5490 - 5730 @ 160), (20), NO-IR, DFS + # Channel 149 - 165 + (5735 - 5835 @ 80), (20), NO-IR ++ # Channel 1 - 223 ++ (5925 - 7125 @ 320), (12), AUTO-BW + # IEEE 802.11ad (60GHz), channels 1..3 + (57240 - 63720 @ 2160), (0) + +@@ -1736,7 +1736,7 @@ country US: DFS-FCC + (5850 - 5895 @ 40), (27), NO-OUTDOOR, AUTO-BW, NO-IR + # 6g band + # https://www.federalregister.gov/documents/2020/05/26/2020-11236/unlicensed-use-of-the-6ghz-band +- (5925 - 7125 @ 320), (12), NO-OUTDOOR, NO-IR ++ (5925 - 7125 @ 320), (12), AUTO-BW + # 60g band + # reference: section IV-D https://docs.fcc.gov/public/attachments/FCC-16-89A1.pdf + # channels 1-6 EIRP=40dBm(43dBm peak) diff --git a/package/kernel/mt76/patches/0001-mt7921-add-CONFIG_MT76_LEDS-to-cflag.patch b/package/kernel/mt76/patches/0001-mt7921-add-CONFIG_MT76_LEDS-to-cflag.patch new file mode 100644 index 00000000000000..e1ba6cd1ebdc6f --- /dev/null +++ b/package/kernel/mt76/patches/0001-mt7921-add-CONFIG_MT76_LEDS-to-cflag.patch @@ -0,0 +1,19 @@ +From 01e4bf398aa1fe10eba68f9eae8d0f683f491007 Mon Sep 17 00:00:00 2001 +From: 76 <126417504+76@users.noreply.github.com> +Date: Sat, 25 May 2024 00:36:10 +0000 +Subject: [PATCH] mt7921: add CONFIG_MT76_LEDS to cflag + +Signed-off-by: 76 <126417504+76@users.noreply.github.com> +--- + mt7921/Makefile | 1 + + 1 file changed, 1 insertion(+) + +--- a/mt7921/Makefile ++++ b/mt7921/Makefile +@@ -1,5 +1,6 @@ + # SPDX-License-Identifier: ISC + ++EXTRA_CFLAGS += -DCONFIG_MT76_LEDS + obj-$(CONFIG_MT7921_COMMON) += mt7921-common.o + obj-$(CONFIG_MT7921E) += mt7921e.o + obj-$(CONFIG_MT7921S) += mt7921s.o diff --git a/package/network/config/wifi-scripts/files/usr/share/hostap/common.uc b/package/network/config/wifi-scripts/files/usr/share/hostap/common.uc index 750e3ae71c27da..4c33779af935e1 100644 --- a/package/network/config/wifi-scripts/files/usr/share/hostap/common.uc +++ b/package/network/config/wifi-scripts/files/usr/share/hostap/common.uc @@ -49,7 +49,7 @@ function __phy_is_fullmac(phyidx) { let data = nl80211.request(nl80211.const.NL80211_CMD_GET_WIPHY, 0, { wiphy: phyidx }); - return !data.software_iftypes.monitor; + return !data.software_iftypes.ap_vlan; } function phy_is_fullmac(phy) diff --git a/package/network/utils/iwinfo/patches/01.patch b/package/network/utils/iwinfo/patches/01.patch new file mode 100644 index 00000000000000..c78e78f3bdd29c --- /dev/null +++ b/package/network/utils/iwinfo/patches/01.patch @@ -0,0 +1,85 @@ +--- a/devices.txt ++++ b/devices.txt +@@ -263,3 +263,82 @@ + "ralink,rt3883-wmac" 0 0 "Ralink" "Rt3883" + "ralink,rt5350-wmac" 0 0 "Ralink" "Rt5350" + "ralink,rt7620-wmac" 0 0 "MediaTek" "MT7620" ++ ++ ++ ++# RTL8812A ++0x0000 0x0000 0x0409 0x0408 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x0411 0x025D 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x04BB 0x0952 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x050D 0x1106 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x050D 0x1109 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x0586 0x3426 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x0789 0x016E 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x07B8 0x8812 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x0846 0x9051 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x0B05 0x17D2 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x0DF6 0x0074 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x0E66 0x0022 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x1058 0x0632 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x13B1 0x003F 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x148F 0x9097 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x1740 0x0100 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2001 0x330E 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2001 0x3313 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2001 0x3315 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2001 0x3316 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2019 0xAB30 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x20F4 0x805B 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2357 0x0101 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2357 0x0103 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2357 0x010D 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2357 0x010E 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2357 0x010F 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2357 0x0122 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x2604 0x0012 0 0 "Realtek" "RTL8812" ++0x0000 0x0000 0x7392 0xA822 0 0 "Realtek" "RTL8812" ++# RTL8814A ++0x0000 0x0000 0x0B05 0x1817 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x0B05 0x1852 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x0B05 0x1853 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x056E 0x400B 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x056E 0x400D 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x0846 0x9054 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x0E66 0x0026 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x2001 0x331A 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x20F4 0x809A 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x20F4 0x809B 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x2357 0x0106 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x7392 0xA834 0 0 "Realtek" "RTL8814A" ++0x0000 0x0000 0x7392 0xA833 0 0 "Realtek" "RTL8814A" ++# RTL8821A ++0x0000 0x0000 0x0bda 0x0811 0 0 "Realtek" "RTL8821" /* Alfa AWUS036ACS */ ++0x0000 0x0000 0x0411 0x0242 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x0411 0x029B 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x04BB 0x0953 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x056E 0x4007 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x056E 0x400E 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x056E 0x400F 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x0846 0x9052 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x0E66 0x0023 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x2001 0x3314 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x2001 0x3318 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x2019 0xAB32 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x2357 0x011E 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x2357 0x011F 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x2357 0x0120 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x3823 0x6249 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x7392 0xA811 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x7392 0xA812 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x7392 0xA813 0 0 "Realtek" "RTL8821" ++0x0000 0x0000 0x7392 0xB611 0 0 "Realtek" "RTL8821" ++ ++ ++# RTW88 USB ++0x0000 0x0000 0x2357 0x0138 0 0 "Realtek" "RTW88" /* TP-Link T3u Plus */ ++ ++##### ++ ++0x02d0 0xa9bf 0x0000 0x0000 0 0 "Broadcom" "BCM43456" ++0x14c3 0x7922 0x1A3B 0x5300 0 0 "MediaTek" "MT7922" ++0x10ec 0x8852 0x1e26 0x007f 0 0 "Realtek" "RTL8852AE" diff --git a/target/linux/bcm27xx/base-files/etc/board.d/02_network b/target/linux/bcm27xx/base-files/etc/board.d/02_network index f246139c385bd8..de2a6251e516c0 100644 --- a/target/linux/bcm27xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm27xx/base-files/etc/board.d/02_network @@ -21,7 +21,7 @@ raspberrypi,5-model-b |\ raspberrypi,model-b |\ raspberrypi,model-b-plus |\ raspberrypi,model-b-rev2) - ucidef_set_interface_lan "eth0" + ucidef_set_interfaces_lan_wan "eth0 eth2" "eth1" ;; raspberrypi,model-zero-2 |\ diff --git a/target/linux/bcm27xx/bcm2711/config-6.6 b/target/linux/bcm27xx/bcm2711/config-6.6 index 915fe29cae8f77..5aa61ff46861b9 100644 --- a/target/linux/bcm27xx/bcm2711/config-6.6 +++ b/target/linux/bcm27xx/bcm2711/config-6.6 @@ -269,6 +269,7 @@ CONFIG_HAS_IOPORT_MAP=y CONFIG_HOTPLUG_CORE_SYNC=y CONFIG_HOTPLUG_CORE_SYNC_DEAD=y CONFIG_HOTPLUG_CPU=y +CONFIG_HWMON=y CONFIG_HW_CONSOLE=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_IPROC_RNG200=y @@ -431,6 +432,7 @@ CONFIG_SCSI=y CONFIG_SCSI_COMMON=y # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_PROC_FS is not set +# CONFIG_SENSORS_RASPBERRYPI_HWMON is not set CONFIG_SERIAL_8250_BCM2835AUX=y # CONFIG_SERIAL_8250_DMA is not set CONFIG_SERIAL_8250_EXTENDED=y diff --git a/target/linux/bcm27xx/bcm2712/config-6.6 b/target/linux/bcm27xx/bcm2712/config-6.6 index f61986338b0093..c246af2dac8603 100644 --- a/target/linux/bcm27xx/bcm2712/config-6.6 +++ b/target/linux/bcm27xx/bcm2712/config-6.6 @@ -556,7 +556,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SG_POOL=y diff --git a/target/linux/bcm27xx/image/config.txt b/target/linux/bcm27xx/image/config.txt index db35d72ab7985e..1b0f4f91c0a4bd 100644 --- a/target/linux/bcm27xx/image/config.txt +++ b/target/linux/bcm27xx/image/config.txt @@ -12,3 +12,8 @@ include distroconfig.txt [all] # Place your custom settings here. +usb_max_current_enable=1 +# Enable the PCIe external connector +dtparam=pciex1 +# Force Gen 3.0 speeds +dtparam=pciex1_gen=3 diff --git a/target/linux/bcm27xx/image/distroconfig.txt b/target/linux/bcm27xx/image/distroconfig.txt index b09e5b8466f50d..d759cb582a6fcd 100644 --- a/target/linux/bcm27xx/image/distroconfig.txt +++ b/target/linux/bcm27xx/image/distroconfig.txt @@ -12,5 +12,15 @@ dtoverlay=disable-bt dtoverlay=disable-bt [pi4] dtoverlay=disable-bt +# Enable the Mini UART (ttyS0) as the console +# enable_uart=1 +# Enable Bluetooth over the PL011 (ttyAMA0) using the serial bus (serdev) +# dtparam=krnbt=on # Run as fast as firmware / board allows arm_boost=1 + +[pi5] +# Enable the Mini UART (ttyS0) as the console +enable_uart=1 +# Enable Bluetooth over the PL011 (ttyAMA0) using the serial bus (serdev) +dtparam=krnbt=on From f9b29b578ca9512df549b1f68af23bca024c2379 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Wed, 15 May 2024 02:13:33 -0400 Subject: [PATCH 06/41] revert fw_devlink=permissive Signed-off-by: Marty Jones --- ...vert-driver-core-Set-fw_devlink-on-b.patch | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch diff --git a/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch b/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch deleted file mode 100644 index 1c5fb11ff540cd..00000000000000 --- a/target/linux/generic/hack-6.6/930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Tue, 19 Jul 2022 06:17:48 +0200 -Subject: [PATCH] Revert "Revert "Revert "driver core: Set fw_devlink=on by - default""" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit ea718c699055c8566eb64432388a04974c43b2ea. - -With of_platform_populate() called for MTD partitions that commit breaks -probing devices which reference MTD in device tree. - -Link: https://lore.kernel.org/all/696cb2da-20b9-b3dd-46d9-de4bf91a1506@gmail.com/T/#u -Signed-off-by: Rafał Miłecki ---- - drivers/base/core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/base/core.c -+++ b/drivers/base/core.c -@@ -1657,7 +1657,7 @@ static void device_links_purge(struct de - #define FW_DEVLINK_FLAGS_RPM (FW_DEVLINK_FLAGS_ON | \ - DL_FLAG_PM_RUNTIME) - --static u32 fw_devlink_flags = FW_DEVLINK_FLAGS_ON; -+static u32 fw_devlink_flags = FW_DEVLINK_FLAGS_PERMISSIVE; - static int __init fw_devlink_setup(char *arg) - { - if (!arg) From 4328bd3739cde27136ae7502ab4527a76050adbb Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sun, 9 Jun 2024 13:14:58 -0400 Subject: [PATCH 07/41] kernel: add new 6.6 kernel symbols Signed-off-by: Marty Jones --- target/linux/generic/config-6.6 | 207 ++++++++++++++++++++++++++++++-- 1 file changed, 197 insertions(+), 10 deletions(-) diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6 index 20fe98099f286b..c6acff2e803dfe 100644 --- a/target/linux/generic/config-6.6 +++ b/target/linux/generic/config-6.6 @@ -122,6 +122,7 @@ CONFIG_32BIT=y # CONFIG_ADT7316 is not set # CONFIG_ADUX1020 is not set CONFIG_ADVISE_SYSCALLS=y +# CONFIG_ADV_SWBUTTON is not set # CONFIG_ADXL313_I2C is not set # CONFIG_ADXL313_SPI is not set # CONFIG_ADXL345_I2C is not set @@ -191,6 +192,7 @@ CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_APDS9960 is not set # CONFIG_APM8018X is not set # CONFIG_APM_EMULATION is not set +# CONFIG_APPLE_AIC is not set # CONFIG_APPLE_GMUX is not set # CONFIG_APPLE_MFI_FASTCHARGE is not set # CONFIG_APPLE_PROPERTIES is not set @@ -217,6 +219,7 @@ CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_ARCH_BCM_281XX is not set # CONFIG_ARCH_BCM_5301X is not set # CONFIG_ARCH_BCM_53573 is not set +# CONFIG_ARCH_BCM_63XX is not set # CONFIG_ARCH_BCM_CYGNUS is not set # CONFIG_ARCH_BCM_HR2 is not set # CONFIG_ARCH_BCM_IPROC is not set @@ -226,7 +229,9 @@ CONFIG_ARCH_BINFMT_ELF_STATE=y # CONFIG_ARCH_BITMAIN is not set # CONFIG_ARCH_BRCMSTB is not set # CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE is not set # CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG is not set # CONFIG_ARCH_DIGICOLOR is not set # CONFIG_ARCH_DMA_ADDR_T_64BIT is not set # CONFIG_ARCH_DOVE is not set @@ -252,6 +257,7 @@ CONFIG_ARCH_FORCE_MAX_ORDER=11 # CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_MEDIATEK is not set # CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE is not set # CONFIG_ARCH_MILBEAUT is not set CONFIG_ARCH_MMAP_RND_BITS=8 CONFIG_ARCH_MMAP_RND_BITS_MAX=16 @@ -293,6 +299,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_SEATTLE is not set # CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_SOCFPGA is not set # CONFIG_ARCH_SPARX5 is not set # CONFIG_ARCH_SPRD is not set # CONFIG_ARCH_STI is not set @@ -310,6 +317,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARCH_VIRT is not set # CONFIG_ARCH_VISCONTI is not set # CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_WANTS_NO_INSTR is not set # CONFIG_ARCH_WANTS_THP_SWAP is not set # CONFIG_ARCH_WM8505 is not set # CONFIG_ARCH_WM8750 is not set @@ -321,10 +329,12 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARC_EMAC is not set # CONFIG_ARC_IRQ_NO_AUTOSAVE is not set # CONFIG_ARM64_16K_PAGES is not set +# CONFIG_ARM64_4K_PAGES is not set # CONFIG_ARM64_64K_PAGES is not set # CONFIG_ARM64_AMU_EXTN is not set # CONFIG_ARM64_BTI is not set # CONFIG_ARM64_E0PD is not set +# CONFIG_ARM64_EPAN is not set # CONFIG_ARM64_ERRATUM_1024718 is not set # CONFIG_ARM64_ERRATUM_1165522 is not set # CONFIG_ARM64_ERRATUM_1286807 is not set @@ -361,6 +371,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 # CONFIG_ARM64_PMEM is not set # CONFIG_ARM64_PSEUDO_NMI is not set # CONFIG_ARM64_PTR_AUTH is not set +# CONFIG_ARM64_PTR_AUTH_KERNEL is not set # CONFIG_ARM64_RAS_EXTN is not set # CONFIG_ARM64_RELOC_TEST is not set # CONFIG_ARM64_SME is not set @@ -368,9 +379,11 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARM64_SW_TTBR0_PAN=y # CONFIG_ARM64_TLB_RANGE is not set # CONFIG_ARM64_USE_LSE_ATOMICS is not set +# CONFIG_ARM64_VA_BITS_39 is not set # CONFIG_ARM64_VA_BITS_48 is not set # CONFIG_ARM_APPENDED_DTB is not set # CONFIG_ARM_ARCH_TIMER is not set +# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set # CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set # CONFIG_ARM_CCI is not set # CONFIG_ARM_CCI400_PMU is not set @@ -412,6 +425,7 @@ CONFIG_ARM_DMA_MEM_BUFFERABLE=y # CONFIG_ARM_ERRATA_857272 is not set # CONFIG_ARM_FFA_TRANSPORT is not set CONFIG_ARM_GIC_MAX_NR=1 +# CONFIG_ARM_GT_INITIAL_PRESCALER_VAL is not set # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set # CONFIG_ARM_KPROBES_TEST is not set # CONFIG_ARM_LPAE is not set @@ -424,7 +438,9 @@ CONFIG_ARM_MODULE_PLTS=y # CONFIG_ARM_PSCI_CPUIDLE is not set # CONFIG_ARM_PTDUMP_DEBUGFS is not set # CONFIG_ARM_SBSA_WATCHDOG is not set +# CONFIG_ARM_SCMI_POWER_CONTROL is not set # CONFIG_ARM_SCMI_PROTOCOL is not set +# CONFIG_ARM_SCMI_RAW_MODE_SUPPORT is not set # CONFIG_ARM_SCPI_PROTOCOL is not set # CONFIG_ARM_SDE_INTERFACE is not set # CONFIG_ARM_SMCCC_SOC_ID is not set @@ -540,6 +556,7 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_BACKLIGHT_PANDORA is not set # CONFIG_BACKLIGHT_PWM is not set # CONFIG_BACKLIGHT_QCOM_WLED is not set +# CONFIG_BACKLIGHT_RPI is not set # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_BACKTRACE_VERBOSE is not set @@ -569,6 +586,7 @@ CONFIG_BASE_SMALL=0 # CONFIG_BAYCOM_SER_FDX is not set # CONFIG_BAYCOM_SER_HDX is not set # CONFIG_BCACHE is not set +# CONFIG_BCM2712_MIP is not set # CONFIG_BCM47XX is not set # CONFIG_BCM54140_PHY is not set # CONFIG_BCM63XX is not set @@ -580,6 +598,7 @@ CONFIG_BASE_SMALL=0 # CONFIG_BCM84881_PHY is not set # CONFIG_BCM87XX_PHY is not set # CONFIG_BCMA is not set +# CONFIG_BCMASP is not set # CONFIG_BCMA_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y # CONFIG_BCMGENET is not set @@ -612,6 +631,7 @@ CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_BSG_COMMON is not set # CONFIG_BLK_DEV_COW_COMMON is not set # CONFIG_BLK_DEV_DM is not set # CONFIG_BLK_DEV_DRBD is not set @@ -761,6 +781,7 @@ CONFIG_BT_HCIUART_H4=y # CONFIG_BT_HCIUART_RTL is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_HIDP is not set +# CONFIG_BT_HS is not set # CONFIG_BT_LE is not set # CONFIG_BT_LEDS is not set CONFIG_BT_LE_L2CAP_ECRED=y @@ -773,10 +794,13 @@ CONFIG_BT_LE_L2CAP_ECRED=y CONFIG_BT_RFCOMM_TTY=y # CONFIG_BT_SELFTEST is not set # CONFIG_BT_VIRTIO is not set +# CONFIG_BUFFER_HEAD is not set CONFIG_BUG=y # CONFIG_BUG_ON_DATA_CORRUPTION is not set CONFIG_BUILDTIME_TABLE_SORT=y +# CONFIG_BUILD_BIN2C is not set CONFIG_BUILD_SALT="" +# CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC is not set # CONFIG_C2PORT is not set # CONFIG_CACHESTAT_SYSCALL is not set CONFIG_CACHE_L2X0_PMU=y @@ -862,6 +886,7 @@ CONFIG_CFG80211_HEADERS=y # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_QCOM_SMB2 is not set # CONFIG_CHARGER_QCOM_SMBB is not set +# CONFIG_CHARGER_RK817 is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_RT9467 is not set # CONFIG_CHARGER_RT9471 is not set @@ -905,6 +930,7 @@ CONFIG_CLS_U32_MARK=y # CONFIG_CM3605 is not set # CONFIG_CM36651 is not set # CONFIG_CMA is not set +# CONFIG_CMA_SYSFS is not set CONFIG_CMDLINE="" # CONFIG_CMDLINE_BOOL is not set # CONFIG_CMDLINE_EXTEND is not set @@ -922,6 +948,7 @@ CONFIG_CMDLINE="" # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_IPROC is not set +# CONFIG_COMMON_CLK_LAN966X is not set # CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_MEDIATEK_FHCTL is not set # CONFIG_COMMON_CLK_MT6765 is not set @@ -939,6 +966,10 @@ CONFIG_CMDLINE="" # CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_QCOM is not set +# CONFIG_COMMON_CLK_RK808 is not set +# CONFIG_COMMON_CLK_ROCKCHIP is not set +# CONFIG_COMMON_CLK_RP1 is not set +# CONFIG_COMMON_CLK_RP1_SDIO is not set # CONFIG_COMMON_CLK_RS9_PCIE is not set # CONFIG_COMMON_CLK_SI514 is not set # CONFIG_COMMON_CLK_SI521XX is not set @@ -954,6 +985,8 @@ CONFIG_CMDLINE="" CONFIG_COMPACTION=y # CONFIG_COMPAL_LAPTOP is not set # CONFIG_COMPAT is not set +# CONFIG_COMPAT_32BIT_TIME is not set +# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set # CONFIG_COMPAT_BRK is not set # CONFIG_COMPILE_TEST is not set # CONFIG_CONFIGFS_FS is not set @@ -1015,8 +1048,8 @@ CONFIG_CRC32_SARWATE=y # CONFIG_CRC_CCITT is not set # CONFIG_CRC_ITU_T is not set # CONFIG_CRC_T10DIF is not set -# CONFIG_CROS_HPS_I2C is not set # CONFIG_CROSS_MEMORY_ATTACH is not set +# CONFIG_CROS_HPS_I2C is not set CONFIG_CRYPTO=y # CONFIG_CRYPTO_842 is not set CONFIG_CRYPTO_ACOMP2=y @@ -1044,6 +1077,7 @@ CONFIG_CRYPTO_ALGAPI2=y # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_ANUBIS is not set # CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S is not set # CONFIG_CRYPTO_ARIA is not set # CONFIG_CRYPTO_AUTHENC is not set # CONFIG_CRYPTO_BLAKE2B is not set @@ -1129,6 +1163,7 @@ CONFIG_CRYPTO_CTR=y # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_FIPS is not set CONFIG_CRYPTO_GCM=y +# CONFIG_CRYPTO_GENIV is not set CONFIG_CRYPTO_GHASH=y # CONFIG_CRYPTO_GHASH_ARM64_CE is not set # CONFIG_CRYPTO_GHASH_ARM_CE is not set @@ -1188,6 +1223,7 @@ CONFIG_CRYPTO_PCRYPT=y # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA256_ARM is not set # CONFIG_CRYPTO_SHA256_ARM64 is not set +# CONFIG_CRYPTO_SHA256_SSSE3 is not set # CONFIG_CRYPTO_SHA2_ARM64_CE is not set # CONFIG_CRYPTO_SHA2_ARM_CE is not set # CONFIG_CRYPTO_SHA3 is not set @@ -1235,6 +1271,7 @@ CONFIG_CRYPTO_SKCIPHER2=y # CONFIG_CS89x0 is not set # CONFIG_CS89x0_PLATFORM is not set # CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# CONFIG_CURRENT_POINTER_IN_TPIDRURO is not set # CONFIG_CUSE is not set # CONFIG_CW1200 is not set # CONFIG_CXD2880_SPI_DRV is not set @@ -1378,6 +1415,7 @@ CONFIG_DEVPORT=y # CONFIG_DMARD10 is not set # CONFIG_DMATEST is not set # CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC is not set CONFIG_DMA_COHERENT_POOL=y CONFIG_DMA_DECLARE_COHERENT=y # CONFIG_DMA_ENGINE is not set @@ -1385,6 +1423,7 @@ CONFIG_DMA_DECLARE_COHERENT=y # CONFIG_DMA_JZ4780 is not set # CONFIG_DMA_MAP_BENCHMARK is not set CONFIG_DMA_NONCOHERENT_MMAP=y +# CONFIG_DMA_NUMA_CMA is not set # CONFIG_DMA_RESTRICTED_POOL is not set # CONFIG_DMA_SHARED_BUFFER is not set # CONFIG_DM_CACHE is not set @@ -1453,7 +1492,9 @@ CONFIG_DQL=y # CONFIG_DRM_DP_AUX_CHARDEV is not set # CONFIG_DRM_DP_CEC is not set # CONFIG_DRM_DW_HDMI_CEC is not set +# CONFIG_DRM_DW_HDMI_GP_AUDIO is not set # CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_EXEC is not set # CONFIG_DRM_EXYNOS is not set # CONFIG_DRM_FBDEV_EMULATION is not set # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set @@ -1470,6 +1511,11 @@ CONFIG_DQL=y # CONFIG_DRM_I2C_NXP_TDA998X is not set # CONFIG_DRM_I2C_SIL164 is not set # CONFIG_DRM_I915 is not set +# CONFIG_DRM_I915_REQUEST_TIMEOUT is not set +# CONFIG_DRM_IMX8QM_LDB is not set +# CONFIG_DRM_IMX8QXP_LDB is not set +# CONFIG_DRM_IMX8QXP_PIXEL_COMBINER is not set +# CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI is not set # CONFIG_DRM_IMX_LCDIF is not set # CONFIG_DRM_ITE_IT6505 is not set # CONFIG_DRM_ITE_IT66121 is not set @@ -1510,6 +1556,7 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set +# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set # CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set @@ -1527,8 +1574,8 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set # CONFIG_DRM_PANEL_MIPI_DBI is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set -# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set # CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set +# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set # CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set @@ -1573,10 +1620,12 @@ CONFIG_DQL=y # CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set # CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set # CONFIG_DRM_PANEL_TPO_TPG110 is not set +# CONFIG_DRM_PANEL_TPO_Y17P is not set # CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set # CONFIG_DRM_PANEL_VISIONOX_R66451 is not set # CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set # CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set +# CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN is not set # CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set # CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set # CONFIG_DRM_PANFROST is not set @@ -1591,6 +1640,9 @@ CONFIG_DQL=y # CONFIG_DRM_RCAR_USE_LVDS is not set # CONFIG_DRM_RCAR_USE_MIPI_DSI is not set # CONFIG_DRM_ROCKCHIP is not set +# CONFIG_DRM_RP1_DPI is not set +# CONFIG_DRM_RP1_DSI is not set +# CONFIG_DRM_RP1_VEC is not set # CONFIG_DRM_SAMSUNG_DSIM is not set # CONFIG_DRM_SII902X is not set # CONFIG_DRM_SII9234 is not set @@ -1616,6 +1668,7 @@ CONFIG_DQL=y # CONFIG_DRM_TOSHIBA_TC358775 is not set # CONFIG_DRM_TVE200 is not set # CONFIG_DRM_UDL is not set +# CONFIG_DRM_USE_DYNAMIC_DEBUG is not set # CONFIG_DRM_V3D is not set # CONFIG_DRM_VBOXVIDEO is not set # CONFIG_DRM_VC4_HDMI_CEC is not set @@ -1838,6 +1891,7 @@ CONFIG_ETHERNET=y CONFIG_ETHTOOL_NETLINK=y CONFIG_EVENTFD=y # CONFIG_EVM is not set +# CONFIG_EXCLUSIVE_SYSTEM_RAM is not set # CONFIG_EXFAT_FS is not set CONFIG_EXPERT=y CONFIG_EXPORTFS=y @@ -1906,9 +1960,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_FB_CFB_IMAGEBLIT is not set # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set # CONFIG_FB_CIRRUS is not set +# CONFIG_FB_CORE is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_DA8XX is not set # CONFIG_FB_DDC is not set +# CONFIG_FB_DEFERRED_IO is not set # CONFIG_FB_DEVICE is not set # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_FSL_DIU is not set @@ -1919,6 +1975,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_IMX is not set +# CONFIG_FB_IOMEM_HELPERS is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_LITTLE_ENDIAN is not set @@ -1940,6 +1997,7 @@ CONFIG_FB_NOTIFY=y # CONFIG_FB_PXA is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_RIVA is not set +# CONFIG_FB_RPISENSE is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set @@ -2016,6 +2074,7 @@ CONFIG_FLATMEM_MANUAL=y # CONFIG_FONT_6x8 is not set # CONFIG_FONT_TER16x32 is not set # CONFIG_FORCEDETH is not set +# CONFIG_FORCE_MAX_ZONEORDER is not set # CONFIG_FORCE_NR_CPUS is not set CONFIG_FORTIFY_SOURCE=y # CONFIG_FPGA is not set @@ -2024,6 +2083,7 @@ CONFIG_FORTIFY_SOURCE=y # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set # CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set # CONFIG_FRAME_POINTER is not set +# CONFIG_FRAME_WARN is not set # CONFIG_FREEZER is not set # CONFIG_FSCACHE is not set # CONFIG_FSI is not set @@ -2057,6 +2117,8 @@ CONFIG_FSNOTIFY=y # CONFIG_FUJITSU_ES is not set # CONFIG_FUJITSU_LAPTOP is not set # CONFIG_FUJITSU_TABLET is not set +# CONFIG_FUNCTION_ALIGNMENT is not set +# CONFIG_FUNCTION_ALIGNMENT_4B is not set # CONFIG_FUNCTION_ERROR_INJECTION is not set # CONFIG_FUNCTION_GRAPH_RETVAL is not set # CONFIG_FUNCTION_TRACER is not set @@ -2068,6 +2130,7 @@ CONFIG_FSNOTIFY=y # CONFIG_FUSION_SPI is not set CONFIG_FUTEX=y CONFIG_FUTEX_PI=y +# CONFIG_FWNODE_MDIO is not set # CONFIG_FW_CFG_SYSFS is not set # CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set CONFIG_FW_LOADER=y @@ -2084,7 +2147,9 @@ CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_GACT_PROB=y # CONFIG_GADGET_UAC1 is not set # CONFIG_GAMEPORT is not set +CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y # CONFIG_GCC_PLUGINS is not set +# CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS is not set # CONFIG_GCOV is not set # CONFIG_GCOV_KERNEL is not set # CONFIG_GDB_SCRIPTS is not set @@ -2097,8 +2162,12 @@ CONFIG_GENERIC_HWEIGHT=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set CONFIG_GENERIC_IRQ_IPI=y CONFIG_GENERIC_IRQ_PROBE=y +# CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED is not set CONFIG_GENERIC_NET_UTILS=y # CONFIG_GENERIC_PHY is not set +# CONFIG_GENERIC_PINCONF is not set +# CONFIG_GENERIC_PINCTRL_GROUPS is not set +# CONFIG_GENERIC_PINMUX_FUNCTIONS is not set CONFIG_GENERIC_PTDUMP=y CONFIG_GENERIC_VDSO_TIME_NS=y # CONFIG_GENEVE is not set @@ -2171,8 +2240,10 @@ CONFIG_GPIOLIB_FASTPATH_LIMIT=512 # CONFIG_GPIO_PCI_IDIO_16 is not set # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_PL061 is not set +# CONFIG_GPIO_PWM is not set # CONFIG_GPIO_RCAR is not set # CONFIG_GPIO_RDC321X is not set +# CONFIG_GPIO_ROCKCHIP is not set # CONFIG_GPIO_SAMA5D2_PIOBU is not set # CONFIG_GPIO_SCH is not set # CONFIG_GPIO_SCH311X is not set @@ -2204,6 +2275,7 @@ CONFIG_GPIO_SYSFS=y CONFIG_HARDENED_USERCOPY=y CONFIG_HARDEN_BRANCH_HISTORY=y # CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_HAS_IOPORT is not set # CONFIG_HAVE_ARM_ARCH_TIMER is not set # CONFIG_HCALL_STATS is not set # CONFIG_HDC100X is not set @@ -2363,8 +2435,11 @@ CONFIG_HIGH_RES_TIMERS=y # CONFIG_HOSTAP_CS is not set # CONFIG_HOSTAP_PCI is not set # CONFIG_HOSTAP_PLX is not set +# CONFIG_HOTPLUG_CORE_SYNC is not set +# CONFIG_HOTPLUG_CORE_SYNC_DEAD is not set # CONFIG_HOTPLUG_CPU is not set # CONFIG_HOTPLUG_PCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set # CONFIG_HP03 is not set # CONFIG_HP206C is not set CONFIG_HPET_MMAP_DEFAULT=y @@ -2538,6 +2613,7 @@ CONFIG_HZ_100=y # CONFIG_ICP10100 is not set # CONFIG_ICPLUS_PHY is not set # CONFIG_ICS932S401 is not set +# CONFIG_IDE is not set # CONFIG_IDEAPAD_LAPTOP is not set # CONFIG_IDLE_PAGE_TRACKING is not set # CONFIG_IEEE802154 is not set @@ -2549,6 +2625,7 @@ CONFIG_HZ_100=y # CONFIG_IFB is not set # CONFIG_IGB is not set # CONFIG_IGBVF is not set +# CONFIG_IGB_HWMON is not set # CONFIG_IGC is not set # CONFIG_IIO is not set # CONFIG_IIO_BUFFER is not set @@ -2564,6 +2641,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_IIO_KX022A_SPI is not set # CONFIG_IIO_MUX is not set # CONFIG_IIO_RESCALE is not set +# CONFIG_IIO_SCMI is not set # CONFIG_IIO_SIMPLE_DUMMY is not set # CONFIG_IIO_SSP_SENSORHUB is not set # CONFIG_IIO_ST_ACCEL_3AXIS is not set @@ -2587,6 +2665,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 # CONFIG_IMX8QXP_ADC is not set # CONFIG_IMX93_ADC is not set # CONFIG_IMX_IPUV3_CORE is not set +# CONFIG_IMX_MU_MSI is not set # CONFIG_IMX_THERMAL is not set # CONFIG_INA2XX_ADC is not set # CONFIG_INDIRECT_PIO is not set @@ -2715,6 +2794,7 @@ CONFIG_INPUT_MISC=y # CONFIG_INTEL_SOC_PMIC is not set # CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set # CONFIG_INTEL_SOC_PMIC_CHTWC is not set +# CONFIG_INTEL_TCC_COOLING is not set # CONFIG_INTEL_TH is not set # CONFIG_INTEL_VBTN is not set # CONFIG_INTEL_XWAY_PHY is not set @@ -2725,6 +2805,9 @@ CONFIG_INPUT_MISC=y # CONFIG_INV_MPU6050_I2C is not set # CONFIG_INV_MPU6050_IIO is not set # CONFIG_INV_MPU6050_SPI is not set +# CONFIG_IOMMUFD is not set +# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set +# CONFIG_IOMMU_IO_PGTABLE_DART is not set # CONFIG_IOMMU_SUPPORT is not set # CONFIG_IONIC is not set # CONFIG_IOSCHED_BFQ is not set @@ -2969,6 +3052,8 @@ CONFIG_KERNFS=y # CONFIG_KEY_DH_OPERATIONS is not set # CONFIG_KFENCE is not set # CONFIG_KGDB is not set +# CONFIG_KMAP_LOCAL is not set +# CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY is not set # CONFIG_KMX61 is not set # CONFIG_KPROBES is not set # CONFIG_KPROBES_SANITY_TEST is not set @@ -3191,7 +3276,9 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 # CONFIG_MACH_NINTENDO64 is not set # CONFIG_MACH_PIC32 is not set # CONFIG_MACH_REALTEK_RTL is not set +# CONFIG_MACH_TX39XX is not set # CONFIG_MACH_TX49XX is not set +# CONFIG_MACH_VR41XX is not set # CONFIG_MACINTOSH_DRIVERS is not set # CONFIG_MACSEC is not set # CONFIG_MACVLAN is not set @@ -3408,6 +3495,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_PM8XXX is not set # CONFIG_MFD_QCOM_PM8008 is not set +# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RETU is not set @@ -3417,6 +3505,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_ROHM_BD71828 is not set # CONFIG_MFD_ROHM_BD718XX is not set # CONFIG_MFD_ROHM_BD957XMUF is not set +# CONFIG_MFD_RP1 is not set +# CONFIG_MFD_RPISENSE_CORE is not set # CONFIG_MFD_RSMU_I2C is not set # CONFIG_MFD_RSMU_SPI is not set # CONFIG_MFD_RT4831 is not set @@ -3424,6 +3514,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_RT5120 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SIMPLE_MFD_I2C is not set # CONFIG_MFD_SKY81452 is not set # CONFIG_MFD_SL28CPLD is not set # CONFIG_MFD_SM501 is not set @@ -3475,6 +3566,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MICROCHIP_T1S_PHY is not set # CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set +# CONFIG_MICROSOFT_MANA is not set # CONFIG_MIGRATION is not set CONFIG_MII=y # CONFIG_MIKROTIK is not set @@ -3488,6 +3580,7 @@ CONFIG_MII=y # CONFIG_MIPS_CDMM is not set # CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set # CONFIG_MIPS_CMDLINE_FROM_DTB is not set +# CONFIG_MIPS_CMP is not set # CONFIG_MIPS_COBALT is not set # CONFIG_MIPS_CPS is not set # CONFIG_MIPS_ELF_APPENDED_DTB is not set @@ -3513,6 +3606,7 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_MISDN_SPEEDFAX is not set # CONFIG_MISDN_W6692 is not set CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y +# CONFIG_MITIGATION_RFDS is not set # CONFIG_MKISS is not set # CONFIG_MLX4_CORE is not set # CONFIG_MLX4_EN is not set @@ -3542,6 +3636,7 @@ CONFIG_MMC_BLOCK_MINORS=8 # CONFIG_MMC_CQHCI is not set # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_DW is not set +# CONFIG_MMC_DW_ROCKCHIP is not set # CONFIG_MMC_HSQ is not set # CONFIG_MMC_JZ4740 is not set # CONFIG_MMC_MTK is not set @@ -3581,6 +3676,7 @@ CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMU=y CONFIG_MMU_GATHER_RCU_TABLE_FREE=y CONFIG_MMU_GATHER_TABLE_FREE=y +# CONFIG_MMU_LAZY_TLB_REFCOUNT is not set CONFIG_MODPROBE_PATH="/sbin/modprobe" CONFIG_MODULES=y # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set @@ -3790,6 +3886,7 @@ CONFIG_MTD_SPLIT_SUPPORT=y # CONFIG_MTD_UBI_NVMEM is not set # CONFIG_MTD_VIRT_CONCAT is not set # CONFIG_MTK_DEVAPC is not set +# CONFIG_MTK_MMC is not set # CONFIG_MTK_MMSYS is not set # CONFIG_MTK_T7XX is not set # CONFIG_MTK_THERMAL is not set @@ -3817,6 +3914,7 @@ CONFIG_MULTIUSER=y # CONFIG_NCN26000_PHY is not set # CONFIG_NE2000 is not set # CONFIG_NE2K_PCI is not set +# CONFIG_NEED_SG_DMA_FLAGS is not set CONFIG_NET=y # CONFIG_NETCONSOLE is not set # CONFIG_NETCONSOLE_EXTENDED_LOG is not set @@ -3907,6 +4005,7 @@ CONFIG_NETDEVICES=y # CONFIG_NETFILTER_XT_TARGET_TPROXY is not set # CONFIG_NETFILTER_XT_TARGET_TRACE is not set # CONFIG_NETFS_STATS is not set +# CONFIG_NETFS_SUPPORT is not set # CONFIG_NETLABEL is not set # CONFIG_NETLINK_DIAG is not set # CONFIG_NETPOLL is not set @@ -3959,6 +4058,8 @@ CONFIG_NET_CORE=y # CONFIG_NET_DSA_MSCC_OCELOT_EXT is not set # CONFIG_NET_DSA_MSCC_SEVILLE is not set # CONFIG_NET_DSA_MT7530 is not set +# CONFIG_NET_DSA_MT7530_MDIO is not set +# CONFIG_NET_DSA_MT7530_MMIO is not set # CONFIG_NET_DSA_MV88E6060 is not set # CONFIG_NET_DSA_MV88E6XXX is not set # CONFIG_NET_DSA_MV88E6XXX_PTP is not set @@ -3974,6 +4075,7 @@ CONFIG_NET_CORE=y # CONFIG_NET_DSA_TAG_BRCM_LEGACY is not set # CONFIG_NET_DSA_TAG_BRCM_PREPEND is not set # CONFIG_NET_DSA_TAG_DSA is not set +# CONFIG_NET_DSA_TAG_DSA_COMMON is not set # CONFIG_NET_DSA_TAG_EDSA is not set # CONFIG_NET_DSA_TAG_GSWIP is not set # CONFIG_NET_DSA_TAG_HELLCREEK is not set @@ -3995,6 +4097,7 @@ CONFIG_NET_CORE=y # CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set # CONFIG_NET_DSA_XRS700X_I2C is not set # CONFIG_NET_DSA_XRS700X_MDIO is not set +# CONFIG_NET_EGRESS is not set # CONFIG_NET_EMATCH is not set # CONFIG_NET_EMATCH_CANID is not set # CONFIG_NET_EMATCH_CMP is not set @@ -4009,6 +4112,7 @@ CONFIG_NET_EMATCH_STACK=32 # CONFIG_NET_FOU is not set # CONFIG_NET_FOU_IP_TUNNELS is not set # CONFIG_NET_IFE is not set +# CONFIG_NET_INGRESS is not set # CONFIG_NET_IPGRE is not set CONFIG_NET_IPGRE_BROADCAST=y # CONFIG_NET_IPGRE_DEMUX is not set @@ -4078,7 +4182,7 @@ CONFIG_NET_VENDOR_AMAZON=y CONFIG_NET_VENDOR_AMD=y CONFIG_NET_VENDOR_AQUANTIA=y CONFIG_NET_VENDOR_ARC=y -# CONFIG_NET_VENDOR_ASIX is not set +CONFIG_NET_VENDOR_ASIX=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_NET_VENDOR_BROADCOM=y CONFIG_NET_VENDOR_BROCADE=y @@ -4092,25 +4196,25 @@ CONFIG_NET_VENDOR_DAVICOM=y CONFIG_NET_VENDOR_DEC=y CONFIG_NET_VENDOR_DLINK=y CONFIG_NET_VENDOR_EMULEX=y -# CONFIG_NET_VENDOR_ENGLEDER is not set +CONFIG_NET_VENDOR_ENGLEDER=y CONFIG_NET_VENDOR_EZCHIP=y CONFIG_NET_VENDOR_FARADAY=y CONFIG_NET_VENDOR_FREESCALE=y CONFIG_NET_VENDOR_FUJITSU=y -# CONFIG_NET_VENDOR_FUNGIBLE is not set +CONFIG_NET_VENDOR_FUNGIBLE=y CONFIG_NET_VENDOR_GOOGLE=y CONFIG_NET_VENDOR_HISILICON=y CONFIG_NET_VENDOR_HUAWEI=y CONFIG_NET_VENDOR_I825XX=y CONFIG_NET_VENDOR_IBM=y CONFIG_NET_VENDOR_INTEL=y -# CONFIG_NET_VENDOR_LITEX is not set +CONFIG_NET_VENDOR_LITEX=y CONFIG_NET_VENDOR_MARVELL=y CONFIG_NET_VENDOR_MELLANOX=y CONFIG_NET_VENDOR_MICREL=y CONFIG_NET_VENDOR_MICROCHIP=y CONFIG_NET_VENDOR_MICROSEMI=y -# CONFIG_NET_VENDOR_MICROSOFT is not set +CONFIG_NET_VENDOR_MICROSOFT=y CONFIG_NET_VENDOR_MYRI=y CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NET_VENDOR_NETERION=y @@ -4147,6 +4251,7 @@ CONFIG_NET_VENDOR_XILINX=y CONFIG_NET_VENDOR_XIRCOM=y # CONFIG_NET_VRF is not set # CONFIG_NET_XGENE is not set +# CONFIG_NET_XGRESS is not set CONFIG_NEW_LEDS=y # CONFIG_NFC is not set # CONFIG_NFP is not set @@ -4248,6 +4353,8 @@ CONFIG_NF_TABLES_NETDEV=y # CONFIG_NI_XGE_MANAGEMENT_ENET is not set CONFIG_NLATTR=y # CONFIG_NLMON is not set +# CONFIG_NLM_XLP_BOARD is not set +# CONFIG_NLM_XLR_BOARD is not set # CONFIG_NLS is not set # CONFIG_NLS_ASCII is not set # CONFIG_NLS_CODEPAGE_1250 is not set @@ -4308,6 +4415,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NO_HZ is not set # CONFIG_NO_HZ_FULL is not set # CONFIG_NO_HZ_IDLE is not set +# CONFIG_NR_CPUS is not set # CONFIG_NS83820 is not set # CONFIG_NTB is not set # CONFIG_NTFS3_64BIT_CLUSTER is not set @@ -4327,6 +4435,8 @@ CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NVMEM_IMX_OCOTP is not set # CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set # CONFIG_NVMEM_LAYOUT_SL28_VPD is not set +# CONFIG_NVMEM_NINTENDO_OTP is not set +# CONFIG_NVMEM_RASPBERRYPI_OTP is not set # CONFIG_NVMEM_REBOOT_MODE is not set # CONFIG_NVMEM_RMEM is not set # CONFIG_NVMEM_SYSFS is not set @@ -4362,6 +4472,7 @@ CONFIG_OF_RESERVED_MEM=y # CONFIG_OPEN_DICE is not set # CONFIG_OPT3001 is not set # CONFIG_OPT4001 is not set +CONFIG_OPTIMIZE_INLINING=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ORION_WATCHDOG is not set # CONFIG_OSF_PARTITION is not set @@ -4389,6 +4500,7 @@ CONFIG_PACKET=y CONFIG_PAGE_SIZE_4KB=y # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_PAGE_SIZE_8KB is not set +# CONFIG_PAGE_SIZE_LESS_THAN_64KB is not set # CONFIG_PAGE_TABLE_CHECK is not set # CONFIG_PALMAS_GPADC is not set # CONFIG_PANASONIC_LAPTOP is not set @@ -4482,6 +4594,8 @@ CONFIG_PCIE_BUS_DEFAULT=y # CONFIG_PCIE_CADENCE_HOST is not set # CONFIG_PCIE_CADENCE_PLAT_HOST is not set # CONFIG_PCIE_DPC is not set +# CONFIG_PCIE_DW is not set +# CONFIG_PCIE_DW_HOST is not set # CONFIG_PCIE_DW_PLAT is not set # CONFIG_PCIE_DW_PLAT_HOST is not set # CONFIG_PCIE_ECRC is not set @@ -4491,6 +4605,7 @@ CONFIG_PCIE_BUS_DEFAULT=y # CONFIG_PCIE_MEDIATEK_GEN3 is not set # CONFIG_PCIE_MICROCHIP_HOST is not set # CONFIG_PCIE_PTM is not set +# CONFIG_PCIE_ROCKCHIP_DW_HOST is not set # CONFIG_PCIE_XILINX is not set # CONFIG_PCIPCWATCHDOG is not set # CONFIG_PCI_ATMEL is not set @@ -4557,6 +4672,7 @@ CONFIG_PCI_SYSCALL=y # CONFIG_PERF_EVENTS is not set # CONFIG_PERF_EVENTS_AMD_POWER is not set # CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_PER_VMA_LOCK is not set # CONFIG_PER_VMA_LOCK_STATS is not set # CONFIG_PHANTOM is not set # CONFIG_PHONET is not set @@ -4589,6 +4705,10 @@ CONFIG_PCI_SYSCALL=y # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HS is not set # CONFIG_PHY_QCOM_USB_HSIC is not set +# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set +# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set +# CONFIG_PHY_ROCKCHIP_INNO_USB2 is not set +# CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY is not set # CONFIG_PHY_SAMSUNG_USB2 is not set # CONFIG_PHY_TUSB1210 is not set # CONFIG_PHY_XGENE is not set @@ -4599,6 +4719,7 @@ CONFIG_PINCONF=y # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_AXP209 is not set +# CONFIG_PINCTRL_BCM2712 is not set # CONFIG_PINCTRL_CEDARFORK is not set # CONFIG_PINCTRL_CY8C95X0 is not set # CONFIG_PINCTRL_EXYNOS is not set @@ -4618,6 +4739,7 @@ CONFIG_PINCONF=y # CONFIG_PINCTRL_MTK_V2 is not set # CONFIG_PINCTRL_OCELOT is not set # CONFIG_PINCTRL_PISTACHIO is not set +# CONFIG_PINCTRL_RP1 is not set # CONFIG_PINCTRL_SC7280 is not set # CONFIG_PINCTRL_SC8180X is not set # CONFIG_PINCTRL_SDX55 is not set @@ -4651,6 +4773,7 @@ CONFIG_PINMUX=y # CONFIG_PM_DEVFREQ is not set # CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set +# CONFIG_POSIX_CPU_TIMERS_TASK_WORK is not set # CONFIG_POSIX_MQUEUE is not set CONFIG_POSIX_TIMERS=y # CONFIG_POWERCAP is not set @@ -4705,8 +4828,10 @@ CONFIG_PPP_MULTILINK=y # CONFIG_PPTP is not set # CONFIG_PREEMPT is not set # CONFIG_PREEMPTIRQ_DELAY_TEST is not set +# CONFIG_PREEMPT_BUILD is not set # CONFIG_PREEMPT_DYNAMIC is not set CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_NONE_BUILD is not set # CONFIG_PREEMPT_TRACER is not set # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PRESTERA is not set @@ -4752,6 +4877,7 @@ CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 # CONFIG_PTP_1588_CLOCK_KVM is not set # CONFIG_PTP_1588_CLOCK_MOCK is not set # CONFIG_PTP_1588_CLOCK_OCP is not set +# CONFIG_PTP_1588_CLOCK_OPTIONAL is not set # CONFIG_PTP_1588_CLOCK_PCH is not set # CONFIG_PTP_1588_CLOCK_VMW is not set # CONFIG_PVPANIC is not set @@ -4766,6 +4892,7 @@ CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 # CONFIG_PWM_MEDIATEK is not set # CONFIG_PWM_PCA9685 is not set # CONFIG_PWM_RASPBERRYPI_POE is not set +# CONFIG_PWM_RP1 is not set # CONFIG_PWM_XILINX is not set CONFIG_PWRSEQ_EMMC=y # CONFIG_PWRSEQ_SD8787 is not set @@ -4787,6 +4914,7 @@ CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_LMH is not set # CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set +# CONFIG_QCOM_SCM is not set # CONFIG_QCOM_SPMI_ADC5 is not set # CONFIG_QCOM_SPMI_ADC_TM5 is not set # CONFIG_QCOM_SPMI_IADC is not set @@ -4795,6 +4923,7 @@ CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCOM_SSC_BLOCK_BUS is not set # CONFIG_QED is not set # CONFIG_QFMT_V1 is not set +# CONFIG_QFMT_V2 is not set # CONFIG_QLA3XXX is not set # CONFIG_QLCNIC is not set # CONFIG_QLGE is not set @@ -4839,6 +4968,7 @@ CONFIG_RANDOMIZE_KSTACK_OFFSET=y # CONFIG_RANDSTRUCT_NONE is not set # CONFIG_RAPIDIO is not set # CONFIG_RAS is not set +# CONFIG_RASPBERRYPI_GPIOMEM is not set # CONFIG_RBTREE_TEST is not set # CONFIG_RCU_BOOST is not set # CONFIG_RCU_CPU_STALL_CPUTIME is not set @@ -4930,6 +5060,7 @@ CONFIG_RCU_STALL_COMMON=y # CONFIG_REGULATOR_QCOM_REFGEN is not set # CONFIG_REGULATOR_RAA215300 is not set # CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set +# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set # CONFIG_REGULATOR_RT4801 is not set # CONFIG_REGULATOR_RT4803 is not set # CONFIG_REGULATOR_RT5190A is not set @@ -4977,6 +5108,7 @@ CONFIG_REISERFS_FS_XATTR=y # CONFIG_RESET_INTEL_GW is not set # CONFIG_RESET_LANTIQ is not set # CONFIG_RESET_LPC18XX is not set +# CONFIG_RESET_MCHP_SPARX5 is not set # CONFIG_RESET_MESON is not set # CONFIG_RESET_PISTACHIO is not set # CONFIG_RESET_SIMPLE is not set @@ -5002,8 +5134,16 @@ CONFIG_RFKILL=y # CONFIG_RISCV_PMU_SBI is not set # CONFIG_RMI4_CORE is not set # CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_DW_HDMI is not set # CONFIG_ROCKCHIP_ERRATUM_3588001 is not set +# CONFIG_ROCKCHIP_IODOMAIN is not set +# CONFIG_ROCKCHIP_IOMMU is not set +# CONFIG_ROCKCHIP_MBOX is not set # CONFIG_ROCKCHIP_PHY is not set +# CONFIG_ROCKCHIP_PM_DOMAINS is not set +# CONFIG_ROCKCHIP_SARADC is not set +# CONFIG_ROCKCHIP_THERMAL is not set +# CONFIG_ROCKCHIP_VOP2 is not set # CONFIG_ROCKER is not set # CONFIG_ROHM_BU27008 is not set # CONFIG_ROHM_BU27034 is not set @@ -5087,6 +5227,7 @@ CONFIG_RTC_DRV_CMOS=y # CONFIG_RTC_DRV_PS3 is not set # CONFIG_RTC_DRV_R7301 is not set # CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RK808 is not set # CONFIG_RTC_DRV_RP5C01 is not set # CONFIG_RTC_DRV_RS5C348 is not set # CONFIG_RTC_DRV_RS5C372 is not set @@ -5203,6 +5344,7 @@ CONFIG_SCHED_STACK_END_CHECK=y # CONFIG_SCSI_BNX2_ISCSI is not set # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_CHELSIO_FCOE is not set +# CONFIG_SCSI_COMMON is not set # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_CXGB3_ISCSI is not set # CONFIG_SCSI_CXGB4_ISCSI is not set @@ -5256,6 +5398,7 @@ CONFIG_SCSI_PROC_FS=y # CONFIG_SCSI_STEX is not set # CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_UFSHCD is not set +# CONFIG_SCSI_UFS_HWMON is not set # CONFIG_SCSI_VIRTIO is not set # CONFIG_SCSI_WD719X is not set # CONFIG_SC_CAMCC_7180 is not set @@ -5483,6 +5626,7 @@ CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_SENSORS_Q54SJ108A2 is not set # CONFIG_SENSORS_RM3100_I2C is not set # CONFIG_SENSORS_RM3100_SPI is not set +# CONFIG_SENSORS_RP1_ADC is not set # CONFIG_SENSORS_SBRMI is not set # CONFIG_SENSORS_SBTSI is not set # CONFIG_SENSORS_SCH5627 is not set @@ -5641,6 +5785,8 @@ CONFIG_SHMEM=y # CONFIG_SI7005 is not set # CONFIG_SI7020 is not set # CONFIG_SIBYTE_BIGSUR is not set +# CONFIG_SIBYTE_CARMEL is not set +# CONFIG_SIBYTE_CRHINE is not set # CONFIG_SIBYTE_CRHONE is not set # CONFIG_SIBYTE_LITTLESUR is not set # CONFIG_SIBYTE_RHONE is not set @@ -5648,12 +5794,14 @@ CONFIG_SHMEM=y # CONFIG_SIBYTE_SWARM is not set CONFIG_SIGNALFD=y # CONFIG_SIGNED_PE_FILE_VERIFICATION is not set +# CONFIG_SIMPLE_PM_BUS is not set # CONFIG_SIOX is not set # CONFIG_SIS190 is not set # CONFIG_SIS900 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_SKY2_DEBUG is not set +# CONFIG_SLAB is not set # CONFIG_SLAB_DEPRECATED is not set CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y @@ -5670,6 +5818,7 @@ CONFIG_SLUB_CPU_PARTIAL=y # CONFIG_SLUB_TINY is not set # CONFIG_SMARTJOYPLUS_FF is not set # CONFIG_SMB_SERVER is not set +# CONFIG_SMC911X is not set # CONFIG_SMC9194 is not set # CONFIG_SMC91X is not set # CONFIG_SMP is not set @@ -5973,6 +6122,7 @@ CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y # CONFIG_SND_SOC_LPASS_TX_MACRO is not set # CONFIG_SND_SOC_LPASS_VA_MACRO is not set # CONFIG_SND_SOC_LPASS_WSA_MACRO is not set +# CONFIG_SND_SOC_MA120X0P is not set # CONFIG_SND_SOC_MAX9759 is not set # CONFIG_SND_SOC_MAX98088 is not set # CONFIG_SND_SOC_MAX98090 is not set @@ -6151,6 +6301,7 @@ CONFIG_SND_X86=y # CONFIG_SNI_RM is not set # CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set # CONFIG_SOCK_CGROUP_DATA is not set +# CONFIG_SOCK_RX_QUEUE_MAPPING is not set # CONFIG_SOC_AM33XX is not set # CONFIG_SOC_AM43XX is not set # CONFIG_SOC_BRCMSTB is not set @@ -6176,14 +6327,15 @@ CONFIG_SND_X86=y # CONFIG_SPI is not set # CONFIG_SPINLOCK_TEST is not set # CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_ALTERA_CORE is not set # CONFIG_SPI_AMD is not set # CONFIG_SPI_AU1550 is not set # CONFIG_SPI_AX88796C is not set # CONFIG_SPI_AXI_SPI_ENGINE is not set # CONFIG_SPI_BCM2835 is not set # CONFIG_SPI_BCM63XX_HSSPI is not set -# CONFIG_SPI_BCM_QSPI is not set # CONFIG_SPI_BCMBCA_HSSPI is not set +# CONFIG_SPI_BCM_QSPI is not set # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BUTTERFLY is not set # CONFIG_SPI_CADENCE is not set @@ -6218,6 +6370,7 @@ CONFIG_SND_X86=y # CONFIG_SPI_PXA2XX_PCI is not set # CONFIG_SPI_QCOM_QSPI is not set # CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_S3C64XX is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set @@ -6238,16 +6391,20 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_SPS30_SERIAL is not set CONFIG_SQUASHFS=y # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set -# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set +CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y # CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU=y # CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE is not set +CONFIG_SQUASHFS_DECOMP_MULTI=y +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set CONFIG_SQUASHFS_EMBEDDED=y # CONFIG_SQUASHFS_FILE_CACHE is not set CONFIG_SQUASHFS_FILE_DIRECT=y CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_SQUASHFS_LZ4 is not set # CONFIG_SQUASHFS_LZO is not set +CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y # CONFIG_SQUASHFS_XATTR is not set CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_ZLIB is not set @@ -6349,6 +6506,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TARGET_CORE is not set # CONFIG_TASKSTATS is not set # CONFIG_TASKS_RCU is not set +# CONFIG_TASKS_TRACE_RCU_READ_MB is not set # CONFIG_TASK_XACCT is not set # CONFIG_TC35815 is not set # CONFIG_TCG_ATMEL is not set @@ -6452,6 +6610,7 @@ CONFIG_TEXTSEARCH=y # CONFIG_THERMAL_STATISTICS is not set # CONFIG_THERMAL_WRITABLE_TRIPS is not set # CONFIG_THINKPAD_ACPI is not set +# CONFIG_THREAD_INFO_IN_TASK is not set # CONFIG_THRUSTMASTER_FF is not set # CONFIG_THUMB2_KERNEL is not set # CONFIG_THUNDER_NIC_BGX is not set @@ -6665,6 +6824,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_TRACING_SUPPORT=y CONFIG_TRAD_SIGNALS=y # CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_TRANS_TABLE is not set # CONFIG_TREE_RCU is not set # CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRUSTED_FOUNDATIONS is not set @@ -6691,6 +6851,7 @@ CONFIG_TTY=y # CONFIG_TXGBE is not set # CONFIG_TYPEC is not set # CONFIG_TYPEC_DP_ALTMODE is not set +# CONFIG_TYPEC_MUX_GPIO_SBU is not set # CONFIG_TYPEC_TCPM is not set # CONFIG_TYPEC_UCSI is not set # CONFIG_TYPHOON is not set @@ -6760,8 +6921,8 @@ CONFIG_USB_BELKIN=y # CONFIG_USB_CDNS3 is not set # CONFIG_USB_CDNS3_IMX is not set # CONFIG_USB_CDNS3_PCI_WRAP is not set -# CONFIG_USB_CDNS_SUPPORT is not set # CONFIG_USB_CDNSP_PCI is not set +# CONFIG_USB_CDNS_SUPPORT is not set # CONFIG_USB_CHAOSKEY is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_CHIPIDEA_GENERIC is not set @@ -6798,6 +6959,7 @@ CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_EHCI_HCD_AT91 is not set # CONFIG_USB_EHCI_HCD_OMAP is not set # CONFIG_USB_EHCI_HCD_PPC_OF is not set +# CONFIG_USB_EHCI_MSM is not set # CONFIG_USB_EHCI_MV is not set CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y @@ -6808,6 +6970,7 @@ CONFIG_USB_EHCI_TT_NEWSCHED=y # CONFIG_USB_ETH is not set # CONFIG_USB_EZUSB_FX2 is not set # CONFIG_USB_FEW_INIT_RETRIES is not set +# CONFIG_USB_FOTG210 is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_FOTG210_UDC is not set # CONFIG_USB_FSL_USB2 is not set @@ -7126,6 +7289,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VHOST_VSOCK is not set # CONFIG_VIA_RHINE is not set # CONFIG_VIA_VELOCITY is not set +# CONFIG_VIDEO_AD5398 is not set # CONFIG_VIDEO_AD5820 is not set # CONFIG_VIDEO_ADP1653 is not set # CONFIG_VIDEO_ADV7170 is not set @@ -7143,22 +7307,28 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_AK881X is not set # CONFIG_VIDEO_AM437X_VPFE is not set # CONFIG_VIDEO_AR0521 is not set +# CONFIG_VIDEO_ARDUCAM_64MP is not set +# CONFIG_VIDEO_ARDUCAM_PIVARIETY is not set # CONFIG_VIDEO_ASPEED is not set # CONFIG_VIDEO_ATMEL_ISC is not set # CONFIG_VIDEO_ATMEL_ISI is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_BCM2835 is not set +# CONFIG_VIDEO_BCM2835_UNICAM is not set # CONFIG_VIDEO_BT819 is not set # CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_BU64754 is not set # CONFIG_VIDEO_CADENCE_CSI2RX is not set # CONFIG_VIDEO_CADENCE_CSI2TX is not set # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_VIDEO_CAMERA_SENSOR is not set # CONFIG_VIDEO_CCS is not set +# CONFIG_VIDEO_CMDLINE is not set # CONFIG_VIDEO_COBALT is not set # CONFIG_VIDEO_CODA is not set +# CONFIG_VIDEO_CODEC_BCM2835 is not set # CONFIG_VIDEO_CS3308 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set @@ -7181,6 +7351,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_GO7007 is not set # CONFIG_VIDEO_GS1662 is not set +# CONFIG_VIDEO_HANTRO_ROCKCHIP is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_HEXIUM_ORION is not set @@ -7200,14 +7371,20 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_IMX335 is not set # CONFIG_VIDEO_IMX355 is not set # CONFIG_VIDEO_IMX412 is not set +# CONFIG_VIDEO_IMX415 is not set +# CONFIG_VIDEO_IMX477 is not set +# CONFIG_VIDEO_IMX519 is not set +# CONFIG_VIDEO_IMX708 is not set # CONFIG_VIDEO_IMX7_CSI is not set # CONFIG_VIDEO_IMX8MQ_MIPI_CSI2 is not set # CONFIG_VIDEO_IMX8_ISI is not set # CONFIG_VIDEO_IMX8_JPEG is not set # CONFIG_VIDEO_IMX_MIPI_CSIS is not set # CONFIG_VIDEO_IMX_PXP is not set +# CONFIG_VIDEO_IRS1125 is not set # CONFIG_VIDEO_IR_I2C is not set # CONFIG_VIDEO_ISL7998X is not set +# CONFIG_VIDEO_ISP_BCM2835 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_KS0127 is not set # CONFIG_VIDEO_LM3560 is not set @@ -7230,13 +7407,16 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_OMAP2_VOUT is not set # CONFIG_VIDEO_OV02A10 is not set # CONFIG_VIDEO_OV08D10 is not set +# CONFIG_VIDEO_OV08X40 is not set # CONFIG_VIDEO_OV13858 is not set # CONFIG_VIDEO_OV13B10 is not set +# CONFIG_VIDEO_OV2311 is not set # CONFIG_VIDEO_OV2640 is not set # CONFIG_VIDEO_OV2659 is not set # CONFIG_VIDEO_OV2680 is not set # CONFIG_VIDEO_OV2685 is not set # CONFIG_VIDEO_OV2740 is not set +# CONFIG_VIDEO_OV4689 is not set # CONFIG_VIDEO_OV5640 is not set # CONFIG_VIDEO_OV5645 is not set # CONFIG_VIDEO_OV5647 is not set @@ -7245,6 +7425,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_OV5675 is not set # CONFIG_VIDEO_OV5693 is not set # CONFIG_VIDEO_OV5695 is not set +# CONFIG_VIDEO_OV64A40 is not set # CONFIG_VIDEO_OV6650 is not set # CONFIG_VIDEO_OV7251 is not set # CONFIG_VIDEO_OV7640 is not set @@ -7252,12 +7433,14 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_OV772X is not set # CONFIG_VIDEO_OV7740 is not set # CONFIG_VIDEO_OV8856 is not set +# CONFIG_VIDEO_OV8858 is not set # CONFIG_VIDEO_OV8865 is not set # CONFIG_VIDEO_OV9282 is not set # CONFIG_VIDEO_OV9640 is not set # CONFIG_VIDEO_OV9650 is not set # CONFIG_VIDEO_OV9734 is not set # CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set # CONFIG_VIDEO_RCAR_CSI2 is not set # CONFIG_VIDEO_RCAR_ISP is not set # CONFIG_VIDEO_RCAR_VIN is not set @@ -7265,6 +7448,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_RDACM21 is not set # CONFIG_VIDEO_RJ54N1 is not set # CONFIG_VIDEO_ROCKCHIP_ISP1 is not set +# CONFIG_VIDEO_RP1_CFE is not set # CONFIG_VIDEO_S5C73M3 is not set # CONFIG_VIDEO_S5K5BAF is not set # CONFIG_VIDEO_S5K6A3 is not set @@ -7281,6 +7465,7 @@ CONFIG_VHOST_MENU=y # CONFIG_VIDEO_SONY_BTF_MPX is not set # CONFIG_VIDEO_STK1160 is not set # CONFIG_VIDEO_ST_MIPID02 is not set +# CONFIG_VIDEO_ST_VGXY61 is not set # CONFIG_VIDEO_SUN4I_CSI is not set # CONFIG_VIDEO_SUN6I_CSI is not set # CONFIG_VIDEO_SUN8I_A83T_MIPI_CSI2 is not set @@ -7479,6 +7664,7 @@ CONFIG_XFRM=y # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_XIP_KERNEL is not set # CONFIG_XMON is not set +# CONFIG_XXHASH is not set CONFIG_XZ_DEC=y # CONFIG_XZ_DEC_ARM is not set # CONFIG_XZ_DEC_ARMTHUMB is not set @@ -7507,6 +7693,7 @@ CONFIG_XZ_DEC=y # CONFIG_ZLIB_DEFLATE is not set # CONFIG_ZLIB_INFLATE is not set CONFIG_ZONE_DMA=y +# CONFIG_ZONE_DMA32 is not set # CONFIG_ZOPT2201 is not set # CONFIG_ZPA2326 is not set # CONFIG_ZPOOL is not set From 9a0dde36b4b1d3c725d631d6ad57e1872139ed54 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Fri, 18 Aug 2023 21:42:50 -0400 Subject: [PATCH 08/41] bcm27xx: auto resize ext4 Signed-off-by: Marty Jones --- .../base-files/etc/init.d/resize-rootfs | 9 +++++ .../base-files/etc/rc.d/S22resize-rootfs | 1 + .../base-files/usr/bin/resize-rootfs.sh | 39 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100755 target/linux/bcm27xx/base-files/etc/init.d/resize-rootfs create mode 100755 target/linux/bcm27xx/base-files/etc/rc.d/S22resize-rootfs create mode 100755 target/linux/bcm27xx/base-files/usr/bin/resize-rootfs.sh diff --git a/target/linux/bcm27xx/base-files/etc/init.d/resize-rootfs b/target/linux/bcm27xx/base-files/etc/init.d/resize-rootfs new file mode 100755 index 00000000000000..740b751499825a --- /dev/null +++ b/target/linux/bcm27xx/base-files/etc/init.d/resize-rootfs @@ -0,0 +1,9 @@ +#!/bin/sh /etc/rc.common + +START=22 +start() { + rm -rf /etc/rc.d/S22resize-rootfs + #service resize-rootfs disable + /usr/bin/resize-rootfs.sh +} + diff --git a/target/linux/bcm27xx/base-files/etc/rc.d/S22resize-rootfs b/target/linux/bcm27xx/base-files/etc/rc.d/S22resize-rootfs new file mode 100755 index 00000000000000..051d001b6cbe2b --- /dev/null +++ b/target/linux/bcm27xx/base-files/etc/rc.d/S22resize-rootfs @@ -0,0 +1 @@ +../init.d/resize-rootfs diff --git a/target/linux/bcm27xx/base-files/usr/bin/resize-rootfs.sh b/target/linux/bcm27xx/base-files/usr/bin/resize-rootfs.sh new file mode 100755 index 00000000000000..170c999ac0195a --- /dev/null +++ b/target/linux/bcm27xx/base-files/usr/bin/resize-rootfs.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +FDISK=$(which fdisk) || { echo "E: You must have fdisk" && exit 1; } +LOSETUP=$(which losetup) || { echo "E: You must have losetup" && exit 1; } +roottype=$(findmnt -n -o SOURCE / -o FSTYPE) +case ${roottype} in + overlay) + FSCKEXT4=$(which fsck.ext4) || { echo "E: You must have fsck.ext4" && exit 1; } + RESIZE2FS=$(which resize2fs) || { echo "E: You must have resize2fs" && exit 1; } + rootsource=$(findmnt -n -o SOURCE / | sed 's~\[.*\]~~') # i.e. /dev/mmcblk0p2 + rootdevice=${rootsource%p*} # i.e. /dev/mmcblk0 + partitions=${rootsource##*p} + ;; + ext4) + FSCKEXT4=$(which fsck.ext4) || { echo "E: You must have fsck.ext4" && exit 1; } + RESIZE2FS=$(which resize2fs) || { echo "E: You must have resize2fs" && exit 1; } + rootsource=$(findmnt -n -o SOURCE / | sed 's~\[.*\]~~') # i.e. /dev/mmcblk0p2 + rootdevice=${rootsource%p*} # i.e. /dev/mmcblk0 + partitions=${rootsource##*p} + + # Resizing partitions + lastsector=$(${FDISK} -l ${rootdevice} |grep "Disk ${rootdevice}" |awk '{print $7}') + lastsector=$(( $lastsector - 1 )) + startfrom=$(${FDISK} -l ${rootdevice} |grep ${rootsource} |awk '{print $2}') + partend=$(${FDISK} -l ${rootdevice} |grep ${rootsource} |awk '{print $3}') + [[ $lastsector -eq $partend ]] && exit 0 + (echo d; echo $partitions; echo n; echo p; echo ; echo $startfrom; echo $lastsector ; echo w;) | fdisk $rootdevice + + # Start resizing filesystem + LOOP="$(losetup -f)" + ${LOSETUP} ${LOOP} ${rootsource} + ${FSCKEXT4} -y ${LOOP} + ${RESIZE2FS} ${LOOP} + reboot + ;; +esac + +exit 0 + From 1d42db0bd3e678f512444e31253ede4b3f186152 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Wed, 15 Feb 2023 17:04:31 -0500 Subject: [PATCH 09/41] kernel: add rtl8812au-ac driver Signed-off-by: Marty Jones --- package/kernel/rtl8812au-ac/Makefile | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 package/kernel/rtl8812au-ac/Makefile diff --git a/package/kernel/rtl8812au-ac/Makefile b/package/kernel/rtl8812au-ac/Makefile new file mode 100644 index 00000000000000..1ac011cf812834 --- /dev/null +++ b/package/kernel/rtl8812au-ac/Makefile @@ -0,0 +1,67 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=rtl8812au-ac +PKG_RELEASE:=1 + +PKG_LICENSE:=GPLv2 +PKG_LICENSE_FILES:= + +PKG_SOURCE_URL:=https://github.com/mj22226/rtl8812au.git +PKG_SOURCE_PROTO:=git +PKG_SOURCE_DATE:=2024-07-13 +PKG_SOURCE_VERSION:=8aad89bb2a310cf80ebf33b94c36ec1a49d54a1c +PKG_MIRROR_HASH:=1ccfb9b8c28b147ef8cbb62c92a60b6020377e7c81264f2db277dceaaa193f36 + +# PKG_MAINTAINER:= +PKG_BUILD_PARALLEL:=1 + +STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h + +include $(INCLUDE_DIR)/kernel.mk +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/rtl8812au-ac + SUBMENU:=Wireless Drivers + TITLE:=Realtek rtl8812au/21au and rtl8814au driver + DEPENDS:=+kmod-cfg80211 +kmod-usb-core +@DRIVER_11N_SUPPORT +@DRIVER_11AC_SUPPORT + KCONFIG:=CONFIG_PLATFORM_I386_PC=n + FILES:=\ + $(PKG_BUILD_DIR)/rtl8812au.ko + AUTOLOAD:=$(call AutoProbe,rtl8812au) +endef + +NOSTDINC_FLAGS = \ + -I$(PKG_BUILD_DIR) \ + -I$(PKG_BUILD_DIR)/include \ + -I$(STAGING_DIR)/usr/include/mac80211-backport \ + -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \ + -I$(STAGING_DIR)/usr/include/mac80211 \ + -I$(STAGING_DIR)/usr/include/mac80211/uapi \ + -include backport/autoconf.h \ + -include backport/backport.h \ + -Wno-error=address \ + -Wno-error=stringop-overread + +NOSTDINC_FLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT \ + -D_LINUX_BYTEORDER_SWAB_H -DBUILD_OPENWRT -DRTW_SINGLE_WIPHY +ifeq ($(CONFIG_BIG_ENDIAN), y) +NOSTDINC_FLAGS += -DCONFIG_BIG_ENDIAN +endif +ifeq ($(CONFIG_LITTLE_ENDIAN), y) +NOSTDINC_FLAGS += -DCONFIG_LITTLE_ENDIAN +endif + +PKG_MAKE_FLAGS += USER_MODULE_NAME=rtl8812au +PKG_MAKE_FLAGS += USER_DRV_NAME=rtl8812au +KERNEL_MAKE_FLAGS += CONFIG_88XXAU=m + +define Build/Compile + +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \ + $(KERNEL_MAKE_FLAGS) \ + $(PKG_MAKE_FLAGS) \ + M="$(PKG_BUILD_DIR)" \ + NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \ + modules +endef + +$(eval $(call KernelPackage,rtl8812au-ac)) From 891d8029002306480a4843022af81e140feb3b27 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Fri, 19 Jan 2024 13:45:58 -0500 Subject: [PATCH 10/41] revert mt7921 bt firmware Signed-off-by: Marty Jones --- package/firmware/linux-firmware/mediatek.mk | 4 ++-- .../src/mediate/BT_RAM_CODE_MT7922_1_1_hdr.bin | Bin 0 -> 512022 bytes .../src/mediate/BT_RAM_CODE_MT7961_1_2_hdr.bin | Bin 0 -> 532846 bytes package/kernel/mt76/Makefile | 4 ++-- .../src/firm/WIFI_MT7961_patch_mcu_1_2_hdr.bin | Bin 0 -> 92192 bytes .../mt76/src/firm/WIFI_RAM_CODE_MT7961_1.bin | Bin 0 -> 722420 bytes 6 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 package/firmware/linux-firmware/src/mediate/BT_RAM_CODE_MT7922_1_1_hdr.bin create mode 100644 package/firmware/linux-firmware/src/mediate/BT_RAM_CODE_MT7961_1_2_hdr.bin create mode 100644 package/kernel/mt76/src/firm/WIFI_MT7961_patch_mcu_1_2_hdr.bin create mode 100644 package/kernel/mt76/src/firm/WIFI_RAM_CODE_MT7961_1.bin diff --git a/package/firmware/linux-firmware/mediatek.mk b/package/firmware/linux-firmware/mediatek.mk index 5c448e1033c3bb..c7c4856172578c 100644 --- a/package/firmware/linux-firmware/mediatek.mk +++ b/package/firmware/linux-firmware/mediatek.mk @@ -55,7 +55,7 @@ Package/mt7921bt-firmware = $(call Package/firmware-default,mt7921bt firmware,,L define Package/mt7921bt-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin \ + $(PKG_BUILD_DIR)/mediate/BT_RAM_CODE_MT7961_1_2_hdr.bin \ $(1)/lib/firmware/mediatek endef $(eval $(call BuildPackage,mt7921bt-firmware)) @@ -64,7 +64,7 @@ Package/mt7922bt-firmware = $(call Package/firmware-default,mt7922bt firmware,,L define Package/mt7922bt-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/mediatek $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin \ + $(PKG_BUILD_DIR)/mediate/BT_RAM_CODE_MT7922_1_1_hdr.bin \ $(1)/lib/firmware/mediatek endef $(eval $(call BuildPackage,mt7922bt-firmware)) diff --git a/package/firmware/linux-firmware/src/mediate/BT_RAM_CODE_MT7922_1_1_hdr.bin b/package/firmware/linux-firmware/src/mediate/BT_RAM_CODE_MT7922_1_1_hdr.bin new file mode 100644 index 0000000000000000000000000000000000000000..e3bb907879c6cdd99d4a5cd59d98157776952421 GIT binary patch literal 512022 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%0A#Kz$sc=``KDq+5mn+Dw)( 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�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 z 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 $Vl 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 XLryU^Eiy1NGcYzXH!(CbF)%U;Cj9C8 literal 0 HcmV?d00001 diff --git a/package/firmware/linux-firmware/src/mediate/BT_RAM_CODE_MT7961_1_2_hdr.bin b/package/firmware/linux-firmware/src/mediate/BT_RAM_CODE_MT7961_1_2_hdr.bin new file mode 100644 index 0000000000000000000000000000000000000000..4b637d5156f2893ebed13d55e58c1e30e9eb1195 GIT binary patch literal 532846 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

@-= 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 Date: Thu, 23 Feb 2023 19:04:52 -0500 Subject: [PATCH 11/41] linux-firmware: add realtek bluetooth Signed-off-by: Marty Jones --- package/firmware/linux-firmware/realtek.mk | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/package/firmware/linux-firmware/realtek.mk b/package/firmware/linux-firmware/realtek.mk index 5ba679d404922d..33467a41a803f5 100644 --- a/package/firmware/linux-firmware/realtek.mk +++ b/package/firmware/linux-firmware/realtek.mk @@ -133,6 +133,16 @@ define Package/rtl8761bu-firmware/install endef $(eval $(call BuildPackage,rtl8761bu-firmware)) +Package/realtek-bluetooth-firmware = $(call Package/firmware-default,RealTek bluetooth firmware) +define Package/realtek-bluetooth-firmware/install + $(INSTALL_DIR) $(1)/lib/firmware/rtl_bt + $(CP) \ + $(PKG_BUILD_DIR)/rtl_bt/* \ + $(1)/lib/firmware/rtl_bt +endef +$(eval $(call BuildPackage,realtek-bluetooth-firmware)) + + Package/rtl8821ae-firmware = $(call Package/firmware-default,RealTek RTL8821AE firmware,,LICENCE.rtlwifi_firmware.txt) define Package/rtl8821ae-firmware/install $(INSTALL_DIR) $(1)/lib/firmware/rtlwifi From 73d173e16e4cab96e8ff3c1702593c0e73a62014 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Mon, 1 Aug 2022 10:53:00 -0700 Subject: [PATCH 12/41] LICENSES: Import Broadcom BCM43xx license Import the license from: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/LICENCE.broadcom_bcm43xx describing the redistribution rules for Broadcom proprietary firmware(s). Signed-off-by: Florian Fainelli --- LICENSES/LICENCE.broadcom_bcm43xx | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 LICENSES/LICENCE.broadcom_bcm43xx diff --git a/LICENSES/LICENCE.broadcom_bcm43xx b/LICENSES/LICENCE.broadcom_bcm43xx new file mode 100644 index 00000000000000..ff26fdd72fe125 --- /dev/null +++ b/LICENSES/LICENCE.broadcom_bcm43xx @@ -0,0 +1,65 @@ +SOFTWARE LICENSE AGREEMENT + +The accompanying software in binary code form (“Software”), is licensed to you, +or, if you are accepting on behalf of an entity, the entity and its affiliates +exercising rights hereunder (“Licensee”) subject to the terms of this software +license agreement (“Agreement”), unless Licensee and Broadcom Corporation +(“Broadcom”) execute a separate written software license agreement governing +use of the Software. ANY USE, REPRODUCTION, OR DISTRIBUTION OF THE SOFTWARE +CONSTITUTES LICENSEE’S ACCEPTANCE OF THIS AGREEMENT. + +1. License. Subject to the terms and conditions of this Agreement, +Broadcom hereby grants to Licensee a limited, non-exclusive, non-transferable, +royalty-free license: (i) to use and integrate the Software with any other +software; and (ii) to reproduce and distribute the Software complete, +unmodified, and as provided by Broadcom, solely for use with Broadcom +proprietary integrated circuit product(s) sold by Broadcom with which the +Software was designed to be used, or their successors. + +2. Restrictions. Licensee shall distribute Software with a copy of this +Agreement. Licensee shall not remove, efface or obscure any copyright or +trademark notices from the Software. Reproductions of the Broadcom copyright +notice shall be included with each copy of the Software, except where such +Software is embedded in a manner not readily accessible to the end user. +Licensee shall not: (i) use, license, sell or otherwise distribute the Software +except as provided in this Agreement; (ii) attempt to modify in any way, +reverse engineer, decompile or disassemble any portion of the Software; or +(iii) use the Software or other material in violation of any applicable law or +regulation, including but not limited to any regulatory agency. This Agreement +shall automatically terminate upon Licensee’s failure to comply with any of the +terms of this Agreement. In such event, Licensee will destroy all copies of the +Software and its component parts. + +3. Ownership. The Software is licensed and not sold. Title to and +ownership of the Software, including all intellectual property rights thereto, +and any portion thereof remain with Broadcom or its licensors. Licensee hereby +covenants that it will not assert any claim that the Software created by or for +Broadcom infringe any intellectual property right owned or controlled by +Licensee. + +4. Disclaimer. THE SOFTWARE IS OFFERED “AS IS,” AND BROADCOM PROVIDES AND +GRANTS AND LICENSEE RECEIVES NO SUPPORT AND NO WARRANTIES OF ANY KIND, EXPRESS +OR IMPLIED, BY STATUTE, COMMUNICATION OR CONDUCT WITH LICENSEE, OR OTHERWISE. +BROADCOM SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A SPECIFIC PURPOSE, OR NONINFRINGEMENT CONCERNING THE SOFTWARE OR +ANY UPGRADES TO OR DOCUMENTATION FOR THE SOFTWARE. WITHOUT LIMITATION OF THE +ABOVE, BROADCOM GRANTS NO WARRANTY THAT THE SOFTWARE IS ERROR-FREE OR WILL +OPERATE WITHOUT INTERRUPTION, AND GRANTS NO WARRANTY REGARDING ITS USE OR THE +RESULTS THEREFROM INCLUDING, WITHOUT LIMITATION, ITS CORRECTNESS, ACCURACY, OR +RELIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM +OR ANY OF ITS LICENSORS HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER FOR BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE) OR +OTHERWISE, ARISING OUT OF THIS AGREEMENT OR USE, REPRODUCTION, OR DISTRIBUTION +OF THE SOFTWARE, INCLUDING BUT NOT LIMITED TO LOSS OF DATA AND LOSS OF PROFITS, +EVEN IF SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THESE +LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY +LIMITED REMEDY. + +5. Export Laws. LICENSEE UNDERSTANDS AND AGREES THAT THE SOFTWARE IS +SUBJECT TO UNITED STATES AND OTHER APPLICABLE EXPORT-RELATED LAWS AND +REGULATIONS AND THAT LICENSEE MAY NOT EXPORT, RE-EXPORT OR TRANSFER THE +SOFTWARE OR ANY DIRECT PRODUCT OF THE SOFTWARE EXCEPT AS PERMITTED UNDER THOSE +LAWS. WITHOUT LIMITING THE FOREGOING, EXPORT, RE-EXPORT, OR TRANSFER OF THE +SOFTWARE TO CUBA, IRAN, NORTH KOREA, SUDAN, AND SYRIA IS PROHIBITED. + From e3ff053cee253d56e9a48ef7a5034dab10f98cfb Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Wed, 27 Jul 2022 15:20:52 -0700 Subject: [PATCH 13/41] brcmfmac-sdio-firmware: Add Broadcom Bluetooth firmware/patch RAMs Utilize the LibreELEC brcmfmac_sdio_firmware repository to add support for the Bluetooth firmware and patch RAM which are necessary for the Bluetooth adapter to work reliably and operate with the proper MAC address. Packages for the two most common BT adapters are created and more can be added a long the way. Signed-off-by: Florian Fainelli --- .../firmware/brcmfmac-sdio-firmware/Makefile | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 package/firmware/brcmfmac-sdio-firmware/Makefile diff --git a/package/firmware/brcmfmac-sdio-firmware/Makefile b/package/firmware/brcmfmac-sdio-firmware/Makefile new file mode 100644 index 00000000000000..6a8f74f6d61ea2 --- /dev/null +++ b/package/firmware/brcmfmac-sdio-firmware/Makefile @@ -0,0 +1,61 @@ +# +# Copyright (C) 2019-2020 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=brcmfmac-sdio-firmware +PKG_SOURCE_DATE:=2022-07-06 +PKG_SOURCE_VERSION:=afc477e807c407736cfaff6a6188d09197dfbceb +PKG_MIRROR_HASH:=2d1bbca5f569b098eb15ed1aee6670f4ef9413f173b94a3d3a2d800966762971 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/LibreELEC/brcmfmac_sdio-firmware + +PKG_MAINTAINER:=Florian Fainelli +PKG_LICENSE:=Proprietary +PKG_LICENSE_FILES:=LICENCE.broadcom_bcm43xx + +include $(INCLUDE_DIR)/package.mk + +define Package/brcmfmac-sdio-firmware-default + SECTION:=firmware + CATEGORY:=Firmware + URL:=https://github.com/LibreELEC/brcmfmac_sdio-firmware +endef + +define Build/Compile + true +endef + +define Package/brcmfmac-sdio-firmware-43430-bt + $(Package/brcmfmac-sdio-firmware-default) + TITLE:=CYW43430 BT firmware and patch RAM +endef + +define Package/brcmfmac-sdio-firmware-43430-bt/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/BCM43430*.hcd \ + $(1)/lib/firmware/brcm/ +endef + +$(eval $(call BuildPackage,brcmfmac-sdio-firmware-43430-bt)) + +define Package/brcmfmac-sdio-firmware-4345-bt + $(Package/brcmfmac-sdio-firmware-default) + TITLE:=CYW4345 BT firmware and patch RAM +endef + +define Package/brcmfmac-sdio-firmware-4345-bt/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/BCM4345*.hcd \ + $(1)/lib/firmware/brcm/ +endef + +$(eval $(call BuildPackage,brcmfmac-sdio-firmware-4345-bt)) From 2198d4ba97fff50f510c839f967b548c49832d40 Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Thu, 28 Jul 2022 15:19:20 -0700 Subject: [PATCH 14/41] bcm27xx: Include brcmfmac-sdio-firmware-4345-bt for Pi4 profiles Enable brcmfmac-sdio-firmware-4345-bt by default to provide the appropriate Bluetooth firmware/patch RAM for the Bluetooth controller on Pi4 and derivatives. Signed-off-by: Florian Fainelli --- target/linux/bcm27xx/image/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/linux/bcm27xx/image/Makefile b/target/linux/bcm27xx/image/Makefile index 23bc3a35c9edd8..5455bdad5cce4b 100644 --- a/target/linux/bcm27xx/image/Makefile +++ b/target/linux/bcm27xx/image/Makefile @@ -123,6 +123,7 @@ define Device/rpi-2 raspberrypi,400 raspberrypi,4-compute-module raspberrypi,4-model-b \ raspberrypi,model-zero-2 raspberrypi,model-zero-2-w DEVICE_PACKAGES := \ + brcmfmac-sdio-firmware-4345-bt \ cypress-firmware-43430-sdio \ brcmfmac-nvram-43430-sdio \ cypress-firmware-43455-sdio \ @@ -180,6 +181,7 @@ define Device/rpi-4 raspberrypi,4-compute-module \ raspberrypi,4-model-b DEVICE_PACKAGES := \ + brcmfmac-sdio-firmware-4345-bt \ cypress-firmware-43455-sdio \ brcmfmac-nvram-43455-sdio \ kmod-brcmfmac wpad-basic-mbedtls \ From 740e235f38812f9d6d8c6ca276eb4d358d6fada7 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sat, 13 Apr 2024 15:45:44 -0400 Subject: [PATCH 15/41] cypress-firmware: cyfmac43455: replace symbolic links for direct firmware Signed-off-by: Marty Jones --- package/firmware/cypress-firmware/Makefile | 46 ++++++++++ ...cmfmac43455-sdio.raspberrypi,5-model-b.txt | 83 +++++++++++++++++++ target/linux/bcm27xx/image/Makefile | 7 +- 3 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 package/firmware/cypress-firmware/src/brcmfmac43455-sdio.raspberrypi,5-model-b.txt diff --git a/package/firmware/cypress-firmware/Makefile b/package/firmware/cypress-firmware/Makefile index 4d836176055bca..3163c17ff6a3a3 100644 --- a/package/firmware/cypress-firmware/Makefile +++ b/package/firmware/cypress-firmware/Makefile @@ -191,6 +191,52 @@ endef $(eval $(call BuildPackage,cypress-firmware-43455-sdio)) +# Cypress 43455 4b SDIO Firmware +define Package/cypress-firmware-43455-4b-sdio + $(Package/cypress-firmware-default) + TITLE:=CYW43455 4b FullMac SDIO firmware + PROVIDES:=brcmfmac-firmware-43455-4b-sdio + CONFLICTS:=brcmfmac-firmware-43455-sdio +endef + +define Package/cypress-firmware-43455-4b-sdio/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/firmware/cyfmac43455-sdio.bin \ + $(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/firmware/cyfmac43455-sdio.clm_blob \ + $(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/brcmfmac43455-sdio.raspberrypi,5-model-b.txt \ + $(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt +endef + +$(eval $(call BuildPackage,cypress-firmware-43455-4b-sdio)) + +# Cypress 43455 5b SDIO Firmware +define Package/cypress-firmware-43455-5b-sdio + $(Package/cypress-firmware-default) + TITLE:=CYW43455 5b FullMac SDIO firmware + PROVIDES:=brcmfmac-firmware-43455-5b-sdio + CONFLICTS:=brcmfmac-firmware-43455-sdio +endef + +define Package/cypress-firmware-43455-5b-sdio/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/firmware/cyfmac43455-sdio.bin \ + $(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/firmware/cyfmac43455-sdio.clm_blob \ + $(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.clm_blob + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/brcmfmac43455-sdio.raspberrypi,5-model-b.txt \ + $(1)/lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt +endef + +$(eval $(call BuildPackage,cypress-firmware-43455-5b-sdio)) + # Cypress 4354 SDIO Firmware define Package/cypress-firmware-4354-sdio $(Package/cypress-firmware-default) diff --git a/package/firmware/cypress-firmware/src/brcmfmac43455-sdio.raspberrypi,5-model-b.txt b/package/firmware/cypress-firmware/src/brcmfmac43455-sdio.raspberrypi,5-model-b.txt new file mode 100644 index 00000000000000..8dda1683ec7593 --- /dev/null +++ b/package/firmware/cypress-firmware/src/brcmfmac43455-sdio.raspberrypi,5-model-b.txt @@ -0,0 +1,83 @@ +# SPDX-License-Identifier: GPL-2.0+ +# (C) Copyright 2018 Raspberry Pi (Trading) Ltd. +# NVRAM config file for the BCM43455 WiFi/BT chip as found on the +# Raspberry Pi 4 Model B +aa2g=1 +aa5g=1 +AvVmid_c0=1,165,2,100,2,100,2,100,2,100 +boardflags=0x00480201 +boardflags2=0x40800000 +boardflags3=0x44200100 +boardrev=0x1304 +boardtype=0x6e4 +btc_mode=1 +btc_params1=0x7530 +btc_params8=0x4e20 +btc_params50=0x972c +cbfilttype=1 +cckPwrIdxCorr=3 +cckTssiDelay=150 +deadman_to=481500000 +devid=0x43ab +dot11agofdmhrbw202gpo=0x4442 +dot11b_opts=0x3aa85 +ed_thresh2g=-54 +ed_thresh5g=-54 +eu_edthresh2g=-54 +eu_edthresh5g=-54 +extpagain2g=2 +extpagain5g=2 +fdsslevel_ch11=6 +femctrl=0 +itrsw=1 +ldo1=4 +ltecxfnsel=0x22 +ltecxgcigpio=0x32 +ltecxmux=0 +ltecxpadnum=0x0504 +macaddr=b8:27:eb:74:f2:6c +manfid=0x2d0 +maxp2ga0=80 +maxp5ga0=82,82,82,82 +mcsbw202gpo=0x98444422 +mcsbw205ghpo=0xb9555000 +mcsbw205glpo=0xb9555000 +mcsbw205gmpo=0xb9555000 +mcsbw402gpo=0x98444422 +mcsbw405ghpo=0xb9555000 +mcsbw405glpo=0xb9555000 +mcsbw405gmpo=0xb9555000 +mcsbw805ghpo=0xb9555000 +mcsbw805glpo=0xb9555000 +mcsbw805gmpo=0xb9555000 +nocrc=1 +ofdmlrbw202gpo=0x0022 +ofdmTssiDelay=150 +pa2ga0=-129,6525,-718 +pa2ga1=-149,4408,-601 +pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818 +pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575 +pdoffset2g40ma0=16 +pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0 +pdoffset40ma0=0x8888 +pdoffset80ma0=0x8888 +pdoffsetcckma0=2 +phycal_tempdelta=15 +prodid=0x06e4 +rawtempsense=0x1ff +rxchain=1 +sromrev=11 +swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff +swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe +swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3 +swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3 +tssipos2g=1 +tssipos5g=1 +tworangetssi2g=1 +tworangetssi5g=1 +txchain=1 +txpwr2gAdcScale=1 +txpwr5gAdcScale=1 +vcodivmode=1 +vendid=0x14e4 +xtalfreq=37400 diff --git a/target/linux/bcm27xx/image/Makefile b/target/linux/bcm27xx/image/Makefile index 5455bdad5cce4b..aa9fec92cd40a4 100644 --- a/target/linux/bcm27xx/image/Makefile +++ b/target/linux/bcm27xx/image/Makefile @@ -182,8 +182,7 @@ define Device/rpi-4 raspberrypi,4-model-b DEVICE_PACKAGES := \ brcmfmac-sdio-firmware-4345-bt \ - cypress-firmware-43455-sdio \ - brcmfmac-nvram-43455-sdio \ + cypress-firmware-43455-4b-sdio \ kmod-brcmfmac wpad-basic-mbedtls \ kmod-usb-net-lan78xx \ kmod-r8169 @@ -200,8 +199,8 @@ define Device/rpi-5 DEVICE_DTS := broadcom/bcm2712-rpi-5-b SUPPORTED_DEVICES := raspberrypi,5-model-b DEVICE_PACKAGES := \ - cypress-firmware-43455-sdio \ - brcmfmac-nvram-43455-sdio \ + cypress-firmware-43455-5b-sdio \ + brcmfmac-sdio-firmware-4345-bt \ kmod-brcmfmac wpad-basic-mbedtls \ kmod-hwmon-pwmfan kmod-thermal IMAGE/sysupgrade.img.gz := boot-common | sdcard-img | gzip | append-metadata From 7b64a2fd763f450a8ee1ce37a2eac16105aa00d0 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Fri, 12 Jul 2024 11:04:03 -0400 Subject: [PATCH 16/41] rockchip: add linux 6.6 Signed-off-by: Marty Jones --- include/target.mk | 2 + target/linux/rockchip/Makefile | 2 +- .../armv8/base-files/etc/board.d/01_leds | 22 +- .../armv8/base-files/etc/board.d/02_network | 60 +- .../etc/hotplug.d/net/40-net-smp-affinity | 21 +- .../armv8/base-files/etc/init.d/resize-rootfs | 9 + .../base-files/etc/rc.d/S22resize-rootfs | 1 + .../uci-defaults/01_enable_packet_steering | 5 + .../armv8/base-files/usr/bin/resize-rootfs.sh | 39 + target/linux/rockchip/armv8/config-6.6 | 236 ++- target/linux/rockchip/armv8/target.mk | 4 +- .../dts/rockchip/rk3588-nanopi6-common.dtsi | 529 +++++ .../boot/dts/rockchip/rk3588s-nanopi-r6c.dts | 121 ++ .../boot/dts/rockchip/rk3588s-nanopi-r6s.dts | 121 ++ target/linux/rockchip/image/Makefile | 12 +- target/linux/rockchip/image/armv8.mk | 136 +- .../linux/rockchip/image/default.bootscript | 4 +- target/linux/rockchip/image/mmc.bootscript | 7 + .../rockchip/image/nanopi-r2s.bootscript | 7 + .../rockchip/image/nanopi-r4s.bootscript | 7 + ...-rockchip-use-system-LED-for-OpenWrt.patch | 44 + ...d-OF-node-for-USB-eth-on-NanoPi-R2S.patch} | 10 +- ...kchip-add-EEPROM-node-for-NanoPi-R4S.patch | 31 + ...ip-disable-UHS-modes-for-NanoPi-R4S.patch} | 19 +- ...add-support-for-FriendlyARM-NanoPi-N.patch | 398 ++++ ...stem-LED-aliases-specific-to-OpenWrt.patch | 29 + ...move-kconfig-to-its-dedicated-direct.patch | 106 + ...to-add-support-for-rockchip-crypto-r.patch | 89 + ...new-dt-binding-doc-to-the-right-entr.patch | 22 + ...support-the-new-crypto-IP-for-rk3568.patch | 1633 +++++++++++++++ ...016-ARM64-dts-rk3568-add-crypto-node.patch | 36 + ...rs-crypto-rockchip-fix-openwrt-build.patch | 31 + .../patches-6.6/018-rock3a-fixes.patch | 109 + .../patches-6.6/019-rock-pi-4b-fix-wifi.patch | 20 + .../020-nanopi-r5c-r5s-fixes.patch | 233 +++ ...0-alias-to-the-dts-for-RK3566-boards.patch | 28 - ...chip-add-FriendlyElec-NanoPi-R6C-R6S.patch | 17 + ...hip-add-FriendlyElec-NanoPi-R6C-Plus.patch | 144 ++ ...-rockchip-use-system-LED-for-OpenWrt.patch | 77 - .../patches-6.6/106-r4s-openwrt-leds.patch | 16 - ...ip-Update-LED-properties-for-Orange-.patch | 40 - ...ip-add-LED-configuration-to-Orange-P.patch | 24 - .../109-nanopc-t4-add-led-aliases.patch | 16 - ...ip-Update-LED-properties-for-NanoPi-.patch | 45 - .../111-radxa-cm3-io-add-led-aliases.patch | 36 - ...5-add-led-aliases-and-stop-heartbeat.patch | 35 - ...a-add-led-aliases-and-stop-heartbeat.patch | 29 - ...-divisor-masking-on-64-bit-platforms.patch | 81 + ...ip-rk3588-evb1-add-PCIe2-network-con.patch | 88 + ...s-rockchip-rk3588-evb1-add-PCIe3-bus.patch | 97 + ...ip-rock-5b-add-PCIe-network-controll.patch | 71 + ...kchip-rock-5b-add-PCIe-for-M.2-M-key.patch | 71 + ...kchip-rock-5b-add-PCIe-for-M.2-E-Key.patch | 78 + ...add-rk3588-compatible-to-rockchip-dw.patch | 61 + ...c3-add-optional-PHY-interface-clocks.patch | 86 + ...hip-rk3588s-Add-USB3-host-controller.patch | 46 + ...rockchip-rk3588-rock5b-add-USB3-host.patch | 38 + ...ockchip-rk3588s-rock5a-add-USB3-host.patch | 37 + ...add-rockchip-usbdp-combo-phy-documen.patch | 185 ++ ...-soc-rockchip-add-rk3588-USB3-syscon.patch | 57 + ...-rockchip-add-usbdp-combo-phy-driver.patch | 1782 +++++++++++++++++ ...rockchip-rk3588s-Add-USBDP-phy-nodes.patch | 187 ++ ...hip-rk3588s-Add-USB3-DRD-controllers.patch | 73 + ...64-dts-rockchip-rk3588-evb1-add-USB3.patch | 198 ++ ...3588-fix-pclk_vo0grf-and-pclk_vo1grf.patch | 72 + ...ckchip-rk3588is-Add-AV1-decoder-node.patch | 36 + ...a-rockchip-Add-resets-property-into-.patch | 27 + ...rockchip-Introduce-driver-for-rk3588.patch | 712 +++++++ ...ip-rk3588-add-cpu-frequency-scaling-.patch | 555 +++++ ...kchip-enable-RK3588-tsadc-by-default.patch | 22 + ...ip-rk3588-evb1-add-cpu-mem-regulator.patch | 59 + ...ip-rock5a-add-cpu-mem-regulator-info.patch | 59 + ...ip-rock5b-add-cpu-mem-regulator-info.patch | 59 + ...s-rockchip-add-status-LED-to-rock-5b.patch | 55 + ...rockchip-rk3588-evb1-add-ADC-buttons.patch | 74 + ...5-usb-typec-tcpm-avoid-graph-warning.patch | 42 + ...ip-rk3588s-rock5a-add-upper-USB3-por.patch | 59 + ...ip-rk3588-rock5b-add-lower-USB3-port.patch | 57 + ...chip-rk3588-rock5b-add-USB-C-support.patch | 190 ++ ...ip-rk3588-evb1-add-PCIe2-WLAN-contro.patch | 86 + ...s-es8328-convert-to-DT-schema-format.patch | 136 ++ ...ockchip-rk3588-evb1-add-analog-audio.patch | 136 ++ ...ockchip-rk3588s-Add-USB3-controllers.patch | 129 ++ ...01-fix-USB3-do-not-disable-sub-nodes.patch | 38 + .../patches-6.6/202-orangepi-5-plus.patch | 10 + ...cpu-rk3588-add-more-operating-points.patch | 28 + .../204-irqchip-fix-its-timeout-issue.patch | 208 ++ ...dts-rockchip-Add-sfc-node-to-rk3588s.patch | 35 + ...6-arm64-dts-rockchip-Add-Orange-Pi-5.patch | 693 +++++++ ...ip-Add-I2S2-M0-pin-definitions-to-rk.patch | 58 + ...ip-Add-UART9-M0-pin-definitions-to-r.patch | 32 + ...p-adjust-vendor-on-Banana-Pi-R2-Pro.patch} | 0 ...ip-Add-missing-sdmmc2-SDR-rates-to-r.patch | 39 + 93 files changed, 10946 insertions(+), 658 deletions(-) create mode 100755 target/linux/rockchip/armv8/base-files/etc/init.d/resize-rootfs create mode 100755 target/linux/rockchip/armv8/base-files/etc/rc.d/S22resize-rootfs create mode 100644 target/linux/rockchip/armv8/base-files/etc/uci-defaults/01_enable_packet_steering create mode 100755 target/linux/rockchip/armv8/base-files/usr/bin/resize-rootfs.sh create mode 100644 target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-nanopi6-common.dtsi create mode 100644 target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts create mode 100644 target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts create mode 100644 target/linux/rockchip/image/mmc.bootscript create mode 100644 target/linux/rockchip/image/nanopi-r2s.bootscript create mode 100644 target/linux/rockchip/image/nanopi-r4s.bootscript create mode 100644 target/linux/rockchip/patches-6.6/006-rockchip-use-system-LED-for-OpenWrt.patch rename target/linux/rockchip/patches-6.6/{103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch => 007-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch} (69%) create mode 100644 target/linux/rockchip/patches-6.6/008-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch rename target/linux/rockchip/patches-6.6/{105-nanopi-r4s-sd-signalling.patch => 009-arm64-dts-rockchip-disable-UHS-modes-for-NanoPi-R4S.patch} (65%) create mode 100644 target/linux/rockchip/patches-6.6/010-rockchip-rk3328-add-support-for-FriendlyARM-NanoPi-N.patch create mode 100644 target/linux/rockchip/patches-6.6/011-rockchip-add-system-LED-aliases-specific-to-OpenWrt.patch create mode 100644 target/linux/rockchip/patches-6.6/012-crypto-rockchip-move-kconfig-to-its-dedicated-direct.patch create mode 100644 target/linux/rockchip/patches-6.6/013-dt-bindings-crypto-add-support-for-rockchip-crypto-r.patch create mode 100644 target/linux/rockchip/patches-6.6/014-MAINTAINERS-add-new-dt-binding-doc-to-the-right-entr.patch create mode 100644 target/linux/rockchip/patches-6.6/015-crypto-rockchip-support-the-new-crypto-IP-for-rk3568.patch create mode 100644 target/linux/rockchip/patches-6.6/016-ARM64-dts-rk3568-add-crypto-node.patch create mode 100644 target/linux/rockchip/patches-6.6/017-drivers-crypto-rockchip-fix-openwrt-build.patch create mode 100644 target/linux/rockchip/patches-6.6/018-rock3a-fixes.patch create mode 100644 target/linux/rockchip/patches-6.6/019-rock-pi-4b-fix-wifi.patch create mode 100644 target/linux/rockchip/patches-6.6/020-nanopi-r5c-r5s-fixes.patch delete mode 100644 target/linux/rockchip/patches-6.6/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch create mode 100644 target/linux/rockchip/patches-6.6/095-rockchip-add-FriendlyElec-NanoPi-R6C-R6S.patch create mode 100644 target/linux/rockchip/patches-6.6/097-rockchip-add-FriendlyElec-NanoPi-R6C-Plus.patch delete mode 100644 target/linux/rockchip/patches-6.6/100-rockchip-use-system-LED-for-OpenWrt.patch delete mode 100644 target/linux/rockchip/patches-6.6/106-r4s-openwrt-leds.patch delete mode 100644 target/linux/rockchip/patches-6.6/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch delete mode 100644 target/linux/rockchip/patches-6.6/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch delete mode 100644 target/linux/rockchip/patches-6.6/109-nanopc-t4-add-led-aliases.patch delete mode 100644 target/linux/rockchip/patches-6.6/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch delete mode 100644 target/linux/rockchip/patches-6.6/111-radxa-cm3-io-add-led-aliases.patch delete mode 100644 target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch delete mode 100644 target/linux/rockchip/patches-6.6/115-rock-3a-add-led-aliases-and-stop-heartbeat.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-01-clk-divider-Fix-divisor-masking-on-64-bit-platforms.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-07-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-network-con.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-08-arm64-dts-rockchip-rk3588-evb1-add-PCIe3-bus.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-09-arm64-dts-rockchip-rock-5b-add-PCIe-network-controll.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-10-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-M-key.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-11-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-E-Key.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-12-dt-bindings-usb-add-rk3588-compatible-to-rockchip-dw.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-13-usb-dwc3-add-optional-PHY-interface-clocks.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-14-arm64-dts-rockchip-rk3588s-Add-USB3-host-controller.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-15-arm64-dts-rockchip-rk3588-rock5b-add-USB3-host.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-16-arm64-dts-rockchip-rk3588s-rock5a-add-USB3-host.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-17-dt-bindings-phy-add-rockchip-usbdp-combo-phy-documen.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-18-dt-bindings-soc-rockchip-add-rk3588-USB3-syscon.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-19-phy-rockchip-add-usbdp-combo-phy-driver.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-20-arm64-dts-rockchip-rk3588s-Add-USBDP-phy-nodes.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-21-arm64-dts-rockchip-rk3588s-Add-USB3-DRD-controllers.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-22-arm64-dts-rockchip-rk3588-evb1-add-USB3.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-23-clk-rockchip-rk3588-fix-pclk_vo0grf-and-pclk_vo1grf.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-24-arm64-dts-rockchip-rk3588is-Add-AV1-decoder-node.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-26-dt-bindings-media-rockchip-Add-resets-property-into-.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-27-cpufreq-rockchip-Introduce-driver-for-rk3588.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-28-arm64-dts-rockchip-rk3588-add-cpu-frequency-scaling-.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-29-arm64-dts-rockchip-enable-RK3588-tsadc-by-default.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-30-arm64-dts-rockchip-rk3588-evb1-add-cpu-mem-regulator.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-31-arm64-dts-rockchip-rock5a-add-cpu-mem-regulator-info.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-32-arm64-dts-rockchip-rock5b-add-cpu-mem-regulator-info.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-33-arm64-dts-rockchip-add-status-LED-to-rock-5b.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-34-arm64-dts-rockchip-rk3588-evb1-add-ADC-buttons.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-35-usb-typec-tcpm-avoid-graph-warning.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-36-arm64-dts-rockchip-rk3588s-rock5a-add-upper-USB3-por.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-37-arm64-dts-rockchip-rk3588-rock5b-add-lower-USB3-port.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-38-arm64-dts-rockchip-rk3588-rock5b-add-USB-C-support.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-39-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-WLAN-contro.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-40-dt-bindings-es8328-convert-to-DT-schema-format.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-41-arm64-dts-rockchip-rk3588-evb1-add-analog-audio.patch create mode 100644 target/linux/rockchip/patches-6.6/200-v6.7-42-arm64-dts-rockchip-rk3588s-Add-USB3-controllers.patch create mode 100644 target/linux/rockchip/patches-6.6/201-fix-USB3-do-not-disable-sub-nodes.patch create mode 100644 target/linux/rockchip/patches-6.6/202-orangepi-5-plus.patch create mode 100644 target/linux/rockchip/patches-6.6/203-cpu-rk3588-add-more-operating-points.patch create mode 100644 target/linux/rockchip/patches-6.6/204-irqchip-fix-its-timeout-issue.patch create mode 100644 target/linux/rockchip/patches-6.6/205-arm64-dts-rockchip-Add-sfc-node-to-rk3588s.patch create mode 100644 target/linux/rockchip/patches-6.6/206-arm64-dts-rockchip-Add-Orange-Pi-5.patch create mode 100644 target/linux/rockchip/patches-6.6/207-arm64-dts-rockchip-Add-I2S2-M0-pin-definitions-to-rk.patch create mode 100644 target/linux/rockchip/patches-6.6/208-arm64-dts-rockchip-Add-UART9-M0-pin-definitions-to-r.patch rename target/linux/rockchip/patches-6.6/{030-v6.9-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch => 209-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch} (100%) create mode 100644 target/linux/rockchip/patches-6.6/302-arm64-dts-rockchip-Add-missing-sdmmc2-SDR-rates-to-r.patch diff --git a/include/target.mk b/include/target.mk index d13902ad6e78ec..9e31018fe15b5c 100644 --- a/include/target.mk +++ b/include/target.mk @@ -278,6 +278,8 @@ ifeq ($(DUMP),1) CPU_TYPE ?= generic CPU_CFLAGS_generic = -mcpu=generic CPU_CFLAGS_cortex-a53 = -mcpu=cortex-a53 + CPU_CFLAGS_cortex-a55 = -mcpu=cortex-a55 + CPU_CFLAGS_cortex-a76 = -mcpu=cortex-a76 endif ifeq ($(ARCH),arc) CPU_TYPE ?= arc700 diff --git a/target/linux/rockchip/Makefile b/target/linux/rockchip/Makefile index 26af6855ac633b..0247b1abd43268 100644 --- a/target/linux/rockchip/Makefile +++ b/target/linux/rockchip/Makefile @@ -15,7 +15,7 @@ endef include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += uboot-envtools partx-utils e2fsprogs mkf2fs kmod-gpio-button-hotplug +DEFAULT_PACKAGES += uboot-envtools partx-utils e2fsprogs mkf2fs kmod-gpio-button-hotplug kmod-thermal KERNELNAME:=Image dtbs diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index ef894610560f26..b10c43ba6052ec 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -8,25 +8,13 @@ boardname="${board##*,}" board_config_update case $board in -friendlyarm,nanopi-r2c|\ -friendlyarm,nanopi-r2c-plus|\ -friendlyarm,nanopi-r2s|\ -friendlyarm,nanopi-r4s|\ -friendlyarm,nanopi-r4s-enterprise|\ -xunlong,orangepi-r1-plus|\ -xunlong,orangepi-r1-plus-lts) - ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" - ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1" +friendlyarm,nanopi-r2s) + ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" + ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1" ;; -friendlyarm,nanopi-r5c) - ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1" - ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0" - ucidef_set_led_netdev "wlan" "WLAN" "green:wlan" "phy0-ap0" - ;; -friendlyarm,nanopi-r5s) +friendlyarm,nanopi-r4s) ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" - ucidef_set_led_netdev "lan1" "LAN1" "green:lan-1" "eth1" - ucidef_set_led_netdev "lan2" "LAN2" "green:lan-2" "eth2" + ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1" ;; esac diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 8729bd52f22600..816045a480318b 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -7,31 +7,37 @@ rockchip_setup_interfaces() local board="$1" case "$board" in - friendlyarm,nanopi-r2c|\ - friendlyarm,nanopi-r2c-plus|\ friendlyarm,nanopi-r2s|\ - friendlyarm,nanopi-r4s|\ - friendlyarm,nanopi-r4s-enterprise|\ - xunlong,orangepi-r1-plus|\ - xunlong,orangepi-r1-plus-lts) + friendlyarm,nanopi-r4s) ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; - friendlyarm,nanopi-r5c|\ - radxa,e25) - ucidef_set_interfaces_lan_wan 'eth0' 'eth1' - ;; - friendlyarm,nanopi-r5s) - ucidef_set_interfaces_lan_wan 'eth1 eth2' 'eth0' - ;; - sinovoip,rk3568-bpi-r2pro) - ucidef_set_interfaces_lan_wan 'lan0 lan1 lan2 lan3' 'eth0' - ;; *) ucidef_set_interface_lan 'eth0' ;; esac } +nanopi_r4s_get_mac() +{ + local interface=$1 + local eeprom_path="/sys/bus/i2c/devices/2-0051/eeprom" + local address + + if [ -f "$eeprom_path" ]; then + address=$(get_mac_binary "$eeprom_path" 0xfa) + if [ "$interface" = "lan" ]; then + address=$(macaddr_setbit_la "$address") + fi + else + address=$(macaddr_generate_from_mmc_cid mmcblk1) + if [ "$interface" = "lan" ]; then + address=$(macaddr_add "$address" 1) + fi + fi + + echo "$address" +} + rockchip_setup_macs() { local board="$1" @@ -40,29 +46,13 @@ rockchip_setup_macs() local label_mac="" case "$board" in - friendlyarm,nanopi-r2c|\ friendlyarm,nanopi-r2s) wan_mac=$(macaddr_generate_from_mmc_cid mmcblk0) lan_mac=$(macaddr_add "$wan_mac" 1) ;; - friendlyarm,nanopi-r2c-plus|\ - friendlyarm,nanopi-r4s|\ - friendlyarm,nanopi-r5s|\ - sinovoip,rk3568-bpi-r2pro) - wan_mac=$(macaddr_generate_from_mmc_cid mmcblk1) - lan_mac=$(macaddr_add "$wan_mac" 1) - ;; - friendlyarm,nanopi-r4s-enterprise) - wan_mac=$(get_mac_binary "/sys/bus/i2c/devices/2-0051/eeprom" 0xfa) - lan_mac=$(macaddr_setbit_la "$wan_mac") - ;; - friendlyarm,nanopi-r5c) - wan_mac=$(macaddr_generate_from_mmc_cid mmcblk*) - lan_mac=$(macaddr_add "$wan_mac" 1) - ;; - xunlong,orangepi-r1-plus|\ - xunlong,orangepi-r1-plus-lts) - wan_mac=$(macaddr_add "$(cat /sys/class/net/eth1/address)" -1) + friendlyarm,nanopi-r4s) + wan_mac=$(nanopi_r4s_get_mac wan) + lan_mac=$(nanopi_r4s_get_mac lan) ;; esac diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 8bbce1c32857e4..d8385b3c693579 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -29,30 +29,13 @@ set_interface_core() { } case "$(board_name)" in -friendlyarm,nanopi-r2c|\ -friendlyarm,nanopi-r2c-plus|\ -friendlyarm,nanopi-r2s|\ -radxa,cm3-io|\ -xunlong,orangepi-r1-plus|\ -xunlong,orangepi-r1-plus-lts) +friendlyarm,nanopi-r2s) set_interface_core 2 "eth0" set_interface_core 4 "eth1" "xhci-hcd:usb[0-9]+" ;; -friendlyarm,nanopi-r4s|\ -friendlyarm,nanopi-r4s-enterprise) +friendlyarm,nanopi-r4s) set_interface_core 10 "eth0" set_interface_core 20 "eth1" ;; -friendlyarm,nanopi-r5c|\ -radxa,e25|\ -sinovoip,rk3568-bpi-r2pro) - set_interface_core 2 "eth0" - set_interface_core 4 "eth1" - ;; -friendlyarm,nanopi-r5s) - set_interface_core 2 "eth0" - set_interface_core 4 "eth1" - set_interface_core 8 "eth2" - ;; esac diff --git a/target/linux/rockchip/armv8/base-files/etc/init.d/resize-rootfs b/target/linux/rockchip/armv8/base-files/etc/init.d/resize-rootfs new file mode 100755 index 00000000000000..740b751499825a --- /dev/null +++ b/target/linux/rockchip/armv8/base-files/etc/init.d/resize-rootfs @@ -0,0 +1,9 @@ +#!/bin/sh /etc/rc.common + +START=22 +start() { + rm -rf /etc/rc.d/S22resize-rootfs + #service resize-rootfs disable + /usr/bin/resize-rootfs.sh +} + diff --git a/target/linux/rockchip/armv8/base-files/etc/rc.d/S22resize-rootfs b/target/linux/rockchip/armv8/base-files/etc/rc.d/S22resize-rootfs new file mode 100755 index 00000000000000..051d001b6cbe2b --- /dev/null +++ b/target/linux/rockchip/armv8/base-files/etc/rc.d/S22resize-rootfs @@ -0,0 +1 @@ +../init.d/resize-rootfs diff --git a/target/linux/rockchip/armv8/base-files/etc/uci-defaults/01_enable_packet_steering b/target/linux/rockchip/armv8/base-files/etc/uci-defaults/01_enable_packet_steering new file mode 100644 index 00000000000000..114c7e1a463f96 --- /dev/null +++ b/target/linux/rockchip/armv8/base-files/etc/uci-defaults/01_enable_packet_steering @@ -0,0 +1,5 @@ +uci -q get network.globals.packet_steering > /dev/null || { + uci set network.globals='globals' + uci set network.globals.packet_steering=1 + uci commit network +} diff --git a/target/linux/rockchip/armv8/base-files/usr/bin/resize-rootfs.sh b/target/linux/rockchip/armv8/base-files/usr/bin/resize-rootfs.sh new file mode 100755 index 00000000000000..170c999ac0195a --- /dev/null +++ b/target/linux/rockchip/armv8/base-files/usr/bin/resize-rootfs.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +FDISK=$(which fdisk) || { echo "E: You must have fdisk" && exit 1; } +LOSETUP=$(which losetup) || { echo "E: You must have losetup" && exit 1; } +roottype=$(findmnt -n -o SOURCE / -o FSTYPE) +case ${roottype} in + overlay) + FSCKEXT4=$(which fsck.ext4) || { echo "E: You must have fsck.ext4" && exit 1; } + RESIZE2FS=$(which resize2fs) || { echo "E: You must have resize2fs" && exit 1; } + rootsource=$(findmnt -n -o SOURCE / | sed 's~\[.*\]~~') # i.e. /dev/mmcblk0p2 + rootdevice=${rootsource%p*} # i.e. /dev/mmcblk0 + partitions=${rootsource##*p} + ;; + ext4) + FSCKEXT4=$(which fsck.ext4) || { echo "E: You must have fsck.ext4" && exit 1; } + RESIZE2FS=$(which resize2fs) || { echo "E: You must have resize2fs" && exit 1; } + rootsource=$(findmnt -n -o SOURCE / | sed 's~\[.*\]~~') # i.e. /dev/mmcblk0p2 + rootdevice=${rootsource%p*} # i.e. /dev/mmcblk0 + partitions=${rootsource##*p} + + # Resizing partitions + lastsector=$(${FDISK} -l ${rootdevice} |grep "Disk ${rootdevice}" |awk '{print $7}') + lastsector=$(( $lastsector - 1 )) + startfrom=$(${FDISK} -l ${rootdevice} |grep ${rootsource} |awk '{print $2}') + partend=$(${FDISK} -l ${rootdevice} |grep ${rootsource} |awk '{print $3}') + [[ $lastsector -eq $partend ]] && exit 0 + (echo d; echo $partitions; echo n; echo p; echo ; echo $startfrom; echo $lastsector ; echo w;) | fdisk $rootdevice + + # Start resizing filesystem + LOOP="$(losetup -f)" + ${LOSETUP} ${LOOP} ${rootsource} + ${FSCKEXT4} -y ${LOOP} + ${RESIZE2FS} ${LOOP} + reboot + ;; +esac + +exit 0 + diff --git a/target/linux/rockchip/armv8/config-6.6 b/target/linux/rockchip/armv8/config-6.6 index fb57fc62604f1d..979dcd44f0e333 100644 --- a/target/linux/rockchip/armv8/config-6.6 +++ b/target/linux/rockchip/armv8/config-6.6 @@ -1,4 +1,7 @@ CONFIG_64BIT=y +CONFIG_AHCI_DWC=y +# CONFIG_AIO is not set +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y @@ -23,12 +26,11 @@ CONFIG_ARC_EMAC_CORE=y CONFIG_ARM64=y CONFIG_ARM64_4K_PAGES=y CONFIG_ARM64_CNP=y -CONFIG_ARM64_EPAN=y +CONFIG_ARM64_ERRATUM_1024718=y +CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_ERRATUM_2051678=y -CONFIG_ARM64_ERRATUM_2054223=y -CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2077057=y -CONFIG_ARM64_ERRATUM_2658417=y +CONFIG_ARM64_ERRATUM_3117295=y CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y @@ -43,49 +45,48 @@ CONFIG_ARM64_PAN=y CONFIG_ARM64_PA_BITS=48 CONFIG_ARM64_PA_BITS_48=y CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y CONFIG_ARM64_RAS_EXTN=y -CONFIG_ARM64_SME=y CONFIG_ARM64_SVE=y +# CONFIG_ARM64_SW_TTBR0_PAN is not set CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_ARM64_VA_BITS=48 -# CONFIG_ARM64_VA_BITS_39 is not set CONFIG_ARM64_VA_BITS_48=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y -CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y +CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y +CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y CONFIG_ARM_AMBA=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y +CONFIG_ARM_FFA_SMCCC=y +CONFIG_ARM_FFA_TRANSPORT=y CONFIG_ARM_GIC=y CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y CONFIG_ARM_GIC_V3_ITS_PCI=y CONFIG_ARM_MHU=y -CONFIG_ARM_MHU_V2=y +# CONFIG_ARM_MHU_V2 is not set CONFIG_ARM_PSCI_CPUIDLE=y CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y CONFIG_ARM_PSCI_FW=y # CONFIG_ARM_RK3399_DMC_DEVFREQ is not set +CONFIG_ARM_ROCKCHIP_CPUFREQ=y CONFIG_ARM_SCMI_CPUFREQ=y CONFIG_ARM_SCMI_HAVE_SHMEM=y CONFIG_ARM_SCMI_HAVE_TRANSPORT=y CONFIG_ARM_SCMI_POWER_CONTROL=y CONFIG_ARM_SCMI_POWER_DOMAIN=y CONFIG_ARM_SCMI_PROTOCOL=y -# CONFIG_ARM_SCMI_RAW_MODE_SUPPORT is not set CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y CONFIG_ARM_SCMI_TRANSPORT_SMC=y CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE=y CONFIG_ARM_SCPI_CPUFREQ=y CONFIG_ARM_SCPI_POWER_DOMAIN=y CONFIG_ARM_SCPI_PROTOCOL=y -CONFIG_ARM_SMMU=y -CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y -# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set -CONFIG_ARM_SMMU_V3=y -# CONFIG_ARM_SMMU_V3_SVA is not set +CONFIG_ARM_SMCCC_SOC_ID=y +CONFIG_ATA=y +CONFIG_ATA_GENERIC=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GPIO=y @@ -97,11 +98,16 @@ CONFIG_BLK_DEV_BSG_COMMON=y CONFIG_BLK_DEV_INTEGRITY=y CONFIG_BLK_DEV_INTEGRITY_T10=y CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_NVME=y CONFIG_BLK_DEV_PCIESSD_MTIP32XX=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_SD=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_PM=y +CONFIG_BLOCK_LEGACY_AUTOLOAD=y CONFIG_BRCMSTB_GISB_ARB=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y @@ -112,7 +118,6 @@ CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_CHARGER_GPIO=y -# CONFIG_CHARGER_RK817 is not set CONFIG_CLKSRC_MMIO=y CONFIG_CLK_PX30=y CONFIG_CLK_RK3308=y @@ -127,19 +132,17 @@ CONFIG_CMA_ALIGNMENT=8 CONFIG_CMA_AREAS=7 # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_MBYTES=5 # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_MIN is not set # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK_RK808=y CONFIG_COMMON_CLK_ROCKCHIP=y CONFIG_COMMON_CLK_SCMI=y CONFIG_COMMON_CLK_SCPI=y CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -CONFIG_COMPAT_32BIT_TIME=y CONFIG_CONFIGFS_FS=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CONTEXT_TRACKING=y @@ -161,49 +164,74 @@ CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y -CONFIG_CPU_ISOLATION=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_CPU_PM=y CONFIG_CPU_RMAP=y CONFIG_CPU_THERMAL=y CONFIG_CRASH_CORE=y -CONFIG_CRASH_DUMP=y CONFIG_CRC16=y # CONFIG_CRC32_SARWATE is not set CONFIG_CRC32_SLICEBY8=y CONFIG_CRC64=y CONFIG_CRC64_ROCKSOFT=y +CONFIG_CRC7=y +CONFIG_CRC_ITU_T=y CONFIG_CRC_T10DIF=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_ARM64_CE=y CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CRC32=y CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC64_ROCKSOFT=y CONFIG_CRYPTO_CRCT10DIF=y -CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_DEV_ROCKCHIP is not set +# CONFIG_CRYPTO_DEV_ROCKCHIP2 is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_DRBG_HMAC=y +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_GENIV=y CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_DES=y CONFIG_CRYPTO_LIB_GF128MUL=y CONFIG_CRYPTO_LIB_SHA1=y CONFIG_CRYPTO_LIB_SHA256=y CONFIG_CRYPTO_LIB_UTILS=y -CONFIG_CRYPTO_POLYVAL=y -CONFIG_CRYPTO_POLYVAL_ARM64_CE=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA256_ARM64=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_SHA3=y +CONFIG_CRYPTO_SHA3_ARM64=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_SHA512_ARM64=y +CONFIG_CRYPTO_SHA512_ARM64_CE=y CONFIG_CRYPTO_SM3=y -CONFIG_CRYPTO_SM3_NEON=y +CONFIG_CRYPTO_SM3_ARM64_CE=y +CONFIG_CRYPTO_SM3_GENERIC=y CONFIG_CRYPTO_SM4=y +CONFIG_CRYPTO_SM4_ARM64_CE=y CONFIG_CRYPTO_SM4_ARM64_CE_BLK=y -CONFIG_CRYPTO_SM4_ARM64_NEON_BLK=y +CONFIG_CRYPTO_XTS=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_INFO=y +CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=y # CONFIG_DEVFREQ_GOV_PASSIVE is not set CONFIG_DEVFREQ_GOV_PERFORMANCE=y CONFIG_DEVFREQ_GOV_POWERSAVE=y @@ -218,9 +246,17 @@ CONFIG_DMA_CMA=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_ENGINE=y CONFIG_DMA_OF=y -CONFIG_DMA_OPS=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_DNOTIFY=y +CONFIG_DRM=y +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_DEBUG_MODESET_LOCK=y +CONFIG_DRM_GEM_DMA_HELPER=y +CONFIG_DRM_KMS_HELPER=y +CONFIG_DRM_MALI_DISPLAY=y +CONFIG_DRM_PANEL=y +CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DTC=y CONFIG_DT_IDLE_GENPD=y CONFIG_DT_IDLE_STATES=y @@ -239,7 +275,6 @@ CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXTCON=y CONFIG_F2FS_FS=y CONFIG_FANOTIFY=y -CONFIG_FHANDLE=y CONFIG_FIXED_PHY=y CONFIG_FIX_EARLYCON_MEM=y # CONFIG_FORTIFY_SOURCE is not set @@ -253,7 +288,6 @@ CONFIG_FWNODE_MDIO=y CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_FW_LOADER_SYSFS=y CONFIG_GCC10_NO_ARRAY_BOUNDS=y -CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_GENERIC_ARCH_TOPOLOGY=y @@ -277,12 +311,14 @@ CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_PHY=y +CONFIG_GENERIC_PHY_MIPI_DPHY=y CONFIG_GENERIC_PINCONF=y CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GLOB=y CONFIG_GPIOLIB_IRQCHIP=y CONFIG_GPIO_CDEV=y CONFIG_GPIO_DWAPB=y @@ -291,18 +327,20 @@ CONFIG_GPIO_GENERIC_PLATFORM=y CONFIG_GPIO_ROCKCHIP=y CONFIG_GPIO_SYSCON=y CONFIG_GRO_CELLS=y +# CONFIG_HARDENED_USERCOPY is not set CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_IOPORT_MAP=y +CONFIG_HDMI=y CONFIG_HOTPLUG_CORE_SYNC=y CONFIG_HOTPLUG_CORE_SYNC_DEAD=y CONFIG_HOTPLUG_CPU=y CONFIG_HOTPLUG_PCI=y # CONFIG_HOTPLUG_PCI_CPCI is not set -# CONFIG_HOTPLUG_PCI_PCIE is not set -# CONFIG_HOTPLUG_PCI_SHPC is not set +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI_SHPC=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_HWMON=y @@ -310,14 +348,19 @@ CONFIG_HWSPINLOCK=y CONFIG_HW_CONSOLE=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_ROCKCHIP=y +CONFIG_HZ=300 +# CONFIG_HZ_100 is not set +CONFIG_HZ_300=y CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=y CONFIG_I2C_COMPAT=y CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_RK3X=y -CONFIG_IIO=y -# CONFIG_IIO_SCMI is not set +CONFIG_IGB=y +CONFIG_IGB_HWMON=y +CONFIG_IGC=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_INDIRECT_PIO=y CONFIG_INPUT=y @@ -326,33 +369,22 @@ CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_KEYBOARD=y CONFIG_INPUT_LEDS=y CONFIG_INPUT_MATRIXKMAP=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_RK805_PWRKEY=y -# CONFIG_IOMMUFD is not set -CONFIG_IOMMU_API=y -# CONFIG_IOMMU_DEBUGFS is not set -# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set -# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set -CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y -CONFIG_IOMMU_DMA=y -CONFIG_IOMMU_IOVA=y -CONFIG_IOMMU_IO_PGTABLE=y -# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set -# CONFIG_IOMMU_IO_PGTABLE_DART is not set -CONFIG_IOMMU_IO_PGTABLE_LPAE=y -# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set -CONFIG_IOMMU_SUPPORT=y +CONFIG_INPUT_SPARSEKMAP=y # CONFIG_IO_STRICT_DEVMEM is not set CONFIG_IRQCHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_MSI_IOMMU=y CONFIG_IRQ_TIME_ACCOUNTING=y CONFIG_IRQ_WORK=y CONFIG_JBD2=y CONFIG_JFFS2_ZLIB=y -CONFIG_JUMP_LABEL=y -CONFIG_KALLSYMS=y CONFIG_KCMP=y CONFIG_KEXEC_CORE=y CONFIG_KEXEC_FILE=y @@ -363,6 +395,8 @@ CONFIG_LEDS_PWM=y CONFIG_LEDS_SYSCON=y CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 CONFIG_LIBCRC32C=y CONFIG_LIBFDT=y CONFIG_LOCALVERSION_AUTO=y @@ -398,17 +432,39 @@ CONFIG_MMC_DW=y # CONFIG_MMC_DW_EXYNOS is not set # CONFIG_MMC_DW_HI3798CV200 is not set # CONFIG_MMC_DW_K3 is not set -# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_DW_PCI=y CONFIG_MMC_DW_PLTFM=y CONFIG_MMC_DW_ROCKCHIP=y +CONFIG_MMC_HSQ=y CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_CADENCE=y +CONFIG_MMC_SDHCI_F_SDH30=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y CONFIG_MMC_SDHCI_OF_ARASAN=y CONFIG_MMC_SDHCI_OF_DWCMSHC=y # CONFIG_MMC_SDHCI_PCI is not set CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SPI=y +CONFIG_MMC_USDHI6ROL0=y +CONFIG_MMC_USHC=y CONFIG_MMU_LAZY_TLB_REFCOUNT=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_MOTORCOMM_PHY=y +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_CYPRESS=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SMBUS=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set CONFIG_MQ_IOSCHED_DEADLINE=y # CONFIG_MTD_CFI is not set CONFIG_MTD_CMDLINE_PARTS=y @@ -418,7 +474,6 @@ CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y CONFIG_MTD_SPLIT_FIRMWARE=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_SG_DMA_FLAGS=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NET_DEVLINK=y CONFIG_NET_DSA=y @@ -438,22 +493,21 @@ CONFIG_NLS_ISO8859_1=y CONFIG_NOP_USB_XCEIV=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=256 +CONFIG_NR_CPUS=8 CONFIG_NVMEM=y CONFIG_NVMEM_LAYOUTS=y CONFIG_NVMEM_ROCKCHIP_EFUSE=y -# CONFIG_NVMEM_ROCKCHIP_OTP is not set +CONFIG_NVMEM_ROCKCHIP_OTP=y CONFIG_NVMEM_SYSFS=y CONFIG_NVME_CORE=y # CONFIG_NVME_HWMON is not set -# CONFIG_NVME_MULTIPATH is not set +CONFIG_NVME_MULTIPATH=y CONFIG_OF=y CONFIG_OF_ADDRESS=y CONFIG_OF_DYNAMIC=y CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_FLATTREE=y CONFIG_OF_GPIO=y -CONFIG_OF_IOMMU=y CONFIG_OF_IRQ=y CONFIG_OF_KOBJ=y CONFIG_OF_MDIO=y @@ -469,11 +523,12 @@ CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 # CONFIG_PARTITION_ADVANCED is not set CONFIG_PARTITION_PERCPU=y +CONFIG_PATA_SIS=y CONFIG_PCI=y CONFIG_PCIEAER=y CONFIG_PCIEASPM=y -CONFIG_PCIEASPM_DEFAULT=y -# CONFIG_PCIEASPM_PERFORMANCE is not set +# CONFIG_PCIEASPM_DEFAULT is not set +CONFIG_PCIEASPM_PERFORMANCE=y # CONFIG_PCIEASPM_POWERSAVE is not set # CONFIG_PCIEASPM_POWER_SUPERSAVE is not set CONFIG_PCIEPORTBUS=y @@ -485,6 +540,9 @@ CONFIG_PCIE_ROCKCHIP_DW_HOST=y CONFIG_PCIE_ROCKCHIP_HOST=y CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_ECAM=y +CONFIG_PCI_HOST_COMMON=y +CONFIG_PCI_HOST_GENERIC=y CONFIG_PCI_MSI=y CONFIG_PCI_STUB=y CONFIG_PCS_MTK_LYNXI=y @@ -496,17 +554,18 @@ CONFIG_PHYLIB_LEDS=y CONFIG_PHYLINK=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_PHY_ROCKCHIP_DP=y -# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set +CONFIG_PHY_ROCKCHIP_DPHY_RX0=y CONFIG_PHY_ROCKCHIP_EMMC=y -# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set -# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set -# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set +CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY=y +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=y +CONFIG_PHY_ROCKCHIP_INNO_HDMI=y CONFIG_PHY_ROCKCHIP_INNO_USB2=y CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y CONFIG_PHY_ROCKCHIP_PCIE=y CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=y CONFIG_PHY_ROCKCHIP_TYPEC=y CONFIG_PHY_ROCKCHIP_USB=y +CONFIG_PHY_ROCKCHIP_USBDP=y CONFIG_PINCTRL=y CONFIG_PINCTRL_RK805=y CONFIG_PINCTRL_ROCKCHIP=y @@ -514,9 +573,10 @@ CONFIG_PINCTRL_ROCKCHIP=y CONFIG_PL330_DMA=y CONFIG_PLATFORM_MHU=y CONFIG_PM=y +CONFIG_PMBUS=y CONFIG_PM_CLK=y CONFIG_PM_DEVFREQ=y -# CONFIG_PM_DEVFREQ_EVENT is not set +CONFIG_PM_DEVFREQ_EVENT=y CONFIG_PM_GENERIC_DOMAINS=y CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_PM_OPP=y @@ -524,22 +584,20 @@ CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y CONFIG_POWER_RESET=y CONFIG_POWER_SUPPLY=y CONFIG_POWER_SUPPLY_HWMON=y +CONFIG_PPP=y +CONFIG_PPPOE=y +CONFIG_PPPOE_HASH_BITS=4 CONFIG_PPS=y -CONFIG_PREEMPT=y -CONFIG_PREEMPTION=y -CONFIG_PREEMPT_BUILD=y -CONFIG_PREEMPT_COUNT=y # CONFIG_PREEMPT_NONE is not set -CONFIG_PREEMPT_RCU=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREEMPT_VOLUNTARY_BUILD=y CONFIG_PRINTK_TIME=y CONFIG_PROC_PAGE_MONITOR=y -CONFIG_PROC_VMCORE=y CONFIG_PTP_1588_CLOCK=y CONFIG_PTP_1588_CLOCK_OPTIONAL=y CONFIG_PWM=y CONFIG_PWM_ROCKCHIP=y CONFIG_PWM_SYSFS=y -# CONFIG_QFMT_V2 is not set CONFIG_QUEUED_RWLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_QUOTA=y @@ -557,28 +615,25 @@ CONFIG_REGMAP_IRQ=y CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_SPI=y CONFIG_REGULATOR=y -CONFIG_REGULATOR_ARM_SCMI=y +# CONFIG_REGULATOR_ARM_SCMI is not set CONFIG_REGULATOR_FAN53555=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_RK808=y -CONFIG_RELOCATABLE=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_SCMI=y CONFIG_RFS_ACCEL=y +CONFIG_ROCKCHIP_ERRATUM_3588001=y CONFIG_ROCKCHIP_GRF=y CONFIG_ROCKCHIP_IODOMAIN=y -CONFIG_ROCKCHIP_IOMMU=y CONFIG_ROCKCHIP_MBOX=y CONFIG_ROCKCHIP_PHY=y CONFIG_ROCKCHIP_PM_DOMAINS=y -# CONFIG_ROCKCHIP_SARADC is not set CONFIG_ROCKCHIP_THERMAL=y CONFIG_ROCKCHIP_TIMER=y CONFIG_RODATA_FULL_DEFAULT_ENABLED=y CONFIG_RPS=y -CONFIG_RSEQ=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_HYM8563=y CONFIG_RTC_DRV_RK808=y @@ -586,22 +641,33 @@ CONFIG_RTC_I2C_AND_SPI=y CONFIG_RTC_NVMEM=y # CONFIG_RUNTIME_TESTING_MENU is not set CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_SATA_HOST=y +CONFIG_SATA_PMP=y +CONFIG_SATA_SIS=y +CONFIG_SATA_VIA=y CONFIG_SCHED_MC=y CONFIG_SCSI=y CONFIG_SCSI_COMMON=y # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_PROC_FS is not set +# CONFIG_SCSI_SAS_ATA is not set CONFIG_SCSI_SAS_ATTRS=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SDIO_UART=y # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SENSORS_ARM_SCMI=y CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_GPIO_FAN=y +CONFIG_SENSORS_PWM_FAN=y CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y CONFIG_SERIAL_8250_DW=y CONFIG_SERIAL_8250_DWLIB=y CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FINTEK=y CONFIG_SERIAL_8250_FSL=y CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_PCI=y @@ -617,9 +683,14 @@ CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIO=y CONFIG_SERIO_AMBAKMI=y CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PCIPS2=y +CONFIG_SERIO_RAW=y CONFIG_SG_POOL=y +CONFIG_SLHC=y +CONFIG_SLUB_DEBUG=y CONFIG_SMP=y CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_SOC_BUS=y CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM_EXTREME=y @@ -632,16 +703,13 @@ CONFIG_SPI_DYNAMIC=y CONFIG_SPI_MASTER=y CONFIG_SPI_MEM=y CONFIG_SPI_ROCKCHIP=y -CONFIG_SPI_ROCKCHIP_SFC=y CONFIG_SPI_SPIDEV=y -CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +CONFIG_SQUASHFS_DECOMP_SINGLE=y # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FILE_CACHE=y # CONFIG_SQUASHFS_FILE_DIRECT is not set CONFIG_SRAM=y -CONFIG_STACKPROTECTOR=y -CONFIG_STACKPROTECTOR_PER_TASK=y -CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_STACKDEPOT=y CONFIG_STACKTRACE=y CONFIG_STMMAC_ETH=y CONFIG_STMMAC_PLATFORM=y @@ -652,8 +720,6 @@ CONFIG_SWIOTLB=y CONFIG_SWPHY=y CONFIG_SYNC_FILE=y CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_SYSFS_SYSCALL=y -# CONFIG_TEXTSEARCH is not set CONFIG_THERMAL=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 @@ -679,7 +745,6 @@ CONFIG_TYPEC=y CONFIG_TYPEC_FUSB302=y # CONFIG_TYPEC_HD3SS3220 is not set # CONFIG_TYPEC_MUX_FSA4480 is not set -# CONFIG_TYPEC_MUX_GPIO_SBU is not set # CONFIG_TYPEC_MUX_NB7VPQ904M is not set # CONFIG_TYPEC_MUX_PI3USB30532 is not set # CONFIG_TYPEC_RT1719 is not set @@ -690,7 +755,6 @@ CONFIG_TYPEC_TCPM=y # CONFIG_TYPEC_WUSB3801 is not set # CONFIG_UCLAMP_TASK is not set # CONFIG_UEVENT_HELPER is not set -CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_USB=y CONFIG_USB_COMMON=y @@ -711,6 +775,10 @@ CONFIG_USB_ULPI_BUS=y CONFIG_USB_ULPI_VIEWPORT=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USERIO=y +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_VIDEO_CMDLINE=y +CONFIG_VIDEO_NOMODESET=y # CONFIG_VIRTIO_MENU is not set CONFIG_VMAP_STACK=y CONFIG_VM_EVENT_COUNTERS=y diff --git a/target/linux/rockchip/armv8/target.mk b/target/linux/rockchip/armv8/target.mk index 085b475c4b3129..536e0f1286aaf1 100644 --- a/target/linux/rockchip/armv8/target.mk +++ b/target/linux/rockchip/armv8/target.mk @@ -1,8 +1,8 @@ ARCH:=aarch64 SUBTARGET:=armv8 -BOARDNAME:=RK33xx/RK356x boards (64 bit) +BOARDNAME:=RK33/35xx boards (64 bit) define Target/Description - Build firmware image for Rockchip RK33xx devices. + Build firmware image for Rockchip RK33/35xx devices. This firmware features a 64 bit kernel. endef diff --git a/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-nanopi6-common.dtsi b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-nanopi6-common.dtsi new file mode 100644 index 00000000000000..57795ff1b0f010 --- /dev/null +++ b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-nanopi6-common.dtsi @@ -0,0 +1,529 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) 2021 Rockchip Electronics Co., Ltd. + * + * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. + * (http://www.friendlyelec.com) + * + */ + +/dts-v1/; + +#include +#include +#include +#include +#include +#include "rk3588s.dtsi" + +/ { + model = "FriendlyElec boards based on Rockchip RK3588"; + compatible = "friendlyelec,nanopi6", + "rockchip,rk3588"; + + vcc5v0_sys: vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + vcc5v0_usb: vcc5v0-usb { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_1v1_nldo_s3: vcc-1v1-nldo-s3 { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v1_nldo_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_3v3_sd_s0: vcc-3v3-sd-s0-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&sd_s0_pwr>; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3000000>; + regulator-min-microvolt = <3000000>; + regulator-name = "vcc_3v3_sd_s0"; + vin-supply = <&vcc_3v3_s3>; + }; + + vcc_3v3_pcie20: vcc3v3-pcie20 { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3_pcie20"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_3v3_s3>; + }; + + vbus5v0_typec: vbus5v0-typec { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&typec5v_pwren>; + regulator-name = "vbus5v0_typec"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_usb>; + }; + + vcc5v0_host_20: vcc5v0-host-20 { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_host20_en>; + regulator-name = "vcc5v0_host_20"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_usb>; + }; +}; + +&combphy0_ps { + status = "okay"; +}; + +&combphy2_psu { + status = "okay"; +}; + +&cpu_l0 { + cpu-supply = <&vdd_cpu_lit_s0>; + mem-supply = <&vdd_cpu_lit_mem_s0>; +}; + +&cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; + mem-supply = <&vdd_cpu_big0_mem_s0>; +}; + +&cpu_b2 { + cpu-supply = <&vdd_cpu_big1_s0>; + mem-supply = <&vdd_cpu_big1_mem_s0>; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0m2_xfer>; + status = "okay"; + + vdd_cpu_big0_s0: vdd_cpu_big0_mem_s0: regulator@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_cpu_big0_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_big1_s0: vdd_cpu_big1_mem_s0: regulator@43 { + compatible = "rockchip,rk8603", "rockchip,rk8602"; + reg = <0x43>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_cpu_big1_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&spi2 { + status = "okay"; + assigned-clocks = <&cru CLK_SPI2>; + assigned-clock-rates = <200000000>; + pinctrl-names = "default"; + pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>; + num-cs = <1>; + + rk806single: rk806single@0 { + compatible = "rockchip,rk806"; + spi-max-frequency = <1000000>; + reg = <0x0>; + + interrupt-parent = <&gpio0>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names = "default"; + pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, <&rk806_dvs2_null>, <&rk806_dvs3_null>; + + vcc1-supply = <&vcc5v0_sys>; + vcc2-supply = <&vcc5v0_sys>; + vcc3-supply = <&vcc5v0_sys>; + vcc4-supply = <&vcc5v0_sys>; + vcc5-supply = <&vcc5v0_sys>; + vcc6-supply = <&vcc5v0_sys>; + vcc7-supply = <&vcc5v0_sys>; + vcc8-supply = <&vcc5v0_sys>; + vcc9-supply = <&vcc5v0_sys>; + vcc10-supply = <&vcc5v0_sys>; + vcc11-supply = <&vcc_2v0_pldo_s3>; + vcc12-supply = <&vcc5v0_sys>; + vcc13-supply = <&vcc_1v1_nldo_s3>; + vcc14-supply = <&vcc_1v1_nldo_s3>; + vcca-supply = <&vcc5v0_sys>; + + gpio-controller; + #gpio-cells = <2>; + + rk806_dvs1_null: dvs1-null-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + }; + + rk806_dvs1_slp: dvs1-slp-pins { + pins = "gpio_pwrctrl1"; + function = "pin_fun1"; + }; + + rk806_dvs1_pwrdn: dvs1-pwrdn-pins { + pins = "gpio_pwrctrl1"; + function = "pin_fun2"; + }; + + rk806_dvs1_rst: dvs1-rst-pins { + pins = "gpio_pwrctrl1"; + function = "pin_fun3"; + }; + + rk806_dvs2_null: dvs2-null-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + }; + + rk806_dvs2_slp: dvs2-slp-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun1"; + }; + + rk806_dvs2_pwrdn: dvs2-pwrdn-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun2"; + }; + + rk806_dvs2_rst: dvs2-rst-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun3"; + }; + + rk806_dvs2_dvs: dvs2-dvs-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun4"; + }; + + rk806_dvs2_gpio: dvs2-gpio-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun5"; + }; + + rk806_dvs3_null: dvs3-null-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun0"; + }; + + rk806_dvs3_slp: dvs3-slp-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun1"; + }; + + rk806_dvs3_pwrdn: dvs3-pwrdn-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun2"; + }; + + rk806_dvs3_rst: dvs3-rst-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun3"; + }; + + rk806_dvs3_dvs: dvs3-dvs-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun4"; + }; + + rk806_dvs3_gpio: dvs3-gpio-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun5"; + }; + + regulators { + vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_cpu_lit_s0"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_2v0_pldo_s3: dcdc-reg7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <2000000>; + regulator-max-microvolt = <2000000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_2v0_pldo_s3"; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <2000000>; + }; + }; + + vcc_3v3_s3: dcdc-reg8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc_3v3_s3"; + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3300000>; + }; + }; + + vcc_3v3_s0: pldo-reg4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12500>; + regulator-name = "vcc_3v3_s0"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vccio_sd_s0: pldo-reg5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12500>; + regulator-name = "vccio_sd_s0"; + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + }; +}; + +&i2c6 { + status = "okay"; + + hym8563: hym8563@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "hym8563"; + pinctrl-names = "default"; + pinctrl-0 = <&rtc_int>; + interrupt-parent = <&gpio0>; + interrupts = ; + wakeup-source; + }; +}; + +&gmac1 { + /* Use rgmii-rxid mode to disable rx delay inside Soc */ + phy-mode = "rgmii-rxid"; + clock_in_out = "output"; + + snps,no-vlhash; + snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; + snps,reset-active-low; + /* Reset time is 20ms, 100ms for rtl8211f */ + snps,reset-delays-us = <0 20000 100000>; + + pinctrl-names = "default"; + pinctrl-0 = <&gmac1_miim + &gmac1_tx_bus2 + &gmac1_rx_bus2 + &gmac1_rgmii_clk + &gmac1_rgmii_bus>; + + tx_delay = <0x42>; + /* rx_delay = <0x4f>; */ + + phy-handle = <&rgmii_phy1>; + status = "okay"; +}; + +&mdio1 { + rgmii_phy1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; + +&pcie2x1l1 { + reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>; + rockchip,init-delay-ms = <100>; + vpcie3v3-supply = <&vcc_3v3_pcie20>; + status = "okay"; +}; + +&pcie2x1l2 { + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; + + vpcie3v3-supply = <&vcc_3v3_pcie20>; + status = "okay"; +}; + +&pinctrl { + hym8563 { + rtc_int: rtc-int { + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + sdmmc { + sd_s0_pwr: sd-s0-pwr { + rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + usb { + typec5v_pwren: typec5v-pwren { + rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + /omit-if-no-ref/ + usbc0_int: usbc0-int { + rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +}; + +&saradc { + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + no-sdio; + no-sd; + non-removable; + max-frequency = <200000000>; + cap-mmc-highspeed; + mmc-hs200-1_8v; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + max-frequency = <150000000>; + no-sdio; + no-mmc; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>; + vmmc-supply = <&vcc_3v3_sd_s0>; + vqmmc-supply = <&vccio_sd_s0>; + status = "okay"; +}; + +&tsadc { + status = "okay"; +}; + +&uart2 { + pinctrl-0 = <&uart2m0_xfer>; + status = "okay"; +}; + +&u2phy2 { + status = "okay"; +}; + +&u2phy3 { + status = "disabled"; +}; + +&u2phy2_host { + phy-supply = <&vcc5v0_host_20>; + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host1_ehci { + status = "disabled"; +}; + +&usb_host1_ohci { + status = "disabled"; +}; + +&u2phy0 { + status = "okay"; +}; + +&usbdp_phy0 { + status = "okay"; +}; + +&u2phy0_otg { + phy-supply = <&vbus5v0_typec>; + status = "okay"; +}; + +&usbdp_phy0_u3 { + status = "okay"; +}; + +&usbdrd3_0 { + status = "okay"; +}; + +&usbdrd_dwc3_0 { + dr_mode = "otg"; + extcon = <&u2phy0>; + status = "okay"; +}; diff --git a/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts new file mode 100644 index 00000000000000..3c4dd0aba34187 --- /dev/null +++ b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. + * (http://www.friendlyelec.com) + * + * Copyright (c) 2021 Rockchip Electronics Co., Ltd. + */ + +/dts-v1/; + +#include "rk3588-nanopi6-common.dtsi" + +/ { + model = "FriendlyElec NanoPi R6C"; + compatible = "friendlyelec,nanopi-r6c", "rockchip,rk3588"; + + aliases { + mmc0 = &sdmmc; + mmc1 = &sdhci; + ethernet0 = &gmac1; + serial2 = &uart2; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + gpio_keys: gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&key1_pin>; + }; + + gpio_leds: gpio-leds { + compatible = "gpio-leds"; + + sys_led: led-sys { + gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; + label = "red:sys"; + linux,default-trigger = "heartbeat"; + pinctrl-names = "default"; + pinctrl-0 = <&sys_led_pin>; + }; + + wan_led: led-wan { + gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; + label = "green:wan"; + pinctrl-names = "default"; + pinctrl-0 = <&wan_led_pin>; + }; + + lan_led: led-lan { + gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; + label = "green:lan"; + pinctrl-names = "default"; + pinctrl-0 = <&lan1_led_pin>; + }; + + led1_led: led-led1 { + gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>; + label = "green:led1"; + pinctrl-names = "default"; + pinctrl-0 = <&led1_led_pin>; + }; + }; +}; + + +&pinctrl { + gpio-key { + key1_pin: key1-pin { + rockchip,pins = <1 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + gpio-leds { + sys_led_pin: sys-led-pin { + rockchip,pins = + <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wan_led_pin: wan-led-pin { + rockchip,pins = + <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + lan1_led_pin: lan1-led-pin { + rockchip,pins = + <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led1_led_pin: led1-led-pin { + rockchip,pins = + <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + vcc5v0_host20_en: vcc5v0-host20-en { + rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&i2c6 { + clock-frequency = <200000>; + status = "okay"; + + eeprom@53 { + compatible = "microchip,24c02", "atmel,24c02"; + reg = <0x53>; + #address-cells = <2>; + #size-cells = <0>; + pagesize = <16>; + size = <256>; + + eui_48: eui-48@fa { + reg = <0xfa 0x06>; + }; + }; +}; diff --git a/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts new file mode 100644 index 00000000000000..a509d58e136c1b --- /dev/null +++ b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. + * (http://www.friendlyelec.com) + * + * Copyright (c) 2021 Rockchip Electronics Co., Ltd. + */ + +/dts-v1/; + +#include "rk3588-nanopi6-common.dtsi" + +/ { + model = "FriendlyElec NanoPi R6S"; + compatible = "friendlyelec,nanopi-r6s", "rockchip,rk3588"; + + aliases { + mmc0 = &sdmmc; + mmc1 = &sdhci; + ethernet0 = &gmac1; + serial2 = &uart2; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + gpio_keys: gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&key1_pin>; + }; + + gpio_leds: gpio-leds { + compatible = "gpio-leds"; + + sys_led: led-sys { + gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; + label = "red:sys"; + linux,default-trigger = "heartbeat"; + pinctrl-names = "default"; + pinctrl-0 = <&sys_led_pin>; + }; + + wan_led: led-wan { + gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; + label = "green:wan"; + pinctrl-names = "default"; + pinctrl-0 = <&wan_led_pin>; + }; + + lan_led: led-lan { + gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; + label = "green:lan"; + pinctrl-names = "default"; + pinctrl-0 = <&lan1_led_pin>; + }; + + lan2_led: led-lan2 { + gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>; + label = "green:lan1"; + pinctrl-names = "default"; + pinctrl-0 = <&lan2_led_pin>; + }; + }; +}; + + +&pinctrl { + gpio-key { + key1_pin: key1-pin { + rockchip,pins = <1 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + gpio-leds { + sys_led_pin: sys-led-pin { + rockchip,pins = + <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wan_led_pin: wan-led-pin { + rockchip,pins = + <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + lan1_led_pin: lan1-led-pin { + rockchip,pins = + <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + lan2_led_pin: lan2-led-pin { + rockchip,pins = + <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + vcc5v0_host20_en: vcc5v0-host20-en { + rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&i2c6 { + clock-frequency = <200000>; + status = "okay"; + + eeprom@53 { + compatible = "microchip,24c02", "atmel,24c02"; + reg = <0x53>; + #address-cells = <2>; + #size-cells = <0>; + pagesize = <16>; + size = <256>; + + eui_48: eui-48@fa { + reg = <0xfa 0x06>; + }; + }; +}; diff --git a/target/linux/rockchip/image/Makefile b/target/linux/rockchip/image/Makefile index 5d90ef8cf835c6..e232166e51ee9b 100644 --- a/target/linux/rockchip/image/Makefile +++ b/target/linux/rockchip/image/Makefile @@ -21,7 +21,7 @@ endef define Build/boot-script # Make an U-boot image and copy it to the boot partition - mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $(if $(1),$(1),default).bootscript $@.boot/boot.scr + mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $(if $(1),$(1),mmc).bootscript $@.boot/boot.scr endef define Build/pine64-img @@ -29,7 +29,7 @@ define Build/pine64-img # combining boot partition, root partition as well as the u-boot bootloader # Generate a new partition table in $@ with 32 MiB of - # alignment padding for the u-boot-rockchip.bin (idbloader + u-boot) to fit: + # alignment padding for the idbloader and u-boot to fit: # http://opensource.rock-chips.com/wiki_Boot_option#Boot_flow # # U-Boot SPL expects the U-Boot ITB to be located at sector 0x4000 (8 MiB) on the MMC storage @@ -39,19 +39,17 @@ define Build/pine64-img $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS) \ 32768 - # Copy the u-boot-rockchip.bin to the image at sector 0x40 - dd if="$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot-rockchip.bin of="$@" seek=64 conv=notrunc + # Copy the idbloader and the u-boot image to the image at sector 0x40 and 0x4000 + dd if="$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-idbloader.img of="$@" seek=64 conv=notrunc + dd if="$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot.itb of="$@" seek=16384 conv=notrunc endef ### Devices ### define Device/Default PROFILES := Default KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb - BOOT_SCRIPT := IMAGES := sysupgrade.img.gz - IMAGE/sysupgrade.img.gz = boot-common | boot-script $$(BOOT_SCRIPT) | pine64-img | gzip | append-metadata DEVICE_DTS = rockchip/$$(SOC)-$(lastword $(subst _, ,$(1))) - UBOOT_DEVICE_NAME = $(lastword $(subst _, ,$(1)))-$$(SOC) endef include $(SUBTARGET).mk diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 23519b43ee21e1..86e7cec9799f02 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -11,37 +11,16 @@ define Device/firefly_roc-rk3328-cc SOC := rk3328 DEVICE_DTS := rockchip/rk3328-roc-cc UBOOT_DEVICE_NAME := roc-cc-rk3328 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r2s | pine64-img | gzip | append-metadata endef TARGET_DEVICES += firefly_roc-rk3328-cc -define Device/friendlyarm_nanopc-t4 - DEVICE_VENDOR := FriendlyARM - DEVICE_MODEL := NanoPC T4 - SOC := rk3399 - DEVICE_PACKAGES := kmod-brcmfmac brcmfmac-nvram-4356-sdio cypress-firmware-4356-sdio -endef -TARGET_DEVICES += friendlyarm_nanopc-t4 - -define Device/friendlyarm_nanopi-r2c - DEVICE_VENDOR := FriendlyARM - DEVICE_MODEL := NanoPi R2C - SOC := rk3328 - DEVICE_PACKAGES := kmod-usb-net-rtl8152 -endef -TARGET_DEVICES += friendlyarm_nanopi-r2c - -define Device/friendlyarm_nanopi-r2c-plus - DEVICE_VENDOR := FriendlyARM - DEVICE_MODEL := NanoPi R2C Plus - SOC := rk3328 - DEVICE_PACKAGES := kmod-usb-net-rtl8152 -endef -TARGET_DEVICES += friendlyarm_nanopi-r2c-plus - define Device/friendlyarm_nanopi-r2s DEVICE_VENDOR := FriendlyARM DEVICE_MODEL := NanoPi R2S SOC := rk3328 + UBOOT_DEVICE_NAME := nanopi-r2s-rk3328 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r2s | pine64-img | gzip | append-metadata DEVICE_PACKAGES := kmod-usb-net-rtl8152 endef TARGET_DEVICES += friendlyarm_nanopi-r2s @@ -51,126 +30,27 @@ define Device/friendlyarm_nanopi-r4s DEVICE_MODEL := NanoPi R4S DEVICE_VARIANT := 4GB LPDDR4 SOC := rk3399 - DEVICE_PACKAGES := kmod-r8169 -endef -TARGET_DEVICES += friendlyarm_nanopi-r4s - -define Device/friendlyarm_nanopi-r4s-enterprise - DEVICE_VENDOR := FriendlyARM - DEVICE_MODEL := NanoPi R4S Enterprise Edition - DEVICE_VARIANT := 4GB LPDDR4 - SOC := rk3399 UBOOT_DEVICE_NAME := nanopi-r4s-rk3399 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r4s | pine64-img | gzip | append-metadata DEVICE_PACKAGES := kmod-r8169 endef -TARGET_DEVICES += friendlyarm_nanopi-r4s-enterprise - -define Device/friendlyarm_nanopi-r5c - DEVICE_VENDOR := FriendlyARM - DEVICE_MODEL := NanoPi R5C - SOC := rk3568 - DEVICE_PACKAGES := kmod-r8169 kmod-rtw88-8822ce rtl8822ce-firmware wpad-basic-mbedtls -endef -TARGET_DEVICES += friendlyarm_nanopi-r5c - -define Device/friendlyarm_nanopi-r5s - DEVICE_VENDOR := FriendlyARM - DEVICE_MODEL := NanoPi R5S - SOC := rk3568 - DEVICE_PACKAGES := kmod-r8169 -endef -TARGET_DEVICES += friendlyarm_nanopi-r5s - -define Device/pine64_rock64 - DEVICE_VENDOR := Pine64 - DEVICE_MODEL := Rock64 - SOC := rk3328 -endef -TARGET_DEVICES += pine64_rock64 +TARGET_DEVICES += friendlyarm_nanopi-r4s define Device/pine64_rockpro64 DEVICE_VENDOR := Pine64 DEVICE_MODEL := RockPro64 SOC := rk3399 + UBOOT_DEVICE_NAME := rockpro64-rk3399 + IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-img | gzip | append-metadata endef TARGET_DEVICES += pine64_rockpro64 -define Device/radxa_cm3-io - DEVICE_VENDOR := Radxa - DEVICE_MODEL := CM3 IO - SOC := rk3566 - DEVICE_DTS := rockchip/rk3566-radxa-cm3-io - UBOOT_DEVICE_NAME := radxa-cm3-io-rk3566 -endef -TARGET_DEVICES += radxa_cm3-io - -define Device/radxa_e25 - DEVICE_VENDOR := Radxa - DEVICE_MODEL := E25 - SOC := rk3568 - DEVICE_DTS := rockchip/rk3568-radxa-e25 - BOOT_SCRIPT := radxa-e25 - UBOOT_DEVICE_NAME := radxa-e25-rk3568 - DEVICE_PACKAGES := kmod-r8169 kmod-ata-ahci-dwc -endef -TARGET_DEVICES += radxa_e25 - -define Device/radxa_rock-3a - DEVICE_VENDOR := Radxa - DEVICE_MODEL := ROCK 3A - SOC := rk3568 - DEVICE_PACKAGES := kmod-usb-net-cdc-ncm kmod-usb-net-rndis -endef -TARGET_DEVICES += radxa_rock-3a - define Device/radxa_rock-pi-4a DEVICE_VENDOR := Radxa DEVICE_MODEL := ROCK Pi 4A SOC := rk3399 SUPPORTED_DEVICES := radxa,rockpi4a radxa,rockpi4 UBOOT_DEVICE_NAME := rock-pi-4-rk3399 + IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-img | gzip | append-metadata endef TARGET_DEVICES += radxa_rock-pi-4a - -define Device/radxa_rock-pi-e - DEVICE_VENDOR := Radxa - DEVICE_MODEL := ROCK Pi E - SOC := rk3328 -endef -TARGET_DEVICES += radxa_rock-pi-e - -define Device/radxa_rock-pi-s - DEVICE_VENDOR := Radxa - DEVICE_MODEL := ROCK Pi S - SOC := rk3308 - DEVICE_DTS := rockchip/rk3308-rock-pi-s - BOOT_SCRIPT := rock-pi-s - UBOOT_DEVICE_NAME := rock-pi-s-rk3308 - DEVICE_PACKAGES := kmod-usb-net-cdc-ncm kmod-usb-net-rndis -endef -TARGET_DEVICES += radxa_rock-pi-s - -define Device/sinovoip_bpi-r2-pro - DEVICE_VENDOR := Sinovoip - DEVICE_MODEL := Bananapi-R2 Pro - SOC := rk3568 - SUPPORTED_DEVICES := sinovoip,rk3568-bpi-r2pro - DEVICE_PACKAGES := kmod-ata-ahci-dwc -endef -TARGET_DEVICES += sinovoip_bpi-r2-pro - -define Device/xunlong_orangepi-r1-plus - DEVICE_VENDOR := Xunlong - DEVICE_MODEL := Orange Pi R1 Plus - SOC := rk3328 - DEVICE_PACKAGES := kmod-usb-net-rtl8152 -endef -TARGET_DEVICES += xunlong_orangepi-r1-plus - -define Device/xunlong_orangepi-r1-plus-lts - DEVICE_VENDOR := Xunlong - DEVICE_MODEL := Orange Pi R1 Plus LTS - SOC := rk3328 - DEVICE_PACKAGES := kmod-usb-net-rtl8152 -endef -TARGET_DEVICES += xunlong_orangepi-r1-plus-lts diff --git a/target/linux/rockchip/image/default.bootscript b/target/linux/rockchip/image/default.bootscript index cca0b8d4acff38..5aa7330cffb46c 100644 --- a/target/linux/rockchip/image/default.bootscript +++ b/target/linux/rockchip/image/default.bootscript @@ -1,4 +1,4 @@ -part uuid ${devtype} ${devnum}:2 uuid +part uuid mmc ${devnum}:2 uuid if test $stdout = 'serial@fe660000' ; then serial_addr=',0xfe660000'; @@ -10,6 +10,6 @@ fi; setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32${serial_addr} root=PARTUUID=${uuid} rw rootwait"; -load ${devtype} ${devnum}:1 ${kernel_addr_r} kernel.img +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img bootm ${kernel_addr_r} diff --git a/target/linux/rockchip/image/mmc.bootscript b/target/linux/rockchip/image/mmc.bootscript new file mode 100644 index 00000000000000..1e53200027adf0 --- /dev/null +++ b/target/linux/rockchip/image/mmc.bootscript @@ -0,0 +1,7 @@ +part uuid mmc ${devnum}:2 uuid + +setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=${uuid} rw rootwait" + +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img + +bootm ${kernel_addr_r} diff --git a/target/linux/rockchip/image/nanopi-r2s.bootscript b/target/linux/rockchip/image/nanopi-r2s.bootscript new file mode 100644 index 00000000000000..8f961d37329095 --- /dev/null +++ b/target/linux/rockchip/image/nanopi-r2s.bootscript @@ -0,0 +1,7 @@ +part uuid mmc ${devnum}:2 uuid + +setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xff130000 root=PARTUUID=${uuid} rw rootwait" + +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img + +bootm ${kernel_addr_r} diff --git a/target/linux/rockchip/image/nanopi-r4s.bootscript b/target/linux/rockchip/image/nanopi-r4s.bootscript new file mode 100644 index 00000000000000..1e53200027adf0 --- /dev/null +++ b/target/linux/rockchip/image/nanopi-r4s.bootscript @@ -0,0 +1,7 @@ +part uuid mmc ${devnum}:2 uuid + +setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=${uuid} rw rootwait" + +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img + +bootm ${kernel_addr_r} diff --git a/target/linux/rockchip/patches-6.6/006-rockchip-use-system-LED-for-OpenWrt.patch b/target/linux/rockchip/patches-6.6/006-rockchip-use-system-LED-for-OpenWrt.patch new file mode 100644 index 00000000000000..f2b358e40a8127 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/006-rockchip-use-system-LED-for-OpenWrt.patch @@ -0,0 +1,44 @@ +From 52e4a561560b0b4564329dc3771240c8e68ef48f Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Fri, 10 Jul 2020 21:38:20 +0200 +Subject: [PATCH 06/95] rockchip: use system LED for OpenWrt + +Use the SYS LED on the casing for showing system status. + +This patch is kept separate from the NanoPi R2S support patch, as i plan +on submitting the device support upstream. + +Signed-off-by: David Bauer +--- + arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 5 +++++ + arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 5 +++++ + 2 files changed, 10 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts +@@ -16,6 +16,11 @@ + aliases { + ethernet1 = &rtl8153; + mmc0 = &sdmmc; ++ ++ led-boot = &sys_led; ++ led-failsafe = &sys_led; ++ led-running = &sys_led; ++ led-upgrade = &sys_led; + }; + + chosen { +--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts +@@ -13,6 +13,11 @@ + aliases { + mmc0 = &sdmmc; + mmc1 = &emmc; ++ ++ led-boot = &power_led; ++ led-failsafe = &power_led; ++ led-running = &power_led; ++ led-upgrade = &power_led; + }; + + chosen { diff --git a/target/linux/rockchip/patches-6.6/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch b/target/linux/rockchip/patches-6.6/007-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch similarity index 69% rename from target/linux/rockchip/patches-6.6/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch rename to target/linux/rockchip/patches-6.6/007-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch index eeef0df014f2d0..644981c5d60eb8 100644 --- a/target/linux/rockchip/patches-6.6/103-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch +++ b/target/linux/rockchip/patches-6.6/007-arm64-rockchip-add-OF-node-for-USB-eth-on-NanoPi-R2S.patch @@ -1,7 +1,7 @@ -From 2795c8b31a686bdb8338f9404d18ef7a154f0d75 Mon Sep 17 00:00:00 2001 +From 13cb72fa5bccd8fd4152ffce8d92a12e3c5c36bc Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sun, 26 Jul 2020 13:32:59 +0200 -Subject: [PATCH] arm64: rockchip: add OF node for USB eth on NanoPi R2S +Subject: [PATCH 07/95] arm64: rockchip: add OF node for USB eth on NanoPi R2S This adds the OF node for the USB3 ethernet adapter on the FriendlyARM NanoPi R2S. Add the correct value for the RTL8153 LED configuration @@ -9,12 +9,12 @@ register to match the blink behavior of the other port on the device. Signed-off-by: David Bauer --- - arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 7 +++++++ - 1 file changed, 1 insertions(+) + arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 1 + + 1 file changed, 1 insertion(+) --- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -@@ -406,6 +406,7 @@ +@@ -402,6 +402,7 @@ rtl8153: device@2 { compatible = "usbbda,8153"; reg = <2>; diff --git a/target/linux/rockchip/patches-6.6/008-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch b/target/linux/rockchip/patches-6.6/008-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch new file mode 100644 index 00000000000000..30dbdfe1ac6a89 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/008-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch @@ -0,0 +1,31 @@ +From 038e5650cdabe7531cd64a5b873c9b02aab3f06c Mon Sep 17 00:00:00 2001 +From: Tianling Shen +Date: Mon, 7 Jun 2021 15:45:37 +0800 +Subject: [PATCH 08/95] arm64: dts: rockchip: add EEPROM node for NanoPi R4S + +NanoPi R4S has a EEPROM attached to the 2nd I2C bus (U92), which +stores the MAC address. + +Signed-off-by: Tianling Shen +--- + arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +@@ -68,6 +68,15 @@ + status = "disabled"; + }; + ++&i2c2 { ++ eeprom@51 { ++ compatible = "microchip,24c02", "atmel,24c02"; ++ reg = <0x51>; ++ pagesize = <16>; ++ read-only; /* This holds our MAC */ ++ }; ++}; ++ + &i2c4 { + status = "disabled"; + }; diff --git a/target/linux/rockchip/patches-6.6/105-nanopi-r4s-sd-signalling.patch b/target/linux/rockchip/patches-6.6/009-arm64-dts-rockchip-disable-UHS-modes-for-NanoPi-R4S.patch similarity index 65% rename from target/linux/rockchip/patches-6.6/105-nanopi-r4s-sd-signalling.patch rename to target/linux/rockchip/patches-6.6/009-arm64-dts-rockchip-disable-UHS-modes-for-NanoPi-R4S.patch index b3c941821aaaf8..eb868133e9da6b 100644 --- a/target/linux/rockchip/patches-6.6/105-nanopi-r4s-sd-signalling.patch +++ b/target/linux/rockchip/patches-6.6/009-arm64-dts-rockchip-disable-UHS-modes-for-NanoPi-R4S.patch @@ -1,5 +1,7 @@ +From eeb15d6eeed0dc35d10b482b2a857abfb0c8417c Mon Sep 17 00:00:00 2001 From: David Bauer -Subject: arm64: dts: rockchip: disable UHS modes for NanoPi R4S +Date: Thu, 1 Sep 2022 00:28:11 -0400 +Subject: [PATCH 09/95] arm64: dts: rockchip: disable UHS modes for NanoPi R4S The NanoPi R4S leaves the SD card in 1.8V signalling when rebooting while U-Boot requires the card to be in 3.3V mode. @@ -9,20 +11,13 @@ mode. This reduces transfer speeds but ensures a reboot whether from userspace or following a kernel panic is always working. Signed-off-by: David Bauer +--- + arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts | 5 +++++ + 1 file changed, 5 insertions(+) ---- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -@@ -335,7 +335,6 @@ - sd-uhs-sdr12; - sd-uhs-sdr25; - sd-uhs-sdr50; -- sd-uhs-sdr104; - vmmc-supply = <&vcc_sd>; - vqmmc-supply = <&vcc_sdio>; - status = "okay"; --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -@@ -112,6 +112,11 @@ +@@ -121,6 +121,11 @@ status = "disabled"; }; diff --git a/target/linux/rockchip/patches-6.6/010-rockchip-rk3328-add-support-for-FriendlyARM-NanoPi-N.patch b/target/linux/rockchip/patches-6.6/010-rockchip-rk3328-add-support-for-FriendlyARM-NanoPi-N.patch new file mode 100644 index 00000000000000..8c655571416675 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/010-rockchip-rk3328-add-support-for-FriendlyARM-NanoPi-N.patch @@ -0,0 +1,398 @@ +From 901cf603c663ad3d52d274d07ecf4411aa93f992 Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Wed, 12 May 2021 13:04:20 -0400 +Subject: [PATCH 10/95] rockchip: rk3328: add support for FriendlyARM NanoPi + NEO3 + +This patch adds support for FriendlyARM NanoPi NEO3 + +Soc: RockChip RK3328 +RAM: 1GB/2GB DDR4 +LAN: 10/100/1000M Ethernet with unique MAC +USB Host: 1x USB3.0 Type A and 2x USB2.0 on 2.54mm pin header +MicroSD: x 1 for system boot and storage +LED: Power LED x 1, System LED x 1 +Key: User Button x 1 +Fan: 2 Pin JST ZH 1.5mm Connector for 5V Fan +GPIO: 26 pin-header, include I2C, UART, SPI, I2S, GPIO +Power: 5V/1A, via Type-C or GPIO + +Signed-off-by: Marty Jones +--- + arch/arm64/boot/dts/rockchip/Makefile | 1 + + .../boot/dts/rockchip/rk3328-nanopi-neo3.dts | 359 ++++++++++++++++++ + 2 files changed, 360 insertions(+) + create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts + +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -14,6 +14,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-od + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go3.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-a1.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-neo3.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c-plus.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts +@@ -0,0 +1,359 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2020 David Bauer ++ */ ++ ++/dts-v1/; ++ ++#include ++#include ++#include "rk3328.dtsi" ++ ++/ { ++ model = "FriendlyElec NanoPi NEO3"; ++ compatible = "friendlyarm,nanopi-neo3", "rockchip,rk3328"; ++ ++ chosen { ++ stdout-path = "serial2:1500000n8"; ++ }; ++ ++ gmac_clk: gmac-clock { ++ compatible = "fixed-clock"; ++ clock-frequency = <125000000>; ++ clock-output-names = "gmac_clkin"; ++ #clock-cells = <0>; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ pinctrl-0 = <&reset_button_pin>; ++ pinctrl-names = "default"; ++ ++ reset { ++ label = "reset"; ++ gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ debounce-interval = <50>; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-0 = <&stat_led_pin>; ++ pinctrl-names = "default"; ++ ++ stat_led: led-1 { ++ gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; ++ label = "nanopi-neo3:green:stat"; ++ }; ++ }; ++ ++ vcc_io_sdio: sdmmcio-regulator { ++ compatible = "regulator-gpio"; ++ enable-active-high; ++ gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>; ++ pinctrl-0 = <&sdio_vcc_pin>; ++ pinctrl-names = "default"; ++ regulator-name = "vcc_io_sdio"; ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-settling-time-us = <5000>; ++ regulator-type = "voltage"; ++ startup-delay-us = <2000>; ++ states = <1800000 0x1>, ++ <3300000 0x0>; ++ vin-supply = <&vcc_io_33>; ++ }; ++ ++ vcc_sd: sdmmc-regulator { ++ compatible = "regulator-fixed"; ++ gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>; ++ pinctrl-0 = <&sdmmc0m1_pin>; ++ pinctrl-names = "default"; ++ regulator-name = "vcc_sd"; ++ regulator-boot-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&vcc_io_33>; ++ }; ++ ++ vdd_5v: vdd-5v { ++ compatible = "regulator-fixed"; ++ regulator-name = "vdd_5v"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ }; ++}; ++ ++&cpu0 { ++ cpu-supply = <&vdd_arm>; ++}; ++ ++&cpu1 { ++ cpu-supply = <&vdd_arm>; ++}; ++ ++&cpu2 { ++ cpu-supply = <&vdd_arm>; ++}; ++ ++&cpu3 { ++ cpu-supply = <&vdd_arm>; ++}; ++ ++&display_subsystem { ++ status = "disabled"; ++}; ++ ++&gmac2io { ++ assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>; ++ assigned-clock-parents = <&gmac_clk>, <&gmac_clk>; ++ clock_in_out = "input"; ++ phy-handle = <&rtl8211e>; ++ phy-mode = "rgmii"; ++ phy-supply = <&vcc_io_33>; ++ pinctrl-0 = <&rgmiim1_pins>; ++ pinctrl-names = "default"; ++ rx_delay = <0x18>; ++ snps,aal; ++ tx_delay = <0x24>; ++ status = "okay"; ++ ++ mdio { ++ compatible = "snps,dwmac-mdio"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ rtl8211e: ethernet-phy@1 { ++ reg = <1>; ++ pinctrl-0 = <ð_phy_reset_pin>; ++ pinctrl-names = "default"; ++ reset-assert-us = <10000>; ++ reset-deassert-us = <50000>; ++ reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++&i2c1 { ++ status = "okay"; ++ ++ rk805: pmic@18 { ++ compatible = "rockchip,rk805"; ++ reg = <0x18>; ++ interrupt-parent = <&gpio1>; ++ interrupts = <24 IRQ_TYPE_LEVEL_LOW>; ++ #clock-cells = <1>; ++ clock-output-names = "xin32k", "rk805-clkout2"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ pinctrl-0 = <&pmic_int_l>; ++ pinctrl-names = "default"; ++ rockchip,system-power-controller; ++ wakeup-source; ++ ++ vcc1-supply = <&vdd_5v>; ++ vcc2-supply = <&vdd_5v>; ++ vcc3-supply = <&vdd_5v>; ++ vcc4-supply = <&vdd_5v>; ++ vcc5-supply = <&vcc_io_33>; ++ vcc6-supply = <&vdd_5v>; ++ ++ regulators { ++ vdd_log: DCDC_REG1 { ++ regulator-name = "vdd_log"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <712500>; ++ regulator-max-microvolt = <1450000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <1000000>; ++ }; ++ }; ++ ++ vdd_arm: DCDC_REG2 { ++ regulator-name = "vdd_arm"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <712500>; ++ regulator-max-microvolt = <1450000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <950000>; ++ }; ++ }; ++ ++ vcc_ddr: DCDC_REG3 { ++ regulator-name = "vcc_ddr"; ++ regulator-always-on; ++ regulator-boot-on; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ }; ++ }; ++ ++ vcc_io_33: DCDC_REG4 { ++ regulator-name = "vcc_io_33"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <3300000>; ++ }; ++ }; ++ ++ vcc_18: LDO_REG1 { ++ regulator-name = "vcc_18"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <1800000>; ++ }; ++ }; ++ ++ vcc18_emmc: LDO_REG2 { ++ regulator-name = "vcc18_emmc"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <1800000>; ++ }; ++ }; ++ ++ vdd_10: LDO_REG3 { ++ regulator-name = "vdd_10"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1000000>; ++ regulator-max-microvolt = <1000000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <1000000>; ++ }; ++ }; ++ }; ++ }; ++}; ++ ++&io_domains { ++ pmuio-supply = <&vcc_io_33>; ++ vccio1-supply = <&vcc_io_33>; ++ vccio2-supply = <&vcc18_emmc>; ++ vccio3-supply = <&vcc_io_sdio>; ++ vccio4-supply = <&vcc_18>; ++ vccio5-supply = <&vcc_io_33>; ++ vccio6-supply = <&vcc_io_33>; ++ status = "okay"; ++}; ++ ++&pinctrl { ++ button { ++ reset_button_pin: reset-button-pin { ++ rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ gmac2io { ++ eth_phy_reset_pin: eth-phy-reset-pin { ++ rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; ++ }; ++ }; ++ ++ leds { ++ stat_led_pin: stat-led-pin { ++ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ pmic { ++ pmic_int_l: pmic-int-l { ++ rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ sd { ++ sdio_vcc_pin: sdio-vcc-pin { ++ rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++}; ++ ++&pwm2 { ++ status = "okay"; ++}; ++ ++&sdmmc { ++ bus-width = <4>; ++ cap-sd-highspeed; ++ disable-wp; ++ pinctrl-0 = <&sdmmc0_clk>, <&sdmmc0_cmd>, <&sdmmc0_dectn>, <&sdmmc0_bus4>; ++ pinctrl-names = "default"; ++ sd-uhs-sdr12; ++ sd-uhs-sdr25; ++ sd-uhs-sdr50; ++ sd-uhs-sdr104; ++ vmmc-supply = <&vcc_sd>; ++ vqmmc-supply = <&vcc_io_sdio>; ++ status = "okay"; ++}; ++ ++&tsadc { ++ rockchip,hw-tshut-mode = <0>; ++ rockchip,hw-tshut-polarity = <0>; ++ status = "okay"; ++}; ++ ++&u2phy { ++ status = "okay"; ++}; ++ ++&u2phy_host { ++ status = "okay"; ++}; ++ ++&u2phy_otg { ++ status = "okay"; ++}; ++ ++&uart2 { ++ status = "okay"; ++}; ++ ++&usb20_otg { ++ status = "okay"; ++ dr_mode = "host"; ++}; ++ ++&usb_host0_ehci { ++ status = "okay"; ++}; ++ ++&usb_host0_ohci { ++ status = "okay"; ++}; ++ ++&usbdrd3 { ++ dr_mode = "host"; ++ status = "okay"; ++}; diff --git a/target/linux/rockchip/patches-6.6/011-rockchip-add-system-LED-aliases-specific-to-OpenWrt.patch b/target/linux/rockchip/patches-6.6/011-rockchip-add-system-LED-aliases-specific-to-OpenWrt.patch new file mode 100644 index 00000000000000..630aed9a4b5deb --- /dev/null +++ b/target/linux/rockchip/patches-6.6/011-rockchip-add-system-LED-aliases-specific-to-OpenWrt.patch @@ -0,0 +1,29 @@ +From 0926497951d548c81b5b60965f0b0352f3da5e01 Mon Sep 17 00:00:00 2001 +From: David Bauer +Date: Sun, 11 Sep 2022 11:10:20 -0400 +Subject: [PATCH 11/95] rockchip: add system-LED aliases specific to OpenWrt + +Add the aliases sections required to detect LEDs specific to OpenWrt +boot / update indication for the NanoPi R4S. + +Signed-off-by: David Bauer +--- + arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +@@ -19,6 +19,13 @@ + model = "FriendlyElec NanoPi R4S"; + compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399"; + ++ aliases { ++ led-boot = &sys_led; ++ led-failsafe = &sys_led; ++ led-running = &sys_led; ++ led-upgrade = &sys_led; ++ }; ++ + /delete-node/ display-subsystem; + + gpio-leds { diff --git a/target/linux/rockchip/patches-6.6/012-crypto-rockchip-move-kconfig-to-its-dedicated-direct.patch b/target/linux/rockchip/patches-6.6/012-crypto-rockchip-move-kconfig-to-its-dedicated-direct.patch new file mode 100644 index 00000000000000..1c087f7d3bd408 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/012-crypto-rockchip-move-kconfig-to-its-dedicated-direct.patch @@ -0,0 +1,106 @@ +From 3a8a66759baf24ece7e8a968a700d6a35876a63d Mon Sep 17 00:00:00 2001 +From: Corentin Labbe +Date: Tue, 27 Sep 2022 08:00:44 +0000 +Subject: [PATCH 12/95] crypto: rockchip: move kconfig to its dedicated + directory + +Move all rockchip kconfig in its own subdirectory. + +Signed-off-by: Corentin Labbe +--- + drivers/crypto/Kconfig | 32 ++------------------------------ + drivers/crypto/Makefile | 2 +- + drivers/crypto/rockchip/Kconfig | 28 ++++++++++++++++++++++++++++ + 3 files changed, 31 insertions(+), 31 deletions(-) + create mode 100644 drivers/crypto/rockchip/Kconfig + +--- a/drivers/crypto/Kconfig ++++ b/drivers/crypto/Kconfig +@@ -609,6 +609,8 @@ config CRYPTO_DEV_QCOM_RNG + To compile this driver as a module, choose M here. The + module will be called qcom-rng. If unsure, say N. + ++source "drivers/crypto/rockchip/Kconfig" ++ + config CRYPTO_DEV_VMX + bool "Support for VMX cryptographic acceleration instructions" + depends on PPC64 && VSX +@@ -629,36 +631,6 @@ config CRYPTO_DEV_IMGTEC_HASH + hardware hash accelerator. Supporting MD5/SHA1/SHA224/SHA256 + hashing algorithms. + +-config CRYPTO_DEV_ROCKCHIP +- tristate "Rockchip's Cryptographic Engine driver" +- depends on OF && ARCH_ROCKCHIP +- depends on PM +- select CRYPTO_ECB +- select CRYPTO_CBC +- select CRYPTO_DES +- select CRYPTO_AES +- select CRYPTO_ENGINE +- select CRYPTO_LIB_DES +- select CRYPTO_MD5 +- select CRYPTO_SHA1 +- select CRYPTO_SHA256 +- select CRYPTO_HASH +- select CRYPTO_SKCIPHER +- +- help +- This driver interfaces with the hardware crypto accelerator. +- Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode. +- +-config CRYPTO_DEV_ROCKCHIP_DEBUG +- bool "Enable Rockchip crypto stats" +- depends on CRYPTO_DEV_ROCKCHIP +- depends on DEBUG_FS +- help +- Say y to enable Rockchip crypto debug stats. +- This will create /sys/kernel/debug/rk3288_crypto/stats for displaying +- the number of requests per algorithm and other internal stats. +- +- + config CRYPTO_DEV_ZYNQMP_AES + tristate "Support for Xilinx ZynqMP AES hw accelerator" + depends on ZYNQMP_FIRMWARE || COMPILE_TEST +--- a/drivers/crypto/Makefile ++++ b/drivers/crypto/Makefile +@@ -34,7 +34,7 @@ obj-$(CONFIG_CRYPTO_DEV_PADLOCK_SHA) += + obj-$(CONFIG_CRYPTO_DEV_PPC4XX) += amcc/ + obj-$(CONFIG_CRYPTO_DEV_QCE) += qce/ + obj-$(CONFIG_CRYPTO_DEV_QCOM_RNG) += qcom-rng.o +-obj-$(CONFIG_CRYPTO_DEV_ROCKCHIP) += rockchip/ ++obj-y += rockchip/ + obj-$(CONFIG_CRYPTO_DEV_S5P) += s5p-sss.o + obj-$(CONFIG_CRYPTO_DEV_SA2UL) += sa2ul.o + obj-$(CONFIG_CRYPTO_DEV_SAHARA) += sahara.o +--- /dev/null ++++ b/drivers/crypto/rockchip/Kconfig +@@ -0,0 +1,28 @@ ++config CRYPTO_DEV_ROCKCHIP ++ tristate "Rockchip's Cryptographic Engine driver" ++ depends on OF && ARCH_ROCKCHIP ++ depends on PM ++ select CRYPTO_ECB ++ select CRYPTO_CBC ++ select CRYPTO_DES ++ select CRYPTO_AES ++ select CRYPTO_ENGINE ++ select CRYPTO_LIB_DES ++ select CRYPTO_MD5 ++ select CRYPTO_SHA1 ++ select CRYPTO_SHA256 ++ select CRYPTO_HASH ++ select CRYPTO_SKCIPHER ++ ++ help ++ This driver interfaces with the hardware crypto accelerator. ++ Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode. ++ ++config CRYPTO_DEV_ROCKCHIP_DEBUG ++ bool "Enable Rockchip crypto stats" ++ depends on CRYPTO_DEV_ROCKCHIP ++ depends on DEBUG_FS ++ help ++ Say y to enable Rockchip crypto debug stats. ++ This will create /sys/kernel/debug/rk3288_crypto/stats for displaying ++ the number of requests per algorithm and other internal stats. diff --git a/target/linux/rockchip/patches-6.6/013-dt-bindings-crypto-add-support-for-rockchip-crypto-r.patch b/target/linux/rockchip/patches-6.6/013-dt-bindings-crypto-add-support-for-rockchip-crypto-r.patch new file mode 100644 index 00000000000000..18984fcfb0202d --- /dev/null +++ b/target/linux/rockchip/patches-6.6/013-dt-bindings-crypto-add-support-for-rockchip-crypto-r.patch @@ -0,0 +1,89 @@ +From 94327499ba7867ec017abe331446858086ae1f36 Mon Sep 17 00:00:00 2001 +From: Corentin Labbe +Date: Tue, 27 Sep 2022 08:00:45 +0000 +Subject: [PATCH 13/95] dt-bindings: crypto: add support for + rockchip,crypto-rk3588 + +Add device tree binding documentation for the Rockchip cryptographic +offloader V2. + +Signed-off-by: Corentin Labbe +--- + .../crypto/rockchip,rk3588-crypto.yaml | 71 +++++++++++++++++++ + 1 file changed, 71 insertions(+) + create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3588-crypto.yaml + +--- /dev/null ++++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3588-crypto.yaml +@@ -0,0 +1,71 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/crypto/rockchip,rk3588-crypto.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Rockchip cryptographic offloader V2 ++ ++maintainers: ++ - Corentin Labbe ++ ++properties: ++ compatible: ++ enum: ++ - rockchip,rk3568-crypto ++ - rockchip,rk3588-crypto ++ ++ reg: ++ maxItems: 1 ++ ++ interrupts: ++ maxItems: 1 ++ ++ clocks: ++ minItems: 4 ++ ++ clock-names: ++ items: ++ - const: aclk ++ - const: hclk ++ - const: sclk ++ - const: pka ++ ++ resets: ++ minItems: 5 ++ ++ reset-names: ++ items: ++ - const: core ++ - const: a ++ - const: h ++ - const: rng ++ - const: pka ++ ++required: ++ - compatible ++ - reg ++ - interrupts ++ - clocks ++ - clock-names ++ - resets ++ - reset-names ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include ++ #include ++ crypto@fe380000 { ++ compatible = "rockchip,rk3588-crypto"; ++ reg = <0xfe380000 0x4000>; ++ interrupts = ; ++ clocks = <&cru ACLK_CRYPTO_NS>, <&cru HCLK_CRYPTO_NS>, ++ <&cru CLK_CRYPTO_NS_CORE>, <&cru CLK_CRYPTO_NS_PKA>; ++ clock-names = "aclk", "hclk", "sclk", "pka"; ++ resets = <&cru SRST_CRYPTO_NS_CORE>, <&cru SRST_A_CRYPTO_NS>, ++ <&cru SRST_H_CRYPTO_NS>, <&cru SRST_CRYPTO_NS_RNG>, ++ <&cru SRST_CRYPTO_NS_PKA>; ++ reset-names = "core", "a", "h", "rng", "pka"; ++ }; diff --git a/target/linux/rockchip/patches-6.6/014-MAINTAINERS-add-new-dt-binding-doc-to-the-right-entr.patch b/target/linux/rockchip/patches-6.6/014-MAINTAINERS-add-new-dt-binding-doc-to-the-right-entr.patch new file mode 100644 index 00000000000000..284e329bc99750 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/014-MAINTAINERS-add-new-dt-binding-doc-to-the-right-entr.patch @@ -0,0 +1,22 @@ +From efbbe9089347272d845cf9a8478d6249b0902cf9 Mon Sep 17 00:00:00 2001 +From: Corentin Labbe +Date: Tue, 27 Sep 2022 08:00:46 +0000 +Subject: [PATCH 14/95] MAINTAINERS: add new dt-binding doc to the right entry + +Rockchip crypto driver have a new file to be added. + +Signed-off-by: Corentin Labbe +--- + MAINTAINERS | 1 + + 1 file changed, 1 insertion(+) + +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -18512,6 +18512,7 @@ M: Corentin Labbe + L: linux-crypto@vger.kernel.org + S: Maintained + F: Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml ++F: Documentation/devicetree/bindings/crypto/rockchip,rk3588-crypto.yaml + F: drivers/crypto/rockchip/ + + ROCKCHIP I2S TDM DRIVER diff --git a/target/linux/rockchip/patches-6.6/015-crypto-rockchip-support-the-new-crypto-IP-for-rk3568.patch b/target/linux/rockchip/patches-6.6/015-crypto-rockchip-support-the-new-crypto-IP-for-rk3568.patch new file mode 100644 index 00000000000000..ef4308e968d790 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/015-crypto-rockchip-support-the-new-crypto-IP-for-rk3568.patch @@ -0,0 +1,1633 @@ +From e45e7f6cbd32fd3672ce93f6dd880bbddf723b02 Mon Sep 17 00:00:00 2001 +From: Corentin Labbe +Date: Tue, 27 Sep 2022 08:00:47 +0000 +Subject: [PATCH 15/95] crypto: rockchip: support the new crypto IP for + rk3568/rk3588 + +Rockchip rk3568 and rk3588 have a common crypto offloader IP. +This driver adds support for it. + +Signed-off-by: Corentin Labbe +--- + drivers/crypto/rockchip/Kconfig | 28 + + drivers/crypto/rockchip/Makefile | 5 + + drivers/crypto/rockchip/rk3588_crypto.c | 646 ++++++++++++++++++ + drivers/crypto/rockchip/rk3588_crypto.h | 221 ++++++ + drivers/crypto/rockchip/rk3588_crypto_ahash.c | 346 ++++++++++ + .../crypto/rockchip/rk3588_crypto_skcipher.c | 340 +++++++++ + 6 files changed, 1586 insertions(+) + create mode 100644 drivers/crypto/rockchip/rk3588_crypto.c + create mode 100644 drivers/crypto/rockchip/rk3588_crypto.h + create mode 100644 drivers/crypto/rockchip/rk3588_crypto_ahash.c + create mode 100644 drivers/crypto/rockchip/rk3588_crypto_skcipher.c + +--- a/drivers/crypto/rockchip/Kconfig ++++ b/drivers/crypto/rockchip/Kconfig +@@ -26,3 +26,31 @@ config CRYPTO_DEV_ROCKCHIP_DEBUG + Say y to enable Rockchip crypto debug stats. + This will create /sys/kernel/debug/rk3288_crypto/stats for displaying + the number of requests per algorithm and other internal stats. ++ ++config CRYPTO_DEV_ROCKCHIP2 ++ tristate "Rockchip's cryptographic offloader V2" ++ depends on OF && ARCH_ROCKCHIP ++ depends on PM ++ select CRYPTO_ECB ++ select CRYPTO_CBC ++ select CRYPTO_AES ++ select CRYPTO_MD5 ++ select CRYPTO_SHA1 ++ select CRYPTO_SHA256 ++ select CRYPTO_SM3_GENERIC ++ select CRYPTO_HASH ++ select CRYPTO_SKCIPHER ++ select CRYPTO_ENGINE ++ ++ help ++ This driver interfaces with the hardware crypto offloader present ++ on RK3568 and RK3588. ++ ++config CRYPTO_DEV_ROCKCHIP2_DEBUG ++ bool "Enable Rockchip V2 crypto stats" ++ depends on CRYPTO_DEV_ROCKCHIP2 ++ depends on DEBUG_FS ++ help ++ Say y to enable Rockchip crypto debug stats. ++ This will create /sys/kernel/debug/rk3588_crypto/stats for displaying ++ the number of requests per algorithm and other internal stats. +--- a/drivers/crypto/rockchip/Makefile ++++ b/drivers/crypto/rockchip/Makefile +@@ -3,3 +3,8 @@ obj-$(CONFIG_CRYPTO_DEV_ROCKCHIP) += rk_ + rk_crypto-objs := rk3288_crypto.o \ + rk3288_crypto_skcipher.o \ + rk3288_crypto_ahash.o ++ ++obj-$(CONFIG_CRYPTO_DEV_ROCKCHIP2) += rk_crypto2.o ++rk_crypto2-objs := rk3588_crypto.o \ ++ rk3588_crypto_skcipher.o \ ++ rk3588_crypto_ahash.o +--- /dev/null ++++ b/drivers/crypto/rockchip/rk3588_crypto.c +@@ -0,0 +1,646 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * hardware cryptographic offloader for rk3568/rk3588 SoC ++ * ++ * Copyright (c) 2022, Corentin Labbe ++ */ ++ ++#include "rk3588_crypto.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static struct rockchip_ip rocklist = { ++ .dev_list = LIST_HEAD_INIT(rocklist.dev_list), ++ .lock = __SPIN_LOCK_UNLOCKED(rocklist.lock), ++}; ++ ++struct rk_crypto_dev *get_rk_crypto(void) ++{ ++ struct rk_crypto_dev *first; ++ ++ spin_lock(&rocklist.lock); ++ first = list_first_entry_or_null(&rocklist.dev_list, ++ struct rk_crypto_dev, list); ++ list_rotate_left(&rocklist.dev_list); ++ spin_unlock(&rocklist.lock); ++ return first; ++} ++ ++static const struct rk_variant rk3568_variant = { ++ .num_clks = 4, ++}; ++ ++static const struct rk_variant rk3588_variant = { ++ .num_clks = 4, ++}; ++ ++static int rk_crypto_get_clks(struct rk_crypto_dev *dev) ++{ ++ int i, j, err; ++ unsigned long cr; ++ ++ dev->num_clks = devm_clk_bulk_get_all(dev->dev, &dev->clks); ++ if (dev->num_clks < dev->variant->num_clks) { ++ dev_err(dev->dev, "Missing clocks, got %d instead of %d\n", ++ dev->num_clks, dev->variant->num_clks); ++ return -EINVAL; ++ } ++ ++ for (i = 0; i < dev->num_clks; i++) { ++ cr = clk_get_rate(dev->clks[i].clk); ++ for (j = 0; j < ARRAY_SIZE(dev->variant->rkclks); j++) { ++ if (dev->variant->rkclks[j].max == 0) ++ continue; ++ if (strcmp(dev->variant->rkclks[j].name, dev->clks[i].id)) ++ continue; ++ if (cr > dev->variant->rkclks[j].max) { ++ err = clk_set_rate(dev->clks[i].clk, ++ dev->variant->rkclks[j].max); ++ if (err) ++ dev_err(dev->dev, "Fail downclocking %s from %lu to %lu\n", ++ dev->variant->rkclks[j].name, cr, ++ dev->variant->rkclks[j].max); ++ else ++ dev_info(dev->dev, "Downclocking %s from %lu to %lu\n", ++ dev->variant->rkclks[j].name, cr, ++ dev->variant->rkclks[j].max); ++ } ++ } ++ } ++ return 0; ++} ++ ++static int rk_crypto_enable_clk(struct rk_crypto_dev *dev) ++{ ++ int err; ++ ++ err = clk_bulk_prepare_enable(dev->num_clks, dev->clks); ++ if (err) ++ dev_err(dev->dev, "Could not enable clock clks\n"); ++ ++ return err; ++} ++ ++static void rk_crypto_disable_clk(struct rk_crypto_dev *dev) ++{ ++ clk_bulk_disable_unprepare(dev->num_clks, dev->clks); ++} ++ ++/* ++ * Power management strategy: The device is suspended until a request ++ * is handled. For avoiding suspend/resume yoyo, the autosuspend is set to 2s. ++ */ ++static int rk_crypto_pm_suspend(struct device *dev) ++{ ++ struct rk_crypto_dev *rkdev = dev_get_drvdata(dev); ++ ++ rk_crypto_disable_clk(rkdev); ++ reset_control_assert(rkdev->rst); ++ ++ return 0; ++} ++ ++static int rk_crypto_pm_resume(struct device *dev) ++{ ++ struct rk_crypto_dev *rkdev = dev_get_drvdata(dev); ++ int ret; ++ ++ ret = rk_crypto_enable_clk(rkdev); ++ if (ret) ++ return ret; ++ ++ reset_control_deassert(rkdev->rst); ++ return 0; ++} ++ ++static const struct dev_pm_ops rk_crypto_pm_ops = { ++ SET_RUNTIME_PM_OPS(rk_crypto_pm_suspend, rk_crypto_pm_resume, NULL) ++}; ++ ++static int rk_crypto_pm_init(struct rk_crypto_dev *rkdev) ++{ ++ int err; ++ ++ pm_runtime_use_autosuspend(rkdev->dev); ++ pm_runtime_set_autosuspend_delay(rkdev->dev, 2000); ++ ++ err = pm_runtime_set_suspended(rkdev->dev); ++ if (err) ++ return err; ++ pm_runtime_enable(rkdev->dev); ++ return err; ++} ++ ++static void rk_crypto_pm_exit(struct rk_crypto_dev *rkdev) ++{ ++ pm_runtime_disable(rkdev->dev); ++} ++ ++static irqreturn_t rk_crypto_irq_handle(int irq, void *dev_id) ++{ ++ struct rk_crypto_dev *rkc = platform_get_drvdata(dev_id); ++ u32 v; ++ ++ v = readl(rkc->reg + RK_CRYPTO_DMA_INT_ST); ++ writel(v, rkc->reg + RK_CRYPTO_DMA_INT_ST); ++ ++ rkc->status = 1; ++ if (v & 0xF8) { ++ dev_warn(rkc->dev, "DMA Error\n"); ++ rkc->status = 0; ++ } ++ complete(&rkc->complete); ++ ++ return IRQ_HANDLED; ++} ++ ++static struct rk_crypto_template rk_cipher_algs[] = { ++ { ++ .type = CRYPTO_ALG_TYPE_SKCIPHER, ++ .alg.skcipher = { ++ .base.cra_name = "ecb(aes)", ++ .base.cra_driver_name = "ecb-aes-rk2", ++ .base.cra_priority = 300, ++ .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, ++ .base.cra_blocksize = AES_BLOCK_SIZE, ++ .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), ++ .base.cra_alignmask = 0x0f, ++ .base.cra_module = THIS_MODULE, ++ ++ .init = rk_cipher_tfm_init, ++ .exit = rk_cipher_tfm_exit, ++ .min_keysize = AES_MIN_KEY_SIZE, ++ .max_keysize = AES_MAX_KEY_SIZE, ++ .setkey = rk_aes_setkey, ++ .encrypt = rk_aes_ecb_encrypt, ++ .decrypt = rk_aes_ecb_decrypt, ++ } ++ }, ++ { ++ .type = CRYPTO_ALG_TYPE_SKCIPHER, ++ .alg.skcipher = { ++ .base.cra_name = "cbc(aes)", ++ .base.cra_driver_name = "cbc-aes-rk2", ++ .base.cra_priority = 300, ++ .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, ++ .base.cra_blocksize = AES_BLOCK_SIZE, ++ .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), ++ .base.cra_alignmask = 0x0f, ++ .base.cra_module = THIS_MODULE, ++ ++ .init = rk_cipher_tfm_init, ++ .exit = rk_cipher_tfm_exit, ++ .min_keysize = AES_MIN_KEY_SIZE, ++ .max_keysize = AES_MAX_KEY_SIZE, ++ .ivsize = AES_BLOCK_SIZE, ++ .setkey = rk_aes_setkey, ++ .encrypt = rk_aes_cbc_encrypt, ++ .decrypt = rk_aes_cbc_decrypt, ++ } ++ }, ++ { ++ .type = CRYPTO_ALG_TYPE_AHASH, ++ .rk_mode = RK_CRYPTO_MD5, ++ .alg.hash = { ++ .init = rk_ahash_init, ++ .update = rk_ahash_update, ++ .final = rk_ahash_final, ++ .finup = rk_ahash_finup, ++ .export = rk_ahash_export, ++ .import = rk_ahash_import, ++ .digest = rk_ahash_digest, ++ .halg = { ++ .digestsize = MD5_DIGEST_SIZE, ++ .statesize = sizeof(struct md5_state), ++ .base = { ++ .cra_name = "md5", ++ .cra_driver_name = "rk2-md5", ++ .cra_priority = 300, ++ .cra_flags = CRYPTO_ALG_ASYNC | ++ CRYPTO_ALG_NEED_FALLBACK, ++ .cra_blocksize = SHA1_BLOCK_SIZE, ++ .cra_ctxsize = sizeof(struct rk_ahash_ctx), ++ .cra_alignmask = 3, ++ .cra_init = rk_cra_hash_init, ++ .cra_exit = rk_cra_hash_exit, ++ .cra_module = THIS_MODULE, ++ } ++ } ++ } ++ }, ++ { ++ .type = CRYPTO_ALG_TYPE_AHASH, ++ .rk_mode = RK_CRYPTO_SHA1, ++ .alg.hash = { ++ .init = rk_ahash_init, ++ .update = rk_ahash_update, ++ .final = rk_ahash_final, ++ .finup = rk_ahash_finup, ++ .export = rk_ahash_export, ++ .import = rk_ahash_import, ++ .digest = rk_ahash_digest, ++ .halg = { ++ .digestsize = SHA1_DIGEST_SIZE, ++ .statesize = sizeof(struct sha1_state), ++ .base = { ++ .cra_name = "sha1", ++ .cra_driver_name = "rk2-sha1", ++ .cra_priority = 300, ++ .cra_flags = CRYPTO_ALG_ASYNC | ++ CRYPTO_ALG_NEED_FALLBACK, ++ .cra_blocksize = SHA1_BLOCK_SIZE, ++ .cra_ctxsize = sizeof(struct rk_ahash_ctx), ++ .cra_alignmask = 3, ++ .cra_init = rk_cra_hash_init, ++ .cra_exit = rk_cra_hash_exit, ++ .cra_module = THIS_MODULE, ++ } ++ } ++ } ++ }, ++ { ++ .type = CRYPTO_ALG_TYPE_AHASH, ++ .rk_mode = RK_CRYPTO_SHA256, ++ .alg.hash = { ++ .init = rk_ahash_init, ++ .update = rk_ahash_update, ++ .final = rk_ahash_final, ++ .finup = rk_ahash_finup, ++ .export = rk_ahash_export, ++ .import = rk_ahash_import, ++ .digest = rk_ahash_digest, ++ .halg = { ++ .digestsize = SHA256_DIGEST_SIZE, ++ .statesize = sizeof(struct sha256_state), ++ .base = { ++ .cra_name = "sha256", ++ .cra_driver_name = "rk2-sha256", ++ .cra_priority = 300, ++ .cra_flags = CRYPTO_ALG_ASYNC | ++ CRYPTO_ALG_NEED_FALLBACK, ++ .cra_blocksize = SHA256_BLOCK_SIZE, ++ .cra_ctxsize = sizeof(struct rk_ahash_ctx), ++ .cra_alignmask = 3, ++ .cra_init = rk_cra_hash_init, ++ .cra_exit = rk_cra_hash_exit, ++ .cra_module = THIS_MODULE, ++ } ++ } ++ } ++ }, ++ { ++ .type = CRYPTO_ALG_TYPE_AHASH, ++ .rk_mode = RK_CRYPTO_SHA384, ++ .alg.hash = { ++ .init = rk_ahash_init, ++ .update = rk_ahash_update, ++ .final = rk_ahash_final, ++ .finup = rk_ahash_finup, ++ .export = rk_ahash_export, ++ .import = rk_ahash_import, ++ .digest = rk_ahash_digest, ++ .halg = { ++ .digestsize = SHA384_DIGEST_SIZE, ++ .statesize = sizeof(struct sha512_state), ++ .base = { ++ .cra_name = "sha384", ++ .cra_driver_name = "rk2-sha384", ++ .cra_priority = 300, ++ .cra_flags = CRYPTO_ALG_ASYNC | ++ CRYPTO_ALG_NEED_FALLBACK, ++ .cra_blocksize = SHA384_BLOCK_SIZE, ++ .cra_ctxsize = sizeof(struct rk_ahash_ctx), ++ .cra_alignmask = 3, ++ .cra_init = rk_cra_hash_init, ++ .cra_exit = rk_cra_hash_exit, ++ .cra_module = THIS_MODULE, ++ } ++ } ++ } ++ }, ++ { ++ .type = CRYPTO_ALG_TYPE_AHASH, ++ .rk_mode = RK_CRYPTO_SHA512, ++ .alg.hash = { ++ .init = rk_ahash_init, ++ .update = rk_ahash_update, ++ .final = rk_ahash_final, ++ .finup = rk_ahash_finup, ++ .export = rk_ahash_export, ++ .import = rk_ahash_import, ++ .digest = rk_ahash_digest, ++ .halg = { ++ .digestsize = SHA512_DIGEST_SIZE, ++ .statesize = sizeof(struct sha512_state), ++ .base = { ++ .cra_name = "sha512", ++ .cra_driver_name = "rk2-sha512", ++ .cra_priority = 300, ++ .cra_flags = CRYPTO_ALG_ASYNC | ++ CRYPTO_ALG_NEED_FALLBACK, ++ .cra_blocksize = SHA512_BLOCK_SIZE, ++ .cra_ctxsize = sizeof(struct rk_ahash_ctx), ++ .cra_alignmask = 3, ++ .cra_init = rk_cra_hash_init, ++ .cra_exit = rk_cra_hash_exit, ++ .cra_module = THIS_MODULE, ++ } ++ } ++ } ++ }, ++ { ++ .type = CRYPTO_ALG_TYPE_AHASH, ++ .rk_mode = RK_CRYPTO_SM3_GENERIC, ++ .alg.hash = { ++ .init = rk_ahash_init, ++ .update = rk_ahash_update, ++ .final = rk_ahash_final, ++ .finup = rk_ahash_finup, ++ .export = rk_ahash_export, ++ .import = rk_ahash_import, ++ .digest = rk_ahash_digest, ++ .halg = { ++ .digestsize = SM3_DIGEST_SIZE, ++ .statesize = sizeof(struct sm3_state), ++ .base = { ++ .cra_name = "sm3", ++ .cra_driver_name = "rk2-sm3", ++ .cra_priority = 300, ++ .cra_flags = CRYPTO_ALG_ASYNC | ++ CRYPTO_ALG_NEED_FALLBACK, ++ .cra_blocksize = SM3_BLOCK_SIZE, ++ .cra_ctxsize = sizeof(struct rk_ahash_ctx), ++ .cra_alignmask = 3, ++ .cra_init = rk_cra_hash_init, ++ .cra_exit = rk_cra_hash_exit, ++ .cra_module = THIS_MODULE, ++ } ++ } ++ } ++ }, ++}; ++ ++#ifdef CONFIG_CRYPTO_DEV_ROCKCHIP2_DEBUG ++static int rk_crypto_debugfs_show(struct seq_file *seq, void *v) ++{ ++ struct rk_crypto_dev *dd; ++ unsigned int i; ++ ++ spin_lock(&rocklist.lock); ++ list_for_each_entry(dd, &rocklist.dev_list, list) { ++ seq_printf(seq, "%s %s requests: %lu\n", ++ dev_driver_string(dd->dev), dev_name(dd->dev), ++ dd->nreq); ++ } ++ spin_unlock(&rocklist.lock); ++ ++ for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) { ++ if (!rk_cipher_algs[i].dev) ++ continue; ++ switch (rk_cipher_algs[i].type) { ++ case CRYPTO_ALG_TYPE_SKCIPHER: ++ seq_printf(seq, "%s %s reqs=%lu fallback=%lu\n", ++ rk_cipher_algs[i].alg.skcipher.base.cra_driver_name, ++ rk_cipher_algs[i].alg.skcipher.base.cra_name, ++ rk_cipher_algs[i].stat_req, rk_cipher_algs[i].stat_fb); ++ seq_printf(seq, "\tfallback due to length: %lu\n", ++ rk_cipher_algs[i].stat_fb_len); ++ seq_printf(seq, "\tfallback due to alignment: %lu\n", ++ rk_cipher_algs[i].stat_fb_align); ++ seq_printf(seq, "\tfallback due to SGs: %lu\n", ++ rk_cipher_algs[i].stat_fb_sgdiff); ++ break; ++ case CRYPTO_ALG_TYPE_AHASH: ++ seq_printf(seq, "%s %s reqs=%lu fallback=%lu\n", ++ rk_cipher_algs[i].alg.hash.halg.base.cra_driver_name, ++ rk_cipher_algs[i].alg.hash.halg.base.cra_name, ++ rk_cipher_algs[i].stat_req, rk_cipher_algs[i].stat_fb); ++ break; ++ } ++ } ++ return 0; ++} ++ ++DEFINE_SHOW_ATTRIBUTE(rk_crypto_debugfs); ++#endif ++ ++static void register_debugfs(struct rk_crypto_dev *crypto_dev) ++{ ++#ifdef CONFIG_CRYPTO_DEV_ROCKCHIP2_DEBUG ++ /* Ignore error of debugfs */ ++ rocklist.dbgfs_dir = debugfs_create_dir("rk3588_crypto", NULL); ++ rocklist.dbgfs_stats = debugfs_create_file("stats", 0444, ++ rocklist.dbgfs_dir, ++ &rocklist, ++ &rk_crypto_debugfs_fops); ++#endif ++} ++ ++static int rk_crypto_register(struct rk_crypto_dev *rkc) ++{ ++ unsigned int i, k; ++ int err = 0; ++ ++ for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) { ++ rk_cipher_algs[i].dev = rkc; ++ switch (rk_cipher_algs[i].type) { ++ case CRYPTO_ALG_TYPE_SKCIPHER: ++ dev_info(rkc->dev, "Register %s as %s\n", ++ rk_cipher_algs[i].alg.skcipher.base.cra_name, ++ rk_cipher_algs[i].alg.skcipher.base.cra_driver_name); ++ err = crypto_register_skcipher(&rk_cipher_algs[i].alg.skcipher); ++ break; ++ case CRYPTO_ALG_TYPE_AHASH: ++ dev_info(rkc->dev, "Register %s as %s\n", ++ rk_cipher_algs[i].alg.hash.halg.base.cra_name, ++ rk_cipher_algs[i].alg.hash.halg.base.cra_driver_name); ++ err = crypto_register_ahash(&rk_cipher_algs[i].alg.hash); ++ break; ++ default: ++ dev_err(rkc->dev, "unknown algorithm\n"); ++ } ++ if (err) ++ goto err_cipher_algs; ++ } ++ return 0; ++ ++err_cipher_algs: ++ for (k = 0; k < i; k++) { ++ if (rk_cipher_algs[i].type == CRYPTO_ALG_TYPE_SKCIPHER) ++ crypto_unregister_skcipher(&rk_cipher_algs[k].alg.skcipher); ++ else ++ crypto_unregister_ahash(&rk_cipher_algs[i].alg.hash); ++ } ++ return err; ++} ++ ++static void rk_crypto_unregister(void) ++{ ++ unsigned int i; ++ ++ for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) { ++ if (rk_cipher_algs[i].type == CRYPTO_ALG_TYPE_SKCIPHER) ++ crypto_unregister_skcipher(&rk_cipher_algs[i].alg.skcipher); ++ else ++ crypto_unregister_ahash(&rk_cipher_algs[i].alg.hash); ++ } ++} ++ ++static const struct of_device_id crypto_of_id_table[] = { ++ { .compatible = "rockchip,rk3568-crypto", ++ .data = &rk3568_variant, ++ }, ++ { .compatible = "rockchip,rk3588-crypto", ++ .data = &rk3588_variant, ++ }, ++ {} ++}; ++MODULE_DEVICE_TABLE(of, crypto_of_id_table); ++ ++static int rk_crypto_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct rk_crypto_dev *rkc, *first; ++ int err = 0; ++ ++ rkc = devm_kzalloc(&pdev->dev, sizeof(*rkc), GFP_KERNEL); ++ if (!rkc) { ++ err = -ENOMEM; ++ goto err_crypto; ++ } ++ ++ rkc->dev = &pdev->dev; ++ platform_set_drvdata(pdev, rkc); ++ ++ rkc->variant = of_device_get_match_data(&pdev->dev); ++ if (!rkc->variant) { ++ dev_err(&pdev->dev, "Missing variant\n"); ++ return -EINVAL; ++ } ++ ++ rkc->rst = devm_reset_control_array_get_exclusive(dev); ++ if (IS_ERR(rkc->rst)) { ++ err = PTR_ERR(rkc->rst); ++ goto err_crypto; ++ } ++ ++ rkc->tl = dma_alloc_coherent(rkc->dev, ++ sizeof(struct rk_crypto_lli) * MAX_LLI, ++ &rkc->t_phy, GFP_KERNEL); ++ if (!rkc->tl) { ++ dev_err(rkc->dev, "Cannot get DMA memory for task\n"); ++ err = -ENOMEM; ++ goto err_crypto; ++ } ++ ++ reset_control_assert(rkc->rst); ++ usleep_range(10, 20); ++ reset_control_deassert(rkc->rst); ++ ++ rkc->reg = devm_platform_ioremap_resource(pdev, 0); ++ if (IS_ERR(rkc->reg)) { ++ err = PTR_ERR(rkc->reg); ++ goto err_crypto; ++ } ++ ++ err = rk_crypto_get_clks(rkc); ++ if (err) ++ goto err_crypto; ++ ++ rkc->irq = platform_get_irq(pdev, 0); ++ if (rkc->irq < 0) { ++ dev_err(&pdev->dev, "control Interrupt is not available.\n"); ++ err = rkc->irq; ++ goto err_crypto; ++ } ++ ++ err = devm_request_irq(&pdev->dev, rkc->irq, ++ rk_crypto_irq_handle, IRQF_SHARED, ++ "rk-crypto", pdev); ++ ++ if (err) { ++ dev_err(&pdev->dev, "irq request failed.\n"); ++ goto err_crypto; ++ } ++ ++ rkc->engine = crypto_engine_alloc_init(&pdev->dev, true); ++ crypto_engine_start(rkc->engine); ++ init_completion(&rkc->complete); ++ ++ err = rk_crypto_pm_init(rkc); ++ if (err) ++ goto err_pm; ++ ++ err = pm_runtime_resume_and_get(&pdev->dev); ++ ++ spin_lock(&rocklist.lock); ++ first = list_first_entry_or_null(&rocklist.dev_list, ++ struct rk_crypto_dev, list); ++ list_add_tail(&rkc->list, &rocklist.dev_list); ++ spin_unlock(&rocklist.lock); ++ ++ if (!first) { ++ dev_info(dev, "Registers crypto algos\n"); ++ err = rk_crypto_register(rkc); ++ if (err) { ++ dev_err(dev, "Fail to register crypto algorithms"); ++ goto err_register_alg; ++ } ++ ++ register_debugfs(rkc); ++ } ++ ++ return 0; ++ ++err_register_alg: ++ rk_crypto_pm_exit(rkc); ++err_pm: ++ crypto_engine_exit(rkc->engine); ++err_crypto: ++ dev_err(dev, "Crypto Accelerator not successfully registered\n"); ++ return err; ++} ++ ++static int rk_crypto_remove(struct platform_device *pdev) ++{ ++ struct rk_crypto_dev *crypto_tmp = platform_get_drvdata(pdev); ++ struct rk_crypto_dev *first; ++ ++ spin_lock_bh(&rocklist.lock); ++ list_del(&crypto_tmp->list); ++ first = list_first_entry_or_null(&rocklist.dev_list, ++ struct rk_crypto_dev, list); ++ spin_unlock_bh(&rocklist.lock); ++ ++ if (!first) { ++#ifdef CONFIG_CRYPTO_DEV_ROCKCHIP2_DEBUG ++ debugfs_remove_recursive(rocklist.dbgfs_dir); ++#endif ++ rk_crypto_unregister(); ++ } ++ rk_crypto_pm_exit(crypto_tmp); ++ crypto_engine_exit(crypto_tmp->engine); ++ return 0; ++} ++ ++static struct platform_driver crypto_driver = { ++ .probe = rk_crypto_probe, ++ .remove = rk_crypto_remove, ++ .driver = { ++ .name = "rk3588-crypto", ++ .pm = &rk_crypto_pm_ops, ++ .of_match_table = crypto_of_id_table, ++ }, ++}; ++ ++module_platform_driver(crypto_driver); ++ ++MODULE_DESCRIPTION("Rockchip Crypto Engine cryptographic offloader"); ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Corentin Labbe "); +--- /dev/null ++++ b/drivers/crypto/rockchip/rk3588_crypto.h +@@ -0,0 +1,221 @@ ++/* SPDX-License-Identifier: GPL-2.0 */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define RK_CRYPTO_CLK_CTL 0x0000 ++#define RK_CRYPTO_RST_CTL 0x0004 ++ ++#define RK_CRYPTO_DMA_INT_EN 0x0008 ++/* values for RK_CRYPTO_DMA_INT_EN */ ++#define RK_CRYPTO_DMA_INT_LISTDONE BIT(0) ++ ++#define RK_CRYPTO_DMA_INT_ST 0x000C ++/* values in RK_CRYPTO_DMA_INT_ST are the same than in RK_CRYPTO_DMA_INT_EN */ ++ ++#define RK_CRYPTO_DMA_CTL 0x0010 ++#define RK_CRYPTO_DMA_CTL_START BIT(0) ++ ++#define RK_CRYPTO_DMA_LLI_ADDR 0x0014 ++ ++#define RK_CRYPTO_FIFO_CTL 0x0040 ++ ++#define RK_CRYPTO_BC_CTL 0x0044 ++#define RK_CRYPTO_AES (0 << 8) ++#define RK_CRYPTO_MODE_ECB (0 << 4) ++#define RK_CRYPTO_MODE_CBC (1 << 4) ++ ++#define RK_CRYPTO_HASH_CTL 0x0048 ++#define RK_CRYPTO_HW_PAD BIT(2) ++#define RK_CRYPTO_SHA1 (0 << 4) ++#define RK_CRYPTO_MD5 (1 << 4) ++#define RK_CRYPTO_SHA224 (3 << 4) ++#define RK_CRYPTO_SHA256 (2 << 4) ++#define RK_CRYPTO_SHA384 (9 << 4) ++#define RK_CRYPTO_SHA512 (8 << 4) ++#define RK_CRYPTO_SM3_GENERIC (4 << 4) ++ ++#define RK_CRYPTO_AES_ECB_MODE (RK_CRYPTO_AES | RK_CRYPTO_MODE_ECB) ++#define RK_CRYPTO_AES_CBC_MODE (RK_CRYPTO_AES | RK_CRYPTO_MODE_CBC) ++#define RK_CRYPTO_AES_CTR_MODE 3 ++#define RK_CRYPTO_AES_128BIT_key (0 << 2) ++#define RK_CRYPTO_AES_192BIT_key (1 << 2) ++#define RK_CRYPTO_AES_256BIT_key (2 << 2) ++ ++#define RK_CRYPTO_DEC BIT(1) ++#define RK_CRYPTO_ENABLE BIT(0) ++ ++#define RK_CRYPTO_CH0_IV_0 0x0100 ++ ++#define RK_CRYPTO_KEY0 0x0180 ++#define RK_CRYPTO_KEY1 0x0184 ++#define RK_CRYPTO_KEY2 0x0188 ++#define RK_CRYPTO_KEY3 0x018C ++#define RK_CRYPTO_KEY4 0x0190 ++#define RK_CRYPTO_KEY5 0x0194 ++#define RK_CRYPTO_KEY6 0x0198 ++#define RK_CRYPTO_KEY7 0x019C ++ ++#define RK_CRYPTO_CH0_PC_LEN_0 0x0280 ++ ++#define RK_CRYPTO_CH0_IV_LEN 0x0300 ++ ++#define RK_CRYPTO_HASH_DOUT_0 0x03A0 ++#define RK_CRYPTO_HASH_VALID 0x03E4 ++ ++#define CRYPTO_AES_VERSION 0x0680 ++#define CRYPTO_DES_VERSION 0x0684 ++#define CRYPTO_SM4_VERSION 0x0688 ++#define CRYPTO_HASH_VERSION 0x068C ++#define CRYPTO_HMAC_VERSION 0x0690 ++#define CRYPTO_RNG_VERSION 0x0694 ++#define CRYPTO_PKA_VERSION 0x0698 ++#define CRYPTO_CRYPTO_VERSION 0x06F0 ++ ++#define RK_LLI_DMA_CTRL_SRC_INT BIT(10) ++#define RK_LLI_DMA_CTRL_DST_INT BIT(9) ++#define RK_LLI_DMA_CTRL_LIST_INT BIT(8) ++#define RK_LLI_DMA_CTRL_LAST BIT(0) ++ ++#define RK_LLI_STRING_LAST BIT(2) ++#define RK_LLI_STRING_FIRST BIT(1) ++#define RK_LLI_CIPHER_START BIT(0) ++ ++#define RK_MAX_CLKS 4 ++ ++/* there are no hw limit, but we need to choose a maximum of descriptor to allocate */ ++#define MAX_LLI 20 ++ ++struct rk_crypto_lli { ++ __le32 src_addr; ++ __le32 src_len; ++ __le32 dst_addr; ++ __le32 dst_len; ++ __le32 user; ++ __le32 iv; ++ __le32 dma_ctrl; ++ __le32 next; ++}; ++ ++/* ++ * struct rockchip_ip - struct for managing a list of RK crypto instance ++ * @dev_list: Used for doing a list of rk_crypto_dev ++ * @lock: Control access to dev_list ++ * @dbgfs_dir: Debugfs dentry for statistic directory ++ * @dbgfs_stats: Debugfs dentry for statistic counters ++ */ ++struct rockchip_ip { ++ struct list_head dev_list; ++ spinlock_t lock; /* Control access to dev_list */ ++ struct dentry *dbgfs_dir; ++ struct dentry *dbgfs_stats; ++}; ++ ++struct rk_clks { ++ const char *name; ++ unsigned long max; ++}; ++ ++struct rk_variant { ++ int num_clks; ++ struct rk_clks rkclks[RK_MAX_CLKS]; ++}; ++ ++struct rk_crypto_dev { ++ struct list_head list; ++ struct device *dev; ++ struct clk_bulk_data *clks; ++ int num_clks; ++ struct reset_control *rst; ++ void __iomem *reg; ++ int irq; ++ const struct rk_variant *variant; ++ unsigned long nreq; ++ struct crypto_engine *engine; ++ struct completion complete; ++ int status; ++ struct rk_crypto_lli *tl; ++ dma_addr_t t_phy; ++}; ++ ++/* the private variable of hash */ ++struct rk_ahash_ctx { ++ struct crypto_engine_ctx enginectx; ++ /* for fallback */ ++ struct crypto_ahash *fallback_tfm; ++}; ++ ++/* the private variable of hash for fallback */ ++struct rk_ahash_rctx { ++ struct rk_crypto_dev *dev; ++ struct ahash_request fallback_req; ++ u32 mode; ++ int nrsgs; ++}; ++ ++/* the private variable of cipher */ ++struct rk_cipher_ctx { ++ struct crypto_engine_ctx enginectx; ++ unsigned int keylen; ++ u8 key[AES_MAX_KEY_SIZE]; ++ u8 iv[AES_BLOCK_SIZE]; ++ struct crypto_skcipher *fallback_tfm; ++}; ++ ++struct rk_cipher_rctx { ++ struct rk_crypto_dev *dev; ++ u8 backup_iv[AES_BLOCK_SIZE]; ++ u32 mode; ++ struct skcipher_request fallback_req; // keep at the end ++}; ++ ++struct rk_crypto_template { ++ u32 type; ++ u32 rk_mode; ++ struct rk_crypto_dev *dev; ++ union { ++ struct skcipher_alg skcipher; ++ struct ahash_alg hash; ++ } alg; ++ unsigned long stat_req; ++ unsigned long stat_fb; ++ unsigned long stat_fb_len; ++ unsigned long stat_fb_sglen; ++ unsigned long stat_fb_align; ++ unsigned long stat_fb_sgdiff; ++}; ++ ++struct rk_crypto_dev *get_rk_crypto(void); ++ ++int rk_cipher_tfm_init(struct crypto_skcipher *tfm); ++void rk_cipher_tfm_exit(struct crypto_skcipher *tfm); ++int rk_aes_setkey(struct crypto_skcipher *cipher, const u8 *key, ++ unsigned int keylen); ++int rk_aes_ecb_encrypt(struct skcipher_request *req); ++int rk_aes_ecb_decrypt(struct skcipher_request *req); ++int rk_aes_cbc_encrypt(struct skcipher_request *req); ++int rk_aes_cbc_decrypt(struct skcipher_request *req); ++ ++int rk_ahash_init(struct ahash_request *req); ++int rk_ahash_update(struct ahash_request *req); ++int rk_ahash_final(struct ahash_request *req); ++int rk_ahash_finup(struct ahash_request *req); ++int rk_ahash_import(struct ahash_request *req, const void *in); ++int rk_ahash_export(struct ahash_request *req, void *out); ++int rk_ahash_digest(struct ahash_request *req); ++int rk_cra_hash_init(struct crypto_tfm *tfm); ++void rk_cra_hash_exit(struct crypto_tfm *tfm); +--- /dev/null ++++ b/drivers/crypto/rockchip/rk3588_crypto_ahash.c +@@ -0,0 +1,346 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++/* ++ * Crypto acceleration support for Rockchip RK3588 ++ * ++ * Copyright (c) 2022 Corentin Labbe ++ */ ++#include ++#include ++#include "rk3588_crypto.h" ++ ++static bool rk_ahash_need_fallback(struct ahash_request *areq) ++{ ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); ++ struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.hash); ++ struct scatterlist *sg; ++ ++ sg = areq->src; ++ while (sg) { ++ if (!IS_ALIGNED(sg->offset, sizeof(u32))) { ++ algt->stat_fb_align++; ++ return true; ++ } ++ if (sg->length % 4) { ++ algt->stat_fb_sglen++; ++ return true; ++ } ++ sg = sg_next(sg); ++ } ++ return false; ++} ++ ++static int rk_ahash_digest_fb(struct ahash_request *areq) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); ++ struct rk_ahash_ctx *tfmctx = crypto_ahash_ctx(tfm); ++ struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.hash); ++ ++ algt->stat_fb++; ++ ++ ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); ++ rctx->fallback_req.base.flags = areq->base.flags & ++ CRYPTO_TFM_REQ_MAY_SLEEP; ++ ++ rctx->fallback_req.nbytes = areq->nbytes; ++ rctx->fallback_req.src = areq->src; ++ rctx->fallback_req.result = areq->result; ++ ++ return crypto_ahash_digest(&rctx->fallback_req); ++} ++ ++static int zero_message_process(struct ahash_request *req) ++{ ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); ++ struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.hash); ++ int digestsize = crypto_ahash_digestsize(tfm); ++ ++ switch (algt->rk_mode) { ++ case RK_CRYPTO_SHA1: ++ memcpy(req->result, sha1_zero_message_hash, digestsize); ++ break; ++ case RK_CRYPTO_SHA256: ++ memcpy(req->result, sha256_zero_message_hash, digestsize); ++ break; ++ case RK_CRYPTO_SHA384: ++ memcpy(req->result, sha384_zero_message_hash, digestsize); ++ break; ++ case RK_CRYPTO_SHA512: ++ memcpy(req->result, sha512_zero_message_hash, digestsize); ++ break; ++ case RK_CRYPTO_MD5: ++ memcpy(req->result, md5_zero_message_hash, digestsize); ++ break; ++ case RK_CRYPTO_SM3_GENERIC: ++ memcpy(req->result, sm3_zero_message_hash, digestsize); ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++int rk_ahash_init(struct ahash_request *req) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(req); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); ++ struct rk_ahash_ctx *ctx = crypto_ahash_ctx(tfm); ++ ++ ahash_request_set_tfm(&rctx->fallback_req, ctx->fallback_tfm); ++ rctx->fallback_req.base.flags = req->base.flags & ++ CRYPTO_TFM_REQ_MAY_SLEEP; ++ ++ return crypto_ahash_init(&rctx->fallback_req); ++} ++ ++int rk_ahash_update(struct ahash_request *req) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(req); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); ++ struct rk_ahash_ctx *ctx = crypto_ahash_ctx(tfm); ++ ++ ahash_request_set_tfm(&rctx->fallback_req, ctx->fallback_tfm); ++ rctx->fallback_req.base.flags = req->base.flags & ++ CRYPTO_TFM_REQ_MAY_SLEEP; ++ rctx->fallback_req.nbytes = req->nbytes; ++ rctx->fallback_req.src = req->src; ++ ++ return crypto_ahash_update(&rctx->fallback_req); ++} ++ ++int rk_ahash_final(struct ahash_request *req) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(req); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); ++ struct rk_ahash_ctx *ctx = crypto_ahash_ctx(tfm); ++ ++ ahash_request_set_tfm(&rctx->fallback_req, ctx->fallback_tfm); ++ rctx->fallback_req.base.flags = req->base.flags & ++ CRYPTO_TFM_REQ_MAY_SLEEP; ++ rctx->fallback_req.result = req->result; ++ ++ return crypto_ahash_final(&rctx->fallback_req); ++} ++ ++int rk_ahash_finup(struct ahash_request *req) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(req); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); ++ struct rk_ahash_ctx *ctx = crypto_ahash_ctx(tfm); ++ ++ ahash_request_set_tfm(&rctx->fallback_req, ctx->fallback_tfm); ++ rctx->fallback_req.base.flags = req->base.flags & ++ CRYPTO_TFM_REQ_MAY_SLEEP; ++ ++ rctx->fallback_req.nbytes = req->nbytes; ++ rctx->fallback_req.src = req->src; ++ rctx->fallback_req.result = req->result; ++ ++ return crypto_ahash_finup(&rctx->fallback_req); ++} ++ ++int rk_ahash_import(struct ahash_request *req, const void *in) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(req); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); ++ struct rk_ahash_ctx *ctx = crypto_ahash_ctx(tfm); ++ ++ ahash_request_set_tfm(&rctx->fallback_req, ctx->fallback_tfm); ++ rctx->fallback_req.base.flags = req->base.flags & ++ CRYPTO_TFM_REQ_MAY_SLEEP; ++ ++ return crypto_ahash_import(&rctx->fallback_req, in); ++} ++ ++int rk_ahash_export(struct ahash_request *req, void *out) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(req); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); ++ struct rk_ahash_ctx *ctx = crypto_ahash_ctx(tfm); ++ ++ ahash_request_set_tfm(&rctx->fallback_req, ctx->fallback_tfm); ++ rctx->fallback_req.base.flags = req->base.flags & ++ CRYPTO_TFM_REQ_MAY_SLEEP; ++ ++ return crypto_ahash_export(&rctx->fallback_req, out); ++} ++ ++int rk_ahash_digest(struct ahash_request *req) ++{ ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(req); ++ struct rk_crypto_dev *dev; ++ struct crypto_engine *engine; ++ ++ if (rk_ahash_need_fallback(req)) ++ return rk_ahash_digest_fb(req); ++ ++ if (!req->nbytes) ++ return zero_message_process(req); ++ ++ dev = get_rk_crypto(); ++ ++ rctx->dev = dev; ++ engine = dev->engine; ++ ++ return crypto_transfer_hash_request_to_engine(engine, req); ++} ++ ++static int rk_hash_prepare(struct crypto_engine *engine, void *breq) ++{ ++ struct ahash_request *areq = container_of(breq, struct ahash_request, base); ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); ++ struct rk_crypto_dev *rkc = rctx->dev; ++ int ret; ++ ++ ret = dma_map_sg(rkc->dev, areq->src, sg_nents(areq->src), DMA_TO_DEVICE); ++ if (ret <= 0) ++ return -EINVAL; ++ ++ rctx->nrsgs = ret; ++ ++ return 0; ++} ++ ++static int rk_hash_unprepare(struct crypto_engine *engine, void *breq) ++{ ++ struct ahash_request *areq = container_of(breq, struct ahash_request, base); ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); ++ struct rk_crypto_dev *rkc = rctx->dev; ++ ++ dma_unmap_sg(rkc->dev, areq->src, rctx->nrsgs, DMA_TO_DEVICE); ++ return 0; ++} ++ ++static int rk_hash_run(struct crypto_engine *engine, void *breq) ++{ ++ struct ahash_request *areq = container_of(breq, struct ahash_request, base); ++ struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); ++ struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); ++ struct ahash_alg *alg = __crypto_ahash_alg(tfm->base.__crt_alg); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.hash); ++ struct scatterlist *sgs = areq->src; ++ struct rk_crypto_dev *rkc = rctx->dev; ++ struct rk_crypto_lli *dd = &rkc->tl[0]; ++ int ddi = 0; ++ int err = 0; ++ unsigned int len = areq->nbytes; ++ unsigned int todo; ++ u32 v; ++ int i; ++ ++ err = pm_runtime_resume_and_get(rkc->dev); ++ if (err) ++ return err; ++ ++ dev_dbg(rkc->dev, "%s %s len=%d\n", __func__, ++ crypto_tfm_alg_name(areq->base.tfm), areq->nbytes); ++ ++ algt->stat_req++; ++ rkc->nreq++; ++ ++ rctx->mode = algt->rk_mode; ++ rctx->mode |= 0xffff0000; ++ rctx->mode |= RK_CRYPTO_ENABLE | RK_CRYPTO_HW_PAD; ++ writel(rctx->mode, rkc->reg + RK_CRYPTO_HASH_CTL); ++ ++ while (sgs && len > 0) { ++ dd = &rkc->tl[ddi]; ++ ++ todo = min(sg_dma_len(sgs), len); ++ dd->src_addr = sg_dma_address(sgs); ++ dd->src_len = todo; ++ dd->dst_addr = 0; ++ dd->dst_len = 0; ++ dd->dma_ctrl = ddi << 24; ++ dd->iv = 0; ++ dd->next = rkc->t_phy + sizeof(struct rk_crypto_lli) * (ddi + 1); ++ ++ if (ddi == 0) ++ dd->user = RK_LLI_CIPHER_START | RK_LLI_STRING_FIRST; ++ else ++ dd->user = 0; ++ ++ len -= todo; ++ dd->dma_ctrl |= RK_LLI_DMA_CTRL_SRC_INT; ++ if (len == 0) { ++ dd->user |= RK_LLI_STRING_LAST; ++ dd->dma_ctrl |= RK_LLI_DMA_CTRL_LAST; ++ } ++ dev_dbg(rkc->dev, "HASH SG %d sglen=%d user=%x dma=%x mode=%x len=%d todo=%d phy=%llx\n", ++ ddi, sgs->length, dd->user, dd->dma_ctrl, rctx->mode, len, todo, rkc->t_phy); ++ ++ sgs = sg_next(sgs); ++ ddi++; ++ } ++ dd->next = 1; ++ writel(RK_CRYPTO_DMA_INT_LISTDONE | 0x7F, rkc->reg + RK_CRYPTO_DMA_INT_EN); ++ ++ writel(rkc->t_phy, rkc->reg + RK_CRYPTO_DMA_LLI_ADDR); ++ ++ reinit_completion(&rkc->complete); ++ rkc->status = 0; ++ ++ writel(RK_CRYPTO_DMA_CTL_START | 1 << 16, rkc->reg + RK_CRYPTO_DMA_CTL); ++ ++ wait_for_completion_interruptible_timeout(&rkc->complete, ++ msecs_to_jiffies(2000)); ++ if (!rkc->status) { ++ dev_err(rkc->dev, "DMA timeout\n"); ++ err = -EFAULT; ++ goto theend; ++ } ++ ++ readl_poll_timeout_atomic(rkc->reg + RK_CRYPTO_HASH_VALID, v, v == 1, ++ 10, 1000); ++ ++ for (i = 0; i < crypto_ahash_digestsize(tfm) / 4; i++) { ++ v = readl(rkc->reg + RK_CRYPTO_HASH_DOUT_0 + i * 4); ++ put_unaligned_le32(be32_to_cpu(v), areq->result + i * 4); ++ } ++ ++theend: ++ pm_runtime_put_autosuspend(rkc->dev); ++ ++ local_bh_disable(); ++ crypto_finalize_hash_request(engine, breq, err); ++ local_bh_enable(); ++ ++ return 0; ++} ++ ++int rk_cra_hash_init(struct crypto_tfm *tfm) ++{ ++ struct rk_ahash_ctx *tctx = crypto_tfm_ctx(tfm); ++ const char *alg_name = crypto_tfm_alg_name(tfm); ++ struct ahash_alg *alg = __crypto_ahash_alg(tfm->__crt_alg); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.hash); ++ ++ /* for fallback */ ++ tctx->fallback_tfm = crypto_alloc_ahash(alg_name, 0, ++ CRYPTO_ALG_NEED_FALLBACK); ++ if (IS_ERR(tctx->fallback_tfm)) { ++ dev_err(algt->dev->dev, "Could not load fallback driver.\n"); ++ return PTR_ERR(tctx->fallback_tfm); ++ } ++ ++ crypto_ahash_set_reqsize(__crypto_ahash_cast(tfm), ++ sizeof(struct rk_ahash_rctx) + ++ crypto_ahash_reqsize(tctx->fallback_tfm)); ++ ++ tctx->enginectx.op.do_one_request = rk_hash_run; ++ tctx->enginectx.op.prepare_request = rk_hash_prepare; ++ tctx->enginectx.op.unprepare_request = rk_hash_unprepare; ++ ++ return 0; ++} ++ ++void rk_cra_hash_exit(struct crypto_tfm *tfm) ++{ ++ struct rk_ahash_ctx *tctx = crypto_tfm_ctx(tfm); ++ ++ crypto_free_ahash(tctx->fallback_tfm); ++} +--- /dev/null ++++ b/drivers/crypto/rockchip/rk3588_crypto_skcipher.c +@@ -0,0 +1,340 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * hardware cryptographic offloader for rk3568/rk3588 SoC ++ * ++ * Copyright (c) 2022 Corentin Labbe ++ */ ++#include ++#include "rk3588_crypto.h" ++ ++static int rk_cipher_need_fallback(struct skcipher_request *req) ++{ ++ struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); ++ struct skcipher_alg *alg = crypto_skcipher_alg(tfm); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.skcipher); ++ struct scatterlist *sgs, *sgd; ++ unsigned int stodo, dtodo, len; ++ unsigned int bs = crypto_skcipher_blocksize(tfm); ++ ++ if (!req->cryptlen) ++ return true; ++ ++ len = req->cryptlen; ++ sgs = req->src; ++ sgd = req->dst; ++ while (sgs && sgd) { ++ if (!IS_ALIGNED(sgs->offset, sizeof(u32))) { ++ algt->stat_fb_align++; ++ return true; ++ } ++ if (!IS_ALIGNED(sgd->offset, sizeof(u32))) { ++ algt->stat_fb_align++; ++ return true; ++ } ++ stodo = min(len, sgs->length); ++ if (stodo % bs) { ++ algt->stat_fb_len++; ++ return true; ++ } ++ dtodo = min(len, sgd->length); ++ if (dtodo % bs) { ++ algt->stat_fb_len++; ++ return true; ++ } ++ if (stodo != dtodo) { ++ algt->stat_fb_sgdiff++; ++ return true; ++ } ++ len -= stodo; ++ sgs = sg_next(sgs); ++ sgd = sg_next(sgd); ++ } ++ return false; ++} ++ ++static int rk_cipher_fallback(struct skcipher_request *areq) ++{ ++ struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq); ++ struct rk_cipher_ctx *op = crypto_skcipher_ctx(tfm); ++ struct rk_cipher_rctx *rctx = skcipher_request_ctx(areq); ++ struct skcipher_alg *alg = crypto_skcipher_alg(tfm); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.skcipher); ++ int err; ++ ++ algt->stat_fb++; ++ ++ skcipher_request_set_tfm(&rctx->fallback_req, op->fallback_tfm); ++ skcipher_request_set_callback(&rctx->fallback_req, areq->base.flags, ++ areq->base.complete, areq->base.data); ++ skcipher_request_set_crypt(&rctx->fallback_req, areq->src, areq->dst, ++ areq->cryptlen, areq->iv); ++ if (rctx->mode & RK_CRYPTO_DEC) ++ err = crypto_skcipher_decrypt(&rctx->fallback_req); ++ else ++ err = crypto_skcipher_encrypt(&rctx->fallback_req); ++ return err; ++} ++ ++static int rk_cipher_handle_req(struct skcipher_request *req) ++{ ++ struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); ++ struct rk_crypto_dev *rkc; ++ struct crypto_engine *engine; ++ ++ if (rk_cipher_need_fallback(req)) ++ return rk_cipher_fallback(req); ++ ++ rkc = get_rk_crypto(); ++ ++ engine = rkc->engine; ++ rctx->dev = rkc; ++ ++ return crypto_transfer_skcipher_request_to_engine(engine, req); ++} ++ ++int rk_aes_setkey(struct crypto_skcipher *cipher, const u8 *key, ++ unsigned int keylen) ++{ ++ struct crypto_tfm *tfm = crypto_skcipher_tfm(cipher); ++ struct rk_cipher_ctx *ctx = crypto_tfm_ctx(tfm); ++ ++ if (keylen != AES_KEYSIZE_128 && keylen != AES_KEYSIZE_192 && ++ keylen != AES_KEYSIZE_256) ++ return -EINVAL; ++ ctx->keylen = keylen; ++ memcpy(ctx->key, key, keylen); ++ ++ return crypto_skcipher_setkey(ctx->fallback_tfm, key, keylen); ++} ++ ++int rk_aes_ecb_encrypt(struct skcipher_request *req) ++{ ++ struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); ++ ++ rctx->mode = RK_CRYPTO_AES_ECB_MODE; ++ return rk_cipher_handle_req(req); ++} ++ ++int rk_aes_ecb_decrypt(struct skcipher_request *req) ++{ ++ struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); ++ ++ rctx->mode = RK_CRYPTO_AES_ECB_MODE | RK_CRYPTO_DEC; ++ return rk_cipher_handle_req(req); ++} ++ ++int rk_aes_cbc_encrypt(struct skcipher_request *req) ++{ ++ struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); ++ ++ rctx->mode = RK_CRYPTO_AES_CBC_MODE; ++ return rk_cipher_handle_req(req); ++} ++ ++int rk_aes_cbc_decrypt(struct skcipher_request *req) ++{ ++ struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); ++ ++ rctx->mode = RK_CRYPTO_AES_CBC_MODE | RK_CRYPTO_DEC; ++ return rk_cipher_handle_req(req); ++} ++ ++static int rk_cipher_run(struct crypto_engine *engine, void *async_req) ++{ ++ struct skcipher_request *areq = container_of(async_req, struct skcipher_request, base); ++ struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq); ++ struct rk_cipher_rctx *rctx = skcipher_request_ctx(areq); ++ struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); ++ struct scatterlist *sgs, *sgd; ++ int err = 0; ++ int ivsize = crypto_skcipher_ivsize(tfm); ++ unsigned int len = areq->cryptlen; ++ unsigned int todo; ++ struct skcipher_alg *alg = crypto_skcipher_alg(tfm); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.skcipher); ++ struct rk_crypto_dev *rkc = rctx->dev; ++ struct rk_crypto_lli *dd = &rkc->tl[0]; ++ u32 m, v; ++ u32 *rkey = (u32 *)ctx->key; ++ u32 *riv = (u32 *)areq->iv; ++ int i; ++ unsigned int offset; ++ ++ err = pm_runtime_resume_and_get(rkc->dev); ++ if (err) ++ return err; ++ ++ algt->stat_req++; ++ rkc->nreq++; ++ ++ m = rctx->mode | RK_CRYPTO_ENABLE; ++ switch (ctx->keylen) { ++ case AES_KEYSIZE_128: ++ m |= RK_CRYPTO_AES_128BIT_key; ++ break; ++ case AES_KEYSIZE_192: ++ m |= RK_CRYPTO_AES_192BIT_key; ++ break; ++ case AES_KEYSIZE_256: ++ m |= RK_CRYPTO_AES_256BIT_key; ++ break; ++ } ++ /* the upper bits are a write enable mask, so we need to write 1 to all ++ * upper 16 bits to allow write to the 16 lower bits ++ */ ++ m |= 0xffff0000; ++ ++ dev_dbg(rkc->dev, "%s %s len=%u keylen=%u mode=%x\n", __func__, ++ crypto_tfm_alg_name(areq->base.tfm), ++ areq->cryptlen, ctx->keylen, m); ++ sgs = areq->src; ++ sgd = areq->dst; ++ ++ while (sgs && sgd && len) { ++ ivsize = crypto_skcipher_ivsize(tfm); ++ if (areq->iv && crypto_skcipher_ivsize(tfm) > 0) { ++ if (rctx->mode & RK_CRYPTO_DEC) { ++ offset = sgs->length - ivsize; ++ scatterwalk_map_and_copy(rctx->backup_iv, sgs, ++ offset, ivsize, 0); ++ } ++ } ++ ++ if (sgs == sgd) { ++ err = dma_map_sg(rkc->dev, sgs, 1, DMA_BIDIRECTIONAL); ++ if (err != 1) { ++ dev_err(rkc->dev, "Invalid sg number %d\n", err); ++ err = -EINVAL; ++ goto theend; ++ } ++ } else { ++ err = dma_map_sg(rkc->dev, sgs, 1, DMA_TO_DEVICE); ++ if (err != 1) { ++ dev_err(rkc->dev, "Invalid sg number %d\n", err); ++ err = -EINVAL; ++ goto theend; ++ } ++ err = dma_map_sg(rkc->dev, sgd, 1, DMA_FROM_DEVICE); ++ if (err != 1) { ++ dev_err(rkc->dev, "Invalid sg number %d\n", err); ++ err = -EINVAL; ++ dma_unmap_sg(rkc->dev, sgs, 1, DMA_TO_DEVICE); ++ goto theend; ++ } ++ } ++ err = 0; ++ writel(m, rkc->reg + RK_CRYPTO_BC_CTL); ++ ++ for (i = 0; i < ctx->keylen / 4; i++) { ++ v = cpu_to_be32(rkey[i]); ++ writel(v, rkc->reg + RK_CRYPTO_KEY0 + i * 4); ++ } ++ ++ if (ivsize) { ++ for (i = 0; i < ivsize / 4; i++) ++ writel(cpu_to_be32(riv[i]), ++ rkc->reg + RK_CRYPTO_CH0_IV_0 + i * 4); ++ writel(ivsize, rkc->reg + RK_CRYPTO_CH0_IV_LEN); ++ } ++ if (!sgs->length) { ++ sgs = sg_next(sgs); ++ sgd = sg_next(sgd); ++ continue; ++ } ++ ++ /* The hw support multiple descriptor, so why this driver use ++ * only one descritor ? ++ * Using one descriptor per SG seems the way to do and it works ++ * but only when doing encryption. ++ * With decryption it always fail on second descriptor. ++ * Probably the HW dont know how to use IV. ++ */ ++ todo = min(sg_dma_len(sgs), len); ++ len -= todo; ++ dd->src_addr = sg_dma_address(sgs); ++ dd->src_len = todo; ++ dd->dst_addr = sg_dma_address(sgd); ++ dd->dst_len = todo; ++ dd->iv = 0; ++ dd->next = 1; ++ ++ dd->user = RK_LLI_CIPHER_START | RK_LLI_STRING_FIRST | RK_LLI_STRING_LAST; ++ dd->dma_ctrl |= RK_LLI_DMA_CTRL_DST_INT | RK_LLI_DMA_CTRL_LAST; ++ ++ writel(RK_CRYPTO_DMA_INT_LISTDONE | 0x7F, rkc->reg + RK_CRYPTO_DMA_INT_EN); ++ ++ writel(rkc->t_phy, rkc->reg + RK_CRYPTO_DMA_LLI_ADDR); ++ ++ reinit_completion(&rkc->complete); ++ rkc->status = 0; ++ ++ writel(RK_CRYPTO_DMA_CTL_START | 1 << 16, rkc->reg + RK_CRYPTO_DMA_CTL); ++ ++ wait_for_completion_interruptible_timeout(&rkc->complete, ++ msecs_to_jiffies(10000)); ++ if (sgs == sgd) { ++ dma_unmap_sg(rkc->dev, sgs, 1, DMA_BIDIRECTIONAL); ++ } else { ++ dma_unmap_sg(rkc->dev, sgs, 1, DMA_TO_DEVICE); ++ dma_unmap_sg(rkc->dev, sgd, 1, DMA_FROM_DEVICE); ++ } ++ ++ if (!rkc->status) { ++ dev_err(rkc->dev, "DMA timeout\n"); ++ err = -EFAULT; ++ goto theend; ++ } ++ if (areq->iv && ivsize > 0) { ++ offset = sgd->length - ivsize; ++ if (rctx->mode & RK_CRYPTO_DEC) { ++ memcpy(areq->iv, rctx->backup_iv, ivsize); ++ memzero_explicit(rctx->backup_iv, ivsize); ++ } else { ++ scatterwalk_map_and_copy(areq->iv, sgd, offset, ++ ivsize, 0); ++ } ++ } ++ sgs = sg_next(sgs); ++ sgd = sg_next(sgd); ++ } ++theend: ++ writel(0xffff0000, rkc->reg + RK_CRYPTO_BC_CTL); ++ pm_runtime_put_autosuspend(rkc->dev); ++ ++ local_bh_disable(); ++ crypto_finalize_skcipher_request(engine, areq, err); ++ local_bh_enable(); ++ return 0; ++} ++ ++int rk_cipher_tfm_init(struct crypto_skcipher *tfm) ++{ ++ struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); ++ const char *name = crypto_tfm_alg_name(&tfm->base); ++ struct skcipher_alg *alg = crypto_skcipher_alg(tfm); ++ struct rk_crypto_template *algt = container_of(alg, struct rk_crypto_template, alg.skcipher); ++ ++ ctx->fallback_tfm = crypto_alloc_skcipher(name, 0, CRYPTO_ALG_NEED_FALLBACK); ++ if (IS_ERR(ctx->fallback_tfm)) { ++ dev_err(algt->dev->dev, "ERROR: Cannot allocate fallback for %s %ld\n", ++ name, PTR_ERR(ctx->fallback_tfm)); ++ return PTR_ERR(ctx->fallback_tfm); ++ } ++ ++ tfm->reqsize = sizeof(struct rk_cipher_rctx) + ++ crypto_skcipher_reqsize(ctx->fallback_tfm); ++ ++ ctx->enginectx.op.do_one_request = rk_cipher_run; ++ ctx->enginectx.op.prepare_request = NULL; ++ ctx->enginectx.op.unprepare_request = NULL; ++ ++ return 0; ++} ++ ++void rk_cipher_tfm_exit(struct crypto_skcipher *tfm) ++{ ++ struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); ++ ++ memzero_explicit(ctx->key, ctx->keylen); ++ crypto_free_skcipher(ctx->fallback_tfm); ++} diff --git a/target/linux/rockchip/patches-6.6/016-ARM64-dts-rk3568-add-crypto-node.patch b/target/linux/rockchip/patches-6.6/016-ARM64-dts-rk3568-add-crypto-node.patch new file mode 100644 index 00000000000000..6648d687a3ff25 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/016-ARM64-dts-rk3568-add-crypto-node.patch @@ -0,0 +1,36 @@ +From a835ba3fd0d62c735e17bf40bee95e2931e44b84 Mon Sep 17 00:00:00 2001 +From: Corentin Labbe +Date: Tue, 27 Sep 2022 08:00:48 +0000 +Subject: [PATCH 16/95] ARM64: dts: rk3568: add crypto node + +The rk3568 has a crypto IP handled by the rk3588 crypto driver so adds a +node for it. + +Signed-off-by: Corentin Labbe +--- + arch/arm64/boot/dts/rockchip/rk3568.dtsi | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi +@@ -213,6 +213,20 @@ + }; + }; + ++ crypto: crypto@fe380000 { ++ compatible = "rockchip,rk3568-crypto"; ++ reg = <0x0 0xfe380000 0x0 0x2000>; ++ interrupts = ; ++ clocks = <&cru ACLK_CRYPTO_NS>, <&cru HCLK_CRYPTO_NS>, ++ <&cru CLK_CRYPTO_NS_CORE>, <&cru CLK_CRYPTO_NS_PKA>; ++ clock-names = "aclk", "hclk", "sclk", "pka"; ++ resets = <&cru SRST_CRYPTO_NS_CORE>, <&cru SRST_A_CRYPTO_NS>, ++ <&cru SRST_H_CRYPTO_NS>, <&cru SRST_CRYPTO_NS_RNG>, ++ <&cru SRST_CRYPTO_NS_PKA>; ++ reset-names = "core", "a", "h", "rng,", "pka"; ++ status = "okay"; ++ }; ++ + combphy0: phy@fe820000 { + compatible = "rockchip,rk3568-naneng-combphy"; + reg = <0x0 0xfe820000 0x0 0x100>; diff --git a/target/linux/rockchip/patches-6.6/017-drivers-crypto-rockchip-fix-openwrt-build.patch b/target/linux/rockchip/patches-6.6/017-drivers-crypto-rockchip-fix-openwrt-build.patch new file mode 100644 index 00000000000000..948a29047ffe8f --- /dev/null +++ b/target/linux/rockchip/patches-6.6/017-drivers-crypto-rockchip-fix-openwrt-build.patch @@ -0,0 +1,31 @@ +From 1dc0e2c75df089cdf1acb78192381f40088bba01 Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Thu, 29 Sep 2022 18:44:42 -0400 +Subject: [PATCH 17/95] drivers: crypto-rockchip fix openwrt build + +Signed-off-by: Marty Jones +--- + drivers/crypto/rockchip/rk3288_crypto.c | 12 ------------ + 1 file changed, 12 deletions(-) + +--- a/drivers/crypto/rockchip/rk3288_crypto.c ++++ b/drivers/crypto/rockchip/rk3288_crypto.c +@@ -31,18 +31,6 @@ static struct rockchip_ip rocklist = { + .lock = __SPIN_LOCK_UNLOCKED(rocklist.lock), + }; + +-struct rk_crypto_info *get_rk_crypto(void) +-{ +- struct rk_crypto_info *first; +- +- spin_lock(&rocklist.lock); +- first = list_first_entry_or_null(&rocklist.dev_list, +- struct rk_crypto_info, list); +- list_rotate_left(&rocklist.dev_list); +- spin_unlock(&rocklist.lock); +- return first; +-} +- + static const struct rk_variant rk3288_variant = { + .num_clks = 4, + .rkclks = { diff --git a/target/linux/rockchip/patches-6.6/018-rock3a-fixes.patch b/target/linux/rockchip/patches-6.6/018-rock3a-fixes.patch new file mode 100644 index 00000000000000..a3d2dcc858242e --- /dev/null +++ b/target/linux/rockchip/patches-6.6/018-rock3a-fixes.patch @@ -0,0 +1,109 @@ +From 1b31cbc7f82082266049fadedf822affa49db8f6 Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Tue, 30 May 2023 01:56:43 -0400 +Subject: [PATCH 18/95] rock3a fixes + +--- + .../boot/dts/rockchip/rk3568-rock-3a.dts | 35 +++++++++---------- + 1 file changed, 17 insertions(+), 18 deletions(-) + +--- a/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts +@@ -32,13 +32,6 @@ + }; + }; + +- gmac1_clkin: external-gmac1-clock { +- compatible = "fixed-clock"; +- clock-frequency = <125000000>; +- clock-output-names = "gmac1_clkin"; +- #clock-cells = <0>; +- }; +- + leds { + compatible = "gpio-leds"; + +@@ -256,18 +249,25 @@ + + &gmac1 { + assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; +- assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>; +- clock_in_out = "input"; ++ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>; ++ clock_in_out = "output"; + phy-handle = <&rgmii_phy1>; +- phy-mode = "rgmii-id"; +- phy-supply = <&vcc_3v3>; ++ phy-mode = "rgmii"; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1m1_miim + &gmac1m1_tx_bus2 + &gmac1m1_rx_bus2 + &gmac1m1_rgmii_clk +- &gmac1m1_clkinout + &gmac1m1_rgmii_bus>; ++ ++ snps,reset-gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>; ++ snps,reset-active-low; ++ /* Reset time is 20ms, 100ms for rtl8211f */ ++ snps,reset-delays-us = <0 20000 100000>; ++ ++ tx_delay = <0x3c>; ++ rx_delay = <0x2f>; ++ + status = "okay"; + }; + +@@ -410,6 +410,7 @@ + + vdda0v9_image: LDO_REG1 { + regulator-name = "vdda0v9_image"; ++ regulator-always-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + +@@ -446,6 +447,7 @@ + vccio_acodec: LDO_REG4 { + regulator-name = "vccio_acodec"; + regulator-always-on; ++ regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + +@@ -504,6 +506,7 @@ + + vcca1v8_image: LDO_REG9 { + regulator-name = "vcca1v8_image"; ++ regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + +@@ -524,6 +527,7 @@ + + vcc3v3_sd: SWITCH_REG2 { + regulator-name = "vcc3v3_sd"; ++ regulator-always-on; + + regulator-state-mem { + regulator-off-in-suspend; +@@ -585,11 +589,6 @@ + rgmii_phy1: ethernet-phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x0>; +- pinctrl-names = "default"; +- pinctrl-0 = <ð_phy_rst>; +- reset-assert-us = <20000>; +- reset-deassert-us = <100000>; +- reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>; + }; + }; + +@@ -793,7 +792,7 @@ + }; + + &usb_host0_xhci { +- extcon = <&usb2phy0>; ++ dr_mode = "host"; + status = "okay"; + }; + diff --git a/target/linux/rockchip/patches-6.6/019-rock-pi-4b-fix-wifi.patch b/target/linux/rockchip/patches-6.6/019-rock-pi-4b-fix-wifi.patch new file mode 100644 index 00000000000000..c685f07e5b4f27 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/019-rock-pi-4b-fix-wifi.patch @@ -0,0 +1,20 @@ +From e85254ff587de217555b1eca5f6c5a66ba0df283 Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Tue, 30 May 2023 01:58:03 -0400 +Subject: [PATCH 19/95] rock pi 4b fix wifi + +--- + arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts +@@ -24,7 +24,7 @@ + compatible = "brcm,bcm4329-fmac"; + reg = <1>; + interrupt-parent = <&gpio0>; +- interrupts = ; ++ interrupts = ; + interrupt-names = "host-wake"; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_host_wake_l>; diff --git a/target/linux/rockchip/patches-6.6/020-nanopi-r5c-r5s-fixes.patch b/target/linux/rockchip/patches-6.6/020-nanopi-r5c-r5s-fixes.patch new file mode 100644 index 00000000000000..bc1118f392b295 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/020-nanopi-r5c-r5s-fixes.patch @@ -0,0 +1,233 @@ +From 4ec87387e211ac6ffb0315c470d52d73cfb2a639 Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Sun, 4 Jun 2023 02:29:36 -0400 +Subject: [PATCH] fix r5s r5c + +Signed-off-by: Marty Jones +--- + .../boot/dts/rockchip/rk3568-nanopi-r5c.dts | 70 ++++++++++--------- + .../boot/dts/rockchip/rk3568-nanopi-r5s.dts | 61 ++++++++-------- + 2 files changed, 67 insertions(+), 64 deletions(-) + +--- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts +@@ -11,14 +11,14 @@ + + / { + model = "FriendlyElec NanoPi R5C"; +- compatible = "friendlyarm,nanopi-r5c", "rockchip,rk3568"; ++ compatible = "friendlyelec,nanopi-r5c", "rockchip,rk3568"; + +- gpio-keys { ++ gpio_keys: gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; +- pinctrl-0 = <&reset_button_pin>; ++ pinctrl-0 = <&key1_pin>; + +- button-reset { ++ key-reset { + debounce-interval = <50>; + gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>; + label = "reset"; +@@ -28,39 +28,41 @@ + + gpio-leds { + compatible = "gpio-leds"; +- pinctrl-names = "default"; +- pinctrl-0 = <&lan_led_pin>, <&power_led_pin>, <&wan_led_pin>, <&wlan_led_pin>; +- +- led-lan { +- color = ; +- function = LED_FUNCTION_LAN; +- gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>; +- }; + +- power_led: led-power { +- color = ; +- function = LED_FUNCTION_POWER; ++ sys_led: led-sys { ++ label = "red:sys"; + linux,default-trigger = "heartbeat"; ++ pinctrl-names = "default"; + gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; ++ pinctrl-0 = <&sys_led_pin>; + }; + +- led-wan { +- color = ; +- function = LED_FUNCTION_WAN; ++ lan-led { ++ label = "green:lan"; ++ gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&lan_led_pin>; ++ }; ++ ++ wan-led { ++ label = "green:wan"; + gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wan_led_pin>; + }; + +- led-wlan { +- color = ; +- function = LED_FUNCTION_WLAN; ++ wlan-led { ++ label = "green:wlan"; + gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wlan_led_pin>; + }; + }; + }; + + &pcie2x1 { + pinctrl-names = "default"; +- pinctrl-0 = <&pcie20_reset_pin>; ++ pinctrl-0 = <&m2_w_disable_pin>; + reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>; + status = "okay"; + }; +@@ -80,15 +82,21 @@ + }; + + &pinctrl { +- gpio-leds { +- lan_led_pin: lan-led-pin { +- rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; ++ gpio-key { ++ key1_pin: key1-pin { ++ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>; + }; ++ }; + +- power_led_pin: power-led-pin { ++ gpio-leds { ++ sys_led_pin: power-led-pin { + rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + ++ lan_led_pin: lan-led-pin { ++ rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + wan_led_pin: wan-led-pin { + rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; + }; +@@ -98,15 +106,9 @@ + }; + }; + +- pcie { +- pcie20_reset_pin: pcie20-reset-pin { ++ m2-pins { ++ m2_w_disable_pin: m2-w-disable-pin { + rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +- +- rockchip-key { +- reset_button_pin: reset-button-pin { +- rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>; +- }; +- }; + }; +--- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts +@@ -11,7 +11,7 @@ + + / { + model = "FriendlyElec NanoPi R5S"; +- compatible = "friendlyarm,nanopi-r5s", "rockchip,rk3568"; ++ compatible = "friendlyelec,nanopi-r5s", "rockchip,rk3568"; + + aliases { + ethernet0 = &gmac0; +@@ -19,34 +19,34 @@ + + gpio-leds { + compatible = "gpio-leds"; +- pinctrl-names = "default"; +- pinctrl-0 = <&lan1_led_pin>, <&lan2_led_pin>, <&power_led_pin>, <&wan_led_pin>; + +- led-lan1 { +- color = ; +- function = LED_FUNCTION_LAN; +- function-enumerator = <1>; +- gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>; ++ sys_led: led-sys { ++ gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; ++ label = "red:power"; ++ linux,default-trigger = "heartbeat"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sys_led_pin>; + }; + +- led-lan2 { +- color = ; +- function = LED_FUNCTION_LAN; +- function-enumerator = <2>; +- gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_HIGH>; ++ wan_led: led-wan { ++ gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; ++ label = "green:wan"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wan_led_pin>; + }; + +- power_led: led-power { +- color = ; +- function = LED_FUNCTION_POWER; +- linux,default-trigger = "heartbeat"; +- gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; ++ lan1_led: led-lan1 { ++ gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>; ++ label = "green:lan1"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&lan1_led_pin>; + }; + +- led-wan { +- color = ; +- function = LED_FUNCTION_WAN; +- gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; ++ lan2_led: led-lan2 { ++ gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_HIGH>; ++ label = "green:lan2"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&lan2_led_pin>; + }; + }; + }; +@@ -117,20 +117,21 @@ + }; + + gpio-leds { +- lan1_led_pin: lan1-led-pin { +- rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; +- }; + +- lan2_led_pin: lan2-led-pin { +- rockchip,pins = <3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; +- }; +- +- power_led_pin: power-led-pin { ++ sys_led_pin: sys-led-pin { + rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wan_led_pin: wan-led-pin { + rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; ++ ++ lan1_led_pin: lan1-led-pin { ++ rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ lan2_led_pin: lan2-led-pin { ++ rockchip,pins = <3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; + }; + }; diff --git a/target/linux/rockchip/patches-6.6/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch b/target/linux/rockchip/patches-6.6/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch deleted file mode 100644 index fb5015cf6e0fe4..00000000000000 --- a/target/linux/rockchip/patches-6.6/023-v6.8-arm64-dts-rockchip-Add-ethernet0-alias-to-the-dts-for-RK3566-boards.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 36d9b3ae708e865cdab95692db5a24c5d975383d Mon Sep 17 00:00:00 2001 -From: Dragan Simic -Date: Tue, 12 Dec 2023 09:01:39 +0100 -Subject: [PATCH] arm64: dts: rockchip: Add ethernet0 alias to the dts for - RK3566 boards - -Add ethernet0 alias to the board dts files for a few supported RK3566 boards -that had it missing. Also, remove the ethernet0 alias from one RK3566 SoM -dtsi file, which doesn't enable the GMAC, and add the ethernet0 alias back to -the dependent board dts files, which actually enable the GMAC. - -Signed-off-by: Dragan Simic -Link: https://lore.kernel.org/r/d2a272e0ae0fff0adfab8bb0238243b11d348799.1702368023.git.dsimic@manjaro.org -Signed-off-by: Heiko Stuebner ---- - arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts | 1 + - 1 files changed, 1 insertions(+), 0 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -14,6 +14,7 @@ - compatible = "radxa,cm3-io", "radxa,cm3", "rockchip,rk3566"; - - aliases { -+ ethernet0 = &gmac1; - mmc1 = &sdmmc0; - }; - diff --git a/target/linux/rockchip/patches-6.6/095-rockchip-add-FriendlyElec-NanoPi-R6C-R6S.patch b/target/linux/rockchip/patches-6.6/095-rockchip-add-FriendlyElec-NanoPi-R6C-R6S.patch new file mode 100644 index 00000000000000..31b843efbbcf28 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/095-rockchip-add-FriendlyElec-NanoPi-R6C-R6S.patch @@ -0,0 +1,17 @@ +From 3e8be25a2ae2141c94bf20c75200e8282605d825 Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Tue, 30 May 2023 02:03:35 -0400 +Subject: [PATCH 95/95] rockchip: add FriendlyElec NanoPi R6C/R6S + +--- + arch/arm64/boot/dts/rockchip/Makefile | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -106,3 +106,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ro + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-rock-5a.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb diff --git a/target/linux/rockchip/patches-6.6/097-rockchip-add-FriendlyElec-NanoPi-R6C-Plus.patch b/target/linux/rockchip/patches-6.6/097-rockchip-add-FriendlyElec-NanoPi-R6C-Plus.patch new file mode 100644 index 00000000000000..6961b355099d4a --- /dev/null +++ b/target/linux/rockchip/patches-6.6/097-rockchip-add-FriendlyElec-NanoPi-R6C-Plus.patch @@ -0,0 +1,144 @@ +From ba70dba1ea8347003c94f0fdad00ff6dd765408c Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Tue, 13 Jun 2023 02:40:07 -0400 +Subject: [PATCH] rockchip: add FriendlyElec NanoPi R6C Plus + +Signed-off-by: Marty Jones +--- + arch/arm64/boot/dts/rockchip/Makefile | 1 + + .../dts/rockchip/rk3588s-nanopi-r6c-plus.dts | 121 ++++++++++++++++++ + 2 files changed, 122 insertions(+) + create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c-plus.dts + +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -107,4 +107,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-i + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-rock-5a.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c-plus.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c-plus.dts +@@ -0,0 +1,121 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++/* ++ * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. ++ * (http://www.friendlyelec.com) ++ * Copyright (c) 2023, Marty Jones ; ++ }; ++ ++ gpio_leds: gpio-leds { ++ compatible = "gpio-leds"; ++ ++ sys_led: led-sys { ++ gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; ++ label = "red:sys"; ++ linux,default-trigger = "heartbeat"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sys_led_pin>; ++ }; ++ ++ wan_led: led-wan { ++ gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; ++ label = "green:wan"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wan_led_pin>; ++ }; ++ ++ lan_led: led-lan { ++ gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; ++ label = "green:lan"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&lan1_led_pin>; ++ }; ++ ++ lan2_led: led-lan2 { ++ gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>; ++ label = "green:lan1"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&lan2_led_pin>; ++ }; ++ }; ++}; ++ ++ ++&pinctrl { ++ gpio-key { ++ key1_pin: key1-pin { ++ rockchip,pins = <1 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ ++ gpio-leds { ++ sys_led_pin: sys-led-pin { ++ rockchip,pins = ++ <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ wan_led_pin: wan-led-pin { ++ rockchip,pins = ++ <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ lan1_led_pin: lan1-led-pin { ++ rockchip,pins = ++ <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ lan2_led_pin: lan2-led-pin { ++ rockchip,pins = ++ <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ usb { ++ vcc5v0_host20_en: vcc5v0-host20-en { ++ rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++}; ++ ++&i2c6 { ++ clock-frequency = <200000>; ++ status = "okay"; ++ ++ eeprom@53 { ++ compatible = "microchip,24c02", "atmel,24c02"; ++ reg = <0x53>; ++ #address-cells = <2>; ++ #size-cells = <0>; ++ pagesize = <16>; ++ size = <256>; ++ ++ eui_48: eui-48@fa { ++ reg = <0xfa 0x06>; ++ }; ++ }; ++}; diff --git a/target/linux/rockchip/patches-6.6/100-rockchip-use-system-LED-for-OpenWrt.patch b/target/linux/rockchip/patches-6.6/100-rockchip-use-system-LED-for-OpenWrt.patch deleted file mode 100644 index 683e5347f75b01..00000000000000 --- a/target/linux/rockchip/patches-6.6/100-rockchip-use-system-LED-for-OpenWrt.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 6731d2c9039fbe1ecf21915eab3acee0a999508a Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Fri, 10 Jul 2020 21:38:20 +0200 -Subject: [PATCH] rockchip: use system LED for OpenWrt - -Use the SYS LED on the casing for showing system status. - -This patch is kept separate from the NanoPi R2S support patch, as i plan -on submitting the device support upstream. - -Signed-off-by: David Bauer ---- - arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s.dts -@@ -6,6 +6,7 @@ - /dts-v1/; - - #include -+#include - #include - #include "rk3328.dtsi" - -@@ -16,6 +17,11 @@ - aliases { - ethernet1 = &rtl8153; - mmc0 = &sdmmc; -+ -+ led-boot = &sys_led; -+ led-failsafe = &sys_led; -+ led-running = &sys_led; -+ led-upgrade = &sys_led; - }; - - chosen { -@@ -48,19 +54,22 @@ - pinctrl-names = "default"; - - lan_led: led-0 { -+ color = ; -+ function = LED_FUNCTION_LAN; - gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; -- label = "nanopi-r2s:green:lan"; - }; - - sys_led: led-1 { -+ color = ; -+ function = LED_FUNCTION_STATUS; - gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; -- label = "nanopi-r2s:red:sys"; - default-state = "on"; - }; - - wan_led: led-2 { -+ color = ; -+ function = LED_FUNCTION_WAN; - gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>; -- label = "nanopi-r2s:green:wan"; - }; - }; - ---- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts -@@ -13,6 +13,11 @@ - aliases { - mmc0 = &sdmmc; - mmc1 = &emmc; -+ -+ led-boot = &power_led; -+ led-failsafe = &power_led; -+ led-running = &power_led; -+ led-upgrade = &power_led; - }; - - chosen { diff --git a/target/linux/rockchip/patches-6.6/106-r4s-openwrt-leds.patch b/target/linux/rockchip/patches-6.6/106-r4s-openwrt-leds.patch deleted file mode 100644 index d7579d61e90ce3..00000000000000 --- a/target/linux/rockchip/patches-6.6/106-r4s-openwrt-leds.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -@@ -19,6 +19,13 @@ - model = "FriendlyElec NanoPi R4S"; - compatible = "friendlyarm,nanopi-r4s", "rockchip,rk3399"; - -+ aliases { -+ led-boot = &sys_led; -+ led-failsafe = &sys_led; -+ led-running = &sys_led; -+ led-upgrade = &sys_led; -+ }; -+ - /delete-node/ display-subsystem; - - gpio-leds { diff --git a/target/linux/rockchip/patches-6.6/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch b/target/linux/rockchip/patches-6.6/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch deleted file mode 100644 index 3aff37d0969b01..00000000000000 --- a/target/linux/rockchip/patches-6.6/107-arm64-dts-rockchip-Update-LED-properties-for-Orange-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From d2166e3b3680bd2b206aebf1e1ce4c0d346f3c50 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Fri, 19 May 2023 12:10:52 +0800 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for Orange Pi R1 - Plus - -Add OpenWrt's LED aliases for showing system status. - -Signed-off-by: Tianling Shen ---- - .../dts/rockchip/rk3328-orangepi-r1-plus.dts | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -@@ -17,6 +17,11 @@ - aliases { - ethernet1 = &rtl8153; - mmc0 = &sdmmc; -+ -+ led-boot = &status_led; -+ led-failsafe = &status_led; -+ led-running = &status_led; -+ led-upgrade = &status_led; - }; - - chosen { -@@ -41,11 +46,10 @@ - gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; - }; - -- led-1 { -+ status_led: led-1 { - function = LED_FUNCTION_STATUS; - color = ; - gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; -- linux,default-trigger = "heartbeat"; - }; - - led-2 { diff --git a/target/linux/rockchip/patches-6.6/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch b/target/linux/rockchip/patches-6.6/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch deleted file mode 100644 index af8f8b16bada0a..00000000000000 --- a/target/linux/rockchip/patches-6.6/108-arm64-dts-rockchip-add-LED-configuration-to-Orange-P.patch +++ /dev/null @@ -1,24 +0,0 @@ -From b46a530d12ada422b9d5b2b97059e0d3ed950b40 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Fri, 19 May 2023 12:38:04 +0800 -Subject: [PATCH] arm64: dts: rockchip: add LED configuration to Orange Pi R1 - Plus - -Add the correct value for the RTL8153 LED configuration register to -match the blink behavior of the other port on the device. - -Signed-off-by: Tianling Shen ---- - arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts -@@ -365,6 +365,7 @@ - rtl8153: device@2 { - compatible = "usbbda,8153"; - reg = <2>; -+ realtek,led-data = <0x87>; - }; - }; - diff --git a/target/linux/rockchip/patches-6.6/109-nanopc-t4-add-led-aliases.patch b/target/linux/rockchip/patches-6.6/109-nanopc-t4-add-led-aliases.patch deleted file mode 100644 index 1a80dadd48b93b..00000000000000 --- a/target/linux/rockchip/patches-6.6/109-nanopc-t4-add-led-aliases.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts -@@ -15,6 +15,13 @@ - model = "FriendlyElec NanoPC-T4"; - compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399"; - -+ aliases { -+ led-boot = &status_led; -+ led-failsafe = &status_led; -+ led-running = &status_led; -+ led-upgrade = &status_led; -+ }; -+ - vcc12v0_sys: vcc12v0-sys { - compatible = "regulator-fixed"; - regulator-always-on; diff --git a/target/linux/rockchip/patches-6.6/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch b/target/linux/rockchip/patches-6.6/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch deleted file mode 100644 index c22fdd52b8a789..00000000000000 --- a/target/linux/rockchip/patches-6.6/110-arm64-dts-rockchip-Update-LED-properties-for-NanoPi-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Tue Jun 20 16:45:27 2023 +0800 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for NanoPi R5 - series - -Add OpenWrt's LED aliases for showing system status. - -Signed-off-by: Tianling Shen ---- - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5c.dts -@@ -40,7 +40,6 @@ - power_led: led-power { - color = ; - function = LED_FUNCTION_POWER; -- linux,default-trigger = "heartbeat"; - gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>; - }; - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dts -@@ -39,7 +39,6 @@ - power_led: led-power { - color = ; - function = LED_FUNCTION_POWER; -- linux,default-trigger = "heartbeat"; - gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; - }; - ---- a/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3568-nanopi-r5s.dtsi -@@ -18,6 +18,11 @@ - aliases { - mmc0 = &sdmmc0; - mmc1 = &sdhci; -+ -+ led-boot = &power_led; -+ led-failsafe = &power_led; -+ led-running = &power_led; -+ led-upgrade = &power_led; - }; - - chosen: chosen { diff --git a/target/linux/rockchip/patches-6.6/111-radxa-cm3-io-add-led-aliases.patch b/target/linux/rockchip/patches-6.6/111-radxa-cm3-io-add-led-aliases.patch deleted file mode 100644 index c8183a2b8ae9b6..00000000000000 --- a/target/linux/rockchip/patches-6.6/111-radxa-cm3-io-add-led-aliases.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Marius Durbaca -Date: Tue Feb 20 15:05:27 2024 +0200 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for Radxa -CM3 IO board - -Add OpenWrt's LED aliases for showing system status. - -Suggested-by: Tianling Shen -Signed-off-by: Marius Durbaca ---- - ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3-io.dts -@@ -16,6 +16,10 @@ - aliases { - ethernet0 = &gmac1; - mmc1 = &sdmmc0; -+ led-boot = &status_led; -+ led-failsafe = &status_led; -+ led-running = &status_led; -+ led-upgrade = &status_led; - }; - - chosen: chosen { ---- a/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3566-radxa-cm3.dtsi -@@ -17,7 +17,7 @@ - leds { - compatible = "gpio-leds"; - -- led-0 { -+ status_led: led-0 { - gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; - color = ; - function = LED_FUNCTION_STATUS; diff --git a/target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch b/target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch deleted file mode 100644 index 6bcde5b8ebefcd..00000000000000 --- a/target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Marius Durbaca -Date: Tue Feb 27 16:25:27 2024 +0200 -Subject: [PATCH] arm64: dts: rockchip: Update LED properties for Radxa -E25 - -Add OpenWrt's LED aliases for showing system status. - -Signed-off-by: Marius Durbaca ---- - ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-e25.dts -@@ -9,6 +9,10 @@ - - aliases { - mmc1 = &sdmmc0; -+ led-boot = &led_user; -+ led-failsafe = &led_user; -+ led-running = &led_user; -+ led-upgrade = &led_user; - }; - - pwm-leds { ---- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-cm3i.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-cm3i.dtsi -@@ -23,7 +23,7 @@ - gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; - function = LED_FUNCTION_HEARTBEAT; - color = ; -- linux,default-trigger = "heartbeat"; -+ default-state = "on"; - pinctrl-names = "default"; - pinctrl-0 = <&led_user_en>; - }; diff --git a/target/linux/rockchip/patches-6.6/115-rock-3a-add-led-aliases-and-stop-heartbeat.patch b/target/linux/rockchip/patches-6.6/115-rock-3a-add-led-aliases-and-stop-heartbeat.patch deleted file mode 100644 index bdcc96ce83140c..00000000000000 --- a/target/linux/rockchip/patches-6.6/115-rock-3a-add-led-aliases-and-stop-heartbeat.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts -@@ -15,6 +15,10 @@ - ethernet0 = &gmac1; - mmc0 = &sdhci; - mmc1 = &sdmmc0; -+ led-boot = &led_blue; -+ led-failsafe = &led_blue; -+ led-running = &led_blue; -+ led-upgrade = &led_blue; - }; - - chosen: chosen { -@@ -42,11 +46,11 @@ - leds { - compatible = "gpio-leds"; - -- led_user: led-0 { -- gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; -- function = LED_FUNCTION_HEARTBEAT; -+ led_blue: led-0 { - color = ; -- linux,default-trigger = "heartbeat"; -+ default-state = "on"; -+ function = LED_FUNCTION_HEARTBEAT; -+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&led_user_en>; - }; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-01-clk-divider-Fix-divisor-masking-on-64-bit-platforms.patch b/target/linux/rockchip/patches-6.6/200-v6.7-01-clk-divider-Fix-divisor-masking-on-64-bit-platforms.patch new file mode 100644 index 00000000000000..a91a557b093729 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-01-clk-divider-Fix-divisor-masking-on-64-bit-platforms.patch @@ -0,0 +1,81 @@ +From 122481e9b538979f0ab1b6d2ebbcd3446cec4a33 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Thu, 18 May 2023 05:19:48 +0200 +Subject: [PATCH 01/41] clk: divider: Fix divisor masking on 64 bit platforms + +The clock framework handles clock rates as "unsigned long", so u32 on +32-bit architectures and u64 on 64-bit architectures. + +The current code casts the dividend to u64 on 32-bit to avoid a +potential overflow. For example DIV_ROUND_UP(3000000000, 1500000000) += (3.0G + 1.5G - 1) / 1.5G = = OVERFLOW / 1.5G, which has been +introduced in commit 9556f9dad8f5 ("clk: divider: handle integer overflow +when dividing large clock rates"). + +On 64 bit platforms this masks the divisor, so that only the lower +32 bit are used. Thus requesting a frequency >= 4.3GHz results +in incorrect values. For example requesting 4300000000 (4.3 GHz) will +effectively request ca. 5 MHz. Requesting clk_round_rate(clk, ULONG_MAX) +is a bit of a special case, since that still returns correct values as +long as the parent clock is below 8.5 GHz. + +Fix this by introducing a new helper, which avoids the overflow +by using a modulo operation instead of math tricks. This avoids +any requirements on the arguments (except that divisor should not +be 0 obviously). + +Signed-off-by: Sebastian Reichel +--- + drivers/clk/clk-divider.c | 6 +++--- + include/linux/math.h | 11 +++++++++++ + 2 files changed, 14 insertions(+), 3 deletions(-) + +--- a/drivers/clk/clk-divider.c ++++ b/drivers/clk/clk-divider.c +@@ -220,7 +220,7 @@ static int _div_round_up(const struct cl + unsigned long parent_rate, unsigned long rate, + unsigned long flags) + { +- int div = DIV_ROUND_UP_ULL((u64)parent_rate, rate); ++ int div = DIV_ROUND_UP_NO_OVERFLOW(parent_rate, rate); + + if (flags & CLK_DIVIDER_POWER_OF_TWO) + div = __roundup_pow_of_two(div); +@@ -237,7 +237,7 @@ static int _div_round_closest(const stru + int up, down; + unsigned long up_rate, down_rate; + +- up = DIV_ROUND_UP_ULL((u64)parent_rate, rate); ++ up = DIV_ROUND_UP_NO_OVERFLOW(parent_rate, rate); + down = parent_rate / rate; + + if (flags & CLK_DIVIDER_POWER_OF_TWO) { +@@ -473,7 +473,7 @@ int divider_get_val(unsigned long rate, + { + unsigned int div, value; + +- div = DIV_ROUND_UP_ULL((u64)parent_rate, rate); ++ div = DIV_ROUND_UP_NO_OVERFLOW(parent_rate, rate); + + if (!_is_valid_div(table, div, flags)) + return -EINVAL; +--- a/include/linux/math.h ++++ b/include/linux/math.h +@@ -36,6 +36,17 @@ + + #define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP + ++/** ++ * DIV_ROUND_UP_NO_OVERFLOW - divide two numbers and always round up ++ * @n: numerator / dividend ++ * @d: denominator / divisor ++ * ++ * This functions does the same as DIV_ROUND_UP, but internally uses a ++ * division and a modulo operation instead of math tricks. This way it ++ * avoids overflowing when handling big numbers. ++ */ ++#define DIV_ROUND_UP_NO_OVERFLOW(n, d) (((n) / (d)) + !!((n) % (d))) ++ + #define DIV_ROUND_DOWN_ULL(ll, d) \ + ({ unsigned long long _tmp = (ll); do_div(_tmp, d); _tmp; }) + diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-07-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-network-con.patch b/target/linux/rockchip/patches-6.6/200-v6.7-07-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-network-con.patch new file mode 100644 index 00000000000000..a9f0b96916e772 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-07-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-network-con.patch @@ -0,0 +1,88 @@ +From 1f538925b863f9b0fdd1c24570565e8e4985b8a0 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Mon, 17 Apr 2023 21:13:03 +0200 +Subject: [PATCH 07/41] arm64: dts: rockchip: rk3588-evb1: add PCIe2 network + controller + +The RK3588 EVB1 has a second network card, which is connected +via PCIe2. This adds support for that. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-evb1-v10.dts | 43 +++++++++++++++++++ + 1 file changed, 43 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +@@ -29,6 +29,26 @@ + pwms = <&pwm2 0 25000 0>; + }; + ++ pcie20_avdd0v85: pcie20-avdd0v85-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "pcie20_avdd0v85"; ++ regulator-boot-on; ++ regulator-always-on; ++ regulator-min-microvolt = <850000>; ++ regulator-max-microvolt = <850000>; ++ vin-supply = <&avdd_0v85_s0>; ++ }; ++ ++ pcie20_avdd1v8: pcie20-avdd1v8-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "pcie20_avdd1v8"; ++ regulator-boot-on; ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&avcc_1v8_s0>; ++ }; ++ + vcc12v_dcin: vcc12v-dcin-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_dcin"; +@@ -87,6 +107,10 @@ + status = "okay"; + }; + ++&combphy2_psu { ++ status = "okay"; ++}; ++ + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; + }; +@@ -163,7 +187,20 @@ + }; + }; + ++&pcie2x1l1 { ++ reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie2_1_rst>, <&rtl8111_isolate>; ++ status = "okay"; ++}; ++ + &pinctrl { ++ rtl8111 { ++ rtl8111_isolate: rtl8111-isolate { ++ rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; ++ + rtl8211f { + rtl8211f_rst: rtl8211f-rst { + rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; +@@ -177,6 +214,12 @@ + }; + }; + ++ pcie2 { ++ pcie2_1_rst: pcie2-1-rst { ++ rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-08-arm64-dts-rockchip-rk3588-evb1-add-PCIe3-bus.patch b/target/linux/rockchip/patches-6.6/200-v6.7-08-arm64-dts-rockchip-rk3588-evb1-add-PCIe3-bus.patch new file mode 100644 index 00000000000000..8905c066b28d14 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-08-arm64-dts-rockchip-rk3588-evb1-add-PCIe3-bus.patch @@ -0,0 +1,97 @@ +From b7295c0349ff35a32c37e9429e3359d12f3ecf0b Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 11 Jul 2023 17:20:47 +0200 +Subject: [PATCH 08/41] arm64: dts: rockchip: rk3588-evb1: add PCIe3 bus + +Enable PCIe3 support, which is exposed via a PCIe3 connector. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-evb1-v10.dts | 55 +++++++++++++++++++ + 1 file changed, 55 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +@@ -49,6 +49,26 @@ + vin-supply = <&avcc_1v8_s0>; + }; + ++ pcie30_avdd0v75: pcie30-avdd0v75-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "pcie30_avdd0v75"; ++ regulator-boot-on; ++ regulator-always-on; ++ regulator-min-microvolt = <750000>; ++ regulator-max-microvolt = <750000>; ++ vin-supply = <&avdd_0v75_s0>; ++ }; ++ ++ pcie30_avdd1v8: pcie30-avdd1v8-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "pcie30_avdd1v8"; ++ regulator-boot-on; ++ regulator-always-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&avcc_1v8_s0>; ++ }; ++ + vcc12v_dcin: vcc12v-dcin-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_dcin"; +@@ -58,6 +78,19 @@ + regulator-max-microvolt = <12000000>; + }; + ++ vcc3v3_pcie30: vcc3v3-pcie30-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_pcie30"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ enable-active-high; ++ gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>; ++ startup-delay-us = <5000>; ++ vin-supply = <&vcc12v_dcin>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc3v3_pcie30_en>; ++ }; ++ + vcc5v0_host: vcc5v0-host-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; +@@ -194,6 +227,18 @@ + status = "okay"; + }; + ++&pcie30phy { ++ status = "okay"; ++}; ++ ++&pcie3x4 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie3_reset>; ++ reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; ++ vpcie3v3-supply = <&vcc3v3_pcie30>; ++ status = "okay"; ++}; ++ + &pinctrl { + rtl8111 { + rtl8111_isolate: rtl8111-isolate { +@@ -220,6 +265,16 @@ + }; + }; + ++ pcie3 { ++ pcie3_reset: pcie3-reset { ++ rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ vcc3v3_pcie30_en: vcc3v3-pcie30-en { ++ rockchip,pins = <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-09-arm64-dts-rockchip-rock-5b-add-PCIe-network-controll.patch b/target/linux/rockchip/patches-6.6/200-v6.7-09-arm64-dts-rockchip-rock-5b-add-PCIe-network-controll.patch new file mode 100644 index 00000000000000..4c90bc2da04755 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-09-arm64-dts-rockchip-rock-5b-add-PCIe-network-controll.patch @@ -0,0 +1,71 @@ +From 7d2e3eded0118612014961b6e8c2a3dd2e9daee0 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 28 Feb 2023 14:40:59 +0000 +Subject: [PATCH 09/41] arm64: dts: rockchip: rock-5b: add PCIe network + controller + +Enable the RTL8125 network controller, which is connected via +PCIe. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-rock-5b.dts | 27 +++++++++++++++++++ + 1 file changed, 27 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -44,6 +44,15 @@ + #cooling-cells = <2>; + }; + ++ vcc3v3_pcie2x1l2: vcc3v3-pcie2x1l2-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_pcie2x1l2"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ startup-delay-us = <5000>; ++ vin-supply = <&vcc_3v3_s3>; ++ }; ++ + vcc5v0_host: vcc5v0-host-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; +@@ -78,6 +87,10 @@ + }; + }; + ++&combphy0_ps { ++ status = "okay"; ++}; ++ + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; + }; +@@ -204,6 +217,14 @@ + }; + }; + ++&pcie2x1l2 { ++ reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>; ++ vpcie3v3-supply = <&vcc3v3_pcie2x1l2>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie2_2_rst>; ++ status = "okay"; ++}; ++ + &pinctrl { + hym8563 { + hym8563_int: hym8563-int { +@@ -217,6 +238,12 @@ + }; + }; + ++ pcie2 { ++ pcie2_2_rst: pcie2-2-rst { ++ rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-10-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-M-key.patch b/target/linux/rockchip/patches-6.6/200-v6.7-10-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-M-key.patch new file mode 100644 index 00000000000000..81f43bee0763ef --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-10-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-M-key.patch @@ -0,0 +1,71 @@ +From f979867857a275629d365ca5f4db1148a9879176 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 14 Jul 2023 19:19:29 +0200 +Subject: [PATCH 10/41] arm64: dts: rockchip: rock-5b: add PCIe for M.2 M-key + +The Radxa Rock 5B has PCIe 3x4 routed to its M.2 M-key connector +on the board's back. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-rock-5b.dts | 35 +++++++++++++++++++ + 1 file changed, 35 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -53,6 +53,19 @@ + vin-supply = <&vcc_3v3_s3>; + }; + ++ vcc3v3_pcie30: vcc3v3-pcie30-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_pcie30"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ enable-active-high; ++ gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>; ++ startup-delay-us = <5000>; ++ vin-supply = <&vcc5v0_sys>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie3_vcc3v3_en>; ++ }; ++ + vcc5v0_host: vcc5v0-host-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; +@@ -225,6 +238,18 @@ + status = "okay"; + }; + ++&pcie30phy { ++ status = "okay"; ++}; ++ ++&pcie3x4 { ++ reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; ++ vpcie3v3-supply = <&vcc3v3_pcie30>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie3_rst>; ++ status = "okay"; ++}; ++ + &pinctrl { + hym8563 { + hym8563_int: hym8563-int { +@@ -244,6 +269,16 @@ + }; + }; + ++ pcie3 { ++ pcie3_rst: pcie3-rst { ++ rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ pcie3_vcc3v3_en: pcie3-vcc3v3-en { ++ rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-11-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-E-Key.patch b/target/linux/rockchip/patches-6.6/200-v6.7-11-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-E-Key.patch new file mode 100644 index 00000000000000..7ff8171e5e3ad7 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-11-arm64-dts-rockchip-rock-5b-add-PCIe-for-M.2-E-Key.patch @@ -0,0 +1,78 @@ +From c6b2b27433180b30e0756f228f0cf4b4b9d5ac5a Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 21 Jul 2023 17:43:58 +0200 +Subject: [PATCH 11/41] arm64: dts: rockchip: rock-5b: add PCIe for M.2 E-Key + +Enable PCIe2_0 controller and its voltage supply, which is routed +to the M.2 E-Key on the upper side of the Radxa Rock 5B. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-rock-5b.dts | 35 +++++++++++++++++++ + 1 file changed, 35 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -44,6 +44,21 @@ + #cooling-cells = <2>; + }; + ++ vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3_pcie2x1l0"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ enable-active-high; ++ regulator-boot-on; ++ regulator-always-on; ++ gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie2_0_vcc3v3_en>; ++ startup-delay-us = <50000>; ++ vin-supply = <&vcc5v0_sys>; ++ }; ++ + vcc3v3_pcie2x1l2: vcc3v3-pcie2x1l2-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie2x1l2"; +@@ -104,6 +119,10 @@ + status = "okay"; + }; + ++&combphy1_ps { ++ status = "okay"; ++}; ++ + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; + }; +@@ -230,6 +249,14 @@ + }; + }; + ++&pcie2x1l0 { ++ reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; ++ vpcie3v3-supply = <&vcc3v3_pcie2x1l0>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie2_0_rst>; ++ status = "okay"; ++}; ++ + &pcie2x1l2 { + reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie2x1l2>; +@@ -264,6 +291,14 @@ + }; + + pcie2 { ++ pcie2_0_rst: pcie2-0-rst { ++ rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ pcie2_0_vcc3v3_en: pcie2-0-vcc-en { ++ rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + pcie2_2_rst: pcie2-2-rst { + rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-12-dt-bindings-usb-add-rk3588-compatible-to-rockchip-dw.patch b/target/linux/rockchip/patches-6.6/200-v6.7-12-dt-bindings-usb-add-rk3588-compatible-to-rockchip-dw.patch new file mode 100644 index 00000000000000..8bef7eb25fa137 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-12-dt-bindings-usb-add-rk3588-compatible-to-rockchip-dw.patch @@ -0,0 +1,61 @@ +From ab9b8789c6e472196230793b207e6ed69aacb156 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Thu, 20 Jul 2023 18:05:56 +0200 +Subject: [PATCH 12/41] dt-bindings: usb: add rk3588 compatible to + rockchip,dwc3 + +RK3588 has three DWC3 controllers. Two of them are fully functional in +host, device and OTG mode including USB2 support. They are connected to +dedicated PHYs, that also support USB-C's DisplayPort alternate mode. + +The third controller is connected to one of the combphy's shared +with PCIe and SATA. It can only be used in host mode and does not +support USB2. Compared to the other controllers this one needs +some extra clocks. + +Signed-off-by: Sebastian Reichel +--- + .../devicetree/bindings/usb/rockchip,dwc3.yaml | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +--- a/Documentation/devicetree/bindings/usb/rockchip,dwc3.yaml ++++ b/Documentation/devicetree/bindings/usb/rockchip,dwc3.yaml +@@ -30,6 +30,7 @@ select: + enum: + - rockchip,rk3328-dwc3 + - rockchip,rk3568-dwc3 ++ - rockchip,rk3588-dwc3 + required: + - compatible + +@@ -39,6 +40,7 @@ properties: + - enum: + - rockchip,rk3328-dwc3 + - rockchip,rk3568-dwc3 ++ - rockchip,rk3588-dwc3 + - const: snps,dwc3 + + reg: +@@ -58,7 +60,9 @@ properties: + Master/Core clock, must to be >= 62.5 MHz for SS + operation and >= 30MHz for HS operation + - description: +- Controller grf clock ++ Controller grf clock OR UTMI clock ++ - description: ++ PIPE clock + + clock-names: + minItems: 3 +@@ -66,7 +70,10 @@ properties: + - const: ref_clk + - const: suspend_clk + - const: bus_clk +- - const: grf_clk ++ - enum: ++ - grf_clk ++ - utmi ++ - const: pipe + + power-domains: + maxItems: 1 diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-13-usb-dwc3-add-optional-PHY-interface-clocks.patch b/target/linux/rockchip/patches-6.6/200-v6.7-13-usb-dwc3-add-optional-PHY-interface-clocks.patch new file mode 100644 index 00000000000000..f83c417d322324 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-13-usb-dwc3-add-optional-PHY-interface-clocks.patch @@ -0,0 +1,86 @@ +From 97b72e2d95039c733573459bd15f5a0e96aa3a68 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Thu, 20 Jul 2023 18:59:37 +0200 +Subject: [PATCH 13/41] usb: dwc3: add optional PHY interface clocks + +On Rockchip RK3588 one of the DWC3 cores is integrated weirdly and +requires two extra clocks to be enabled. Without these extra clocks +hot-plugging USB devices is broken. + +Signed-off-by: Sebastian Reichel +--- + drivers/usb/dwc3/core.c | 26 ++++++++++++++++++++++++++ + drivers/usb/dwc3/core.h | 4 ++++ + 2 files changed, 30 insertions(+) + +--- a/drivers/usb/dwc3/core.c ++++ b/drivers/usb/dwc3/core.c +@@ -818,8 +818,20 @@ static int dwc3_clk_enable(struct dwc3 * + if (ret) + goto disable_ref_clk; + ++ ret = clk_prepare_enable(dwc->utmi_clk); ++ if (ret) ++ goto disable_susp_clk; ++ ++ ret = clk_prepare_enable(dwc->pipe_clk); ++ if (ret) ++ goto disable_utmi_clk; ++ + return 0; + ++disable_utmi_clk: ++ clk_disable_unprepare(dwc->utmi_clk); ++disable_susp_clk: ++ clk_disable_unprepare(dwc->susp_clk); + disable_ref_clk: + clk_disable_unprepare(dwc->ref_clk); + disable_bus_clk: +@@ -829,6 +841,8 @@ disable_bus_clk: + + static void dwc3_clk_disable(struct dwc3 *dwc) + { ++ clk_disable_unprepare(dwc->pipe_clk); ++ clk_disable_unprepare(dwc->utmi_clk); + clk_disable_unprepare(dwc->susp_clk); + clk_disable_unprepare(dwc->ref_clk); + clk_disable_unprepare(dwc->bus_clk); +@@ -1842,6 +1856,18 @@ static int dwc3_get_clocks(struct dwc3 * + } + } + ++ dwc->utmi_clk = devm_clk_get_optional(dev, "utmi"); ++ if (IS_ERR(dwc->utmi_clk)) { ++ return dev_err_probe(dev, PTR_ERR(dwc->utmi_clk), ++ "could not get utmi clock\n"); ++ } ++ ++ dwc->pipe_clk = devm_clk_get_optional(dev, "pipe"); ++ if (IS_ERR(dwc->pipe_clk)) { ++ return dev_err_probe(dev, PTR_ERR(dwc->pipe_clk), ++ "could not get pipe clock\n"); ++ } ++ + return 0; + } + +--- a/drivers/usb/dwc3/core.h ++++ b/drivers/usb/dwc3/core.h +@@ -996,6 +996,8 @@ struct dwc3_scratchpad_array { + * @bus_clk: clock for accessing the registers + * @ref_clk: reference clock + * @susp_clk: clock used when the SS phy is in low power (S3) state ++ * @utmi_clk: clock used for USB2 PHY communication ++ * @pipe_clk: clock used for USB3 PHY communication + * @reset: reset control + * @regs: base address for our registers + * @regs_size: address space size +@@ -1166,6 +1168,8 @@ struct dwc3 { + struct clk *bus_clk; + struct clk *ref_clk; + struct clk *susp_clk; ++ struct clk *utmi_clk; ++ struct clk *pipe_clk; + + struct reset_control *reset; + diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-14-arm64-dts-rockchip-rk3588s-Add-USB3-host-controller.patch b/target/linux/rockchip/patches-6.6/200-v6.7-14-arm64-dts-rockchip-rk3588s-Add-USB3-host-controller.patch new file mode 100644 index 00000000000000..582ccee881f173 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-14-arm64-dts-rockchip-rk3588s-Add-USB3-host-controller.patch @@ -0,0 +1,46 @@ +From 4c2162f99fbc0791b85a14ebb2a17c40a18efa7f Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 18 Jul 2023 18:57:15 +0200 +Subject: [PATCH 14/41] arm64: dts: rockchip: rk3588s: Add USB3 host controller + +RK3588 has three USB3 controllers. This adds the host-only controller, +which is using the naneng-combphy shared with PCIe and SATA. + +The other two are dual-role and using a different PHY that is not yet +supported upstream. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -443,6 +443,27 @@ + status = "disabled"; + }; + ++ usb_host2_xhci: usb@fcd00000 { ++ compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; ++ reg = <0x0 0xfcd00000 0x0 0x400000>; ++ interrupts = ; ++ clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>, ++ <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>, ++ <&cru CLK_PIPEPHY2_PIPE_U3_G>; ++ clock-names = "ref_clk", "suspend_clk", "bus_clk", "utmi", "pipe"; ++ dr_mode = "host"; ++ phys = <&combphy2_psu PHY_TYPE_USB3>; ++ phy-names = "usb3-phy"; ++ phy_type = "utmi_wide"; ++ resets = <&cru SRST_A_USB3OTG2>; ++ snps,dis_enblslpm_quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ snps,dis_rxdet_inp3_quirk; ++ status = "disabled"; ++ }; ++ + sys_grf: syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf", "syscon"; + reg = <0x0 0xfd58c000 0x0 0x1000>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-15-arm64-dts-rockchip-rk3588-rock5b-add-USB3-host.patch b/target/linux/rockchip/patches-6.6/200-v6.7-15-arm64-dts-rockchip-rk3588-rock5b-add-USB3-host.patch new file mode 100644 index 00000000000000..5f36ae7db9b943 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-15-arm64-dts-rockchip-rk3588-rock5b-add-USB3-host.patch @@ -0,0 +1,38 @@ +From 1a67b0d41f4a0b867789cf2503291fc497c6ff81 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Wed, 19 Jul 2023 15:56:42 +0200 +Subject: [PATCH 15/41] arm64: dts: rockchip: rk3588-rock5b: add USB3 host + +Enable USB3 host controller for the Radxa ROCK 5 Model B. This adds +USB3 for the upper USB3 port (the one further away from the PCB). + +The lower USB3 (closer to the PCB) and the USB-C ports use the RK3588 +USB TypeC host controller, which use a different PHY that is not yet +supported upstream. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -123,6 +123,10 @@ + status = "okay"; + }; + ++&combphy2_psu { ++ status = "okay"; ++}; ++ + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; + }; +@@ -717,3 +721,7 @@ + &usb_host1_ohci { + status = "okay"; + }; ++ ++&usb_host2_xhci { ++ status = "okay"; ++}; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-16-arm64-dts-rockchip-rk3588s-rock5a-add-USB3-host.patch b/target/linux/rockchip/patches-6.6/200-v6.7-16-arm64-dts-rockchip-rk3588s-rock5a-add-USB3-host.patch new file mode 100644 index 00000000000000..682d6c66c8fbf6 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-16-arm64-dts-rockchip-rk3588s-rock5a-add-USB3-host.patch @@ -0,0 +1,37 @@ +From 4933b279c701287de5788581ae5a2f662b700ebb Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 21 Jul 2023 15:19:37 +0200 +Subject: [PATCH 16/41] arm64: dts: rockchip: rk3588s-rock5a: add USB3 host + +Enable USB3 host controller for the Radxa ROCK 5 Model A. This adds +USB3 for the lower USB3 port (the one closer to the PCB). + +The upper USB3 port uses the RK3588 USB TypeC host controller, which +uses a different PHY that is not yet supported upstream. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts +@@ -114,6 +114,10 @@ + }; + }; + ++&combphy2_psu { ++ status = "okay"; ++}; ++ + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; + }; +@@ -735,3 +739,7 @@ + &usb_host1_ohci { + status = "okay"; + }; ++ ++&usb_host2_xhci { ++ status = "okay"; ++}; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-17-dt-bindings-phy-add-rockchip-usbdp-combo-phy-documen.patch b/target/linux/rockchip/patches-6.6/200-v6.7-17-dt-bindings-phy-add-rockchip-usbdp-combo-phy-documen.patch new file mode 100644 index 00000000000000..feff1d989b27f8 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-17-dt-bindings-phy-add-rockchip-usbdp-combo-phy-documen.patch @@ -0,0 +1,185 @@ +From f03ed7758b9e7d08737a026bd9e666ac2746d1d8 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 25 Apr 2023 17:38:57 +0200 +Subject: [PATCH 17/41] dt-bindings: phy: add rockchip usbdp combo phy document + +Add device tree binding document for Rockchip USBDP Combo PHY +with Samsung IP block. + +Co-developed-by: Frank Wang +Signed-off-by: Frank Wang +Signed-off-by: Sebastian Reichel +--- + .../bindings/phy/phy-rockchip-usbdp.yaml | 166 ++++++++++++++++++ + 1 file changed, 166 insertions(+) + create mode 100644 Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml + +--- /dev/null ++++ b/Documentation/devicetree/bindings/phy/phy-rockchip-usbdp.yaml +@@ -0,0 +1,166 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/phy/phy-rockchip-usbdp.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Rockchip USBDP Combo PHY with Samsung IP block ++ ++maintainers: ++ - Frank Wang ++ - Zhang Yubing ++ ++properties: ++ compatible: ++ enum: ++ - rockchip,rk3588-usbdp-phy ++ ++ reg: ++ maxItems: 1 ++ ++ clocks: ++ maxItems: 4 ++ ++ clock-names: ++ items: ++ - const: refclk ++ - const: immortal ++ - const: pclk ++ - const: utmi ++ ++ resets: ++ maxItems: 5 ++ ++ reset-names: ++ items: ++ - const: init ++ - const: cmn ++ - const: lane ++ - const: pcs_apb ++ - const: pma_apb ++ ++ rockchip,dp-lane-mux: ++ $ref: /schemas/types.yaml#/definitions/uint32-array ++ minItems: 2 ++ maxItems: 4 ++ description: ++ An array of physical Tyep-C lanes indexes. Position of an entry determines ++ the dp lane index, while the value of an entry indicater physical Type-C lane. ++ The support dp lanes number are 2 or 4. e.g. for 2 lanes dp lanes map, we could ++ have "rockchip,dp-lane-mux = <2, 3>;", assuming dp lane0 on Type-C phy lane2, ++ dp lane1 on Type-C phy lane3. For 4 lanes dp lanes map, we could have ++ "rockchip,dp-lane-mux = <0, 1, 2, 3>;", assuming dp lane0 on Type-C phy lane0, ++ dp lane1 on Type-C phy lane1, dp lane2 on Type-C phy lane2, dp lane3 on Type-C ++ phy lane3. If dp lane map by DisplayPort Alt mode, this property is not need. ++ ++ rockchip,u2phy-grf: ++ $ref: /schemas/types.yaml#/definitions/phandle ++ description: ++ Phandle to the syscon managing the 'usb2 phy general register files'. ++ ++ rockchip,usb-grf: ++ $ref: /schemas/types.yaml#/definitions/phandle ++ description: ++ Phandle to the syscon managing the 'usb general register files'. ++ ++ rockchip,usbdpphy-grf: ++ $ref: /schemas/types.yaml#/definitions/phandle ++ description: ++ Phandle to the syscon managing the 'usbdp phy general register files'. ++ ++ rockchip,vo-grf: ++ $ref: /schemas/types.yaml#/definitions/phandle ++ description: ++ Phandle to the syscon managing the 'video output general register files'. ++ When select the dp lane mapping will request its phandle. ++ ++ sbu1-dc-gpios: ++ description: ++ GPIO connected to the SBU1 line of the USB-C connector via a big resistor ++ (~100K) to apply a DC offset for signalling the connector orientation. ++ ++ sbu2-dc-gpios: ++ description: ++ GPIO connected to the SBU2 line of the USB-C connector via a big resistor ++ (~100K) to apply a DC offset for signalling the connector orientation. ++ ++ orientation-switch: ++ description: Flag the port as possible handler of orientation switching ++ type: boolean ++ ++ mode-switch: ++ description: Flag the port as possible handle of altmode switching ++ type: boolean ++ ++ dp-port: ++ type: object ++ additionalProperties: false ++ ++ properties: ++ "#phy-cells": ++ const: 0 ++ ++ required: ++ - "#phy-cells" ++ ++ usb3-port: ++ type: object ++ additionalProperties: false ++ ++ properties: ++ "#phy-cells": ++ const: 0 ++ ++ required: ++ - "#phy-cells" ++ ++ port: ++ $ref: /schemas/graph.yaml#/properties/port ++ description: ++ A port node to link the PHY to a TypeC controller for the purpose of ++ handling orientation switching. ++ ++required: ++ - compatible ++ - reg ++ - clocks ++ - clock-names ++ - resets ++ - reset-names ++ - dp-port ++ - usb3-port ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include ++ ++ usbdp_phy0: phy@fed80000 { ++ compatible = "rockchip,rk3588-usbdp-phy"; ++ reg = <0x0 0xfed80000 0x0 0x10000>; ++ rockchip,u2phy-grf = <&usb2phy0_grf>; ++ rockchip,usb-grf = <&usb_grf>; ++ rockchip,usbdpphy-grf = <&usbdpphy0_grf>; ++ rockchip,vo-grf = <&vo0_grf>; ++ clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>, ++ <&cru CLK_USBDP_PHY0_IMMORTAL>, ++ <&cru PCLK_USBDPPHY0>; ++ clock-names = "refclk", "immortal", "pclk"; ++ resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>, ++ <&cru SRST_USBDP_COMBO_PHY0_CMN>, ++ <&cru SRST_USBDP_COMBO_PHY0_LANE>, ++ <&cru SRST_USBDP_COMBO_PHY0_PCS>, ++ <&cru SRST_P_USBDPPHY0>; ++ reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb"; ++ status = "disabled"; ++ ++ usbdp_phy0_dp: dp-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; ++ ++ usbdp_phy0_u3: usb3-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-18-dt-bindings-soc-rockchip-add-rk3588-USB3-syscon.patch b/target/linux/rockchip/patches-6.6/200-v6.7-18-dt-bindings-soc-rockchip-add-rk3588-USB3-syscon.patch new file mode 100644 index 00000000000000..d005753c08c7fe --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-18-dt-bindings-soc-rockchip-add-rk3588-USB3-syscon.patch @@ -0,0 +1,57 @@ +From 86af665b81ec23dbefc97f1b481d17536fd84f26 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 30 May 2023 18:49:48 +0200 +Subject: [PATCH 18/41] dt-bindings: soc: rockchip: add rk3588 USB3 syscon + +RK3588 USB3 support requires the GRF for USB, USBDP PHY and VO. + +Signed-off-by: Sebastian Reichel +--- + .../devicetree/bindings/soc/rockchip/grf.yaml | 22 +++++++++++++++++++ + 1 file changed, 22 insertions(+) + +--- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml ++++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml +@@ -28,6 +28,9 @@ properties: + - rockchip,rk3588-sys-grf + - rockchip,rk3588-pcie3-phy-grf + - rockchip,rk3588-pcie3-pipe-grf ++ - rockchip,rk3588-usb-grf ++ - rockchip,rk3588-usbdpphy-grf ++ - rockchip,rk3588-vo-grf + - rockchip,rv1108-usbgrf + - const: syscon + - items: +@@ -64,6 +67,9 @@ properties: + reg: + maxItems: 1 + ++ clocks: ++ maxItems: 1 ++ + "#address-cells": + const: 1 + +@@ -246,6 +252,22 @@ allOf: + + unevaluatedProperties: false + ++ - if: ++ properties: ++ compatible: ++ contains: ++ enum: ++ - rockchip,rk3588-vo-grf ++ ++ then: ++ required: ++ - clocks ++ ++ else: ++ properties: ++ clocks: false ++ ++ + examples: + - | + #include diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-19-phy-rockchip-add-usbdp-combo-phy-driver.patch b/target/linux/rockchip/patches-6.6/200-v6.7-19-phy-rockchip-add-usbdp-combo-phy-driver.patch new file mode 100644 index 00000000000000..6fb1e4d1775b28 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-19-phy-rockchip-add-usbdp-combo-phy-driver.patch @@ -0,0 +1,1782 @@ +From 4c85beb0e132ef647a084987d954e03e9028f661 Mon Sep 17 00:00:00 2001 +From: Frank Wang +Date: Tue, 25 Apr 2023 15:55:54 +0200 +Subject: [PATCH 19/41] phy: rockchip: add usbdp combo phy driver + +This adds a new USBDP combo PHY with Samsung IP block driver. + +The driver get lane mux and mapping info in 2 ways, supporting +DisplayPort alternate mode or parsing from DT. When parsing from DT, +the property "rockchip,dp-lane-mux" provide the DP mux and mapping info. + +When do DP link training, need to set lane number, link rate, swing, and +pre-emphasis via PHY configure interface. + +Co-developed-by: Zhang Yubing +Signed-off-by: Zhang Yubing +Co-developed-by: Frank Wang +Signed-off-by: Frank Wang +Signed-off-by: Sebastian Reichel +--- + drivers/phy/rockchip/Kconfig | 12 + + drivers/phy/rockchip/Makefile | 1 + + drivers/phy/rockchip/phy-rockchip-usbdp.c | 1728 +++++++++++++++++++++ + 3 files changed, 1741 insertions(+) + create mode 100644 drivers/phy/rockchip/phy-rockchip-usbdp.c + +--- a/drivers/phy/rockchip/Kconfig ++++ b/drivers/phy/rockchip/Kconfig +@@ -107,3 +107,15 @@ config PHY_ROCKCHIP_USB + select GENERIC_PHY + help + Enable this to support the Rockchip USB 2.0 PHY. ++ ++config PHY_ROCKCHIP_USBDP ++ tristate "Rockchip USBDP COMBO PHY Driver" ++ depends on ARCH_ROCKCHIP && OF ++ select GENERIC_PHY ++ select TYPEC ++ help ++ Enable this to support the Rockchip USB3.0/DP combo PHY with ++ Samsung IP block. This is required for USB3 support on RK3588. ++ ++ To compile this driver as a module, choose M here: the module ++ will be called phy-rockchip-usbdp +--- a/drivers/phy/rockchip/Makefile ++++ b/drivers/phy/rockchip/Makefile +@@ -11,3 +11,4 @@ obj-$(CONFIG_PHY_ROCKCHIP_PCIE) += phy- + obj-$(CONFIG_PHY_ROCKCHIP_SNPS_PCIE3) += phy-rockchip-snps-pcie3.o + obj-$(CONFIG_PHY_ROCKCHIP_TYPEC) += phy-rockchip-typec.o + obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o ++obj-$(CONFIG_PHY_ROCKCHIP_USBDP) += phy-rockchip-usbdp.o +--- /dev/null ++++ b/drivers/phy/rockchip/phy-rockchip-usbdp.c +@@ -0,0 +1,1728 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later ++/* ++ * Rockchip USBDP Combo PHY with Samsung IP block driver ++ * ++ * Copyright (C) 2021 Rockchip Electronics Co., Ltd ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* RK3588 USBDP PHY Register Definitions */ ++ ++#define UDPHY_PCS 0x4000 ++#define UDPHY_PMA 0x8000 ++ ++/* VO0 GRF Registers */ ++#define RK3588_GRF_VO0_CON0 0x0000 ++#define RK3588_GRF_VO0_CON2 0x0008 ++#define DP_SINK_HPD_CFG BIT(11) ++#define DP_SINK_HPD_SEL BIT(10) ++#define DP_AUX_DIN_SEL BIT(9) ++#define DP_AUX_DOUT_SEL BIT(8) ++#define DP_LANE_SEL_N(n) GENMASK(2 * (n) + 1, 2 * (n)) ++#define DP_LANE_SEL_ALL GENMASK(7, 0) ++#define PHY_AUX_DP_DATA_POL_NORMAL 0 ++#define PHY_AUX_DP_DATA_POL_INVERT 1 ++ ++/* PMA CMN Registers */ ++#define CMN_LANE_MUX_AND_EN_OFFSET 0x0288 /* cmn_reg00A2 */ ++#define CMN_DP_LANE_MUX_N(n) BIT((n) + 4) ++#define CMN_DP_LANE_EN_N(n) BIT(n) ++#define CMN_DP_LANE_MUX_ALL GENMASK(7, 4) ++#define CMN_DP_LANE_EN_ALL GENMASK(3, 0) ++#define PHY_LANE_MUX_USB 0 ++#define PHY_LANE_MUX_DP 1 ++ ++#define CMN_DP_LINK_OFFSET 0x28c /*cmn_reg00A3 */ ++#define CMN_DP_TX_LINK_BW GENMASK(6, 5) ++#define CMN_DP_TX_LANE_SWAP_EN BIT(2) ++ ++#define CMN_SSC_EN_OFFSET 0x2d0 /* cmn_reg00B4 */ ++#define CMN_ROPLL_SSC_EN BIT(1) ++#define CMN_LCPLL_SSC_EN BIT(0) ++ ++#define CMN_ANA_LCPLL_DONE_OFFSET 0x0350 /* cmn_reg00D4 */ ++#define CMN_ANA_LCPLL_LOCK_DONE BIT(7) ++#define CMN_ANA_LCPLL_AFC_DONE BIT(6) ++ ++#define CMN_ANA_ROPLL_DONE_OFFSET 0x0354 /* cmn_reg00D5 */ ++#define CMN_ANA_ROPLL_LOCK_DONE BIT(1) ++#define CMN_ANA_ROPLL_AFC_DONE BIT(0) ++ ++#define CMN_DP_RSTN_OFFSET 0x038c /* cmn_reg00E3 */ ++#define CMN_DP_INIT_RSTN BIT(3) ++#define CMN_DP_CMN_RSTN BIT(2) ++#define CMN_CDR_WTCHDG_EN BIT(1) ++#define CMN_CDR_WTCHDG_MSK_CDR_EN BIT(0) ++ ++#define TRSV_ANA_TX_CLK_OFFSET_N(n) (0x854 + (n) * 0x800) /* trsv_reg0215 */ ++#define LN_ANA_TX_SER_TXCLK_INV BIT(1) ++ ++#define TRSV_LN0_MON_RX_CDR_DONE_OFFSET 0x0b84 /* trsv_reg02E1 */ ++#define TRSV_LN0_MON_RX_CDR_LOCK_DONE BIT(0) ++ ++#define TRSV_LN2_MON_RX_CDR_DONE_OFFSET 0x1b84 /* trsv_reg06E1 */ ++#define TRSV_LN2_MON_RX_CDR_LOCK_DONE BIT(0) ++ ++ ++#define BIT_WRITEABLE_SHIFT 16 ++ ++enum { ++ DP_BW_RBR, ++ DP_BW_HBR, ++ DP_BW_HBR2, ++ DP_BW_HBR3, ++}; ++ ++enum { ++ UDPHY_MODE_NONE = 0, ++ UDPHY_MODE_USB = BIT(0), ++ UDPHY_MODE_DP = BIT(1), ++ UDPHY_MODE_DP_USB = BIT(1) | BIT(0), ++}; ++ ++struct udphy_grf_reg { ++ unsigned int offset; ++ unsigned int bitend; ++ unsigned int bitstart; ++ unsigned int disable; ++ unsigned int enable; ++}; ++ ++struct udphy_grf_cfg { ++ /* u2phy-grf */ ++ struct udphy_grf_reg bvalid_phy_con; ++ struct udphy_grf_reg bvalid_grf_con; ++ ++ /* usb-grf */ ++ struct udphy_grf_reg usb3otg0_cfg; ++ struct udphy_grf_reg usb3otg1_cfg; ++ ++ /* usbdpphy-grf */ ++ struct udphy_grf_reg low_pwrn; ++ struct udphy_grf_reg rx_lfps; ++}; ++ ++struct udphy_vogrf_cfg { ++ /* vo-grf */ ++ struct udphy_grf_reg hpd_trigger; ++}; ++ ++struct dp_tx_drv_ctrl { ++ u32 trsv_reg0204; ++ u32 trsv_reg0205; ++ u32 trsv_reg0206; ++ u32 trsv_reg0207; ++}; ++ ++struct rockchip_udphy; ++ ++struct rockchip_udphy_cfg { ++ /* resets to be requested */ ++ const char * const *rst_list; ++ int num_rsts; ++ ++ struct udphy_grf_cfg grfcfg; ++ struct udphy_vogrf_cfg vogrfcfg[2]; ++ const struct dp_tx_drv_ctrl (*dp_tx_ctrl_cfg[4])[4]; ++ const struct dp_tx_drv_ctrl (*dp_tx_ctrl_cfg_typec[4])[4]; ++ int (*combophy_init)(struct rockchip_udphy *udphy); ++ int (*dp_phy_set_rate)(struct rockchip_udphy *udphy, ++ struct phy_configure_opts_dp *dp); ++ int (*dp_phy_set_voltages)(struct rockchip_udphy *udphy, ++ struct phy_configure_opts_dp *dp); ++ int (*hpd_event_trigger)(struct rockchip_udphy *udphy, bool hpd); ++ int (*dplane_enable)(struct rockchip_udphy *udphy, int dp_lanes); ++ int (*dplane_select)(struct rockchip_udphy *udphy); ++}; ++ ++struct rockchip_udphy { ++ struct device *dev; ++ struct regmap *pma_regmap; ++ struct regmap *u2phygrf; ++ struct regmap *udphygrf; ++ struct regmap *usbgrf; ++ struct regmap *vogrf; ++ struct typec_switch_dev *sw; ++ struct typec_mux_dev *mux; ++ struct mutex mutex; /* mutex to protect access to individual PHYs */ ++ ++ /* clocks and rests */ ++ int num_clks; ++ struct clk_bulk_data *clks; ++ struct clk *refclk; ++ struct reset_control **rsts; ++ ++ /* PHY status management */ ++ bool flip; ++ bool mode_change; ++ u8 mode; ++ u8 status; ++ ++ /* utilized for USB */ ++ bool hs; /* flag for high-speed */ ++ ++ /* utilized for DP */ ++ struct gpio_desc *sbu1_dc_gpio; ++ struct gpio_desc *sbu2_dc_gpio; ++ u32 lane_mux_sel[4]; ++ u32 dp_lane_sel[4]; ++ u32 dp_aux_dout_sel; ++ u32 dp_aux_din_sel; ++ bool dp_sink_hpd_sel; ++ bool dp_sink_hpd_cfg; ++ u8 bw; ++ int id; ++ ++ /* PHY const config */ ++ const struct rockchip_udphy_cfg *cfgs; ++}; ++ ++static const struct dp_tx_drv_ctrl rk3588_dp_tx_drv_ctrl_rbr_hbr[4][4] = { ++ /* voltage swing 0, pre-emphasis 0->3 */ ++ { ++ { 0x20, 0x10, 0x42, 0xe5 }, ++ { 0x26, 0x14, 0x42, 0xe5 }, ++ { 0x29, 0x18, 0x42, 0xe5 }, ++ { 0x2b, 0x1c, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 1, pre-emphasis 0->2 */ ++ { ++ { 0x23, 0x10, 0x42, 0xe7 }, ++ { 0x2a, 0x17, 0x43, 0xe7 }, ++ { 0x2b, 0x1a, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 2, pre-emphasis 0->1 */ ++ { ++ { 0x27, 0x10, 0x42, 0xe7 }, ++ { 0x2b, 0x17, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 3, pre-emphasis 0 */ ++ { ++ { 0x29, 0x10, 0x43, 0xe7 }, ++ }, ++}; ++ ++static const struct dp_tx_drv_ctrl rk3588_dp_tx_drv_ctrl_rbr_hbr_typec[4][4] = { ++ /* voltage swing 0, pre-emphasis 0->3 */ ++ { ++ { 0x20, 0x10, 0x42, 0xe5 }, ++ { 0x26, 0x14, 0x42, 0xe5 }, ++ { 0x29, 0x18, 0x42, 0xe5 }, ++ { 0x2b, 0x1c, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 1, pre-emphasis 0->2 */ ++ { ++ { 0x23, 0x10, 0x42, 0xe7 }, ++ { 0x2a, 0x17, 0x43, 0xe7 }, ++ { 0x2b, 0x1a, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 2, pre-emphasis 0->1 */ ++ { ++ { 0x27, 0x10, 0x43, 0x67 }, ++ { 0x2b, 0x17, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 3, pre-emphasis 0 */ ++ { ++ { 0x29, 0x10, 0x43, 0xe7 }, ++ }, ++}; ++ ++static const struct dp_tx_drv_ctrl rk3588_dp_tx_drv_ctrl_hbr2[4][4] = { ++ /* voltage swing 0, pre-emphasis 0->3 */ ++ { ++ { 0x21, 0x10, 0x42, 0xe5 }, ++ { 0x26, 0x14, 0x42, 0xe5 }, ++ { 0x26, 0x16, 0x43, 0xe5 }, ++ { 0x2a, 0x19, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 1, pre-emphasis 0->2 */ ++ { ++ { 0x24, 0x10, 0x42, 0xe7 }, ++ { 0x2a, 0x17, 0x43, 0xe7 }, ++ { 0x2b, 0x1a, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 2, pre-emphasis 0->1 */ ++ { ++ { 0x28, 0x10, 0x42, 0xe7 }, ++ { 0x2b, 0x17, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 3, pre-emphasis 0 */ ++ { ++ { 0x28, 0x10, 0x43, 0xe7 }, ++ }, ++}; ++ ++static const struct dp_tx_drv_ctrl rk3588_dp_tx_drv_ctrl_hbr3[4][4] = { ++ /* voltage swing 0, pre-emphasis 0->3 */ ++ { ++ { 0x21, 0x10, 0x42, 0xe5 }, ++ { 0x26, 0x14, 0x42, 0xe5 }, ++ { 0x26, 0x16, 0x43, 0xe5 }, ++ { 0x29, 0x18, 0x43, 0xe7 }, ++ }, ++ ++ /* voltage swing 1, pre-emphasis 0->2 */ ++ { ++ { 0x24, 0x10, 0x42, 0xe7 }, ++ { 0x2a, 0x18, 0x43, 0xe7 }, ++ { 0x2b, 0x1b, 0x43, 0xe7 } ++ }, ++ ++ /* voltage swing 2, pre-emphasis 0->1 */ ++ { ++ { 0x27, 0x10, 0x42, 0xe7 }, ++ { 0x2b, 0x18, 0x43, 0xe7 } ++ }, ++ ++ /* voltage swing 3, pre-emphasis 0 */ ++ { ++ { 0x28, 0x10, 0x43, 0xe7 }, ++ }, ++}; ++ ++static const struct reg_sequence rk3588_udphy_24m_refclk_cfg[] = { ++ {0x0090, 0x68}, {0x0094, 0x68}, ++ {0x0128, 0x24}, {0x012c, 0x44}, ++ {0x0130, 0x3f}, {0x0134, 0x44}, ++ {0x015c, 0xa9}, {0x0160, 0x71}, ++ {0x0164, 0x71}, {0x0168, 0xa9}, ++ {0x0174, 0xa9}, {0x0178, 0x71}, ++ {0x017c, 0x71}, {0x0180, 0xa9}, ++ {0x018c, 0x41}, {0x0190, 0x00}, ++ {0x0194, 0x05}, {0x01ac, 0x2a}, ++ {0x01b0, 0x17}, {0x01b4, 0x17}, ++ {0x01b8, 0x2a}, {0x01c8, 0x04}, ++ {0x01cc, 0x08}, {0x01d0, 0x08}, ++ {0x01d4, 0x04}, {0x01d8, 0x20}, ++ {0x01dc, 0x01}, {0x01e0, 0x09}, ++ {0x01e4, 0x03}, {0x01f0, 0x29}, ++ {0x01f4, 0x02}, {0x01f8, 0x02}, ++ {0x01fc, 0x29}, {0x0208, 0x2a}, ++ {0x020c, 0x17}, {0x0210, 0x17}, ++ {0x0214, 0x2a}, {0x0224, 0x20}, ++ {0x03f0, 0x0a}, {0x03f4, 0x07}, ++ {0x03f8, 0x07}, {0x03fc, 0x0c}, ++ {0x0404, 0x12}, {0x0408, 0x1a}, ++ {0x040c, 0x1a}, {0x0410, 0x3f}, ++ {0x0ce0, 0x68}, {0x0ce8, 0xd0}, ++ {0x0cf0, 0x87}, {0x0cf8, 0x70}, ++ {0x0d00, 0x70}, {0x0d08, 0xa9}, ++ {0x1ce0, 0x68}, {0x1ce8, 0xd0}, ++ {0x1cf0, 0x87}, {0x1cf8, 0x70}, ++ {0x1d00, 0x70}, {0x1d08, 0xa9}, ++ {0x0a3c, 0xd0}, {0x0a44, 0xd0}, ++ {0x0a48, 0x01}, {0x0a4c, 0x0d}, ++ {0x0a54, 0xe0}, {0x0a5c, 0xe0}, ++ {0x0a64, 0xa8}, {0x1a3c, 0xd0}, ++ {0x1a44, 0xd0}, {0x1a48, 0x01}, ++ {0x1a4c, 0x0d}, {0x1a54, 0xe0}, ++ {0x1a5c, 0xe0}, {0x1a64, 0xa8} ++}; ++ ++static const struct reg_sequence rk3588_udphy_26m_refclk_cfg[] = { ++ {0x0830, 0x07}, {0x085c, 0x80}, ++ {0x1030, 0x07}, {0x105c, 0x80}, ++ {0x1830, 0x07}, {0x185c, 0x80}, ++ {0x2030, 0x07}, {0x205c, 0x80}, ++ {0x0228, 0x38}, {0x0104, 0x44}, ++ {0x0248, 0x44}, {0x038C, 0x02}, ++ {0x0878, 0x04}, {0x1878, 0x04}, ++ {0x0898, 0x77}, {0x1898, 0x77}, ++ {0x0054, 0x01}, {0x00e0, 0x38}, ++ {0x0060, 0x24}, {0x0064, 0x77}, ++ {0x0070, 0x76}, {0x0234, 0xE8}, ++ {0x0AF4, 0x15}, {0x1AF4, 0x15}, ++ {0x081C, 0xE5}, {0x181C, 0xE5}, ++ {0x099C, 0x48}, {0x199C, 0x48}, ++ {0x09A4, 0x07}, {0x09A8, 0x22}, ++ {0x19A4, 0x07}, {0x19A8, 0x22}, ++ {0x09B8, 0x3E}, {0x19B8, 0x3E}, ++ {0x09E4, 0x02}, {0x19E4, 0x02}, ++ {0x0A34, 0x1E}, {0x1A34, 0x1E}, ++ {0x0A98, 0x2F}, {0x1A98, 0x2F}, ++ {0x0c30, 0x0E}, {0x0C48, 0x06}, ++ {0x1C30, 0x0E}, {0x1C48, 0x06}, ++ {0x028C, 0x18}, {0x0AF0, 0x00}, ++ {0x1AF0, 0x00} ++}; ++ ++static const struct reg_sequence rk3588_udphy_init_sequence[] = { ++ {0x0104, 0x44}, {0x0234, 0xE8}, ++ {0x0248, 0x44}, {0x028C, 0x18}, ++ {0x081C, 0xE5}, {0x0878, 0x00}, ++ {0x0994, 0x1C}, {0x0AF0, 0x00}, ++ {0x181C, 0xE5}, {0x1878, 0x00}, ++ {0x1994, 0x1C}, {0x1AF0, 0x00}, ++ {0x0428, 0x60}, {0x0D58, 0x33}, ++ {0x1D58, 0x33}, {0x0990, 0x74}, ++ {0x0D64, 0x17}, {0x08C8, 0x13}, ++ {0x1990, 0x74}, {0x1D64, 0x17}, ++ {0x18C8, 0x13}, {0x0D90, 0x40}, ++ {0x0DA8, 0x40}, {0x0DC0, 0x40}, ++ {0x0DD8, 0x40}, {0x1D90, 0x40}, ++ {0x1DA8, 0x40}, {0x1DC0, 0x40}, ++ {0x1DD8, 0x40}, {0x03C0, 0x30}, ++ {0x03C4, 0x06}, {0x0E10, 0x00}, ++ {0x1E10, 0x00}, {0x043C, 0x0F}, ++ {0x0D2C, 0xFF}, {0x1D2C, 0xFF}, ++ {0x0D34, 0x0F}, {0x1D34, 0x0F}, ++ {0x08FC, 0x2A}, {0x0914, 0x28}, ++ {0x0A30, 0x03}, {0x0E38, 0x05}, ++ {0x0ECC, 0x27}, {0x0ED0, 0x22}, ++ {0x0ED4, 0x26}, {0x18FC, 0x2A}, ++ {0x1914, 0x28}, {0x1A30, 0x03}, ++ {0x1E38, 0x05}, {0x1ECC, 0x27}, ++ {0x1ED0, 0x22}, {0x1ED4, 0x26}, ++ {0x0048, 0x0F}, {0x0060, 0x3C}, ++ {0x0064, 0xF7}, {0x006C, 0x20}, ++ {0x0070, 0x7D}, {0x0074, 0x68}, ++ {0x0AF4, 0x1A}, {0x1AF4, 0x1A}, ++ {0x0440, 0x3F}, {0x10D4, 0x08}, ++ {0x20D4, 0x08}, {0x00D4, 0x30}, ++ {0x0024, 0x6e}, ++}; ++ ++static inline int grfreg_write(struct regmap *base, ++ const struct udphy_grf_reg *reg, bool en) ++{ ++ u32 val, mask, tmp; ++ ++ tmp = en ? reg->enable : reg->disable; ++ mask = GENMASK(reg->bitend, reg->bitstart); ++ val = (tmp << reg->bitstart) | (mask << BIT_WRITEABLE_SHIFT); ++ ++ return regmap_write(base, reg->offset, val); ++} ++ ++static int udphy_clk_init(struct rockchip_udphy *udphy, struct device *dev) ++{ ++ int i; ++ ++ udphy->num_clks = devm_clk_bulk_get_all(dev, &udphy->clks); ++ if (udphy->num_clks < 1) ++ return -ENODEV; ++ ++ /* used for configure phy reference clock frequency */ ++ for (i = 0; i < udphy->num_clks; i++) { ++ if (!strncmp(udphy->clks[i].id, "refclk", 6)) { ++ udphy->refclk = udphy->clks[i].clk; ++ break; ++ } ++ } ++ ++ if (!udphy->refclk) ++ dev_warn(udphy->dev, "no refclk found\n"); ++ ++ return 0; ++} ++ ++static int udphy_reset_init(struct rockchip_udphy *udphy, struct device *dev) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int idx; ++ ++ udphy->rsts = devm_kcalloc(dev, cfg->num_rsts, ++ sizeof(*udphy->rsts), GFP_KERNEL); ++ if (!udphy->rsts) ++ return -ENOMEM; ++ ++ for (idx = 0; idx < cfg->num_rsts; idx++) { ++ struct reset_control *rst; ++ const char *name = cfg->rst_list[idx]; ++ ++ rst = devm_reset_control_get(dev, name); ++ if (IS_ERR(rst)) { ++ dev_err(dev, "failed to get %s reset\n", name); ++ devm_kfree(dev, (void *)udphy->rsts); ++ return PTR_ERR(rst); ++ } ++ ++ udphy->rsts[idx] = rst; ++ } ++ ++ return 0; ++} ++ ++static int udphy_get_rst_idx(const char * const *list, int num, char *name) ++{ ++ int idx; ++ ++ for (idx = 0; idx < num; idx++) { ++ if (!strcmp(list[idx], name)) ++ return idx; ++ } ++ ++ return -EINVAL; ++} ++ ++static int udphy_reset_assert(struct rockchip_udphy *udphy, char *name) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int idx; ++ ++ idx = udphy_get_rst_idx(cfg->rst_list, cfg->num_rsts, name); ++ if (idx < 0) ++ return idx; ++ ++ return reset_control_assert(udphy->rsts[idx]); ++} ++ ++static int udphy_reset_deassert(struct rockchip_udphy *udphy, char *name) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int idx; ++ ++ idx = udphy_get_rst_idx(cfg->rst_list, cfg->num_rsts, name); ++ if (idx < 0) ++ return idx; ++ ++ return reset_control_deassert(udphy->rsts[idx]); ++} ++ ++static void udphy_u3_port_disable(struct rockchip_udphy *udphy, u8 disable) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ const struct udphy_grf_reg *preg; ++ ++ preg = udphy->id ? &cfg->grfcfg.usb3otg1_cfg : &cfg->grfcfg.usb3otg0_cfg; ++ grfreg_write(udphy->usbgrf, preg, disable); ++} ++ ++static void udphy_usb_bvalid_enable(struct rockchip_udphy *udphy, u8 enable) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ ++ grfreg_write(udphy->u2phygrf, &cfg->grfcfg.bvalid_phy_con, enable); ++ grfreg_write(udphy->u2phygrf, &cfg->grfcfg.bvalid_grf_con, enable); ++} ++ ++/* ++ * In usb/dp combo phy driver, here are 2 ways to mapping lanes. ++ * ++ * 1 Type-C Mapping table (DP_Alt_Mode V1.0b remove ABF pin mapping) ++ * --------------------------------------------------------------------------- ++ * Type-C Pin B11-B10 A2-A3 A11-A10 B2-B3 ++ * PHY Pad ln0(tx/rx) ln1(tx) ln2(tx/rx) ln3(tx) ++ * C/E(Normal) dpln3 dpln2 dpln0 dpln1 ++ * C/E(Flip ) dpln0 dpln1 dpln3 dpln2 ++ * D/F(Normal) usbrx usbtx dpln0 dpln1 ++ * D/F(Flip ) dpln0 dpln1 usbrx usbtx ++ * A(Normal ) dpln3 dpln1 dpln2 dpln0 ++ * A(Flip ) dpln2 dpln0 dpln3 dpln1 ++ * B(Normal ) usbrx usbtx dpln1 dpln0 ++ * B(Flip ) dpln1 dpln0 usbrx usbtx ++ * --------------------------------------------------------------------------- ++ * ++ * 2 Mapping the lanes in dtsi ++ * if all 4 lane assignment for dp function, define rockchip,dp-lane-mux = ; ++ * sample as follow: ++ * --------------------------------------------------------------------------- ++ * B11-B10 A2-A3 A11-A10 B2-B3 ++ * rockchip,dp-lane-mux ln0(tx/rx) ln1(tx) ln2(tx/rx) ln3(tx) ++ * <0 1 2 3> dpln0 dpln1 dpln2 dpln3 ++ * <2 3 0 1> dpln2 dpln3 dpln0 dpln1 ++ * --------------------------------------------------------------------------- ++ * if 2 lane for dp function, 2 lane for usb function, define rockchip,dp-lane-mux = ; ++ * sample as follow: ++ * --------------------------------------------------------------------------- ++ * B11-B10 A2-A3 A11-A10 B2-B3 ++ * rockchip,dp-lane-mux ln0(tx/rx) ln1(tx) ln2(tx/rx) ln3(tx) ++ * <0 1> dpln0 dpln1 usbrx usbtx ++ * <2 3> usbrx usbtx dpln0 dpln1 ++ * --------------------------------------------------------------------------- ++ */ ++ ++static int udphy_dplane_select(struct rockchip_udphy *udphy) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ ++ if (cfg->dplane_select) ++ return cfg->dplane_select(udphy); ++ ++ return 0; ++} ++ ++static int udphy_dplane_get(struct rockchip_udphy *udphy) ++{ ++ int dp_lanes; ++ ++ switch (udphy->mode) { ++ case UDPHY_MODE_DP: ++ dp_lanes = 4; ++ break; ++ case UDPHY_MODE_DP_USB: ++ dp_lanes = 2; ++ break; ++ case UDPHY_MODE_USB: ++ fallthrough; ++ default: ++ dp_lanes = 0; ++ break; ++ } ++ ++ return dp_lanes; ++} ++ ++static int udphy_dplane_enable(struct rockchip_udphy *udphy, int dp_lanes) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int ret = 0; ++ ++ if (cfg->dplane_enable) ++ ret = cfg->dplane_enable(udphy, dp_lanes); ++ ++ return ret; ++} ++ ++static int upphy_set_typec_default_mapping(struct rockchip_udphy *udphy) ++{ ++ if (udphy->flip) { ++ udphy->dp_lane_sel[0] = 0; ++ udphy->dp_lane_sel[1] = 1; ++ udphy->dp_lane_sel[2] = 3; ++ udphy->dp_lane_sel[3] = 2; ++ udphy->lane_mux_sel[0] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[1] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[2] = PHY_LANE_MUX_USB; ++ udphy->lane_mux_sel[3] = PHY_LANE_MUX_USB; ++ udphy->dp_aux_dout_sel = PHY_AUX_DP_DATA_POL_INVERT; ++ udphy->dp_aux_din_sel = PHY_AUX_DP_DATA_POL_INVERT; ++ gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 1); ++ gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 0); ++ } else { ++ udphy->dp_lane_sel[0] = 2; ++ udphy->dp_lane_sel[1] = 3; ++ udphy->dp_lane_sel[2] = 1; ++ udphy->dp_lane_sel[3] = 0; ++ udphy->lane_mux_sel[0] = PHY_LANE_MUX_USB; ++ udphy->lane_mux_sel[1] = PHY_LANE_MUX_USB; ++ udphy->lane_mux_sel[2] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[3] = PHY_LANE_MUX_DP; ++ udphy->dp_aux_dout_sel = PHY_AUX_DP_DATA_POL_NORMAL; ++ udphy->dp_aux_din_sel = PHY_AUX_DP_DATA_POL_NORMAL; ++ gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 0); ++ gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 1); ++ } ++ ++ udphy->mode = UDPHY_MODE_DP_USB; ++ ++ return 0; ++} ++ ++static int udphy_orien_sw_set(struct typec_switch_dev *sw, ++ enum typec_orientation orien) ++{ ++ struct rockchip_udphy *udphy = typec_switch_get_drvdata(sw); ++ ++ mutex_lock(&udphy->mutex); ++ ++ if (orien == TYPEC_ORIENTATION_NONE) { ++ gpiod_set_value_cansleep(udphy->sbu1_dc_gpio, 0); ++ gpiod_set_value_cansleep(udphy->sbu2_dc_gpio, 0); ++ /* unattached */ ++ udphy_usb_bvalid_enable(udphy, false); ++ goto unlock_ret; ++ } ++ ++ udphy->flip = (orien == TYPEC_ORIENTATION_REVERSE) ? true : false; ++ upphy_set_typec_default_mapping(udphy); ++ udphy_usb_bvalid_enable(udphy, true); ++ ++unlock_ret: ++ mutex_unlock(&udphy->mutex); ++ return 0; ++} ++ ++static int udphy_setup_orien_switch(struct rockchip_udphy *udphy) ++{ ++ struct typec_switch_desc sw_desc = { }; ++ ++ sw_desc.drvdata = udphy; ++ sw_desc.fwnode = dev_fwnode(udphy->dev); ++ sw_desc.set = udphy_orien_sw_set; ++ ++ udphy->sw = typec_switch_register(udphy->dev, &sw_desc); ++ if (IS_ERR(udphy->sw)) { ++ dev_err(udphy->dev, "Error register typec orientation switch: %ld\n", ++ PTR_ERR(udphy->sw)); ++ return PTR_ERR(udphy->sw); ++ } ++ ++ return 0; ++} ++ ++static void udphy_orien_switch_unregister(void *data) ++{ ++ struct rockchip_udphy *udphy = data; ++ ++ typec_switch_unregister(udphy->sw); ++} ++ ++static int udphy_setup(struct rockchip_udphy *udphy) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int ret = 0; ++ ++ ret = clk_bulk_prepare_enable(udphy->num_clks, udphy->clks); ++ if (ret) { ++ dev_err(udphy->dev, "failed to enable clk\n"); ++ return ret; ++ } ++ ++ if (cfg->combophy_init) { ++ ret = cfg->combophy_init(udphy); ++ if (ret) { ++ dev_err(udphy->dev, "failed to init combophy\n"); ++ clk_bulk_disable_unprepare(udphy->num_clks, udphy->clks); ++ return ret; ++ } ++ } ++ ++ return 0; ++} ++ ++static int udphy_disable(struct rockchip_udphy *udphy) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int i; ++ ++ clk_bulk_disable_unprepare(udphy->num_clks, udphy->clks); ++ ++ for (i = 0; i < cfg->num_rsts; i++) ++ reset_control_assert(udphy->rsts[i]); ++ ++ return 0; ++} ++ ++static int udphy_parse_lane_mux_data(struct rockchip_udphy *udphy, struct device_node *np) ++{ ++ struct property *prop; ++ int ret, i, len, num_lanes; ++ ++ prop = of_find_property(np, "rockchip,dp-lane-mux", &len); ++ if (!prop) { ++ dev_dbg(udphy->dev, "failed to find dp lane mux, following dp alt mode\n"); ++ udphy->mode = UDPHY_MODE_USB; ++ return 0; ++ } ++ ++ num_lanes = len / sizeof(u32); ++ ++ if (num_lanes != 2 && num_lanes != 4) { ++ dev_err(udphy->dev, "invalid number of lane mux\n"); ++ return -EINVAL; ++ } ++ ++ ret = of_property_read_u32_array(np, "rockchip,dp-lane-mux", udphy->dp_lane_sel, num_lanes); ++ if (ret) { ++ dev_err(udphy->dev, "get dp lane mux failed\n"); ++ return -EINVAL; ++ } ++ ++ for (i = 0; i < num_lanes; i++) { ++ int j; ++ ++ if (udphy->dp_lane_sel[i] > 3) { ++ dev_err(udphy->dev, "lane mux between 0 and 3, exceeding the range\n"); ++ return -EINVAL; ++ } ++ ++ udphy->lane_mux_sel[udphy->dp_lane_sel[i]] = PHY_LANE_MUX_DP; ++ ++ for (j = i + 1; j < num_lanes; j++) { ++ if (udphy->dp_lane_sel[i] == udphy->dp_lane_sel[j]) { ++ dev_err(udphy->dev, "set repeat lane mux value\n"); ++ return -EINVAL; ++ } ++ } ++ } ++ ++ udphy->mode = UDPHY_MODE_DP; ++ if (num_lanes == 2) ++ udphy->mode |= UDPHY_MODE_USB; ++ ++ return 0; ++} ++ ++static int udphy_get_initial_status(struct rockchip_udphy *udphy) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int ret, i; ++ u32 value; ++ ++ ret = clk_bulk_prepare_enable(udphy->num_clks, udphy->clks); ++ if (ret) { ++ dev_err(udphy->dev, "failed to enable clk\n"); ++ return ret; ++ } ++ ++ for (i = 0; i < cfg->num_rsts; i++) ++ reset_control_deassert(udphy->rsts[i]); ++ ++ regmap_read(udphy->pma_regmap, CMN_LANE_MUX_AND_EN_OFFSET, &value); ++ if (FIELD_GET(CMN_DP_LANE_MUX_ALL, value) && FIELD_GET(CMN_DP_LANE_EN_ALL, value)) ++ udphy->status = UDPHY_MODE_DP; ++ else ++ udphy_disable(udphy); ++ ++ return 0; ++} ++ ++static int udphy_parse_dt(struct rockchip_udphy *udphy, struct device *dev) ++{ ++ struct device_node *np = dev->of_node; ++ enum usb_device_speed maximum_speed; ++ int ret; ++ ++ udphy->u2phygrf = syscon_regmap_lookup_by_phandle(np, "rockchip,u2phy-grf"); ++ if (IS_ERR(udphy->u2phygrf)) { ++ if (PTR_ERR(udphy->u2phygrf) == -ENODEV) { ++ dev_warn(dev, "missing u2phy-grf dt node\n"); ++ udphy->u2phygrf = NULL; ++ } else { ++ return PTR_ERR(udphy->u2phygrf); ++ } ++ } ++ ++ udphy->udphygrf = syscon_regmap_lookup_by_phandle(np, "rockchip,usbdpphy-grf"); ++ if (IS_ERR(udphy->udphygrf)) { ++ if (PTR_ERR(udphy->udphygrf) == -ENODEV) { ++ dev_warn(dev, "missing usbdpphy-grf dt node\n"); ++ udphy->udphygrf = NULL; ++ } else { ++ return PTR_ERR(udphy->udphygrf); ++ } ++ } ++ ++ udphy->usbgrf = syscon_regmap_lookup_by_phandle(np, "rockchip,usb-grf"); ++ if (IS_ERR(udphy->usbgrf)) { ++ if (PTR_ERR(udphy->usbgrf) == -ENODEV) { ++ dev_warn(dev, "missing usb-grf dt node\n"); ++ udphy->usbgrf = NULL; ++ } else { ++ return PTR_ERR(udphy->usbgrf); ++ } ++ } ++ ++ udphy->vogrf = syscon_regmap_lookup_by_phandle(np, "rockchip,vo-grf"); ++ if (IS_ERR(udphy->vogrf)) { ++ if (PTR_ERR(udphy->vogrf) == -ENODEV) { ++ dev_warn(dev, "missing vo-grf dt node\n"); ++ udphy->vogrf = NULL; ++ } else { ++ return PTR_ERR(udphy->vogrf); ++ } ++ } ++ ++ ret = udphy_parse_lane_mux_data(udphy, np); ++ if (ret) ++ return ret; ++ ++ udphy->sbu1_dc_gpio = devm_gpiod_get_optional(dev, "sbu1-dc", GPIOD_OUT_LOW); ++ if (IS_ERR(udphy->sbu1_dc_gpio)) ++ return PTR_ERR(udphy->sbu1_dc_gpio); ++ ++ udphy->sbu2_dc_gpio = devm_gpiod_get_optional(dev, "sbu2-dc", GPIOD_OUT_LOW); ++ if (IS_ERR(udphy->sbu2_dc_gpio)) ++ return PTR_ERR(udphy->sbu2_dc_gpio); ++ ++ if (device_property_present(dev, "maximum-speed")) { ++ maximum_speed = usb_get_maximum_speed(dev); ++ udphy->hs = maximum_speed <= USB_SPEED_HIGH ? true : false; ++ } ++ ++ ret = udphy_clk_init(udphy, dev); ++ if (ret) ++ return ret; ++ ++ ret = udphy_reset_init(udphy, dev); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static int udphy_power_on(struct rockchip_udphy *udphy, u8 mode) ++{ ++ int ret; ++ ++ if (!(udphy->mode & mode)) { ++ dev_info(udphy->dev, "mode 0x%02x is not support\n", mode); ++ return 0; ++ } ++ ++ if (udphy->status == UDPHY_MODE_NONE) { ++ udphy->mode_change = false; ++ ret = udphy_setup(udphy); ++ if (ret) ++ return ret; ++ ++ if (udphy->mode & UDPHY_MODE_USB) ++ udphy_u3_port_disable(udphy, false); ++ } else if (udphy->mode_change) { ++ udphy->mode_change = false; ++ udphy->status = UDPHY_MODE_NONE; ++ if (udphy->mode == UDPHY_MODE_DP) ++ udphy_u3_port_disable(udphy, true); ++ ++ ret = udphy_disable(udphy); ++ if (ret) ++ return ret; ++ ret = udphy_setup(udphy); ++ if (ret) ++ return ret; ++ } ++ ++ udphy->status |= mode; ++ ++ return 0; ++} ++ ++static int udphy_power_off(struct rockchip_udphy *udphy, u8 mode) ++{ ++ int ret; ++ ++ if (!(udphy->mode & mode)) { ++ dev_info(udphy->dev, "mode 0x%02x is not support\n", mode); ++ return 0; ++ } ++ ++ if (!udphy->status) ++ return 0; ++ ++ udphy->status &= ~mode; ++ ++ if (udphy->status == UDPHY_MODE_NONE) { ++ ret = udphy_disable(udphy); ++ if (ret) ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int rockchip_dp_phy_power_on(struct phy *phy) ++{ ++ struct rockchip_udphy *udphy = phy_get_drvdata(phy); ++ int ret, dp_lanes; ++ ++ mutex_lock(&udphy->mutex); ++ ++ dp_lanes = udphy_dplane_get(udphy); ++ phy_set_bus_width(phy, dp_lanes); ++ ++ ret = udphy_power_on(udphy, UDPHY_MODE_DP); ++ if (ret) ++ goto unlock; ++ ++ ret = udphy_dplane_enable(udphy, dp_lanes); ++ if (ret) ++ goto unlock; ++ ++ ret = udphy_dplane_select(udphy); ++ ++unlock: ++ mutex_unlock(&udphy->mutex); ++ /* ++ * If data send by aux channel too fast after phy power on, ++ * the aux may be not ready which will cause aux error. Adding ++ * delay to avoid this issue. ++ */ ++ usleep_range(10000, 11000); ++ return ret; ++} ++ ++static int rockchip_dp_phy_power_off(struct phy *phy) ++{ ++ struct rockchip_udphy *udphy = phy_get_drvdata(phy); ++ int ret; ++ ++ mutex_lock(&udphy->mutex); ++ ret = udphy_dplane_enable(udphy, 0); ++ if (ret) ++ goto unlock; ++ ++ ret = udphy_power_off(udphy, UDPHY_MODE_DP); ++ ++unlock: ++ mutex_unlock(&udphy->mutex); ++ return ret; ++} ++ ++static int rockchip_dp_phy_verify_link_rate(unsigned int link_rate) ++{ ++ switch (link_rate) { ++ case 1620: ++ case 2700: ++ case 5400: ++ case 8100: ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static int rockchip_dp_phy_verify_config(struct rockchip_udphy *udphy, ++ struct phy_configure_opts_dp *dp) ++{ ++ int i, ret; ++ ++ /* If changing link rate was required, verify it's supported. */ ++ ret = rockchip_dp_phy_verify_link_rate(dp->link_rate); ++ if (ret) ++ return ret; ++ ++ /* Verify lane count. */ ++ switch (dp->lanes) { ++ case 1: ++ case 2: ++ case 4: ++ /* valid lane count. */ ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ /* ++ * If changing voltages is required, check swing and pre-emphasis ++ * levels, per-lane. ++ */ ++ if (dp->set_voltages) { ++ /* Lane count verified previously. */ ++ for (i = 0; i < dp->lanes; i++) { ++ if (dp->voltage[i] > 3 || dp->pre[i] > 3) ++ return -EINVAL; ++ ++ /* ++ * Sum of voltage swing and pre-emphasis levels cannot ++ * exceed 3. ++ */ ++ if (dp->voltage[i] + dp->pre[i] > 3) ++ return -EINVAL; ++ } ++ } ++ ++ return 0; ++} ++ ++static int rockchip_dp_phy_configure(struct phy *phy, ++ union phy_configure_opts *opts) ++{ ++ struct rockchip_udphy *udphy = phy_get_drvdata(phy); ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int ret; ++ ++ ret = rockchip_dp_phy_verify_config(udphy, &opts->dp); ++ if (ret) ++ return ret; ++ ++ if (opts->dp.set_rate && cfg->dp_phy_set_rate) { ++ ret = cfg->dp_phy_set_rate(udphy, &opts->dp); ++ if (ret) { ++ dev_err(udphy->dev, ++ "rockchip_hdptx_phy_set_rate failed\n"); ++ return ret; ++ } ++ } ++ ++ if (opts->dp.set_voltages && cfg->dp_phy_set_voltages) { ++ ret = cfg->dp_phy_set_voltages(udphy, &opts->dp); ++ if (ret) { ++ dev_err(udphy->dev, ++ "rockchip_dp_phy_set_voltages failed\n"); ++ return ret; ++ } ++ } ++ ++ return 0; ++} ++ ++static const struct phy_ops rockchip_dp_phy_ops = { ++ .power_on = rockchip_dp_phy_power_on, ++ .power_off = rockchip_dp_phy_power_off, ++ .configure = rockchip_dp_phy_configure, ++ .owner = THIS_MODULE, ++}; ++ ++static int rockchip_u3phy_init(struct phy *phy) ++{ ++ struct rockchip_udphy *udphy = phy_get_drvdata(phy); ++ int ret = 0; ++ ++ mutex_lock(&udphy->mutex); ++ /* DP only or high-speed, disable U3 port */ ++ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) { ++ udphy_u3_port_disable(udphy, true); ++ goto unlock; ++ } ++ ++ ret = udphy_power_on(udphy, UDPHY_MODE_USB); ++ ++unlock: ++ mutex_unlock(&udphy->mutex); ++ return ret; ++} ++ ++static int rockchip_u3phy_exit(struct phy *phy) ++{ ++ struct rockchip_udphy *udphy = phy_get_drvdata(phy); ++ int ret = 0; ++ ++ mutex_lock(&udphy->mutex); ++ /* DP only or high-speed */ ++ if (!(udphy->mode & UDPHY_MODE_USB) || udphy->hs) ++ goto unlock; ++ ++ ret = udphy_power_off(udphy, UDPHY_MODE_USB); ++ ++unlock: ++ mutex_unlock(&udphy->mutex); ++ return ret; ++} ++ ++static const struct phy_ops rockchip_u3phy_ops = { ++ .init = rockchip_u3phy_init, ++ .exit = rockchip_u3phy_exit, ++ .owner = THIS_MODULE, ++}; ++ ++static int usbdp_typec_mux_set(struct typec_mux_dev *mux, ++ struct typec_mux_state *state) ++{ ++ struct rockchip_udphy *udphy = typec_mux_get_drvdata(mux); ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ u8 mode; ++ ++ mutex_lock(&udphy->mutex); ++ ++ switch (state->mode) { ++ case TYPEC_DP_STATE_C: ++ fallthrough; ++ case TYPEC_DP_STATE_E: ++ udphy->lane_mux_sel[0] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[1] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[2] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[3] = PHY_LANE_MUX_DP; ++ mode = UDPHY_MODE_DP; ++ break; ++ case TYPEC_DP_STATE_D: ++ fallthrough; ++ default: ++ if (udphy->flip) { ++ udphy->lane_mux_sel[0] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[1] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[2] = PHY_LANE_MUX_USB; ++ udphy->lane_mux_sel[3] = PHY_LANE_MUX_USB; ++ } else { ++ udphy->lane_mux_sel[0] = PHY_LANE_MUX_USB; ++ udphy->lane_mux_sel[1] = PHY_LANE_MUX_USB; ++ udphy->lane_mux_sel[2] = PHY_LANE_MUX_DP; ++ udphy->lane_mux_sel[3] = PHY_LANE_MUX_DP; ++ } ++ mode = UDPHY_MODE_DP_USB; ++ break; ++ } ++ ++ if (state->alt && state->alt->svid == USB_TYPEC_DP_SID) { ++ struct typec_displayport_data *data = state->data; ++ ++ if (!data) { ++ if (cfg->hpd_event_trigger) ++ cfg->hpd_event_trigger(udphy, false); ++ } else if (data->status & DP_STATUS_IRQ_HPD) { ++ if (cfg->hpd_event_trigger) { ++ cfg->hpd_event_trigger(udphy, false); ++ usleep_range(750, 800); ++ cfg->hpd_event_trigger(udphy, true); ++ } ++ } else if (data->status & DP_STATUS_HPD_STATE) { ++ if (udphy->mode != mode) { ++ udphy->mode = mode; ++ udphy->mode_change = true; ++ } ++ if (cfg->hpd_event_trigger) ++ cfg->hpd_event_trigger(udphy, true); ++ } else { ++ if (cfg->hpd_event_trigger) ++ cfg->hpd_event_trigger(udphy, false); ++ } ++ } ++ ++ mutex_unlock(&udphy->mutex); ++ return 0; ++} ++ ++static int udphy_setup_typec_mux(struct rockchip_udphy *udphy) ++{ ++ struct typec_mux_desc mux_desc = {}; ++ ++ mux_desc.drvdata = udphy; ++ mux_desc.fwnode = dev_fwnode(udphy->dev); ++ mux_desc.set = usbdp_typec_mux_set; ++ ++ udphy->mux = typec_mux_register(udphy->dev, &mux_desc); ++ if (IS_ERR(udphy->mux)) { ++ dev_err(udphy->dev, "Error register typec mux: %ld\n", ++ PTR_ERR(udphy->mux)); ++ return PTR_ERR(udphy->mux); ++ } ++ ++ return 0; ++} ++ ++static void udphy_typec_mux_unregister(void *data) ++{ ++ struct rockchip_udphy *udphy = data; ++ ++ typec_mux_unregister(udphy->mux); ++} ++ ++static u32 udphy_dp_get_max_link_rate(struct rockchip_udphy *udphy, struct device_node *np) ++{ ++ u32 max_link_rate; ++ int ret; ++ ++ ret = of_property_read_u32(np, "max-link-rate", &max_link_rate); ++ if (ret) ++ return 8100; ++ ++ ret = rockchip_dp_phy_verify_link_rate(max_link_rate); ++ if (ret) { ++ dev_warn(udphy->dev, "invalid max-link-rate value:%d\n", max_link_rate); ++ max_link_rate = 8100; ++ } ++ ++ return max_link_rate; ++} ++ ++static const struct regmap_config rockchip_udphy_pma_regmap_cfg = { ++ .reg_bits = 32, ++ .reg_stride = 4, ++ .val_bits = 32, ++ .fast_io = true, ++ .max_register = 0x20dc, ++}; ++ ++static int rockchip_udphy_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct device_node *np = dev->of_node; ++ struct device_node *child_np; ++ struct phy_provider *phy_provider; ++ struct resource *res; ++ struct rockchip_udphy *udphy; ++ const struct rockchip_udphy_cfg *phy_cfgs; ++ void __iomem *base; ++ int id, ret; ++ ++ udphy = devm_kzalloc(dev, sizeof(*udphy), GFP_KERNEL); ++ if (!udphy) ++ return -ENOMEM; ++ ++ id = of_alias_get_id(dev->of_node, "usbdp"); ++ if (id < 0) ++ id = 0; ++ udphy->id = id; ++ ++ phy_cfgs = device_get_match_data(dev); ++ if (!phy_cfgs) { ++ dev_err(dev, "no OF data can be matched with %p node\n", np); ++ return -EINVAL; ++ } ++ ++ udphy->cfgs = phy_cfgs; ++ ++ base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); ++ if (IS_ERR(base)) ++ return PTR_ERR(base); ++ ++ udphy->pma_regmap = devm_regmap_init_mmio(dev, base + UDPHY_PMA, ++ &rockchip_udphy_pma_regmap_cfg); ++ if (IS_ERR(udphy->pma_regmap)) ++ return PTR_ERR(udphy->pma_regmap); ++ ++ ret = udphy_parse_dt(udphy, dev); ++ if (ret) ++ return ret; ++ ++ ret = udphy_get_initial_status(udphy); ++ if (ret) ++ return ret; ++ ++ mutex_init(&udphy->mutex); ++ udphy->dev = dev; ++ platform_set_drvdata(pdev, udphy); ++ ++ if (device_property_present(dev, "orientation-switch")) { ++ ret = udphy_setup_orien_switch(udphy); ++ if (ret) ++ return ret; ++ ++ ret = devm_add_action_or_reset(dev, udphy_orien_switch_unregister, udphy); ++ if (ret) ++ return ret; ++ } ++ ++ if (device_property_present(dev, "mode-switch")) { ++ ret = udphy_setup_typec_mux(udphy); ++ if (ret) ++ return ret; ++ ++ ret = devm_add_action_or_reset(dev, udphy_typec_mux_unregister, udphy); ++ if (ret) ++ return ret; ++ } ++ ++ for_each_available_child_of_node(np, child_np) { ++ struct phy *phy; ++ ++ if (of_node_name_eq(child_np, "dp-port")) { ++ phy = devm_phy_create(dev, child_np, &rockchip_dp_phy_ops); ++ if (IS_ERR(phy)) { ++ dev_err(dev, "failed to create dp phy: %pOFn\n", child_np); ++ goto put_child; ++ } ++ ++ phy_set_bus_width(phy, udphy_dplane_get(udphy)); ++ phy->attrs.max_link_rate = udphy_dp_get_max_link_rate(udphy, child_np); ++ } else if (of_node_name_eq(child_np, "usb3-port")) { ++ phy = devm_phy_create(dev, child_np, &rockchip_u3phy_ops); ++ if (IS_ERR(phy)) { ++ dev_err(dev, "failed to create usb phy: %pOFn\n", child_np); ++ goto put_child; ++ } ++ } else ++ continue; ++ ++ phy_set_drvdata(phy, udphy); ++ } ++ ++ phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); ++ if (IS_ERR(phy_provider)) { ++ dev_err(dev, "failed to register phy provider\n"); ++ goto put_child; ++ } ++ ++ return 0; ++ ++put_child: ++ of_node_put(child_np); ++ return ret; ++} ++ ++static int rk3588_udphy_refclk_set(struct rockchip_udphy *udphy) ++{ ++ unsigned long rate; ++ int ret; ++ ++ /* configure phy reference clock */ ++ rate = clk_get_rate(udphy->refclk); ++ dev_dbg(udphy->dev, "refclk freq %ld\n", rate); ++ ++ switch (rate) { ++ case 24000000: ++ ret = regmap_multi_reg_write(udphy->pma_regmap, rk3588_udphy_24m_refclk_cfg, ++ ARRAY_SIZE(rk3588_udphy_24m_refclk_cfg)); ++ if (ret) ++ return ret; ++ break; ++ case 26000000: ++ /* register default is 26MHz */ ++ ret = regmap_multi_reg_write(udphy->pma_regmap, rk3588_udphy_26m_refclk_cfg, ++ ARRAY_SIZE(rk3588_udphy_26m_refclk_cfg)); ++ if (ret) ++ return ret; ++ break; ++ default: ++ dev_err(udphy->dev, "unsupported refclk freq %ld\n", rate); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static int rk3588_udphy_status_check(struct rockchip_udphy *udphy) ++{ ++ unsigned int val; ++ int ret; ++ ++ /* LCPLL check */ ++ if (udphy->mode & UDPHY_MODE_USB) { ++ ret = regmap_read_poll_timeout(udphy->pma_regmap, CMN_ANA_LCPLL_DONE_OFFSET, ++ val, (val & CMN_ANA_LCPLL_AFC_DONE) && ++ (val & CMN_ANA_LCPLL_LOCK_DONE), 200, 100000); ++ if (ret) { ++ dev_err(udphy->dev, "cmn ana lcpll lock timeout\n"); ++ return ret; ++ } ++ } ++ ++ if (udphy->mode & UDPHY_MODE_USB) { ++ if (!udphy->flip) { ++ ret = regmap_read_poll_timeout(udphy->pma_regmap, ++ TRSV_LN0_MON_RX_CDR_DONE_OFFSET, val, ++ val & TRSV_LN0_MON_RX_CDR_LOCK_DONE, ++ 200, 100000); ++ if (ret) ++ dev_err(udphy->dev, "trsv ln0 mon rx cdr lock timeout\n"); ++ } else { ++ ret = regmap_read_poll_timeout(udphy->pma_regmap, ++ TRSV_LN2_MON_RX_CDR_DONE_OFFSET, val, ++ val & TRSV_LN2_MON_RX_CDR_LOCK_DONE, ++ 200, 100000); ++ if (ret) ++ dev_err(udphy->dev, "trsv ln2 mon rx cdr lock timeout\n"); ++ } ++ } ++ ++ return 0; ++} ++ ++static int rk3588_udphy_init(struct rockchip_udphy *udphy) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ int ret; ++ ++ /* enable rx lfps for usb */ ++ if (udphy->mode & UDPHY_MODE_USB) ++ grfreg_write(udphy->udphygrf, &cfg->grfcfg.rx_lfps, true); ++ ++ /* Step 1: power on pma and deassert apb rstn */ ++ grfreg_write(udphy->udphygrf, &cfg->grfcfg.low_pwrn, true); ++ ++ udphy_reset_deassert(udphy, "pma_apb"); ++ udphy_reset_deassert(udphy, "pcs_apb"); ++ ++ /* Step 2: set init sequence and phy refclk */ ++ ret = regmap_multi_reg_write(udphy->pma_regmap, rk3588_udphy_init_sequence, ++ ARRAY_SIZE(rk3588_udphy_init_sequence)); ++ if (ret) { ++ dev_err(udphy->dev, "init sequence set error %d\n", ret); ++ goto assert_apb; ++ } ++ ++ ret = rk3588_udphy_refclk_set(udphy); ++ if (ret) { ++ dev_err(udphy->dev, "refclk set error %d\n", ret); ++ goto assert_apb; ++ } ++ ++ /* Step 3: configure lane mux */ ++ regmap_update_bits(udphy->pma_regmap, CMN_LANE_MUX_AND_EN_OFFSET, ++ CMN_DP_LANE_MUX_ALL | CMN_DP_LANE_EN_ALL, ++ FIELD_PREP(CMN_DP_LANE_MUX_N(3), udphy->lane_mux_sel[3]) | ++ FIELD_PREP(CMN_DP_LANE_MUX_N(2), udphy->lane_mux_sel[2]) | ++ FIELD_PREP(CMN_DP_LANE_MUX_N(1), udphy->lane_mux_sel[1]) | ++ FIELD_PREP(CMN_DP_LANE_MUX_N(0), udphy->lane_mux_sel[0]) | ++ FIELD_PREP(CMN_DP_LANE_EN_ALL, 0)); ++ ++ /* Step 4: deassert init rstn and wait for 200ns from datasheet */ ++ if (udphy->mode & UDPHY_MODE_USB) ++ udphy_reset_deassert(udphy, "init"); ++ ++ if (udphy->mode & UDPHY_MODE_DP) { ++ regmap_update_bits(udphy->pma_regmap, CMN_DP_RSTN_OFFSET, ++ CMN_DP_INIT_RSTN, ++ FIELD_PREP(CMN_DP_INIT_RSTN, 0x1)); ++ } ++ ++ udelay(1); ++ ++ /* Step 5: deassert cmn/lane rstn */ ++ if (udphy->mode & UDPHY_MODE_USB) { ++ udphy_reset_deassert(udphy, "cmn"); ++ udphy_reset_deassert(udphy, "lane"); ++ } ++ ++ /* Step 6: wait for lock done of pll */ ++ ret = rk3588_udphy_status_check(udphy); ++ if (ret) ++ goto assert_phy; ++ ++ return 0; ++ ++assert_phy: ++ udphy_reset_assert(udphy, "init"); ++ udphy_reset_assert(udphy, "cmn"); ++ udphy_reset_assert(udphy, "lane"); ++ ++assert_apb: ++ udphy_reset_assert(udphy, "pma_apb"); ++ udphy_reset_assert(udphy, "pcs_apb"); ++ return ret; ++} ++ ++static int rk3588_udphy_hpd_event_trigger(struct rockchip_udphy *udphy, bool hpd) ++{ ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ ++ udphy->dp_sink_hpd_sel = true; ++ udphy->dp_sink_hpd_cfg = hpd; ++ ++ grfreg_write(udphy->vogrf, &cfg->vogrfcfg[udphy->id].hpd_trigger, hpd); ++ ++ return 0; ++} ++ ++static int rk3588_udphy_dplane_enable(struct rockchip_udphy *udphy, int dp_lanes) ++{ ++ int i; ++ u32 val = 0; ++ ++ for (i = 0; i < dp_lanes; i++) ++ val |= BIT(udphy->dp_lane_sel[i]); ++ ++ regmap_update_bits(udphy->pma_regmap, CMN_LANE_MUX_AND_EN_OFFSET, CMN_DP_LANE_EN_ALL, ++ FIELD_PREP(CMN_DP_LANE_EN_ALL, val)); ++ ++ if (!dp_lanes) ++ regmap_update_bits(udphy->pma_regmap, CMN_DP_RSTN_OFFSET, ++ CMN_DP_CMN_RSTN, FIELD_PREP(CMN_DP_CMN_RSTN, 0x0)); ++ ++ return 0; ++} ++ ++static int rk3588_udphy_dplane_select(struct rockchip_udphy *udphy) ++{ ++ u32 value = 0; ++ ++ switch (udphy->mode) { ++ case UDPHY_MODE_DP: ++ value |= 2 << udphy->dp_lane_sel[2] * 2; ++ value |= 3 << udphy->dp_lane_sel[3] * 2; ++ fallthrough; ++ case UDPHY_MODE_DP_USB: ++ value |= 0 << udphy->dp_lane_sel[0] * 2; ++ value |= 1 << udphy->dp_lane_sel[1] * 2; ++ break; ++ case UDPHY_MODE_USB: ++ break; ++ default: ++ break; ++ } ++ ++ regmap_write(udphy->vogrf, udphy->id ? RK3588_GRF_VO0_CON2 : RK3588_GRF_VO0_CON0, ++ ((DP_AUX_DIN_SEL | DP_AUX_DOUT_SEL | DP_LANE_SEL_ALL) << 16) | ++ FIELD_PREP(DP_AUX_DIN_SEL, udphy->dp_aux_din_sel) | ++ FIELD_PREP(DP_AUX_DOUT_SEL, udphy->dp_aux_dout_sel) | value); ++ ++ return 0; ++} ++ ++static int rk3588_dp_phy_set_rate(struct rockchip_udphy *udphy, ++ struct phy_configure_opts_dp *dp) ++{ ++ u32 val; ++ int ret; ++ ++ regmap_update_bits(udphy->pma_regmap, CMN_DP_RSTN_OFFSET, ++ CMN_DP_CMN_RSTN, FIELD_PREP(CMN_DP_CMN_RSTN, 0x0)); ++ ++ switch (dp->link_rate) { ++ case 1620: ++ udphy->bw = DP_BW_RBR; ++ break; ++ case 2700: ++ udphy->bw = DP_BW_HBR; ++ break; ++ case 5400: ++ udphy->bw = DP_BW_HBR2; ++ break; ++ case 8100: ++ udphy->bw = DP_BW_HBR3; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ regmap_update_bits(udphy->pma_regmap, CMN_DP_LINK_OFFSET, CMN_DP_TX_LINK_BW, ++ FIELD_PREP(CMN_DP_TX_LINK_BW, udphy->bw)); ++ regmap_update_bits(udphy->pma_regmap, CMN_SSC_EN_OFFSET, CMN_ROPLL_SSC_EN, ++ FIELD_PREP(CMN_ROPLL_SSC_EN, dp->ssc)); ++ regmap_update_bits(udphy->pma_regmap, CMN_DP_RSTN_OFFSET, CMN_DP_CMN_RSTN, ++ FIELD_PREP(CMN_DP_CMN_RSTN, 0x1)); ++ ++ ret = regmap_read_poll_timeout(udphy->pma_regmap, CMN_ANA_ROPLL_DONE_OFFSET, val, ++ FIELD_GET(CMN_ANA_ROPLL_LOCK_DONE, val) && ++ FIELD_GET(CMN_ANA_ROPLL_AFC_DONE, val), ++ 0, 1000); ++ if (ret) { ++ dev_err(udphy->dev, "ROPLL is not lock\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static void rk3588_dp_phy_set_voltage(struct rockchip_udphy *udphy, u8 bw, ++ u32 voltage, u32 pre, u32 lane) ++{ ++ u32 offset = 0x800 * lane; ++ u32 val; ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ const struct dp_tx_drv_ctrl (*dp_ctrl)[4]; ++ ++ dp_ctrl = udphy->mux ? cfg->dp_tx_ctrl_cfg_typec[bw] : cfg->dp_tx_ctrl_cfg[bw]; ++ val = dp_ctrl[voltage][pre].trsv_reg0204; ++ regmap_write(udphy->pma_regmap, 0x0810 + offset, val); ++ ++ val = dp_ctrl[voltage][pre].trsv_reg0205; ++ regmap_write(udphy->pma_regmap, 0x0814 + offset, val); ++ ++ val = dp_ctrl[voltage][pre].trsv_reg0206; ++ regmap_write(udphy->pma_regmap, 0x0818 + offset, val); ++ ++ val = dp_ctrl[voltage][pre].trsv_reg0207; ++ regmap_write(udphy->pma_regmap, 0x081c + offset, val); ++} ++ ++static int rk3588_dp_phy_set_voltages(struct rockchip_udphy *udphy, ++ struct phy_configure_opts_dp *dp) ++{ ++ u32 i, lane; ++ ++ for (i = 0; i < dp->lanes; i++) { ++ lane = udphy->dp_lane_sel[i]; ++ switch (dp->link_rate) { ++ case 1620: ++ case 2700: ++ regmap_update_bits(udphy->pma_regmap, TRSV_ANA_TX_CLK_OFFSET_N(lane), ++ LN_ANA_TX_SER_TXCLK_INV, ++ FIELD_PREP(LN_ANA_TX_SER_TXCLK_INV, ++ udphy->lane_mux_sel[lane])); ++ break; ++ case 5400: ++ case 8100: ++ regmap_update_bits(udphy->pma_regmap, TRSV_ANA_TX_CLK_OFFSET_N(lane), ++ LN_ANA_TX_SER_TXCLK_INV, ++ FIELD_PREP(LN_ANA_TX_SER_TXCLK_INV, 0x0)); ++ break; ++ } ++ ++ rk3588_dp_phy_set_voltage(udphy, udphy->bw, dp->voltage[i], dp->pre[i], lane); ++ } ++ ++ return 0; ++} ++ ++static int __maybe_unused udphy_resume(struct device *dev) ++{ ++ struct rockchip_udphy *udphy = dev_get_drvdata(dev); ++ const struct rockchip_udphy_cfg *cfg = udphy->cfgs; ++ ++ if (udphy->dp_sink_hpd_sel) ++ cfg->hpd_event_trigger(udphy, udphy->dp_sink_hpd_cfg); ++ ++ return 0; ++} ++ ++static const struct dev_pm_ops udphy_pm_ops = { ++ SET_LATE_SYSTEM_SLEEP_PM_OPS(NULL, udphy_resume) ++}; ++ ++static const char * const rk3588_udphy_rst_l[] = { ++ "init", "cmn", "lane", "pcs_apb", "pma_apb" ++}; ++ ++static const struct rockchip_udphy_cfg rk3588_udphy_cfgs = { ++ .num_rsts = ARRAY_SIZE(rk3588_udphy_rst_l), ++ .rst_list = rk3588_udphy_rst_l, ++ .grfcfg = { ++ /* u2phy-grf */ ++ .bvalid_phy_con = { 0x0008, 1, 0, 0x2, 0x3 }, ++ .bvalid_grf_con = { 0x0010, 3, 2, 0x2, 0x3 }, ++ ++ /* usb-grf */ ++ .usb3otg0_cfg = { 0x001c, 15, 0, 0x1100, 0x0188 }, ++ .usb3otg1_cfg = { 0x0034, 15, 0, 0x1100, 0x0188 }, ++ ++ /* usbdpphy-grf */ ++ .low_pwrn = { 0x0004, 13, 13, 0, 1 }, ++ .rx_lfps = { 0x0004, 14, 14, 0, 1 }, ++ }, ++ .vogrfcfg = { ++ { ++ .hpd_trigger = { 0x0000, 11, 10, 1, 3 }, ++ }, ++ { ++ .hpd_trigger = { 0x0008, 11, 10, 1, 3 }, ++ }, ++ }, ++ .dp_tx_ctrl_cfg = { ++ rk3588_dp_tx_drv_ctrl_rbr_hbr, ++ rk3588_dp_tx_drv_ctrl_rbr_hbr, ++ rk3588_dp_tx_drv_ctrl_hbr2, ++ rk3588_dp_tx_drv_ctrl_hbr3, ++ }, ++ .dp_tx_ctrl_cfg_typec = { ++ rk3588_dp_tx_drv_ctrl_rbr_hbr_typec, ++ rk3588_dp_tx_drv_ctrl_rbr_hbr_typec, ++ rk3588_dp_tx_drv_ctrl_hbr2, ++ rk3588_dp_tx_drv_ctrl_hbr3, ++ }, ++ .combophy_init = rk3588_udphy_init, ++ .dp_phy_set_rate = rk3588_dp_phy_set_rate, ++ .dp_phy_set_voltages = rk3588_dp_phy_set_voltages, ++ .hpd_event_trigger = rk3588_udphy_hpd_event_trigger, ++ .dplane_enable = rk3588_udphy_dplane_enable, ++ .dplane_select = rk3588_udphy_dplane_select, ++}; ++ ++static const struct of_device_id rockchip_udphy_dt_match[] = { ++ { ++ .compatible = "rockchip,rk3588-usbdp-phy", ++ .data = &rk3588_udphy_cfgs ++ }, ++ { /* sentinel */ } ++}; ++ ++MODULE_DEVICE_TABLE(of, rockchip_udphy_dt_match); ++ ++static struct platform_driver rockchip_udphy_driver = { ++ .probe = rockchip_udphy_probe, ++ .driver = { ++ .name = "rockchip-usbdp-phy", ++ .of_match_table = rockchip_udphy_dt_match, ++ .pm = &udphy_pm_ops, ++ }, ++}; ++ ++module_platform_driver(rockchip_udphy_driver); ++ ++MODULE_AUTHOR("Frank Wang "); ++MODULE_AUTHOR("Zhang Yubing "); ++MODULE_DESCRIPTION("Rockchip USBDP Combo PHY driver"); ++MODULE_LICENSE("GPL"); diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-20-arm64-dts-rockchip-rk3588s-Add-USBDP-phy-nodes.patch b/target/linux/rockchip/patches-6.6/200-v6.7-20-arm64-dts-rockchip-rk3588s-Add-USBDP-phy-nodes.patch new file mode 100644 index 00000000000000..73cbf4e7c58c02 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-20-arm64-dts-rockchip-rk3588s-Add-USBDP-phy-nodes.patch @@ -0,0 +1,187 @@ +From c7fe71f2048da9ca0e51aa163c3cbce99b4304b3 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 25 Apr 2023 17:49:04 +0200 +Subject: [PATCH 20/41] arm64: dts: rockchip: rk3588s: Add USBDP phy nodes + +Add both USB3-Displayport PHYs from RK3588. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588.dtsi | 62 +++++++++++++++++++ + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 73 +++++++++++++++++++++++ + 2 files changed, 135 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi +@@ -17,6 +17,37 @@ + reg = <0x0 0xfd5c0000 0x0 0x100>; + }; + ++ usbdpphy1_grf: syscon@fd5cc000 { ++ compatible = "rockchip,rk3588-usbdpphy-grf", "syscon"; ++ reg = <0x0 0xfd5cc000 0x0 0x4000>; ++ }; ++ ++ usb2phy1_grf: syscon@fd5d4000 { ++ compatible = "rockchip,rk3588-usb2phy-grf", "syscon", ++ "simple-mfd"; ++ reg = <0x0 0xfd5d4000 0x0 0x4000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ u2phy1: usb2-phy@4000 { ++ compatible = "rockchip,rk3588-usb2phy"; ++ reg = <0x4000 0x10>; ++ interrupts = ; ++ resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>; ++ reset-names = "phy", "apb"; ++ clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>; ++ clock-names = "phyclk"; ++ clock-output-names = "usb480m_phy1"; ++ #clock-cells = <0>; ++ status = "disabled"; ++ ++ u2phy1_otg: otg-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; ++ }; ++ }; ++ + i2s8_8ch: i2s@fddc8000 { + compatible = "rockchip,rk3588-i2s-tdm"; + reg = <0x0 0xfddc8000 0x0 0x1000>; +@@ -310,6 +341,37 @@ + }; + }; + ++ usbdp_phy1: phy@fed90000 { ++ compatible = "rockchip,rk3588-usbdp-phy"; ++ reg = <0x0 0xfed90000 0x0 0x10000>; ++ rockchip,u2phy-grf = <&usb2phy1_grf>; ++ rockchip,usb-grf = <&usb_grf>; ++ rockchip,usbdpphy-grf = <&usbdpphy1_grf>; ++ rockchip,vo-grf = <&vo0_grf>; ++ clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>, ++ <&cru CLK_USBDP_PHY1_IMMORTAL>, ++ <&cru PCLK_USBDPPHY1>, ++ <&u2phy1>; ++ clock-names = "refclk", "immortal", "pclk", "utmi"; ++ resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>, ++ <&cru SRST_USBDP_COMBO_PHY1_CMN>, ++ <&cru SRST_USBDP_COMBO_PHY1_LANE>, ++ <&cru SRST_USBDP_COMBO_PHY1_PCS>, ++ <&cru SRST_P_USBDPPHY1>; ++ reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb"; ++ status = "disabled"; ++ ++ usbdp_phy1_dp: dp-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; ++ ++ usbdp_phy1_u3: usb3-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; ++ }; ++ + combphy1_ps: phy@fee10000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x0 0xfee10000 0x0 0x100>; +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -484,6 +484,37 @@ + reg = <0x0 0xfd5c4000 0x0 0x100>; + }; + ++ usbdpphy0_grf: syscon@fd5c8000 { ++ compatible = "rockchip,rk3588-usbdpphy-grf", "syscon"; ++ reg = <0x0 0xfd5c8000 0x0 0x4000>; ++ }; ++ ++ usb2phy0_grf: syscon@fd5d0000 { ++ compatible = "rockchip,rk3588-usb2phy-grf", "syscon", ++ "simple-mfd"; ++ reg = <0x0 0xfd5d0000 0x0 0x4000>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ u2phy0: usb2-phy@0 { ++ compatible = "rockchip,rk3588-usb2phy"; ++ reg = <0x0 0x10>; ++ interrupts = ; ++ resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>; ++ reset-names = "phy", "apb"; ++ clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>; ++ clock-names = "phyclk"; ++ clock-output-names = "usb480m_phy0"; ++ #clock-cells = <0>; ++ status = "disabled"; ++ ++ u2phy0_otg: otg-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; ++ }; ++ }; ++ + usb2phy2_grf: syscon@fd5d8000 { + compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd"; + reg = <0x0 0xfd5d8000 0x0 0x4000>; +@@ -509,6 +540,17 @@ + }; + }; + ++ vo0_grf: syscon@fd5a6000 { ++ compatible = "rockchip,rk3588-vo-grf", "syscon"; ++ reg = <0x0 0xfd5a6000 0x0 0x2000>; ++ clocks = <&cru PCLK_VO0GRF>; ++ }; ++ ++ usb_grf: syscon@fd5ac000 { ++ compatible = "rockchip,rk3588-usb-grf", "syscon"; ++ reg = <0x0 0xfd5ac000 0x0 0x4000>; ++ }; ++ + usb2phy3_grf: syscon@fd5dc000 { + compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd"; + reg = <0x0 0xfd5dc000 0x0 0x4000>; +@@ -2217,6 +2259,37 @@ + #dma-cells = <1>; + }; + ++ usbdp_phy0: phy@fed80000 { ++ compatible = "rockchip,rk3588-usbdp-phy"; ++ reg = <0x0 0xfed80000 0x0 0x10000>; ++ rockchip,u2phy-grf = <&usb2phy0_grf>; ++ rockchip,usb-grf = <&usb_grf>; ++ rockchip,usbdpphy-grf = <&usbdpphy0_grf>; ++ rockchip,vo-grf = <&vo0_grf>; ++ clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>, ++ <&cru CLK_USBDP_PHY0_IMMORTAL>, ++ <&cru PCLK_USBDPPHY0>, ++ <&u2phy0>; ++ clock-names = "refclk", "immortal", "pclk", "utmi"; ++ resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>, ++ <&cru SRST_USBDP_COMBO_PHY0_CMN>, ++ <&cru SRST_USBDP_COMBO_PHY0_LANE>, ++ <&cru SRST_USBDP_COMBO_PHY0_PCS>, ++ <&cru SRST_P_USBDPPHY0>; ++ reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb"; ++ status = "disabled"; ++ ++ usbdp_phy0_dp: dp-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; ++ ++ usbdp_phy0_u3: usb3-port { ++ #phy-cells = <0>; ++ status = "disabled"; ++ }; ++ }; ++ + combphy0_ps: phy@fee00000 { + compatible = "rockchip,rk3588-naneng-combphy"; + reg = <0x0 0xfee00000 0x0 0x100>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-21-arm64-dts-rockchip-rk3588s-Add-USB3-DRD-controllers.patch b/target/linux/rockchip/patches-6.6/200-v6.7-21-arm64-dts-rockchip-rk3588s-Add-USB3-DRD-controllers.patch new file mode 100644 index 00000000000000..f8103709b3730e --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-21-arm64-dts-rockchip-rk3588s-Add-USB3-DRD-controllers.patch @@ -0,0 +1,73 @@ +From f4240c7c1db6d246bf84aa736e3cf13ea39429e9 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 18 Jul 2023 19:05:38 +0200 +Subject: [PATCH 21/41] arm64: dts: rockchip: rk3588s: Add USB3 DRD controllers + +Add both USB3 dual-role controllers to the RK3588 devicetree. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588.dtsi | 20 ++++++++++++++++++++ + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 22 ++++++++++++++++++++++ + 2 files changed, 42 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi +@@ -7,6 +7,26 @@ + #include "rk3588-pinctrl.dtsi" + + / { ++ usb_host1_xhci: usb@fc400000 { ++ compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; ++ reg = <0x0 0xfc400000 0x0 0x400000>; ++ interrupts = ; ++ clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>, ++ <&cru ACLK_USB3OTG1>; ++ clock-names = "ref_clk", "suspend_clk", "bus_clk"; ++ dr_mode = "host"; ++ phys = <&u2phy1_otg>, <&usbdp_phy1_u3>; ++ phy-names = "usb2-phy", "usb3-phy"; ++ phy_type = "utmi_wide"; ++ power-domains = <&power RK3588_PD_USB>; ++ resets = <&cru SRST_A_USB3OTG1>; ++ snps,dis_enblslpm_quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ status = "disabled"; ++ }; ++ + pcie30_phy_grf: syscon@fd5b8000 { + compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon"; + reg = <0x0 0xfd5b8000 0x0 0x10000>; +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -399,6 +399,28 @@ + }; + }; + ++ usb_host0_xhci: usb@fc000000 { ++ compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; ++ reg = <0x0 0xfc000000 0x0 0x400000>; ++ interrupts = ; ++ clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>, ++ <&cru ACLK_USB3OTG0>; ++ clock-names = "ref_clk", "suspend_clk", "bus_clk"; ++ dr_mode = "otg"; ++ phys = <&u2phy0_otg>, <&usbdp_phy0_u3>; ++ phy-names = "usb2-phy", "usb3-phy"; ++ phy_type = "utmi_wide"; ++ power-domains = <&power RK3588_PD_USB>; ++ resets = <&cru SRST_A_USB3OTG0>; ++ snps,dis_enblslpm_quirk; ++ snps,dis-u1-entry-quirk; ++ snps,dis-u2-entry-quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ status = "disabled"; ++ }; ++ + usb_host0_ehci: usb@fc800000 { + compatible = "rockchip,rk3588-ehci", "generic-ehci"; + reg = <0x0 0xfc800000 0x0 0x40000>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-22-arm64-dts-rockchip-rk3588-evb1-add-USB3.patch b/target/linux/rockchip/patches-6.6/200-v6.7-22-arm64-dts-rockchip-rk3588-evb1-add-USB3.patch new file mode 100644 index 00000000000000..96c16f6afd0bcf --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-22-arm64-dts-rockchip-rk3588-evb1-add-USB3.patch @@ -0,0 +1,198 @@ +From 8760a05d818baa73e49ef7c7c142f9d0fdb28256 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Wed, 26 Apr 2023 21:18:43 +0200 +Subject: [PATCH 22/41] arm64: dts: rockchip: rk3588-evb1: add USB3 + +Add support for the boards USB3 type A, as well as its Type-C +connector. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-evb1-v10.dts | 144 ++++++++++++++++++ + 1 file changed, 144 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +@@ -8,6 +8,7 @@ + + #include + #include ++#include + #include "rk3588.dtsi" + + / { +@@ -134,6 +135,18 @@ + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_usbdcin>; + }; ++ ++ vbus5v0_typec: vbus5v0-typec { ++ compatible = "regulator-fixed"; ++ regulator-name = "vbus5v0_typec"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ enable-active-high; ++ gpio = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>; ++ vin-supply = <&vcc5v0_usb>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&typec5v_pwren>; ++ }; + }; + + &combphy0_ps { +@@ -194,6 +207,56 @@ + &i2c2 { + status = "okay"; + ++ usbc0: usb-typec@22 { ++ compatible = "fcs,fusb302"; ++ reg = <0x22>; ++ interrupt-parent = <&gpio3>; ++ interrupts = ; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&usbc0_int>; ++ vbus-supply = <&vbus5v0_typec>; ++ status = "okay"; ++ ++ usb_con: connector { ++ compatible = "usb-c-connector"; ++ label = "USB-C"; ++ data-role = "dual"; ++ power-role = "dual"; ++ try-power-role = "sink"; ++ op-sink-microwatt = <1000000>; ++ sink-pdos = ++ ; ++ source-pdos = ++ ; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ usbc0_orien_sw: endpoint { ++ remote-endpoint = <&usbdp_phy0_orientation_switch>; ++ }; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ usbc0_role_sw: endpoint { ++ remote-endpoint = <&dwc3_0_role_switch>; ++ }; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ dp_altmode_mux: endpoint { ++ remote-endpoint = <&usbdp_phy0_dp_altmode_mux>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ + hym8563: rtc@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; +@@ -280,6 +343,16 @@ + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; ++ ++ usb-typec { ++ usbc0_int: usbc0-int { ++ rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ typec5v_pwren: typec5v-pwren { ++ rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; + }; + + &pwm2 { +@@ -906,6 +979,22 @@ + status = "okay"; + }; + ++&u2phy0 { ++ status = "okay"; ++}; ++ ++&u2phy0_otg { ++ status = "okay"; ++}; ++ ++&u2phy1 { ++ status = "okay"; ++}; ++ ++&u2phy1_otg { ++ status = "okay"; ++}; ++ + &u2phy2 { + status = "okay"; + }; +@@ -944,3 +1033,58 @@ + &usb_host1_ohci { + status = "okay"; + }; ++ ++&usbdp_phy0 { ++ orientation-switch; ++ mode-switch; ++ sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>; ++ sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; ++ status = "okay"; ++ ++ port { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ usbdp_phy0_orientation_switch: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&usbc0_orien_sw>; ++ }; ++ ++ usbdp_phy0_dp_altmode_mux: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&dp_altmode_mux>; ++ }; ++ }; ++}; ++ ++&usbdp_phy0_u3 { ++ status = "okay"; ++}; ++ ++&usbdp_phy1 { ++ rockchip,dp-lane-mux = <2 3>; ++ status = "okay"; ++}; ++ ++&usbdp_phy1_u3 { ++ status = "okay"; ++}; ++ ++&usb_host0_xhci { ++ dr_mode = "otg"; ++ usb-role-switch; ++ status = "okay"; ++ ++ port { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ dwc3_0_role_switch: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&usbc0_role_sw>; ++ }; ++ }; ++}; ++ ++&usb_host1_xhci { ++ status = "okay"; ++}; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-23-clk-rockchip-rk3588-fix-pclk_vo0grf-and-pclk_vo1grf.patch b/target/linux/rockchip/patches-6.6/200-v6.7-23-clk-rockchip-rk3588-fix-pclk_vo0grf-and-pclk_vo1grf.patch new file mode 100644 index 00000000000000..58526fd824760e --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-23-clk-rockchip-rk3588-fix-pclk_vo0grf-and-pclk_vo1grf.patch @@ -0,0 +1,72 @@ +From f394bee6ec7436619ded028c7892016a3a05f16d Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 13 Jun 2023 16:45:05 +0200 +Subject: [PATCH 23/41] clk: rockchip: rk3588: fix pclk_vo0grf and pclk_vo1grf + +Currently pclk_vo1grf is not exposed, but it should be referenced +from the vo1_grf syscon, which needs it enabled. That syscon will +be required for HDMI-RX functionality among other things. + +Apart from that pclk_vo0grf and pclk_vo1grf are both linked gates +and need the VO's hclk enabled in addition to their parent clock. + +No Fixes tag has been added, since the logic requiring these clocks +is not yet upstream anyways. + +Signed-off-by: Sebastian Reichel +--- + drivers/clk/rockchip/clk-rk3588.c | 11 +++++------ + include/dt-bindings/clock/rockchip,rk3588-cru.h | 3 ++- + 2 files changed, 7 insertions(+), 7 deletions(-) + +--- a/drivers/clk/rockchip/clk-rk3588.c ++++ b/drivers/clk/rockchip/clk-rk3588.c +@@ -1851,8 +1851,6 @@ static struct rockchip_clk_branch rk3588 + RK3588_CLKGATE_CON(56), 0, GFLAGS), + GATE(PCLK_TRNG0, "pclk_trng0", "pclk_vo0_root", 0, + RK3588_CLKGATE_CON(56), 1, GFLAGS), +- GATE(PCLK_VO0GRF, "pclk_vo0grf", "pclk_vo0_root", CLK_IGNORE_UNUSED, +- RK3588_CLKGATE_CON(55), 10, GFLAGS), + COMPOSITE(CLK_I2S4_8CH_TX_SRC, "clk_i2s4_8ch_tx_src", gpll_aupll_p, 0, + RK3588_CLKSEL_CON(118), 5, 1, MFLAGS, 0, 5, DFLAGS, + RK3588_CLKGATE_CON(56), 11, GFLAGS), +@@ -1998,8 +1996,6 @@ static struct rockchip_clk_branch rk3588 + RK3588_CLKGATE_CON(60), 9, GFLAGS), + GATE(PCLK_TRNG1, "pclk_trng1", "pclk_vo1_root", 0, + RK3588_CLKGATE_CON(60), 10, GFLAGS), +- GATE(0, "pclk_vo1grf", "pclk_vo1_root", CLK_IGNORE_UNUSED, +- RK3588_CLKGATE_CON(59), 12, GFLAGS), + GATE(PCLK_S_EDP0, "pclk_s_edp0", "pclk_vo1_s_root", 0, + RK3588_CLKGATE_CON(59), 14, GFLAGS), + GATE(PCLK_S_EDP1, "pclk_s_edp1", "pclk_vo1_s_root", 0, +@@ -2447,12 +2443,15 @@ static struct rockchip_clk_branch rk3588 + GATE_LINK(HCLK_RKVDEC1_PRE, "hclk_rkvdec1_pre", "hclk_rkvdec1_root", "hclk_vdpu_root", 0, RK3588_CLKGATE_CON(41), 4, GFLAGS), + GATE_LINK(ACLK_RKVDEC1_PRE, "aclk_rkvdec1_pre", "aclk_rkvdec1_root", "aclk_vdpu_root", 0, RK3588_CLKGATE_CON(41), 5, GFLAGS), + GATE_LINK(ACLK_HDCP0_PRE, "aclk_hdcp0_pre", "aclk_vo0_root", "aclk_vop_low_root", 0, RK3588_CLKGATE_CON(55), 9, GFLAGS), +- GATE_LINK(HCLK_VO0, "hclk_vo0", "hclk_vo0_root", "hclk_vop_root", 0, RK3588_CLKGATE_CON(55), 5, GFLAGS), ++ GATE_LINK(HCLK_VO0, "hclk_vo0", "hclk_vo0_root", "hclk_vop_root", RK3588_LINKED_CLK, RK3588_CLKGATE_CON(55), 5, GFLAGS), + GATE_LINK(ACLK_HDCP1_PRE, "aclk_hdcp1_pre", "aclk_hdcp1_root", "aclk_vo1usb_top_root", 0, RK3588_CLKGATE_CON(59), 6, GFLAGS), +- GATE_LINK(HCLK_VO1, "hclk_vo1", "hclk_vo1_root", "hclk_vo1usb_top_root", 0, RK3588_CLKGATE_CON(59), 9, GFLAGS), ++ GATE_LINK(HCLK_VO1, "hclk_vo1", "hclk_vo1_root", "hclk_vo1usb_top_root", RK3588_LINKED_CLK, RK3588_CLKGATE_CON(59), 9, GFLAGS), + GATE_LINK(ACLK_AV1_PRE, "aclk_av1_pre", "aclk_av1_root", "aclk_vdpu_root", 0, RK3588_CLKGATE_CON(68), 1, GFLAGS), + GATE_LINK(PCLK_AV1_PRE, "pclk_av1_pre", "pclk_av1_root", "hclk_vdpu_root", 0, RK3588_CLKGATE_CON(68), 4, GFLAGS), + GATE_LINK(HCLK_SDIO_PRE, "hclk_sdio_pre", "hclk_sdio_root", "hclk_nvm", 0, RK3588_CLKGATE_CON(75), 1, GFLAGS), ++ GATE_LINK(PCLK_VO0GRF, "pclk_vo0grf", "pclk_vo0_root", "hclk_vo0", CLK_IGNORE_UNUSED, RK3588_CLKGATE_CON(55), 10, GFLAGS), ++ GATE_LINK(PCLK_VO1GRF, "pclk_vo1grf", "pclk_vo1_root", "hclk_vo1", CLK_IGNORE_UNUSED, RK3588_CLKGATE_CON(59), 12, GFLAGS), ++ + }; + + static void __init rk3588_clk_init(struct device_node *np) +--- a/include/dt-bindings/clock/rockchip,rk3588-cru.h ++++ b/include/dt-bindings/clock/rockchip,rk3588-cru.h +@@ -733,8 +733,9 @@ + #define ACLK_AV1_PRE 718 + #define PCLK_AV1_PRE 719 + #define HCLK_SDIO_PRE 720 ++#define PCLK_VO1GRF 721 + +-#define CLK_NR_CLKS (HCLK_SDIO_PRE + 1) ++#define CLK_NR_CLKS (PCLK_VO1GRF + 1) + + /* scmi-clocks indices */ + diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-24-arm64-dts-rockchip-rk3588is-Add-AV1-decoder-node.patch b/target/linux/rockchip/patches-6.6/200-v6.7-24-arm64-dts-rockchip-rk3588is-Add-AV1-decoder-node.patch new file mode 100644 index 00000000000000..87f6863edbae49 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-24-arm64-dts-rockchip-rk3588is-Add-AV1-decoder-node.patch @@ -0,0 +1,36 @@ +From a99f60696caea55f45ba4e288d7c50a4fc95183e Mon Sep 17 00:00:00 2001 +From: Benjamin Gaignard +Date: Wed, 2 Nov 2022 14:31:56 +0100 +Subject: [PATCH 24/41] arm64: dts: rockchip: rk3588is: Add AV1 decoder node + +Add node for AV1 video decoder. + +Signed-off-by: Benjamin Gaignard +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -2419,6 +2419,20 @@ + #interrupt-cells = <2>; + }; + }; ++ ++ av1d: av1d@fdc70000 { ++ compatible = "rockchip,rk3588-av1-vpu"; ++ reg = <0x0 0xfdc70000 0x0 0x800>; ++ interrupts = ; ++ interrupt-names = "vdpu"; ++ clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>; ++ clock-names = "aclk", "hclk"; ++ assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>; ++ assigned-clock-rates = <400000000>, <400000000>; ++ resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>; ++ power-domains = <&power RK3588_PD_AV1>; ++ status = "okay"; ++ }; + }; + + #include "rk3588s-pinctrl.dtsi" diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-26-dt-bindings-media-rockchip-Add-resets-property-into-.patch b/target/linux/rockchip/patches-6.6/200-v6.7-26-dt-bindings-media-rockchip-Add-resets-property-into-.patch new file mode 100644 index 00000000000000..b2e3c9a6a7b895 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-26-dt-bindings-media-rockchip-Add-resets-property-into-.patch @@ -0,0 +1,27 @@ +From 87e0a8bd8a089128bb8097939ccb15812b308f65 Mon Sep 17 00:00:00 2001 +From: Benjamin Gaignard +Date: Mon, 12 Jun 2023 14:57:58 +0200 +Subject: [PATCH 26/41] dt-bindings: media: rockchip: Add resets property into + decoder node + +RK3588 AV1 decoder hardware block have resets lines and driver code +already suppport it. +Update yaml file to be aligned with this feature. + +Signed-off-by: Benjamin Gaignard +--- + Documentation/devicetree/bindings/media/rockchip-vpu.yaml | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/Documentation/devicetree/bindings/media/rockchip-vpu.yaml ++++ b/Documentation/devicetree/bindings/media/rockchip-vpu.yaml +@@ -68,6 +68,9 @@ properties: + iommus: + maxItems: 1 + ++ resets: ++ maxItems: 4 ++ + required: + - compatible + - reg diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-27-cpufreq-rockchip-Introduce-driver-for-rk3588.patch b/target/linux/rockchip/patches-6.6/200-v6.7-27-cpufreq-rockchip-Introduce-driver-for-rk3588.patch new file mode 100644 index 00000000000000..d50988fa7b4f0b --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-27-cpufreq-rockchip-Introduce-driver-for-rk3588.patch @@ -0,0 +1,712 @@ +From 060e1a8aa7a81f974058806882e1620ef5c694b8 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Thu, 18 Aug 2022 14:21:30 +0200 +Subject: [PATCH 27/41] cpufreq: rockchip: Introduce driver for rk3588 + +This is a heavily modified port from the downstream driver. +Downstream used it for multiple rockchip generations, while +upstream just used the generic cpufreq-dt driver so far. For +rk3588 this is no longer good enough, since two regulators +need to be controlled. + +Also during shutdown the correct frequency needs to be configured +for the big CPU cores to avoid a system hang when firmware tries +to bring them up at reboot time. + +Signed-off-by: Sebastian Reichel +--- + drivers/cpufreq/Kconfig.arm | 10 + + drivers/cpufreq/Makefile | 1 + + drivers/cpufreq/cpufreq-dt-platdev.c | 2 + + drivers/cpufreq/rockchip-cpufreq.c | 645 +++++++++++++++++++++++++++ + 4 files changed, 658 insertions(+) + create mode 100644 drivers/cpufreq/rockchip-cpufreq.c + +--- a/drivers/cpufreq/Kconfig.arm ++++ b/drivers/cpufreq/Kconfig.arm +@@ -190,6 +190,16 @@ config ARM_RASPBERRYPI_CPUFREQ + + If in doubt, say N. + ++config ARM_ROCKCHIP_CPUFREQ ++ tristate "Rockchip CPUfreq driver" ++ depends on ARCH_ROCKCHIP && CPUFREQ_DT ++ select PM_OPP ++ help ++ This adds the CPUFreq driver support for Rockchip SoCs, ++ based on cpufreq-dt. ++ ++ If in doubt, say N. ++ + config ARM_S3C64XX_CPUFREQ + bool "Samsung S3C64XX" + depends on CPU_S3C6410 +--- a/drivers/cpufreq/Makefile ++++ b/drivers/cpufreq/Makefile +@@ -71,6 +71,7 @@ obj-$(CONFIG_PXA3xx) += pxa3xx-cpufreq + obj-$(CONFIG_ARM_QCOM_CPUFREQ_HW) += qcom-cpufreq-hw.o + obj-$(CONFIG_ARM_QCOM_CPUFREQ_NVMEM) += qcom-cpufreq-nvmem.o + obj-$(CONFIG_ARM_RASPBERRYPI_CPUFREQ) += raspberrypi-cpufreq.o ++obj-$(CONFIG_ARM_ROCKCHIP_CPUFREQ) += rockchip-cpufreq.o + obj-$(CONFIG_ARM_S3C64XX_CPUFREQ) += s3c64xx-cpufreq.o + obj-$(CONFIG_ARM_S5PV210_CPUFREQ) += s5pv210-cpufreq.o + obj-$(CONFIG_ARM_SA1110_CPUFREQ) += sa1110-cpufreq.o +--- a/drivers/cpufreq/cpufreq-dt-platdev.c ++++ b/drivers/cpufreq/cpufreq-dt-platdev.c +@@ -166,6 +166,8 @@ static const struct of_device_id blockli + { .compatible = "qcom,sm8450", }, + { .compatible = "qcom,sm8550", }, + ++ { .compatible = "rockchip,rk3588", }, ++ + { .compatible = "st,stih407", }, + { .compatible = "st,stih410", }, + { .compatible = "st,stih418", }, +--- /dev/null ++++ b/drivers/cpufreq/rockchip-cpufreq.c +@@ -0,0 +1,645 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++/* ++ * Rockchip CPUFreq Driver. This is similar to the generic DT ++ * cpufreq driver, but handles the following platform specific ++ * quirks: ++ * ++ * * support for two regulators - one for the CPU core and one ++ * for the memory interface ++ * * reboot handler to setup the reboot frequency ++ * * handling of read margin registers ++ * ++ * Copyright (C) 2017 Fuzhou Rockchip Electronics Co., Ltd ++ * Copyright (C) 2023 Collabora Ltd. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpufreq-dt.h" ++ ++#define RK3588_MEMCFG_HSSPRF_LOW 0x20 ++#define RK3588_MEMCFG_HSDPRF_LOW 0x28 ++#define RK3588_MEMCFG_HSDPRF_HIGH 0x2c ++#define RK3588_CPU_CTRL 0x30 ++ ++#define VOLT_RM_TABLE_END ~1 ++ ++static struct platform_device *cpufreq_pdev; ++static LIST_HEAD(priv_list); ++ ++struct volt_rm_table { ++ uint32_t volt; ++ uint32_t rm; ++}; ++ ++struct rockchip_opp_info { ++ const struct rockchip_opp_data *data; ++ struct volt_rm_table *volt_rm_tbl; ++ struct regmap *grf; ++ u32 current_rm; ++ u32 reboot_freq; ++}; ++ ++struct private_data { ++ struct list_head node; ++ ++ cpumask_var_t cpus; ++ struct device *cpu_dev; ++ struct cpufreq_frequency_table *freq_table; ++}; ++ ++struct rockchip_opp_data { ++ int (*set_read_margin)(struct device *dev, struct rockchip_opp_info *opp_info, ++ unsigned long volt); ++}; ++ ++struct cluster_info { ++ struct list_head list_head; ++ struct rockchip_opp_info opp_info; ++ cpumask_t cpus; ++}; ++static LIST_HEAD(cluster_info_list); ++ ++static int rk3588_cpu_set_read_margin(struct device *dev, struct rockchip_opp_info *opp_info, ++ unsigned long volt) ++{ ++ bool is_found = false; ++ u32 rm; ++ int i; ++ ++ if (!opp_info->volt_rm_tbl) ++ return 0; ++ ++ for (i = 0; opp_info->volt_rm_tbl[i].rm != VOLT_RM_TABLE_END; i++) { ++ if (volt >= opp_info->volt_rm_tbl[i].volt) { ++ rm = opp_info->volt_rm_tbl[i].rm; ++ is_found = true; ++ break; ++ } ++ } ++ ++ if (!is_found) ++ return 0; ++ if (rm == opp_info->current_rm) ++ return 0; ++ if (!opp_info->grf) ++ return 0; ++ ++ dev_dbg(dev, "set rm to %d\n", rm); ++ regmap_write(opp_info->grf, RK3588_MEMCFG_HSSPRF_LOW, 0x001c0000 | (rm << 2)); ++ regmap_write(opp_info->grf, RK3588_MEMCFG_HSDPRF_LOW, 0x003c0000 | (rm << 2)); ++ regmap_write(opp_info->grf, RK3588_MEMCFG_HSDPRF_HIGH, 0x003c0000 | (rm << 2)); ++ regmap_write(opp_info->grf, RK3588_CPU_CTRL, 0x00200020); ++ udelay(1); ++ regmap_write(opp_info->grf, RK3588_CPU_CTRL, 0x00200000); ++ ++ opp_info->current_rm = rm; ++ ++ return 0; ++} ++ ++static const struct rockchip_opp_data rk3588_cpu_opp_data = { ++ .set_read_margin = rk3588_cpu_set_read_margin, ++}; ++ ++static const struct of_device_id rockchip_cpufreq_of_match[] = { ++ { ++ .compatible = "rockchip,rk3588", ++ .data = (void *)&rk3588_cpu_opp_data, ++ }, ++ {}, ++}; ++ ++static struct cluster_info *rockchip_cluster_info_lookup(int cpu) ++{ ++ struct cluster_info *cluster; ++ ++ list_for_each_entry(cluster, &cluster_info_list, list_head) { ++ if (cpumask_test_cpu(cpu, &cluster->cpus)) ++ return cluster; ++ } ++ ++ return NULL; ++} ++ ++static int rockchip_cpufreq_set_volt(struct device *dev, ++ struct regulator *reg, ++ struct dev_pm_opp_supply *supply) ++{ ++ int ret; ++ ++ ret = regulator_set_voltage_triplet(reg, supply->u_volt_min, ++ supply->u_volt, supply->u_volt_max); ++ if (ret) ++ dev_err(dev, "%s: failed to set voltage (%lu %lu %lu uV): %d\n", ++ __func__, supply->u_volt_min, supply->u_volt, ++ supply->u_volt_max, ret); ++ ++ return ret; ++} ++ ++static int rockchip_cpufreq_set_read_margin(struct device *dev, ++ struct rockchip_opp_info *opp_info, ++ unsigned long volt) ++{ ++ if (opp_info->data && opp_info->data->set_read_margin) { ++ opp_info->data->set_read_margin(dev, opp_info, volt); ++ } ++ ++ return 0; ++} ++ ++static int rk_opp_config_regulators(struct device *dev, ++ struct dev_pm_opp *old_opp, struct dev_pm_opp *new_opp, ++ struct regulator **regulators, unsigned int count) ++{ ++ struct dev_pm_opp_supply old_supplies[2]; ++ struct dev_pm_opp_supply new_supplies[2]; ++ struct regulator *vdd_reg = regulators[0]; ++ struct regulator *mem_reg = regulators[1]; ++ struct rockchip_opp_info *opp_info; ++ struct cluster_info *cluster; ++ int ret = 0; ++ unsigned long old_freq = dev_pm_opp_get_freq(old_opp); ++ unsigned long new_freq = dev_pm_opp_get_freq(new_opp); ++ ++ /* We must have two regulators here */ ++ WARN_ON(count != 2); ++ ++ ret = dev_pm_opp_get_supplies(old_opp, old_supplies); ++ if (ret) ++ return ret; ++ ++ ret = dev_pm_opp_get_supplies(new_opp, new_supplies); ++ if (ret) ++ return ret; ++ ++ cluster = rockchip_cluster_info_lookup(dev->id); ++ if (!cluster) ++ return -EINVAL; ++ opp_info = &cluster->opp_info; ++ ++ if (new_freq >= old_freq) { ++ ret = rockchip_cpufreq_set_volt(dev, mem_reg, &new_supplies[1]); ++ if (ret) ++ goto error; ++ ret = rockchip_cpufreq_set_volt(dev, vdd_reg, &new_supplies[0]); ++ if (ret) ++ goto error; ++ rockchip_cpufreq_set_read_margin(dev, opp_info, new_supplies[0].u_volt); ++ } else { ++ rockchip_cpufreq_set_read_margin(dev, opp_info, new_supplies[0].u_volt); ++ ret = rockchip_cpufreq_set_volt(dev, vdd_reg, &new_supplies[0]); ++ if (ret) ++ goto error; ++ ret = rockchip_cpufreq_set_volt(dev, mem_reg, &new_supplies[1]); ++ if (ret) ++ goto error; ++ } ++ ++ return 0; ++ ++error: ++ rockchip_cpufreq_set_read_margin(dev, opp_info, old_supplies[0].u_volt); ++ rockchip_cpufreq_set_volt(dev, mem_reg, &old_supplies[1]); ++ rockchip_cpufreq_set_volt(dev, vdd_reg, &old_supplies[0]); ++ return ret; ++} ++ ++static void rockchip_get_opp_data(const struct of_device_id *matches, ++ struct rockchip_opp_info *info) ++{ ++ const struct of_device_id *match; ++ struct device_node *node; ++ ++ node = of_find_node_by_path("/"); ++ match = of_match_node(matches, node); ++ if (match && match->data) ++ info->data = match->data; ++ of_node_put(node); ++} ++ ++static int rockchip_get_volt_rm_table(struct device *dev, struct device_node *np, ++ char *porp_name, struct volt_rm_table **table) ++{ ++ struct volt_rm_table *rm_table; ++ const struct property *prop; ++ int count, i; ++ ++ prop = of_find_property(np, porp_name, NULL); ++ if (!prop) ++ return -EINVAL; ++ ++ if (!prop->value) ++ return -ENODATA; ++ ++ count = of_property_count_u32_elems(np, porp_name); ++ if (count < 0) ++ return -EINVAL; ++ ++ if (count % 2) ++ return -EINVAL; ++ ++ rm_table = devm_kzalloc(dev, sizeof(*rm_table) * (count / 2 + 1), ++ GFP_KERNEL); ++ if (!rm_table) ++ return -ENOMEM; ++ ++ for (i = 0; i < count / 2; i++) { ++ of_property_read_u32_index(np, porp_name, 2 * i, ++ &rm_table[i].volt); ++ of_property_read_u32_index(np, porp_name, 2 * i + 1, ++ &rm_table[i].rm); ++ } ++ ++ rm_table[i].volt = 0; ++ rm_table[i].rm = VOLT_RM_TABLE_END; ++ ++ *table = rm_table; ++ ++ return 0; ++} ++ ++static int rockchip_cpufreq_reboot(struct notifier_block *notifier, unsigned long event, void *cmd) ++{ ++ struct cluster_info *cluster; ++ struct device *dev; ++ int freq, ret, cpu; ++ ++ if (event != SYS_RESTART) ++ return NOTIFY_DONE; ++ ++ for_each_possible_cpu(cpu) { ++ cluster = rockchip_cluster_info_lookup(cpu); ++ if (!cluster) ++ continue; ++ ++ dev = get_cpu_device(cpu); ++ if (!dev) ++ continue; ++ ++ freq = cluster->opp_info.reboot_freq; ++ ++ if (freq) { ++ ret = dev_pm_opp_set_rate(dev, freq); ++ if (ret) ++ dev_err(dev, "Failed setting reboot freq for cpu %d to %d: %d\n", ++ cpu, freq, ret); ++ dev_pm_opp_remove_table(dev); ++ } ++ } ++ ++ return NOTIFY_DONE; ++} ++ ++static int rockchip_cpufreq_cluster_init(int cpu, struct cluster_info *cluster) ++{ ++ struct rockchip_opp_info *opp_info = &cluster->opp_info; ++ int reg_table_token = -EINVAL; ++ int opp_table_token = -EINVAL; ++ struct device_node *np; ++ struct device *dev; ++ const char * const reg_names[] = { "cpu", "mem", NULL }; ++ int ret = 0; ++ ++ dev = get_cpu_device(cpu); ++ if (!dev) ++ return -ENODEV; ++ ++ if (!of_find_property(dev->of_node, "cpu-supply", NULL)) ++ return -ENOENT; ++ ++ np = of_parse_phandle(dev->of_node, "operating-points-v2", 0); ++ if (!np) { ++ dev_warn(dev, "OPP-v2 not supported\n"); ++ return -ENOENT; ++ } ++ ++ reg_table_token = dev_pm_opp_set_regulators(dev, reg_names); ++ if (reg_table_token < 0) { ++ ret = reg_table_token; ++ dev_err_probe(dev, ret, "Failed to set opp regulators\n"); ++ goto np_err; ++ } ++ ++ ret = dev_pm_opp_of_get_sharing_cpus(dev, &cluster->cpus); ++ if (ret) { ++ dev_err_probe(dev, ret, "Failed to get sharing cpus\n"); ++ goto np_err; ++ } ++ ++ rockchip_get_opp_data(rockchip_cpufreq_of_match, opp_info); ++ if (opp_info->data && opp_info->data->set_read_margin) { ++ opp_info->current_rm = UINT_MAX; ++ opp_info->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); ++ if (IS_ERR(opp_info->grf)) ++ opp_info->grf = NULL; ++ rockchip_get_volt_rm_table(dev, np, "rockchip,volt-mem-read-margin", &opp_info->volt_rm_tbl); ++ ++ of_property_read_u32(np, "rockchip,reboot-freq", &opp_info->reboot_freq); ++ } ++ ++ opp_table_token = dev_pm_opp_set_config_regulators(dev, rk_opp_config_regulators); ++ if (opp_table_token < 0) { ++ ret = opp_table_token; ++ dev_err(dev, "Failed to set opp config regulators\n"); ++ goto reg_opp_table; ++ } ++ ++ of_node_put(np); ++ ++ return 0; ++ ++reg_opp_table: ++ if (reg_table_token >= 0) ++ dev_pm_opp_put_regulators(reg_table_token); ++np_err: ++ of_node_put(np); ++ ++ return ret; ++} ++ ++static struct notifier_block rockchip_cpufreq_reboot_notifier = { ++ .notifier_call = rockchip_cpufreq_reboot, ++ .priority = 0, ++}; ++ ++static struct freq_attr *cpufreq_rockchip_attr[] = { ++ &cpufreq_freq_attr_scaling_available_freqs, ++ NULL, ++}; ++ ++static int cpufreq_online(struct cpufreq_policy *policy) ++{ ++ /* We did light-weight tear down earlier, nothing to do here */ ++ return 0; ++} ++ ++static int cpufreq_offline(struct cpufreq_policy *policy) ++{ ++ /* ++ * Preserve policy->driver_data and don't free resources on light-weight ++ * tear down. ++ */ ++ return 0; ++} ++ ++static struct private_data *rockchip_cpufreq_find_data(int cpu) ++{ ++ struct private_data *priv; ++ ++ list_for_each_entry(priv, &priv_list, node) { ++ if (cpumask_test_cpu(cpu, priv->cpus)) ++ return priv; ++ } ++ ++ return NULL; ++} ++ ++static int cpufreq_init(struct cpufreq_policy *policy) ++{ ++ struct private_data *priv; ++ struct device *cpu_dev; ++ struct clk *cpu_clk; ++ unsigned int transition_latency; ++ int ret; ++ ++ priv = rockchip_cpufreq_find_data(policy->cpu); ++ if (!priv) { ++ pr_err("failed to find data for cpu%d\n", policy->cpu); ++ return -ENODEV; ++ } ++ cpu_dev = priv->cpu_dev; ++ ++ cpu_clk = clk_get(cpu_dev, NULL); ++ if (IS_ERR(cpu_clk)) { ++ ret = PTR_ERR(cpu_clk); ++ dev_err(cpu_dev, "%s: failed to get clk: %d\n", __func__, ret); ++ return ret; ++ } ++ ++ transition_latency = dev_pm_opp_get_max_transition_latency(cpu_dev); ++ if (!transition_latency) ++ transition_latency = CPUFREQ_ETERNAL; ++ ++ cpumask_copy(policy->cpus, priv->cpus); ++ policy->driver_data = priv; ++ policy->clk = cpu_clk; ++ policy->freq_table = priv->freq_table; ++ policy->suspend_freq = dev_pm_opp_get_suspend_opp_freq(cpu_dev) / 1000; ++ policy->cpuinfo.transition_latency = transition_latency; ++ policy->dvfs_possible_from_any_cpu = true; ++ ++ return 0; ++} ++ ++static int cpufreq_exit(struct cpufreq_policy *policy) ++{ ++ clk_put(policy->clk); ++ return 0; ++} ++ ++static int set_target(struct cpufreq_policy *policy, unsigned int index) ++{ ++ struct private_data *priv = policy->driver_data; ++ unsigned long freq = policy->freq_table[index].frequency; ++ ++ return dev_pm_opp_set_rate(priv->cpu_dev, freq * 1000); ++} ++ ++static struct cpufreq_driver rockchip_cpufreq_driver = { ++ .flags = CPUFREQ_NEED_INITIAL_FREQ_CHECK | ++ CPUFREQ_IS_COOLING_DEV | ++ CPUFREQ_HAVE_GOVERNOR_PER_POLICY, ++ .verify = cpufreq_generic_frequency_table_verify, ++ .target_index = set_target, ++ .get = cpufreq_generic_get, ++ .init = cpufreq_init, ++ .exit = cpufreq_exit, ++ .online = cpufreq_online, ++ .offline = cpufreq_offline, ++ .register_em = cpufreq_register_em_with_opp, ++ .name = "rockchip-cpufreq", ++ .attr = cpufreq_rockchip_attr, ++ .suspend = cpufreq_generic_suspend, ++}; ++ ++static int rockchip_cpufreq_init(struct device *dev, int cpu) ++{ ++ struct private_data *priv; ++ struct device *cpu_dev; ++ int ret; ++ ++ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); ++ if (!priv) ++ return -ENOMEM; ++ ++ if (!alloc_cpumask_var(&priv->cpus, GFP_KERNEL)) ++ return -ENOMEM; ++ ++ cpumask_set_cpu(cpu, priv->cpus); ++ ++ cpu_dev = get_cpu_device(cpu); ++ if (!cpu_dev) ++ return -EPROBE_DEFER; ++ priv->cpu_dev = cpu_dev; ++ ++ ret = dev_pm_opp_of_get_sharing_cpus(cpu_dev, priv->cpus); ++ if (ret) ++ return ret; ++ ++ ret = dev_pm_opp_of_cpumask_add_table(priv->cpus); ++ if (ret) ++ return ret; ++ ++ ret = dev_pm_opp_get_opp_count(cpu_dev); ++ if (ret <= 0) ++ return dev_err_probe(cpu_dev, -ENODEV, "OPP table can't be empty\n"); ++ ++ ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &priv->freq_table); ++ if (ret) ++ return dev_err_probe(cpu_dev, ret, "failed to init cpufreq table\n"); ++ ++ list_add(&priv->node, &priv_list); ++ ++ return 0; ++} ++ ++static void rockchip_cpufreq_free_list(void *data) ++{ ++ struct cluster_info *cluster, *pos; ++ ++ list_for_each_entry_safe(cluster, pos, &cluster_info_list, list_head) { ++ list_del(&cluster->list_head); ++ } ++} ++ ++static int rockchip_cpufreq_init_list(struct device *dev) ++{ ++ struct cluster_info *cluster; ++ int cpu, ret; ++ ++ for_each_possible_cpu(cpu) { ++ cluster = rockchip_cluster_info_lookup(cpu); ++ if (cluster) ++ continue; ++ ++ cluster = devm_kzalloc(dev, sizeof(*cluster), GFP_KERNEL); ++ if (!cluster) { ++ ret = -ENOMEM; ++ goto release_cluster_info; ++ } ++ ++ ret = rockchip_cpufreq_cluster_init(cpu, cluster); ++ if (ret) { ++ dev_err_probe(dev, ret, "Failed to initialize dvfs info cpu%d\n", cpu); ++ goto release_cluster_info; ++ } ++ list_add(&cluster->list_head, &cluster_info_list); ++ } ++ ++ return 0; ++ ++release_cluster_info: ++ rockchip_cpufreq_free_list(NULL); ++ return ret; ++} ++ ++static void rockchip_cpufreq_unregister(void *data) ++{ ++ cpufreq_unregister_driver(&rockchip_cpufreq_driver); ++} ++ ++static int rockchip_cpufreq_probe(struct platform_device *pdev) ++{ ++ int ret, cpu; ++ ++ ret = rockchip_cpufreq_init_list(&pdev->dev); ++ if (ret) ++ return ret; ++ ++ ret = devm_add_action_or_reset(&pdev->dev, rockchip_cpufreq_free_list, NULL); ++ if (ret) ++ return ret; ++ ++ ret = devm_register_reboot_notifier(&pdev->dev, &rockchip_cpufreq_reboot_notifier); ++ if (ret) ++ return dev_err_probe(&pdev->dev, ret, "Failed to register reboot handler\n"); ++ ++ for_each_possible_cpu(cpu) { ++ ret = rockchip_cpufreq_init(&pdev->dev, cpu); ++ if (ret) ++ return ret; ++ } ++ ++ ret = cpufreq_register_driver(&rockchip_cpufreq_driver); ++ if (ret) ++ return dev_err_probe(&pdev->dev, ret, "failed register driver\n"); ++ ++ ret = devm_add_action_or_reset(&pdev->dev, rockchip_cpufreq_unregister, NULL); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static struct platform_driver rockchip_cpufreq_platdrv = { ++ .driver = { ++ .name = "rockchip-cpufreq", ++ }, ++ .probe = rockchip_cpufreq_probe, ++}; ++ ++static int __init rockchip_cpufreq_driver_init(void) ++{ ++ int ret; ++ ++ if (!of_machine_is_compatible("rockchip,rk3588") && ++ !of_machine_is_compatible("rockchip,rk3588s")) { ++ return -ENODEV; ++ } ++ ++ ret = platform_driver_register(&rockchip_cpufreq_platdrv); ++ if (ret) ++ return ret; ++ ++ cpufreq_pdev = platform_device_register_data(NULL, "rockchip-cpufreq", -1, ++ NULL, 0); ++ if (IS_ERR(cpufreq_pdev)) { ++ pr_err("failed to register rockchip-cpufreq platform device\n"); ++ ret = PTR_ERR(cpufreq_pdev); ++ goto unregister_platform_driver; ++ } ++ ++ return 0; ++ ++unregister_platform_driver: ++ platform_driver_unregister(&rockchip_cpufreq_platdrv); ++ return ret; ++} ++module_init(rockchip_cpufreq_driver_init); ++ ++static void __exit rockchip_cpufreq_driver_exit(void) ++{ ++ platform_device_unregister(cpufreq_pdev); ++ platform_driver_unregister(&rockchip_cpufreq_platdrv); ++} ++module_exit(rockchip_cpufreq_driver_exit) ++ ++MODULE_AUTHOR("Finley Xiao "); ++MODULE_DESCRIPTION("Rockchip cpufreq driver"); ++MODULE_LICENSE("GPL v2"); diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-28-arm64-dts-rockchip-rk3588-add-cpu-frequency-scaling-.patch b/target/linux/rockchip/patches-6.6/200-v6.7-28-arm64-dts-rockchip-rk3588-add-cpu-frequency-scaling-.patch new file mode 100644 index 00000000000000..9ece098af9a0bd --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-28-arm64-dts-rockchip-rk3588-add-cpu-frequency-scaling-.patch @@ -0,0 +1,555 @@ +From cc2a0371626a00d8c2778594f8302c7836900be0 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 4 Apr 2023 17:30:46 +0200 +Subject: [PATCH 28/41] arm64: dts: rockchip: rk3588: add cpu frequency scaling + support + +Add required bits for CPU frequency scaling to the Rockchip 3588 +devicetree. This is missing the 2.4 GHz operating point for the +big cpu clusters, since that does not work well on all SoCs. +Downstream has a driver for PVTM, which reduces the requested +frequencies based on (among other things) silicon quality. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 452 ++++++++++++++++++++++ + 1 file changed, 452 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + / { + compatible = "rockchip,rk3588"; +@@ -18,6 +19,215 @@ + #address-cells = <2>; + #size-cells = <2>; + ++ cluster0_opp_table: opp-table-cluster0 { ++ compatible = "operating-points-v2"; ++ opp-shared; ++ ++ opp-408000000 { ++ opp-hz = /bits/ 64 <408000000>; ++ opp-microvolt = <750000 750000 950000>, ++ <750000 750000 950000>; ++ clock-latency-ns = <40000>; ++ opp-suspend; ++ }; ++ opp-600000000 { ++ opp-hz = /bits/ 64 <600000000>; ++ opp-microvolt = <750000 750000 950000>, ++ <750000 750000 950000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-816000000 { ++ opp-hz = /bits/ 64 <816000000>; ++ opp-microvolt = <750000 750000 950000>, ++ <750000 750000 950000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1008000000 { ++ opp-hz = /bits/ 64 <1008000000>; ++ opp-microvolt = <750000 750000 950000>, ++ <750000 750000 950000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1200000000 { ++ opp-hz = /bits/ 64 <1200000000>; ++ opp-microvolt = <775000 775000 950000>, ++ <775000 775000 950000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1416000000 { ++ opp-hz = /bits/ 64 <1416000000>; ++ opp-microvolt = <825000 825000 950000>, ++ <825000 825000 950000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1608000000 { ++ opp-hz = /bits/ 64 <1608000000>; ++ opp-microvolt = <875000 875000 950000>, ++ <875000 875000 950000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1800000000 { ++ opp-hz = /bits/ 64 <1800000000>; ++ opp-microvolt = <950000 950000 950000>, ++ <950000 950000 950000>; ++ clock-latency-ns = <40000>; ++ }; ++ }; ++ ++ cluster1_opp_table: opp-table-cluster1 { ++ compatible = "operating-points-v2"; ++ opp-shared; ++ ++ rockchip,grf = <&bigcore0_grf>; ++ rockchip,volt-mem-read-margin = < ++ 855000 1 ++ 765000 2 ++ 675000 3 ++ 495000 4 ++ >; ++ ++ rockchip,reboot-freq = <1800000000>; ++ ++ opp-408000000 { ++ opp-hz = /bits/ 64 <408000000>; ++ opp-microvolt = <600000 600000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ opp-suspend; ++ }; ++ opp-600000000 { ++ opp-hz = /bits/ 64 <600000000>; ++ opp-microvolt = <600000 600000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-816000000 { ++ opp-hz = /bits/ 64 <816000000>; ++ opp-microvolt = <600000 600000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1008000000 { ++ opp-hz = /bits/ 64 <1008000000>; ++ opp-microvolt = <625000 625000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1200000000 { ++ opp-hz = /bits/ 64 <1200000000>; ++ opp-microvolt = <650000 650000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1416000000 { ++ opp-hz = /bits/ 64 <1416000000>; ++ opp-microvolt = <675000 675000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1608000000 { ++ opp-hz = /bits/ 64 <1608000000>; ++ opp-microvolt = <700000 700000 1000000>, ++ <700000 700000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1800000000 { ++ opp-hz = /bits/ 64 <1800000000>; ++ opp-microvolt = <775000 775000 1000000>, ++ <775000 775000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-2016000000 { ++ opp-hz = /bits/ 64 <2016000000>; ++ opp-microvolt = <850000 850000 1000000>, ++ <850000 850000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-2208000000 { ++ opp-hz = /bits/ 64 <2208000000>; ++ opp-microvolt = <925000 925000 1000000>, ++ <925000 925000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ }; ++ ++ cluster2_opp_table: opp-table-cluster2 { ++ compatible = "operating-points-v2"; ++ opp-shared; ++ ++ rockchip,grf = <&bigcore1_grf>; ++ rockchip,volt-mem-read-margin = < ++ 855000 1 ++ 765000 2 ++ 675000 3 ++ 495000 4 ++ >; ++ ++ rockchip,reboot-freq = <1800000000>; ++ ++ opp-408000000 { ++ opp-hz = /bits/ 64 <408000000>; ++ opp-microvolt = <600000 600000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ opp-suspend; ++ }; ++ opp-600000000 { ++ opp-hz = /bits/ 64 <600000000>; ++ opp-microvolt = <600000 600000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-816000000 { ++ opp-hz = /bits/ 64 <816000000>; ++ opp-microvolt = <600000 600000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1008000000 { ++ opp-hz = /bits/ 64 <1008000000>; ++ opp-microvolt = <625000 625000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1200000000 { ++ opp-hz = /bits/ 64 <1200000000>; ++ opp-microvolt = <650000 650000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1416000000 { ++ opp-hz = /bits/ 64 <1416000000>; ++ opp-microvolt = <675000 675000 1000000>, ++ <675000 675000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1608000000 { ++ opp-hz = /bits/ 64 <1608000000>; ++ opp-microvolt = <700000 700000 1000000>, ++ <700000 700000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-1800000000 { ++ opp-hz = /bits/ 64 <1800000000>; ++ opp-microvolt = <775000 775000 1000000>, ++ <775000 775000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-2016000000 { ++ opp-hz = /bits/ 64 <2016000000>; ++ opp-microvolt = <850000 850000 1000000>, ++ <850000 850000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ opp-2208000000 { ++ opp-hz = /bits/ 64 <2208000000>; ++ opp-microvolt = <925000 925000 1000000>, ++ <925000 925000 1000000>; ++ clock-latency-ns = <40000>; ++ }; ++ }; ++ + cpus { + #address-cells = <1>; + #size-cells = <0>; +@@ -64,6 +274,7 @@ + clocks = <&scmi_clk SCMI_CLK_CPUL>; + assigned-clocks = <&scmi_clk SCMI_CLK_CPUL>; + assigned-clock-rates = <816000000>; ++ operating-points-v2 = <&cluster0_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <32768>; + i-cache-line-size = <64>; +@@ -83,6 +294,7 @@ + enable-method = "psci"; + capacity-dmips-mhz = <530>; + clocks = <&scmi_clk SCMI_CLK_CPUL>; ++ operating-points-v2 = <&cluster0_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <32768>; + i-cache-line-size = <64>; +@@ -102,6 +314,7 @@ + enable-method = "psci"; + capacity-dmips-mhz = <530>; + clocks = <&scmi_clk SCMI_CLK_CPUL>; ++ operating-points-v2 = <&cluster0_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <32768>; + i-cache-line-size = <64>; +@@ -121,6 +334,7 @@ + enable-method = "psci"; + capacity-dmips-mhz = <530>; + clocks = <&scmi_clk SCMI_CLK_CPUL>; ++ operating-points-v2 = <&cluster0_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <32768>; + i-cache-line-size = <64>; +@@ -142,6 +356,7 @@ + clocks = <&scmi_clk SCMI_CLK_CPUB01>; + assigned-clocks = <&scmi_clk SCMI_CLK_CPUB01>; + assigned-clock-rates = <816000000>; ++ operating-points-v2 = <&cluster1_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <65536>; + i-cache-line-size = <64>; +@@ -161,6 +376,7 @@ + enable-method = "psci"; + capacity-dmips-mhz = <1024>; + clocks = <&scmi_clk SCMI_CLK_CPUB01>; ++ operating-points-v2 = <&cluster1_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <65536>; + i-cache-line-size = <64>; +@@ -182,6 +398,7 @@ + clocks = <&scmi_clk SCMI_CLK_CPUB23>; + assigned-clocks = <&scmi_clk SCMI_CLK_CPUB23>; + assigned-clock-rates = <816000000>; ++ operating-points-v2 = <&cluster2_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <65536>; + i-cache-line-size = <64>; +@@ -201,6 +418,7 @@ + enable-method = "psci"; + capacity-dmips-mhz = <1024>; + clocks = <&scmi_clk SCMI_CLK_CPUB23>; ++ operating-points-v2 = <&cluster2_opp_table>; + cpu-idle-states = <&CPU_SLEEP>; + i-cache-size = <65536>; + i-cache-line-size = <64>; +@@ -362,6 +580,230 @@ + #clock-cells = <0>; + }; + ++ thermal_zones: thermal-zones { ++ soc_thermal: soc-thermal { ++ polling-delay-passive = <20>; /* milliseconds */ ++ polling-delay = <1000>; /* milliseconds */ ++ sustainable-power = <2100>; /* milliwatts */ ++ ++ thermal-sensors = <&tsadc 0>; ++ trips { ++ trip-point-0 { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ soc_target: trip-point-1 { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-2 { ++ /* millicelsius */ ++ temperature = <115000>; ++ /* millicelsius */ ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map0 { ++ trip = <&soc_target>; ++ cooling-device = <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ contribution = <1024>; ++ }; ++ }; ++ }; ++ ++ bigcore0_thermal: bigcore0-thermal { ++ polling-delay-passive = <20>; /* milliseconds */ ++ polling-delay = <1000>; /* milliseconds */ ++ thermal-sensors = <&tsadc 1>; ++ ++ trips { ++ trip-point-0 { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ b0_target: trip-point-1 { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-2 { ++ /* millicelsius */ ++ temperature = <115000>; ++ /* millicelsius */ ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map0 { ++ trip = <&b0_target>; ++ cooling-device = <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ contribution = <1024>; ++ }; ++ }; ++ }; ++ ++ bigcore1_thermal: bigcore1-thermal { ++ polling-delay-passive = <20>; /* milliseconds */ ++ polling-delay = <1000>; /* milliseconds */ ++ thermal-sensors = <&tsadc 2>; ++ trips { ++ trip-point-0 { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ b1_target: trip-point-1 { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-2 { ++ /* millicelsius */ ++ temperature = <115000>; ++ /* millicelsius */ ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map0 { ++ trip = <&b1_target>; ++ cooling-device = <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ contribution = <1024>; ++ }; ++ }; ++ }; ++ ++ little_core_thermal: littlecore-thermal { ++ polling-delay-passive = <20>; /* milliseconds */ ++ polling-delay = <1000>; /* milliseconds */ ++ thermal-sensors = <&tsadc 3>; ++ trips { ++ trip-point-0 { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ l0_target: trip-point-1 { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-2 { ++ /* millicelsius */ ++ temperature = <115000>; ++ /* millicelsius */ ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map0 { ++ trip = <&l0_target>; ++ cooling-device = <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, ++ <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; ++ contribution = <1024>; ++ }; ++ }; ++ }; ++ ++ center_thermal: center-thermal { ++ polling-delay-passive = <20>; /* milliseconds */ ++ polling-delay = <1000>; /* milliseconds */ ++ thermal-sensors = <&tsadc 4>; ++ trips { ++ trip-point-0 { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-1 { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-2 { ++ /* millicelsius */ ++ temperature = <115000>; ++ /* millicelsius */ ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ }; ++ ++ gpu_thermal: gpu-thermal { ++ polling-delay-passive = <20>; /* milliseconds */ ++ polling-delay = <1000>; /* milliseconds */ ++ thermal-sensors = <&tsadc 5>; ++ trips { ++ trip-point-0 { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-1 { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-2 { ++ /* millicelsius */ ++ temperature = <115000>; ++ /* millicelsius */ ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ }; ++ ++ npu_thermal: npu-thermal { ++ polling-delay-passive = <20>; /* milliseconds */ ++ polling-delay = <1000>; /* milliseconds */ ++ thermal-sensors = <&tsadc 6>; ++ trips { ++ trip-point-0 { ++ temperature = <75000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-1 { ++ temperature = <85000>; ++ hysteresis = <2000>; ++ type = "passive"; ++ }; ++ trip-point-2 { ++ /* millicelsius */ ++ temperature = <115000>; ++ /* millicelsius */ ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ }; ++ }; ++ + timer { + compatible = "arm,armv8-timer"; + interrupts = , +@@ -491,6 +933,16 @@ + reg = <0x0 0xfd58c000 0x0 0x1000>; + }; + ++ bigcore0_grf: syscon@fd590000 { ++ compatible = "rockchip,rk3588-bigcore0-grf", "syscon"; ++ reg = <0x0 0xfd590000 0x0 0x100>; ++ }; ++ ++ bigcore1_grf: syscon@fd592000 { ++ compatible = "rockchip,rk3588-bigcore1-grf", "syscon"; ++ reg = <0x0 0xfd592000 0x0 0x100>; ++ }; ++ + php_grf: syscon@fd5b0000 { + compatible = "rockchip,rk3588-php-grf", "syscon"; + reg = <0x0 0xfd5b0000 0x0 0x1000>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-29-arm64-dts-rockchip-enable-RK3588-tsadc-by-default.patch b/target/linux/rockchip/patches-6.6/200-v6.7-29-arm64-dts-rockchip-enable-RK3588-tsadc-by-default.patch new file mode 100644 index 00000000000000..59c388d917615a --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-29-arm64-dts-rockchip-enable-RK3588-tsadc-by-default.patch @@ -0,0 +1,22 @@ +From e0afda8017b1b504c7925f45ef0200e80df8e44b Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Thu, 25 May 2023 19:45:02 +0200 +Subject: [PATCH 29/41] arm64: dts: rockchip: enable RK3588 tsadc by default + +Enable the thermal ADC for all boards. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 1 - + 1 file changed, 1 deletion(-) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -2598,7 +2598,6 @@ + pinctrl-1 = <&tsadc_shut>; + pinctrl-names = "gpio", "otpout"; + #thermal-sensor-cells = <1>; +- status = "disabled"; + }; + + saradc: adc@fec10000 { diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-30-arm64-dts-rockchip-rk3588-evb1-add-cpu-mem-regulator.patch b/target/linux/rockchip/patches-6.6/200-v6.7-30-arm64-dts-rockchip-rk3588-evb1-add-cpu-mem-regulator.patch new file mode 100644 index 00000000000000..26e3aceba4d325 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-30-arm64-dts-rockchip-rk3588-evb1-add-cpu-mem-regulator.patch @@ -0,0 +1,59 @@ +From 68c46abeacb0587ed74044291f0aeca2be5b0683 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Thu, 25 May 2023 19:48:49 +0200 +Subject: [PATCH 30/41] arm64: dts: rockchip: rk3588-evb1: add cpu mem + regulator info + +Add the second supply regulator for the CPU cores, which is used +for supplying the memory interface. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +@@ -159,34 +159,42 @@ + + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; ++ mem-supply = <&vdd_cpu_big0_mem_s0>; + }; + + &cpu_b1 { + cpu-supply = <&vdd_cpu_big0_s0>; ++ mem-supply = <&vdd_cpu_big0_mem_s0>; + }; + + &cpu_b2 { + cpu-supply = <&vdd_cpu_big1_s0>; ++ mem-supply = <&vdd_cpu_big1_mem_s0>; + }; + + &cpu_b3 { + cpu-supply = <&vdd_cpu_big1_s0>; ++ mem-supply = <&vdd_cpu_big1_mem_s0>; + }; + + &cpu_l0 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l1 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l2 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l3 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &gmac0 { diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-31-arm64-dts-rockchip-rock5a-add-cpu-mem-regulator-info.patch b/target/linux/rockchip/patches-6.6/200-v6.7-31-arm64-dts-rockchip-rock5a-add-cpu-mem-regulator-info.patch new file mode 100644 index 00000000000000..3d322ae5eefbea --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-31-arm64-dts-rockchip-rock5a-add-cpu-mem-regulator-info.patch @@ -0,0 +1,59 @@ +From 977ddbb94890f5afa2daa8726ab05c6afd71c472 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Mon, 24 Jul 2023 15:18:39 +0200 +Subject: [PATCH 31/41] arm64: dts: rockchip: rock5a: add cpu mem regulator + info + +Add the second supply regulator for the CPU cores, which is used +for supplying the memory interface. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts +@@ -120,34 +120,42 @@ + + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; ++ mem-supply = <&vdd_cpu_big0_s0>; + }; + + &cpu_b1 { + cpu-supply = <&vdd_cpu_big0_s0>; ++ mem-supply = <&vdd_cpu_big0_s0>; + }; + + &cpu_b2 { + cpu-supply = <&vdd_cpu_big1_s0>; ++ mem-supply = <&vdd_cpu_big1_s0>; + }; + + &cpu_b3 { + cpu-supply = <&vdd_cpu_big1_s0>; ++ mem-supply = <&vdd_cpu_big1_s0>; + }; + + &cpu_l0 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l1 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l2 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l3 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &i2c0 { diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-32-arm64-dts-rockchip-rock5b-add-cpu-mem-regulator-info.patch b/target/linux/rockchip/patches-6.6/200-v6.7-32-arm64-dts-rockchip-rock5b-add-cpu-mem-regulator-info.patch new file mode 100644 index 00000000000000..bb6e78a7e5c11a --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-32-arm64-dts-rockchip-rock5b-add-cpu-mem-regulator-info.patch @@ -0,0 +1,59 @@ +From 379715d7c42f5103a6b8de741b090d2e51344826 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Mon, 24 Jul 2023 15:07:49 +0200 +Subject: [PATCH 32/41] arm64: dts: rockchip: rock5b: add cpu mem regulator + info + +Add the second supply regulator for the CPU cores, which is used +for supplying the memory interface. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -129,34 +129,42 @@ + + &cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; ++ mem-supply = <&vdd_cpu_big0_s0>; + }; + + &cpu_b1 { + cpu-supply = <&vdd_cpu_big0_s0>; ++ mem-supply = <&vdd_cpu_big0_s0>; + }; + + &cpu_b2 { + cpu-supply = <&vdd_cpu_big1_s0>; ++ mem-supply = <&vdd_cpu_big1_s0>; + }; + + &cpu_b3 { + cpu-supply = <&vdd_cpu_big1_s0>; ++ mem-supply = <&vdd_cpu_big1_s0>; + }; + + &cpu_l0 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l1 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l2 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &cpu_l3 { + cpu-supply = <&vdd_cpu_lit_s0>; ++ mem-supply = <&vdd_cpu_lit_mem_s0>; + }; + + &i2c0 { diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-33-arm64-dts-rockchip-add-status-LED-to-rock-5b.patch b/target/linux/rockchip/patches-6.6/200-v6.7-33-arm64-dts-rockchip-add-status-LED-to-rock-5b.patch new file mode 100644 index 00000000000000..a96a8f4a484045 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-33-arm64-dts-rockchip-add-status-LED-to-rock-5b.patch @@ -0,0 +1,55 @@ +From dc551c258ec6bcb550f6d06df6a34b3455bacdc5 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 21 Jul 2023 15:34:28 +0200 +Subject: [PATCH 33/41] arm64: dts: rockchip: add status LED to rock-5b + +Describe the Rock 5B status LED in its device tree. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-rock-5b.dts | 20 +++++++++++++++++++ + 1 file changed, 20 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -3,6 +3,7 @@ + /dts-v1/; + + #include ++#include + #include "rk3588.dtsi" + + / { +@@ -36,6 +37,19 @@ + pinctrl-0 = <&hp_detect>; + }; + ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&led_rgb_b>; ++ ++ led_rgb_b { ++ function = LED_FUNCTION_STATUS; ++ color = ; ++ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++ + fan: pwm-fan { + compatible = "pwm-fan"; + cooling-levels = <0 95 145 195 255>; +@@ -296,6 +310,12 @@ + }; + }; + ++ leds { ++ led_rgb_b: led-rgb-b { ++ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ + sound { + hp_detect: hp-detect { + rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-34-arm64-dts-rockchip-rk3588-evb1-add-ADC-buttons.patch b/target/linux/rockchip/patches-6.6/200-v6.7-34-arm64-dts-rockchip-rk3588-evb1-add-ADC-buttons.patch new file mode 100644 index 00000000000000..fee0b16dd04c15 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-34-arm64-dts-rockchip-rk3588-evb1-add-ADC-buttons.patch @@ -0,0 +1,74 @@ +From ef797eb4e048d16933591802500295a3612b60f8 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 21 Jul 2023 15:47:00 +0200 +Subject: [PATCH 34/41] arm64: dts: rockchip: rk3588-evb1: add ADC buttons + +The Rockchip EVB1 has a couple of buttons connected via an ADC +line. Let's add them to its devicetree. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-evb1-v10.dts | 38 +++++++++++++++++++ + 1 file changed, 38 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +@@ -7,6 +7,7 @@ + /dts-v1/; + + #include ++#include + #include + #include + #include "rk3588.dtsi" +@@ -24,6 +25,38 @@ + stdout-path = "serial2:1500000n8"; + }; + ++ adc-keys { ++ compatible = "adc-keys"; ++ io-channels = <&saradc 1>; ++ io-channel-names = "buttons"; ++ keyup-threshold-microvolt = <1800000>; ++ poll-interval = <100>; ++ ++ button-vol-up { ++ label = "Volume Up"; ++ linux,code = ; ++ press-threshold-microvolt = <17000>; ++ }; ++ ++ button-vol-down { ++ label = "Volume Down"; ++ linux,code = ; ++ press-threshold-microvolt = <417000>; ++ }; ++ ++ button-menu { ++ label = "Menu"; ++ linux,code = ; ++ press-threshold-microvolt = <890000>; ++ }; ++ ++ button-escape { ++ label = "Escape"; ++ linux,code = ; ++ press-threshold-microvolt = <1235000>; ++ }; ++ }; ++ + backlight: backlight { + compatible = "pwm-backlight"; + power-supply = <&vcc12v_dcin>; +@@ -367,6 +400,11 @@ + status = "okay"; + }; + ++&saradc { ++ vref-supply = <&vcc_1v8_s0>; ++ status = "okay"; ++}; ++ + &sdhci { + bus-width = <8>; + no-sdio; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-35-usb-typec-tcpm-avoid-graph-warning.patch b/target/linux/rockchip/patches-6.6/200-v6.7-35-usb-typec-tcpm-avoid-graph-warning.patch new file mode 100644 index 00000000000000..693dd80514c927 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-35-usb-typec-tcpm-avoid-graph-warning.patch @@ -0,0 +1,42 @@ +From d49623b5cd3b29f946a95521fbb2a44eda0aea9c Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 28 Jul 2023 16:43:16 +0200 +Subject: [PATCH 35/41] usb: typec: tcpm: avoid graph warning + +When using a devicetree as described in commit d56de8c9a17d ("usb: +typec: tcpm: try to get role switch from tcpc fwnode"), the kernel +will print an error when probing the TCPM driver, which looks +similar to this: + +OF: graph: no port node found in /i2c@feac0000/usb-typec@22 + +This is a false positive, since the code first tries to find a ports +node for the device and only then checks the fwnode. Fix this by +swapping the order. + +Note, that this will now generate a error message for devicetrees with +a role-switch ports node directly in the TCPM node instead of in the +connectors sub-node, before falling back to the legacy behaviour. These +devicetrees generate warnings when being checked against the bindings, +and should be fixed. + +Fixes: d56de8c9a17d ("usb: typec: tcpm: try to get role switch from tcpc fwnode") +Signed-off-by: Sebastian Reichel +--- + drivers/usb/typec/tcpm/tcpm.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/usb/typec/tcpm/tcpm.c ++++ b/drivers/usb/typec/tcpm/tcpm.c +@@ -6621,9 +6621,9 @@ struct tcpm_port *tcpm_register_port(str + port->partner_desc.identity = &port->partner_ident; + port->port_type = port->typec_caps.type; + +- port->role_sw = usb_role_switch_get(port->dev); ++ port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode); + if (!port->role_sw) +- port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode); ++ port->role_sw = usb_role_switch_get(port->dev); + if (IS_ERR(port->role_sw)) { + err = PTR_ERR(port->role_sw); + goto out_destroy_wq; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-36-arm64-dts-rockchip-rk3588s-rock5a-add-upper-USB3-por.patch b/target/linux/rockchip/patches-6.6/200-v6.7-36-arm64-dts-rockchip-rk3588s-rock5a-add-upper-USB3-por.patch new file mode 100644 index 00000000000000..0aab66cb68f217 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-36-arm64-dts-rockchip-rk3588s-rock5a-add-upper-USB3-por.patch @@ -0,0 +1,59 @@ +From 8d7efd46755f22f6a2927e9815a4d5823db5f3b2 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 25 Jul 2023 16:30:46 +0200 +Subject: [PATCH 36/41] arm64: dts: rockchip: rk3588s-rock5a: add upper USB3 + port + +Enable full support (XHCI, EHCI, OHCI) for the upper USB3 port from +Radxa Rock 5 Model A. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588s-rock-5a.dts | 22 +++++++++++++++++++ + 1 file changed, 22 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts +@@ -707,6 +707,14 @@ + }; + }; + ++&u2phy0 { ++ status = "okay"; ++}; ++ ++&u2phy0_otg { ++ status = "okay"; ++}; ++ + &u2phy2 { + status = "okay"; + }; +@@ -730,6 +738,15 @@ + status = "okay"; + }; + ++&usbdp_phy0 { ++ status = "okay"; ++ rockchip,dp-lane-mux = <2 3>; ++}; ++ ++&usbdp_phy0_u3 { ++ status = "okay"; ++}; ++ + &usb_host0_ehci { + status = "okay"; + pinctrl-names = "default"; +@@ -740,6 +757,11 @@ + status = "okay"; + }; + ++&usb_host0_xhci { ++ dr_mode = "host"; ++ status = "okay"; ++}; ++ + &usb_host1_ehci { + status = "okay"; + }; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-37-arm64-dts-rockchip-rk3588-rock5b-add-lower-USB3-port.patch b/target/linux/rockchip/patches-6.6/200-v6.7-37-arm64-dts-rockchip-rk3588-rock5b-add-lower-USB3-port.patch new file mode 100644 index 00000000000000..23019abb8bd719 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-37-arm64-dts-rockchip-rk3588-rock5b-add-lower-USB3-port.patch @@ -0,0 +1,57 @@ +From e0b50dce22908bf995eedfbffde7b7b39a9190bd Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 25 Jul 2023 17:18:17 +0200 +Subject: [PATCH 37/41] arm64: dts: rockchip: rk3588-rock5b: add lower USB3 + port + +Enable full support (XHCI, EHCI, OHCI) for the lower USB3 port from +Radxa Rock 5 Model B. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-rock-5b.dts | 20 +++++++++++++++++++ + 1 file changed, 20 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -715,6 +715,14 @@ + status = "okay"; + }; + ++&u2phy1 { ++ status = "okay"; ++}; ++ ++&u2phy1_otg { ++ status = "okay"; ++}; ++ + &u2phy2 { + status = "okay"; + }; +@@ -734,6 +742,14 @@ + status = "okay"; + }; + ++&usbdp_phy1 { ++ status = "okay"; ++}; ++ ++&usbdp_phy1_u3 { ++ status = "okay"; ++}; ++ + &usb_host0_ehci { + status = "okay"; + }; +@@ -750,6 +766,10 @@ + status = "okay"; + }; + ++&usb_host1_xhci { ++ status = "okay"; ++}; ++ + &usb_host2_xhci { + status = "okay"; + }; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-38-arm64-dts-rockchip-rk3588-rock5b-add-USB-C-support.patch b/target/linux/rockchip/patches-6.6/200-v6.7-38-arm64-dts-rockchip-rk3588-rock5b-add-USB-C-support.patch new file mode 100644 index 00000000000000..bc613f9d02da0c --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-38-arm64-dts-rockchip-rk3588-rock5b-add-USB-C-support.patch @@ -0,0 +1,190 @@ +From 1583cee0fdadc3bf16bb8903761a82bf92b62320 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 25 Jul 2023 18:35:56 +0200 +Subject: [PATCH 38/41] arm64: dts: rockchip: rk3588-rock5b: add USB-C support + +Add support for using the Radxa Rock 5 Model B USB-C port for USB in +OHCI, EHCI or XHCI mode. Displayport AltMode is not yet supported. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-rock-5b.dts | 119 ++++++++++++++++++ + 1 file changed, 119 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts +@@ -4,6 +4,7 @@ + + #include + #include ++#include + #include "rk3588.dtsi" + + / { +@@ -58,6 +59,15 @@ + #cooling-cells = <2>; + }; + ++ vcc12v_dcin: vcc12v-dcin-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc12v_dcin"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <12000000>; ++ regulator-max-microvolt = <12000000>; ++ }; ++ + vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie2x1l0"; +@@ -116,6 +126,7 @@ + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; ++ vin-supply = <&vcc12v_dcin>; + }; + + vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator { +@@ -221,6 +232,61 @@ + }; + }; + ++&i2c4 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c4m1_xfer>; ++ status = "okay"; ++ ++ usbc0: usb-typec@22 { ++ compatible = "fcs,fusb302"; ++ reg = <0x22>; ++ interrupt-parent = <&gpio3>; ++ interrupts = ; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&usbc0_int>; ++ vbus-supply = <&vcc12v_dcin>; ++ status = "okay"; ++ ++ usb_con: connector { ++ compatible = "usb-c-connector"; ++ label = "USB-C"; ++ data-role = "dual"; ++ power-role = "sink"; ++ try-power-role = "sink"; ++ op-sink-microwatt = <1000000>; ++ sink-pdos = ++ , ++ ; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ usbc0_hs: endpoint { ++ remote-endpoint = <&usb_host0_xhci_drd_sw>; ++ }; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ usbc0_ss: endpoint { ++ remote-endpoint = <&usbdp_phy0_typec_ss>; ++ }; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ usbc0_sbu: endpoint { ++ remote-endpoint = <&usbdp_phy0_typec_sbu>; ++ }; ++ }; ++ }; ++ }; ++ }; ++}; ++ + &i2c6 { + status = "okay"; + +@@ -350,6 +416,10 @@ + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; ++ ++ usbc0_int: usbc0-int { ++ rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; + }; + }; + +@@ -715,6 +785,14 @@ + status = "okay"; + }; + ++&u2phy0 { ++ status = "okay"; ++}; ++ ++&u2phy0_otg { ++ status = "okay"; ++}; ++ + &u2phy1 { + status = "okay"; + }; +@@ -750,6 +828,33 @@ + status = "okay"; + }; + ++&usbdp_phy0 { ++ orientation-switch; ++ mode-switch; ++ sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>; ++ sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; ++ status = "okay"; ++ ++ port { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ usbdp_phy0_typec_ss: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&usbc0_ss>; ++ }; ++ ++ usbdp_phy0_typec_sbu: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&usbc0_sbu>; ++ }; ++ }; ++}; ++ ++&usbdp_phy0_u3 { ++ status = "okay"; ++}; ++ + &usb_host0_ehci { + status = "okay"; + }; +@@ -758,6 +863,20 @@ + status = "okay"; + }; + ++&usb_host0_xhci { ++ usb-role-switch; ++ status = "okay"; ++ ++ port { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ usb_host0_xhci_drd_sw: endpoint { ++ remote-endpoint = <&usbc0_hs>; ++ }; ++ }; ++}; ++ + &usb_host1_ehci { + status = "okay"; + }; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-39-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-WLAN-contro.patch b/target/linux/rockchip/patches-6.6/200-v6.7-39-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-WLAN-contro.patch new file mode 100644 index 00000000000000..da68d2e92f7192 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-39-arm64-dts-rockchip-rk3588-evb1-add-PCIe2-WLAN-contro.patch @@ -0,0 +1,86 @@ +From 049b5480e1b96ecffcb2e0fac72abc658c148d0c Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 14 Jul 2023 17:38:24 +0200 +Subject: [PATCH 39/41] arm64: dts: rockchip: rk3588-evb1: add PCIe2 WLAN + controller + +Enable PCIe bus used by on-board PCIe Broadcom WLAN controller. + +TODO: The WLAN controller is not detected. + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-evb1-v10.dts | 34 +++++++++++++++++++ + 1 file changed, 34 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +@@ -63,6 +63,15 @@ + pwms = <&pwm2 0 25000 0>; + }; + ++ wlan-rfkill { ++ compatible = "rfkill-gpio"; ++ label = "rfkill-pcie-wlan"; ++ radio-type = "wlan"; ++ shutdown-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wifi_pwren>, <&wifi_host_wake_irq>; ++ }; ++ + pcie20_avdd0v85: pcie20-avdd0v85-regulator { + compatible = "regulator-fixed"; + regulator-name = "pcie20_avdd0v85"; +@@ -186,6 +195,10 @@ + status = "okay"; + }; + ++&combphy1_ps { ++ status = "okay"; ++}; ++ + &combphy2_psu { + status = "okay"; + }; +@@ -324,6 +337,13 @@ + }; + }; + ++&pcie2x1l0 { ++ reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; ++ status = "okay"; ++ pinctrl-0 = <&pcie2_0_rst>; ++ status = "okay"; ++}; ++ + &pcie2x1l1 { + reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; +@@ -364,6 +384,10 @@ + }; + + pcie2 { ++ pcie2_0_rst: pcie2-0-rst { ++ rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + pcie2_1_rst: pcie2-1-rst { + rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; + }; +@@ -394,6 +418,16 @@ + rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; ++ ++ wlan { ++ wifi_host_wake_irq: wifi-host-wake-irq { ++ rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>; ++ }; ++ ++ wifi_pwren: wifi-pwren { ++ rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ }; + }; + + &pwm2 { diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-40-dt-bindings-es8328-convert-to-DT-schema-format.patch b/target/linux/rockchip/patches-6.6/200-v6.7-40-dt-bindings-es8328-convert-to-DT-schema-format.patch new file mode 100644 index 00000000000000..aab7e2b77a2e5e --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-40-dt-bindings-es8328-convert-to-DT-schema-format.patch @@ -0,0 +1,136 @@ +From dbfa3907a8cebfb47e5d11e64702e961508f16b7 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 25 Jul 2023 18:49:43 +0200 +Subject: [PATCH 40/41] dt-bindings: es8328: convert to DT schema format + +Convert the binding to DT schema format. + +Signed-off-by: Sebastian Reichel +--- + .../devicetree/bindings/sound/es8328.txt | 38 --------- + .../bindings/sound/everest,es8328.yaml | 77 +++++++++++++++++++ + 2 files changed, 77 insertions(+), 38 deletions(-) + delete mode 100644 Documentation/devicetree/bindings/sound/es8328.txt + create mode 100644 Documentation/devicetree/bindings/sound/everest,es8328.yaml + +--- a/Documentation/devicetree/bindings/sound/es8328.txt ++++ /dev/null +@@ -1,38 +0,0 @@ +-Everest ES8328 audio CODEC +- +-This device supports both I2C and SPI. +- +-Required properties: +- +- - compatible : Should be "everest,es8328" or "everest,es8388" +- - DVDD-supply : Regulator providing digital core supply voltage 1.8 - 3.6V +- - AVDD-supply : Regulator providing analog supply voltage 3.3V +- - PVDD-supply : Regulator providing digital IO supply voltage 1.8 - 3.6V +- - IPVDD-supply : Regulator providing analog output voltage 3.3V +- - clocks : A 22.5792 or 11.2896 MHz clock +- - reg : the I2C address of the device for I2C, the chip select number for SPI +- +-Pins on the device (for linking into audio routes): +- +- * LOUT1 +- * LOUT2 +- * ROUT1 +- * ROUT2 +- * LINPUT1 +- * RINPUT1 +- * LINPUT2 +- * RINPUT2 +- * Mic Bias +- +- +-Example: +- +-codec: es8328@11 { +- compatible = "everest,es8328"; +- DVDD-supply = <®_3p3v>; +- AVDD-supply = <®_3p3v>; +- PVDD-supply = <®_3p3v>; +- HPVDD-supply = <®_3p3v>; +- clocks = <&clks 169>; +- reg = <0x11>; +-}; +--- /dev/null ++++ b/Documentation/devicetree/bindings/sound/everest,es8328.yaml +@@ -0,0 +1,77 @@ ++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/sound/everest,es8328.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Everest ES8328 audio CODEC ++ ++description: ++ Everest Audio Codec, which can be connected via I2C or SPI. ++ Pins on the device (for linking into audio routes) are ++ * LOUT1 ++ * LOUT2 ++ * ROUT1 ++ * ROUT2 ++ * LINPUT1 ++ * RINPUT1 ++ * LINPUT2 ++ * RINPUT2 ++ * Mic Bias ++ ++maintainers: ++ - David Yang ++ ++properties: ++ compatible: ++ enum: ++ - everest,es8328 ++ - everest,es8388 ++ ++ reg: ++ maxItems: 1 ++ ++ "#sound-dai-cells": ++ const: 0 ++ ++ clocks: ++ items: ++ - description: A 22.5792 or 11.2896 MHz clock ++ ++ DVDD-supply: ++ description: Regulator providing digital core supply voltage 1.8 - 3.6V ++ ++ AVDD-supply: ++ description: Regulator providing analog supply voltage 3.3V ++ ++ PVDD-supply: ++ description: Regulator providing digital IO supply voltage 1.8 - 3.6V ++ ++ IPVDD-supply: ++ description: Regulator providing analog output voltage 3.3V ++ ++required: ++ - compatible ++ - clocks ++ - DVDD-supply ++ - AVDD-supply ++ - PVDD-supply ++ - IPVDD-supply ++ ++additionalProperties: false ++ ++examples: ++ - | ++ i2c { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ es8328: codec@11 { ++ compatible = "everest,es8328"; ++ reg = <0x11>; ++ AVDD-supply = <®_3p3v>; ++ DVDD-supply = <®_3p3v>; ++ HPVDD-supply = <®_3p3v>; ++ PVDD-supply = <®_3p3v>; ++ clocks = <&clks 169>; ++ }; ++ }; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-41-arm64-dts-rockchip-rk3588-evb1-add-analog-audio.patch b/target/linux/rockchip/patches-6.6/200-v6.7-41-arm64-dts-rockchip-rk3588-evb1-add-analog-audio.patch new file mode 100644 index 00000000000000..8acfafa879328b --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-41-arm64-dts-rockchip-rk3588-evb1-add-analog-audio.patch @@ -0,0 +1,136 @@ +From fe23f2bcf3dc650be3a0f25afa4a645200ff3878 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Fri, 21 Jul 2023 16:59:40 +0200 +Subject: [PATCH 41/41] arm64: dts: rockchip: rk3588-evb1: add analog audio + +Add support for the EVB1 analog audio to its devicetree. + +TODO: fails like this: + +es8328 1-0011: ASoC: error at snd_soc_dai_set_sysclk on es8328-hifi-analog: -22 +es8328 1-0011: simple-card: set_sysclk error + fe470000.i2s-es8328-hifi-analog: ASoC: error at snd_soc_link_init on fe470000.i2s-es8328-hifi-analog: -22 + +Signed-off-by: Sebastian Reichel +--- + .../boot/dts/rockchip/rk3588-evb1-v10.dts | 95 +++++++++++++++++++ + 1 file changed, 95 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts +@@ -57,6 +57,65 @@ + }; + }; + ++ analog-sound { ++ compatible = "simple-audio-card"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&hp_detect>; ++ simple-audio-card,name = "RK3588 EVB1 Audio"; ++ simple-audio-card,format = "i2s"; ++ simple-audio-card,mclk-fs = <256>; ++ simple-audio-card,bitclock-master = <&masterdai>; ++ simple-audio-card,frame-master = <&masterdai>; ++ ++ ++ simple-audio-card,widgets = ++ "Microphone", "Mic Jack", ++ "Microphone", "Onboard Mic", ++ "Headphone", "Headphones", ++ "Speaker", "Speaker"; ++ simple-audio-card,routing = ++ "Speaker Amplifier INL", "LOUT2", ++ "Speaker Amplifier INR", "ROUT2", ++ "Speaker", "Speaker Amplifier OUTL", ++ "Speaker", "Speaker Amplifier OUTR", ++ "Headphone Amplifier INL", "LOUT1", ++ "Headphone Amplifier INR", "ROUT1", ++ "Headphones", "Headphone Amplifier OUTL", ++ "Headphones", "Headphone Amplifier OUTR", ++ "LINPUT1", "Onboard Mic", ++ "LINPUT2", "Onboard Mic", ++ "RINPUT1", "Mic Jack", ++ "RINPUT2", "Mic Jack"; ++ ++ simple-audio-card,hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>; ++ simple-audio-card,aux-devs = <&_headphone>, <&_speaker>; ++ simple-audio-card,pin-switches = "Headphone", "Speaker"; ++ ++ simple-audio-card,cpu { ++ sound-dai = <&i2s0_8ch>; ++ }; ++ ++ masterdai: simple-audio-card,codec { ++ sound-dai = <&es8388>; ++ }; ++ }; ++ ++ amp_headphone: headphone-amplifier { ++ compatible = "simple-audio-amplifier"; ++ enable-gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&headphone_amplifier_en>; ++ sound-name-prefix = "Headphone Amplifier"; ++ }; ++ ++ amp_speaker: speaker-amplifier { ++ compatible = "simple-audio-amplifier"; ++ enable-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&speaker_amplifier_en>; ++ sound-name-prefix = "Speaker Amplifier"; ++ }; ++ + backlight: backlight { + compatible = "pwm-backlight"; + power-supply = <&vcc12v_dcin>; +@@ -324,6 +383,28 @@ + }; + }; + ++&i2c7 { ++ status = "okay"; ++ ++ es8388: audio-codec@11 { ++ compatible = "everest,es8388"; ++ reg = <0x11>; ++ clocks = <&cru I2S0_8CH_MCLKOUT>; ++ assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; ++ assigned-clock-rates = <12288000>; ++ #sound-dai-cells = <0>; ++ }; ++}; ++ ++&i2s0_8ch { ++ pinctrl-0 = <&i2s0_lrck ++ &i2s0_mclk ++ &i2s0_sclk ++ &i2s0_sdi0 ++ &i2s0_sdo0>; ++ status = "okay"; ++}; ++ + &mdio0 { + rgmii_phy: ethernet-phy@1 { + /* RTL8211F */ +@@ -364,6 +445,20 @@ + }; + + &pinctrl { ++ audio { ++ hp_detect: headphone-detect { ++ rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ headphone_amplifier_en: headphone-amplifier-en { ++ rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ speaker_amplifier_en: speaker-amplifier-en { ++ rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ + rtl8111 { + rtl8111_isolate: rtl8111-isolate { + rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; diff --git a/target/linux/rockchip/patches-6.6/200-v6.7-42-arm64-dts-rockchip-rk3588s-Add-USB3-controllers.patch b/target/linux/rockchip/patches-6.6/200-v6.7-42-arm64-dts-rockchip-rk3588s-Add-USB3-controllers.patch new file mode 100644 index 00000000000000..088395769ace28 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/200-v6.7-42-arm64-dts-rockchip-rk3588s-Add-USB3-controllers.patch @@ -0,0 +1,129 @@ +From 10ec0a7f1a6950be2af070d71ffbc713426e6dd2 Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Tue, 25 Apr 2023 18:17:19 +0200 +Subject: [PATCH] arm64: dts: rockchip: rk3588s: Add USB3 controllers + +Add all USB3 controllers. + +Signed-off-by: Sebastian Reichel +--- + arch/arm64/boot/dts/rockchip/rk3588.dtsi | 29 +++++++++++ + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 62 +++++++++++++++++++++++ + 2 files changed, 91 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi +@@ -7,6 +7,35 @@ + #include "rk3588-pinctrl.dtsi" + + / { ++ usbdrd3_1: usbdrd3_1 { ++ compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3"; ++ clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>, ++ <&cru ACLK_USB3OTG1>; ++ clock-names = "ref", "suspend", "bus"; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ status = "disabled"; ++ ++ usbdrd_dwc3_1: usb@fc400000 { ++ compatible = "snps,dwc3"; ++ reg = <0x0 0xfc400000 0x0 0x400000>; ++ interrupts = ; ++ power-domains = <&power RK3588_PD_USB>; ++ resets = <&cru SRST_A_USB3OTG1>; ++ reset-names = "usb3-otg"; ++ dr_mode = "host"; ++ phys = <&u2phy1_otg>, <&usbdp_phy1_u3>; ++ phy-names = "usb2-phy", "usb3-phy"; ++ phy_type = "utmi_wide"; ++ snps,dis_enblslpm_quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ status = "disabled"; ++ }; ++ }; ++ + usb_host1_xhci: usb@fc400000 { + compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; + reg = <0x0 0xfc400000 0x0 0x400000>; +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -841,6 +841,38 @@ + }; + }; + ++ usbdrd3_0: usbdrd3_0 { ++ compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3"; ++ clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>, ++ <&cru ACLK_USB3OTG0>; ++ clock-names = "ref", "suspend", "bus"; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ status = "disabled"; ++ ++ usbdrd_dwc3_0: usb@fc000000 { ++ compatible = "snps,dwc3"; ++ reg = <0x0 0xfc000000 0x0 0x400000>; ++ interrupts = ; ++ power-domains = <&power RK3588_PD_USB>; ++ resets = <&cru SRST_A_USB3OTG0>; ++ reset-names = "usb3-otg"; ++ dr_mode = "otg"; ++ phys = <&u2phy0_otg>, <&usbdp_phy0_u3>; ++ phy-names = "usb2-phy", "usb3-phy"; ++ phy_type = "utmi_wide"; ++ snps,dis_enblslpm_quirk; ++ snps,dis-u1-entry-quirk; ++ snps,dis-u2-entry-quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ quirk-skip-phy-init; ++ status = "disabled"; ++ }; ++ }; ++ + usb_host0_xhci: usb@fc000000 { + compatible = "rockchip,rk3588-dwc3", "snps,dwc3"; + reg = <0x0 0xfc000000 0x0 0x400000>; +@@ -928,6 +960,36 @@ + status = "disabled"; + }; + ++ usbhost3_0: usbhost3_0 { ++ compatible = "rockchip,rk3588-dwc3", "rockchip,rk3399-dwc3"; ++ clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>, ++ <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>, ++ <&cru PCLK_PHP_ROOT>, <&cru CLK_PIPEPHY2_PIPE_U3_G>; ++ clock-names = "ref", "suspend", "bus", "utmi", "php", "pipe"; ++ #address-cells = <2>; ++ #size-cells = <2>; ++ ranges; ++ status = "disabled"; ++ ++ usbhost_dwc3_0: usb@fcd00000 { ++ compatible = "snps,dwc3"; ++ reg = <0x0 0xfcd00000 0x0 0x400000>; ++ interrupts = ; ++ resets = <&cru SRST_A_USB3OTG2>; ++ reset-names = "usb3-host"; ++ dr_mode = "host"; ++ phys = <&combphy2_psu PHY_TYPE_USB3>; ++ phy-names = "usb3-phy"; ++ phy_type = "utmi_wide"; ++ snps,dis_enblslpm_quirk; ++ snps,dis-u2-freeclk-exists-quirk; ++ snps,dis-del-phy-power-chg-quirk; ++ snps,dis-tx-ipgap-linecheck-quirk; ++ snps,dis_rxdet_inp3_quirk; ++ status = "disabled"; ++ }; ++ }; ++ + sys_grf: syscon@fd58c000 { + compatible = "rockchip,rk3588-sys-grf", "syscon"; + reg = <0x0 0xfd58c000 0x0 0x1000>; diff --git a/target/linux/rockchip/patches-6.6/201-fix-USB3-do-not-disable-sub-nodes.patch b/target/linux/rockchip/patches-6.6/201-fix-USB3-do-not-disable-sub-nodes.patch new file mode 100644 index 00000000000000..b1c4a8f9d0ac86 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/201-fix-USB3-do-not-disable-sub-nodes.patch @@ -0,0 +1,38 @@ +From bd03124217afbe108ebf0a5bd23ab8db1f2ae2bf Mon Sep 17 00:00:00 2001 +From: Sebastian Reichel +Date: Wed, 26 Apr 2023 15:01:10 +0200 +Subject: [PATCH 84/95] fix USB3: do not disable sub-nodes + +--- + arch/arm64/boot/dts/rockchip/rk3588.dtsi | 1 - + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 2 -- + 2 files changed, 3 deletions(-) + +--- a/arch/arm64/boot/dts/rockchip/rk3588.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588.dtsi +@@ -32,7 +32,6 @@ + snps,dis-u2-freeclk-exists-quirk; + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; +- status = "disabled"; + }; + }; + +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -869,7 +869,6 @@ + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + quirk-skip-phy-init; +- status = "disabled"; + }; + }; + +@@ -986,7 +985,6 @@ + snps,dis-del-phy-power-chg-quirk; + snps,dis-tx-ipgap-linecheck-quirk; + snps,dis_rxdet_inp3_quirk; +- status = "disabled"; + }; + }; + diff --git a/target/linux/rockchip/patches-6.6/202-orangepi-5-plus.patch b/target/linux/rockchip/patches-6.6/202-orangepi-5-plus.patch new file mode 100644 index 00000000000000..1f6ac683967dee --- /dev/null +++ b/target/linux/rockchip/patches-6.6/202-orangepi-5-plus.patch @@ -0,0 +1,10 @@ +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -101,6 +101,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-ro + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6a-io.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6b-io.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-evb1-v10.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb diff --git a/target/linux/rockchip/patches-6.6/203-cpu-rk3588-add-more-operating-points.patch b/target/linux/rockchip/patches-6.6/203-cpu-rk3588-add-more-operating-points.patch new file mode 100644 index 00000000000000..d8df45a70fee84 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/203-cpu-rk3588-add-more-operating-points.patch @@ -0,0 +1,28 @@ +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -149,6 +149,12 @@ + <925000 925000 1000000>; + clock-latency-ns = <40000>; + }; ++ opp-2400000000 { ++ opp-hz = /bits/ 64 <2400000000>; ++ opp-microvolt = <1000000 1000000 1000000>, ++ <1000000 1000000 1000000>; ++ clock-latency-ns = <40000>; ++ }; + }; + + cluster2_opp_table: opp-table-cluster2 { +@@ -226,6 +232,12 @@ + <925000 925000 1000000>; + clock-latency-ns = <40000>; + }; ++ opp-2400000000 { ++ opp-hz = /bits/ 64 <2400000000>; ++ opp-microvolt = <1000000 1000000 1000000>, ++ <1000000 1000000 1000000>; ++ clock-latency-ns = <40000>; ++ }; + }; + + cpus { diff --git a/target/linux/rockchip/patches-6.6/204-irqchip-fix-its-timeout-issue.patch b/target/linux/rockchip/patches-6.6/204-irqchip-fix-its-timeout-issue.patch new file mode 100644 index 00000000000000..c1983c19bbff57 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/204-irqchip-fix-its-timeout-issue.patch @@ -0,0 +1,208 @@ +From d441305416aa91190df5865bbc0e3c684ec183b0 Mon Sep 17 00:00:00 2001 +From: Muhammed Efe Cetin +Date: Fri, 11 Aug 2023 17:56:00 +0300 +Subject: [PATCH 1/1] irqchip/irq-gic-v3-its: fix its timeout issue for rk35xx + boards + +--- + drivers/irqchip/irq-gic-v3-its.c | 79 +++++++++++++++++++++++++++++--- + 1 file changed, 72 insertions(+), 7 deletions(-) + +--- a/drivers/irqchip/irq-gic-v3-its.c ++++ b/drivers/irqchip/irq-gic-v3-its.c +@@ -163,6 +163,7 @@ struct its_device { + struct its_node *its; + struct event_lpi_map event_map; + void *itt; ++ u32 itt_sz; + u32 nr_ites; + u32 device_id; + bool shared; +@@ -2186,6 +2187,9 @@ static struct page *its_allocate_prop_ta + { + struct page *prop_page; + ++ if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) ++ gfp_flags |= GFP_DMA32; ++ + prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ)); + if (!prop_page) + return NULL; +@@ -2309,6 +2313,7 @@ static int its_setup_baser(struct its_no + u32 alloc_pages, psz; + struct page *page; + void *base; ++ gfp_t gfp_flags; + + psz = baser->psz; + alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz); +@@ -2320,7 +2325,11 @@ static int its_setup_baser(struct its_no + order = get_order(GITS_BASER_PAGES_MAX * psz); + } + +- page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO, order); ++ gfp_flags = GFP_KERNEL | __GFP_ZERO; ++ if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) ++ gfp_flags |= GFP_DMA32; ++ ++ page = alloc_pages_node(its->numa_node, gfp_flags, order); + if (!page) + return -ENOMEM; + +@@ -2370,6 +2379,15 @@ retry_baser: + its_write_baser(its, baser, val); + tmp = baser->val; + ++ if (of_machine_is_compatible("rockchip,rk3568") || ++ of_machine_is_compatible("rockchip,rk3566") || ++ of_machine_is_compatible("rockchip,rk3588")) { ++ if (tmp & GITS_BASER_SHAREABILITY_MASK) ++ tmp &= ~GITS_BASER_SHAREABILITY_MASK; ++ else ++ gic_flush_dcache_to_poc(base, PAGE_ORDER_TO_SIZE(order)); ++ } ++ + if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) { + /* + * Shareability didn't stick. Just use +@@ -2960,6 +2978,8 @@ static struct page *its_allocate_pending + { + struct page *pend_page; + ++ if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) ++ gfp_flags |= GFP_DMA32; + pend_page = alloc_pages(gfp_flags | __GFP_ZERO, + get_order(LPI_PENDBASE_SZ)); + if (!pend_page) +@@ -3118,6 +3138,11 @@ static void its_cpu_init_lpis(void) + if (!rdists_support_shareable()) + tmp &= ~GICR_PROPBASER_SHAREABILITY_MASK; + ++ if (of_machine_is_compatible("rockchip,rk3568") || ++ of_machine_is_compatible("rockchip,rk3566") || ++ of_machine_is_compatible("rockchip,rk3588")) ++ tmp &= ~GICR_PROPBASER_SHAREABILITY_MASK; ++ + if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) { + if (!(tmp & GICR_PROPBASER_SHAREABILITY_MASK)) { + /* +@@ -3145,6 +3170,11 @@ static void its_cpu_init_lpis(void) + if (!rdists_support_shareable()) + tmp &= ~GICR_PENDBASER_SHAREABILITY_MASK; + ++ if (of_machine_is_compatible("rockchip,rk3568") || ++ of_machine_is_compatible("rockchip,rk3566") || ++ of_machine_is_compatible("rockchip,rk3588")) ++ tmp &= ~GICR_PENDBASER_SHAREABILITY_MASK; ++ + if (!(tmp & GICR_PENDBASER_SHAREABILITY_MASK)) { + /* + * The HW reports non-shareable, we must remove the +@@ -3308,7 +3338,11 @@ static bool its_alloc_table_entry(struct + + /* Allocate memory for 2nd level table */ + if (!table[idx]) { +- page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO, ++ gfp_t gfp_flags = GFP_KERNEL | __GFP_ZERO; ++ ++ if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) ++ gfp_flags |= GFP_DMA32; ++ page = alloc_pages_node(its->numa_node, gfp_flags, + get_order(baser->psz)); + if (!page) + return false; +@@ -3397,6 +3431,7 @@ static struct its_device *its_create_dev + int nr_lpis; + int nr_ites; + int sz; ++ gfp_t gfp_flags; + + if (!its_alloc_device_table(its, dev_id)) + return NULL; +@@ -3412,7 +3447,15 @@ static struct its_device *its_create_dev + nr_ites = max(2, nvecs); + sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1); + sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1; +- itt = kzalloc_node(sz, GFP_KERNEL, its->numa_node); ++ gfp_flags = GFP_KERNEL; ++ ++ if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) { ++ gfp_flags |= GFP_DMA32; ++ itt = (void *)__get_free_pages(gfp_flags, get_order(sz)); ++ } else { ++ itt = kzalloc_node(sz, gfp_flags, its->numa_node); ++ } ++ + if (alloc_lpis) { + lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis); + if (lpi_map) +@@ -3426,7 +3469,13 @@ static struct its_device *its_create_dev + + if (!dev || !itt || !col_map || (!lpi_map && alloc_lpis)) { + kfree(dev); +- kfree(itt); ++ ++ if (of_machine_is_compatible("rockchip,rk3568") || ++ of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) ++ free_pages((unsigned long)itt, get_order(sz)); ++ else ++ kfree(itt); ++ + bitmap_free(lpi_map); + kfree(col_map); + return NULL; +@@ -3436,6 +3485,7 @@ static struct its_device *its_create_dev + + dev->its = its; + dev->itt = itt; ++ dev->itt_sz = sz; + dev->nr_ites = nr_ites; + dev->event_map.lpi_map = lpi_map; + dev->event_map.col_map = col_map; +@@ -3463,7 +3513,13 @@ static void its_free_device(struct its_d + list_del(&its_dev->entry); + raw_spin_unlock_irqrestore(&its_dev->its->lock, flags); + kfree(its_dev->event_map.col_map); +- kfree(its_dev->itt); ++ ++ if (of_machine_is_compatible("rockchip,rk3568") || ++ of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) ++ free_pages((unsigned long)its_dev->itt, get_order(its_dev->itt_sz)); ++ else ++ kfree(its_dev->itt); ++ + kfree(its_dev); + } + +@@ -5069,6 +5125,7 @@ static int __init its_probe_one(struct i + struct page *page; + u32 ctlr; + int err; ++ gfp_t gfp_flags; + + its_enable_quirks(its); + +@@ -5102,7 +5159,10 @@ static int __init its_probe_one(struct i + } + } + +- page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO, ++ gfp_flags = GFP_KERNEL | __GFP_ZERO; ++ if (of_machine_is_compatible("rockchip,rk3568") || of_machine_is_compatible("rockchip,rk3566") || of_machine_is_compatible("rockchip,rk3588")) ++ gfp_flags |= GFP_DMA32; ++ page = alloc_pages_node(its->numa_node, gfp_flags, + get_order(ITS_CMD_QUEUE_SZ)); + if (!page) { + err = -ENOMEM; +@@ -5131,6 +5191,11 @@ static int __init its_probe_one(struct i + if (its->flags & ITS_FLAGS_FORCE_NON_SHAREABLE) + tmp &= ~GITS_CBASER_SHAREABILITY_MASK; + ++ if (of_machine_is_compatible("rockchip,rk3568") || ++ of_machine_is_compatible("rockchip,rk3566") || ++ of_machine_is_compatible("rockchip,rk3588")) ++ tmp &= ~GITS_CBASER_SHAREABILITY_MASK; ++ + if ((tmp ^ baser) & GITS_CBASER_SHAREABILITY_MASK) { + if (!(tmp & GITS_CBASER_SHAREABILITY_MASK)) { + /* diff --git a/target/linux/rockchip/patches-6.6/205-arm64-dts-rockchip-Add-sfc-node-to-rk3588s.patch b/target/linux/rockchip/patches-6.6/205-arm64-dts-rockchip-Add-sfc-node-to-rk3588s.patch new file mode 100644 index 00000000000000..23357dfae75f99 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/205-arm64-dts-rockchip-Add-sfc-node-to-rk3588s.patch @@ -0,0 +1,35 @@ +From 3eaf2abd11aa7f3b2fb04d60c64b2c756fe030eb Mon Sep 17 00:00:00 2001 +From: Muhammed Efe Cetin +Date: Mon, 9 Oct 2023 22:27:26 +0300 +Subject: [PATCH] arm64: dts: rockchip: Add sfc node to rk3588s + +Add SFC (SPI Flash) to RK3588S SOC. + +Reviewed-by: Dhruva Gole +Signed-off-by: Muhammed Efe Cetin +Link: https://lore.kernel.org/r/d36a64edfaede92ce2e158b0d9dc4f5998e019e3.1696878787.git.efectn@6tel.net +Signed-off-by: Heiko Stuebner +--- + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s.dtsi +@@ -2034,6 +2034,17 @@ + }; + }; + ++ sfc: spi@fe2b0000 { ++ compatible = "rockchip,sfc"; ++ reg = <0x0 0xfe2b0000 0x0 0x4000>; ++ interrupts = ; ++ clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>; ++ clock-names = "clk_sfc", "hclk_sfc"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "disabled"; ++ }; ++ + sdmmc: mmc@fe2c0000 { + compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc"; + reg = <0x0 0xfe2c0000 0x0 0x4000>; diff --git a/target/linux/rockchip/patches-6.6/206-arm64-dts-rockchip-Add-Orange-Pi-5.patch b/target/linux/rockchip/patches-6.6/206-arm64-dts-rockchip-Add-Orange-Pi-5.patch new file mode 100644 index 00000000000000..63edf0bb673138 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/206-arm64-dts-rockchip-Add-Orange-Pi-5.patch @@ -0,0 +1,693 @@ +From b6bc755d806eac3fbddb7ea278fc7d2eb57dba4a Mon Sep 17 00:00:00 2001 +From: Muhammed Efe Cetin +Date: Mon, 9 Oct 2023 22:27:27 +0300 +Subject: [PATCH] arm64: dts: rockchip: Add Orange Pi 5 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add initial support for OPi5 that includes support for USB2, PCIe2, Sata, +Sdmmc, SPI Flash, PMIC. + +Signed-off-by: Muhammed Efe Cetin +Reviewed-by: Ondřej Jirman +Link: https://lore.kernel.org/r/4212da199c9c532b60d380bf1dfa83490e16bc13.1696878787.git.efectn@6tel.net +Signed-off-by: Heiko Stuebner +--- + arch/arm64/boot/dts/rockchip/Makefile | 1 + + .../boot/dts/rockchip/rk3588s-orangepi-5.dts | 662 ++++++++++++++++++ + 2 files changed, 663 insertions(+) + create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts + +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -110,3 +110,4 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-r + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c-plus.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5.dtb +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts +@@ -0,0 +1,662 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++ ++/dts-v1/; ++ ++#include ++#include ++#include ++#include ++#include "rk3588s.dtsi" ++ ++/ { ++ model = "Xunlong Orange Pi 5"; ++ compatible = "xunlong,orangepi-5", "rockchip,rk3588s"; ++ ++ aliases { ++ mmc0 = &sdmmc; ++ serial2 = &uart2; ++ }; ++ ++ chosen { ++ stdout-path = "serial2:1500000n8"; ++ }; ++ ++ adc-keys { ++ compatible = "adc-keys"; ++ io-channels = <&saradc 1>; ++ io-channel-names = "buttons"; ++ keyup-threshold-microvolt = <1800000>; ++ poll-interval = <100>; ++ ++ button-recovery { ++ label = "Recovery"; ++ linux,code = ; ++ press-threshold-microvolt = <1800>; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-names = "default"; ++ pinctrl-0 =<&leds_gpio>; ++ ++ led-1 { ++ gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>; ++ label = "status_led"; ++ linux,default-trigger = "heartbeat"; ++ }; ++ }; ++ ++ vbus_typec: vbus-typec-regulator { ++ compatible = "regulator-fixed"; ++ enable-active-high; ++ gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&typec5v_pwren>; ++ regulator-name = "vbus_typec"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ vin-supply = <&vcc5v0_sys>; ++ }; ++ ++ vcc5v0_sys: vcc5v0-sys-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc5v0_sys"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ }; ++ ++ vcc_3v3_sd_s0: vcc-3v3-sd-s0-regulator { ++ compatible = "regulator-fixed"; ++ enable-active-low; ++ gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>; ++ regulator-name = "vcc_3v3_sd_s0"; ++ regulator-boot-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&vcc_3v3_s3>; ++ }; ++ ++ vcc3v3_pcie20: vcc3v3-pcie20-regulator { ++ compatible = "regulator-fixed"; ++ enable-active-high; ++ gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; ++ regulator-name = "vcc3v3_pcie20"; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ startup-delay-us = <50000>; ++ vin-supply = <&vcc5v0_sys>; ++ }; ++}; ++ ++&combphy0_ps { ++ status = "okay"; ++}; ++ ++&combphy2_psu { ++ status = "okay"; ++}; ++ ++&cpu_b0 { ++ cpu-supply = <&vdd_cpu_big0_s0>; ++}; ++ ++&cpu_b1 { ++ cpu-supply = <&vdd_cpu_big0_s0>; ++}; ++ ++&cpu_b2 { ++ cpu-supply = <&vdd_cpu_big1_s0>; ++}; ++ ++&cpu_b3 { ++ cpu-supply = <&vdd_cpu_big1_s0>; ++}; ++ ++&cpu_l0 { ++ cpu-supply = <&vdd_cpu_lit_s0>; ++}; ++ ++&cpu_l1 { ++ cpu-supply = <&vdd_cpu_lit_s0>; ++}; ++ ++&cpu_l2 { ++ cpu-supply = <&vdd_cpu_lit_s0>; ++}; ++ ++&cpu_l3 { ++ cpu-supply = <&vdd_cpu_lit_s0>; ++}; ++ ++&gmac1 { ++ clock_in_out = "output"; ++ phy-handle = <&rgmii_phy1>; ++ phy-mode = "rgmii-rxid"; ++ pinctrl-0 = <&gmac1_miim ++ &gmac1_tx_bus2 ++ &gmac1_rx_bus2 ++ &gmac1_rgmii_clk ++ &gmac1_rgmii_bus>; ++ pinctrl-names = "default"; ++ tx_delay = <0x42>; ++ status = "okay"; ++}; ++ ++&i2c0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c0m2_xfer>; ++ status = "okay"; ++ ++ vdd_cpu_big0_s0: regulator@42 { ++ compatible = "rockchip,rk8602"; ++ reg = <0x42>; ++ fcs,suspend-voltage-selector = <1>; ++ regulator-name = "vdd_cpu_big0_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <550000>; ++ regulator-max-microvolt = <1050000>; ++ regulator-ramp-delay = <2300>; ++ vin-supply = <&vcc5v0_sys>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_cpu_big1_s0: regulator@43 { ++ compatible = "rockchip,rk8603", "rockchip,rk8602"; ++ reg = <0x43>; ++ fcs,suspend-voltage-selector = <1>; ++ regulator-name = "vdd_cpu_big1_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <550000>; ++ regulator-max-microvolt = <1050000>; ++ regulator-ramp-delay = <2300>; ++ vin-supply = <&vcc5v0_sys>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++}; ++ ++&i2c2 { ++ status = "okay"; ++ ++ vdd_npu_s0: regulator@42 { ++ compatible = "rockchip,rk8602"; ++ reg = <0x42>; ++ fcs,suspend-voltage-selector = <1>; ++ regulator-name = "vdd_npu_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <550000>; ++ regulator-max-microvolt = <950000>; ++ regulator-ramp-delay = <2300>; ++ vin-supply = <&vcc5v0_sys>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++}; ++ ++&i2c6 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&i2c6m3_xfer>; ++ status = "okay"; ++ ++ hym8563: rtc@51 { ++ compatible = "haoyu,hym8563"; ++ reg = <0x51>; ++ #clock-cells = <0>; ++ clock-output-names = "hym8563"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&hym8563_int>; ++ interrupt-parent = <&gpio0>; ++ interrupts = ; ++ wakeup-source; ++ }; ++}; ++ ++&mdio1 { ++ rgmii_phy1: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <0x1>; ++ reset-assert-us = <20000>; ++ reset-deassert-us = <100000>; ++ reset-gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>; ++ }; ++}; ++ ++&pcie2x1l2 { ++ reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; ++ vpcie3v3-supply = <&vcc3v3_pcie20>; ++ status = "okay"; ++}; ++ ++&pinctrl { ++ gpio-func { ++ leds_gpio: leds-gpio { ++ rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ hym8563 { ++ hym8563_int: hym8563-int { ++ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++ ++ usb-typec { ++ usbc0_int: usbc0-int { ++ rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ typec5v_pwren: typec5v-pwren { ++ rockchip,pins = <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++}; ++ ++&saradc { ++ vref-supply = <&avcc_1v8_s0>; ++ status = "okay"; ++}; ++ ++&sdmmc { ++ bus-width = <4>; ++ cap-sd-highspeed; ++ disable-wp; ++ max-frequency = <150000000>; ++ no-mmc; ++ no-sdio; ++ sd-uhs-sdr104; ++ vmmc-supply = <&vcc_3v3_sd_s0>; ++ vqmmc-supply = <&vccio_sd_s0>; ++ status = "okay"; ++}; ++ ++&sfc { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&fspim0_pins>; ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0x0>; ++ spi-max-frequency = <100000000>; ++ spi-rx-bus-width = <4>; ++ spi-tx-bus-width = <1>; ++ }; ++}; ++ ++&spi2 { ++ status = "okay"; ++ assigned-clocks = <&cru CLK_SPI2>; ++ assigned-clock-rates = <200000000>; ++ num-cs = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>; ++ ++ pmic@0 { ++ compatible = "rockchip,rk806"; ++ reg = <0x0>; ++ interrupt-parent = <&gpio0>; ++ interrupts = <7 IRQ_TYPE_LEVEL_LOW>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, ++ <&rk806_dvs2_null>, <&rk806_dvs3_null>; ++ spi-max-frequency = <1000000>; ++ ++ vcc1-supply = <&vcc5v0_sys>; ++ vcc2-supply = <&vcc5v0_sys>; ++ vcc3-supply = <&vcc5v0_sys>; ++ vcc4-supply = <&vcc5v0_sys>; ++ vcc5-supply = <&vcc5v0_sys>; ++ vcc6-supply = <&vcc5v0_sys>; ++ vcc7-supply = <&vcc5v0_sys>; ++ vcc8-supply = <&vcc5v0_sys>; ++ vcc9-supply = <&vcc5v0_sys>; ++ vcc10-supply = <&vcc5v0_sys>; ++ vcc11-supply = <&vcc_2v0_pldo_s3>; ++ vcc12-supply = <&vcc5v0_sys>; ++ vcc13-supply = <&vcc_1v1_nldo_s3>; ++ vcc14-supply = <&vcc_1v1_nldo_s3>; ++ vcca-supply = <&vcc5v0_sys>; ++ ++ gpio-controller; ++ #gpio-cells = <2>; ++ ++ rk806_dvs1_null: dvs1-null-pins { ++ pins = "gpio_pwrctrl2"; ++ function = "pin_fun0"; ++ }; ++ ++ rk806_dvs2_null: dvs2-null-pins { ++ pins = "gpio_pwrctrl2"; ++ function = "pin_fun0"; ++ }; ++ ++ rk806_dvs3_null: dvs3-null-pins { ++ pins = "gpio_pwrctrl3"; ++ function = "pin_fun0"; ++ }; ++ ++ regulators { ++ vdd_gpu_s0: dcdc-reg1 { ++ regulator-name = "vdd_gpu_s0"; ++ regulator-boot-on; ++ regulator-min-microvolt = <550000>; ++ regulator-max-microvolt = <950000>; ++ regulator-ramp-delay = <12500>; ++ regulator-enable-ramp-delay = <400>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_cpu_lit_s0: dcdc-reg2 { ++ regulator-name = "vdd_cpu_lit_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <550000>; ++ regulator-max-microvolt = <950000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_log_s0: dcdc-reg3 { ++ regulator-name = "vdd_log_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <675000>; ++ regulator-max-microvolt = <750000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ regulator-suspend-microvolt = <750000>; ++ }; ++ }; ++ ++ vdd_vdenc_s0: dcdc-reg4 { ++ regulator-name = "vdd_vdenc_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <550000>; ++ regulator-max-microvolt = <950000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_ddr_s0: dcdc-reg5 { ++ regulator-name = "vdd_ddr_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <675000>; ++ regulator-max-microvolt = <900000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ regulator-suspend-microvolt = <850000>; ++ }; ++ }; ++ ++ vcc_1v1_nldo_s3: vdd2_ddr_s3: dcdc-reg6 { ++ regulator-name = "vdd2_ddr_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-max-microvolt = <1100000>; ++ regulator-min-microvolt = <1100000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ }; ++ }; ++ ++ vcc_2v0_pldo_s3: dcdc-reg7 { ++ regulator-name = "vdd_2v0_pldo_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <2000000>; ++ regulator-max-microvolt = <2000000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <2000000>; ++ }; ++ }; ++ ++ vcc_3v3_s3: dcdc-reg8 { ++ regulator-name = "vcc_3v3_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <3300000>; ++ }; ++ }; ++ ++ vddq_ddr_s0: dcdc-reg9 { ++ regulator-name = "vddq_ddr_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vcc_1v8_s3: dcdc-reg10 { ++ regulator-name = "vcc_1v8_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <1800000>; ++ }; ++ }; ++ ++ avcc_1v8_s0: pldo-reg1 { ++ regulator-name = "avcc_1v8_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vcc_1v8_s0: pldo-reg2 { ++ regulator-name = "vcc_1v8_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ regulator-suspend-microvolt = <1800000>; ++ }; ++ }; ++ ++ avdd_1v2_s0: pldo-reg3 { ++ regulator-name = "avdd_1v2_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1200000>; ++ regulator-max-microvolt = <1200000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vcc_3v3_s0: pldo-reg4 { ++ regulator-name = "vcc_3v3_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vccio_sd_s0: pldo-reg5 { ++ regulator-name = "vccio_sd_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-ramp-delay = <12500>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ pldo6_s3: pldo-reg6 { ++ regulator-name = "pldo6_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <1800000>; ++ }; ++ }; ++ ++ vdd_0v75_s3: nldo-reg1 { ++ regulator-name = "vdd_0v75_s3"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <750000>; ++ regulator-max-microvolt = <750000>; ++ ++ regulator-state-mem { ++ regulator-on-in-suspend; ++ regulator-suspend-microvolt = <750000>; ++ }; ++ }; ++ ++ vdd_ddr_pll_s0: nldo-reg2 { ++ regulator-name = "vdd_ddr_pll_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <850000>; ++ regulator-max-microvolt = <850000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ regulator-suspend-microvolt = <850000>; ++ }; ++ }; ++ ++ avdd_0v75_s0: nldo-reg3 { ++ regulator-name = "avdd_0v75_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <750000>; ++ regulator-max-microvolt = <750000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_0v85_s0: nldo-reg4 { ++ regulator-name = "vdd_0v85_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <850000>; ++ regulator-max-microvolt = <850000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ ++ vdd_0v75_s0: nldo-reg5 { ++ regulator-name = "vdd_0v75_s0"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <750000>; ++ regulator-max-microvolt = <750000>; ++ ++ regulator-state-mem { ++ regulator-off-in-suspend; ++ }; ++ }; ++ }; ++ }; ++}; ++ ++&tsadc { ++ status = "okay"; ++}; ++ ++&u2phy2 { ++ status = "okay"; ++}; ++ ++&u2phy2_host { ++ status = "okay"; ++}; ++ ++&u2phy3 { ++ status = "okay"; ++}; ++ ++&u2phy3_host { ++ status = "okay"; ++}; ++ ++&uart2 { ++ pinctrl-0 = <&uart2m0_xfer>; ++ status = "okay"; ++}; ++ ++&usb_host0_ehci { ++ status = "okay"; ++}; ++ ++&usb_host0_ohci { ++ status = "okay"; ++}; ++ ++&usb_host1_ehci { ++ status = "okay"; ++}; ++ ++&usb_host1_ohci { ++ status = "okay"; ++}; diff --git a/target/linux/rockchip/patches-6.6/207-arm64-dts-rockchip-Add-I2S2-M0-pin-definitions-to-rk.patch b/target/linux/rockchip/patches-6.6/207-arm64-dts-rockchip-Add-I2S2-M0-pin-definitions-to-rk.patch new file mode 100644 index 00000000000000..25526ba23ccce9 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/207-arm64-dts-rockchip-Add-I2S2-M0-pin-definitions-to-rk.patch @@ -0,0 +1,58 @@ +From bf012368bb0ab69167d49715789fac34dfcd457e Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 8 Oct 2023 15:04:59 +0200 +Subject: [PATCH] arm64: dts: rockchip: Add I2S2 M0 pin definitions to rk3588s + +This is used on Orange Pi 5 Plus. + +Signed-off-by: Ondrej Jirman +Link: https://lore.kernel.org/r/20231008130515.1155664-2-megi@xff.cz +Signed-off-by: Heiko Stuebner +--- + .../boot/dts/rockchip/rk3588s-pinctrl.dtsi | 35 +++++++++++++++++++ + 1 file changed, 35 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi +@@ -1350,6 +1350,41 @@ + + i2s2 { + /omit-if-no-ref/ ++ i2s2m0_lrck: i2s2m0-lrck { ++ rockchip,pins = ++ /* i2s2m0_lrck */ ++ <2 RK_PC0 2 &pcfg_pull_none>; ++ }; ++ ++ /omit-if-no-ref/ ++ i2s2m0_mclk: i2s2m0-mclk { ++ rockchip,pins = ++ /* i2s2m0_mclk */ ++ <2 RK_PB6 2 &pcfg_pull_none>; ++ }; ++ ++ /omit-if-no-ref/ ++ i2s2m0_sclk: i2s2m0-sclk { ++ rockchip,pins = ++ /* i2s2m0_sclk */ ++ <2 RK_PB7 2 &pcfg_pull_none>; ++ }; ++ ++ /omit-if-no-ref/ ++ i2s2m0_sdi: i2s2m0-sdi { ++ rockchip,pins = ++ /* i2s2m0_sdi */ ++ <2 RK_PC3 2 &pcfg_pull_none>; ++ }; ++ ++ /omit-if-no-ref/ ++ i2s2m0_sdo: i2s2m0-sdo { ++ rockchip,pins = ++ /* i2s2m0_sdo */ ++ <4 RK_PC3 2 &pcfg_pull_none>; ++ }; ++ ++ /omit-if-no-ref/ + i2s2m1_lrck: i2s2m1-lrck { + rockchip,pins = + /* i2s2m1_lrck */ diff --git a/target/linux/rockchip/patches-6.6/208-arm64-dts-rockchip-Add-UART9-M0-pin-definitions-to-r.patch b/target/linux/rockchip/patches-6.6/208-arm64-dts-rockchip-Add-UART9-M0-pin-definitions-to-r.patch new file mode 100644 index 00000000000000..4a9cb6ea395228 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/208-arm64-dts-rockchip-Add-UART9-M0-pin-definitions-to-r.patch @@ -0,0 +1,32 @@ +From 3d77a3e51b0faed820a8db985dce5af1cc4eae32 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 8 Oct 2023 15:05:00 +0200 +Subject: [PATCH] arm64: dts: rockchip: Add UART9 M0 pin definitions to rk3588s + +This is used on Orange Pi 5 Plus. + +Signed-off-by: Ondrej Jirman +Link: https://lore.kernel.org/r/20231008130515.1155664-3-megi@xff.cz +Signed-off-by: Heiko Stuebner +--- + arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3588s-pinctrl.dtsi +@@ -3343,6 +3343,15 @@ + + uart9 { + /omit-if-no-ref/ ++ uart9m0_xfer: uart9m0-xfer { ++ rockchip,pins = ++ /* uart9_rx_m0 */ ++ <2 RK_PC4 10 &pcfg_pull_up>, ++ /* uart9_tx_m0 */ ++ <2 RK_PC2 10 &pcfg_pull_up>; ++ }; ++ ++ /omit-if-no-ref/ + uart9m1_xfer: uart9m1-xfer { + rockchip,pins = + /* uart9_rx_m1 */ diff --git a/target/linux/rockchip/patches-6.6/030-v6.9-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch b/target/linux/rockchip/patches-6.6/209-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch similarity index 100% rename from target/linux/rockchip/patches-6.6/030-v6.9-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch rename to target/linux/rockchip/patches-6.6/209-arm64-dts-rockchip-adjust-vendor-on-Banana-Pi-R2-Pro.patch diff --git a/target/linux/rockchip/patches-6.6/302-arm64-dts-rockchip-Add-missing-sdmmc2-SDR-rates-to-r.patch b/target/linux/rockchip/patches-6.6/302-arm64-dts-rockchip-Add-missing-sdmmc2-SDR-rates-to-r.patch new file mode 100644 index 00000000000000..4f0d67ec778934 --- /dev/null +++ b/target/linux/rockchip/patches-6.6/302-arm64-dts-rockchip-Add-missing-sdmmc2-SDR-rates-to-r.patch @@ -0,0 +1,39 @@ +From 0597d85859e48c4366862a6252479698590ae39c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tam=C3=A1s=20Sz=C5=B1cs?= +Date: Wed, 11 Oct 2023 19:14:56 +0000 +Subject: [PATCH] arm64: dts: rockchip: Add missing sdmmc2 SDR rates to rock-3a +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add missing UHS-I SDR rates to sdmmc2. Add explicit alias as mmc2 while at it. +It would be good to have matching timings enabled in case slower SDIO devices +are encountered. + +Signed-off-by: Tamás Szűcs +Link: https://lore.kernel.org/r/20231011191448.58936-1-tszucs@protonmail.ch +Signed-off-by: Heiko Stuebner +--- + arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts +@@ -15,6 +15,7 @@ + ethernet0 = &gmac1; + mmc0 = &sdhci; + mmc1 = &sdmmc0; ++ mmc2 = &sdmmc2; + }; + + chosen: chosen { +@@ -746,6 +747,9 @@ + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>; ++ sd-uhs-sdr12; ++ sd-uhs-sdr25; ++ sd-uhs-sdr50; + sd-uhs-sdr104; + vmmc-supply = <&vcc3v3_sys>; + vqmmc-supply = <&vcc_1v8>; From 0ca2522b8ba9c5f605c210d169db9b0c0f2f5a94 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Wed, 10 Jul 2024 19:24:35 -0400 Subject: [PATCH 17/41] uboot-rockchip: add support for rk3568/88 Signed-off-by: Marty Jones --- package/boot/uboot-rockchip/Makefile | 289 ++++++------ .../patches/100-force-build-dtc.patch | 20 + ...105-nanopc-t4-fix-memory-unstability.patch | 22 - .../106-uboot-rockchip-add-nanopi-r6c.patch | 442 ++++++++++++++++++ 4 files changed, 597 insertions(+), 176 deletions(-) create mode 100644 package/boot/uboot-rockchip/patches/100-force-build-dtc.patch delete mode 100644 package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch create mode 100644 package/boot/uboot-rockchip/patches/106-uboot-rockchip-add-nanopi-r6c.patch diff --git a/package/boot/uboot-rockchip/Makefile b/package/boot/uboot-rockchip/Makefile index cf650cb82a185f..0f637a8b1bc726 100644 --- a/package/boot/uboot-rockchip/Makefile +++ b/package/boot/uboot-rockchip/Makefile @@ -5,14 +5,14 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk -PKG_VERSION:=2024.07 +PKG_VERSION:=2024.04 PKG_RELEASE:=1 -PKG_HASH:=f591da9ab90ef3d6b3d173766d0ddff90c4ed7330680897486117df390d83c8f +PKG_HASH:=18a853fe39fad7ad03a90cc2d4275aeaed6da69735defac3492b80508843dd4a PKG_MAINTAINER:=Tobias Maedel -UBOOT_USE_BINMAN:=1 -UBOOT_USE_INTREE_DTC:=1 +# UBOOT_USE_BINMAN:=1 +# UBOOT_USE_INTREE_DTC:=1 include $(INCLUDE_DIR)/u-boot.mk include $(INCLUDE_DIR)/package.mk @@ -24,222 +24,203 @@ define U-Boot/Default endef -# RK3308 boards - -define U-Boot/rk3308/Default - BUILD_SUBTARGET:=armv8 - DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3308 - ATF:=rk3308_bl31_v2.26.elf - TPL:=rk3308_ddr_589MHz_uart2_m1_v2.07.bin -endef - -define U-Boot/rock-pi-s-rk3308 - $(U-Boot/rk3308/Default) - DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3308-rock-pi-s - TPL:=rk3308_ddr_589MHz_uart0_m0_v2.07.bin - NAME:=ROCK Pi S - BUILD_DEVICES:= \ - radxa_rock-pi-s -endef - # RK3328 boards -define U-Boot/rk3328/Default - BUILD_SUBTARGET:=armv8 - DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3328 - ATF:=rk3328_bl31.elf -endef - -define U-Boot/nanopi-r2c-rk3328 - $(U-Boot/rk3328/Default) - NAME:=NanoPi R2C - BUILD_DEVICES:= \ - friendlyarm_nanopi-r2c -endef - -define U-Boot/nanopi-r2c-plus-rk3328 - $(U-Boot/rk3328/Default) - NAME:=NanoPi R2C Plus - BUILD_DEVICES:= \ - friendlyarm_nanopi-r2c-plus -endef - define U-Boot/nanopi-r2s-rk3328 - $(U-Boot/rk3328/Default) + BUILD_SUBTARGET:=armv8 NAME:=NanoPi R2S BUILD_DEVICES:= \ friendlyarm_nanopi-r2s -endef - -define U-Boot/orangepi-r1-plus-rk3328 - $(U-Boot/rk3328/Default) - NAME:=Orange Pi R1 Plus - BUILD_DEVICES:= \ - xunlong_orangepi-r1-plus -endef - -define U-Boot/orangepi-r1-plus-lts-rk3328 - $(U-Boot/rk3328/Default) - NAME:=Orange Pi R1 Plus LTS - BUILD_DEVICES:= \ - xunlong_orangepi-r1-plus-lts + DEPENDS:=+PACKAGE_u-boot-nanopi-r2s-rk3328:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3328_bl31.elf endef define U-Boot/roc-cc-rk3328 - $(U-Boot/rk3328/Default) + BUILD_SUBTARGET:=armv8 NAME:=ROC-RK3328-CC BUILD_DEVICES:= \ firefly_roc-rk3328-cc + DEPENDS:=+PACKAGE_u-boot-roc-cc-rk3328:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3328_bl31.elf endef -define U-Boot/rock64-rk3328 - $(U-Boot/rk3328/Default) - NAME:=Rock64 - BUILD_DEVICES:= \ - pine64_rock64 -endef - -define U-Boot/rock-pi-e-rk3328 - $(U-Boot/rk3328/Default) - NAME:=ROCK Pi E - BUILD_DEVICES:= \ - radxa_rock-pi-e -endef # RK3399 boards -define U-Boot/rk3399/Default - BUILD_SUBTARGET:=armv8 - DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3399 - ATF:=rk3399_bl31.elf -endef - -define U-Boot/nanopc-t4-rk3399 - $(U-Boot/rk3399/Default) - NAME:=NanoPC T4 - BUILD_DEVICES:= \ - friendlyarm_nanopc-t4 -endef - -define U-Boot/nanopi-r4s-rk3399 - $(U-Boot/rk3399/Default) - NAME:=NanoPi R4S - BUILD_DEVICES:= \ - friendlyarm_nanopi-r4s \ - friendlyarm_nanopi-r4s-enterprise -endef define U-Boot/rock-pi-4-rk3399 - $(U-Boot/rk3399/Default) + BUILD_SUBTARGET:=armv8 NAME:=Rock Pi 4 BUILD_DEVICES:= \ - radxa_rock-pi-4a + radxa_rock-pi-4 + DEPENDS:=+PACKAGE_u-boot-rock-pi-4-rk3399:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3399_bl31.elf endef define U-Boot/rockpro64-rk3399 - $(U-Boot/rk3399/Default) + BUILD_SUBTARGET:=armv8 NAME:=RockPro64 BUILD_DEVICES:= \ pine64_rockpro64 + DEPENDS:=+PACKAGE_u-boot-rockpro64-rk3399:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3399_bl31.elf endef +# RK356x boards -# RK3566 boards - -define U-Boot/rk3566/Default +define U-Boot/bpi-r2-pro-rk3568 BUILD_SUBTARGET:=armv8 - DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3566 - ATF:=rk3568_bl31_v1.44.elf - TPL:=rk3566_ddr_1056MHz_v1.21.bin + NAME:=BPI-R2-PRO + BUILD_DEVICES:= \ + rockchip_bpi-r2-pro + DEPENDS:=+PACKAGE_u-boot-bpi-r2-pro-rk3568:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3568_bl31.elf + DDR_3568:=$(1) endef -define U-Boot/radxa-cm3-io-rk3566 - $(U-Boot/rk3566/Default) - NAME:=CM3 IO +define U-Boot/quartz64-a-rk3566 + BUILD_SUBTARGET:=armv8 + NAME:=QUARTZ64 BUILD_DEVICES:= \ - radxa_cm3-io + pine64_quartz64-a + DEPENDS:=+PACKAGE_u-boot-quartz64-a-rk3566:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3568_bl31.elf + DDR_3568:=$(1) endef -# RK3568 boards +define U-Boot/nanopi-r5c-rk3568 + BUILD_SUBTARGET:=armv8 + NAME:=NANOPI-R5C + BUILD_DEVICES:= \ + friendlyelec_nanopi-r5c + DEPENDS:=+PACKAGE_u-boot-nanopi-r5c-rk3568:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3568_bl31.elf + DDR_3568:=$(1) +endef -define U-Boot/rk3568/Default +define U-Boot/nanopi-r5s-rk3568 BUILD_SUBTARGET:=armv8 - DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3568 - ATF:=rk3568_bl31_v1.44.elf - TPL:=rk3568_ddr_1560MHz_v1.21.bin + NAME:=NANOPI-R5S + BUILD_DEVICES:= \ + friendlyelec_nanopi-r5s + DEPENDS:=+PACKAGE_u-boot-nanopi-r5s-rk3568:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3568_bl31.elf + DDR_3568:=$(1) endef -define U-Boot/bpi-r2-pro-rk3568 - $(U-Boot/rk3568/Default) - NAME:=Bananapi-R2 Pro +define U-Boot/rock-3a-rk3568 + BUILD_SUBTARGET:=armv8 + NAME:=ROCK-3A BUILD_DEVICES:= \ - sinovoip_bpi-r2-pro + radxa_rock-3a + DEPENDS:=+PACKAGE_u-boot-rock-3a-rk3568:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3568_bl31.elf + DDR_3568:=$(1) endef -define U-Boot/nanopi-r5c-rk3568 - $(U-Boot/rk3568/Default) - NAME:=NanoPi R5C +# RK3588 boards + +define U-Boot/nanopi-r6c-rk3588 + BUILD_SUBTARGET:=armv8 + NAME:=NANOPI-R6C BUILD_DEVICES:= \ - friendlyarm_nanopi-r5c + friendlyelec_nanopi-r6c + DEPENDS:=+PACKAGE_u-boot-nanopi-r6c-rk3588:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3588_bl31.elf + DDR_3588:=$(1) + endef -define U-Boot/nanopi-r5s-rk3568 - $(U-Boot/rk3568/Default) - NAME:=NanoPi R5S +define U-Boot/nanopi-r6s-rk3588 + BUILD_SUBTARGET:=armv8 + NAME:=NANOPI-R6C BUILD_DEVICES:= \ - friendlyarm_nanopi-r5s + friendlyelec_nanopi-r6s + DEPENDS:=+PACKAGE_u-boot-nanopi-r6c-rk3588:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + DEVICE_DTS := rk3588-nanopi-r6c.dts + UBOOT_CONFIG:= nanopi-r6c-rk3588 + ATF:=rk3588_bl31.elf + DDR_3588:=$(1) + endef -define U-Boot/radxa-e25-rk3568 - $(U-Boot/rk3568/Default) - DEPENDS:=+PACKAGE_u-boot-$(1):trusted-firmware-a-rk3568-e25 - TPL:=rk3568_ddr_1560MHz_uart2_m0_115200_v1.21.bin - NAME:=E25 +define U-Boot/orangepi-5-plus-rk3588 + BUILD_SUBTARGET:=armv8 + NAME:=ORANGEPI-5-PLUS BUILD_DEVICES:= \ - radxa_e25 + xunlong_orangepi-5-plus + DEPENDS:=+PACKAGE_u-boot-orangepi-5-plus-rk3588:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3588_bl31.elf + DDR_3588:=$(1) endef -define U-Boot/rock-3a-rk3568 - $(U-Boot/rk3568/Default) - NAME:=ROCK 3A +define U-Boot/rock-5b-rk3588 + BUILD_SUBTARGET:=armv8 + NAME:=ROCK-5B BUILD_DEVICES:= \ - radxa_rock-3a + radxa_rock-5b + DEPENDS:=+PACKAGE_u-boot-rock-5b-rk3588:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + UBOOT_CONFIG:= rock5b-rk3588 + ATF:=rk3588_bl31.elf + DDR_3588:=$(1) + DEFAULT := n endef UBOOT_TARGETS := \ - nanopc-t4-rk3399 \ - nanopi-r4s-rk3399 \ - rock-pi-4-rk3399 \ - rockpro64-rk3399 \ - rock-pi-s-rk3308 \ - nanopi-r2c-rk3328 \ - nanopi-r2c-plus-rk3328 \ - nanopi-r2s-rk3328 \ - orangepi-r1-plus-rk3328 \ - orangepi-r1-plus-lts-rk3328 \ - roc-cc-rk3328 \ - rock64-rk3328 \ - rock-pi-e-rk3328 \ - radxa-cm3-io-rk3566 \ + nanopi-r6c-rk3588 \ + nanopi-r6s-rk3588 \ + orangepi-5-plus-rk3588 \ + rock-5b-rk3588 \ bpi-r2-pro-rk3568 \ nanopi-r5c-rk3568 \ nanopi-r5s-rk3568 \ - radxa-e25-rk3568 \ - rock-3a-rk3568 + quartz64-a-rk3566 \ + rock-3a-rk3568 \ + rock-pi-4-rk3399 \ + rockpro64-rk3399 \ + nanopi-r2s-rk3328 \ + roc-cc-rk3328 UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes -UBOOT_CUSTOMIZE_CONFIG := \ - --disable TOOLS_MKEFICAPSULE \ - --set-str MKIMAGE_DTC_PATH $(PKG_BUILD_DIR)/scripts/dtc/dtc - UBOOT_MAKE_FLAGS += \ - BL31=$(STAGING_DIR_IMAGE)/$(ATF) \ - $(if $(TPL),ROCKCHIP_TPL=$(STAGING_DIR_IMAGE)/$(TPL)) + PATH=$(STAGING_DIR_HOST)/bin:$(PATH) \ + BL31=$(STAGING_DIR_IMAGE)/$(ATF) +export ROCKCHIP_TPL=./ddr.bin + +define Build/Configure + $(call Build/Configure/U-Boot) + +ifneq ($(DDR_3568),) + $(CP) $(STAGING_DIR_IMAGE)/rk3568_ddr.bin $(PKG_BUILD_DIR)/ddr.bin +endif + +ifneq ($(DDR_3588),) + $(CP) $(STAGING_DIR_IMAGE)/rk3588_ddr.bin $(PKG_BUILD_DIR)/ddr.bin +endif + + $(SED) 's#CONFIG_MKIMAGE_DTC_PATH=.*#CONFIG_MKIMAGE_DTC_PATH="$(PKG_BUILD_DIR)/scripts/dtc/dtc"#g' $(PKG_BUILD_DIR)/.config + echo 'CONFIG_TOOLS_MKEFICAPSULE=n' >> $(PKG_BUILD_DIR)/.config + echo 'CONFIG_OF_LIBFDT_OVERLAY=n' >> $(PKG_BUILD_DIR)/.config +endef define Build/InstallDev $(INSTALL_DIR) $(STAGING_DIR_IMAGE) - $(CP) $(PKG_BUILD_DIR)/u-boot-rockchip.bin $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot-rockchip.bin + $(CP) $(PKG_BUILD_DIR)/idbloader.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-idbloader.img + $(CP) $(PKG_BUILD_DIR)/u-boot.itb $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot.itb endef define Package/u-boot/install/default diff --git a/package/boot/uboot-rockchip/patches/100-force-build-dtc.patch b/package/boot/uboot-rockchip/patches/100-force-build-dtc.patch new file mode 100644 index 00000000000000..c3e813cf4644cf --- /dev/null +++ b/package/boot/uboot-rockchip/patches/100-force-build-dtc.patch @@ -0,0 +1,20 @@ +--- a/Makefile ++++ b/Makefile +@@ -416,7 +416,7 @@ PYTHON3 ?= python3 + + # The devicetree compiler and pylibfdt are automatically built unless DTC is + # provided. If DTC is provided, it is assumed the pylibfdt is available too. +-DTC_INTREE := $(objtree)/scripts/dtc/dtc ++DTC := $(objtree)/scripts/dtc/dtc + DTC ?= $(DTC_INTREE) + DTC_MIN_VERSION := 010406 + +@@ -2012,7 +2012,7 @@ endif + # Check dtc and pylibfdt, if DTC is provided, else build them + PHONY += scripts_dtc + scripts_dtc: scripts_basic +- $(Q)if test "$(DTC)" = "$(DTC_INTREE)"; then \ ++ $(Q)if test "$(DTC)" = "$(DTC)"; then \ + $(MAKE) $(build)=scripts/dtc; \ + else \ + if ! $(DTC) -v >/dev/null; then \ diff --git a/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch b/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch deleted file mode 100644 index b467f48f72b5d3..00000000000000 --- a/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 445502bc21ecf1b5120faee785cea578b810c759 Mon Sep 17 00:00:00 2001 -From: Lu jicong -Date: Wed, 5 Jul 2023 17:13:55 +0800 -Subject: [PATCH] rockchip: rk3399: nanopc-t4: use 1600MHz sdram config - -Current 1866MHz sdram config is too high for NanoPC-T4. -On this frequency, its lpddr3 sdram becomes unstable, -causing memtest failures and random kernel crashes. - -Signed-off-by: Lu jicong ---- - arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi -@@ -4,4 +4,4 @@ - */ - - #include "rk3399-nanopi4-u-boot.dtsi" --#include "rk3399-sdram-lpddr3-samsung-4GB-1866.dtsi" -+#include "rk3399-sdram-lpddr3-4GB-1600.dtsi" diff --git a/package/boot/uboot-rockchip/patches/106-uboot-rockchip-add-nanopi-r6c.patch b/package/boot/uboot-rockchip/patches/106-uboot-rockchip-add-nanopi-r6c.patch new file mode 100644 index 00000000000000..d3a20cd251abb2 --- /dev/null +++ b/package/boot/uboot-rockchip/patches/106-uboot-rockchip-add-nanopi-r6c.patch @@ -0,0 +1,442 @@ +From 64e26c0cf06fa59285fdd4593ef01d3294506170 Mon Sep 17 00:00:00 2001 +From: Marty Jones +Date: Thu, 20 Apr 2023 14:24:36 -0400 +Subject: [PATCH] uboot: rockchip: add nanopi r6c + +Signed-off-by: Marty Jones +--- + arch/arm/dts/Makefile | 1 + + arch/arm/dts/rk3588-nanopi-r6c-u-boot.dtsi | 22 ++++++ + arch/arm/dts/rk3588-nanopi-r6c.dts | 45 ++++++++++++ + arch/arm/mach-rockchip/rk3588/Kconfig | 7 ++ + board/friendlyelec/nanopi-r6c-rk3588/Kconfig | 15 ++++ + board/friendlyelec/nanopi-r6c-rk3588/Makefile | 4 ++ + .../nanopi-r6c-rk3588/nanopi-r6c-rk3588.c | 4 ++ + configs/nanopi-r5c-rk3588_defconfig | 72 +++++++++++++++++++ + include/configs/nanopi-r6c-rk3588.h | 15 ++++ + 9 files changed, 185 insertions(+) + create mode 100644 arch/arm/dts/rk3588-nanopi-r6c-u-boot.dtsi + create mode 100644 arch/arm/dts/rk3588-nanopi-r6c.dts + create mode 100644 board/friendlyelec/nanopi-r6c-rk3588/Kconfig + create mode 100644 board/friendlyelec/nanopi-r6c-rk3588/Makefile + create mode 100644 board/friendlyelec/nanopi-r6c-rk3588/nanopi-r6c-rk3588.c + create mode 100644 configs/nanopi-r6c-rk3588_defconfig + create mode 100644 include/configs/nanopi-r6c-rk3588.h + +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -200,6 +200,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3588) += \ + rk3588-quartzpro64.dtb \ + rk3588-turing-rk1.dtb \ + rk3588s-rock-5a.dtb \ ++ rk3588-nanopi-r6c.dtb \ + rk3588-rock-5b.dtb + + dtb-$(CONFIG_ROCKCHIP_RV1108) += \ +--- /dev/null ++++ b/arch/arm/dts/rk3588-nanopi-r6c-u-boot.dtsi +@@ -0,0 +1,178 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++ ++#include "rk3588-u-boot.dtsi" ++#include ++#include ++#include ++ ++/ { ++ aliases { ++ mmc0 = &sdhci; ++ mmc1 = &sdmmc; ++ }; ++ ++ chosen { ++ u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci; ++ }; ++ ++ vcc5v0_host: vcc5v0-host-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc5v0_host"; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ enable-active-high; ++ gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&vcc5v0_host_en>; ++ vin-supply = <&vcc5v0_sys>; ++ }; ++}; ++ ++&combphy0_ps { ++ status = "okay"; ++}; ++ ++&emmc_bus8 { ++ bootph-all; ++}; ++ ++&emmc_clk { ++ bootph-all; ++}; ++ ++&emmc_cmd { ++ bootph-all; ++}; ++ ++&emmc_data_strobe { ++ bootph-all; ++}; ++ ++&emmc_rstnout { ++ bootph-all; ++}; ++ ++&fspim2_pins { ++ bootph-all; ++}; ++ ++&pcie2x1l2 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pcie2x1l2_pins &pcie_reset_h>; ++ reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; ++ status = "okay"; ++}; ++ ++&pinctrl { ++ bootph-all; ++ ++ pcie { ++ pcie_reset_h: pcie-reset-h { ++ rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ pcie2x1l2_pins: pcie2x1l2-pins { ++ rockchip,pins = <3 RK_PC7 4 &pcfg_pull_none>, ++ <3 RK_PD0 4 &pcfg_pull_none>; ++ }; ++ }; ++ ++ usb { ++ vcc5v0_host_en: vcc5v0-host-en { ++ rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; ++}; ++ ++&pcfg_pull_none { ++ bootph-all; ++}; ++ ++&pcfg_pull_up_drv_level_2 { ++ bootph-all; ++}; ++ ++&pcfg_pull_up { ++ bootph-all; ++}; ++ ++&sdmmc { ++ bus-width = <4>; ++ status = "okay"; ++}; ++ ++&sdmmc_bus4 { ++ bootph-all; ++}; ++ ++&sdmmc_clk { ++ bootph-all; ++}; ++ ++&sdmmc_cmd { ++ bootph-all; ++}; ++ ++&sdmmc_det { ++ bootph-all; ++}; ++ ++&sdhci { ++ cap-mmc-highspeed; ++ mmc-ddr-1_8v; ++ mmc-hs200-1_8v; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_data_strobe &emmc_rstnout>; ++}; ++ ++&usb_host0_ehci { ++ companion = <&usb_host0_ohci>; ++ phys = <&u2phy2_host>; ++ phy-names = "usb2-phy"; ++ status = "okay"; ++}; ++ ++&usb_host0_ohci { ++ phys = <&u2phy2_host>; ++ phy-names = "usb2-phy"; ++ status = "okay"; ++}; ++ ++&usb2phy2_grf { ++ status = "okay"; ++}; ++ ++&u2phy2 { ++ status = "okay"; ++}; ++ ++&u2phy2_host { ++ phy-supply = <&vcc5v0_host>; ++ status = "okay"; ++}; ++ ++&usb_host1_ehci { ++ companion = <&usb_host1_ohci>; ++ phys = <&u2phy3_host>; ++ phy-names = "usb2-phy"; ++ status = "okay"; ++}; ++ ++&usb_host1_ohci { ++ phys = <&u2phy3_host>; ++ phy-names = "usb2-phy"; ++ status = "okay"; ++}; ++ ++&usb2phy3_grf { ++ status = "okay"; ++}; ++ ++&u2phy3 { ++ status = "okay"; ++}; ++ ++&u2phy3_host { ++ phy-supply = <&vcc5v0_host>; ++ status = "okay"; ++}; +--- /dev/null ++++ b/arch/arm/dts/rk3588-nanopi-r6c.dts +@@ -0,0 +1,45 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++ ++/dts-v1/; ++ ++#include "rk3588.dtsi" ++ ++/ { ++ model = "FriendlyElec NanoPi R6C"; ++ compatible = "friendlyelec,nanopi-r6c", "rockchip,rk3588"; ++ ++ aliases { ++ mmc0 = &sdhci; ++ mmc1 = &sdmmc; ++ serial2 = &uart2; ++ }; ++ ++ chosen { ++ stdout-path = "serial2:1500000n8"; ++ }; ++ ++ vcc5v0_sys: vcc5v0-sys-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc5v0_sys"; ++ regulator-always-on; ++ regulator-boot-on; ++ regulator-min-microvolt = <5000000>; ++ regulator-max-microvolt = <5000000>; ++ }; ++}; ++ ++&sdhci { ++ bus-width = <8>; ++ no-sdio; ++ no-sd; ++ non-removable; ++ max-frequency = <200000000>; ++ mmc-hs400-1_8v; ++ mmc-hs400-enhanced-strobe; ++ status = "okay"; ++}; ++ ++&uart2 { ++ pinctrl-0 = <&uart2m0_xfer>; ++ status = "okay"; ++}; +--- a/arch/arm/mach-rockchip/rk3588/Kconfig ++++ b/arch/arm/mach-rockchip/rk3588/Kconfig +@@ -100,6 +100,12 @@ config TARGET_ROCK5A_RK3588 + USB PD over USB Type-C + Size: 85mm x 56mm (Raspberry Pi 4 form factor) + ++config TARGET_NANOPI_R6C_RK3588 ++ bool "NanoPi R6C board" ++ select BOARD_LATE_INIT ++ help ++ FriendlyElec NANOPI-R6C is a Rockchip RK3588 based SBC (Single Board Computer) ++ + config TARGET_ROCK5B_RK3588 + bool "Radxa ROCK5B RK3588 board" + select BOARD_LATE_INIT +@@ -172,6 +178,7 @@ source board/friendlyelec/nanopc-t6-rk35 + source board/pine64/quartzpro64-rk3588/Kconfig + source board/turing/turing-rk1-rk3588/Kconfig + source board/rockchip/evb_rk3588/Kconfig ++source board/friendlyelec/nanopi-r6c-rk3588/Kconfig + source board/radxa/rock5a-rk3588s/Kconfig + source board/radxa/rock5b-rk3588/Kconfig + +--- /dev/null ++++ b/board/friendlyelec/nanopi-r6c-rk3588/Kconfig +@@ -0,0 +1,15 @@ ++if TARGET_NANOPI_R6C_RK3588 ++ ++config SYS_BOARD ++ default "nanopi-r6c-rk3588" ++ ++config SYS_VENDOR ++ default "friendlyelec" ++ ++config SYS_CONFIG_NAME ++ default "nanopi-r6c-rk3588" ++ ++config BOARD_SPECIFIC_OPTIONS # dummy ++ def_bool y ++ ++endif +--- /dev/null ++++ b/board/friendlyelec/nanopi-r6c-rk3588/Makefile +@@ -0,0 +1,4 @@ ++# SPDX-License-Identifier: GPL-2.0+ ++# ++ ++obj-y += nanopi-r6c-rk3588.o +--- /dev/null ++++ b/board/friendlyelec/nanopi-r6c-rk3588/nanopi-r6c-rk3588.c +@@ -0,0 +1,4 @@ ++ // SPDX-License-Identifier: GPL-2.0+ ++/* ++ * ++ */ +--- /dev/null ++++ b/configs/nanopi-r6c-rk3588_defconfig +@@ -0,0 +1,102 @@ ++CONFIG_ARM=y ++CONFIG_SKIP_LOWLEVEL_INIT=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_COUNTER_FREQUENCY=24000000 ++CONFIG_ARCH_ROCKCHIP=y ++CONFIG_TEXT_BASE=0x00a00000 ++CONFIG_SPL_LIBCOMMON_SUPPORT=y ++CONFIG_SPL_LIBGENERIC_SUPPORT=y ++CONFIG_NR_DRAM_BANKS=2 ++CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y ++CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc00000 ++CONFIG_DEFAULT_DEVICE_TREE="rk3588-nanopi-r6c" ++CONFIG_DM_RESET=y ++CONFIG_ROCKCHIP_RK3588=y ++CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y ++CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y ++CONFIG_SPL_MMC=y ++CONFIG_ROCKCHIP_SPI_IMAGE=y ++CONFIG_SPL_SERIAL=y ++CONFIG_SPL_STACK_R_ADDR=0x600000 ++CONFIG_TARGET_NANOPI_R6C_RK3588=y ++CONFIG_SPL_STACK=0x400000 ++CONFIG_DEBUG_UART_BASE=0xFEB50000 ++CONFIG_DEBUG_UART_CLOCK=24000000 ++CONFIG_SPL_SPI_FLASH_SUPPORT=y ++CONFIG_SPL_SPI=y ++CONFIG_SYS_LOAD_ADDR=0xc00800 ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y ++CONFIG_FIT_VERBOSE=y ++CONFIG_SPL_LOAD_FIT=y ++CONFIG_DEFAULT_FDT_FILE="rockchip/rk3588-nanopi-r6c.dtb" ++# CONFIG_DISPLAY_CPUINFO is not set ++CONFIG_DISPLAY_BOARDINFO_LATE=y ++CONFIG_SPL_MAX_SIZE=0x20000 ++CONFIG_SPL_PAD_TO=0x7f8000 ++CONFIG_SPL_HAS_BSS_LINKER_SECTION=y ++CONFIG_SPL_BSS_START_ADDR=0x4000000 ++CONFIG_SPL_BSS_MAX_SIZE=0x4000 ++# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set ++# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set ++CONFIG_SPL_STACK_R=y ++CONFIG_SPL_SPI_LOAD=y ++CONFIG_SYS_SPI_U_BOOT_OFFS=0x80000 ++CONFIG_SPL_ATF=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_SPI=y ++CONFIG_CMD_USB=y ++# CONFIG_CMD_SETEXPR is not set ++CONFIG_CMD_REGULATOR=y ++# CONFIG_SPL_DOS_PARTITION is not set ++CONFIG_SPL_OF_CONTROL=y ++CONFIG_OF_LIVE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_SPL_REGMAP=y ++CONFIG_SPL_SYSCON=y ++CONFIG_SPL_CLK=y ++CONFIG_ROCKCHIP_GPIO=y ++CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_MISC=y ++CONFIG_SUPPORT_EMMC_RPMB=y ++CONFIG_MMC_DW=y ++CONFIG_MMC_DW_ROCKCHIP=y ++CONFIG_MMC_SDHCI=y ++CONFIG_MMC_SDHCI_SDMA=y ++# CONFIG_SPL_MMC_SDHCI_SDMA is not set ++CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_SPI_FLASH_MACRONIX=y ++CONFIG_ETH_DESIGNWARE=y ++CONFIG_RTL8169=y ++CONFIG_GMAC_ROCKCHIP=y ++CONFIG_PCI=y ++CONFIG_PCIE_DW_ROCKCHIP=y ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y ++CONFIG_SPL_PINCTRL=y ++CONFIG_REGULATOR_PWM=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_PWM_ROCKCHIP=y ++CONFIG_SPL_RAM=y ++CONFIG_BAUDRATE=1500000 ++CONFIG_DEBUG_UART_SHIFT=2 ++CONFIG_ROCKCHIP_SFC=y ++CONFIG_SYSRESET=y ++CONFIG_USB=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_EHCI_GENERIC=y ++CONFIG_USB_OHCI_HCD=y ++CONFIG_USB_OHCI_GENERIC=y ++CONFIG_USB_HOST_ETHER=y ++CONFIG_USB_ETHER_ASIX=y ++CONFIG_USB_ETHER_ASIX88179=y ++CONFIG_USB_ETHER_LAN75XX=y ++CONFIG_USB_ETHER_LAN78XX=y ++CONFIG_USB_ETHER_MCS7830=y ++CONFIG_USB_ETHER_RTL8152=y ++CONFIG_USB_ETHER_SMSC95XX=y ++# CONFIG_BINMAN_FDT is not set ++CONFIG_ERRNO_STR=y +--- /dev/null ++++ b/include/configs/nanopi-r6c-rk3588.h +@@ -0,0 +1,15 @@ ++/* SPDX-License-Identifier: GPL-2.0+ */ ++/* ++ * Copyright (c) 2023 ++ */ ++ ++#ifndef __NANOPI_R6C_RK3588_H ++#define __NANOPI_R6C_RK3588_H ++ ++#define ROCKCHIP_DEVICE_SETTINGS \ ++ "stdout=serial,vidconsole\0" \ ++ "stderr=serial,vidconsole\0" ++ ++#include ++ ++#endif /* __NANOPI_R6C_RK3588_H */ From 7631179718d1f43db5cfad00080cceb26d04f92f Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Mon, 14 Jun 2021 02:47:59 -0400 Subject: [PATCH 18/41] package: boot: uboot-friendlyarm Signed-off-by: Marty Jones --- package/boot/uboot-friendlyarm/Makefile | 61 +++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 package/boot/uboot-friendlyarm/Makefile diff --git a/package/boot/uboot-friendlyarm/Makefile b/package/boot/uboot-friendlyarm/Makefile new file mode 100644 index 00000000000000..6df4734fadf536 --- /dev/null +++ b/package/boot/uboot-friendlyarm/Makefile @@ -0,0 +1,61 @@ +# +# Copyright (C) 2021 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=uboot-friendlyarm +PKG_SOURCE_DATE:=2021-01-05 +PKG_SOURCE_VERSION:=c5a1b04b8f35489fa3b0524996e65fd863cf9d79 +PKG_MIRROR_HASH:=bb19d56d2eeef93bc5021a6c89dc7ec1d1a542358882bd86effb81df45807d04 +PKG_RELEASE:=1 +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/friendlyarm/uboot-rockchip.git + +include $(INCLUDE_DIR)/u-boot.mk +include $(INCLUDE_DIR)/package.mk + + +define U-Boot/Default + BUILD_TARGET:=rockchip + UENV:=default + HIDDEN:=1 +endef + +define U-Boot/nanopi-r4s-rk3399 + BUILD_SUBTARGET:=armv8 + NAME:=NanoPi R4S + BUILD_DEVICES:= \ + friendlyarm_nanopi-r4s + DEPENDS:=+PACKAGE_u-boot-nanopi-r4s-rk3399:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3399_bl31.elf +endef + +UBOOT_TARGETS :=nanopi-r4s-rk3399 + +UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes + +UBOOT_MAKE_FLAGS += \ + BL31=$(STAGING_DIR_IMAGE)/$(ATF) + +define Build/Configure + $(call Build/Configure/U-Boot) + + $(SED) 's#CONFIG_MKIMAGE_DTC_PATH=.*#CONFIG_MKIMAGE_DTC_PATH="$(PKG_BUILD_DIR)/scripts/dtc/dtc"#g' $(PKG_BUILD_DIR)/.config + echo 'CONFIG_IDENT_STRING=" OpenWrt"' >> $(PKG_BUILD_DIR)/.config +endef + +define Build/InstallDev + $(INSTALL_DIR) $(STAGING_DIR_IMAGE) + $(CP) $(PKG_BUILD_DIR)/idbloader.img $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-idbloader.img + $(CP) $(PKG_BUILD_DIR)/u-boot.itb $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-u-boot.itb +endef + +define Package/u-boot/install/default +endef + +$(eval $(call BuildPackage/U-Boot)) From a86160c277d8d2d27ec8a64693754aa02eff6696 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Tue, 12 Oct 2021 11:03:59 -0400 Subject: [PATCH 19/41] rockchip: ROCK Pi 4 switchover ROCK Pi 4B DTS Signed-off-by: Marty Jones --- target/linux/rockchip/image/armv8.mk | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 86e7cec9799f02..d184292e875617 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -45,12 +45,13 @@ define Device/pine64_rockpro64 endef TARGET_DEVICES += pine64_rockpro64 -define Device/radxa_rock-pi-4a +define Device/radxa_rock-pi-4 DEVICE_VENDOR := Radxa - DEVICE_MODEL := ROCK Pi 4A + DEVICE_MODEL := ROCK Pi 4 + DEVICE_DTS := rockchip/rk3399-rock-pi-4b SOC := rk3399 - SUPPORTED_DEVICES := radxa,rockpi4a radxa,rockpi4 + SUPPORTED_DEVICES := radxa,rockpi4b UBOOT_DEVICE_NAME := rock-pi-4-rk3399 IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-img | gzip | append-metadata endef -TARGET_DEVICES += radxa_rock-pi-4a +TARGET_DEVICES += radxa_rock-pi-4 From 11cdbc5ef4ae4256a039b49db97de702bb484b31 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Fri, 15 Apr 2022 17:02:33 -0400 Subject: [PATCH 20/41] package:firmware: add RPi-Distro firmware-nonfree Signed-off-by: Marty Jones --- package/firmware/firmware-nonfree/Makefile | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 package/firmware/firmware-nonfree/Makefile diff --git a/package/firmware/firmware-nonfree/Makefile b/package/firmware/firmware-nonfree/Makefile new file mode 100644 index 00000000000000..9423d596933396 --- /dev/null +++ b/package/firmware/firmware-nonfree/Makefile @@ -0,0 +1,78 @@ +# +# +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=firmware-nonfree +PKG_SOURCE_DATE:=2022-04-11 +PKG_SOURCE_VERSION:=fdaf74c780ca7a29b12d62e5b0d37c38c2321e20 +PKG_MIRROR_HASH:=28aabe16622319df0a6d3a068fc34dcf239174beb9b2b5c73197377da841639c +PKG_RELEASE:=1 +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/RPi-Distro/firmware-nonfree.git + +PKG_MAINTAINER:= + +include $(INCLUDE_DIR)/package.mk + +define Package/firmware-nonfree-default + SECTION:=firmware + CATEGORY:=Firmware + URL:=https://github.com/RPi-Distro +endef + +define Build/Compile + true +endef + +# brcmfmac-firmware-43456-sdio +define Package/brcmfmac-firmware-43456-sdio + $(Package/firmware-nonfree-default) + TITLE:=BCM43456 FullMac SDIO firmware +endef + +define Package/brcmfmac-firmware-43456-sdio/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/debian/config/brcm80211/brcm/brcmfmac43456-sdio.bin \ + $(1)/lib/firmware/brcm/brcmfmac43456-sdio.bin + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/debian/config/brcm80211/brcm/brcmfmac43456-sdio.clm_blob \ + $(1)/lib/firmware/brcm/brcmfmac43456-sdio.clm_blob +endef + +$(eval $(call BuildPackage,brcmfmac-firmware-43456-sdio)) + +# brcmfmac-firmware-43456-sdio-rockpi-4 +define Package/brcmfmac-firmware-43456-sdio-rockpi-4 + $(Package/firmware-nonfree-default) + TITLE:=BCM43456 NVRAM for rockpi-4 +endef + +define Package/brcmfmac-firmware-43456-sdio-rockpi-4/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/debian/config/brcm80211/brcm/brcmfmac43456-sdio.txt \ + $(1)/lib/firmware/brcm/brcmfmac43456-sdio.radxa,rockpi4b.txt +endef + +$(eval $(call BuildPackage,brcmfmac-firmware-43456-sdio-rockpi-4)) + +# brcmfmac-firmware-43456-sdio-rpi-400 +define Package/brcmfmac-firmware-43456-sdio-rpi-400 + $(Package/firmware-nonfree-default) + TITLE:=BCM43456 NVRAM for rpi 400 +endef + +define Package/brcmfmac-firmware-43456-sdio-rpi-400/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/debian/config/brcm80211/brcm/brcmfmac43456-sdio.txt \ + $(1)/lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.txt +endef + +$(eval $(call BuildPackage,brcmfmac-firmware-43456-sdio-rpi-400)) From dc50f9e98a5ef05e9816342e0dab0d357e3f4605 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sun, 31 Jan 2021 14:38:59 -0500 Subject: [PATCH 21/41] rockchip: enable WiFi on Rock pi 4 Signed-off-by: Marty Jones --- target/linux/rockchip/image/armv8.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index d184292e875617..5818cf9947cfef 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -53,5 +53,9 @@ define Device/radxa_rock-pi-4 SUPPORTED_DEVICES := radxa,rockpi4b UBOOT_DEVICE_NAME := rock-pi-4-rk3399 IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := \ + brcmfmac-firmware-43456-sdio \ + brcmfmac-firmware-43456-sdio-rockpi-4 \ + kmod-brcmfmac wpad-openssl endef TARGET_DEVICES += radxa_rock-pi-4 From 665717ee64597f68b82874721816013d89d9a27c Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Thu, 23 Dec 2021 20:53:14 -0500 Subject: [PATCH 22/41] rockchip:rk3328: add support for FriendlyARM NanoPi NEO3 This patch adds support for FriendlyARM NanoPi NEO3 Specification ------------- Soc: RockChip RK3328 RAM: 1GB/2GB DDR4 LAN: 10/100/1000M Ethernet with unique MAC USB Host: 1x USB3.0 Type A and 2x USB2.0 on 2.54mm pin header MicroSD: x 1 for system boot and storage LED: Power LED x 1, System LED x 1 Key: User Button x 1 Fan: 2 Pin JST ZH 1.5mm Connector for 5V Fan GPIO: 26 pin-header, include I2C, UART, SPI, I2S, GPIO Power: 5V/1A, via Type-C or GPIO Signed-off-by: Marty Jones --- .../linux/rockchip/armv8/base-files/etc/board.d/01_leds | 3 +++ target/linux/rockchip/image/armv8.mk | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index b10c43ba6052ec..845c7b326d1ee0 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -8,6 +8,9 @@ boardname="${board##*,}" board_config_update case $board in +friendlyarm,nanopi-neo3) + ucidef_set_led_netdev "stat" "STAT" "$boardname:green:stat" "eth0" + ;; friendlyarm,nanopi-r2s) ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1" diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 5818cf9947cfef..a3c927bb36551c 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -5,6 +5,15 @@ # FIT will be loaded at 0x02080000. Leave 16M for that, align it to 2M and load the kernel after it. KERNEL_LOADADDR := 0x03200000 +define Device/friendlyarm_nanopi-neo3 + DEVICE_VENDOR := FriendlyARM + DEVICE_MODEL := NanoPi NEO3 + SOC := rk3328 + UBOOT_DEVICE_NAME := nanopi-r2s-rk3328 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r2s | pine64-img | gzip | append-metadata +endef +TARGET_DEVICES += friendlyarm_nanopi-neo3 + define Device/firefly_roc-rk3328-cc DEVICE_VENDOR := Firefly DEVICE_MODEL := ROC-RK3328-CC From 96df80a4a7fba4d70014637e5abb6003e0e4adf2 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Mon, 9 May 2022 23:52:50 -0400 Subject: [PATCH 23/41] rockchip: add support for Pine64 QUARTZ64 RK3566 Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 3 +++ .../rockchip/armv8/base-files/etc/board.d/02_network | 5 +++++ target/linux/rockchip/image/armv8.mk | 10 ++++++++++ target/linux/rockchip/image/quartz64-a.bootscript | 8 ++++++++ 4 files changed, 26 insertions(+) create mode 100644 target/linux/rockchip/image/quartz64-a.bootscript diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index 845c7b326d1ee0..7c28ace79d4912 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -19,6 +19,9 @@ friendlyarm,nanopi-r4s) ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1" ;; +pine64,quartz64-a) + ucidef_set_led_netdev "lan" "LAN" "work-led" "br-lan" + ;; esac board_config_flush diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 816045a480318b..d15d9708ca642f 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -11,6 +11,11 @@ rockchip_setup_interfaces() friendlyarm,nanopi-r4s) ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; + pine64,rockpro64|\ + pine64,rockpro64-v2.1|\ + pine64,quartz64-a) + ucidef_set_interfaces_lan_wan 'eth0' 'eth1' + ;; *) ucidef_set_interface_lan 'eth0' ;; diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index a3c927bb36551c..c0f8420956d279 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -54,6 +54,16 @@ define Device/pine64_rockpro64 endef TARGET_DEVICES += pine64_rockpro64 +define Device/pine64_quartz64-a + DEVICE_VENDOR := Pine64 + DEVICE_MODEL := QUARTZ64 + SOC := rk3566 + SUPPORTED_DEVICES := pine64,quartz64-a + UBOOT_DEVICE_NAME := quartz64-a-rk3566 + IMAGE/sysupgrade.img.gz := boot-common | boot-script quartz64-a | pine64-img | gzip | append-metadata +endef +TARGET_DEVICES += pine64_quartz64-a + define Device/radxa_rock-pi-4 DEVICE_VENDOR := Radxa DEVICE_MODEL := ROCK Pi 4 diff --git a/target/linux/rockchip/image/quartz64-a.bootscript b/target/linux/rockchip/image/quartz64-a.bootscript new file mode 100644 index 00000000000000..6deafd70c16dab --- /dev/null +++ b/target/linux/rockchip/image/quartz64-a.bootscript @@ -0,0 +1,8 @@ +part uuid mmc ${devnum}:2 uuid + +setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xfe660000 root=PARTUUID=${uuid} rw rootwait" + + +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img + +bootm ${kernel_addr_r} From 518efb66f33ba781514868ffcffdc511ce61e76c Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Tue, 21 Jun 2022 13:32:29 -0400 Subject: [PATCH 24/41] rockchip: add Banana Pi BPI-R2 Pro support Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/02_network | 3 +++ target/linux/rockchip/image/armv8.mk | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index d15d9708ca642f..8d9ce9285a5e84 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -16,6 +16,9 @@ rockchip_setup_interfaces() pine64,quartz64-a) ucidef_set_interfaces_lan_wan 'eth0' 'eth1' ;; + rockchip,rk3568-bpi-r2pro) + ucidef_set_interfaces_lan_wan 'lan1 lan2 lan3 lan4' 'cpu' + ;; *) ucidef_set_interface_lan 'eth0' ;; diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index c0f8420956d279..0805d4d4fac5e2 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -78,3 +78,13 @@ define Device/radxa_rock-pi-4 kmod-brcmfmac wpad-openssl endef TARGET_DEVICES += radxa_rock-pi-4 + +define Device/rockchip_bpi-r2-pro + DEVICE_VENDOR := Rockchip + DEVICE_MODEL := Bananapi-R2 Pro + SOC := rk3568 + SUPPORTED_DEVICES := rockchip,rk3568-bpi-r2pro + UBOOT_DEVICE_NAME := bpi-r2-pro-rk3568 + IMAGE/sysupgrade.img.gz := boot-common | boot-script quartz64-a | pine64-img | gzip | append-metadata +endef +TARGET_DEVICES += rockchip_bpi-r2-pro From 88dd79e34eb9587124bbcb2bbd6b1ca89dc33634 Mon Sep 17 00:00:00 2001 From: Malcolm Morris-Pence Date: Thu, 4 Aug 2022 16:01:43 -0700 Subject: [PATCH 25/41] Update r2pro network Signed-off-by: Marty Jones --- target/linux/rockchip/armv8/base-files/etc/board.d/02_network | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 8d9ce9285a5e84..31568420815020 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -17,7 +17,7 @@ rockchip_setup_interfaces() ucidef_set_interfaces_lan_wan 'eth0' 'eth1' ;; rockchip,rk3568-bpi-r2pro) - ucidef_set_interfaces_lan_wan 'lan1 lan2 lan3 lan4' 'cpu' + ucidef_set_interfaces_lan_wan 'lan0 lan1 lan2 lan3' 'eth0' ;; *) ucidef_set_interface_lan 'eth0' From 4fadbe260aa25de4fc4c3dc5b90231df14158c14 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Tue, 21 Jun 2022 17:27:17 -0400 Subject: [PATCH 26/41] rockchip: add Radxa ROCK3 Model A board. Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 3 +++ .../rockchip/armv8/base-files/etc/board.d/02_network | 3 ++- target/linux/rockchip/image/armv8.mk | 10 ++++++++++ target/linux/rockchip/image/rock-3a.bootscript | 8 ++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 target/linux/rockchip/image/rock-3a.bootscript diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index 7c28ace79d4912..3bacafd5e0945d 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -22,6 +22,9 @@ friendlyarm,nanopi-r4s) pine64,quartz64-a) ucidef_set_led_netdev "lan" "LAN" "work-led" "br-lan" ;; +radxa,rock3a) + ucidef_set_led_netdev "lan" "LAN" "user-led" "br-lan" + ;; esac board_config_flush diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 31568420815020..b822232e402751 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -13,7 +13,8 @@ rockchip_setup_interfaces() ;; pine64,rockpro64|\ pine64,rockpro64-v2.1|\ - pine64,quartz64-a) + pine64,quartz64-a|\ + radxa,rock3a) ucidef_set_interfaces_lan_wan 'eth0' 'eth1' ;; rockchip,rk3568-bpi-r2pro) diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 0805d4d4fac5e2..b91c1c8a6d1412 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -64,6 +64,16 @@ define Device/pine64_quartz64-a endef TARGET_DEVICES += pine64_quartz64-a +define Device/radxa_rock-3a + DEVICE_VENDOR := Radxa + DEVICE_MODEL := ROCK3 Model A + SOC := rk3568 + SUPPORTED_DEVICES := radxa,rock3a + UBOOT_DEVICE_NAME := rock-3a-rk3568 + IMAGE/sysupgrade.img.gz := boot-common | boot-script rock-3a | pine64-img | gzip | append-metadata +endef +TARGET_DEVICES += radxa_rock-3a + define Device/radxa_rock-pi-4 DEVICE_VENDOR := Radxa DEVICE_MODEL := ROCK Pi 4 diff --git a/target/linux/rockchip/image/rock-3a.bootscript b/target/linux/rockchip/image/rock-3a.bootscript new file mode 100644 index 00000000000000..6deafd70c16dab --- /dev/null +++ b/target/linux/rockchip/image/rock-3a.bootscript @@ -0,0 +1,8 @@ +part uuid mmc ${devnum}:2 uuid + +setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xfe660000 root=PARTUUID=${uuid} rw rootwait" + + +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img + +bootm ${kernel_addr_r} From f8fa10eb065739566257d38e478b232b12b03e4e Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sun, 31 Jul 2022 02:49:49 -0400 Subject: [PATCH 27/41] rockchip: add FriendlyElec NanoPi R5S Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 5 +++++ .../rockchip/armv8/base-files/etc/board.d/02_network | 3 +++ .../base-files/etc/hotplug.d/net/40-net-smp-affinity | 5 +++++ target/linux/rockchip/image/armv8.mk | 10 ++++++++++ target/linux/rockchip/image/nanopi-r5s.bootscript | 8 ++++++++ 5 files changed, 31 insertions(+) create mode 100644 target/linux/rockchip/image/nanopi-r5s.bootscript diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index 3bacafd5e0945d..e31e56200f7871 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -19,6 +19,11 @@ friendlyarm,nanopi-r4s) ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1" ;; +friendlyelec,nanopi-r5s) + ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" + ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth1" + ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth2" + ;; pine64,quartz64-a) ucidef_set_led_netdev "lan" "LAN" "work-led" "br-lan" ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index b822232e402751..6b8ab50e03d3e7 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -11,6 +11,9 @@ rockchip_setup_interfaces() friendlyarm,nanopi-r4s) ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; + friendlyelec,nanopi-r5s) + ucidef_set_interfaces_lan_wan 'eth1 eth2' 'eth0' + ;; pine64,rockpro64|\ pine64,rockpro64-v2.1|\ pine64,quartz64-a|\ diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index d8385b3c693579..7b78c899a016a9 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -37,5 +37,10 @@ friendlyarm,nanopi-r4s) set_interface_core 10 "eth0" set_interface_core 20 "eth1" ;; +friendlyelec,nanopi-r5s) + set_interface_core 2 "eth0" + set_interface_core 4 "eth1" + set_interface_core 8 "eth2" + ;; esac diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index b91c1c8a6d1412..140511f07823d0 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -45,6 +45,16 @@ define Device/friendlyarm_nanopi-r4s endef TARGET_DEVICES += friendlyarm_nanopi-r4s +define Device/friendlyelec_nanopi-r5s + DEVICE_VENDOR := Friendlyelec + DEVICE_MODEL := NanoPi R5S + SOC := rk3568 + UBOOT_DEVICE_NAME := nanopi-r5s-rk3568 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r5s | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-r8169 +endef +TARGET_DEVICES += friendlyelec_nanopi-r5s + define Device/pine64_rockpro64 DEVICE_VENDOR := Pine64 DEVICE_MODEL := RockPro64 diff --git a/target/linux/rockchip/image/nanopi-r5s.bootscript b/target/linux/rockchip/image/nanopi-r5s.bootscript new file mode 100644 index 00000000000000..6deafd70c16dab --- /dev/null +++ b/target/linux/rockchip/image/nanopi-r5s.bootscript @@ -0,0 +1,8 @@ +part uuid mmc ${devnum}:2 uuid + +setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xfe660000 root=PARTUUID=${uuid} rw rootwait" + + +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img + +bootm ${kernel_addr_r} From f1b52840a47cafe3f0b1bd77d5c4f43ff6d38ad8 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sun, 21 Aug 2022 04:34:20 -0400 Subject: [PATCH 28/41] rockchip: bpi r2 pro enable board leds Signed-off-by: Marty Jones --- target/linux/rockchip/armv8/base-files/etc/board.d/01_leds | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index e31e56200f7871..a0e25079be9a9c 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -30,6 +30,10 @@ pine64,quartz64-a) radxa,rock3a) ucidef_set_led_netdev "lan" "LAN" "user-led" "br-lan" ;; +rockchip,rk3568-bpi-r2pro) + ucidef_set_led_netdev "wan" "WAN" "blue:status" "eth0" + ucidef_set_led_netdev "lan" "LAN" "green:power" "eth1" + ;; esac board_config_flush From cbcdd5ee7fa905bb2a7653520a2e949c07543caf Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sat, 10 Sep 2022 11:45:10 -0400 Subject: [PATCH 29/41] rockchip: generate MAC address for bpi r2 pro nanopi r5s Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/02_network | 12 ++++++++++++ .../base-files/etc/hotplug.d/net/40-net-smp-affinity | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 6b8ab50e03d3e7..7260c994e106bb 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -29,6 +29,13 @@ rockchip_setup_interfaces() esac } +bpi_r2pro_generate_mac() +{ + local emmc_hash=$(sha256sum /sys/class/block/mmcblk*/device/cid) + local mac_base=$(macaddr_canonicalize "$(echo "${emmc_hash}" | dd bs=1 count=12 2>/dev/null)") + echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")" +} + nanopi_r4s_get_mac() { local interface=$1 @@ -66,6 +73,11 @@ rockchip_setup_macs() wan_mac=$(nanopi_r4s_get_mac wan) lan_mac=$(nanopi_r4s_get_mac lan) ;; + friendlyelec,nanopi-r5s|\ + rockchip,rk3568-bpi-r2pro) + wan_mac=$(bpi_r2pro_generate_mac) + lan_mac=$(macaddr_add "$wan_mac" 1) + ;; esac [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 7b78c899a016a9..a9f5b6fa8d1064 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -42,5 +42,9 @@ friendlyelec,nanopi-r5s) set_interface_core 4 "eth1" set_interface_core 8 "eth2" ;; +rockchip,rk3568-bpi-r2pro) + set_interface_core 1 "eth0" + set_interface_core 3 "eth1" + ;; esac From 1577115feed0dfd262aabeb8b8512c3b959f3460 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Wed, 19 Apr 2023 20:38:06 -0400 Subject: [PATCH 30/41] rockchip: add nanopi r5c Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 5 +++++ .../rockchip/armv8/base-files/etc/board.d/02_network | 4 ++++ .../base-files/etc/hotplug.d/net/40-net-smp-affinity | 4 ++++ target/linux/rockchip/image/armv8.mk | 10 ++++++++++ 4 files changed, 23 insertions(+) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index a0e25079be9a9c..dd6836435b2d25 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -19,6 +19,11 @@ friendlyarm,nanopi-r4s) ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1" ;; +friendlyelec,nanopi-r5c) + ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1" + ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0" + ucidef_set_led_netdev "wlan" "WL" "green:wlan" "phy0-ap0" + ;; friendlyelec,nanopi-r5s) ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth1" diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 7260c994e106bb..b88eeaf0268cc4 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -11,6 +11,9 @@ rockchip_setup_interfaces() friendlyarm,nanopi-r4s) ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; + friendlyelec,nanopi-r5c) + ucidef_set_interfaces_lan_wan 'eth0' 'eth1' + ;; friendlyelec,nanopi-r5s) ucidef_set_interfaces_lan_wan 'eth1 eth2' 'eth0' ;; @@ -73,6 +76,7 @@ rockchip_setup_macs() wan_mac=$(nanopi_r4s_get_mac wan) lan_mac=$(nanopi_r4s_get_mac lan) ;; + friendlyelec,nanopi-r5c|\ friendlyelec,nanopi-r5s|\ rockchip,rk3568-bpi-r2pro) wan_mac=$(bpi_r2pro_generate_mac) diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index a9f5b6fa8d1064..08736c99b0a0e9 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -37,6 +37,10 @@ friendlyarm,nanopi-r4s) set_interface_core 10 "eth0" set_interface_core 20 "eth1" ;; +friendlyelec,nanopi-r5c) + set_interface_core 2 "eth0" + set_interface_core 4 "eth1" + ;; friendlyelec,nanopi-r5s) set_interface_core 2 "eth0" set_interface_core 4 "eth1" diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 140511f07823d0..e7fdeb0ed3749a 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -45,6 +45,16 @@ define Device/friendlyarm_nanopi-r4s endef TARGET_DEVICES += friendlyarm_nanopi-r4s +define Device/friendlyelec_nanopi-r5c + DEVICE_VENDOR := Friendlyelec + DEVICE_MODEL := NanoPi R5C + SOC := rk3568 + UBOOT_DEVICE_NAME := nanopi-r5c-rk3568 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r5s | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-r8169 +endef +TARGET_DEVICES += friendlyelec_nanopi-r5c + define Device/friendlyelec_nanopi-r5s DEVICE_VENDOR := Friendlyelec DEVICE_MODEL := NanoPi R5S From 7f63522f7b6965ad7040eb1d10ddb108bafd00b8 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Tue, 14 Nov 2023 00:41:15 -0500 Subject: [PATCH 31/41] mac80211: add realtek rtw89 driver Signed-off-by: Marty Jones --- package/kernel/mac80211/realtek.mk | 45 +++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/package/kernel/mac80211/realtek.mk b/package/kernel/mac80211/realtek.mk index 28ea6a65718bba..ba562e708d2f4a 100644 --- a/package/kernel/mac80211/realtek.mk +++ b/package/kernel/mac80211/realtek.mk @@ -3,7 +3,7 @@ PKG_DRIVERS += \ rtl8192ce rtl8192se rtl8192de rtl8192cu rtl8723-common rtl8723be rtl8723bs rtl8821ae \ rtl8xxxu rtw88 rtw88-pci rtw88-usb rtw88-8821c rtw88-8822b rtw88-8822c \ rtw88-8723d rtw88-8821ce rtw88-8821cu rtw88-8822be rtw88-8822bu \ - rtw88-8822ce rtw88-8822cu rtw88-8723de + rtw88-8822ce rtw88-8822cu rtw88-8723de rtw89 config-$(call config_package,rtlwifi) += RTL_CARDS RTLWIFI config-$(call config_package,rtlwifi-pci) += RTLWIFI_PCI @@ -43,6 +43,12 @@ config-$(call config_package,rtw88-8723de) += RTW88_8723DE config-$(CONFIG_PACKAGE_RTW88_DEBUG) += RTW88_DEBUG config-$(CONFIG_PACKAGE_RTW88_DEBUGFS) += RTW88_DEBUGFS +config-$(call config_package,rtw89) += RTW89 RTW89_CORE RTW89_PCI +config-y += RTW89_8852AE RTW89_8852BE RTW89_8852CE +config-$(CONFIG_PACKAGE_RTW89_DEBUG) += RTW89_DEBUG +config-$(CONFIG_PACKAGE_RTW89_DEBUGFS) += RTW89_DEBUGFS +config-$(CONFIG_PACKAGE_RTW89_DEBUGMSG) += RTW89_DEBUGMSG + define KernelPackage/rtlwifi/config config PACKAGE_RTLWIFI_DEBUG bool "Realtek wireless debugging" @@ -331,3 +337,40 @@ define KernelPackage/rtl8723bs/description on the 1st gen Intel Compute Stick, the CHIP and many other Intel Atom and ARM based devices. endef + +define KernelPackage/rtw89/config + config PACKAGE_RTW89_DEBUG + bool "Realtek wireless debugging (rtw89)" + depends on PACKAGE_kmod-rtw89 + help + Enable debugging output for rtw89 devices + + config PACKAGE_RTW89_DEBUGFS + bool "Enable rtw89 debugfs support" + select KERNEL_DEBUG_FS + depends on PACKAGE_kmod-rtw89 + help + Select this to see extensive information about + the internal state of rtw89 in debugfs. + config PACKAGE_RTW89_DEBUGMSG + bool "Realtek rtw89 debug message support" + depends on PACKAGE_kmod-rtw89 + help + Enable debug message support +endef + +define KernelPackage/rtw89 + $(call KernelPackage/mac80211/Default) + TITLE:=Realtek RTL8852AE/BE/CE + DEPENDS+= @(PCI_SUPPORT) +kmod-mac80211 +@DRIVER_11AX_SUPPORT +rtl8851be-firmware +rtl8852ae-firmware +rtl8852be-firmware +rtl8852ce-firmware + FILES:=\ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_8852a.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_8852ae.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_8852b.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_8852be.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_8852c.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_8852ce.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_core.ko \ + $(PKG_BUILD_DIR)/drivers/net/wireless/realtek/rtw89/rtw89_pci.ko + AUTOLOAD:=$(call AutoProbe,rtw89_8852ae rtw89_8852be rtw89_8852ce) +endef From e3e08a6fd637bb1411a2852a7dd268a666e4358c Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Thu, 27 Apr 2023 21:08:38 -0400 Subject: [PATCH 32/41] rockchip: add FriendlyElec NanoPi R6C Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 5 +++++ .../rockchip/armv8/base-files/etc/board.d/02_network | 6 +++++- .../base-files/etc/hotplug.d/net/40-net-smp-affinity | 4 ++++ target/linux/rockchip/image/armv8.mk | 10 ++++++++++ target/linux/rockchip/image/nanopi-r6c.bootscript | 8 ++++++++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 target/linux/rockchip/image/nanopi-r6c.bootscript diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index dd6836435b2d25..3e08f6161772cf 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -29,6 +29,11 @@ friendlyelec,nanopi-r5s) ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth1" ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth2" ;; +friendlyelec,nanopi-r6c) + ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" + ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1" + ucidef_set_led_netdev "led1" "LED1" "green:led1" "eth2" + ;; pine64,quartz64-a) ucidef_set_led_netdev "lan" "LAN" "work-led" "br-lan" ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index b88eeaf0268cc4..6f72b23b34ea0c 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -17,6 +17,9 @@ rockchip_setup_interfaces() friendlyelec,nanopi-r5s) ucidef_set_interfaces_lan_wan 'eth1 eth2' 'eth0' ;; + friendlyelec,nanopi-r6c) + ucidef_set_interfaces_lan_wan 'eth1' 'eth0' + ;; pine64,rockpro64|\ pine64,rockpro64-v2.1|\ pine64,quartz64-a|\ @@ -51,7 +54,7 @@ nanopi_r4s_get_mac() address=$(macaddr_setbit_la "$address") fi else - address=$(macaddr_generate_from_mmc_cid mmcblk1) + address=$(macaddr_generate_from_mmc_cid mmcblk*) if [ "$interface" = "lan" ]; then address=$(macaddr_add "$address" 1) fi @@ -72,6 +75,7 @@ rockchip_setup_macs() wan_mac=$(macaddr_generate_from_mmc_cid mmcblk0) lan_mac=$(macaddr_add "$wan_mac" 1) ;; + friendlyelec,nanopi-r6c|\ friendlyarm,nanopi-r4s) wan_mac=$(nanopi_r4s_get_mac wan) lan_mac=$(nanopi_r4s_get_mac lan) diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 08736c99b0a0e9..1d1cd13761dfde 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -46,6 +46,10 @@ friendlyelec,nanopi-r5s) set_interface_core 4 "eth1" set_interface_core 8 "eth2" ;; +friendlyelec,nanopi-r6c) + set_interface_core 2 "eth0" + set_interface_core 4 "eth1" + ;; rockchip,rk3568-bpi-r2pro) set_interface_core 1 "eth0" set_interface_core 3 "eth1" diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index e7fdeb0ed3749a..93ac90dafe19cd 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -65,6 +65,16 @@ define Device/friendlyelec_nanopi-r5s endef TARGET_DEVICES += friendlyelec_nanopi-r5s +define Device/friendlyelec_nanopi-r6c + DEVICE_VENDOR := Friendlyelec + DEVICE_MODEL := NanoPi R6C + SOC := rk3588s + UBOOT_DEVICE_NAME := nanopi-r6c-rk3588 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r6c | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-r8169 +endef +TARGET_DEVICES += friendlyelec_nanopi-r6c + define Device/pine64_rockpro64 DEVICE_VENDOR := Pine64 DEVICE_MODEL := RockPro64 diff --git a/target/linux/rockchip/image/nanopi-r6c.bootscript b/target/linux/rockchip/image/nanopi-r6c.bootscript new file mode 100644 index 00000000000000..17d9b680596eaf --- /dev/null +++ b/target/linux/rockchip/image/nanopi-r6c.bootscript @@ -0,0 +1,8 @@ +part uuid mmc ${devnum}:2 uuid + +setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xfeb50000 root=PARTUUID=${uuid} rw rootwait" + + +load mmc ${devnum}:1 ${kernel_addr_r} kernel.img + +bootm ${kernel_addr_r} From 213086d0883b9ad7584174a26cd7cc7b771c74f6 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Thu, 27 Apr 2023 22:08:42 -0400 Subject: [PATCH 33/41] rockchip: add FriendlyElec NanoPi R6S Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 5 +++++ .../rockchip/armv8/base-files/etc/board.d/02_network | 4 ++++ .../base-files/etc/hotplug.d/net/40-net-smp-affinity | 5 +++++ target/linux/rockchip/image/armv8.mk | 10 ++++++++++ 4 files changed, 24 insertions(+) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index 3e08f6161772cf..4abcef48d823ba 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -34,6 +34,11 @@ friendlyelec,nanopi-r6c) ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1" ucidef_set_led_netdev "led1" "LED1" "green:led1" "eth2" ;; +friendlyelec,nanopi-r6s) + ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth2" + ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0" + ucidef_set_led_netdev "lan2" "LAN2" "green:lan1" "eth1" + ;; pine64,quartz64-a) ucidef_set_led_netdev "lan" "LAN" "work-led" "br-lan" ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 6f72b23b34ea0c..fdaba1a15ba00d 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -20,6 +20,9 @@ rockchip_setup_interfaces() friendlyelec,nanopi-r6c) ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; + friendlyelec,nanopi-r6s) + ucidef_set_interfaces_lan_wan 'eth1 eth0' 'eth2' + ;; pine64,rockpro64|\ pine64,rockpro64-v2.1|\ pine64,quartz64-a|\ @@ -76,6 +79,7 @@ rockchip_setup_macs() lan_mac=$(macaddr_add "$wan_mac" 1) ;; friendlyelec,nanopi-r6c|\ + friendlyelec,nanopi-r6s|\ friendlyarm,nanopi-r4s) wan_mac=$(nanopi_r4s_get_mac wan) lan_mac=$(nanopi_r4s_get_mac lan) diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 1d1cd13761dfde..891cbf6d5d2b65 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -50,6 +50,11 @@ friendlyelec,nanopi-r6c) set_interface_core 2 "eth0" set_interface_core 4 "eth1" ;; +friendlyelec,nanopi-r6s) + set_interface_core 1 "eth0" + set_interface_core 6 "eth1" + set_interface_core 8 "eth2" + ;; rockchip,rk3568-bpi-r2pro) set_interface_core 1 "eth0" set_interface_core 3 "eth1" diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 93ac90dafe19cd..6a49307389ca0d 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -75,6 +75,16 @@ define Device/friendlyelec_nanopi-r6c endef TARGET_DEVICES += friendlyelec_nanopi-r6c +define Device/friendlyelec_nanopi-r6s + DEVICE_VENDOR := Friendlyelec + DEVICE_MODEL := NanoPi R6S + SOC := rk3588s + UBOOT_DEVICE_NAME := nanopi-r6s-rk3588 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r6c | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-r8169 +endef +TARGET_DEVICES += friendlyelec_nanopi-r6s + define Device/pine64_rockpro64 DEVICE_VENDOR := Pine64 DEVICE_MODEL := RockPro64 From 9b66a23fb2bc8b5d4f93bf67761135c0c76f6fd2 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Tue, 13 Jun 2023 02:51:51 -0400 Subject: [PATCH 34/41] rockchip: add FriendlyElec NanoPi R6C Plus Signed-off-by: Marty Jones --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 5 +++++ .../rockchip/armv8/base-files/etc/board.d/02_network | 4 ++++ .../base-files/etc/hotplug.d/net/40-net-smp-affinity | 6 ++++++ target/linux/rockchip/image/armv8.mk | 10 ++++++++++ 4 files changed, 25 insertions(+) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index 4abcef48d823ba..45fc1577ebb7e8 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -39,6 +39,11 @@ friendlyelec,nanopi-r6s) ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0" ucidef_set_led_netdev "lan2" "LAN2" "green:lan1" "eth1" ;; +friendlyelec,nanopi-r6c-plus) + ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth2" + ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0" + ucidef_set_led_netdev "lan2" "LAN2" "green:lan1" "eth1" + ;; pine64,quartz64-a) ucidef_set_led_netdev "lan" "LAN" "work-led" "br-lan" ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index fdaba1a15ba00d..ad45ded9a78b05 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -23,6 +23,9 @@ rockchip_setup_interfaces() friendlyelec,nanopi-r6s) ucidef_set_interfaces_lan_wan 'eth1 eth0' 'eth2' ;; + friendlyelec,nanopi-r6c-plus) + ucidef_set_interfaces_lan_wan 'eth0 eth1 eth3' 'eth2' + ;; pine64,rockpro64|\ pine64,rockpro64-v2.1|\ pine64,quartz64-a|\ @@ -80,6 +83,7 @@ rockchip_setup_macs() ;; friendlyelec,nanopi-r6c|\ friendlyelec,nanopi-r6s|\ + friendlyelec,nanopi-r6c-plus|\ friendlyarm,nanopi-r4s) wan_mac=$(nanopi_r4s_get_mac wan) lan_mac=$(nanopi_r4s_get_mac lan) diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 891cbf6d5d2b65..9cd5c2981049cf 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -55,6 +55,12 @@ friendlyelec,nanopi-r6s) set_interface_core 6 "eth1" set_interface_core 8 "eth2" ;; +friendlyelec,nanopi-r6c-plus) + set_interface_core 1 "eth0" + set_interface_core 4 "eth1" + set_interface_core 6 "eth2" + set_interface_core 8 "eth3" + ;; rockchip,rk3568-bpi-r2pro) set_interface_core 1 "eth0" set_interface_core 3 "eth1" diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 6a49307389ca0d..31d10f5fa878f2 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -75,6 +75,16 @@ define Device/friendlyelec_nanopi-r6c endef TARGET_DEVICES += friendlyelec_nanopi-r6c +define Device/friendlyelec_nanopi-r6c-plus + DEVICE_VENDOR := Friendlyelec + DEVICE_MODEL := NanoPi R6C Plus + SOC := rk3588s + UBOOT_DEVICE_NAME := nanopi-r6c-rk3588 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r6c | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-r8169 +endef +TARGET_DEVICES += friendlyelec_nanopi-r6c-plus + define Device/friendlyelec_nanopi-r6s DEVICE_VENDOR := Friendlyelec DEVICE_MODEL := NanoPi R6S From 957ef49ba7285f779af8f3765ef14086df24af20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=20Marjanovi=C4=87?= Date: Tue, 27 Jun 2023 13:52:51 -0700 Subject: [PATCH 35/41] rockchip: Fix port/LED order on NanoPi R6S MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit fixes the ethernet device and LED setup on the FriendlyElec NanoPi R6S to match the physical layout/labels on the case of the device. The actual case-label, ethernet device, and underlying NIC device, from left-to-right on back of case: * "LAN2" - eth0 - rk_gmac-dwmac fe1c0000.ethernet * "LAN1" - eth2 - r8169 0004:41:00.0 * "WAN" - eth1 - r8169 0003:31:00.0 The actual case-label and LED sys-name, from left-to-right on the front of case: * "WAN" - "green:wan" * "1" - "green:lan" * "2" - "green:lan1" (This is the layout on my R6S box; I assume it is the same for all boxes, but I have no idea how "ethN" device names are assigned to the underlying NIC hardware.) I don't think any change to the smp-affinity is required, since this commit swaps the use of the eth1 and eth2 devices, which were already both assigned to the "big" cores (as I understand it). Signed-off-by: Matt Marjanović Signed-off-by: Marty Jones --- target/linux/rockchip/armv8/base-files/etc/board.d/01_leds | 6 +++--- .../linux/rockchip/armv8/base-files/etc/board.d/02_network | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index 45fc1577ebb7e8..f1fd935e91af3f 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -35,9 +35,9 @@ friendlyelec,nanopi-r6c) ucidef_set_led_netdev "led1" "LED1" "green:led1" "eth2" ;; friendlyelec,nanopi-r6s) - ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth2" - ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0" - ucidef_set_led_netdev "lan2" "LAN2" "green:lan1" "eth1" + ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1" + ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth2" + ucidef_set_led_netdev "lan2" "LAN2" "green:lan1" "eth0" ;; friendlyelec,nanopi-r6c-plus) ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth2" diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index ad45ded9a78b05..2cf141aad05ad5 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -21,7 +21,7 @@ rockchip_setup_interfaces() ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; friendlyelec,nanopi-r6s) - ucidef_set_interfaces_lan_wan 'eth1 eth0' 'eth2' + ucidef_set_interfaces_lan_wan 'eth2 eth0' 'eth1' ;; friendlyelec,nanopi-r6c-plus) ucidef_set_interfaces_lan_wan 'eth0 eth1 eth3' 'eth2' From 401ae84d53cdfc22daca83c601d81a0e5d4fc23b Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Mon, 16 Oct 2023 10:29:55 -0400 Subject: [PATCH 36/41] rockchip: add orange pi 5 plus Signed-off-by: Marty Jones --- .../armv8/base-files/etc/board.d/02_network | 8 +- .../etc/hotplug.d/net/40-net-smp-affinity | 4 + .../dts/rockchip/rk3588-orangepi-5-plus.dts | 983 ++++++++++++++++++ target/linux/rockchip/image/armv8.mk | 11 + 4 files changed, 1004 insertions(+), 2 deletions(-) create mode 100644 target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 2cf141aad05ad5..bc59bae66248af 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -32,11 +32,14 @@ rockchip_setup_interfaces() radxa,rock3a) ucidef_set_interfaces_lan_wan 'eth0' 'eth1' ;; + rockchip,rk3588-orangepi-5-plus) + ucidef_set_interfaces_lan_wan 'eth0' 'eth1' + ;; rockchip,rk3568-bpi-r2pro) ucidef_set_interfaces_lan_wan 'lan0 lan1 lan2 lan3' 'eth0' ;; *) - ucidef_set_interface_lan 'eth0' + ucidef_set_interfaces_lan_wan 'eth0' 'eth1' ;; esac } @@ -84,7 +87,8 @@ rockchip_setup_macs() friendlyelec,nanopi-r6c|\ friendlyelec,nanopi-r6s|\ friendlyelec,nanopi-r6c-plus|\ - friendlyarm,nanopi-r4s) + friendlyarm,nanopi-r4s|\ + rockchip,rk3588-orangepi-5-plus) wan_mac=$(nanopi_r4s_get_mac wan) lan_mac=$(nanopi_r4s_get_mac lan) ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 9cd5c2981049cf..8d704109dcbb80 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -65,5 +65,9 @@ rockchip,rk3568-bpi-r2pro) set_interface_core 1 "eth0" set_interface_core 3 "eth1" ;; +rockchip,rk3588-orangepi-5-plus) + set_interface_core 20 "eth0" + set_interface_core 40 "eth1" + ;; esac diff --git a/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts new file mode 100644 index 00000000000000..66ee2bb4620f69 --- /dev/null +++ b/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts @@ -0,0 +1,983 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include +#include +#include +#include +#include "rk3588.dtsi" + +/ { + model = "RK3588 OPi 5 Plus"; + compatible = "rockchip,rk3588-orangepi-5-plus", "rockchip,rk3588"; + + aliases { + mmc0 = &sdmmc; + mmc1 = &sdhci; + serial2 = &uart2; + }; + + chosen { + stdout-path = "serial2:1500000n8"; + }; + + gpio_leds: leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 =<&leds_rgb>; + status = "okay"; + + blue_led@1 { + gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>; + label = "blue_led"; + linux,default-trigger = "heartbeat"; + linux,default-trigger-delay-ms = <0>; + }; + + green_led@2 { + gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>; + label = "green_led"; + linux,default-trigger = "heartbeat"; + linux,default-trigger-delay-ms = <0>; + }; + }; + + fan: pwm-fan { + compatible = "pwm-fan"; + cooling-levels = <0 70 75 80 100>; + fan-supply = <&vcc5v0_sys>; + pwms = <&pwm3 0 50000 0>; + #cooling-cells = <2>; + }; + + vcc12v_dcin: vcc12v-dcin-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc12v_dcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <12000000>; + regulator-max-microvolt = <12000000>; + }; + + vcc5v0_sys: vcc5v0-sys-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc12v_dcin>; + }; + + vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v1_nldo_s3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_3v3_sd_s0: vcc-3v3-sd-s0 { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3_sd_s0"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_pwr>; + enable-active-low; + }; + + vcc5v0_usbdcin: vcc5v0-usbdcin-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usbdcin"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc12v_dcin>; + }; + + vcc5v0_usb: vcc5v0-usb-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_usb"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_usbdcin>; + }; + + vbus5v0_typec: vbus5v0-typec-regulator { + compatible = "regulator-fixed"; + regulator-name = "vbus5v0_typec"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_usb>; + pinctrl-names = "default"; + pinctrl-0 = <&typec5v_pwren>; + }; + + pcie20_avdd0v85: pcie20-avdd0v85-regulator { + compatible = "regulator-fixed"; + regulator-name = "pcie20_avdd0v85"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + vin-supply = <&vdd_0v85_s0>; + }; + + pcie20_avdd1v8: pcie20-avdd1v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "pcie20_avdd1v8"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&avcc_1v8_s0>; + }; + + pcie30_avdd0v75: pcie30-avdd0v75-regulator { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd0v75"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + vin-supply = <&avdd_0v75_s0>; + }; + + pcie30_avdd1v8: pcie30-avdd1v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "pcie30_avdd1v8"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&avcc_1v8_s0>; + }; + + vcc3v3_pcie30: vcc3v3-pcie30-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie30"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>; + startup-delay-us = <5000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie2x1l0"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>; + startup-delay-us = <50000>; + vin-supply = <&vcc12v_dcin>; + }; + + vcc3v3_pcie_eth: vcc3v3-pcie-eth-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3_pcie_eth"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + enable-active-low; + gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; + startup-delay-us = <50000>; + vin-supply = <&vcc12v_dcin>; + }; + + vcc5v0_host: vcc5v0-host-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_host"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + enable-active-high; + gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; + vin-supply = <&vcc5v0_usb>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_host_en>; + }; +}; + +&combphy0_ps { + status = "okay"; +}; + +&combphy1_ps { + status = "okay"; +}; + +&combphy2_psu { + status = "okay"; +}; + +&cpu_b0 { + cpu-supply = <&vdd_cpu_big0_s0>; + mem-supply = <&vdd_cpu_big0_mem_s0>; +}; + +&cpu_b1 { + cpu-supply = <&vdd_cpu_big0_s0>; + mem-supply = <&vdd_cpu_big0_mem_s0>; +}; + +&cpu_b2 { + cpu-supply = <&vdd_cpu_big1_s0>; + mem-supply = <&vdd_cpu_big1_mem_s0>; +}; + +&cpu_b3 { + cpu-supply = <&vdd_cpu_big1_s0>; + mem-supply = <&vdd_cpu_big1_mem_s0>; +}; + +&cpu_l0 { + cpu-supply = <&vdd_cpu_lit_s0>; + mem-supply = <&vdd_cpu_lit_mem_s0>; +}; + +&cpu_l1 { + cpu-supply = <&vdd_cpu_lit_s0>; + mem-supply = <&vdd_cpu_lit_mem_s0>; +}; + +&cpu_l2 { + cpu-supply = <&vdd_cpu_lit_s0>; + mem-supply = <&vdd_cpu_lit_mem_s0>; +}; + +&cpu_l3 { + cpu-supply = <&vdd_cpu_lit_s0>; + mem-supply = <&vdd_cpu_lit_mem_s0>; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0m2_xfer>; + status = "okay"; + + vdd_cpu_big0_s0: vdd_cpu_big0_mem_s0: regulator@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_cpu_big0_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_big1_s0: vdd_cpu_big1_mem_s0: regulator@43 { + compatible = "rockchip,rk8603", "rockchip,rk8602"; + reg = <0x43>; + fcs,suspend-voltage-selector = <1>; + regulator-name = "vdd_cpu_big1_s0"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <1050000>; + regulator-ramp-delay = <2300>; + vin-supply = <&vcc5v0_sys>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1m2_xfer>; + status = "okay"; + + vdd_npu_s0: vdd_npu_mem_s0: rk8602@42 { + compatible = "rockchip,rk8602"; + reg = <0x42>; + vin-supply = <&vcc5v0_sys>; + regulator-compatible = "rk860x-reg"; + regulator-name = "vdd_npu_s0"; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <2300>; + rockchip,suspend-voltage-selector = <1>; + regulator-boot-on; + regulator-always-on; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; +}; + +&i2c6 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c6m0_xfer>; + status = "okay"; + + usbc0: usb-typec@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio0>; + interrupts = ; + pinctrl-names = "default"; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus5v0_typec>; + status = "okay"; + + usb_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + try-power-role = "sink"; + op-sink-microwatt = <1000000>; + sink-pdos = + ; + source-pdos = + ; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_hs: endpoint { + remote-endpoint = <&usb_host0_xhci_drd_sw>; + }; + }; + + port@1 { + reg = <1>; + usbc0_ss: endpoint { + remote-endpoint = <&usbdp_phy0_typec_ss>; + }; + }; + + port@2 { + reg = <2>; + usbc0_sbu: endpoint { + remote-endpoint = <&usbdp_phy0_typec_sbu>; + }; + }; + }; + }; + }; +}; + +&i2c7 { + status = "okay"; + + es8388: audio-codec@11 { + compatible = "everest,es8388"; + reg = <0x11>; + clocks = <&cru I2S0_8CH_MCLKOUT>; + clock-names = "mclk"; + assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; + assigned-clock-rates = <12288000>; + pinctrl-names = "default"; + pinctrl-0 = <&i2s0_mclk>; + #sound-dai-cells = <0>; + }; +}; + +&i2s0_8ch { + pinctrl-0 = <&i2s0_lrck + &i2s0_sclk + &i2s0_sdi0 + &i2s0_sdo0>; + status = "okay"; +}; + +&pinctrl { + usb { + vcc5v0_host_en: vcc5v0-host-en { + rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb-typec { + usbc0_int: usbc0-int { + rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + typec5v_pwren: typec5v-pwren { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + sdmmc { + sdmmc_pwr: sdmmc_pwr { + rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; + + gpio-func { + leds_rgb: leds-rgb { + rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>, + <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +}; + +&pwm2 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm2m2_pins>; + status = "okay"; +}; + +&pwm3 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm3m1_pins>; + status = "okay"; +}; + +&saradc { + vref-supply = <&avcc_1v8_s0>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + no-sdio; + no-sd; + non-removable; + max-frequency = <200000000>; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + status = "okay"; +}; + +&sdmmc { + max-frequency = <150000000>; + no-sdio; + no-mmc; + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <&vcc_3v3_sd_s0>; + vqmmc-supply = <&vccio_sd_s0>; + status = "okay"; +}; + +&spi0 { + assigned-clocks = <&cru CLK_SPI0>; + assigned-clock-rates = <200000000>; + num-cs = <2>; + status = "disabled"; +}; + +&spi2 { + status = "okay"; + assigned-clocks = <&cru CLK_SPI2>; + assigned-clock-rates = <200000000>; + pinctrl-names = "default"; + pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>; + num-cs = <1>; + + pmic@0 { + compatible = "rockchip,rk806"; + spi-max-frequency = <1000000>; + reg = <0x0>; + + interrupt-parent = <&gpio0>; + interrupts = <7 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-names = "default"; + pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, + <&rk806_dvs2_null>, <&rk806_dvs3_null>; + + vcc1-supply = <&vcc5v0_sys>; + vcc2-supply = <&vcc5v0_sys>; + vcc3-supply = <&vcc5v0_sys>; + vcc4-supply = <&vcc5v0_sys>; + vcc5-supply = <&vcc5v0_sys>; + vcc6-supply = <&vcc5v0_sys>; + vcc7-supply = <&vcc5v0_sys>; + vcc8-supply = <&vcc5v0_sys>; + vcc9-supply = <&vcc5v0_sys>; + vcc10-supply = <&vcc5v0_sys>; + vcc11-supply = <&vcc_2v0_pldo_s3>; + vcc12-supply = <&vcc5v0_sys>; + vcc13-supply = <&vcc_1v1_nldo_s3>; + vcc14-supply = <&vcc_1v1_nldo_s3>; + vcca-supply = <&vcc5v0_sys>; + + gpio-controller; + #gpio-cells = <2>; + + rk806_dvs1_null: dvs1-null-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fun0"; + }; + + rk806_dvs2_null: dvs2-null-pins { + pins = "gpio_pwrctrl2"; + function = "pin_fudr_moden0"; + }; + + rk806_dvs3_null: dvs3-null-pins { + pins = "gpio_pwrctrl3"; + function = "pin_fun0"; + }; + + regulators { + vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 { + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_gpu_s0"; + regulator-enable-ramp-delay = <400>; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_cpu_lit_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_log_s0: dcdc-reg3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <675000>; + regulator-max-microvolt = <750000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_log_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <750000>; + }; + }; + + vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <550000>; + regulator-max-microvolt = <950000>; + regulator-init-microvolt = <750000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_vdenc_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_ddr_s0: dcdc-reg5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <675000>; + regulator-max-microvolt = <900000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_ddr_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <850000>; + }; + }; + + vdd2_ddr_s3: dcdc-reg6 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vdd2_ddr_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + }; + }; + + vcc_2v0_pldo_s3: dcdc-reg7 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <2000000>; + regulator-max-microvolt = <2000000>; + regulator-ramp-delay = <12500>; + regulator-name = "vdd_2v0_pldo_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <2000000>; + }; + }; + + vcc_3v3_s3: dcdc-reg8 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc_3v3_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <3300000>; + }; + }; + + vddq_ddr_s0: dcdc-reg9 { + regulator-always-on; + regulator-boot-on; + regulator-name = "vddq_ddr_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v8_s3: dcdc-reg10 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "vcc_1v8_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + avcc_1v8_s0: pldo-reg1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "avcc_1v8_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_1v8_s0: pldo-reg2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "vcc_1v8_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + avdd_1v2_s0: pldo-reg3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "avdd_1v2_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vcc_3v3_s0: pldo-reg4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12500>; + regulator-name = "vcc_3v3_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vccio_sd_s0: pldo-reg5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-ramp-delay = <12500>; + regulator-name = "vccio_sd_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + pldo6_s3: pldo-reg6 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "pldo6_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <1800000>; + }; + }; + + vdd_0v75_s3: nldo-reg1 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + regulator-name = "vdd_0v75_s3"; + + regulator-state-mem { + regulator-on-in-suspend; + regulator-suspend-microvolt = <750000>; + }; + }; + + vdd_ddr_pll_s0: nldo-reg2 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + regulator-name = "vdd_ddr_pll_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + regulator-suspend-microvolt = <850000>; + }; + }; + + avdd_0v75_s0: nldo-reg3 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + regulator-name = "avdd_0v75_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_0v85_s0: nldo-reg4 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <850000>; + regulator-max-microvolt = <850000>; + regulator-name = "vdd_0v85_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + + vdd_0v75_s0: nldo-reg5 { + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <750000>; + regulator-name = "vdd_0v75_s0"; + + regulator-state-mem { + regulator-off-in-suspend; + }; + }; + }; + }; +}; + +&spi4 { + assigned-clocks = <&cru CLK_SPI4>; + assigned-clock-rates = <200000000>; + num-cs = <2>; + status = "disabled"; +}; + +&uart2 { + pinctrl-0 = <&uart2m0_xfer>; + status = "okay"; +}; + +&uart9 { + pinctrl-names = "default"; + pinctrl-0 = <&uart9m0_xfer &uart9m0_ctsn>; + status = "okay"; +}; + +&tsadc { + status = "okay"; +}; + +&pcie2x1l0 { + reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie2x1l0>; + rockchip,skip-scan-in-resume; + status = "okay"; +}; + +&pcie2x1l1 { + reset-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; + rockchip,init-delay-ms = <100>; + status = "okay"; +}; + +&pcie2x1l2 { + reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; + status = "okay"; +}; + +&pcie30phy { + status = "okay"; +}; + +&pcie3x4 { + reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie30>; + status = "okay"; +}; + +&u2phy0 { + status = "okay"; +}; + +&u2phy0_otg { + rockchip,typec-vbus-det; + status = "okay"; +}; + +&u2phy1 { + status = "okay"; +}; + +&u2phy1_otg { + phy-supply = <&vcc5v0_host>; + status = "okay"; +}; + +&u2phy2 { + status = "okay"; +}; + +&u2phy2_host { + phy-supply = <&vcc5v0_host>; + status = "okay"; +}; + +&u2phy3 { + status = "okay"; +}; + +&u2phy3_host { + phy-supply = <&vcc5v0_host>; + status = "okay"; +}; + +&usbdp_phy0 { + orientation-switch; + mode-switch; + status = "okay"; + sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>; + sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; + + port { + #address-cells = <1>; + #size-cells = <0>; + + usbdp_phy0_typec_ss: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_ss>; + }; + + usbdp_phy0_typec_sbu: endpoint@1 { + reg = <1>; + remote-endpoint = <&usbc0_sbu>; + }; + }; +}; + +&usbdp_phy0_dp { + status = "okay"; +}; + +&usbdp_phy0_u3 { + status = "okay"; +}; + +&usbdp_phy1 { + rockchip,dp-lane-mux = <2 3>; + status = "okay"; +}; + +&usbdp_phy1_dp { + status = "okay"; +}; + +&usbdp_phy1_u3 { + status = "okay"; +}; + +&usb_host0_ehci { + status = "okay"; +}; + +&usb_host0_ohci { + status = "okay"; +}; + +&usb_host0_xhci { + usb-role-switch; + dr_mode = "otg"; + status = "okay"; + + port { + #address-cells = <1>; + #size-cells = <0>; + + usb_host0_xhci_drd_sw: endpoint { + remote-endpoint = <&usbc0_hs>; + }; + }; +}; + +&usb_host1_ehci { + status = "okay"; +}; + +&usb_host1_ohci { + status = "okay"; +}; + +&usb_host1_xhci { + status = "okay"; +}; + +&wdt { + status = "okay"; +}; diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 31d10f5fa878f2..1f3a278474381a 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -148,3 +148,14 @@ define Device/rockchip_bpi-r2-pro IMAGE/sysupgrade.img.gz := boot-common | boot-script quartz64-a | pine64-img | gzip | append-metadata endef TARGET_DEVICES += rockchip_bpi-r2-pro + +define Device/xunlong_orangepi-5-plus + DEVICE_VENDOR := XunLong + DEVICE_MODEL := RK3588 OPi 5 Plus + SOC := rk3588 + UBOOT_DEVICE_NAME := orangepi-5-plus-rk3588 + SUPPORTED_DEVICES := rockchip,rk3588-orangepi-5-plus + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r6c | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-r8169 +endef +TARGET_DEVICES += xunlong_orangepi-5-plus From 3b6802fb57167b0744e79a7ac7240ecfa02dbe6f Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Thu, 29 Feb 2024 12:42:47 -0500 Subject: [PATCH 37/41] rockchip: adjust vendor on Banana Pi R2 Pro board Signed-off-by: Marty Jones --- target/linux/rockchip/armv8/base-files/etc/board.d/01_leds | 3 ++- .../linux/rockchip/armv8/base-files/etc/board.d/02_network | 6 ++++-- .../armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity | 4 ++++ target/linux/rockchip/image/armv8.mk | 4 +++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index f1fd935e91af3f..ff30e920c5a360 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -50,7 +50,8 @@ pine64,quartz64-a) radxa,rock3a) ucidef_set_led_netdev "lan" "LAN" "user-led" "br-lan" ;; -rockchip,rk3568-bpi-r2pro) +rockchip,rk3568-bpi-r2pro|\ +sinovoip,rk3568-bpi-r2pro) ucidef_set_led_netdev "wan" "WAN" "blue:status" "eth0" ucidef_set_led_netdev "lan" "LAN" "green:power" "eth1" ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index bc59bae66248af..b3be379eb034c3 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -35,7 +35,8 @@ rockchip_setup_interfaces() rockchip,rk3588-orangepi-5-plus) ucidef_set_interfaces_lan_wan 'eth0' 'eth1' ;; - rockchip,rk3568-bpi-r2pro) + rockchip,rk3568-bpi-r2pro|\ + sinovoip,rk3568-bpi-r2pro) ucidef_set_interfaces_lan_wan 'lan0 lan1 lan2 lan3' 'eth0' ;; *) @@ -94,7 +95,8 @@ rockchip_setup_macs() ;; friendlyelec,nanopi-r5c|\ friendlyelec,nanopi-r5s|\ - rockchip,rk3568-bpi-r2pro) + rockchip,rk3568-bpi-r2pro|\ + sinovoip,rk3568-bpi-r2pro) wan_mac=$(bpi_r2pro_generate_mac) lan_mac=$(macaddr_add "$wan_mac" 1) ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 8d704109dcbb80..a42fc5ef6bb2bd 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -65,6 +65,10 @@ rockchip,rk3568-bpi-r2pro) set_interface_core 1 "eth0" set_interface_core 3 "eth1" ;; +sinovoip,rk3568-bpi-r2pro) + set_interface_core 1 "eth0" + set_interface_core 3 "eth1" + ;; rockchip,rk3588-orangepi-5-plus) set_interface_core 20 "eth0" set_interface_core 40 "eth1" diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 1f3a278474381a..e8c183df3f0c88 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -143,7 +143,9 @@ define Device/rockchip_bpi-r2-pro DEVICE_VENDOR := Rockchip DEVICE_MODEL := Bananapi-R2 Pro SOC := rk3568 - SUPPORTED_DEVICES := rockchip,rk3568-bpi-r2pro + SUPPORTED_DEVICES := \ + sinovoip,rk3568-bpi-r2pro \ + rockchip,rk3568-bpi-r2pro UBOOT_DEVICE_NAME := bpi-r2-pro-rk3568 IMAGE/sysupgrade.img.gz := boot-common | boot-script quartz64-a | pine64-img | gzip | append-metadata endef From f8bb6c7dacaac4052190ea07ccbc82e1ee9a35b3 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Sun, 25 Jun 2023 17:38:27 -0400 Subject: [PATCH 38/41] arm-trusted-firmware-rockchip: update to v2.10.2 Signed-off-by: Marty Jones --- .../arm-trusted-firmware-rockchip/Makefile | 72 +++++++------------ 1 file changed, 25 insertions(+), 47 deletions(-) diff --git a/package/boot/arm-trusted-firmware-rockchip/Makefile b/package/boot/arm-trusted-firmware-rockchip/Makefile index 6fbcbef0a8b305..bb17fffc9b7561 100644 --- a/package/boot/arm-trusted-firmware-rockchip/Makefile +++ b/package/boot/arm-trusted-firmware-rockchip/Makefile @@ -7,66 +7,44 @@ include $(TOPDIR)/rules.mk -PKG_VERSION:=2.10 +PKG_NAME:=arm-trusted-firmware-rockchip +PKG_VERSION:=2.10.2 PKG_RELEASE:=1 -PKG_HASH:=88215a62291b9ba87da8e50b077741103cdc08fb6c9e1ebd34dfaace746d3201 +PKG_SOURCE:=atf-v$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/mj22226/atf/releases/download/v$(PKG_VERSION)-1709568560/atf-v$(PKG_VERSION).tar.gz? +PKG_HASH:=d5ff131ef11c3898ed3701526cd81202528d6686c5e4c62c71dbfde8fa35368c + +PKG_LICENSE:=BSD-3-Clause +PKG_LICENSE_FILES:=license.md PKG_MAINTAINER:=Tobias Maedel -include $(INCLUDE_DIR)/kernel.mk -include $(INCLUDE_DIR)/trusted-firmware-a.mk +MAKE_PATH:=$(PKG_NAME) + include $(INCLUDE_DIR)/package.mk -define Trusted-Firmware-A/Default - NAME:=Rockchip $(1) SoCs - BUILD_TARGET:=rockchip +define Package/arm-trusted-firmware-rockchip + SECTION:=boot + CATEGORY:=Boot Loaders + TITLE:=ARM Trusted Firmware for Rockchip + DEPENDS:=@TARGET_rockchip_armv8 endef -define Trusted-Firmware-A/rk3328 - BUILD_SUBTARGET:=armv8 - PLAT=rk3328 +define Build/Prepare + $(TAR) -C $(PKG_BUILD_DIR) -xf $(DL_DIR)/$(PKG_SOURCE) endef -define Trusted-Firmware-A/rk3399 - BUILD_SUBTARGET:=armv8 - PLAT:=rk3399 +define Build/Compile endef -TFA_TARGETS:= \ - rk3328 \ - rk3399 - -ifeq ($(BUILD_VARIANT),rk3399) - M0_GCC_NAME:=gcc-arm - M0_GCC_RELEASE:=11.2-2022.02 - M0_GCC_VERSION:=$(HOST_ARCH)-arm-none-eabi - M0_GCC_SOURCE:=$(M0_GCC_NAME)-$(M0_GCC_RELEASE)-$(M0_GCC_VERSION).tar.xz - - define Download/m0-gcc - FILE:=$(M0_GCC_SOURCE) - URL:=https://developer.arm.com/-/media/Files/downloads/gnu/$(M0_GCC_RELEASE)/binrel - ifeq ($(HOST_ARCH),aarch64) - HASH:=ef1d82e5894e3908cb7ed49c5485b5b95deefa32872f79c2b5f6f5447cabf55f - else - HASH:=8c5acd5ae567c0100245b0556941c237369f210bceb196edfe5a2e7532c60326 - endif - endef - - define Build/Prepare - $(eval $(call Download,m0-gcc)) - $(call Build/Prepare/Default) - - xzcat $(DL_DIR)/$(M0_GCC_SOURCE) | $(HOST_TAR) -C $(PKG_BUILD_DIR)/ $(TAR_OPTIONS) - endef - - TFA_MAKE_FLAGS+= \ - M0_CROSS_COMPILE=$(PKG_BUILD_DIR)/$(M0_GCC_NAME)-$(M0_GCC_RELEASE)-$(M0_GCC_VERSION)/bin/arm-none-eabi- -endif +define Build/InstallDev + $(INSTALL_DIR) -p $(STAGING_DIR_IMAGE) + $(CP) $(PKG_BUILD_DIR)/rk*.elf $(STAGING_DIR_IMAGE)/ + $(CP) $(PKG_BUILD_DIR)/rk*.bin $(STAGING_DIR_IMAGE)/ +endef -define Package/trusted-firmware-a/install - $(INSTALL_DIR) $(STAGING_DIR_IMAGE) - $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/$(PLAT)/release/bl31/bl31.elf $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)_bl31.elf +define Package/arm-trusted-firmware-rockchip/install endef -$(eval $(call BuildPackage/Trusted-Firmware-A)) +$(eval $(call BuildPackage,arm-trusted-firmware-rockchip)) From 101fe44fc6ded27e79e7a2951346395f56fec864 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Tue, 23 Jul 2024 23:40:37 -0400 Subject: [PATCH 39/41] kernel: Linux 6.6.42 https://lore.kernel.org/all/20240723180404.759900207@linuxfoundation.org Signed-off-by: Marty Jones --- include/kernel-6.6 | 4 +- ...o_user-and-__copy_from_user-performa.patch | 2 +- ...ware-emulation-of-deprecated-instruc.patch | 2 +- ...ce-quirks-for-Freeway-Airmouse-T3-an.patch | 2 +- ...53x-Add-ti-tca9554-compatible-string.patch | 2 +- ...ci_sync-Add-fallback-bd-address-prop.patch | 4 +- ...46-Add-missing-spi_device_id-strings.patch | 49 ------------------- .../generic/hack-6.6/253-ksmbd-config.patch | 2 +- .../generic/hack-6.6/902-debloat_proc.patch | 2 +- ...-Add-support-for-dynamic-calibration.patch | 2 +- 10 files changed, 11 insertions(+), 60 deletions(-) delete mode 100644 target/linux/bcm27xx/patches-6.6/950-0490-input-ads7846-Add-missing-spi_device_id-strings.patch diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 24fff19d3bc93a..212c6263d5d111 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .41 -LINUX_KERNEL_HASH-6.6.41 = 9ec99c578158ab85d99b37791a76643d2ea4c3f72ecbef7b5eb6d60f3de032ef +LINUX_VERSION-6.6 = .42 +LINUX_KERNEL_HASH-6.6.42 = 8801c8c297d774e76044977ec3d0684399dc4e7cce347d730874ec78b774e683 diff --git a/target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch index 2d546c7502add9..92fd35d9361d5a 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0103-Improve-__copy_to_user-and-__copy_from_user-performa.patch @@ -99,7 +99,7 @@ Signed-off-by: Phil Elwell #endif --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h -@@ -509,6 +509,9 @@ do { \ +@@ -499,6 +499,9 @@ do { \ extern unsigned long __must_check arm_copy_from_user(void *to, const void __user *from, unsigned long n); diff --git a/target/linux/bcm27xx/patches-6.6/950-0113-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch b/target/linux/bcm27xx/patches-6.6/950-0113-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch index 14f92dfadd2f7d..1a84fb14b1da92 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0113-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0113-ARM64-Force-hardware-emulation-of-deprecated-instruc.patch @@ -10,7 +10,7 @@ Subject: [PATCH 0113/1085] ARM64: Force hardware emulation of deprecated --- a/arch/arm64/kernel/armv8_deprecated.c +++ b/arch/arm64/kernel/armv8_deprecated.c -@@ -539,9 +539,14 @@ static void __init register_insn_emulati +@@ -542,9 +542,14 @@ static void __init register_insn_emulati switch (insn->status) { case INSN_DEPRECATED: diff --git a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index a64754310d40f9..c3c3353f919db7 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1405,6 +1408,9 @@ +@@ -1407,6 +1410,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 diff --git a/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch b/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch index b9ec31caa5ff54..aa11729b717915 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0416-gpio-pca953x-Add-ti-tca9554-compatible-string.patch @@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c -@@ -1345,6 +1345,7 @@ static const struct of_device_id pca953x +@@ -1347,6 +1347,7 @@ static const struct of_device_id pca953x { .compatible = "ti,tca6424", .data = OF_953X(24, PCA_INT), }, { .compatible = "ti,tca9538", .data = OF_953X( 8, PCA_INT), }, { .compatible = "ti,tca9539", .data = OF_953X(16, PCA_INT), }, diff --git a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch index 9aa16d6b2566a9..218ad5dbe5eac9 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0441-Bluetooth-hci_sync-Add-fallback-bd-address-prop.patch @@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c -@@ -4659,6 +4659,7 @@ static const struct { +@@ -4672,6 +4672,7 @@ static const struct { */ static int hci_dev_setup_sync(struct hci_dev *hdev) { @@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell int ret = 0; bool invalid_bdaddr; size_t i; -@@ -4687,7 +4688,8 @@ static int hci_dev_setup_sync(struct hci +@@ -4700,7 +4701,8 @@ static int hci_dev_setup_sync(struct hci test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); if (!ret) { if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) && diff --git a/target/linux/bcm27xx/patches-6.6/950-0490-input-ads7846-Add-missing-spi_device_id-strings.patch b/target/linux/bcm27xx/patches-6.6/950-0490-input-ads7846-Add-missing-spi_device_id-strings.patch deleted file mode 100644 index 1b0a29a777f120..00000000000000 --- a/target/linux/bcm27xx/patches-6.6/950-0490-input-ads7846-Add-missing-spi_device_id-strings.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3b391ceadf0d4ab5ce45f98d2f1d41f40e5aedd7 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Fri, 1 Sep 2023 12:23:30 +0100 -Subject: [PATCH 0490/1085] input: ads7846: Add missing spi_device_id strings - -The SPI core logs error messages if a compatible string device -name is not also present as an spi_device_id. - -No spi_device_id values are specified by the driver, therefore -we get 4 log lines every time it is loaded: -SPI driver ads7846 has no spi_device_id for ti,tsc2046 -SPI driver ads7846 has no spi_device_id for ti,ads7843 -SPI driver ads7846 has no spi_device_id for ti,ads7845 -SPI driver ads7846 has no spi_device_id for ti,ads7873 - -Add the spi_device_id values for these devices. - -Signed-off-by: Dave Stevenson ---- - drivers/input/touchscreen/ads7846.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - ---- a/drivers/input/touchscreen/ads7846.c -+++ b/drivers/input/touchscreen/ads7846.c -@@ -1114,6 +1114,16 @@ static const struct of_device_id ads7846 - }; - MODULE_DEVICE_TABLE(of, ads7846_dt_ids); - -+static const struct spi_device_id ads7846_spi_ids[] = { -+ { "tsc2046", 0 }, -+ { "ads7843", 0 }, -+ { "ads7845", 0 }, -+ { "ads7846", 0 }, -+ { "ads7873", 0 }, -+ { } -+}; -+MODULE_DEVICE_TABLE(spi, ads7846_spi_ids); -+ - static const struct ads7846_platform_data *ads7846_get_props(struct device *dev) - { - struct ads7846_platform_data *pdata; -@@ -1390,6 +1400,7 @@ static struct spi_driver ads7846_driver - .pm = pm_sleep_ptr(&ads7846_pm), - .of_match_table = ads7846_dt_ids, - }, -+ .id_table = ads7846_spi_ids, - .probe = ads7846_probe, - .remove = ads7846_remove, - }; diff --git a/target/linux/generic/hack-6.6/253-ksmbd-config.patch b/target/linux/generic/hack-6.6/253-ksmbd-config.patch index 298a0787b7c8f7..b200d2ce60f114 100644 --- a/target/linux/generic/hack-6.6/253-ksmbd-config.patch +++ b/target/linux/generic/hack-6.6/253-ksmbd-config.patch @@ -21,7 +21,7 @@ Subject: [PATCH] Kconfig: add tristate for OID and ASNI string that can be interpreted by the ASN.1 stream decoder and used to --- a/lib/Kconfig +++ b/lib/Kconfig -@@ -647,7 +647,7 @@ config LIBFDT +@@ -641,7 +641,7 @@ config LIBFDT bool config OID_REGISTRY diff --git a/target/linux/generic/hack-6.6/902-debloat_proc.patch b/target/linux/generic/hack-6.6/902-debloat_proc.patch index 559d4032429eb3..7b05e55f5e837f 100644 --- a/target/linux/generic/hack-6.6/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.6/902-debloat_proc.patch @@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau --- a/fs/locks.c +++ b/fs/locks.c -@@ -2897,6 +2897,8 @@ static const struct seq_operations locks +@@ -2896,6 +2896,8 @@ static const struct seq_operations locks static int __init proc_locks_init(void) { diff --git a/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch b/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch index 7ad07c3583716c..19fe984aa6179b 100644 --- a/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch +++ b/target/linux/mediatek/patches-6.6/432-drivers-spi-Add-support-for-dynamic-calibration.patch @@ -224,7 +224,7 @@ Signed-off-by: SkyLake.Huang int (*fw_translate_cs)(struct spi_controller *ctlr, unsigned cs); /* -@@ -1600,6 +1639,9 @@ spi_register_board_info(struct spi_board +@@ -1601,6 +1640,9 @@ spi_register_board_info(struct spi_board { return 0; } #endif From e3163ea94da92c647105ac8774f212b262b5fd39 Mon Sep 17 00:00:00 2001 From: Marty Jones Date: Thu, 25 Jul 2024 16:54:37 -0400 Subject: [PATCH 40/41] kernel: Linux 6.6.43 https://lore.kernel.org/all/20240725142728.905379352@linuxfoundation.org Signed-off-by: Marty Jones --- include/kernel-6.6 | 4 ++-- ...fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch | 2 +- target/linux/generic/hack-6.6/902-debloat_proc.patch | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 212c6263d5d111..4c6596969da4db 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .42 -LINUX_KERNEL_HASH-6.6.42 = 8801c8c297d774e76044977ec3d0684399dc4e7cce347d730874ec78b774e683 +LINUX_VERSION-6.6 = .43 +LINUX_KERNEL_HASH-6.6.43 = 0ad83b1a1a780a1aad948d55aa55ee63c50c626f2d46910b9d2180028d100a5e diff --git a/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch b/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch index 113b3fdf53a6f6..b05a8276dfffb2 100644 --- a/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch +++ b/target/linux/bcm27xx/patches-6.6/950-1141-fs-ntfs3-Fix-memory-corruption-when-page_size-change.patch @@ -25,7 +25,7 @@ Signed-off-by: Dom Cobley --- a/fs/ntfs3/fslog.c +++ b/fs/ntfs3/fslog.c -@@ -3907,6 +3907,8 @@ check_restart_area: +@@ -3914,6 +3914,8 @@ check_restart_area: log->l_size = log->orig_file_size; log->page_size = norm_file_page(t32, &log->l_size, t32 == DefaultLogPageSize); diff --git a/target/linux/generic/hack-6.6/902-debloat_proc.patch b/target/linux/generic/hack-6.6/902-debloat_proc.patch index 7b05e55f5e837f..bf14d959991ecd 100644 --- a/target/linux/generic/hack-6.6/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.6/902-debloat_proc.patch @@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau --- a/fs/locks.c +++ b/fs/locks.c -@@ -2896,6 +2896,8 @@ static const struct seq_operations locks +@@ -2895,6 +2895,8 @@ static const struct seq_operations locks static int __init proc_locks_init(void) { From afb0358cb48f274563bef4a5f0799e5e98e963fd Mon Sep 17 00:00:00 2001 From: Johan van der Vlugt <83158576+JohanVlugt@users.noreply.github.com> Date: Wed, 31 Jul 2024 18:25:59 +0200 Subject: [PATCH 41/41] Update 02_network Correcting the mismatched ports --- target/linux/rockchip/armv8/base-files/etc/board.d/02_network | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index b3be379eb034c3..ab83cf1fc455fb 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -21,7 +21,7 @@ rockchip_setup_interfaces() ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; friendlyelec,nanopi-r6s) - ucidef_set_interfaces_lan_wan 'eth2 eth0' 'eth1' + ucidef_set_interfaces_lan_wan 'eth0 eth1' 'eth2' ;; friendlyelec,nanopi-r6c-plus) ucidef_set_interfaces_lan_wan 'eth0 eth1 eth3' 'eth2'

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ȲDbAhPli_thq|+efp{_3v~A-)}zK?=HqLvyryni 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 z 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�Xb+nRBzJkK~aro&U?h!5wsCUBp}w0mmZ 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�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⁡IZc$2u#H9 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 literal 0 HcmV?d00001 diff --git a/package/kernel/mt76/src/firm/WIFI_RAM_CODE_MT7961_1.bin b/package/kernel/mt76/src/firm/WIFI_RAM_CODE_MT7961_1.bin new file mode 100644 index 0000000000000000000000000000000000000000..2e9dcffa709d40bebe2b07192b453ef793b668ea GIT binary patch literal 722420 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