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
> 
> 

Reply via email to