[-- Attachment #1: Type: text/plain, Size: 278 bytes --] New comment by CameronNemo on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-944723951 Comment: Linted, built on aarch64 and aarch64-musl, reviewed templates et al. LGTM. But I do not have the RockPro64 to test with. @Anachron
[-- Attachment #1: Type: text/plain, Size: 385 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-950329526 Comment: I just got a few RockPro64 boards so I built these packages locally and tested with https://github.com/void-linux/void-mklive/pull/221. I am able to boot the RockPro64 with these packages. Is there anything else I can test to get this merged?
[-- Attachment #1: Type: text/plain, Size: 210 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1058829681 Comment: I'm going to buy a RockPro64 myself and test this PR... stay tuned.
[-- Attachment #1: Type: text/plain, Size: 366 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1070383083 Comment: I was able to build this as expected: `Created /home/anon/app/dat/mkvr/images/void-live-x86_64-20220317-rockpro64-de_DE.UTF-8.iso (560M) successfully.` I'm going to test this on my hardware soon and report once again
[-- Attachment #1: Type: text/plain, Size: 210 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1058829681 Comment: I'm going to buy a RockPro64 myself and test this PR... stay tuned.
[-- Attachment #1: Type: text/plain, Size: 367 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1070383083 Comment: I was able to build this as expected: `Created /home/anon/app/dat/mkvr/images/void-live-aarch64-20220317-rockpro64-de_DE.UTF-8.iso (560M) successfully.` I'm going to test this on my hardware soon and report once again
[-- Attachment #1: Type: text/plain, Size: 837 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1070383083 Comment: Edit: I did a mistake when building my iso and I can't seem to build a new iso right now: ``` findutils-4.8.0_1: registered 'xargs' alternatives group Creating 'xargs' alternatives group symlink: xargs -> /usr/bin/gxargs Creating 'xargs' alternatives group symlink: xargs.1 -> /usr/share/man/man1/gxargs.1 diffutils-3.7_1: unpacking ... libgcc-10.2.1pre1_3: unpacking ... dash-0.5.11.5_1: unpacking ... dash-0.5.11.5_1: registered 'sh' alternatives group Creating 'sh' alternatives group symlink: sh -> /usr/bin/dash Creating 'sh' alternatives group symlink: sh.1 -> /usr/share/man/man1/dash.1 bash-5.1.016_1: unpacking ... ERROR: Failed to install base-system rockpro64-base ```
[-- Attachment #1: Type: text/plain, Size: 837 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1070383083 Comment: Edit: I did a mistake when building my iso and I can't seem to build a new iso right now: ``` findutils-4.8.0_1: registered 'xargs' alternatives group Creating 'xargs' alternatives group symlink: xargs -> /usr/bin/gxargs Creating 'xargs' alternatives group symlink: xargs.1 -> /usr/share/man/man1/gxargs.1 diffutils-3.7_1: unpacking ... libgcc-10.2.1pre1_3: unpacking ... dash-0.5.11.5_1: unpacking ... dash-0.5.11.5_1: registered 'sh' alternatives group Creating 'sh' alternatives group symlink: sh -> /usr/bin/dash Creating 'sh' alternatives group symlink: sh.1 -> /usr/share/man/man1/dash.1 bash-5.1.016_1: unpacking ... ERROR: Failed to install base-system rockpro64-base ```
[-- Attachment #1: Type: text/plain, Size: 352 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1070688302 Comment: Since live-images are not possible I've created a platformfs and will try to boot soon: `Successfully created /home/anon/.mkvr/images/void-platform-aarch64-20220317-rockpro64-de_DE.UTF-8.tar.xz (rockpro64)`
[-- Attachment #1: Type: text/plain, Size: 469 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1070976791 Comment: Just a headsup: It surely would be good to include https://github.com/tuxd3v/ats in the repo after this is merged because the fan is quite noisy by default. It supports sysvinit so maybe we can patch it for runit. (I might even give it a try) So far have not tried booting yet, I need to get a new microsd card before.
[-- Attachment #1: Type: text/plain, Size: 661 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1072771436 Comment: @tiemenwerkman @tsndqst @CameronNemo please tell me on how to get a working `platformfs` for `rockpro64`. What I did was I took the `void-aarch64-ROOTFS-20210930.tar.xz` and added the `rockpro64-base` to it: ```sh ./mkplatformfs.sh -p rockpro64-base -c /home/anon/.mkvr/cache -r /home/anon/.bldr/host/binpkgs/pr-33556 -o /home/anon/.mkvr/images/void-platform-aarch64-20220318-rockpro64-de_DE.UTF-8.tar.xz rockpro64 /home/anon/.mkvr/data/rockpro64/rootfs.tar.xz ``` Surely I must be missing something here?
[-- Attachment #1: Type: text/plain, Size: 669 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1072771436 Comment: @tiemenwerkman @tsndqst @CameronNemo please tell me on how to get a working `platformfs` for `rockpro64`. What I did was I took the `void-aarch64-ROOTFS-20210930.tar.xz` and added the `rockpro64-base` to it: ```sh ./mkplatformfs.sh -p rockpro64-base -c /home/anon/.mkvr/cache -r /home/anon/.bldr/host/binpkgs/pr-33556 \ -o /home/anon/.mkvr/images/void-platform-aarch64-20220318-rockpro64-de_DE.UTF-8.tar.xz rockpro64 \ /home/anon/.mkvr/data/rockpro64/rootfs.tar.xz ``` Surely I must be missing something here?
[-- Attachment #1: Type: text/plain, Size: 158 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1072787567 Comment: @Anachron I used
[-- Attachment #1: Type: text/plain, Size: 534 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1072787567 Comment: @Anachron I used the following command. `./mkplatformfs.sh -r "/home/tsndqst/void-packages-aarch64" -r "/home/tsndqst/void-packages-rockpro64/hostdir/binpkgs/rockpro64" -p "linux5.15 ntp git bind-utils socat containerd cri-tools conntrack-tools kubernetes-helm salt lm_sensors cni-plugins kubernetes xtools socklog-void" -k ./rp64_post_cmd rockpro64 void-aarch64-ROOTFS-20211126.tar.xz`
[-- Attachment #1: Type: text/plain, Size: 394 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1072795901 Comment: Okay, thanks for the quick reply, I figure I need a `linux` package but wasn't sure if that really was the case because the `mklive` adds one by it self. Will recreate the rootfs and try again another day. Also, what's inside your `/rp64_post_cmd`?
[-- Attachment #1: Type: text/plain, Size: 2057 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1072868753 Comment: I recall being surprised that I had to add a `linux` package too. My `rp64_post_cmd` script has some setup stuff that I got tired of running on my three rockpro64s after install. Half of is it prepping for installing kubernetes. ``` #!/bin/bash chroot $1 /bin/bash <<EOT ln -sf /etc/sv/socklog-unix /etc/runit/runsvdir/current ln -sf /etc/sv/nanoklogd /etc/runit/runsvdir/current echo "Set timezone" ln -sf /usr/share/zoneinfo/US/Central /etc/localtime echo "Start ntpd" ntpd -gq ln -s /etc/sv/ntpd /etc/runit/runsvdir/current echo "Configure dhcpcd" sed -i -e '/^\#hostname/s/\#//' -e '/option host_name/a env force_hostname=YES\nenv hostname_fqdn=false' /etc/dhcpcd.conf echo 'denyinterfaces cilium*,lxc*' >> /etc/dhcpcd.conf echo "Set up salt" sed -i '/^#master:/s/\#//' /etc/salt/minion ln -s /etc/sv/salt-minion /etc/runit/runsvdir/current echo "Set up containerd" mkdir -p /etc/containerd containerd config default > /etc/containerd/config.toml ln -s /etc/sv/containerd /etc/runit/runsvdir/current echo "Set up containerd modules" cat <<EOF > /etc/modules-load.d/containerd.conf overlay br_netfilter EOF echo "Setup required sysctl params" mkdir -p /etc/sysctl.d cat <<EOF > /etc/sysctl.d/99-kubernetes-cri.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF echo "Create /etc/crictl.yaml" echo "runtime-endpoint: unix:///run/containerd/containerd.sock" > /etc/crictl.yaml echo CGROUP_MODE=unified >> /etc/rc.conf echo "Mount / as rshared" sed -i -e '/\//s/defaults/defaults,rshared/' /etc/fstab mkdir -p /etc/kubernetes/manifests # # Update kubelet config.yaml to use cgroupfs cgroupDriver # cat <<EOF > /etc/kubernetes/kubelet-config.yaml apiVersion: kubelet.config.k8s.io/v1beta1 cgroupDriver: cgroupfs serverTLSBootstrap: true EOF sync EOT ```
[-- Attachment #1: Type: text/plain, Size: 1532 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1073875562 Comment: Thanks for your quick replies, @tsndqst , I'm still having trouble booting from my `rockpro64`. I've generated the new platformfs: ``` ./mkplatformfs.sh -b rockpro64-base -p "linux5.15 xtools" -c /home/anon/.mkvr/cache -r /home/anon/.bldr/host/binpkgs/pr-33556 -o /home/anon/.mkvr/images/void-platform-aarch64-20220320-rockpro64-de_DE.UTF-8.tar.xz rockpro64 /home/anon/.mkvr/data/rockpro64/rootfs.tar.xz ``` My sdcard is as following: ```sh sudo LC_ALL=C sfdisk -l /dev/sdb Disk /dev/sdb: 29.3 GiB, 31457280000 bytes, 61440000 sectors Disk model: Mass-Storage Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x221eac7d Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 61439999 61437952 29.3G 83 Linux ``` ``` lsblk -f /dev/sdb NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sdb └─sdb1 ext4 1.0 void 042932dd-f110-424b-b424-b11f72221cfe 26,6G 2% /mnt/dev/1st ``` Yet when I power on my RockPro64, the device wouldn't boot at all. My Armbian SDcard works without issues. (Don't be confused, my void sdcard is `/dev/sdX` because I use an usb adapter to be able to mount 2 sdcards at the same time) Maybe we can chat sometime on IRC?
[-- Attachment #1: Type: text/plain, Size: 2278 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074049815 Comment: More info. Inside `Armbian/boot`: ``` Image: symbolic link to vmlinuz-5.15.25-rockchip64 System.map-5.15.25-rockchip64: ASCII text armbianEnv.txt: ASCII text armbian_first_run.txt.template: ASCII text boot.bmp: PC bitmap, Windows 3.x format, 320 x 240 x 4, image size 38400, cbSize 38518, bits offset 118 boot.cmd: ASCII text boot.scr: u-boot legacy uImage, , Linux/ARM, Script File (Not compressed), 3121 bytes, Thu Aug 26 11:08:57 2021, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0XBE5168B2, Data CRC: 0X7F0AB2DF config-5.15.25-rockchip64: Linux make config build file, ASCII text dtb: symbolic link to dtb-5.15.25-rockchip64 dtb-5.15.25-rockchip64: directory initrd.img-5.10.60-rockchip64: gzip compressed data, was "mkinitramfs-MAIN_6O9r8Y", last modified: Wed Mar 16 22:03:52 2022, from Unix, original size modulo 2^32 48922624 initrd.img-5.15.25-rockchip64: gzip compressed data, was "mkinitramfs-MAIN_4e0IWN", last modified: Thu Mar 17 20:47:05 2022, from Unix, original size modulo 2^32 28397056 uInitrd: symbolic link to uInitrd-5.15.25-rockchip64 uInitrd-5.10.60-rockchip64: u-boot legacy uImage, uInitrd, Linux/ARM 64-bit, RAMDisk Image (gzip), 16449299 bytes, Wed Mar 16 22:04:17 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0XE8719F5C, Data CRC: 0XD84B7EFC uInitrd-5.15.25-rockchip64: u-boot legacy uImage, uInitrd, Linux/ARM 64-bit, RAMDisk Image (gzip), 15658552 bytes, Thu Mar 17 20:47:32 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0XA3E0EE71, Data CRC: 0XDFFB8870 vmlinuz-5.15.25-rockchip64: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` Inside `Void/boot`: ``` config-5.15.30_1: Linux make config build file, ASCII text dtbs: directory initramfs-5.15.30_1.img: regular file, no read permission vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ```
[-- Attachment #1: Type: text/plain, Size: 831 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`.
[-- Attachment #1: Type: text/plain, Size: 1630 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: regular file, no read permission boot/initrd: regular file, no read permission boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable.
[-- Attachment #1: Type: text/plain, Size: 1685 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: regular file, no read permission boot/initrd: regular file, no read permission boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable. Edit: Still doesn't boot. I'll keep investigating.
[-- Attachment #1: Type: text/plain, Size: 2498 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: regular file, no read permission boot/initrd: regular file, no read permission boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable. Edit: Still doesn't boot. I'll keep investigating. Edit2: The `dtb` files are differing, just as the kernel configs. The `Armbian` file is a lot bigger. ```sh file *rockpro64* # Armbian rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 rk3399-rockpro64.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 file boot/dtbs/dtbs-5.15.30_1/rockchip/*rockpro* # Void Linux boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 ```
[-- Attachment #1: Type: text/plain, Size: 2602 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable. Edit: Still doesn't boot. I'll keep investigating. Edit2: The `dtb` files are differing, just as the kernel configs. The `Armbian` file is a lot bigger. ```sh file *rockpro64* # Armbian rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 rk3399-rockpro64.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 file boot/dtbs/dtbs-5.15.30_1/rockchip/*rockpro* # Void Linux boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 ```
[-- Attachment #1: Type: text/plain, Size: 2728 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable. Edit: Still doesn't boot. I'll keep investigating. Edit2: The `dtb` files are differing, just as the kernel configs. The `Armbian` file is a lot bigger. ```sh file *rockpro64* # Armbian rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 rk3399-rockpro64.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 file boot/dtbs/dtbs-5.15.30_1/rockchip/*rockpro* # Void Linux boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 ``` Edit3: I'm sure the issue is somewhere in the boot area, but I'm running in circles right now. Maybe someone can chime in.
[-- Attachment #1: Type: text/plain, Size: 2918 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable. Edit: Still doesn't boot. I'll keep investigating. Edit2: The `dtb` files are differing, just as the kernel configs. The `Armbian` file is a lot bigger. ```sh file *rockpro64* # Armbian rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 rk3399-rockpro64.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 file boot/dtbs/dtbs-5.15.30_1/rockchip/*rockpro* # Void Linux boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 ``` Edit3: I'm sure the issue is somewhere in the boot area, but I'm running in circles right now. Maybe someone can chime in. Edit4: Realized the initrams is not `arm64` but `arm` as per this line: https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L206 (needs to be replaced by `arm64`).
[-- Attachment #1: Type: text/plain, Size: 3690 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable. Edit: Still doesn't boot. I'll keep investigating. Edit2: The `dtb` files are differing, just as the kernel configs. The `Armbian` file is a lot bigger. ```sh file *rockpro64* # Armbian rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 rk3399-rockpro64.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 file boot/dtbs/dtbs-5.15.30_1/rockchip/*rockpro* # Void Linux boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 ``` Edit3: I'm sure the issue is somewhere in the boot area, but I'm running in circles right now. Maybe someone can chime in. Edit4: Realized the initrams is not `arm64` but `arm` as per this line: https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L206 (needs to be replaced by `arm64`). New initrams should be fine now: ```sh file sdc/boot/* sdc/boot/config-5.15.30_1: Linux make config build file, ASCII text sdc/boot/dtbs: directory sdc/boot/initramfs-5.15.30_1.img: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 sdc/boot/initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 sdc/boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM 64-bit, RAMDisk Image (gzip), 48965024 bytes, Mon Mar 21 20:53:35 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0XF427FD20, Data CRC: 0XCBFFDDF3 sdc/boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ```
[-- Attachment #1: Type: text/plain, Size: 3739 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074358467 Comment: After digging a bit more I believe the issue is that https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L180 is not trigger for my `platformfs` build, even though I have the tools but not the files: ```sh ls -lisah usr/bin/{mkimage,dracut} 919096 88K -rwxr-xr-x 1 root root 85K 14. Jul 2021 usr/bin/dracut 919116 300K -rwxr-xr-x 1 root root 299K 21. Jan 01:10 usr/bin/mkimage ``` ```sh LC_ALL=C ls -lisah boot/*nitrd ls: cannot access 'boot/*nitrd': No such file or directory ``` Probably because of https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182, I build for `aarch64` but it checks for `arm` in `XBPS_TARGET_ARCH`. Edit: Yes, it builds the `initrd` now by deleting https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L182. ```sh file boot/* boot/config-5.15.30_1: Linux make config build file, ASCII text boot/dtbs: directory boot/initramfs-5.15.30_1.img: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM, RAMDisk Image (gzip), 48964431 bytes, Mon Mar 21 20:09:31 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0X254158BA, Data CRC: 0XCC2EB7BA boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` I'll transfer it to my sdcard once more and check if its bootable. Edit: Still doesn't boot. I'll keep investigating. Edit2: The `dtb` files are differing, just as the kernel configs. The `Armbian` file is a lot bigger. ```sh file *rockpro64* # Armbian rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 rk3399-rockpro64.dtb: Device Tree Blob version 17, size=78191, boot CPU=0, string block size=6679, DT structure block size=71456 file boot/dtbs/dtbs-5.15.30_1/rockchip/*rockpro* # Void Linux boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64-v2.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 boot/dtbs/dtbs-5.15.30_1/rockchip/rk3399-rockpro64.dtb: Device Tree Blob version 17, size=58656, boot CPU=0, string block size=3036, DT structure block size=55564 ``` Edit3: I'm sure the issue is somewhere in the boot area, but I'm running in circles right now. Maybe someone can chime in. Edit4: Realized the initrams is not `arm64` but `arm` as per this line: https://github.com/void-linux/void-mklive/blob/master/mkplatformfs.sh.in#L206 (needs to be replaced by `arm64`). New initrams should be fine now: ```sh file sdc/boot/* sdc/boot/config-5.15.30_1: Linux make config build file, ASCII text sdc/boot/dtbs: directory sdc/boot/initramfs-5.15.30_1.img: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 sdc/boot/initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 69921792 sdc/boot/uInitrd: u-boot legacy uImage, Void Linux, Linux/ARM 64-bit, RAMDisk Image (gzip), 48965024 bytes, Mon Mar 21 20:53:35 2022, Load Address: 00000000, Entry Point: 00000000, Header CRC: 0XF427FD20, Data CRC: 0XCBFFDDF3 sdc/boot/vmlinux-5.15.30_1: Linux kernel ARM64 boot executable Image, little-endian, 4K pages ``` Edit5: Still not booting. Giving up for now.
[-- Attachment #1: Type: text/plain, Size: 589 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074584128 Comment: @Anachron your comments mention the master branch of [void-mklive](https://github.com/void-linux/void-mklive). I used the files from https://github.com/void-linux/void-mklive/pull/221 to create the image, rootfs and platformfs files. Perhaps that is why the scripts don't work for you. Also note that I made some changes to the mkimage.sh.in script described [here](https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038).
[-- Attachment #1: Type: text/plain, Size: 336 bytes --] New comment by zen0bit on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074668760 Comment: Little 'offtopic' question: Can be used for pinephone pro or at least as base + some phone stuff? I am not experienced in this.. but wanna void also on ppp and wondering where to start...
[-- Attachment #1: Type: text/plain, Size: 1261 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074787354 Comment: > @Anachron your comments mention the master branch of [void-mklive](https://github.com/void-linux/void-mklive). I used the files from [void-linux/void-mklive#221](https://github.com/void-linux/void-mklive/pull/221) to create the image, rootfs and platformfs files. Perhaps that is why the scripts don't work for you. > > Also note that I made some changes to the mkimage.sh.in script described [here](https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038). I'm confused by your reply. Earlier you said you were using the `mkplatformfs.sh` but now you're saying I should modify the `mklive.sh` script? Which commands did you run exactly to make `RockPro64` work? And which changes did you make to the build process? I did finally get my sdcard to boot, even though it complains about not being able to find anything after running the following commands (I've used the precompiled blobs from rockpro64-uboot): https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip#L457 I'm trying the `mklive.sh` way again in the meantime hoping to get something working from this angle.
[-- Attachment #1: Type: text/plain, Size: 1262 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074787354 Comment: > @Anachron your comments mention the master branch of [void-mklive](https://github.com/void-linux/void-mklive). I used the files from [void-linux/void-mklive#221](https://github.com/void-linux/void-mklive/pull/221) to create the image, rootfs and platformfs files. Perhaps that is why the scripts don't work for you. > > Also note that I made some changes to the mkimage.sh.in script described [here](https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038). I'm confused by your reply. Earlier you said you were using the `mkplatformfs.sh` but now you're saying I should modify the `mkimage.sh` script? Which commands did you run exactly to make `RockPro64` work? And which changes did you make to the build process? I did finally get my sdcard to boot, even though it complains about not being able to find anything after running the following commands (I've used the precompiled blobs from rockpro64-uboot): https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip#L457 I'm trying the `mklive.sh` way again in the meantime hoping to get something working from this angle.
[-- Attachment #1: Type: text/plain, Size: 1550 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074787354 Comment: > @Anachron your comments mention the master branch of [void-mklive](https://github.com/void-linux/void-mklive). I used the files from [void-linux/void-mklive#221](https://github.com/void-linux/void-mklive/pull/221) to create the image, rootfs and platformfs files. Perhaps that is why the scripts don't work for you. > > Also note that I made some changes to the mkimage.sh.in script described [here](https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038). I'm confused by your reply. Earlier you said you were using the `mkplatformfs.sh` but now you're saying I should modify the `mkimage.sh` script? Which commands did you run exactly to make `RockPro64` work? And which changes did you make to the build process? I did finally get my sdcard to boot, even though it complains about not being able to find anything after running the following commands (I've used the precompiled blobs from rockpro64-uboot): https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip#L457 I'm trying the `mkimage.sh` way again in the meantime hoping to get something working from this angle. Edit: Even can't get it to boot using `mkimage.sh`: ```sh ./mkimage.sh void-rockpro64-PLATFORMFS-20220321-de_DE-UTF8.tar.xz dd if=<image>.img of=/dev/mmcblk0 bs=4M status=progress ``` It wont boot or even light up. Will try to run the steps from README.rockchip from above.
[-- Attachment #1: Type: text/plain, Size: 1623 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074787354 Comment: > @Anachron your comments mention the master branch of [void-mklive](https://github.com/void-linux/void-mklive). I used the files from [void-linux/void-mklive#221](https://github.com/void-linux/void-mklive/pull/221) to create the image, rootfs and platformfs files. Perhaps that is why the scripts don't work for you. > > Also note that I made some changes to the mkimage.sh.in script described [here](https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038). I'm confused by your reply. Earlier you said you were using the `mkplatformfs.sh` but now you're saying I should modify the `mkimage.sh` script? Which commands did you run exactly to make `RockPro64` work? And which changes did you make to the build process? I did finally get my sdcard to boot, even though it complains about not being able to find anything after running the following commands (I've used the precompiled blobs from rockpro64-uboot): https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip#L457 I'm trying the `mkimage.sh` way again in the meantime hoping to get something working from this angle. Edit: Even can't get it to boot using `mkimage.sh`: ```sh ./mkimage.sh void-rockpro64-PLATFORMFS-20220321-de_DE-UTF8.tar.xz dd if=<image>.img of=/dev/mmcblk0 bs=4M status=progress ``` It wont boot or even light up. Will try to run the steps from README.rockchip from above. Edit2: No change. I really need help on how to get this boot to work.
[-- Attachment #1: Type: text/plain, Size: 1647 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074787354 Comment: > @Anachron your comments mention the master branch of [void-mklive](https://github.com/void-linux/void-mklive). I used the files from [void-linux/void-mklive#221](https://github.com/void-linux/void-mklive/pull/221) to create the image, rootfs and platformfs files. Perhaps that is why the scripts don't work for you. > > Also note that I made some changes to the mkimage.sh.in script described [here](https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038). I'm confused by your reply. Earlier you said you were using the `mkplatformfs.sh` but now you're saying I should modify the `mkimage.sh` script? Which commands did you run exactly to make `RockPro64` work? And which changes did you make to the build process? I did finally get my sdcard to boot, even though it complains about not being able to find anything after running the following commands (I've used the precompiled blobs from rockpro64-uboot): https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip#L457 I'm trying the `mkimage.sh` way again in the meantime hoping to get something working from this angle. Edit: Even can't get it to boot using `mkimage.sh`: ```sh ./mkimage.sh void-rockpro64-PLATFORMFS-20220321-de_DE-UTF8.tar.xz dd if=<image>.img of=/dev/mmcblk0 bs=4M status=progress ``` It wont boot or even light up. Will try to run the steps from README.rockchip from above. Edit2: Lights up but can't find anything. I really need help on how to get this boot to work.
[-- Attachment #1: Type: text/plain, Size: 1857 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1074787354 Comment: > @Anachron your comments mention the master branch of [void-mklive](https://github.com/void-linux/void-mklive). I used the files from [void-linux/void-mklive#221](https://github.com/void-linux/void-mklive/pull/221) to create the image, rootfs and platformfs files. Perhaps that is why the scripts don't work for you. > > Also note that I made some changes to the mkimage.sh.in script described [here](https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038). I'm confused by your reply. Earlier you said you were using the `mkplatformfs.sh` but now you're saying I should modify the `mkimage.sh` script? Which commands did you run exactly to make `RockPro64` work? And which changes did you make to the build process? I did finally get my sdcard to boot, even though it complains about not being able to find anything after running the following commands (I've used the precompiled blobs from rockpro64-uboot): https://github.com/u-boot/u-boot/blob/master/doc/README.rockchip#L457 I'm trying the `mkimage.sh` way again in the meantime hoping to get something working from this angle. Edit: Even can't get it to boot using `mkimage.sh`: ```sh ./mkimage.sh void-rockpro64-PLATFORMFS-20220321-de_DE-UTF8.tar.xz dd if=<image>.img of=/dev/mmcblk0 bs=4M status=progress ``` It wont boot or even light up. Will try to run the steps from README.rockchip from above. Edit2: Lights up but can't find anything. I really need help on how to get this boot to work. Edit3: Okay, I was finally able to get my `RockPro64` to boot `Void Linux`! Wohoo. Will test a bit deeper. So far: - My SATA drives are available - The latest kernel works Will update on progress.
[-- Attachment #1: Type: text/plain, Size: 1007 bytes --] New comment by CameronNemo on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1075612315 Comment: >it builds the initrd now I do not think you want an initrd or uinitrd file. The `initramfs-5.15.30_1.img` file should be enough if you are using u-boot-menu. >Also note that I made some changes to the mkimage.sh.in script described https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038. Someone should probably make a new PR for the mklive repo that includes those changes. That PR's submitter does not seem particularly active. Is that something you can take care of, @zen0bit? I do not have the hardware but I can review based on what I know from the PBP. >Even can't get it to boot using mkimage.sh Yeah that is expected. mkimage will just be a plain old aarch64 rootfs. It will not have a partition table set up, or the U-boot blobs written to the correct offsets. You feed the output of mkimage to mkplatformfs typically.
[-- Attachment #1: Type: text/plain, Size: 1286 bytes --] New comment by CameronNemo on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1075612315 Comment: >it builds the initrd now I do not think you want an initrd or uinitrd file. The `initramfs-5.15.30_1.img` file should be enough if you are using u-boot-menu. >Also note that I made some changes to the mkimage.sh.in script described https://github.com/void-linux/void-mklive/pull/221#discussion_r735122038. Someone should probably make a new PR for the mklive repo that includes those changes. That PR's submitter does not seem particularly active. Is that something you can take care of, @tsndqst ? I do not have the hardware but I can review based on what I know from the PBP. >Even can't get it to boot using mkimage.sh Yeah that is expected. mkimage will just be a plain old aarch64 rootfs. It will not have a partition table set up, or the U-boot blobs written to the correct offsets. You feed the output of mkimage to mkplatformfs typically. > Can be used for pinephone pro or at least as base + some phone stuff? Maybe. Not sure if the PPP kernel changes are all upstream yet. Probably not. But once we have a PPP kernel, adapting the existing PBP and RP64 mklive bits to handle the PPP should be fairly trivial.
[-- Attachment #1: Type: text/plain, Size: 306 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1075636572 Comment: @CameronNemo in case you missed it, I can boot my RockPro64 on Void Linux now. I'll test it thoroughly and reply here if I find something important not working.
[-- Attachment #1: Type: text/plain, Size: 501 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1075636572 Comment: @CameronNemo in case you missed it, I can boot my RockPro64 on Void Linux now. I'll test it thoroughly and reply here if I find something important not working. Edit: Because the `ats` package is compiled using `luarocks` and I'm having severe issues compiling it, [this](https://github.com/KUKARAF/FanControlerRock64) script should do it just as well.
[-- Attachment #1: Type: text/plain, Size: 336 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1076604074 Comment: Ok after quite some testing I can indeed confirm now that everything works as expected. I believe we either need to figure out how to contact OP or wait until I find the time to make a new PR.
[-- Attachment #1: Type: text/plain, Size: 1309 bytes --] There is a new pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 17540 bytes --] From 7468e60e3f9e1e7b2e5a612f795a448d6c7b724e Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/3] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 000000000000..7e67f362c796 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 000000000000..e90db4f4396d --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" From 3ad6a2aac97eede2f4f80608ee5dfbeb766e93e2 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/3] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 47 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 368 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 000000000000..1f9839889f0d --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 000000000000..f3c08bf33c61 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 000000000000..b40c9270302e --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 000000000000..d784a696e852 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 000000000000..af207a228085 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 000000000000..10daa7174b83 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,47 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +wrksrc="u-boot-${version}" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 000000000000..cfcfccd3fb43 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot" From eaec98d3e8c67fb50cc17b980939576d899683ce Mon Sep 17 00:00:00 2001 From: Tim Sandquist <tim.sandquist@gmail.com> Date: Tue, 29 Mar 2022 18:56:58 -0500 Subject: [PATCH 3/3] rockpro64-base: add linux package to depends --- srcpkgs/rockpro64-base/template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template index e90db4f4396d..36c9ccb23b3e 100644 --- a/srcpkgs/rockpro64-base/template +++ b/srcpkgs/rockpro64-base/template @@ -1,10 +1,10 @@ # Template file for 'rockpro64-base' pkgname=rockpro64-base version=1 -revision=1 +revision=2 archs="aarch64*" build_style=meta -depends="rockpro64-uboot u-boot-menu dracut" +depends="linux rockpro64-uboot u-boot-menu dracut" short_desc="Void Linux RockPro64 platform package" maintainer="Tiemen Werkman <tiemen@opifexonline.com>" license="Public Domain"
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 17459 bytes --] From fe1cac583b4108e5924ef4f56d1e5d96bec4c68c Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/3] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 000000000000..7e67f362c796 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 000000000000..e90db4f4396d --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" From fdfaad700643e5015fd39abb3f6824ad847bb6ac Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/3] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 47 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 368 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 000000000000..1f9839889f0d --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 000000000000..f3c08bf33c61 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 000000000000..b40c9270302e --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 000000000000..d784a696e852 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 000000000000..af207a228085 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 000000000000..10daa7174b83 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,47 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +wrksrc="u-boot-${version}" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 000000000000..cfcfccd3fb43 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot" From 858c2713a3bd58238345d15b4e3553c5216b2553 Mon Sep 17 00:00:00 2001 From: Tim Sandquist <tim.sandquist@gmail.com> Date: Tue, 29 Mar 2022 18:56:58 -0500 Subject: [PATCH 3/3] rockpro64-base: add linux package to depends --- srcpkgs/rockpro64-base/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template index e90db4f4396d..1e5af3a6dc6b 100644 --- a/srcpkgs/rockpro64-base/template +++ b/srcpkgs/rockpro64-base/template @@ -4,7 +4,7 @@ version=1 revision=1 archs="aarch64*" build_style=meta -depends="rockpro64-uboot u-boot-menu dracut" +depends="linux rockpro64-uboot u-boot-menu dracut" short_desc="Void Linux RockPro64 platform package" maintainer="Tiemen Werkman <tiemen@opifexonline.com>" license="Public Domain"
[-- Attachment #1: Type: text/plain, Size: 208 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1094185489 Comment: @tsndqst could you please open up your own PR, OP seems inactive.
[-- Attachment #1: Type: text/plain, Size: 208 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1094185489 Comment: @tsndqst could you please open up your own PR, OP seems inactive.
[-- Attachment #1: Type: text/plain, Size: 223 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1094186017 Comment: I'm running the packages on my RockPro64 for weeks now. Imo this can be merged.
[-- Attachment #1: Type: text/plain, Size: 189 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1094186523 Comment: We have a new PR. This can probably be closed.
[-- Attachment #1: Type: text/plain, Size: 220 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1125152032 Comment: I think this can be merged with the other PR... running this for a month now.
[-- Attachment #1: Type: text/plain, Size: 305 bytes --] New comment by github-actions[bot] on void-packages repository https://github.com/void-linux/void-packages/pull/33556#issuecomment-1179638981 Comment: Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.
[-- Attachment #1: Type: text/plain, Size: 284 bytes --] New comment by geekboy01 on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1207243855 Comment: Any chance of this rolling out to the main repos or advice on how to build the all that is necessary to get Void up and running on my RP64s?
[-- Attachment #1: Type: text/plain, Size: 485 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1207762318 Comment: You have to fork this repo and https://github.com/void-linux/void-mklive and merge this PR and https://github.com/void-linux/void-mklive/pull/221 yourself, then build the packages from this PR using `xbps-src` and use `void-mklive` to generate an image to put on your `RockPro64`. Hopefully some maintainer steps in and merges this though.
[-- Attachment #1: Type: text/plain, Size: 197 bytes --] New comment by geekboy01 on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1208660166 Comment: @Anachron , much appreciated, got it building now.
[-- Attachment #1: Type: text/plain, Size: 351 bytes --] New comment by geekboy01 on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1208660166 Comment: @Anachron , much appreciated, got it building now. update: with your help and paper42's help on another issue got the image to build and running great. Very much appreciate everyone's help and advice.
[-- Attachment #1: Type: text/plain, Size: 305 bytes --] New comment by github-actions[bot] on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1308104864 Comment: Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.
[-- Attachment #1: Type: text/plain, Size: 148 bytes --] New comment by geekboy01 on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1312829252 Comment: bump
[-- Attachment #1: Type: text/plain, Size: 168 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1312834454 Comment: Yep, dont let this die...
[-- Attachment #1: Type: text/plain, Size: 305 bytes --] New comment by github-actions[bot] on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1427220053 Comment: Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.
[-- Attachment #1: Type: text/plain, Size: 146 bytes --] New comment by zen0bit on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1427331982 Comment: Bump
[-- Attachment #1: Type: text/plain, Size: 172 bytes --] New comment by geekboy01 on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1428050141 Comment: bump, don't wanna lose this.
[-- Attachment #1: Type: text/plain, Size: 305 bytes --] New comment by github-actions[bot] on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1548852008 Comment: Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.
[-- Attachment #1: Type: text/plain, Size: 179 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1549108029 Comment: Dont you stale this, github-actions.
[-- Attachment #1: Type: text/plain, Size: 305 bytes --] New comment by github-actions[bot] on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1679845303 Comment: Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.
[-- Attachment #1: Type: text/plain, Size: 733 bytes --] New comment by geekboy01 on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1679930557 Comment: Bump. On Tue, Aug 15, 2023, 18:44 github-actions[bot] ***@***.***> wrote: > Pull Requests become stale 90 days after last activity and are closed 14 > days after that. If this pull request is still relevant bump it or assign > it. > > — > Reply to this email directly, view it on GitHub > <https://github.com/void-linux/void-packages/pull/36419#issuecomment-1679845303>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AIF2UVZGBTO46RUHQCU7Z53XVQQXTANCNFSM5SBT3ORQ> > . > You are receiving this because you commented.Message ID: > ***@***.***> >
[-- Attachment #1: Type: text/plain, Size: 305 bytes --] New comment by github-actions[bot] on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1811668961 Comment: Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it.
[-- Attachment #1: Type: text/plain, Size: 796 bytes --] New comment by geekboy01 on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1811677425 Comment: bump On Tue, Nov 14, 2023 at 5:46 PM github-actions[bot] < ***@***.***> wrote: > Pull Requests become stale 90 days after last activity and are closed 14 > days after that. If this pull request is still relevant bump it or assign > it. > > — > Reply to this email directly, view it on GitHub > <https://github.com/void-linux/void-packages/pull/36419#issuecomment-1811668961>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AIF2UVYFG2DI5V5BDQGSOCTYEQNIDAVCNFSM5SBT3OR2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBRGE3DMOBZGYYQ> > . > You are receiving this because you commented.Message ID: > ***@***.***> >
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 17479 bytes --] From 4bfa03a185966e5668ecda51ee8f78a33b601e5b Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/3] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 0000000000000..7e67f362c7965 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 0000000000000..e90db4f4396d9 --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" From b9fd8df6f5dece92774508b3dc77a445725cab6e Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/3] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 47 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 368 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 0000000000000..1f9839889f0d7 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 0000000000000..f3c08bf33c619 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 0000000000000..b40c9270302eb --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 0000000000000..d784a696e8525 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 0000000000000..af207a228085c --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 0000000000000..10daa7174b839 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,47 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +wrksrc="u-boot-${version}" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 0000000000000..cfcfccd3fb437 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot" From 50a7d4b948aace83ec664b101b4a6fe11f67af2b Mon Sep 17 00:00:00 2001 From: Tim Sandquist <tim.sandquist@gmail.com> Date: Tue, 29 Mar 2022 18:56:58 -0500 Subject: [PATCH 3/3] rockpro64-base: add linux package to depends --- srcpkgs/rockpro64-base/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template index e90db4f4396d9..1e5af3a6dc6be 100644 --- a/srcpkgs/rockpro64-base/template +++ b/srcpkgs/rockpro64-base/template @@ -4,7 +4,7 @@ version=1 revision=1 archs="aarch64*" build_style=meta -depends="rockpro64-uboot u-boot-menu dracut" +depends="linux rockpro64-uboot u-boot-menu dracut" short_desc="Void Linux RockPro64 platform package" maintainer="Tiemen Werkman <tiemen@opifexonline.com>" license="Public Domain"
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 16663 bytes --] From ae0d2ae6ae76c35d941509e1487107c17b946cfb Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/2] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 0000000000000..7e67f362c7965 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 0000000000000..e90db4f4396d9 --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" From d27d8e1f7d01e4655b8787ea2c7c860ccdb2c00b Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/2] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 47 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 368 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 0000000000000..1f9839889f0d7 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 0000000000000..f3c08bf33c619 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 0000000000000..b40c9270302eb --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 0000000000000..d784a696e8525 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 0000000000000..af207a228085c --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 0000000000000..10daa7174b839 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,47 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +wrksrc="u-boot-${version}" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 0000000000000..cfcfccd3fb437 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot"
[-- Attachment #1: Type: text/plain, Size: 177 bytes --] New comment by Anachron on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837539867 Comment: Please check / fix the lint error.
[-- Attachment #1: Type: text/plain, Size: 552 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837560919 Comment: The error from the `Lint templates` is due to the [recent addition of the update-check script](https://github.com/void-linux/void-packages/pull/44927). Since the template is a meta-package there are no distfiles so the `NO DISTFILES found for rockpro64-base` error is expected. Perhaps the `verify-update-check.sh` script should be updated to catch the edge case where there are no distfiles in the template.
[-- Attachment #1: Type: text/plain, Size: 344 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837562103 Comment: @classabbyamp Since you added the update-check in https://github.com/void-linux/void-packages/pull/44927 perhaps you have a suggestion on how to handle the `NO DISTFILES found for rockpro64-base` error.
[-- Attachment #1: Type: text/plain, Size: 427 bytes --] New comment by classabbyamp on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837564520 Comment: https://github.com/void-linux/void-packages/blob/master/Manual.md#updates > `disabled` can be set to disable update checking for the package, in cases where checking for updates is impossible or does not make sense. This should be set to a string describing why it is disabled.
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 16991 bytes --] From 0d8d4ec4771cb92463be4a2d9c6cfe47ae72e336 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/2] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ srcpkgs/rockpro64-base/update | 1 + 3 files changed, 20 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template create mode 100644 srcpkgs/rockpro64-base/update diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 0000000000000..7e67f362c7965 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 0000000000000..e90db4f4396d9 --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" diff --git a/srcpkgs/rockpro64-base/update b/srcpkgs/rockpro64-base/update new file mode 100644 index 0000000000000..717beffbf774d --- /dev/null +++ b/srcpkgs/rockpro64-base/update @@ -0,0 +1 @@ +disabled="meta package with no distfiles" From 721c6e9cc36ab46bb88533f49cf8b9176d6ede38 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/2] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 47 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 368 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 0000000000000..1f9839889f0d7 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 0000000000000..f3c08bf33c619 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 0000000000000..b40c9270302eb --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 0000000000000..d784a696e8525 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 0000000000000..af207a228085c --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 0000000000000..10daa7174b839 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,47 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +wrksrc="u-boot-${version}" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 0000000000000..cfcfccd3fb437 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot"
[-- Attachment #1: Type: text/plain, Size: 163 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837565909 Comment: Thanks @classabbyamp!
[-- Attachment #1: Type: text/plain, Size: 161 bytes --] New comment by classabbyamp on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837566098 Comment: just ignore it
[-- Attachment #1: Type: text/plain, Size: 161 bytes --] New comment by classabbyamp on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837566098 Comment: just ignore it
[-- Attachment #1: Type: text/plain, Size: 325 bytes --] New comment by classabbyamp on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837566399 Comment: wait, it's not erroring because of no distfiles, it's erroring because xlint https://github.com/void-linux/void-packages/actions/runs/7078728385/job/19264541980?pr=36419#step:7:9
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 16963 bytes --] From 0d8d4ec4771cb92463be4a2d9c6cfe47ae72e336 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/2] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ srcpkgs/rockpro64-base/update | 1 + 3 files changed, 20 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template create mode 100644 srcpkgs/rockpro64-base/update diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 0000000000000..7e67f362c7965 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 0000000000000..e90db4f4396d9 --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" diff --git a/srcpkgs/rockpro64-base/update b/srcpkgs/rockpro64-base/update new file mode 100644 index 0000000000000..717beffbf774d --- /dev/null +++ b/srcpkgs/rockpro64-base/update @@ -0,0 +1 @@ +disabled="meta package with no distfiles" From 0dd06cd77af330bb471aefe2fee75559889876b4 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/2] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 46 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 367 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 0000000000000..1f9839889f0d7 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 0000000000000..f3c08bf33c619 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 0000000000000..b40c9270302eb --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 0000000000000..d784a696e8525 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 0000000000000..af207a228085c --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 0000000000000..86b506aedd838 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,46 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 0000000000000..cfcfccd3fb437 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot"
[-- Attachment #1: Type: text/plain, Size: 217 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1837575654 Comment: I missed the wrksrc error at first. I pushed a new commit to fix that too.
[-- Attachment #1: Type: text/plain, Size: 271 bytes --] New review comment by classabbyamp on void-packages repository https://github.com/void-linux/void-packages/pull/36419#discussion_r1413193208 Comment: doesn't this need a kernel? from what I see in mkplatformfs this would not create an image or PLATFORMFS with a kernel
[-- Attachment #1: Type: text/plain, Size: 381 bytes --] New review comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/36419#discussion_r1413195276 Comment: I had the kernel in an earlier commit but I took it out. I thought the other, similar, base templates didn't have them but looking again I see that `pinebookpro-base` and `rock64-base` both have kernels in them. I will add it back.
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 16969 bytes --] From 11c9aa81d82ae1a04e7fcf59db201860846239c8 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/2] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ srcpkgs/rockpro64-base/update | 1 + 3 files changed, 20 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template create mode 100644 srcpkgs/rockpro64-base/update diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 0000000000000..7e67f362c7965 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 0000000000000..1e5af3a6dc6be --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="linux rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" diff --git a/srcpkgs/rockpro64-base/update b/srcpkgs/rockpro64-base/update new file mode 100644 index 0000000000000..717beffbf774d --- /dev/null +++ b/srcpkgs/rockpro64-base/update @@ -0,0 +1 @@ +disabled="meta package with no distfiles" From 8f90fd29b68a6a0f0923ba8458f32466fd4139c8 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/2] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 46 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 367 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 0000000000000..1f9839889f0d7 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 0000000000000..f3c08bf33c619 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 0000000000000..b40c9270302eb --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 0000000000000..d784a696e8525 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 0000000000000..af207a228085c --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 0000000000000..86b506aedd838 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,46 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 0000000000000..cfcfccd3fb437 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot"
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 16973 bytes --] From 751acc3a87e1d96dabd464bab4d1e3944081e651 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/2] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ srcpkgs/rockpro64-base/update | 1 + 3 files changed, 20 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template create mode 100644 srcpkgs/rockpro64-base/update diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 0000000000000..7e67f362c7965 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 0000000000000..927e93d1f1daa --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="linux-lts rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" diff --git a/srcpkgs/rockpro64-base/update b/srcpkgs/rockpro64-base/update new file mode 100644 index 0000000000000..717beffbf774d --- /dev/null +++ b/srcpkgs/rockpro64-base/update @@ -0,0 +1 @@ +disabled="meta package with no distfiles" From 4d03361ff40e33ab4586bd7eb40c660f3e4e170e Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/2] New package: rockpro64-uboot --- .../patches/phy-rockchip-inno-usb2.c.patch | 75 ++++++++++++ .../rockpro64-uboot/patches/rk3399.c.patch | 51 +++++++++ .../patches/rockpro64-rk3399.c.patch | 53 +++++++++ .../patches/rockpro64-rk3399.h.patch | 33 ++++++ .../patches/rockpro64-rk3399_defconfig.patch | 108 ++++++++++++++++++ srcpkgs/rockpro64-uboot/template | 46 ++++++++ srcpkgs/rockpro64-uboot/update | 1 + 7 files changed, 367 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch create mode 100644 srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch new file mode 100644 index 0000000000000..1f9839889f0d7 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/phy-rockchip-inno-usb2.c.patch @@ -0,0 +1,75 @@ + Fix USB on RockPro64: + Without this patch uboot crashes when resetting usb, preventing the kernel + from loading. + The only alternative to this patch is to disable Preboot or OHCI which + also leaves you with no console keyboard. + + https://patchwork.ozlabs.org/project/uboot/patch/20210406151059.1187379-1-icenowy@aosc.io/ + +diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +index 62b8ba3a4a..be9cc99d90 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -62,6 +62,8 @@ struct rockchip_usb2phy { + void *reg_base; + struct clk phyclk; + const struct rockchip_usb2phy_cfg *phy_cfg; ++ int init_count; ++ int power_on_count; + }; + + static inline int property_enable(void *reg_base, +@@ -92,6 +94,10 @@ static int rockchip_usb2phy_power_on(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count++; ++ if (priv->power_on_count != 1) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, false); + + /* waiting for the utmi_clk to become stable */ +@@ -106,6 +112,10 @@ static int rockchip_usb2phy_power_off(struct phy *phy) + struct rockchip_usb2phy *priv = dev_get_priv(parent); + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + ++ priv->power_on_count--; ++ if (priv->power_on_count != 0) ++ return 0; ++ + property_enable(priv->reg_base, &port_cfg->phy_sus, true); + + return 0; +@@ -118,6 +128,10 @@ static int rockchip_usb2phy_init(struct phy *phy) + const struct rockchip_usb2phy_port_cfg *port_cfg = us2phy_get_port(phy); + int ret; + ++ priv->init_count++; ++ if (priv->init_count != 1) ++ return 0; ++ + ret = clk_enable(&priv->phyclk); + if (ret) { + dev_err(phy->dev, "failed to enable phyclk (ret=%d)\n", ret); +@@ -140,6 +154,10 @@ static int rockchip_usb2phy_exit(struct phy *phy) + struct udevice *parent = dev_get_parent(phy->dev); + struct rockchip_usb2phy *priv = dev_get_priv(parent); + ++ priv->init_count--; ++ if (priv->init_count != 0) ++ return 0; ++ + clk_disable(&priv->phyclk); + + return 0; +@@ -212,6 +230,9 @@ static int rockchip_usb2phy_probe(struct udevice *dev) + return ret; + } + ++ priv->power_on_count = 0; ++ priv->init_count = 0; ++ + return 0; + } + diff --git a/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch new file mode 100644 index 0000000000000..f3c08bf33c619 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rk3399.c.patch @@ -0,0 +1,51 @@ +From 1a01021c9361c4e017cb5b032300f5555c393710 Mon Sep 17 00:00:00 2001 +From: dhivael <dhivael.git@eno.space> +Date: Sat, 11 Jan 2020 15:04:46 +0100 +Subject: rk3399: light pinebook power and standby leds during early boot + +this is a hack, but it works for now. +--- + arch/arm/mach-rockchip/rk3399/rk3399.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c +index 863024d071..cf37129d55 100644 +--- a/arch/arm/mach-rockchip/rk3399/rk3399.c ++++ b/arch/arm/mach-rockchip/rk3399/rk3399.c +@@ -15,6 +15,8 @@ + #include <asm/arch-rockchip/grf_rk3399.h> + #include <asm/arch-rockchip/hardware.h> + #include <power/regulator.h> ++#include <dt-bindings/gpio/gpio.h> ++#include <dt-bindings/pinctrl/rockchip.h> + + DECLARE_GLOBAL_DATA_PTR; + +@@ -115,8 +117,8 @@ void board_debug_uart_init(void) + struct rk3399_grf_regs * const grf = (void *)GRF_BASE; + #ifdef CONFIG_TARGET_CHROMEBOOK_BOB + struct rk3399_pmugrf_regs * const pmugrf = (void *)PMUGRF_BASE; +- struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + #endif ++ struct rockchip_gpio_regs * const gpio = (void *)GPIO0_BASE; + + #if defined(CONFIG_DEBUG_UART_BASE) && (CONFIG_DEBUG_UART_BASE == 0xff180000) + /* Enable early UART0 on the RK3399 */ +@@ -149,6 +151,14 @@ void board_debug_uart_init(void) + spl_gpio_set_pull(&pmugrf->gpio0_p, GPIO(BANK_B, 4), GPIO_PULL_NORMAL); + #endif /* CONFIG_TARGET_CHROMEBOOK_BOB */ + ++ { ++ // set GPIO0_A2/B3 to GPIO_ACTIVE_HIGH ++ // set GPIO0_A2/B3 to OUTPUT ++ int mask = (1UL << RK_PA2) | (1UL << RK_PB3); ++ setbits_le32(&gpio->swport_dr, mask); ++ setbits_le32(&gpio->swport_ddr, mask); ++ } ++ + /* Enable early UART2 channel C on the RK3399 */ + rk_clrsetreg(&grf->gpio4c_iomux, + GRF_GPIO4C3_SEL_MASK, +-- +cgit v1.2.3 + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch new file mode 100644 index 0000000000000..b40c9270302eb --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.c.patch @@ -0,0 +1,53 @@ +SPI flash partitions + This patch is required to update SPI flash partitions in the devicetree. + It comes from Sigmaris's for o U-Boot. + https://github.com/sigmaris/u-boot/blob/ci-2021.04-rockpro64/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c + +diff --git a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +index d79084614f..6f7f661154 100644 +--- a/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c ++++ b/board/pine64/rockpro64_rk3399/rockpro64-rk3399.c +@@ -5,6 +5,9 @@ + + #include <common.h> + #include <dm.h> ++#include <fdt_support.h> ++#include <jffs2/load_kernel.h> ++#include <mtd_node.h> + #include <init.h> + #include <syscon.h> + #include <asm/io.h> +@@ -16,6 +19,33 @@ + #define GRF_IO_VSEL_BT565_SHIFT 0 + #define PMUGRF_CON0_VSEL_SHIFT 8 + ++#ifdef CONFIG_OF_BOARD_SETUP ++int ft_board_setup(void *blob, struct bd_info *bd) ++{ ++#ifdef CONFIG_FDT_FIXUP_PARTITIONS ++ int ret, noff; ++ static const struct node_info nodes[] = { ++ { "jedec,spi-nor", MTD_DEV_TYPE_NOR, }, ++ }; ++ ++ noff = fdt_node_offset_by_compatible(blob, -1, nodes[0].compat); ++ if (noff != -FDT_ERR_NOTFOUND) { ++ ret = fdt_setprop_u32(blob, noff, "#size-cells", 1); ++ if (ret) ++ return ret; ++ ret = fdt_setprop_u32(blob, noff, "#address-cells", 1); ++ if (ret) ++ return ret; ++ } else { ++ return -ENODEV; ++ } ++ ++ fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); ++#endif ++ return 0; ++} ++#endif ++ + #ifdef CONFIG_MISC_INIT_R + static void setup_iodomain(void) + { diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch new file mode 100644 index 0000000000000..d784a696e8525 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399.h.patch @@ -0,0 +1,33 @@ + rockchip: Pinebook Pro: fix mmc boot ordering + + On the Pinebook Pro, and perhaps some other boards, the mmc indices are + opposite from what is implied by the comment in + include/configs/rockchip-common.h. + + This commit fixes the boot ordering to prioritize the SD card over eMMC. + + Most distributions of U-Boot that actually target rk3399 boards apply a + similar patch, such as Manjaro (shipped by default on PBP) and armbian. + + https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-pinebookpro/-/blob/60ed56b9bf8809309ec6252bfc45bca38c2b858a/0002-Correct-boot-order-to-be-USB-SD-eMMC.patch + https://github.com/armbian/build/blob/5a2b2c360b9c26ca4bd0d309af7cd3994fd08b7d/patch/u-boot/u-boot-rockchip64-mainline/general-prioritize-sd.patch + +diff --git a/include/configs/rockpro64_rk3399.h b/include/configs/rockpro64_rk3399.h +index 903e9df527..7c8f30dbaf 100644 +--- a/include/configs/rockpro64_rk3399.h ++++ b/include/configs/rockpro64_rk3399.h +@@ -12,6 +12,14 @@ + "stderr=serial,vidconsole\0" + + #include <configs/rk3399_common.h> ++ ++/* On RockPro64, mmc1 is SD and mmc0 is eMMC */ ++#if CONFIG_IS_ENABLED(CMD_MMC) ++ #undef BOOT_TARGET_MMC ++ #define BOOT_TARGET_MMC(func) \ ++ func(MMC, mmc, 1) \ ++ func(MMC, mmc, 0) ++#endif + + #define SDRAM_BANK_SIZE (2UL << 30) + diff --git a/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch new file mode 100644 index 0000000000000..af207a228085c --- /dev/null +++ b/srcpkgs/rockpro64-uboot/patches/rockpro64-rk3399_defconfig.patch @@ -0,0 +1,108 @@ + +Autoboot + Disable bootdelay. Boot can be interrupted by pressing either <q> or + <ctrl-c>. + +Baudrate + Set baudrate to 115200 to prevent garbled output and improve + compatibility. The default baud rate is 1500000 bps. This produces + garbled output on many serial adapters and is a non-standard speed. + +Supported features + The following features have been enabled and are supported: + - NVME support. + - AHCI over PCIE. + - USB3 and keyboard support. + - fdt overlay. + - MDT partitions. + - BTRFS support enabled. + +diff --git a/configs/rockpro64-rk3399_defconfig b/configs/rockpro64-rk3399_defconfig +index ae11a8f5eb..827d37eb72 100644 +--- a/configs/rockpro64-rk3399_defconfig ++++ b/configs/rockpro64-rk3399_defconfig +@@ -4,14 +4,17 @@ CONFIG_SYS_TEXT_BASE=0x00200000 + CONFIG_NR_DRAM_BANKS=1 + CONFIG_ENV_SIZE=0x8000 + CONFIG_ENV_OFFSET=0x3F8000 +-CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_ROCKCHIP_RK3399=y + CONFIG_TARGET_ROCKPRO64_RK3399=y + CONFIG_DEBUG_UART_BASE=0xFF1A0000 + CONFIG_DEBUG_UART_CLOCK=24000000 + CONFIG_SPL_SPI_FLASH_SUPPORT=y + CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3399-rockpro64" + CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_OF_BOARD_SETUP=y ++CONFIG_BOOTDELAY=0 + CONFIG_USE_PREBOOT=y + CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-rockpro64.dtb" + CONFIG_DISPLAY_BOARDINFO_LATE=y +@@ -20,29 +23,40 @@ CONFIG_MISC_INIT_R=y + CONFIG_SPL_STACK_R=y + CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x10000 + CONFIG_SPL_SPI_LOAD=y ++# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set + CONFIG_TPL=y + CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_BOOTMENU=y + CONFIG_CMD_GPT=y + CONFIG_CMD_MMC=y + CONFIG_CMD_PCI=y + CONFIG_CMD_USB=y +-# CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_TIME=y ++CONFIG_CMD_MTDPARTS=y ++CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" ++CONFIG_MTDPARTS_DEFAULT="mtdparts=spi0.0:384k(u-boot-spl),3680k(u-boot),32k(u-boot-env),-(user)" + CONFIG_SPL_OF_CONTROL=y + CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" + CONFIG_ENV_IS_IN_SPI_FLASH=y + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_SPL_DM_SEQ_ALIAS=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y + CONFIG_ROCKCHIP_GPIO=y + CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEYBOARD=y ++CONFIG_LED=y ++CONFIG_LED_GPIO=y + CONFIG_MISC=y + CONFIG_ROCKCHIP_EFUSE=y + CONFIG_MMC_DW=y + CONFIG_MMC_DW_ROCKCHIP=y + CONFIG_MMC_SDHCI=y + CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y + CONFIG_SF_DEFAULT_BUS=1 + CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MTD=y + CONFIG_DM_ETH=y + CONFIG_ETH_DESIGNWARE=y + CONFIG_GMAC_ROCKCHIP=y +@@ -58,7 +72,9 @@ CONFIG_RAM_RK3399_LPDDR4=y + CONFIG_DM_RESET=y + CONFIG_DM_RNG=y + CONFIG_RNG_ROCKCHIP=y +-CONFIG_BAUDRATE=1500000 ++CONFIG_SCSI=y ++CONFIG_DM_SCSI=y ++CONFIG_BAUDRATE=115200 + CONFIG_DEBUG_UART_SHIFT=2 + CONFIG_ROCKCHIP_SPI=y + CONFIG_SYSRESET=y +@@ -82,5 +98,12 @@ CONFIG_DM_VIDEO=y + CONFIG_DISPLAY=y + CONFIG_VIDEO_ROCKCHIP=y + CONFIG_DISPLAY_ROCKCHIP_HDMI=y ++CONFIG_FS_BTRFS=y + CONFIG_SPL_TINY_MEMSET=y + CONFIG_ERRNO_STR=y ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_FDT_FIXUP_PARTITIONS=y ++CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds... press q or Ctrl-C to interrupt\n" ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_STOP_STR="q" ++CONFIG_AUTOBOOT_KEYED_CTRLC=y diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 0000000000000..86b506aedd838 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,46 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2021.07 +revision=1 +archs="aarch64*" +hostmakedepends="flex bc dtc python3" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 0000000000000..cfcfccd3fb437 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot"
[-- Attachment #1: Type: text/plain, Size: 444 bytes --] New comment by tsndqst on void-packages repository https://github.com/void-linux/void-packages/pull/36419#issuecomment-1839446877 Comment: I pushed another change to the rockpro64-base template. I was testing some u-boot changes and noticed that the current `linux` kernel (6.5.13) had some kernel panics. I switched to `linux-lts` since both the current `linux-lts` kernel (6.1) and the next LTS kernel (6.6) booted without kernel panics.
[-- Attachment #1: Type: text/plain, Size: 1314 bytes --] There is an updated pull request by tsndqst against master on the void-packages repository https://github.com/tsndqst/void-packages rockpro64 https://github.com/void-linux/void-packages/pull/36419 New packages: rockpro64-base and rockpro64-uboot PR based on https://github.com/void-linux/void-packages/pull/33556 <!-- Uncomment relevant sections and delete options which are not applicable --> #### Testing the changes - I tested the changes in this PR: **YES** #### New package - This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES** <!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration and test at least one native build and, if supported, at least one cross build. Ignore this section if this PR is not skipping CI. --> <!-- #### Local build testing - I built this PR locally for my native architecture, (ARCH-LIBC) - I built this PR locally for these architectures (if supported. mark crossbuilds): - aarch64-musl - armv7l - armv6l-musl --> A patch file from https://github.com/void-linux/void-packages/pull/36419.patch is attached [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: github-pr-rockpro64-36419.patch --] [-- Type: text/x-diff, Size: 4568 bytes --] From 0658b436702b9ad4d9bbbfd65c5003f04b4ed973 Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:00 +0200 Subject: [PATCH 1/2] New package: rockpro64-base --- srcpkgs/rockpro64-base/INSTALL | 8 ++++++++ srcpkgs/rockpro64-base/template | 11 +++++++++++ srcpkgs/rockpro64-base/update | 1 + 3 files changed, 20 insertions(+) create mode 100644 srcpkgs/rockpro64-base/INSTALL create mode 100644 srcpkgs/rockpro64-base/template create mode 100644 srcpkgs/rockpro64-base/update diff --git a/srcpkgs/rockpro64-base/INSTALL b/srcpkgs/rockpro64-base/INSTALL new file mode 100644 index 0000000000000..7e67f362c7965 --- /dev/null +++ b/srcpkgs/rockpro64-base/INSTALL @@ -0,0 +1,8 @@ +if [ "${UPDATE}" = "no" ] && [ "${ACTION}" = "post" ]; then + mkdir -p etc/runit/runsvdir/default/ + mkdir -p etc/sv/agetty-ttyS2/ + ln -sf /etc/sv/sshd etc/runit/runsvdir/default/ + ln -sf /etc/sv/dhcpcd etc/runit/runsvdir/default/ + ln -sf /etc/sv/agetty-ttyS2 etc/runit/runsvdir/default/ + cd etc/sv/agetty-ttyS2/ && ln -sf ../agetty-serial/conf conf && ln -sf ../agetty-generic/finish finish && ln -sf ../agetty-serial/run run && ln -sf /run/runit/supervise.agetty-ttyS2 +fi diff --git a/srcpkgs/rockpro64-base/template b/srcpkgs/rockpro64-base/template new file mode 100644 index 0000000000000..927e93d1f1daa --- /dev/null +++ b/srcpkgs/rockpro64-base/template @@ -0,0 +1,11 @@ +# Template file for 'rockpro64-base' +pkgname=rockpro64-base +version=1 +revision=1 +archs="aarch64*" +build_style=meta +depends="linux-lts rockpro64-uboot u-boot-menu dracut" +short_desc="Void Linux RockPro64 platform package" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="Public Domain" +homepage="https://www.voidlinux.org" diff --git a/srcpkgs/rockpro64-base/update b/srcpkgs/rockpro64-base/update new file mode 100644 index 0000000000000..717beffbf774d --- /dev/null +++ b/srcpkgs/rockpro64-base/update @@ -0,0 +1 @@ +disabled="meta package with no distfiles" From 4f81d7624499bbcab5780a7427642c6482a9ecba Mon Sep 17 00:00:00 2001 From: Tiemen Werkman <tiemen@opifexonline.com> Date: Wed, 13 Oct 2021 16:40:20 +0200 Subject: [PATCH 2/2] New package: rockpro64-uboot --- srcpkgs/rockpro64-uboot/template | 47 ++++++++++++++++++++++++++++++++ srcpkgs/rockpro64-uboot/update | 1 + 2 files changed, 48 insertions(+) create mode 100644 srcpkgs/rockpro64-uboot/template create mode 100644 srcpkgs/rockpro64-uboot/update diff --git a/srcpkgs/rockpro64-uboot/template b/srcpkgs/rockpro64-uboot/template new file mode 100644 index 0000000000000..c8ec9bee06291 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/template @@ -0,0 +1,47 @@ +# Template file for 'rockpro64-uboot' +pkgname=rockpro64-uboot +version=2024.01 +revision=1 +archs="aarch64*" +hostmakedepends="bison flex bc dtc which python3 swig python3-devel python3-setuptools python3-pyelftools openssl-devel libuuid-devel gnutls-devel ncurses-libtinfo-devel" +makedepends="atf-rk3399-bl31" +depends="u-boot-tools" +short_desc="Das U-Boot for the RockPro64 SBC" +maintainer="Tiemen Werkman <tiemen@opifexonline.com>" +license="GPL-2.0-or-later, BSD-3-Clause" +homepage="https://www.denx.de/wiki/U-Boot/" +distfiles="https://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2" +checksum=b99611f1ed237bf3541bdc8434b68c96a6e05967061f992443cb30aabebef5b3 + +do_configure() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + sed -i -e '/CONFIG_BAUDRATE/s/=.*/=115200/' ${wrksrc}/configs/rockpro64-rk3399_defconfig + make ${makejobs} rockpro64-rk3399_defconfig +} + +do_build() { + unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS + if [ "$CROSS_BUILD" ]; then + export CROSS_COMPILE=${XBPS_CROSS_TRIPLET}- + fi + make ${makejobs} EXTRAVERSION=-${revision} \ + BL31=${XBPS_CROSS_BASE}/usr/lib/trusted-firmware-a/rk3399/bl31.elf +} + +do_install() { + vinstall idbloader.img 0644 usr/lib/rockpro64-uboot + vinstall u-boot.itb 0644 usr/lib/rockpro64-uboot + vlicense Licenses/Exceptions + vlicense Licenses/OFL.txt + vlicense Licenses/README + vlicense Licenses/bsd-2-clause.txt + vlicense Licenses/bsd-3-clause.txt + vlicense Licenses/eCos-2.0.txt + vlicense Licenses/gpl-2.0.txt + vlicense Licenses/ibm-pibs.txt + vlicense Licenses/isc.txt + vlicense Licenses/lgpl-2.0.txt + vlicense Licenses/lgpl-2.1.txt + vlicense Licenses/r8a779x_usb3.txt + vlicense Licenses/x11.txt +} diff --git a/srcpkgs/rockpro64-uboot/update b/srcpkgs/rockpro64-uboot/update new file mode 100644 index 0000000000000..cfcfccd3fb437 --- /dev/null +++ b/srcpkgs/rockpro64-uboot/update @@ -0,0 +1 @@ +pkgname="u-boot"