265 Commits 4aa805cd50 ... c152c845b4

Author SHA1 Message Date
  jahway603 c152c845b4 Add TPE-R1300 & TPE-R1400 wiki pages. 1 month ago
  RISCi_ATOM 772da7e062 librecmc : Bump to v1.5.15 5 months ago
  RISCi_ATOM d86d6edd2d wolfssl : Bump to 5.6.6 5 months ago
  RISCi_ATOM 5739ca0500 librecmc : Add python3.12 to the list and fixup grep issue 5 months ago
  RISCi_ATOM a757ef22ba kernel: Bump to 4.14.334 5 months ago
  RISCi_ATOM d9735f7238 ar71xx: Add missing patch fix for 4.14.325 8 months ago
  RISCi_ATOM 1fe7cae368 usbip : Add usbip support with appropriate dependencies. 8 months ago
  RISCi_ATOM 19f54c0804 librecmc: Bump to 1.5.14 9 months ago
  RISCi_ATOM 08b07dc156 tor: Bump to 0.4.8.5 9 months ago
  RISCi_ATOM e7a2b73336 openvpn: Bump to 2.5.9 9 months ago
  RISCi_ATOM 81585c8072 ustream-ssl: Make wolfssl variant the default 9 months ago
  RISCi_ATOM 4bd885010d openssl: Bump to 1.1.1w 9 months ago
  RISCi_ATOM bde078477c wolfssl : Bump to 5.6.3 9 months ago
  RISCi_ATOM bea1f96217 tools/cmake : Bump to 3.19.8 9 months ago
  RISCi_ATOM a5af9ff42c kernel : Bump to 4.14.325 9 months ago
  RISCi_ATOM 6c236996e9 kernel: Bump to 4.14.314 1 year ago
  RISCi_ATOM aa0341611a librecmc: Add package mesh11sd from 21.02 feed 1 year ago
  RISCi_ATOM 3f28eb92c9 openvpn : Remove leftover patches 1 year ago
  RISCi_ATOM 41f4da13db librecmc: Bump to v1.5.13 1 year ago
  RISCi_ATOM 5d911f8acc openvpn : Bump to 2.5.8 1 year ago
  RISCi_ATOM ba96dde3ef ca-certs: Update to 20211016 1 year ago
  RISCi_ATOM 1ac68ebc53 mirrors: Add Debian source mirrors 1 year ago
  RISCi_ATOM 3d732b1863 kernel: Bump to 4.14.311 1 year ago
  John Audia bb9c0c9383 openssl: bump to 1.1.1t 1 year ago
  RISCi_ATOM 8fb15118f0 rockchip: Fixup arm-trusted-firmware with deblobbed version (missing HDCP) 1 year ago
  RISCi_ATOM 5ba2fc61dc rockchip: fixup, add kmod-usb-net pkg 1 year ago
  RISCi_ATOM f237a00b04 librecmc: Bump version to v1.5.12 1 year ago
  RISCi_ATOM 38be665d37 kernel: Bump to 4.14.303 1 year ago
  RISCi_ATOM 6f3a84f4fe target: Add rockchip target 1 year ago
  RISCi_ATOM 31b6bceaf7 kernel: Bump to 4.14.302 1 year ago
  RISCi_ATOM 4a1100dbb8 wolfssl: Bump to 5.5.4-stable 1 year ago
  RISCi_ATOM 2179bbe4fa openssl: Bump to 1.1.1s 1 year ago
  RISCi_ATOM 74e2bc4686 librecmc: Bump to v1.5.11 1 year ago
  RISCi_ATOM ef62e1d844 wireguard: Bump to v1.0.20220627 1 year ago
  RISCi_ATOM 9b5de73b50 openssl: Bump to 1.1.1q 1 year ago
  RISCi_ATOM d3483fd9a4 wolfssl: Bump to 5.5.0-stable 1 year ago
  RISCi_ATOM 7a76960326 librecmc: Add Python 3.11 for Python 3 check. 1 year ago
  RISCi_ATOM 7b675d0ee6 kernel: Bump to 4.14.294 1 year ago
  RISCi_ATOM 25db3cdf6d librecmc: bump version to v1.5.10 2 years ago
  RISCi_ATOM ad9ad200da kernel: bump to 4.14.284 2 years ago
  RISCi_ATOM 6f1ef025cb openssl: Bump to 1.1.1p 2 years ago
  RISCi_ATOM 01510c8cee openvpn: Bump to 2.4.12 2 years ago
  Eneas U de Queiroz 56afa8b698 wolfssl: fix compilation with /dev/crypto 2 years ago
  Eneas U de Queiroz 11fc0a08b3 wolfssl: bump to 5.2.0 2 years ago
  RISCi_ATOM aca8092b80 kernel: Bump to 4.14.277 2 years ago
  Hauke Mehrtens eece508e4f mac80211: Update to version 4.19.237-1 2 years ago
  Sven Eckelmann b658eae77f uboot-sunxi: Fix build with GCC-10 as host compiler 2 years ago
  RISCi_ATOM 6a64dfa723 mvebu: Fixup kernel config 2 years ago
  RISCi_ATOM bee5bd5d88 librecmc: Bump version to v1.5.9 2 years ago
  RISCi_ATOM 8b346e0aac wolfssl: bump to 5.1.1-stable 2 years ago
  Hauke Mehrtens 3bbf980d81 tcpdump: Fix CVE-2018-16301 2 years ago
  Hauke Mehrtens 30743efdac tcpdump: libpcap: Remove http://www.us.tcpdump.org mirror 2 years ago
  Hauke Mehrtens 8fd3789c1f hostapd: Apply SAE/EAP-pwd side-channel attack update 2 2 years ago
  Hauke Mehrtens 57fcc22cae mbedtls: Update to version 2.16.12 2 years ago
  Rosen Penev 2525e5f1b0 mbedtls: update to 2.16.11 2 years ago
  Rafał Miłecki 75481ca4af base-files: call "sync" after initial setup 2 years ago
  Martin Schiller ee3d75ec36 openssl: bump to 1.1.1n 2 years ago
  Petr Štetiar 3e106e312a zlib: backport security fix for a reproducible crash in compressor 2 years ago
  RISCi_ATOM f5959df40a kernel: Bump to 4.14.273 2 years ago
  RISCi_ATOM 315338852a librecmc: Bump to v1.5.8 2 years ago
  RISCi_ATOM 7ae3271d7b tor: Bump to 0.4.5.10 2 years ago
  RISCi_ATOM dfbf746e7a libgpg-error : Bump to 1.42 2 years ago
  RISCi_ATOM 4d1b2b87d7 kernel: Bump to 4.14.261 2 years ago
  RISCi_ATOM 57757b84ff openssl: bump to 1.1.1m 2 years ago
  RISCi_ATOM 52a23b23c1 kernel: Bump to 4.14.260 2 years ago
  RISCi_ATOM 6e7dc3845d wolfssl: Bump to 4.8.1 2 years ago
  RISCi_ATOM dc6d69b65d base: Update python requirements 2 years ago
  RISCi_ATOM 8be1d8c9b5 wireguard : Bump to v1.0.20211208 2 years ago
  RISCi_ATOM f8613746c2 kernel: bump 4.14 to 4.14.254 2 years ago
  RISCi_ATOM 8c2d007dd3 mac80211: Update to version 4.19.221 2 years ago
  Christian Lamparter c9b62dd0d3 wireless-regdb: update to version 2021.08.28 2 years ago
  Felix Fietkau 852ae6c23e wireless-regdb: update to version 2021.04.21 3 years ago
  Rosen Penev fa48f0dd84 tools/m4: update to 1.4.19 3 years ago
  RISCi_ATOM 30db924741 librecmc: Bump version to 1.5.7 2 years ago
  RISCi_ATOM 88f9234e9a luci: Remove jsmin from luci and use the jsmin Python module instead. 2 years ago
  RISCi_ATOM 98e10c563c mac80211: Update to backports-4.19.207-1 2 years ago
  RISCi_ATOM 82e90fbf0f kernel: Bump to 4.14.248-gnu1 2 years ago
  RISCi_ATOM 49fd40b291 kernel: Bump to 4.14.246 2 years ago
  RISCi_ATOM cde940bc6a openssl: bump to 1.1.1l 2 years ago
  RISCi_ATOM 83d6117fb4 librecmc: Bump to v1.5.6 3 years ago
  RISCi_ATOM 3d1900ded3 wireguard: Bump to v1.0.20210606 3 years ago
  RISCi_ATOM ceb571a876 tor: Bump to 0.4.4.9 3 years ago
  RISCi_ATOM 784622a3fa kernel: Bump to 4.14.138 3 years ago
  Hauke Mehrtens 26dc62e346 mac80211: Update to backports version 4.19.193-test1 3 years ago
  RISCi_ATOM afa68e5285 kernel: Bump to 4.14.237 3 years ago
  RISCi_ATOM 5742bfef87 kernel: Bump to 4.14.232 3 years ago
  RISCi_ATOM 9674df44bd wireguard: bump to v1.0.20210424 3 years ago
  Bas Mevissen 4819704f0a Extend checks on build prerequisites for building OpenWRT core 3 years ago
  Rosen Penev 29798dd537 prereq-build: test for perl's Data::Dumper 4 years ago
  Hauke Mehrtens 37f1b06171 mac80211: Update to backports version 4.19.189-1 3 years ago
  Hauke Mehrtens 1ebe1c794c dropbear: Fix CVE-2020-36254 3 years ago
  RISCi_ATOM a5ab8f0047 openvpn: Bump to 2.4.11 3 years ago
  RISCi_ATOM f13ddeff2d kernel: Bump to 4.14.224 3 years ago
  RISCi_ATOM 1c2be9ac65 wireguard: Bump to 1.0.20210219 3 years ago
  RISCi_ATOM ceb8d09bc7 librecmc: bump to v1.5.5 3 years ago
  RISCi_ATOM 0c397a6cda luci: Add luci-app-unbound to base 3 years ago
  RISCi_ATOM f5a68cadf9 tools: mklibs Add HOST_CPPFLAGS to fix compilation w/ GCC11 3 years ago
  Magnus Kroken 5e8cb25db1 mbedtls: update to 2.16.10 3 years ago
  Eneas U de Queiroz 84b8f809f1 openssl: bump to 1.1.1k 3 years ago
  RISCi_ATOM 4e8d3c332e uboot-envtools: Add tpe-r1300 3 years ago
  Stefan Lippers-Hollmann 440f4f98ee hostapd: P2P: Fix a corner case in peer addition based on PD Request 3 years ago
  Raphaël Mélotte 84f94a0612 hostapd: backport ignoring 4addr mode enabling error 3 years ago
  Eneas U de Queiroz 3e09af24fd wolfssl: bump to v4.7.0-stable 3 years ago
  Petr Štetiar aefa030568 build: fix checks for GCC11 3 years ago
  Eneas U de Queiroz 733e1818ad openssl: bump to 1.1.1j 3 years ago
  Hauke Mehrtens 3c4c5d7b9b wolfssl: Backport fix for CVE-2021-3336 3 years ago
  Daniel Golle 068f6e4c2f hostapd: fix P2P group information processing vulnerability 3 years ago
  Baptiste Jonglez c72e28169f opkg: update to latest git HEAD of branch openwrt-19.07 3 years ago
  Felix Fietkau a14e93b3cc wolfssl: enable HAVE_SECRET_CALLBACK 3 years ago
  Hauke Mehrtens 693091214f wolfssl: Fix hostapd build with wolfssl 4.6.0 3 years ago
  Eneas U de Queiroz 094121c6d6 wolfssl: Update to v4.6.0-stable 3 years ago
  Kevin Darbyshire-Bryant 4490c693e7 dnsmasq: backport fixes 3 years ago
  Hans Dedecker 4c44bebf94 netifd: fix IPv6 routing loop on point-to-point links 3 years ago
  Hans Dedecker c846bd377c odhcp6c: fix IPv6 routing loop on point-to-point links 3 years ago
  RISCi_ATOM be53bd03d0 Bump version to v1.5.4a 3 years ago
  RISCi_ATOM aca78f212b kernel: bump to 4.14.216 3 years ago
  Rosen Penev 8751927877 mbedtls: update to 2.16.9 3 years ago
  Hauke Mehrtens bd44222377 dnsmasq: Backport some security updates 3 years ago
  Hauke Mehrtens 015d9caed5 glibc: update to latest 2.27 commit 3 years ago
  RISCi_ATOM dfb14b51a2 hostapd: add wpad-basic-wolfssl variant 3 years ago
  RISCi_ATOM dcb91d7b45 wireguard: Bump to v1.0.20201221 3 years ago
  RISCi_ATOM 9e865ef063 openvpn: Bump to 2.4.10 3 years ago
  RISCi_ATOM fb019467b2 kernel: bump 4.14 to 4.14.212 3 years ago
  Hauke Mehrtens 99b1aaaa8c wireless-regdb: Update to version 2020.11.20 3 years ago
  Petr Štetiar 69ca42e6fe wireless-regdb: bump to latest release 2020-04-29 4 years ago
  Hauke Mehrtens 7fd69f190f mac80211: Update to version 4.19.161-1 3 years ago
  RISCi_ATOM 56cbd1f0df base: Remove libtirpc from base 3 years ago
  RISCi_ATOM 38bed91031 vpnc : Pull package from libreCMC src mirror vpnc svn repostiory is broken 3 years ago
  RISCi_ATOM 8436e8824e luci : Remove rpcd-mod-rad2-enc 3 years ago
  RISCi_ATOM 5428038bfc tor: update to version 0.4.4.6 3 years ago
  RISCi_ATOM bd3e0251d1 openssl: update to 1.1.1i 3 years ago
  David Bauer 6c15dceda6 generic: ipeth: fix iOS 14 tethering 3 years ago
  Andre Heider 78886da903 tools: always create $STAGING_DIR/usr/{include,lib} 3 years ago
  Petr Štetiar 3e8eb3768e download.pl: properly cleanup intermediate .hash file 3 years ago
  Petr Štetiar 68ef46d836 download: handle possibly invalid local tarballs 3 years ago
  Petr Štetiar e04c69fc1f cmake.mk,rules.mk: fix host builds using CMake and ccache 3 years ago
  Rosen Penev 1cb9efdb14 cmake.mk: set C/CXX compiler for host builds as well 3 years ago
  Klaus Kudielka ff02385742 mvebu: fixup Turris Omnia U-Boot environment 4 years ago
  Klaus Kudielka 0ba637ba2c mvebu: base-files: Update Turris Omnia U-Boot environment 4 years ago
  Klaus Kudielka 7b360682fe mvebu: Add turris-omnia.bootscript 4 years ago
  Klaus Kudielka 2b7b5cbceb uboot-envtools: mvebu: update uci defaults for Turris Omnia 4 years ago
  RISCi_ATOM ec420dd6e7 Defaults: Enable wolfssl as the default libssl 3 years ago
  RISCi_ATOM 74615cbd1f Bump version to v1.5.4 3 years ago
  RISCi_ATOM cdfb0b865f ath79 : Add support for the TPE-R1300 3 years ago
  RISCi_ATOM 98c30ac8e5 mvebu : Add missing swconfig package for Turris / WRT1900ACv1) 3 years ago
  RISCi_ATOM 076be882b0 ath79 : TPE-R1100 / GL.iNet GL-AR150 LED Fixup 3 years ago
  David Bauer d44d59b063 scripts: download.pl: retry download using filename 3 years ago
  Jan Pavlinec 7fc0869400 tcpdump: patch CVE-2020-8037 3 years ago
  Sven Eckelmann 57716778ff kernel: mtd: parser: cmdline: Fix parsing of part-names with colons 3 years ago
  Petr Štetiar 0de81c1c62 musl: handle wcsnrtombs destination buffer overflow (CVE-2020-28928) 3 years ago
  Petr Štetiar 17d834e272 ar71xx,ath79: refresh 910-unaligned_access_hacks.patch 3 years ago
  Aaron Goodman 5488087879 kernel: add netfilter-actual-sk patch 3 years ago
  Jo-Philipp Wich 788ee1c7c5 uhttpd: update to 19.07 Git HEAD 3 years ago
  RISCi_ATOM 00b9d1f53a kernel : bump to 4.14.209 3 years ago
  Alberto Bursi 8f59543a23 wireguard-tools: fix category/description in menuconfig 3 years ago
  Jason A. Donenfeld 11c3a480f0 wireguard: bump to 1.0.20201112 3 years ago
  Hauke Mehrtens 06ace83ea7 uci: Backport security fixes 3 years ago
  Hauke Mehrtens ad67070f11 firewall: options: fix parsing of boolean attributes 3 years ago
  Felix Fietkau a8d813a6ac mac80211: do not allow bigger VHT MPDUs than the hardware supports 3 years ago
  Chuanhong Guo 19110bcecb ath79: ar8216: make switch register access atomic 3 years ago
  RISCi_ATOM 2139e3d8a3 kernel : Bump to 4.14.202 3 years ago
  Hauke Mehrtens c335ed4cc7 kernel: fix nand_release() usage. 4 years ago
  RISCi_ATOM 619a21c201 librecmc: Bump version to v1.5.3 3 years ago
  Yousong Zhou be8b1eab59 firewall: backport patch for mss clamping in both directions 3 years ago
  Jo-Philipp Wich b3133d8a1e firewall: update to latest Git HEAD 4 years ago
  Magnus Kroken c342e5132b busybox: delete redundant patch 3 years ago
  Magnus Kroken ed5c85f11b mbedtls: update to 2.16.8 3 years ago
  Hauke Mehrtens 8a68fa9fba wolfssl: Activate link time optimization (LTO) 3 years ago
  Paul Spooren 75b508d1d1 wolfssl: add certgen config option 3 years ago
  RISCi_ATOM 2e95046b77 luci: Add support for wolfssl as an alternative to mbedtls. 3 years ago
  Jason A. Donenfeld cb922f4f68 wireguard-tools: bump to 1.0.20200827 3 years ago
  Eneas U de Queiroz f78f94a2e7 openssl: bump to 1.1.1h 3 years ago
  Rozhuk Ivan 8a26f89da9 comgt: fix hotplug event handling 4 years ago
  RISCi_ATOM c36c0d5447 kernel : bump to 4.14.199 3 years ago
  Jason A. Donenfeld 6262ce22aa wireguard: bump to 1.0.20200908 3 years ago
  Hauke Mehrtens 49e99a5126 hostapd: Fix compile errors after wolfssl update 3 years ago
  RISCi_ATOM acbba60747 curl: Bump to 7.72.0 3 years ago
  Hauke Mehrtens 9150024a85 wolfssl: Update to version 4.5.0 3 years ago
  Eneas U de Queiroz 249c46266d wolfssl: use -fomit-frame-pointer to fix asm error 4 years ago
  Eneas U de Queiroz 49123a7433 wolfssl: update to 4.4.0-stable 4 years ago
  RISCi_ATOM 9003a2e19e kernel: Bump to 4.14.198 3 years ago
  RISCi_ATOM f5df1bd111 kernel: Bump to 4.14.196 3 years ago
  RISCi_ATOM a96491e6df kernel: Bump to 4.14.195 3 years ago
  RISCi_ATOM 3fc2788123 kernel: Bump to 4.14.194 3 years ago
  RISCi_ATOM 6c1fcd028d kernel: Bump to 4.14.193 3 years ago
  RISCi_ATOM 23ff25007e kernel: Bump kernel to 4.14.191 3 years ago
  RISCi_ATOM d2eb9e210f kernel: Bump to 4.14.187 3 years ago
  RISCi_ATOM 68dcde4227 mac80211: Update to 4.19.137-1 3 years ago
  Hauke Mehrtens bcd02fc014 mac80211: Fix potential endless loop 3 years ago
  Jason A. Donenfeld b91cc1a307 wireguard: bump to 1.0.20200729 3 years ago
  RISCi_ATOM 9f91ff61b3 tor: update to version 0.4.3.6 (security fix) 3 years ago
  Leon M. George feac660813 mac80211: fix use of local variable 4 years ago
  Hans Dedecker d019a44c2d nghttp2: bump to 1.41.0 4 years ago
  Magnus Kroken 9bbd5dea9d mbedtls: update to 2.16.7 3 years ago
  Jan Pavlinec 9d9734c3e3 curl: patch CVE-2020-8169 3 years ago
  RISCi_ATOM 6d3dc7a6ae Merge branch 'v1.5' into LTS : v1.5.2 4 years ago
  RISCi_ATOM b3ca507f32 Bump version to v1.5.2 4 years ago
  RISCi_ATOM 4eaf9e5e42 mvebu: Add basic support for WRT1900AC (v1) and Turris Omnia (pre 2019) 4 years ago
  RISCi_ATOM 25690ce506 wireguard: bump to 1.0.20200623 4 years ago
  RISCi_ATOM a6e331ba72 kernel: Bump to 4.14.185 4 years ago
  Jo-Philipp Wich 2610598636 uclient: update to 19.07 Git HEAD 4 years ago
  Christian Lamparter bb1f93fe39 ath79: wndr3700 series: fix wifi range & throughput 4 years ago
  Christian Lamparter 2cdc7512b1 ca-certificates: update to version 20200601 4 years ago
  RISCi_ATOM 4154de0ae2 build: Switch to Python3 4 years ago
  Petr Štetiar 922240ee63 scons: move to packages feed 4 years ago
  Lech Perczak e916e86486 ar71xx: fix reset key for TP-Link TL-WR802N V1/V2 4 years ago
  John Crispin bf9a0a99f8 generic: fix flow table hw offload 4 years ago
  David Bauer f42da46fe9 ar71xx: correct button type for TL-MR3020 mode slider 4 years ago
  Jo-Philipp Wich c8ffb21476 qos-scripts: fix interface resolving 4 years ago
  Matthias Schiffer eac715b04e musl: fix locking synchronization bug 4 years ago
  Felix Fietkau 1beb2afc0f libubox: update to the latest version 4 years ago
  Rafał Miłecki d2de8dfa5e libubox: update to the latest master 4 years ago
  Jo-Philipp Wich d1c751d20f libubox: update to latest Git HEAD 4 years ago
  Jo-Philipp Wich ea01a51104 rpcd: update to latest openwrt-19.07 Git HEAD 4 years ago
  Jason A. Donenfeld 79e0351b2e wireguard-tools: bump to 1.0.20200513 4 years ago
  Jason A. Donenfeld 51d507af21 wireguard: bump to 1.0.20200520 4 years ago
  Daniel Golle 18086fb655 hostapd: backport wolfssl bignum fixes 4 years ago
  Matthias Schiffer c258b66c89 ucert: update to latest git HEAD 4 years ago
  Hauke Mehrtens e955607fee squashfs: Fix compile with GCC 10 4 years ago
  Matthias Schiffer e07fda3ea0 usign: update to latest git HEAD 4 years ago
  Hauke Mehrtens 4119d8a620 usign: update to latest Git HEAD 4 years ago
  Robert Marko 2c4ca7ef1d libjson-c: backport security fixes 4 years ago
  Daniel Golle 05dc838d13 fstools: blockd: fix segfault triggered by non-autofs mounts 4 years ago
  RISCi_ATOM ff8cae7e95 kernel: Bump 4.14 to 4.14.180 4 years ago
  Lech Perczak 45f640099b ath79: dts: add missing 'serial0' alias for TP-Link TL-MR3040v2 4 years ago
  RISCi_ATOM 662c3949da odhcpd: Fix PKG_MIRROR_HASH 4 years ago
  Jo-Philipp Wich fd7a71b3c0 opkg: update to latest Git HEAD 4 years ago
  RISCi_ATOM 0d44d661a6 wireguard: bump to 1.0.20200506 4 years ago
  Hans Dedecker 8d16c4e56c odhcpd: fix PKG_SOURCE_DATE 4 years ago
  Hans Dedecker ff793f35db odhcpd: fix lan host reachibility due to identical RIO and PIO prefixes (FS#3056) 4 years ago
  Jo-Philipp Wich 28a53e67ad ustream-ssl: update to 19.07 Git HEAD 4 years ago
  Jo-Philipp Wich a76e4f817b uhttpd: update to 19.07 Git HEAD 4 years ago
  Rafał Miłecki e3f7d0de8d fstools: update to the latest version 4 years ago
  Felix Fietkau d7b1f7e1d9 fstools: update to the latest version 4 years ago
  Hauke Mehrtens c5472b8ce3 mac80211: Update to version 4.19.120 4 years ago
  Hauke Mehrtens 7572abca5c dante: Fix compile with glibc 4 years ago
  Yangbo Lu 1d9ca5a21b perf: build with NO_LIBCAP=1 4 years ago
  Matt Merhar 65c8162bc5 kernel: backport fix for non-regular inodes on f2fs 4 years ago
  RISCi_ATOM 36a091784c Bump kernel to 4.14.179 4 years ago
  Antonio Quartulli 57283378d4 wpad-wolfssl: fix crypto_bignum_sub() 4 years ago
  Felix Fietkau 1abb1c3413 mac80211: backport fix for an no-ack tx status issue 4 years ago
  Felix Fietkau 3ad53f10bc hostapd: unconditionally enable ap/mesh for wpa-cli 4 years ago
  Daniel Golle 75d65a39dc hostapd: cleanup IBSS-RSN 4 years ago
  Petr Štetiar c1e3808de8 wireless-regdb: backport three upstream fixes 4 years ago
  Petr Štetiar 64792b9c25 curl: backport fix for CVE-2019-15601 4 years ago
  RISCI_ATOM 19b1d5de8b Merge branch 'LTS' of jahway603/libreCMC into LTS 4 years ago
  RISCi_ATOM c13b090fac wireguard: bump to 1.0.20200429 4 years ago
  Kevin Darbyshire-Bryant 8aea12992e relayd: bump to version 2020-04-25 4 years ago
  Kevin Darbyshire-Bryant 6604ac7aa5 umdns: update to version 2020-04-25 4 years ago
  Henrique de Moraes Holschuh 906a916780 dnsmasq: fix dnssec+ntp chicken-and-egg workaround (FS#2574) 4 years ago
  Petr Štetiar 3868b2cbb7 libpcap: fix build breakage with very high number of simultaneous jobs 4 years ago
  RISCi_ATOM b3b306686d Change AR71XX support to and link to Supported Hardware page 4 years ago
  Petr Štetiar 97f036a3cb openssl: bump to 1.1.1g 4 years ago
  Kevin Darbyshire-Bryant bfc4c199f8 relayd: bump to version 2020-04-20 4 years ago
  Kevin Darbyshire-Bryant 49a45b3fda umdns: update to version 2020-04-20 4 years ago
  Kevin Darbyshire-Bryant 830311ee1a umdns: update to the version 2020-04-05 4 years ago
  Kevin Darbyshire-Bryant 0e883630ce umdns: suppress address-of-packed-member warning 4 years ago
  Hans Dedecker cd308d9be7 binutils: add ALTERNATIVES for strings (FS#3001) 4 years ago
  Magnus Kroken d95bed4c44 mbedtls: update to 2.16.6 4 years ago
  RISCi_ATOM 6a6ce6edbc kernel: bump 4.14 to 4.14.176 4 years ago
  Josef Schlehofer 9a1e9434ca mbedtls: update to version 2.16.5 4 years ago
  Eneas U de Queiroz 0457d941b2 openssl: bump to 1.1.1f 4 years ago
  RISCi_ATOM 091a6da9ac Fix README.md links 4 years ago
  RISCi_ATOM 46ffae4fa1 Fix image links in docs/* 4 years ago
  RISCi_ATOM 17850b986b Bump tor to 0.4.2.7 4 years ago
100 changed files with 2566 additions and 575 deletions
  1. 1 1
      Makefile
  2. 2 0
      docs/Supported_Hardware.md
  3. 45 0
      docs/TPE_R1300.md
  4. 43 0
      docs/TPE_R1400.md
  5. 16 0
      include/cmake.mk
  6. 1 1
      include/download.mk
  7. 2 0
      include/host-build.mk
  8. 3 2
      include/kernel-version.mk
  9. 3 3
      include/kernel.mk
  10. 2 0
      include/package.mk
  11. 36 11
      include/prereq-build.mk
  12. 4 4
      include/prereq.mk
  13. 0 23
      include/scons.mk
  14. 1 1
      include/target.mk
  15. 1 1
      include/version.mk
  16. 1 0
      package/base-files/files/etc/init.d/boot
  17. 50 0
      package/boot/arm-trusted-firmware-rockchip/Makefile
  18. 1 1
      package/boot/uboot-envtools/Makefile
  19. 1 0
      package/boot/uboot-envtools/files/ath79
  20. 5 1
      package/boot/uboot-envtools/files/mvebu
  21. 106 0
      package/boot/uboot-rockchip/Makefile
  22. 24 0
      package/boot/uboot-rockchip/patches/001-scripts-remove-dependency-on-swig.patch
  23. 32 0
      package/boot/uboot-rockchip/patches/002-spl-remove-dtoc-of-pdata-generation.patch
  24. 62 0
      package/boot/uboot-rockchip/patches/003-fixup-compatible-old-dtc.patch
  25. 530 0
      package/boot/uboot-rockchip/patches/100-rockchip-rk3328-Add-support-for-FriendlyARM-NanoPi-R.patch
  26. 486 0
      package/boot/uboot-rockchip/patches/101-rockchip-rk3328-Add-support-for-ThinkPenguin-TPE-R1400.patch
  27. 149 0
      package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-platdata.c
  28. 72 0
      package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-structs-gen.h
  29. 149 0
      package/boot/uboot-rockchip/src/of-platdata/tpe-r1400-rk3328/dt-platdata.c
  30. 72 0
      package/boot/uboot-rockchip/src/of-platdata/tpe-r1400-rk3328/dt-structs-gen.h
  31. 23 0
      package/boot/uboot-sunxi/patches/001-yylloc-redefinition.patch
  32. 1 0
      package/devel/perf/Makefile
  33. 3 2
      package/firmware/wireless-regdb/Makefile
  34. 0 58
      package/firmware/wireless-regdb/patches/010-regdb-fix-compatibility-with-python2.patch
  35. 3 3
      package/kernel/mac80211/Makefile
  36. 1 1
      package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
  37. 2 2
      package/kernel/mac80211/patches/ath/356-Revert-ath9k-interpret-requested-txpower-in-EIRP-dom.patch
  38. 1 1
      package/kernel/mac80211/patches/ath/365-ath9k-adjust-tx-power-reduction-for-US-regulatory-do.patch
  39. 1 1
      package/kernel/mac80211/patches/ath/400-ath_move_debug_code.patch
  40. 2 2
      package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch
  41. 2 2
      package/kernel/mac80211/patches/ath/500-ath9k_eeprom_debugfs.patch
  42. 2 2
      package/kernel/mac80211/patches/ath/512-ath9k_channelbw_debugfs.patch
  43. 5 5
      package/kernel/mac80211/patches/ath/530-ath9k_extra_leds.patch
  44. 7 7
      package/kernel/mac80211/patches/ath/542-ath9k_debugfs_diag.patch
  45. 2 2
      package/kernel/mac80211/patches/ath/544-ath9k-ar933x-usb-hang-workaround.patch
  46. 2 2
      package/kernel/mac80211/patches/ath/548-ath9k_enable_gpio_chip.patch
  47. 1 1
      package/kernel/mac80211/patches/ath/549-ath9k_enable_gpio_buttons.patch
  48. 2 2
      package/kernel/mac80211/patches/ath/551-ath9k_ubnt_uap_plus_hsr.patch
  49. 1 1
      package/kernel/mac80211/patches/ath/552-ahb_of.patch
  50. 10 10
      package/kernel/mac80211/patches/subsys/100-remove-cryptoapi-dependencies.patch
  51. 1 1
      package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch
  52. 1 1
      package/kernel/mac80211/patches/subsys/140-tweak-TSQ-setting.patch
  53. 3 3
      package/kernel/mac80211/patches/subsys/150-disable_addr_notifier.patch
  54. 1 1
      package/kernel/mac80211/patches/subsys/210-ap_scan.patch
  55. 5 5
      package/kernel/mac80211/patches/subsys/300-mac80211-add-stop-start-logic-for-software-TXQs.patch
  56. 1 1
      package/kernel/mac80211/patches/subsys/303-mac80211-minstrel-Enable-STBC-and-LDPC-for-VHT-Rates.patch
  57. 6 6
      package/kernel/mac80211/patches/subsys/304-mac80211-minstrel-remove-unnecessary-debugfs-cleanup.patch
  58. 82 0
      package/kernel/mac80211/patches/subsys/305-mac80211-fix-tx-status-for-no-ack-cases.patch
  59. 5 5
      package/kernel/mac80211/patches/subsys/305-mac80211-minstrel-merge-with-minstrel_ht-always-enab.patch
  60. 1 1
      package/kernel/mac80211/patches/subsys/316-mac80211-minstrel_ht-improve-rate-probing-for-device.patch
  61. 9 9
      package/kernel/mac80211/patches/subsys/320-mac80211-Add-TXQ-scheduling-API.patch
  62. 3 3
      package/kernel/mac80211/patches/subsys/321-cfg80211-Add-airtime-statistics-and-settings.patch
  63. 16 16
      package/kernel/mac80211/patches/subsys/322-mac80211-Add-airtime-accounting-and-scheduling-to-TX.patch
  64. 1 1
      package/kernel/mac80211/patches/subsys/323-mac80211-Expose-ieee80211_schedule_txq-function.patch
  65. 17 17
      package/kernel/mac80211/patches/subsys/350-mac80211-add-hdrlen-to-ieee80211_tx_data.patch
  66. 18 18
      package/kernel/mac80211/patches/subsys/351-mac80211-add-TX_NEEDS_ALIGNED4_SKBS-hw-flag.patch
  67. 5 5
      package/kernel/mac80211/patches/subsys/352-mac80211-rework-locking-for-txq-scheduling-airtime-f.patch
  68. 6 6
      package/kernel/mac80211/patches/subsys/353-mac80211-mesh-drop-redundant-rcu_read_lock-unlock-ca.patch
  69. 6 6
      package/kernel/mac80211/patches/subsys/354-mac80211-calculate-hash-for-fq-without-holding-fq-lo.patch
  70. 4 4
      package/kernel/mac80211/patches/subsys/355-mac80211-run-late-dequeue-late-tx-handlers-without-h.patch
  71. 1 1
      package/kernel/mac80211/patches/subsys/356-mac80211-set-NETIF_F_LLTX-when-using-intermediate-tx.patch
  72. 36 23
      package/kernel/mac80211/patches/subsys/357-mac80211-optimize-skb-resizing.patch
  73. 3 3
      package/kernel/mac80211/patches/subsys/358-mac80211-make-ieee80211_schedule_txq-schedule-empty-.patch
  74. 1 1
      package/kernel/mac80211/patches/subsys/359-mac80211-un-schedule-TXQs-on-powersave-start.patch
  75. 3 3
      package/kernel/mac80211/patches/subsys/360-mac80211-when-using-iTXQ-select-the-queue-in-ieee802.patch
  76. 2 2
      package/kernel/mac80211/patches/subsys/361-mac80211-add-IEEE80211_KEY_FLAG_GENERATE_MMIE-to-iee.patch
  77. 3 3
      package/kernel/mac80211/patches/subsys/362-mac80211-minstrel-remove-divisions-in-tx-status-path.patch
  78. 5 5
      package/kernel/mac80211/patches/subsys/363-mac80211-minstrel_ht-replace-rate-stats-ewma-with-a-.patch
  79. 3 3
      package/kernel/mac80211/patches/subsys/364-mac80211-minstrel_ht-rename-prob_ewma-to-prob_avg-us.patch
  80. 7 7
      package/kernel/mac80211/patches/subsys/365-mac80211-IBSS-send-deauth-when-expiring-inactive-STA.patch
  81. 1 1
      package/kernel/mac80211/patches/subsys/367-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch
  82. 1 1
      package/kernel/mac80211/patches/subsys/368-cfg80211-add-local-BSS-receive-time-to-survey-inform.patch
  83. 4 4
      package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch
  84. 54 0
      package/libs/libevdev/Makefile
  85. 14 0
      package/libs/libevdev/patches/010-no-clock-monotonic-raw-in-uclibc.patch
  86. 21 5
      package/libs/libgpg-error/Makefile
  87. 0 7
      package/libs/libgpg-error/patches/010-add-arc-support.patch
  88. 27 0
      package/libs/libgpg-error/patches/020-build-fix-generation.patch
  89. 0 158
      package/libs/libgpg-error/patches/020-gawk5-support.patch
  90. 1 1
      package/libs/libjson-c/Makefile
  91. 1 1
      package/libs/libjson-c/patches/000-libm.patch
  92. 32 0
      package/libs/libjson-c/patches/001-Prevent-division-by-zero-in-linkhash.patch
  93. 83 0
      package/libs/libjson-c/patches/002-Fix-integer-overflows.patch
  94. 2 3
      package/libs/libpcap/Makefile
  95. 0 60
      package/libs/libtirpc/Makefile
  96. 0 18
      package/libs/libtirpc/patches/001-musl.patch
  97. 3 3
      package/libs/libubox/Makefile
  98. 51 0
      package/libs/libudev-fbsd/Makefile
  99. 20 0
      package/libs/libudev-fbsd/patches/003-add-pkg-config-description.patch
  100. 25 0
      package/libs/libudev-fbsd/patches/005-extern-c.patch

+ 1 - 1
Makefile

@@ -18,7 +18,7 @@ $(if $(findstring $(space),$(TOPDIR)),$(error ERROR: The path to the libreCMC di
 
 world:
 
-DISTRO_PKG_CONFIG:=$(shell which -a pkg-config | grep -E '\/usr' | head -n 1)
+DISTRO_PKG_CONFIG:=$(shell which -a pkg-config | grep -E '/usr' | head -n 1)
 export PATH:=$(TOPDIR)/staging_dir/host/bin:$(PATH)
 
 ifneq ($(LIBRECMC_BUILD),1)

+ 2 - 0
docs/Supported_Hardware.md

@@ -25,6 +25,8 @@ method which is required for the initial install of libreCMC.
 * [TPE-NWIFIROUTER2](/TPE_NWIFIROUTER2.md)
 * [TPE-R1100](/TPE_R1100.md)
 * [TPE-R1200](/TPE_R1200.md)
+* [TPE-R1300](/TPE_R1300.md)
+* [TPE-R1400](/TPE_R1400.md)
 
 ### Qi-Hardware
 

+ 45 - 0
docs/TPE_R1300.md

@@ -0,0 +1,45 @@
+# Think Penguin [TPE-R1300 Wireless-N Mini VPN Router v3](https://thinkpenguin.com/gnu-linux/free-software-wireless-n-mini-vpn-router-v3-tpe-r1300)
+
+## Specs
+
+* SoC: Qualcomm QCA9531 SoC, 650MHz CPU
+* RAM: 128MB
+* Flash: 16MB NOR
+* NIC: 2 10/100 Mbps Ethernet Ports
+* USB: 1x 2.0 port
+* WiFi: Qualcomm 802.11b/g/n 2.4Ghz
+* Power: 5V 1A USB (power consumption < 2W)
+
+The TPE-R1300 is a general purpose mini WiFi router
+that can be used for a wide range of applications. 
+Some common uses include:
+
+* Route all traffic over a VPN when on the go.
+* WiFi to ethernet bridge.
+* A small web server.
+* IRC bouncer.
+* Meshnet node (CJDNS, Batman...).
+
+# Firmware Images
+
+See our [flavors](https://librecmc.org/flavors.html) page for a description of each type of libreCMC image.
+
+## Main
+
+[TPE-R1300 NOR](https://librecmc.org/librecmc/downloads/snapshots/current/main/targets/ath79/generic/librecmc-ath79-generic-thinkpenguin_tpe-r1300-squashfs-sysupgrade.bin)
+
+## Core
+
+[TPE-R1300 NOR](https://librecmc.org/librecmc/downloads/snapshots/current/core/targets/ath79/generic/librecmc-ath79-generic-thinkpenguin_tpe-r1300-squashfs-sysupgrade.bin)
+
+## Image File Signatures 
+
+[Main sha256sums](https://librecmc.org/librecmc/downloads/snapshots/current/main/targets/ath79/generic/sha256sums)
+
+[Main sha256sums.asc](https://librecmc.org/librecmc/downloads/snapshots/current/main/targets/ath79/generic/sha256sums.asc)
+
+
+[Core sha256sums](https://librecmc.org/librecmc/downloads/snapshots/current/core/targets/ath79/generic/sha256sums)
+
+[Core sha256sums.asc](https://librecmc.org/librecmc/downloads/snapshots/current/core/targets/ath79/generic/sha256sums.asc)
+

+ 43 - 0
docs/TPE_R1400.md

@@ -0,0 +1,43 @@
+# Think Penguin [TPE-R1400 Gigabit Mini VPN Router](https://thinkpenguin.com/gnu-linux/free-software-gigabit-mini-vpn-router-tpe-r1400)
+
+## Specs
+
+* CPU: Rockchip RK3328 Quad-core 64 bit Cortex-A53 (runs at up to 1.4Ghz)
+* RAM: 1GB
+* Micro-SD: up to 128GB
+* NIC: 2 10/100/1000 Mbps Ethernet Ports
+* USB: 1x 2.0 port
+* WiFi: N/A
+* Power: 5V 2A USB
+
+The TPE-R1400 is a general purpose mini Gigabit router
+that can be used for a wide range of applications. 
+Some common uses include:
+
+* Route all traffic over a VPN.
+* A small web server.
+* IRC bouncer.
+
+# Firmware Images
+
+See our [flavors](https://librecmc.org/flavors.html) page for a description of each type of libreCMC image.
+
+## Main
+
+[TPE-R1400](https://librecmc.org/librecmc/downloads/snapshots/current/main/targets/rockchip/armv8/librecmc-rockchip-armv8-thinkpenguin_tpe-r1400-squashfs-sysupgrade.img.gz)
+
+## Core
+
+[TPE-R1400](https://librecmc.org/librecmc/downloads/snapshots/current/core/targets/rockchip/armv8/librecmc-rockchip-armv8-thinkpenguin_tpe-r1400-squashfs-sysupgrade.img.gz)
+
+## Image File Signatures 
+
+[Main sha256sums](https://librecmc.org/librecmc/downloads/snapshots/current/main/targets/rockchip/armv8/sha256sums)
+
+[Main sha256sums.asc](https://librecmc.org/librecmc/downloads/snapshots/current/main/targets/rockchip/armv8/sha256sums.asc)
+
+
+[Core sha256sums](https://librecmc.org/librecmc/downloads/snapshots/current/core/targets/rockchip/armv8/sha256sums)
+
+[Core sha256sums.asc](https://librecmc.org/librecmc/downloads/snapshots/current/core/targets/rockchip/armv8/sha256sums.asc)
+

+ 16 - 0
include/cmake.mk

@@ -22,12 +22,22 @@ ifeq ($(CONFIG_CCACHE),)
  CMAKE_CXX_COMPILER:=$(call cmake_tool,$(TARGET_CXX))
  CMAKE_C_COMPILER_ARG1:=
  CMAKE_CXX_COMPILER_ARG1:=
+
+ CMAKE_HOST_C_COMPILER:=$(HOSTCC)
+ CMAKE_HOST_CXX_COMPILER:=$(HOSTCXX)
+ CMAKE_HOST_C_COMPILER_ARG1:=
+ CMAKE_HOST_CXX_COMPILER_ARG1:=
 else
   CCACHE:=$(STAGING_DIR_HOST)/bin/ccache
   CMAKE_C_COMPILER:=$(CCACHE)
   CMAKE_C_COMPILER_ARG1:=$(TARGET_CC_NOCACHE)
   CMAKE_CXX_COMPILER:=$(CCACHE)
   CMAKE_CXX_COMPILER_ARG1:=$(TARGET_CXX_NOCACHE)
+
+  CMAKE_HOST_C_COMPILER:=$(CCACHE)
+  CMAKE_HOST_C_COMPILER_ARG1:=$(HOSTCC_NOCACHE)
+  CMAKE_HOST_CXX_COMPILER:=$(CCACHE)
+  CMAKE_HOST_CXX_COMPILER_ARG1:=$(HOSTCXX_NOCACHE)
 endif
 CMAKE_AR:=$(call cmake_tool,$(TARGET_AR))
 CMAKE_NM:=$(call cmake_tool,$(TARGET_NM))
@@ -90,6 +100,12 @@ define Host/Configure/Default
 		LDFLAGS="$(HOST_LDFLAGS)" \
 		cmake \
 			-DCMAKE_BUILD_TYPE=Release \
+			-DCMAKE_C_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
+			-DCMAKE_C_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \
+			-DCMAKE_CXX_COMPILER="$(CMAKE_HOST_CXX_COMPILER)" \
+			-DCMAKE_CXX_COMPILER_ARG1="$(CMAKE_HOST_CXX_COMPILER_ARG1)" \
+			-DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
+			-DCMAKE_ASM_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \
 			-DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_EXE_LINKER_FLAGS:STRING="$(HOST_LDFLAGS)" \

+ 1 - 1
include/download.mk

@@ -28,7 +28,7 @@ define dl_method
 $(strip \
   $(if $(filter git,$(2)),$(call dl_method_git,$(1),$(2)),
     $(if $(2),$(2), \
-      $(if $(filter @APACHE/% @GITHUB/% @GNOME/% @GNU/% @KERNEL_LIBRE/% @KERNEL/% @SF/% @SAVANNAH/% ftp://% http://% https://% file://%,$(1)),default, \
+      $(if $(filter @APACHE/% @DEBIAN/% @GITHUB/% @GNOME/% @GNU/% @KERNEL_LIBRE/% @KERNEL/% @SF/% @SAVANNAH/% ftp://% http://% https://% file://%,$(1)),default, \
         $(if $(filter git://%,$(1)),$(call dl_method_git,$(1),$(2)), \
           $(if $(filter svn://%,$(1)),svn, \
             $(if $(filter cvs://%,$(1)),cvs, \

+ 2 - 0
include/host-build.mk

@@ -184,6 +184,8 @@ ifndef DUMP
     clean-build: host-clean-build
   endif
 
+  $(DL_DIR)/$(FILE): FORCE
+
   $(_host_target)host-prepare: $(HOST_STAMP_PREPARED)
   $(_host_target)host-configure: $(HOST_STAMP_CONFIGURED)
   $(_host_target)host-compile: $(HOST_STAMP_BUILT) $(HOST_STAMP_INSTALLED)

+ 3 - 2
include/kernel-version.mk

@@ -6,9 +6,10 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-4.14 = .173
+LINUX_VERSION-4.14 = .334
+LIBRE_REV = 1
 
-LINUX_KERNEL_HASH-4.14.173 = 615f3a798d99b2e986627f0c5618bee8dfd61e7f645bcc3bb90cfaf953d9cb26
+LINUX_KERNEL_HASH-4.14.334 = 8665c68f0496165783d3c1e4176ad42838ba194de0ae25d548bcf9379b250177
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

+ 3 - 3
include/kernel.mk

@@ -60,15 +60,15 @@ else
   LINUX_KERNEL:=$(KERNEL_BUILD_DIR)/vmlinux
 
   ifneq (,$(findstring -rc,$(LINUX_VERSION)))
-      LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu.tar.gz
+      LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu$(LIBRE_REV).tar.gz
   else
-      LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu.tar.xz
+      LINUX_SOURCE:=linux-libre-$(LINUX_VERSION)-gnu$(LIBRE_REV).tar.xz
   endif
 
   ifneq (,$(findstring -rc,$(LINUX_VERSION)))
       LINUX_SITE:=
   else ifeq ($(call qstrip,$(CONFIG_EXTERNAL_KERNEL_TREE))$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),)
-      LINUX_SITE:=@KERNEL_LIBRE/$(LINUX_VERSION)-gnu$(TESTING)
+      LINUX_SITE:=@KERNEL_LIBRE/$(LINUX_VERSION)-gnu$(LIBRE_REV)$(TESTING)
   else
       LINUX_UNAME_VERSION:=$(strip $(shell cat $(LINUX_DIR)/include/config/kernel.release 2>/dev/null))
   endif

+ 2 - 0
include/package.mk

@@ -185,6 +185,8 @@ define Build/CoreTargets
   $(call Build/Autoclean)
   $(call DefaultTargets)
 
+  $(DL_DIR)/$(FILE): FORCE
+
   download:
 	$(foreach hook,$(Hooks/Download),
 		$(call $(hook))$(sep)

+ 36 - 11
include/prereq-build.mk

@@ -28,8 +28,8 @@ $(eval $(call TestHostCommand,proper-umask, \
 
 $(eval $(call SetupHostCommand,gcc, \
 	Please install the GNU C Compiler (gcc) 4.8 or later, \
-	$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
-	gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
+	$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
+	gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
 	gcc --version | grep -E 'Apple.(LLVM|clang)' ))
 
 $(eval $(call TestHostCommand,working-gcc, \
@@ -40,8 +40,8 @@ $(eval $(call TestHostCommand,working-gcc, \
 
 $(eval $(call SetupHostCommand,g++, \
 	Please install the GNU C++ Compiler (g++) 4.8 or later, \
-	$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
-	g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
+	$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
+	g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|1[0-9]\.?)', \
 	g++ --version | grep -E 'Apple.(LLVM|clang)' ))
 
 $(eval $(call TestHostCommand,working-g++, \
@@ -62,11 +62,26 @@ else
   zlib_link_flags := -lz
 endif
 
+$(eval $(call TestHostCommand,perl-data-dumper, \
+	Please install the Perl Data::Dumper module, \
+	perl -MData::Dumper -e 1))
+
+$(eval $(call TestHostCommand,perl-findbin, \
+	Please install the Perl FindBin module, \
+	perl -MFindBin -e 1))
+
+$(eval $(call TestHostCommand,perl-file-copy, \
+	Please install the Perl File::Copy module, \
+	perl -MFile::Copy -e 1))
+
+$(eval $(call TestHostCommand,perl-file-compare, \
+	Please install the Perl File::Compare module, \
+	perl -MFile::Compare -e 1))
+
 $(eval $(call TestHostCommand,perl-thread-queue, \
 	Please install the Perl Thread::Queue module, \
 	perl -MThread::Queue -e 1))
 
-
 $(eval $(call SetupHostCommand,tar,Please install GNU 'tar', \
 	gtar --version 2>&1 | grep GNU, \
 	gnutar --version 2>&1 | grep GNU, \
@@ -127,12 +142,22 @@ $(eval $(call SetupHostCommand,wget,Please install GNU 'wget', \
 $(eval $(call SetupHostCommand,perl,Please install Perl 5.x, \
 	perl --version | grep "perl.*v5"))
 
-$(eval $(call CleanupPython3))
+$(eval $(call CleanupPython2))
+
+$(eval $(call SetupHostCommand,python,Please install Python >= 3.5, \
+	python3.12 -V 2>&1 | grep 'Python 3', \
+	python3.11 -V 2>&1 | grep 'Python 3', \
+	python3.10 -V 2>&1 | grep 'Python 3', \
+	python3.9 -V 2>&1 | grep 'Python 3', \
+	python3.8 -V 2>&1 | grep 'Python 3', \
+	python3.7 -V 2>&1 | grep 'Python 3', \
+	python3.6 -V 2>&1 | grep 'Python 3', \
+	python3.5 -V 2>&1 | grep 'Python 3', \
+	python3 -V 2>&1 | grep -E 'Python 3\.([5-9]|10)\.?'))
 
-$(eval $(call SetupHostCommand,python,Please install Python 2.x, \
-	python2.7 -V 2>&1 | grep 'Python 2.7', \
-	python2 -V 2>&1 | grep 'Python 2', \
-	python -V 2>&1 | grep 'Python 2'))
+$(eval $(call TestHostCommand,python3-jsmin, \
+        Please install the jsmin Python module, \
+        python3 -c "import jsmin" 2>&1 ))
 
 $(eval $(call SetupHostCommand,git,Please install Git (git-core) >= 1.7.12.2, \
 	git --exec-path | xargs -I % -- grep -q -- --recursive %/git-submodule))
@@ -142,7 +167,7 @@ $(eval $(call SetupHostCommand,file,Please install the 'file' package, \
 
 $(STAGING_DIR_HOST)/bin/mkhash: $(SCRIPT_DIR)/mkhash.c
 	mkdir -p $(dir $@)
-	$(CC) -O2 -I$(TOPDIR)/tools/include -o $@ $<
+	$(CC) -I$(TOPDIR)/tools/include -o $@ $<
 
 prereq: $(STAGING_DIR_HOST)/bin/mkhash
 

+ 4 - 4
include/prereq.mk

@@ -66,16 +66,16 @@ define RequireHeader
   $$(eval $$(call Require,$(1),$(2)))
 endef
 
-define CleanupPython3
-  define Require/python3-cleanup
+define CleanupPython2
+  define Require/python2-cleanup
 	if [ -f "$(STAGING_DIR_HOST)/bin/python" ] && \
 		$(STAGING_DIR_HOST)/bin/python -V 2>&1 | \
-		grep -q 'Python 3'; then \
+		grep -q 'Python 2'; then \
 			rm $(STAGING_DIR_HOST)/bin/python; \
 	fi
   endef
 
-  $$(eval $$(call Require,python3-cleanup))
+  $$(eval $$(call Require,python2-cleanup))
 endef
 
 define QuoteHostCommand

+ 0 - 23
include/scons.mk

@@ -1,23 +0,0 @@
-export PLATFORM=posix
-
-SCONS_VARS = \
-	CC="$(TARGET_CC_NOCACHE)" \
-	CXX="$(TARGET_CXX_NOCACHE)" \
-	CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \
-	CXXFLAGS="$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS)" \
-	CPPFLAGS="$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
-	LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
-	DESTDIR="$(PKG_INSTALL_DIR)"
-
-define Build/Configure/Default
-	(cd $(PKG_BUILD_DIR); \
-		$(SCONS_VARS) \
-		scons \
-			prefix=/usr \
-			$(SCONS_OPTIONS) \
-		install \
-	)
-endef
-
-define Build/Compile
-endef

+ 1 - 1
include/target.mk

@@ -13,7 +13,7 @@ __target_inc=1
 DEVICE_TYPE?=router
 
 # Default packages - the really basic set
-DEFAULT_PACKAGES:=base-files ca-bundle libmbedtls libustream-mbedtls libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd urandom-seed urngd
+DEFAULT_PACKAGES:=base-files ca-bundle libc libgcc libustream-wolfssl busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd urandom-seed urngd
 # For nas targets
 DEFAULT_PACKAGES.nas:=block-mount fdisk lsblk mdadm
 # For router targets

+ 1 - 1
include/version.mk

@@ -26,7 +26,7 @@ PKG_CONFIG_DEPENDS += \
 sanitize = $(call tolower,$(subst _,-,$(subst $(space),-,$(1))))
 
 VERSION_NUMBER:=$(call qstrip,$(CONFIG_VERSION_NUMBER))
-VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),v1.5.1)
+VERSION_NUMBER:=$(if $(VERSION_NUMBER),$(VERSION_NUMBER),v1.5.15)
 
 VERSION_CODE:=$(call qstrip,$(CONFIG_VERSION_CODE))
 VERSION_CODE:=$(if $(VERSION_CODE),$(VERSION_CODE),$(REVISION))

+ 1 - 0
package/base-files/files/etc/init.d/boot

@@ -45,6 +45,7 @@ boot() {
 
 	/bin/config_generate
 	uci_apply_defaults
+	sync
 	
 	# temporary hack until configd exists
 	/sbin/reload_config

+ 50 - 0
package/boot/arm-trusted-firmware-rockchip/Makefile

@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2017 Hauke Mehrtens
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=arm-trusted-firmware-rockchip
+PKG_RELEASE:=1
+PKG_VERSION:=2021-10-13-fa1e0167
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-libre.tar.xz
+PKG_SOURCE_URL:=https://librecmc.org/librecmc/downloads/sources/v1.5
+PKG_HASH:=4292d29265218893b7f26c005fbb44361a667e8916ce2d940dc19617d017f8d0
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=license.md
+
+PKG_MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
+
+include $(INCLUDE_DIR)/package.mk
+
+
+define Package/arm-trusted-firmware-rockchip
+    SECTION:=boot
+    CATEGORY:=Boot Loaders
+    TITLE:=ARM Trusted Firmware for Rockchip
+    DEPENDS:=@TARGET_rockchip_armv8
+endef
+
+export GCC_HONOUR_COPTS=s
+
+MAKE_VARS = \
+	CROSS_COMPILE="$(TARGET_CROSS)"
+
+MAKE_FLAGS += \
+	PLAT=rk3328 \
+	bl31
+
+define Build/InstallDev
+	$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
+	$(CP) $(PKG_BUILD_DIR)/build/rk3328/release/bl31/bl31.elf $(STAGING_DIR_IMAGE)/rk3328_bl31.elf
+endef
+
+define Package/arm-trusted-firmware-rockchip/install
+endef
+
+$(eval $(call BuildPackage,arm-trusted-firmware-rockchip))

+ 1 - 1
package/boot/uboot-envtools/Makefile

@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=uboot-envtools
 PKG_DISTNAME:=u-boot
 PKG_VERSION:=2018.03
-PKG_RELEASE:=3
+PKG_RELEASE:=3.1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE:=$(PKG_DISTNAME)-$(PKG_VERSION).tar.xz

+ 1 - 0
package/boot/uboot-envtools/files/ath79

@@ -23,6 +23,7 @@ glinet,gl-ar300m-nor|\
 thinkpenguin,tpe-r1100|\
 thinkpenguin,tpe-r1200-nor|\
 thinkpenguin,tpe-r1200-nand|\
+thinkpenguin,tpe-r1300|\
 librerouter,librerouter-v1|\
 netgear,ex6400|\
 netgear,ex7300|\

+ 5 - 1
package/boot/uboot-envtools/files/mvebu

@@ -15,7 +15,11 @@ board=$(board_name)
 
 case "$board" in
 cznic,turris-omnia)
-	ubootenv_add_uci_config "/dev/mtd0" "0xC0000" "0x10000" "0x40000"
+	if grep -q 'U-Boot 2015.10-rc2' /dev/mtd0; then
+		ubootenv_add_uci_config "/dev/mtd0" "0xc0000" "0x10000" "0x40000"
+	else
+		ubootenv_add_uci_config "/dev/mtd0" "0xf0000" "0x10000" "0x10000"
+	fi
 	;;
 globalscale,espressobin|\
 globalscale,espressobin-emmc|\

+ 106 - 0
package/boot/uboot-rockchip/Makefile

@@ -0,0 +1,106 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_VERSION:=2020.07
+PKG_RELEASE:=3
+
+PKG_HASH:=c1f5bf9ee6bb6e648edbf19ce2ca9452f614b08a9f886f1a566aa42e8cf05f6a
+
+PKG_MAINTAINER:=Tobias Maedel <openwrt@tbspace.de>
+
+include $(INCLUDE_DIR)/u-boot.mk
+include $(INCLUDE_DIR)/package.mk
+
+define U-Boot/Default
+  BUILD_TARGET:=rockchip
+  UENV:=default
+  HIDDEN:=1
+endef
+
+
+# RK3328 boards
+
+define U-Boot/nanopi-r2s-rk3328
+  BUILD_SUBTARGET:=armv8
+  NAME:=NanoPi R2S
+  BUILD_DEVICES:= \
+    friendlyarm_nanopi-r2s
+  DEPENDS:=+PACKAGE_u-boot-nanopi-r2s-rk3328:arm-trusted-firmware-rockchip
+  PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
+  ATF:=rk3328_bl31.elf
+  OF_PLATDATA:=$(1)
+endef
+
+define U-Boot/tpe-r1400-rk3328
+  BUILD_SUBTARGET:=armv8
+  NAME:=TPE-R1400
+  BUILD_DEVICES:= \
+    thinkpenguin_tpe-r1400
+  DEPENDS:=+PACKAGE_u-boot-tpe-r1400-rk3328:arm-trusted-firmware-rockchip
+  PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip
+  ATF:=rk3328_bl31.elf
+  OF_PLATDATA:=$(1)
+endef
+
+# RK3399 boards
+
+define U-Boot/rock-pi-4-rk3399
+  BUILD_SUBTARGET:=armv8
+  NAME:=Rock Pi 4
+  BUILD_DEVICES:= \
+    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
+  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
+
+UBOOT_TARGETS := \
+  rock-pi-4-rk3399 \
+  rockpro64-rk3399 \
+  nanopi-r2s-rk3328 \
+  tpe-r1400-rk3328
+
+UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
+
+UBOOT_MAKE_FLAGS += \
+  BL31=$(STAGING_DIR_IMAGE)/$(ATF)
+
+define Build/Configure
+	$(call Build/Configure/U-Boot)
+
+ifneq ($(OF_PLATDATA),)
+	mkdir -p $(PKG_BUILD_DIR)/tpl/dts
+	mkdir -p $(PKG_BUILD_DIR)/include/generated
+
+	$(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-platdata.c $(PKG_BUILD_DIR)/tpl/dts/dt-platdata.c
+	$(CP) $(PKG_BUILD_DIR)/of-platdata/$(OF_PLATDATA)/dt-structs-gen.h $(PKG_BUILD_DIR)/include/generated/dt-structs-gen.h
+endif
+
+	$(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))

+ 24 - 0
package/boot/uboot-rockchip/patches/001-scripts-remove-dependency-on-swig.patch

@@ -0,0 +1,24 @@
+From b137ca16b54c67d76714ea5a0138741959b0dc29 Mon Sep 17 00:00:00 2001
+From: David Bauer <mail@david-bauer.net>
+Date: Mon, 13 Jul 2020 23:37:37 +0200
+Subject: [PATCH] scripts: remove dependency on swig
+
+Don't build the libfdt tool, as it has a dependency on swig (which
+OpenWrt does not ship).
+
+This requires more hacks, as of-platdata generation does not work
+without it.
+
+Signed-off-by: David Bauer <mail@david-bauer.net>
+---
+ scripts/dtc/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/scripts/dtc/Makefile
++++ b/scripts/dtc/Makefile
+@@ -18,5 +18,3 @@ HOSTCFLAGS_dtc-parser.tab.o := -I$(src)
+ # dependencies on generated files need to be listed explicitly
+ $(obj)/dtc-lexer.lex.o: $(obj)/dtc-parser.tab.h
+ 
+-# Added for U-Boot
+-subdir-$(CONFIG_PYLIBFDT) += pylibfdt

+ 32 - 0
package/boot/uboot-rockchip/patches/002-spl-remove-dtoc-of-pdata-generation.patch

@@ -0,0 +1,32 @@
+From 55273cf6079ddd3b006da69f0113c2c66c03f17e Mon Sep 17 00:00:00 2001
+From: David Bauer <mail@david-bauer.net>
+Date: Tue, 14 Jul 2020 22:44:22 +0200
+Subject: [PATCH] spl: remove dtoc of-pdata generation
+
+Remove the dtoc of-pdata generation. This generation is dependant on
+libpython-dev. As OpenWrt does not ship with this dependency, use
+pre-generated pdata files and remove the generation from the
+build-process.
+
+This only affects RK3328 boards.
+
+Signed-off-by: David Bauer <mail@david-bauer.net>
+---
+ scripts/Makefile.spl | 6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/scripts/Makefile.spl
++++ b/scripts/Makefile.spl
+@@ -320,12 +320,6 @@ PHONY += dts_dir
+ dts_dir:
+ 	$(shell [ -d $(obj)/dts ] || mkdir -p $(obj)/dts)
+ 
+-include/generated/dt-structs-gen.h: $(obj)/$(SPL_BIN).dtb dts_dir FORCE
+-	$(call if_changed,dtoch)
+-
+-$(obj)/dts/dt-platdata.c: $(obj)/$(SPL_BIN).dtb dts_dir FORCE
+-	$(call if_changed,dtocc)
+-
+ ifdef CONFIG_SAMSUNG
+ ifdef CONFIG_VAR_SIZE_SPL
+ VAR_SIZE_PARAM = --vs

+ 62 - 0
package/boot/uboot-rockchip/patches/003-fixup-compatible-old-dtc.patch

@@ -0,0 +1,62 @@
+--- a/scripts/Kbuild.include
++++ b/scripts/Kbuild.include
+@@ -175,6 +175,11 @@ ld-version = $(shell $(LD) --version | $
+ # Usage:  $(call ld-ifversion, -ge, 22252, y)
+ ld-ifversion = $(shell [ $(ld-version) $(1) $(2) ] && echo $(3) || echo $(4))
+ 
++# dtc-option
++# Usage:  DTC_FLAGS += $(call dtc-option,-Wno-unit_address_vs_reg)
++dtc-option = $(call try-run,\
++	echo '/dts-v1/; / {};' | $(DTC) $(1),$(1),$(2))
++
+ ######
+ 
+ ###
+--- a/scripts/Makefile.extrawarn
++++ b/scripts/Makefile.extrawarn
+@@ -55,5 +55,4 @@ ifeq ("$(strip $(warning))","")
+ endif
+ 
+ KBUILD_CFLAGS += $(warning)
+-
+ endif
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -271,24 +271,24 @@ cmd_gzip = (cat $(filter-out FORCE,$^) |
+ 
+ # Disable noisy checks by default
+ ifeq ($(findstring 1,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),)
+-DTC_FLAGS += -Wno-unit_address_vs_reg \
+-	-Wno-unit_address_format \
+-	-Wno-avoid_unnecessary_addr_size \
+-	-Wno-alias_paths \
+-	-Wno-graph_child_address \
+-	-Wno-graph_port \
+-	-Wno-unique_unit_address \
+-	-Wno-simple_bus_reg \
+-	-Wno-pci_device_reg
++DTC_FLAGS += $(call dtc-option,-Wno-unit_address_vs_reg) \
++	$(call dtc-option,-Wno-unit_address_format) \
++	$(call dtc-option,-Wno-avoid_unnecessary_addr_size) \
++	$(call dtc-option,-Wno-alias_paths) \
++	$(call dtc-option,-Wno-graph_child_address) \
++	$(call dtc-option,-Wno-graph_port) \
++	$(call dtc-option,-Wno-unique_unit_address) \
++	$(call dtc-option,-Wno-simple_bus_reg) \
++	$(call dtc-option,-Wno-pci_device_reg)
+ 
+ # U-Boot specific disables
+-DTC_FLAGS += -Wno-pci_bridge \
+-        -Wno-pci_device_bus_num
++DTC_FLAGS += $(call dtc-option,-Wno-pci_bridge) \
++	$(call dtc-option,-Wno-pci_device_bus_num)
+ endif
+ 
+ ifneq ($(findstring 2,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),)
+-DTC_FLAGS += -Wnode_name_chars_strict \
+-	-Wproperty_name_chars_strict
++DTC_FLAGS += $(call dtc-option,-Wnode_name_chars_strict) \
++	$(call dtc-option,-Wproperty_name_chars_strict)
+ endif
+ 
+ DTC_FLAGS += $(DTC_FLAGS_$(basetarget))

+ 530 - 0
package/boot/uboot-rockchip/patches/100-rockchip-rk3328-Add-support-for-FriendlyARM-NanoPi-R.patch

@@ -0,0 +1,530 @@
+From 67f4c228c2bf515386cd54073104dc2e6eae85ea Mon Sep 17 00:00:00 2001
+From: David Bauer <mail@david-bauer.net>
+Date: Fri, 10 Jul 2020 14:58:30 +0200
+Subject: [PATCH] rockchip: rk3328: Add support for FriendlyARM NanoPi R2S
+
+This adds support for the NanoPi R2S from FriendlyArm.
+
+Rockchip RK3328 SoC
+1GB DDR4 RAM
+Gigabit Ethernet (WAN)
+Gigabit Ethernet (USB3) (LAN)
+USB 2.0 Host Port
+MicroSD slot
+Reset button
+WAN - LAN - SYS LED
+
+Signed-off-by: David Bauer <mail@david-bauer.net>
+---
+ arch/arm/dts/Makefile                      |   1 +
+ arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi |  34 +++
+ arch/arm/dts/rk3328-nanopi-r2s.dts         | 334 +++++++++++++++++++++
+ board/rockchip/evb_rk3328/MAINTAINERS      |   7 +
+ configs/nanopi-r2s-rk3328_defconfig        |  99 ++++++
+ 5 files changed, 475 insertions(+)
+ create mode 100644 arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
+ create mode 100644 arch/arm/dts/rk3328-nanopi-r2s.dts
+ create mode 100644 configs/nanopi-r2s-rk3328_defconfig
+
+--- a/arch/arm/dts/Makefile
++++ b/arch/arm/dts/Makefile
+@@ -106,6 +106,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3308) += \
+ 
+ dtb-$(CONFIG_ROCKCHIP_RK3328) += \
+ 	rk3328-evb.dtb \
++	rk3328-nanopi-r2s.dtb \
+ 	rk3328-roc-cc.dtb \
+ 	rk3328-rock64.dtb \
+ 	rk3328-rock-pi-e.dtb
+--- /dev/null
++++ b/arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
+@@ -0,0 +1,34 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * (C) Copyright 2018-2019 Rockchip Electronics Co., Ltd
++ * (C) Copyright 2020 David Bauer
++ */
++
++#include "rk3328-u-boot.dtsi"
++#include "rk3328-sdram-ddr4-666.dtsi"
++/ {
++	chosen {
++		u-boot,spl-boot-order = "same-as-spl", &sdmmc, &emmc;
++	};
++};
++
++&gpio0 {
++	u-boot,dm-spl;
++};
++
++&pinctrl {
++	u-boot,dm-spl;
++};
++
++&sdmmc0m1_gpio {
++	u-boot,dm-spl;
++};
++
++&pcfg_pull_up_4ma {
++	u-boot,dm-spl;
++};
++
++/* Need this and all the pinctrl/gpio stuff above to set pinmux */
++&vcc_sd {
++	u-boot,dm-spl;
++};
+--- /dev/null
++++ b/arch/arm/dts/rk3328-nanopi-r2s.dts
+@@ -0,0 +1,334 @@
++// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
++/*
++ * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
++ */
++
++/dts-v1/;
++
++#include <dt-bindings/input/input.h>
++#include <dt-bindings/gpio/gpio.h>
++#include "rk3328.dtsi"
++
++/ {
++	model = "FriendlyARM NanoPi R2S";
++	compatible = "friendlyarm,nanopi-r2s", "rockchip,rk3328";
++
++	chosen {
++		stdout-path = "serial2:1500000n8";
++	};
++
++	gmac_clkin: external-gmac-clock {
++		compatible = "fixed-clock";
++		clock-frequency = <125000000>;
++		clock-output-names = "gmac_clkin";
++		#clock-cells = <0>;
++	};
++
++	vcc_sd: sdmmc-regulator {
++		compatible = "regulator-fixed";
++		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
++		pinctrl-names = "default";
++		pinctrl-0 = <&sdmmc0m1_gpio>;
++		regulator-name = "vcc_sd";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		vin-supply = <&vcc_io>;
++	};
++
++	vcc_sdio: sdmmcio-regulator {
++		compatible = "regulator-gpio";
++		gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
++		enable-active-high;
++		states = <1800000 0x1
++			  3300000 0x0>;
++		pinctrl-names = "default";
++		pinctrl-0 = <&sdio_vcc_pin>;
++		regulator-always-on;
++		regulator-min-microvolt = <1800000>;
++		regulator-max-microvolt = <3300000>;
++		regulator-name = "vcc_sdio";
++		regulator-settling-time-us = <5000>;
++		regulator-type = "voltage";
++		vin-supply = <&vcc_io>;
++	};
++
++	vcc_sys: vcc-sys {
++		compatible = "regulator-fixed";
++		regulator-name = "vcc_sys";
++		regulator-always-on;
++		regulator-boot-on;
++		regulator-min-microvolt = <5000000>;
++		regulator-max-microvolt = <5000000>;
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		pinctrl-names = "default";
++		pinctrl-0 = <&led_pins>;
++
++		sys {
++			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
++			label = "nanopi-r2s:red:sys";
++		};
++
++		lan {
++			gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
++			label = "nanopi-r2s:green:lan";
++		};
++
++		wan {
++			gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
++			label = "nanopi-r2s:green:wan";
++		};
++	};
++
++	gpio_keys {
++		compatible = "gpio-keys-polled";
++		poll-interval = <100>;
++
++		pinctrl-names = "default";
++		pinctrl-0 = <&button_pins>;
++
++		reset {
++			label = "Reset Button";
++			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
++			linux,code = <KEY_RESTART>;
++			debounce-interval = <50>;
++		};
++	};
++};
++
++&cpu0 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&cpu1 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&cpu2 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&cpu3 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&gmac2io {
++	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
++	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
++	clock_in_out = "input";
++	phy-supply = <&vcc_io>;
++	phy-handle = <&rtl8211e>;
++	phy-mode = "rgmii";
++	pinctrl-names = "default";
++	pinctrl-0 = <&rgmiim1_pins>;
++	snps,aal;
++	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
++	snps,reset-active-low;
++	snps,reset-delays-us = <0 10000 50000>;
++	tx_delay = <0x24>;
++	rx_delay = <0x18>;
++	status = "okay";
++
++	mdio {
++		compatible = "snps,dwmac-mdio";
++		#address-cells = <1>;
++		#size-cells = <0>;
++
++		rtl8211e: ethernet-phy@0 {
++			reg = <0>;
++		};
++	};
++};
++
++&i2c1 {
++	status = "okay";
++
++	rk805: rk805@18 {
++		compatible = "rockchip,rk805";
++		reg = <0x18>;
++		interrupt-parent = <&gpio2>;
++		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
++		#clock-cells = <1>;
++		clock-output-names = "xin32k", "rk805-clkout2";
++		gpio-controller;
++		#gpio-cells = <2>;
++		pinctrl-names = "default";
++		pinctrl-0 = <&pmic_int_l>;
++		rockchip,system-power-controller;
++		wakeup-source;
++
++		vcc1-supply = <&vcc_sys>;
++		vcc2-supply = <&vcc_sys>;
++		vcc3-supply = <&vcc_sys>;
++		vcc4-supply = <&vcc_sys>;
++		vcc5-supply = <&vcc_io>;
++		vcc6-supply = <&vcc_sys>;
++
++		regulators {
++			vdd_logic: DCDC_REG1 {
++				regulator-name = "vdd_logic";
++				regulator-min-microvolt = <712500>;
++				regulator-max-microvolt = <1450000>;
++				regulator-ramp-delay = <12500>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1000000>;
++				};
++			};
++
++			vdd_arm: DCDC_REG2 {
++				regulator-name = "vdd_arm";
++				regulator-min-microvolt = <712500>;
++				regulator-max-microvolt = <1450000>;
++				regulator-ramp-delay = <12500>;
++				regulator-always-on;
++				regulator-boot-on;
++				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: DCDC_REG4 {
++				regulator-name = "vcc_io";
++				regulator-min-microvolt = <3300000>;
++				regulator-max-microvolt = <3300000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <3300000>;
++				};
++			};
++
++			vcc_18: LDO_REG1 {
++				regulator-name = "vcc_18";
++				regulator-min-microvolt = <1800000>;
++				regulator-max-microvolt = <1800000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1800000>;
++				};
++			};
++
++			vcc18_emmc: LDO_REG2 {
++				regulator-name = "vcc18_emmc";
++				regulator-min-microvolt = <1800000>;
++				regulator-max-microvolt = <1800000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1800000>;
++				};
++			};
++
++			vdd_10: LDO_REG3 {
++				regulator-name = "vdd_10";
++				regulator-min-microvolt = <1000000>;
++				regulator-max-microvolt = <1000000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1000000>;
++				};
++			};
++		};
++	};
++};
++
++&io_domains {
++	status = "okay";
++
++	vccio1-supply = <&vcc_io>;
++	vccio2-supply = <&vcc18_emmc>;
++	vccio3-supply = <&vcc_sdio>;
++	vccio4-supply = <&vcc_18>;
++	vccio5-supply = <&vcc_io>;
++	vccio6-supply = <&vcc_io>;
++	pmuio-supply = <&vcc_io>;
++};
++
++&pinctrl {
++	leds {
++		led_pins: led-pins {
++			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>,
++							<2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>,
++							<2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
++		};
++	};
++
++	button {
++		button_pins: button-pins {
++			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
++		};
++	};
++
++	pmic {
++		pmic_int_l: pmic-int-l {
++			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
++		};
++	};
++
++	sd {
++		sdio_vcc_pin: sdio-vcc-pin {
++			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
++		};
++	};
++};
++
++&sdmmc {
++	bus-width = <4>;
++	cap-mmc-highspeed;
++	cap-sd-highspeed;
++	disable-wp;
++	max-frequency = <150000000>;
++	pinctrl-names = "default";
++	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
++	vmmc-supply = <&vcc_sd>;
++	vqmmc-supply = <&vcc_sdio>;
++	status = "okay";
++};
++
++&tsadc {
++	rockchip,hw-tshut-mode = <0>;
++	rockchip,hw-tshut-polarity = <0>;
++	status = "okay";
++};
++
++&uart2 {
++	status = "okay";
++};
++
++&u2phy {
++	status = "okay";
++
++	u2phy_host: host-port {
++		status = "okay";
++	};
++};
++
++&usb_host0_ehci {
++	status = "okay";
++};
++
++&usb_host0_ohci {
++	status = "okay";
++};
+--- a/board/rockchip/evb_rk3328/MAINTAINERS
++++ b/board/rockchip/evb_rk3328/MAINTAINERS
+@@ -5,6 +5,13 @@ F:      board/rockchip/evb_rk3328
+ F:      include/configs/evb_rk3328.h
+ F:      configs/evb-rk3328_defconfig
+ 
++NANOPI-R2S-RK3328
++M:      David Bauer <mail@david-bauer.net>
++S:      Maintained
++F:      configs/nanopi-r2s-rk3328_defconfig
++F:      arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi
++F:      arch/arm/dts/rk3328-nanopi-r2s.dts
++
+ ROC-RK3328-CC
+ M:      Loic Devulder <ldevulder@suse.com>
+ M:      Chen-Yu Tsai <wens@csie.org>
+--- /dev/null
++++ b/configs/nanopi-r2s-rk3328_defconfig
+@@ -0,0 +1,99 @@
++CONFIG_ARM=y
++CONFIG_ARCH_ROCKCHIP=y
++CONFIG_SYS_TEXT_BASE=0x00200000
++CONFIG_SPL_GPIO_SUPPORT=y
++CONFIG_ENV_OFFSET=0x3F8000
++CONFIG_ROCKCHIP_RK3328=y
++CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
++CONFIG_TPL_LIBCOMMON_SUPPORT=y
++CONFIG_TPL_LIBGENERIC_SUPPORT=y
++CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
++CONFIG_SPL_STACK_R_ADDR=0x600000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_DEBUG_UART_BASE=0xFF130000
++CONFIG_DEBUG_UART_CLOCK=24000000
++CONFIG_SMBIOS_PRODUCT_NAME="nanopi_r2s_rk3328"
++CONFIG_DEBUG_UART=y
++CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
++# CONFIG_ANDROID_BOOT_IMAGE is not set
++CONFIG_FIT=y
++CONFIG_FIT_VERBOSE=y
++CONFIG_SPL_LOAD_FIT=y
++CONFIG_DEFAULT_FDT_FILE="rockchip/rk3328-nanopi-r2s.dtb"
++CONFIG_MISC_INIT_R=y
++# CONFIG_DISPLAY_CPUINFO is not set
++CONFIG_DISPLAY_BOARDINFO_LATE=y
++# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
++CONFIG_TPL_SYS_MALLOC_SIMPLE=y
++CONFIG_SPL_STACK_R=y
++CONFIG_SPL_I2C_SUPPORT=y
++CONFIG_SPL_POWER_SUPPORT=y
++CONFIG_SPL_ATF=y
++CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
++CONFIG_CMD_BOOTZ=y
++CONFIG_CMD_GPT=y
++CONFIG_CMD_MMC=y
++CONFIG_CMD_USB=y
++# CONFIG_CMD_SETEXPR is not set
++CONFIG_CMD_TIME=y
++CONFIG_SPL_OF_CONTROL=y
++CONFIG_TPL_OF_CONTROL=y
++CONFIG_DEFAULT_DEVICE_TREE="rk3328-nanopi-r2s"
++CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
++CONFIG_TPL_OF_PLATDATA=y
++CONFIG_ENV_IS_IN_MMC=y
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_TPL_DM=y
++CONFIG_REGMAP=y
++CONFIG_SPL_REGMAP=y
++CONFIG_TPL_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_SPL_SYSCON=y
++CONFIG_TPL_SYSCON=y
++CONFIG_CLK=y
++CONFIG_SPL_CLK=y
++CONFIG_FASTBOOT_BUF_ADDR=0x800800
++CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
++CONFIG_ROCKCHIP_GPIO=y
++CONFIG_SYS_I2C_ROCKCHIP=y
++CONFIG_MMC_DW=y
++CONFIG_MMC_DW_ROCKCHIP=y
++CONFIG_SF_DEFAULT_SPEED=20000000
++CONFIG_DM_ETH=y
++CONFIG_ETH_DESIGNWARE=y
++CONFIG_GMAC_ROCKCHIP=y
++CONFIG_PINCTRL=y
++CONFIG_SPL_PINCTRL=y
++CONFIG_DM_PMIC=y
++CONFIG_PMIC_RK8XX=y
++CONFIG_SPL_DM_REGULATOR=y
++CONFIG_REGULATOR_PWM=y
++CONFIG_DM_REGULATOR_FIXED=y
++CONFIG_SPL_DM_REGULATOR_FIXED=y
++CONFIG_REGULATOR_RK8XX=y
++CONFIG_PWM_ROCKCHIP=y
++CONFIG_RAM=y
++CONFIG_SPL_RAM=y
++CONFIG_TPL_RAM=y
++CONFIG_DM_RESET=y
++CONFIG_BAUDRATE=1500000
++CONFIG_DEBUG_UART_SHIFT=2
++CONFIG_SYSRESET=y
++# CONFIG_TPL_SYSRESET is not set
++CONFIG_USB=y
++CONFIG_USB_XHCI_HCD=y
++CONFIG_USB_XHCI_DWC3=y
++CONFIG_USB_EHCI_HCD=y
++CONFIG_USB_EHCI_GENERIC=y
++CONFIG_USB_OHCI_HCD=y
++CONFIG_USB_OHCI_GENERIC=y
++CONFIG_USB_DWC2=y
++CONFIG_USB_DWC3=y
++# CONFIG_USB_DWC3_GADGET is not set
++CONFIG_USB_GADGET=y
++CONFIG_USB_GADGET_DWC2_OTG=y
++CONFIG_SPL_TINY_MEMSET=y
++CONFIG_TPL_TINY_MEMSET=y
++CONFIG_ERRNO_STR=y
++CONFIG_SMBIOS_MANUFACTURER="pine64"

+ 486 - 0
package/boot/uboot-rockchip/patches/101-rockchip-rk3328-Add-support-for-ThinkPenguin-TPE-R1400.patch

@@ -0,0 +1,486 @@
+--- a/arch/arm/dts/Makefile
++++ b/arch/arm/dts/Makefile
+@@ -107,6 +107,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3308) += \
+ dtb-$(CONFIG_ROCKCHIP_RK3328) += \
+ 	rk3328-evb.dtb \
+ 	rk3328-nanopi-r2s.dtb \
++	rk3328-tpe-r1400.dtb \
+ 	rk3328-roc-cc.dtb \
+ 	rk3328-rock64.dtb \
+ 	rk3328-rock-pi-e.dtb
+--- /dev/null
++++ b/arch/arm/dts/rk3328-tpe-r1400-u-boot.dtsi
+@@ -0,0 +1,34 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * (C) Copyright 2018-2019 Rockchip Electronics Co., Ltd
++ * (C) Copyright 2020 David Bauer
++ */
++
++#include "rk3328-u-boot.dtsi"
++#include "rk3328-sdram-ddr4-666.dtsi"
++/ {
++	chosen {
++		u-boot,spl-boot-order = "same-as-spl", &sdmmc, &emmc;
++	};
++};
++
++&gpio0 {
++	u-boot,dm-spl;
++};
++
++&pinctrl {
++	u-boot,dm-spl;
++};
++
++&sdmmc0m1_gpio {
++	u-boot,dm-spl;
++};
++
++&pcfg_pull_up_4ma {
++	u-boot,dm-spl;
++};
++
++/* Need this and all the pinctrl/gpio stuff above to set pinmux */
++&vcc_sd {
++	u-boot,dm-spl;
++};
+--- /dev/null
++++ b/arch/arm/dts/rk3328-tpe-r1400.dts
+@@ -0,0 +1,334 @@
++// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
++/*
++ * Copyright (c) 2020 David Bauer <mail@david-bauer.net>
++ */
++
++/dts-v1/;
++
++#include <dt-bindings/input/input.h>
++#include <dt-bindings/gpio/gpio.h>
++#include "rk3328.dtsi"
++
++/ {
++	model = "ThinkPenguin TPE-R1400";
++	compatible = "thinkpenguin,tpe-r1400", "rockchip,rk3328";
++
++	chosen {
++		stdout-path = "serial2:1500000n8";
++	};
++
++	gmac_clkin: external-gmac-clock {
++		compatible = "fixed-clock";
++		clock-frequency = <125000000>;
++		clock-output-names = "gmac_clkin";
++		#clock-cells = <0>;
++	};
++
++	vcc_sd: sdmmc-regulator {
++		compatible = "regulator-fixed";
++		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
++		pinctrl-names = "default";
++		pinctrl-0 = <&sdmmc0m1_gpio>;
++		regulator-name = "vcc_sd";
++		regulator-min-microvolt = <3300000>;
++		regulator-max-microvolt = <3300000>;
++		vin-supply = <&vcc_io>;
++	};
++
++	vcc_sdio: sdmmcio-regulator {
++		compatible = "regulator-gpio";
++		gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
++		enable-active-high;
++		states = <1800000 0x1
++			  3300000 0x0>;
++		pinctrl-names = "default";
++		pinctrl-0 = <&sdio_vcc_pin>;
++		regulator-always-on;
++		regulator-min-microvolt = <1800000>;
++		regulator-max-microvolt = <3300000>;
++		regulator-name = "vcc_sdio";
++		regulator-settling-time-us = <5000>;
++		regulator-type = "voltage";
++		vin-supply = <&vcc_io>;
++	};
++
++	vcc_sys: vcc-sys {
++		compatible = "regulator-fixed";
++		regulator-name = "vcc_sys";
++		regulator-always-on;
++		regulator-boot-on;
++		regulator-min-microvolt = <5000000>;
++		regulator-max-microvolt = <5000000>;
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		pinctrl-names = "default";
++		pinctrl-0 = <&led_pins>;
++
++		sys {
++			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
++			label = "tpe-r1400:red:sys";
++		};
++
++		lan {
++			gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
++			label = "tpe-r1400:green:lan";
++		};
++
++		wan {
++			gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
++			label = "tpe-r1400:green:wan";
++		};
++	};
++
++	gpio_keys {
++		compatible = "gpio-keys-polled";
++		poll-interval = <100>;
++
++		pinctrl-names = "default";
++		pinctrl-0 = <&button_pins>;
++
++		reset {
++			label = "Reset Button";
++			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
++			linux,code = <KEY_RESTART>;
++			debounce-interval = <50>;
++		};
++	};
++};
++
++&cpu0 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&cpu1 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&cpu2 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&cpu3 {
++	cpu-supply = <&vdd_arm>;
++};
++
++&gmac2io {
++	assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
++	assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
++	clock_in_out = "input";
++	phy-supply = <&vcc_io>;
++	phy-handle = <&rtl8211e>;
++	phy-mode = "rgmii";
++	pinctrl-names = "default";
++	pinctrl-0 = <&rgmiim1_pins>;
++	snps,aal;
++	snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
++	snps,reset-active-low;
++	snps,reset-delays-us = <0 10000 50000>;
++	tx_delay = <0x24>;
++	rx_delay = <0x18>;
++	status = "okay";
++
++	mdio {
++		compatible = "snps,dwmac-mdio";
++		#address-cells = <1>;
++		#size-cells = <0>;
++
++		rtl8211e: ethernet-phy@0 {
++			reg = <0>;
++		};
++	};
++};
++
++&i2c1 {
++	status = "okay";
++
++	rk805: rk805@18 {
++		compatible = "rockchip,rk805";
++		reg = <0x18>;
++		interrupt-parent = <&gpio2>;
++		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
++		#clock-cells = <1>;
++		clock-output-names = "xin32k", "rk805-clkout2";
++		gpio-controller;
++		#gpio-cells = <2>;
++		pinctrl-names = "default";
++		pinctrl-0 = <&pmic_int_l>;
++		rockchip,system-power-controller;
++		wakeup-source;
++
++		vcc1-supply = <&vcc_sys>;
++		vcc2-supply = <&vcc_sys>;
++		vcc3-supply = <&vcc_sys>;
++		vcc4-supply = <&vcc_sys>;
++		vcc5-supply = <&vcc_io>;
++		vcc6-supply = <&vcc_sys>;
++
++		regulators {
++			vdd_logic: DCDC_REG1 {
++				regulator-name = "vdd_logic";
++				regulator-min-microvolt = <712500>;
++				regulator-max-microvolt = <1450000>;
++				regulator-ramp-delay = <12500>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1000000>;
++				};
++			};
++
++			vdd_arm: DCDC_REG2 {
++				regulator-name = "vdd_arm";
++				regulator-min-microvolt = <712500>;
++				regulator-max-microvolt = <1450000>;
++				regulator-ramp-delay = <12500>;
++				regulator-always-on;
++				regulator-boot-on;
++				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: DCDC_REG4 {
++				regulator-name = "vcc_io";
++				regulator-min-microvolt = <3300000>;
++				regulator-max-microvolt = <3300000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <3300000>;
++				};
++			};
++
++			vcc_18: LDO_REG1 {
++				regulator-name = "vcc_18";
++				regulator-min-microvolt = <1800000>;
++				regulator-max-microvolt = <1800000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1800000>;
++				};
++			};
++
++			vcc18_emmc: LDO_REG2 {
++				regulator-name = "vcc18_emmc";
++				regulator-min-microvolt = <1800000>;
++				regulator-max-microvolt = <1800000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1800000>;
++				};
++			};
++
++			vdd_10: LDO_REG3 {
++				regulator-name = "vdd_10";
++				regulator-min-microvolt = <1000000>;
++				regulator-max-microvolt = <1000000>;
++				regulator-always-on;
++				regulator-boot-on;
++				regulator-state-mem {
++					regulator-on-in-suspend;
++					regulator-suspend-microvolt = <1000000>;
++				};
++			};
++		};
++	};
++};
++
++&io_domains {
++	status = "okay";
++
++	vccio1-supply = <&vcc_io>;
++	vccio2-supply = <&vcc18_emmc>;
++	vccio3-supply = <&vcc_sdio>;
++	vccio4-supply = <&vcc_18>;
++	vccio5-supply = <&vcc_io>;
++	vccio6-supply = <&vcc_io>;
++	pmuio-supply = <&vcc_io>;
++};
++
++&pinctrl {
++	leds {
++		led_pins: led-pins {
++			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>,
++							<2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>,
++							<2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
++		};
++	};
++
++	button {
++		button_pins: button-pins {
++			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
++		};
++	};
++
++	pmic {
++		pmic_int_l: pmic-int-l {
++			rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
++		};
++	};
++
++	sd {
++		sdio_vcc_pin: sdio-vcc-pin {
++			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
++		};
++	};
++};
++
++&sdmmc {
++	bus-width = <4>;
++	cap-mmc-highspeed;
++	cap-sd-highspeed;
++	disable-wp;
++	max-frequency = <150000000>;
++	pinctrl-names = "default";
++	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
++	vmmc-supply = <&vcc_sd>;
++	vqmmc-supply = <&vcc_sdio>;
++	status = "okay";
++};
++
++&tsadc {
++	rockchip,hw-tshut-mode = <0>;
++	rockchip,hw-tshut-polarity = <0>;
++	status = "okay";
++};
++
++&uart2 {
++	status = "okay";
++};
++
++&u2phy {
++	status = "okay";
++
++	u2phy_host: host-port {
++		status = "okay";
++	};
++};
++
++&usb_host0_ehci {
++	status = "okay";
++};
++
++&usb_host0_ohci {
++	status = "okay";
++};
+--- /dev/null
++++ b/configs/tpe-r1400-rk3328_defconfig
+@@ -0,0 +1,99 @@
++CONFIG_ARM=y
++CONFIG_ARCH_ROCKCHIP=y
++CONFIG_SYS_TEXT_BASE=0x00200000
++CONFIG_SPL_GPIO_SUPPORT=y
++CONFIG_ENV_OFFSET=0x3F8000
++CONFIG_ROCKCHIP_RK3328=y
++CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
++CONFIG_TPL_LIBCOMMON_SUPPORT=y
++CONFIG_TPL_LIBGENERIC_SUPPORT=y
++CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
++CONFIG_SPL_STACK_R_ADDR=0x600000
++CONFIG_NR_DRAM_BANKS=1
++CONFIG_DEBUG_UART_BASE=0xFF130000
++CONFIG_DEBUG_UART_CLOCK=24000000
++CONFIG_SMBIOS_PRODUCT_NAME="tpe_r1400_rk3328"
++CONFIG_DEBUG_UART=y
++CONFIG_TPL_SYS_MALLOC_F_LEN=0x800
++# CONFIG_ANDROID_BOOT_IMAGE is not set
++CONFIG_FIT=y
++CONFIG_FIT_VERBOSE=y
++CONFIG_SPL_LOAD_FIT=y
++CONFIG_DEFAULT_FDT_FILE="rockchip/rk3328-tpe-r1400.dtb"
++CONFIG_MISC_INIT_R=y
++# CONFIG_DISPLAY_CPUINFO is not set
++CONFIG_DISPLAY_BOARDINFO_LATE=y
++# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
++CONFIG_TPL_SYS_MALLOC_SIMPLE=y
++CONFIG_SPL_STACK_R=y
++CONFIG_SPL_I2C_SUPPORT=y
++CONFIG_SPL_POWER_SUPPORT=y
++CONFIG_SPL_ATF=y
++CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
++CONFIG_CMD_BOOTZ=y
++CONFIG_CMD_GPT=y
++CONFIG_CMD_MMC=y
++CONFIG_CMD_USB=y
++# CONFIG_CMD_SETEXPR is not set
++CONFIG_CMD_TIME=y
++CONFIG_SPL_OF_CONTROL=y
++CONFIG_TPL_OF_CONTROL=y
++CONFIG_DEFAULT_DEVICE_TREE="rk3328-tpe-r1400"
++CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
++CONFIG_TPL_OF_PLATDATA=y
++CONFIG_ENV_IS_IN_MMC=y
++CONFIG_SYS_RELOC_GD_ENV_ADDR=y
++CONFIG_NET_RANDOM_ETHADDR=y
++CONFIG_TPL_DM=y
++CONFIG_REGMAP=y
++CONFIG_SPL_REGMAP=y
++CONFIG_TPL_REGMAP=y
++CONFIG_SYSCON=y
++CONFIG_SPL_SYSCON=y
++CONFIG_TPL_SYSCON=y
++CONFIG_CLK=y
++CONFIG_SPL_CLK=y
++CONFIG_FASTBOOT_BUF_ADDR=0x800800
++CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
++CONFIG_ROCKCHIP_GPIO=y
++CONFIG_SYS_I2C_ROCKCHIP=y
++CONFIG_MMC_DW=y
++CONFIG_MMC_DW_ROCKCHIP=y
++CONFIG_SF_DEFAULT_SPEED=20000000
++CONFIG_DM_ETH=y
++CONFIG_ETH_DESIGNWARE=y
++CONFIG_GMAC_ROCKCHIP=y
++CONFIG_PINCTRL=y
++CONFIG_SPL_PINCTRL=y
++CONFIG_DM_PMIC=y
++CONFIG_PMIC_RK8XX=y
++CONFIG_SPL_DM_REGULATOR=y
++CONFIG_REGULATOR_PWM=y
++CONFIG_DM_REGULATOR_FIXED=y
++CONFIG_SPL_DM_REGULATOR_FIXED=y
++CONFIG_REGULATOR_RK8XX=y
++CONFIG_PWM_ROCKCHIP=y
++CONFIG_RAM=y
++CONFIG_SPL_RAM=y
++CONFIG_TPL_RAM=y
++CONFIG_DM_RESET=y
++CONFIG_BAUDRATE=1500000
++CONFIG_DEBUG_UART_SHIFT=2
++CONFIG_SYSRESET=y
++# CONFIG_TPL_SYSRESET is not set
++CONFIG_USB=y
++CONFIG_USB_XHCI_HCD=y
++CONFIG_USB_XHCI_DWC3=y
++CONFIG_USB_EHCI_HCD=y
++CONFIG_USB_EHCI_GENERIC=y
++CONFIG_USB_OHCI_HCD=y
++CONFIG_USB_OHCI_GENERIC=y
++CONFIG_USB_DWC2=y
++CONFIG_USB_DWC3=y
++# CONFIG_USB_DWC3_GADGET is not set
++CONFIG_USB_GADGET=y
++CONFIG_USB_GADGET_DWC2_OTG=y
++CONFIG_SPL_TINY_MEMSET=y
++CONFIG_TPL_TINY_MEMSET=y
++CONFIG_ERRNO_STR=y
++CONFIG_SMBIOS_MANUFACTURER="pine64"

+ 149 - 0
package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-platdata.c

@@ -0,0 +1,149 @@
+/*
+ * DO NOT MODIFY
+ *
+ * This file was generated by dtoc from a .dtb (device tree binary) file.
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dt-structs.h>
+
+static const struct dtd_rockchip_rk3328_grf dtv_syscon_at_ff100000 = {
+	.reg			= {0xff100000, 0x1000},
+};
+U_BOOT_DEVICE(syscon_at_ff100000) = {
+	.name		= "rockchip_rk3328_grf",
+	.platdata	= &dtv_syscon_at_ff100000,
+	.platdata_size	= sizeof(dtv_syscon_at_ff100000),
+};
+
+static const struct dtd_rockchip_rk3328_cru dtv_clock_controller_at_ff440000 = {
+	.reg			= {0xff440000, 0x1000},
+	.rockchip_grf		= 0x3a,
+};
+U_BOOT_DEVICE(clock_controller_at_ff440000) = {
+	.name		= "rockchip_rk3328_cru",
+	.platdata	= &dtv_clock_controller_at_ff440000,
+	.platdata_size	= sizeof(dtv_clock_controller_at_ff440000),
+};
+
+static const struct dtd_rockchip_rk3328_uart dtv_serial_at_ff130000 = {
+	.clock_frequency	= 0x16e3600,
+	.clocks			= {
+			{&dtv_clock_controller_at_ff440000, {40}},
+			{&dtv_clock_controller_at_ff440000, {212}},},
+	.dma_names		= {"tx", "rx"},
+	.dmas			= {0x10, 0x6, 0x10, 0x7},
+	.interrupts		= {0x0, 0x39, 0x4},
+	.pinctrl_0		= 0x26,
+	.pinctrl_names		= "default",
+	.reg			= {0xff130000, 0x100},
+	.reg_io_width		= 0x4,
+	.reg_shift		= 0x2,
+};
+U_BOOT_DEVICE(serial_at_ff130000) = {
+	.name		= "rockchip_rk3328_uart",
+	.platdata	= &dtv_serial_at_ff130000,
+	.platdata_size	= sizeof(dtv_serial_at_ff130000),
+};
+
+static const struct dtd_rockchip_rk3328_dw_mshc dtv_mmc_at_ff500000 = {
+	.bus_width		= 0x4,
+	.cap_mmc_highspeed	= true,
+	.cap_sd_highspeed	= true,
+	.clocks			= {
+			{&dtv_clock_controller_at_ff440000, {317}},
+			{&dtv_clock_controller_at_ff440000, {33}},
+			{&dtv_clock_controller_at_ff440000, {74}},
+			{&dtv_clock_controller_at_ff440000, {78}},},
+	.disable_wp		= true,
+	.fifo_depth		= 0x100,
+	.interrupts		= {0x0, 0xc, 0x4},
+	.max_frequency		= 0x8f0d180,
+	.pinctrl_0		= {0x47, 0x48, 0x49, 0x4a},
+	.pinctrl_names		= "default",
+	.reg			= {0xff500000, 0x4000},
+	.u_boot_spl_fifo_mode	= true,
+	.vmmc_supply		= 0x4b,
+	.vqmmc_supply		= 0x1e,
+};
+U_BOOT_DEVICE(mmc_at_ff500000) = {
+	.name		= "rockchip_rk3328_dw_mshc",
+	.platdata	= &dtv_mmc_at_ff500000,
+	.platdata_size	= sizeof(dtv_mmc_at_ff500000),
+};
+
+static const struct dtd_rockchip_rk3328_pinctrl dtv_pinctrl = {
+	.ranges			= true,
+	.rockchip_grf		= 0x3a,
+};
+U_BOOT_DEVICE(pinctrl) = {
+	.name		= "rockchip_rk3328_pinctrl",
+	.platdata	= &dtv_pinctrl,
+	.platdata_size	= sizeof(dtv_pinctrl),
+};
+
+static const struct dtd_rockchip_gpio_bank dtv_gpio0_at_ff210000 = {
+	.clocks			= {
+			{&dtv_clock_controller_at_ff440000, {200}},},
+	.gpio_controller	= true,
+	.interrupt_controller	= true,
+	.interrupts		= {0x0, 0x33, 0x4},
+	.reg			= {0xff210000, 0x100},
+};
+U_BOOT_DEVICE(gpio0_at_ff210000) = {
+	.name		= "rockchip_gpio_bank",
+	.platdata	= &dtv_gpio0_at_ff210000,
+	.platdata_size	= sizeof(dtv_gpio0_at_ff210000),
+};
+
+static const struct dtd_regulator_fixed dtv_sdmmc_regulator = {
+	.gpio			= {0x60, 0x1e, 0x1},
+	.pinctrl_0		= 0x61,
+	.pinctrl_names		= "default",
+	.regulator_max_microvolt = 0x325aa0,
+	.regulator_min_microvolt = 0x325aa0,
+	.regulator_name		= "vcc_sd",
+	.vin_supply		= 0x1c,
+};
+U_BOOT_DEVICE(sdmmc_regulator) = {
+	.name		= "regulator_fixed",
+	.platdata	= &dtv_sdmmc_regulator,
+	.platdata_size	= sizeof(dtv_sdmmc_regulator),
+};
+
+static const struct dtd_rockchip_rk3328_dmc dtv_dmc = {
+	.reg			= {0xff400000, 0x1000, 0xff780000, 0x3000, 0xff100000, 0x1000, 0xff440000, 0x1000,
+		0xff720000, 0x1000, 0xff798000, 0x1000},
+	.rockchip_sdram_params	= {0x1, 0xa, 0x2, 0x1, 0x0, 0x0, 0x11, 0x0,
+		0x11, 0x0, 0x0, 0x94291288, 0x0, 0x27, 0x462, 0x15,
+		0x242, 0xff, 0x14d, 0x0, 0x1, 0x0, 0x0, 0x0,
+		0x43049010, 0x64, 0x28003b, 0xd0, 0x20053, 0xd4, 0x220000, 0xd8,
+		0x100, 0xdc, 0x40000, 0xe0, 0x0, 0xe4, 0x110000, 0xe8,
+		0x420, 0xec, 0x400, 0xf4, 0xf011f, 0x100, 0x9060b06, 0x104,
+		0x20209, 0x108, 0x505040a, 0x10c, 0x40400c, 0x110, 0x5030206, 0x114,
+		0x3030202, 0x120, 0x3030b03, 0x124, 0x20208, 0x180, 0x1000040, 0x184,
+		0x0, 0x190, 0x7030003, 0x198, 0x5001100, 0x1a0, 0xc0400003, 0x240,
+		0x6000604, 0x244, 0x201, 0x250, 0xf00, 0x490, 0x1, 0xffffffff,
+		0xffffffff, 0xffffffff, 0xffffffff, 0x4, 0xc, 0x28, 0xa, 0x2c,
+		0x0, 0x30, 0x9, 0xffffffff, 0xffffffff, 0x77, 0x88, 0x79,
+		0x79, 0x87, 0x97, 0x87, 0x78, 0x77, 0x78, 0x87,
+		0x88, 0x87, 0x87, 0x77, 0x78, 0x78, 0x78, 0x78,
+		0x78, 0x78, 0x78, 0x78, 0x78, 0x69, 0x9, 0x77,
+		0x78, 0x77, 0x78, 0x77, 0x78, 0x77, 0x78, 0x77,
+		0x79, 0x9, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+		0x78, 0x78, 0x78, 0x69, 0x9, 0x77, 0x78, 0x77,
+		0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x79, 0x9,
+		0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+		0x78, 0x69, 0x9, 0x77, 0x78, 0x77, 0x78, 0x77,
+		0x78, 0x77, 0x78, 0x77, 0x79, 0x9, 0x78, 0x78,
+		0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x69,
+		0x9, 0x77, 0x78, 0x77, 0x77, 0x77, 0x77, 0x77,
+		0x77, 0x77, 0x79, 0x9},
+};
+U_BOOT_DEVICE(dmc) = {
+	.name		= "rockchip_rk3328_dmc",
+	.platdata	= &dtv_dmc,
+	.platdata_size	= sizeof(dtv_dmc),
+};
+

+ 72 - 0
package/boot/uboot-rockchip/src/of-platdata/nanopi-r2s-rk3328/dt-structs-gen.h

@@ -0,0 +1,72 @@
+/*
+ * DO NOT MODIFY
+ *
+ * This file was generated by dtoc from a .dtb (device tree binary) file.
+ */
+
+#include <stdbool.h>
+#include <linux/libfdt.h>
+struct dtd_regulator_fixed {
+	fdt32_t		gpio[3];
+	fdt32_t		pinctrl_0;
+	const char *	pinctrl_names;
+	fdt32_t		regulator_max_microvolt;
+	fdt32_t		regulator_min_microvolt;
+	const char *	regulator_name;
+	fdt32_t		vin_supply;
+};
+struct dtd_rockchip_gpio_bank {
+	struct phandle_1_arg clocks[1];
+	bool		gpio_controller;
+	bool		interrupt_controller;
+	fdt32_t		interrupts[3];
+	fdt64_t		reg[2];
+};
+struct dtd_rockchip_rk3328_cru {
+	fdt64_t		reg[2];
+	fdt32_t		rockchip_grf;
+};
+struct dtd_rockchip_rk3328_dmc {
+	fdt64_t		reg[12];
+	fdt32_t		rockchip_sdram_params[196];
+};
+struct dtd_rockchip_rk3328_dw_mshc {
+	fdt32_t		bus_width;
+	bool		cap_mmc_highspeed;
+	bool		cap_sd_highspeed;
+	struct phandle_1_arg clocks[4];
+	bool		disable_wp;
+	fdt32_t		fifo_depth;
+	fdt32_t		interrupts[3];
+	fdt32_t		max_frequency;
+	fdt32_t		pinctrl_0[4];
+	const char *	pinctrl_names;
+	fdt64_t		reg[2];
+	bool		u_boot_spl_fifo_mode;
+	fdt32_t		vmmc_supply;
+	fdt32_t		vqmmc_supply;
+};
+struct dtd_rockchip_rk3328_grf {
+	fdt64_t		reg[2];
+};
+struct dtd_rockchip_rk3328_pinctrl {
+	bool		ranges;
+	fdt32_t		rockchip_grf;
+};
+struct dtd_rockchip_rk3328_uart {
+	fdt32_t		clock_frequency;
+	struct phandle_1_arg clocks[2];
+	const char *	dma_names[2];
+	fdt32_t		dmas[4];
+	fdt32_t		interrupts[3];
+	fdt32_t		pinctrl_0;
+	const char *	pinctrl_names;
+	fdt64_t		reg[2];
+	fdt32_t		reg_io_width;
+	fdt32_t		reg_shift;
+};
+#define dtd_syscon dtd_rockchip_rk3328_cru
+#define dtd_simple_mfd dtd_rockchip_rk3328_grf
+#define dtd_snps_dw_apb_uart dtd_rockchip_rk3328_uart
+#define dtd_rockchip_cru dtd_rockchip_rk3328_cru
+#define dtd_rockchip_rk3288_dw_mshc dtd_rockchip_rk3328_dw_mshc

+ 149 - 0
package/boot/uboot-rockchip/src/of-platdata/tpe-r1400-rk3328/dt-platdata.c

@@ -0,0 +1,149 @@
+/*
+ * DO NOT MODIFY
+ *
+ * This file was generated by dtoc from a .dtb (device tree binary) file.
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dt-structs.h>
+
+static const struct dtd_rockchip_rk3328_grf dtv_syscon_at_ff100000 = {
+	.reg			= {0xff100000, 0x1000},
+};
+U_BOOT_DEVICE(syscon_at_ff100000) = {
+	.name		= "rockchip_rk3328_grf",
+	.platdata	= &dtv_syscon_at_ff100000,
+	.platdata_size	= sizeof(dtv_syscon_at_ff100000),
+};
+
+static const struct dtd_rockchip_rk3328_cru dtv_clock_controller_at_ff440000 = {
+	.reg			= {0xff440000, 0x1000},
+	.rockchip_grf		= 0x3a,
+};
+U_BOOT_DEVICE(clock_controller_at_ff440000) = {
+	.name		= "rockchip_rk3328_cru",
+	.platdata	= &dtv_clock_controller_at_ff440000,
+	.platdata_size	= sizeof(dtv_clock_controller_at_ff440000),
+};
+
+static const struct dtd_rockchip_rk3328_uart dtv_serial_at_ff130000 = {
+	.clock_frequency	= 0x16e3600,
+	.clocks			= {
+			{&dtv_clock_controller_at_ff440000, {40}},
+			{&dtv_clock_controller_at_ff440000, {212}},},
+	.dma_names		= {"tx", "rx"},
+	.dmas			= {0x10, 0x6, 0x10, 0x7},
+	.interrupts		= {0x0, 0x39, 0x4},
+	.pinctrl_0		= 0x26,
+	.pinctrl_names		= "default",
+	.reg			= {0xff130000, 0x100},
+	.reg_io_width		= 0x4,
+	.reg_shift		= 0x2,
+};
+U_BOOT_DEVICE(serial_at_ff130000) = {
+	.name		= "rockchip_rk3328_uart",
+	.platdata	= &dtv_serial_at_ff130000,
+	.platdata_size	= sizeof(dtv_serial_at_ff130000),
+};
+
+static const struct dtd_rockchip_rk3328_dw_mshc dtv_mmc_at_ff500000 = {
+	.bus_width		= 0x4,
+	.cap_mmc_highspeed	= true,
+	.cap_sd_highspeed	= true,
+	.clocks			= {
+			{&dtv_clock_controller_at_ff440000, {317}},
+			{&dtv_clock_controller_at_ff440000, {33}},
+			{&dtv_clock_controller_at_ff440000, {74}},
+			{&dtv_clock_controller_at_ff440000, {78}},},
+	.disable_wp		= true,
+	.fifo_depth		= 0x100,
+	.interrupts		= {0x0, 0xc, 0x4},
+	.max_frequency		= 0x8f0d180,
+	.pinctrl_0		= {0x47, 0x48, 0x49, 0x4a},
+	.pinctrl_names		= "default",
+	.reg			= {0xff500000, 0x4000},
+	.u_boot_spl_fifo_mode	= true,
+	.vmmc_supply		= 0x4b,
+	.vqmmc_supply		= 0x1e,
+};
+U_BOOT_DEVICE(mmc_at_ff500000) = {
+	.name		= "rockchip_rk3328_dw_mshc",
+	.platdata	= &dtv_mmc_at_ff500000,
+	.platdata_size	= sizeof(dtv_mmc_at_ff500000),
+};
+
+static const struct dtd_rockchip_rk3328_pinctrl dtv_pinctrl = {
+	.ranges			= true,
+	.rockchip_grf		= 0x3a,
+};
+U_BOOT_DEVICE(pinctrl) = {
+	.name		= "rockchip_rk3328_pinctrl",
+	.platdata	= &dtv_pinctrl,
+	.platdata_size	= sizeof(dtv_pinctrl),
+};
+
+static const struct dtd_rockchip_gpio_bank dtv_gpio0_at_ff210000 = {
+	.clocks			= {
+			{&dtv_clock_controller_at_ff440000, {200}},},
+	.gpio_controller	= true,
+	.interrupt_controller	= true,
+	.interrupts		= {0x0, 0x33, 0x4},
+	.reg			= {0xff210000, 0x100},
+};
+U_BOOT_DEVICE(gpio0_at_ff210000) = {
+	.name		= "rockchip_gpio_bank",
+	.platdata	= &dtv_gpio0_at_ff210000,
+	.platdata_size	= sizeof(dtv_gpio0_at_ff210000),
+};
+
+static const struct dtd_regulator_fixed dtv_sdmmc_regulator = {
+	.gpio			= {0x60, 0x1e, 0x1},
+	.pinctrl_0		= 0x61,
+	.pinctrl_names		= "default",
+	.regulator_max_microvolt = 0x325aa0,
+	.regulator_min_microvolt = 0x325aa0,
+	.regulator_name		= "vcc_sd",
+	.vin_supply		= 0x1c,
+};
+U_BOOT_DEVICE(sdmmc_regulator) = {
+	.name		= "regulator_fixed",
+	.platdata	= &dtv_sdmmc_regulator,
+	.platdata_size	= sizeof(dtv_sdmmc_regulator),
+};
+
+static const struct dtd_rockchip_rk3328_dmc dtv_dmc = {
+	.reg			= {0xff400000, 0x1000, 0xff780000, 0x3000, 0xff100000, 0x1000, 0xff440000, 0x1000,
+		0xff720000, 0x1000, 0xff798000, 0x1000},
+	.rockchip_sdram_params	= {0x1, 0xa, 0x2, 0x1, 0x0, 0x0, 0x11, 0x0,
+		0x11, 0x0, 0x0, 0x94291288, 0x0, 0x27, 0x462, 0x15,
+		0x242, 0xff, 0x14d, 0x0, 0x1, 0x0, 0x0, 0x0,
+		0x43049010, 0x64, 0x28003b, 0xd0, 0x20053, 0xd4, 0x220000, 0xd8,
+		0x100, 0xdc, 0x40000, 0xe0, 0x0, 0xe4, 0x110000, 0xe8,
+		0x420, 0xec, 0x400, 0xf4, 0xf011f, 0x100, 0x9060b06, 0x104,
+		0x20209, 0x108, 0x505040a, 0x10c, 0x40400c, 0x110, 0x5030206, 0x114,
+		0x3030202, 0x120, 0x3030b03, 0x124, 0x20208, 0x180, 0x1000040, 0x184,
+		0x0, 0x190, 0x7030003, 0x198, 0x5001100, 0x1a0, 0xc0400003, 0x240,
+		0x6000604, 0x244, 0x201, 0x250, 0xf00, 0x490, 0x1, 0xffffffff,
+		0xffffffff, 0xffffffff, 0xffffffff, 0x4, 0xc, 0x28, 0xa, 0x2c,
+		0x0, 0x30, 0x9, 0xffffffff, 0xffffffff, 0x77, 0x88, 0x79,
+		0x79, 0x87, 0x97, 0x87, 0x78, 0x77, 0x78, 0x87,
+		0x88, 0x87, 0x87, 0x77, 0x78, 0x78, 0x78, 0x78,
+		0x78, 0x78, 0x78, 0x78, 0x78, 0x69, 0x9, 0x77,
+		0x78, 0x77, 0x78, 0x77, 0x78, 0x77, 0x78, 0x77,
+		0x79, 0x9, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+		0x78, 0x78, 0x78, 0x69, 0x9, 0x77, 0x78, 0x77,
+		0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x79, 0x9,
+		0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+		0x78, 0x69, 0x9, 0x77, 0x78, 0x77, 0x78, 0x77,
+		0x78, 0x77, 0x78, 0x77, 0x79, 0x9, 0x78, 0x78,
+		0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x69,
+		0x9, 0x77, 0x78, 0x77, 0x77, 0x77, 0x77, 0x77,
+		0x77, 0x77, 0x79, 0x9},
+};
+U_BOOT_DEVICE(dmc) = {
+	.name		= "rockchip_rk3328_dmc",
+	.platdata	= &dtv_dmc,
+	.platdata_size	= sizeof(dtv_dmc),
+};
+

+ 72 - 0
package/boot/uboot-rockchip/src/of-platdata/tpe-r1400-rk3328/dt-structs-gen.h

@@ -0,0 +1,72 @@
+/*
+ * DO NOT MODIFY
+ *
+ * This file was generated by dtoc from a .dtb (device tree binary) file.
+ */
+
+#include <stdbool.h>
+#include <linux/libfdt.h>
+struct dtd_regulator_fixed {
+	fdt32_t		gpio[3];
+	fdt32_t		pinctrl_0;
+	const char *	pinctrl_names;
+	fdt32_t		regulator_max_microvolt;
+	fdt32_t		regulator_min_microvolt;
+	const char *	regulator_name;
+	fdt32_t		vin_supply;
+};
+struct dtd_rockchip_gpio_bank {
+	struct phandle_1_arg clocks[1];
+	bool		gpio_controller;
+	bool		interrupt_controller;
+	fdt32_t		interrupts[3];
+	fdt64_t		reg[2];
+};
+struct dtd_rockchip_rk3328_cru {
+	fdt64_t		reg[2];
+	fdt32_t		rockchip_grf;
+};
+struct dtd_rockchip_rk3328_dmc {
+	fdt64_t		reg[12];
+	fdt32_t		rockchip_sdram_params[196];
+};
+struct dtd_rockchip_rk3328_dw_mshc {
+	fdt32_t		bus_width;
+	bool		cap_mmc_highspeed;
+	bool		cap_sd_highspeed;
+	struct phandle_1_arg clocks[4];
+	bool		disable_wp;
+	fdt32_t		fifo_depth;
+	fdt32_t		interrupts[3];
+	fdt32_t		max_frequency;
+	fdt32_t		pinctrl_0[4];
+	const char *	pinctrl_names;
+	fdt64_t		reg[2];
+	bool		u_boot_spl_fifo_mode;
+	fdt32_t		vmmc_supply;
+	fdt32_t		vqmmc_supply;
+};
+struct dtd_rockchip_rk3328_grf {
+	fdt64_t		reg[2];
+};
+struct dtd_rockchip_rk3328_pinctrl {
+	bool		ranges;
+	fdt32_t		rockchip_grf;
+};
+struct dtd_rockchip_rk3328_uart {
+	fdt32_t		clock_frequency;
+	struct phandle_1_arg clocks[2];
+	const char *	dma_names[2];
+	fdt32_t		dmas[4];
+	fdt32_t		interrupts[3];
+	fdt32_t		pinctrl_0;
+	const char *	pinctrl_names;
+	fdt64_t		reg[2];
+	fdt32_t		reg_io_width;
+	fdt32_t		reg_shift;
+};
+#define dtd_syscon dtd_rockchip_rk3328_cru
+#define dtd_simple_mfd dtd_rockchip_rk3328_grf
+#define dtd_snps_dw_apb_uart dtd_rockchip_rk3328_uart
+#define dtd_rockchip_cru dtd_rockchip_rk3328_cru
+#define dtd_rockchip_rk3288_dw_mshc dtd_rockchip_rk3328_dw_mshc

+ 23 - 0
package/boot/uboot-sunxi/patches/001-yylloc-redefinition.patch

@@ -0,0 +1,23 @@
+From 018921ee79d3f30893614b3b2b63b588d8544f73 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Thu, 30 Jan 2020 09:37:15 +0000
+Subject: [PATCH] Remove redundant YYLOC global declaration
+
+Same as the upstream fix for building dtc with gcc 10.
+
+Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
+Origin: upstream, https://github.com/u-boot/u-boot/commit/018921ee79d3f30893614b3b2b63b588d8544f73
+---
+ scripts/dtc/dtc-lexer.l | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/scripts/dtc/dtc-lexer.l
++++ b/scripts/dtc/dtc-lexer.l
+@@ -38,7 +38,6 @@ LINECOMMENT	"//".*\n
+ #include "srcpos.h"
+ #include "dtc-parser.tab.h"
+ 
+-YYLTYPE yylloc;
+ extern bool treesource_error;
+ 
+ /* CAUTION: this will stop working if we ever use yyless() or yyunput() */

+ 1 - 0
package/devel/perf/Makefile

@@ -52,6 +52,7 @@ MAKE_FLAGS = \
 	NO_LIBAUDIT=1 \
 	NO_LIBCRYPTO=1 \
 	NO_LIBUNWIND=1 \
+	NO_LIBCAP=1 \
 	CROSS_COMPILE="$(TARGET_CROSS)" \
 	CC="$(TARGET_CC)" \
 	LD="$(TARGET_CROSS)ld" \

+ 3 - 2
package/firmware/wireless-regdb/Makefile

@@ -1,11 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=wireless-regdb
-PKG_VERSION:=2019.06.03
+PKG_VERSION:=2021.08.28
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
-PKG_HASH:=cd917ed86b63ce8d93947979f1f18948f03a4ac0ad89ec25227b36ac00dc54bf
+PKG_HASH:=cff370c410d1e6d316ae0a7fa8ac6278fdf1efca5d3d664aca7cfd2aafa54446
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 

+ 0 - 58
package/firmware/wireless-regdb/patches/010-regdb-fix-compatibility-with-python2.patch

@@ -1,58 +0,0 @@
-From 651e39dee8605995b736b6056c6f7dc5c5a9c948 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Thu, 22 Aug 2019 21:46:27 +0200
-Subject: [PATCH] regdb: fix compatibility with python2
-
-Various changes in the commit mentioned below broke
-compatibility with python2. Restore it in a way that
-makes it worth with both versions.
-
-Fixes: f3c4969c2485 ("wireless-regdb: make scripts compatible with Python 3")
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
----
- db2bin.py  | 2 +-
- db2fw.py   | 2 +-
- dbparse.py | 3 +--
- 3 files changed, 3 insertions(+), 4 deletions(-)
-
---- a/db2bin.py
-+++ b/db2bin.py
-@@ -118,7 +118,7 @@ reg_country_ptr.set()
- for alpha2 in countrynames:
-     coll = countries[alpha2]
-     # struct regdb_file_reg_country
--    output.write(struct.pack('>BBxBI', alpha2[0], alpha2[1], coll.dfs_region, reg_rules_collections[coll.permissions]))
-+    output.write(struct.pack('>2sxBI', alpha2, coll.dfs_region, reg_rules_collections[coll.permissions]))
- 
- 
- if len(sys.argv) > 3:
---- a/db2fw.py
-+++ b/db2fw.py
-@@ -85,7 +85,7 @@ countrynames = list(countries)
- countrynames.sort()
- for alpha2 in countrynames:
-     coll = countries[alpha2]
--    output.write(struct.pack('>BB', alpha2[0], alpha2[1]))
-+    output.write(struct.pack('>2s', alpha2))
-     country_ptrs[alpha2] = PTR(output)