This board is a fairly new riscv64. It uses a Ky X1 riscv processor.
Orange website shows ports for openwrt and ubuntu.
I wanted to see how far FreeBSD 15 would get.
The u-boot process is concealed from the user. It does not allow a break out at the boot countdown. During boot all you see is the orange logo on the hdmi. On new boards it is better to use a serial port connection anyway.
I got into the the u-boot to check the environment variables. It had
I set it to 10 and removed the bootcmd (it is for linux)
The u-boot is a version that Orange (Xunlong) compiled.
I think it is compiled to ignore the break on bootdelay.
The normal u-boot on github does not address the RV2, yet.
I saw in the u-boot mailing list Xunlong programmers only talking about u-boot coding style at this time.
I found the boot with sdcard will hang during device enumeration and spontaneously reboot.
Also, I needed some monitor or a hdmi dummy plug to get FreeBSD past the EFI framebuffer to boot.
So, using a usb stick to boot.
FreeBSD does not find any devices with drivers. It hangs at the
mountroot prompt.
Until we get drivers this board it not useful for FreeBSD.
Boot commands:
Orange website shows ports for openwrt and ubuntu.
I wanted to see how far FreeBSD 15 would get.
The u-boot process is concealed from the user. It does not allow a break out at the boot countdown. During boot all you see is the orange logo on the hdmi. On new boards it is better to use a serial port connection anyway.
I got into the the u-boot to check the environment variables. It had
Code:
bootdelay=0
I set it to 10 and removed the bootcmd (it is for linux)
Code:
setenv bootdelay '10'
setenv bootcmd ' '
saveenv
The u-boot is a version that Orange (Xunlong) compiled.
I think it is compiled to ignore the break on bootdelay.
The normal u-boot on github does not address the RV2, yet.
I saw in the u-boot mailing list Xunlong programmers only talking about u-boot coding style at this time.
I found the boot with sdcard will hang during device enumeration and spontaneously reboot.
Also, I needed some monitor or a hdmi dummy plug to get FreeBSD past the EFI framebuffer to boot.
So, using a usb stick to boot.
FreeBSD does not find any devices with drivers. It hangs at the
mountroot prompt.
Until we get drivers this board it not useful for FreeBSD.
Boot commands:
Code:
-->usb start
starting USB...
[ 49.269] Bus ehci1@c0980100: ehci_x1_ci ehci1@c0980100: ehci_mv_probe Enter ...
[ 49.278] mv_usb_phy usbphy1@c09c0000: x1-ci-usb-phy-probe: Enter...
[ 49.283] ehci_x1_ci ehci1@c0980100: ehci-x1-ci: init hccr c0980100 and hcor c0980140 hc_length 64
[ 49.305] USB EHCI 1.00
[ 49.305] Bus dwc3@c0a00000: No USB maximum speed specified. Using super speed
[ 49.318] mv_usb_phy usb2phy@0xc0a30000: x1-ci-usb-phy-probe: Enter...
[ 49.322] x1_combphy phy@c0b10000: USB3 PHY init.
[ 49.326] dwc3-generic-host dwc3@c0a00000: this is a DesignWare USB3 DRD Core
[ 49.743] Register 2000140 NbrPorts 2
Starting the controller
[ 49.745] USB XHCI 1.10
[ 49.748] scanning bus ehci1@c0980100 for devices... 1 USB Device(s) found
[ 50.886] scanning bus dwc3@c0a00000 for devices... 4 USB Device(s) found
[ 52.413] scanning usb for storage devices... 1 Storage Device(s) found
--> usb dev 0
--> load usb 0:1 ${fdt_addr_r} dtb/x1_orangepi-rv2.dtb
--> load usb 0:1 ${kernel_addr_r} efi/boot/bootriscv64.efi
--> bootefi ${kernel_addr_r} ${fdt_addr_r}
+-------- Welcome to FreeBSD ----------+
Set boot options--> verbose
Set Console --> Dual (Serial primary)
Hit Enter --> to boot
Loading kernel...
Found 8 CPUs in the device tree
Copyright (c) 1992-2025 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 15.0-CURRENT #0 main-n277212-79e70e12f5c9: Tue May 13 08:20:21 EEST 2025
root@riscv.smallcatbrain.com:/usr/obj/usr/src/riscv.riscv64/sys/GENERIC-NODEBUG riscv
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
VT(efifb): resolution 1920x1080
---8<-- snip----8<-
IPsec: Initialized Security Association Processing.
tcp_init: net.inet.tcp.tcbhashsize auto tuned to 65536
sbi_ipi0: using for IPIs
Release APs
Secondary CPU 2 fully online
Secondary CPU 6 fully online
Secondary CPU 5 fully online
Secondary CPU 7 fully online
Secondary CPU 4 fully online
Secondary CPU 3 fully online
Secondary CPU 1 fully online
regulator: shutting down unused regulators
Trying to mount root from ufs:/dev/gpt/rootfs [rw]...
mountroot: waiting for device /dev/gpt/rootfs...
Mounting from ufs:/dev/gpt/rootfs failed with error 19.
Loader variables:
vfs.root.mountfrom=ufs:/dev/gpt/rootfs
vfs.root.mountfrom.options=rw
Manual root filesystem specification:
<fstype>:<device> [options]
Mount <device> using filesystem <fstype>
and with the specified (optional) option list.
eg. ufs:/dev/da0s1a
zfs:zroot/ROOT/default
cd9660:/dev/cd0 ro
(which is equivalent to: mount -t cd9660 -o ro /dev/cd0 /)
? List valid disk boot devices
. Yield 1 second (for background tasks)
<empty line> Abort manual input
mountroot> ?
List of GEOM managed disk devices:
mountroot>