On Fri, 21 Jun 2019, Mark Kettenis wrote:
> I've finally managed to build a properly working (and fully open
> source) firmware for the ROCKPro64. The firmware consists of two
> files, which can be downloaded from:
>
> https://sibelius.home.xs4all.nl/firmware/rk3399-rockpro64/idbloader.img
> https://sibelius.home.xs4all.nl/firmware/rk3399-rockpro64/u-boot.itb
>
> In order to use this firmware you'll have to write it to a uSD card or
> an eMMC module with the following commands:
>
> # dd if=idbloader.img of=/dev/sdXc seek=64
> # dd if=u-boot.itb of=/dev/sdXc seek=16384
>
> Note that if you flashed a firmware to the onboard SPI flash, you'll
> have to erase it first or disable the SPI flash with a jumper wire
> connecting pins 23 and 25.
>
> Also note that the firmware overlaps with the msdos partition in the
> default OpenBSD/arm64 disk layout. Therefore you can't have the
> firmware and the OpenBSD boot/root filesystems on the same device
> without running through additional hoops. Ultimately the goal is to
> make it possible to put this firmware in SPI flash, but I haven't
> looked into that yet.
>
> This firmware uses a more standard serial speed of 115200, which means
> you can use almost any USB TTL serial cable. DVFS is supported so you
> can use sysctl hw.setperf to control to clock speed of the CPUs. But
> be aware that without a fan the board will probably overheat if you
> run it at the highest supported clock speed.
Thanks, I was unable to boot bsd.rd, but setting up a system on a SD card
and copying the dtb to the efi partition worked out and gave me a booting
system. Well, most of the time it is booting. Sometimes the boot ends in
input/output errors. Is there any smart way to put the system on NVMe
while u-boot can't boot from it yet without having the root partition on
SD card?
Just for the record, the following patch for ports sysutils/dtb will not
change the console speed during the boot process and in addition will
enable the pcie port:
$OpenBSD$
Index: arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts
--- arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts.orig
+++ arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts
@@ -15,7 +15,7 @@
compatible = "pine64,rockpro64", "rockchip,rk3399";
chosen {
- stdout-path = "serial2:1500000n8";
+ stdout-path = "serial2:115200n8";
};
clkin_gmac: external-gmac-clock {
@@ -186,6 +186,20 @@
};
&emmc_phy {
+ status = "okay";
+};
+
+&pcie_phy {
+ status = "okay";
+};
+
+&pcie0 {
+ ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
+ num-lanes = <4>;
+ max-link-speed = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_clkreqn_cpm>;
+ vpcie3v3-supply = <&vcc3v3_pcie>;
status = "okay";
};
>
> At some point this should land in the official u-boot-aarch64
> packages. But since this build relies on a fairly large patch set
> that hasn't landed upstream yet, this may take some time.
>
> Cheers,
>
> Mark
>
>