Jump to content

Orange Pi RV2


Go to solution Solved by sven-ola,

Recommended Posts

Posted

Is it possible to change the boot order?
For my use case, I would like the boot priority to be: eMMC, NVMe, and microSD card.
Can this be configured?

 

Posted

Hi @JamesCL. You cannot change the boot order of the SoC (SD -> eMMC -> MTD / SPI flash), thus i.e. the SD card is always booted if inserted. You can probably change the root file system's UUID, i.e. change the /boot/extlinux/extlinux.conf to give the kernel the command to use eMMC as root file system. HTH // Sven-Ola

Posted

Hi @sven-ola, first of all a huge thank you for maintaining this image — the work you're doing for the Orange Pi RV2 is genuinely appreciated, especially given how early the SpacemiT/K1 ecosystem still is.

 

I'd like to kindly request enabling a few kernel config options in the next build. I'll split them by priority:

 

Request 1 — TechniSat SkyStar USB 2 HD (simple, guaranteed fix)

CONFIG_DVB_B2C2_FLEXCOP_USB=m

The FlexCop core (CONFIG_DVB_B2C2_FLEXCOP=m) and all its dependencies are already enabled in the current kernel. This is a one-line addition that will make this DVB-S2 USB receiver work out of the box with no further changes needed.

 

Request 2 — TBS DVB cards via out-of-tree media_build (best-effort)

CONFIG_DVB_USB=m
CONFIG_DVB_USB_V2=m
CONFIG_MEDIA_CONTROLLER_DVB=y

These are the required kernel-side foundations for the TBS linux_media out-of-tree driver tree to compile and load. All dependencies are already satisfied in the current config (DVB_CORE=y, MEDIA_USB_SUPPORT=y, MEDIA_CONTROLLER=y).

 

I say "best-effort" because the TBS media_build source has compatibility issues with kernel 6.18 APIs that require manual patching regardless of kernel config — so these options are necessary but not the whole story on my end. That part is on me to sort out, not on you.

 

Environment for reference:

  • Board: Orange Pi RV2 (orangepirv2)
  • Kernel: 6.18.33-current-spacemit
  • Armbian: 26.8.0-trunk.61 (BRANCH=current)

Thank you again for your time and effort — genuinely appreciated! 🙏

Posted (edited)

Hello @mBesar, while I can build images with additional kernel modules, the next "apt-get upgrade" may install a newer kernel that discards such additions. Why not build this on your own? There is already a working DKMS build system on the board for the bcmdhd wifi module. On the next kernel update, DKMS will recompile bcmdhd.ko for the new kernel automatically.

 

Sadly, when I tried this for b2c2-flexcop-usb, it was not too easy to do. Armbian does not provide kernel sources with "apt-source", and the mentioned module itself uses an additional "-i include-dir" during build. So as an example, try to do this on your board:


As root:

# Change two times "Types: deb deb-src"
nano /etc/apt/sources.list.d/debian.sources

# Check for avail linux image packages, this time 6.18.5-deb13-parisc
apt-get update
grep linux-image /var/lib/apt/lists/*Sources|grep 6\\.18|less -S

# We are not interested in this image, we just need some source code
cd /usr/src
apt-get source linux-image-6.18.5+deb13-parisc

# Add a new DKMS module (dkms already here b/c bcmdhd wifi driver)
mkdir /usr/src/b2c2-flexcop-usb-6.18
cd /usr/src/b2c2-flexcop-usb-6.18
cat > dkms.conf << "EOF"
PACKAGE_NAME="b2c2-flexcop-usb"
PACKAGE_VERSION="6.18"
BUILT_MODULE_NAME[0]="b2c2-flexcop-usb"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="yes"
MAKE="make -C ${kernel_source_dir} M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build CONFIG_DVB_B2C2_FLEXCOP_USB=m"
EOF

# What subsys do we need? Says: drivers/media/usb/b2c2, then grab that dir
grep DVB_B2C2_FLEXCOP_USB $(find /usr/src/linux-6.18.5 -name Kconfig*)
cp -av /usr/src/linux-6.18.5/drivers/media/usb/b2c2/. .

# The module Makefile uses an additional include dir. We simply copy them here
cp -av /usr/src/linux-6.18.5/drivers/media/common/b2c2/*.h .

# Register, build, and install
dkms add -m b2c2-flexcop-usb -v 6.18
dkms build -m b2c2-flexcop-usb -v 6.18
dkms install -m b2c2-flexcop-usb -v 6.18

HTH // Sven-Ola

Edited by sven-ola
Posted

While I am here: I have a Mediatek Tri-Band Wifi card installed in my RV2 (label reads MT7922A22M). There's a matching driver in OpenWrt created by Felix and friends. This will take some time until pushed upstream. So, why not make it a DKMS module? That's how things started 🤪

 

# Grab bleeding edge Wifi from OpenWrt
cd /usr/src
git clone https://github.com/openwrt/mt76.git mt76-6.18
cd mt76-6.18

# Source code massage (needs OpenWrt kernel patch, missing include)
git revert 9a46d8d2
sed '/^#include <linux\/kernel.h>/i#include <linux/version.h>' mt76.h

# New DKMS config (with more than one module)
cat > dkms.conf << "EOF"
PACKAGE_NAME="mt76"
PACKAGE_VERSION="6.18"
BUILT_MODULE_NAME[0]="mt76"
DEST_MODULE_LOCATION[0]="/updates/dkms"
BUILT_MODULE_NAME[1]="mt76-connac-lib"
DEST_MODULE_LOCATION[1]="/updates/dkms"
BUILT_MODULE_NAME[2]="mt792x-lib"
DEST_MODULE_LOCATION[2]="/updates/dkms"
BUILT_MODULE_NAME[3]="mt7921e"
BUILT_MODULE_LOCATION[3]="mt7921"
DEST_MODULE_LOCATION[3]="/updates/dkms"
BUILT_MODULE_NAME[4]="mt7921-common"
BUILT_MODULE_LOCATION[4]="mt7921"
DEST_MODULE_LOCATION[4]="/updates/dkms"
AUTOINSTALL="yes"
MAKE="make -C ${kernel_source_dir}
  M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build
  CONFIG_WLAN_VENDOR_MEDIATEK=y
  CONFIG_MT76_CORE=m
  CONFIG_MT76_LEDS=y
  CONFIG_MT76_CONNAC_LIB=m
  CONFIG_MT792x_LIB=m
  CONFIG_MT7921_COMMON=m
  CONFIG_MT7921E=m
"
EOF

# Add, build, install, and add matching firmware
dkms add -m mt76 -v 6.18
dkms build -m mt76 -v 6.18
dkms install -m mt76 -v 6.18
cp -av firmware/ /lib/firmware/updates/mediatek

# Give it a try
reboot

 

Posted

Hi @sven-ola thank you so much for the detailed and thoughtful response — and for taking the time to actually try it yourself! The DKMS approach makes perfect sense; it's clean, survives kernel updates automatically, and fits right in with what's already working on the board for bcmdhd.

I'll follow your instructions for b2c2-flexcop-usb. Really appreciate the effort you put into this! 🙏

Posted (edited)

@sven-olaTrying the latest RC2 and RC3 7.1 bundles at https://sven-ola.commando.de/privat-in/ by flashing it to a MicroSD card and booting from it, I get the following boot failure. Booting your 6.18 image works though. Any idea how make it work?

 

By the way, is the U-Boot binary inside Armbian the same in your 7.1 and 6.18 versions?

 

Perhaps I could boot the 6.18 from MicroSD card, use it to flash the SPI, and then try to boot the 7.1 from the SPI?


 

 

Quote

Begin: Running /scripts/local-premount ... Scanning for Btrfs filesystems
done.
Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
done.
Gave up waiting for root file system device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  UUID=63ee7593-e111-4547-ac2f-6bdb8519ce11 does not exist.  Dropping to a shell!
(initramfs)

 

 

 

Update: I booted the RV2 off MicroSD card via the old 6.18 version.

 

From inside this 6.18, I did "dd if=the-7.1-version of=/dev/nvme0n1 bs=1M status=progress", powered off, took out the MicroSD, and booted, and it worked!

 


Now a question back to you: @sven-ola Now that the boot process works, do I still need to install the latest Armbian-bundled u-boot on the SPI chip via "armbian-install"?

Edited by armfan
Posted

Hey @armfan. UUID=63ee7593-e111-4547-ac2f-6bdb8519ce11 was read from /boot/extlinux/extlinux.conf which is correct for the edge/7.1.0rc3 image. However, something must be wrong with your SD card if u-boot can read UUID from extlinux.conf, but kernel does not find corresponding file system on the same boot media. This is the expected kernel startup :

 

[    0.000000] Booting Linux on hartid 0
[    0.000000] Linux version 7.1.0-rc3-edge-spacemit (build@armbian) (riscv64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0, GNU l
[    0.000000] Machine model: OrangePi RV2
[    0.000000] SBI specification v1.0 detected
[    0.000000] SBI implementation ID=0x1 Version=0x10003
[    0.000000] SBI IPI extension detected
[    0.000000] SBI RFENCE extension detected
[    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000] printk: legacy bootconsole [sbi0] enabled
Loading, please wait...
Starting systemd-udevd version 257.13-1~deb13u1
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.

HTH // Sven-Ola

Posted

Hello @4A studio. The armbian-config tool may change large parts of the system configuration without a real "undo". I am not sure if I understand your situation correct:

  1. Board does not boot. You see UART output but no UART login prompt?
  2. Board is booting. But you don't see a live picture on your HDMI monitor?
Posted (edited)

@sven-ola About the issue you saw (re. UUID=63ee7593-e111-4547-ac2f-6bdb8519ce11..), what I have done is flash either of the two images at https://sven-ola.commando.de/privat-in/ to a 128GB MicroSD card using Win32DiskImager or Rufus on Windows, and then booted the RV2 with it, that's all.

The RV2 has had two PCI devices connected at boot. This should not affect the boot sequence. I sent you all kinds of weird boot sequences I had especially with the Linux 7.10 Armbian image.

I gave a few hours to try these Armbian images on the RV2, and ultimately it's not stable. The biggest issue is to boot from the M.2 SSD. Then, the 6.18 boots well from MicroSD but the 7.10 not. Finally my SFP+ NIC doesn't work well on the 6.18.

I had more success with the testing in the beginning, e.g. I got the 7.10 image to work booted from the SSD. Could there be an issue with power supply, for example with the 5V to 3.3V converter on the PCB. For power supply I use a good 5V @ 5A USBC power supply.

 


The most successful test I did was, flash a MicroSD card with the 6.18 image, and boot it on the RV2. Then from inside that environment, do dd if=Armbian-unofficial_26.05.0-trunk_Orangepirv2_trixie_edge_7.1.0-rc3_minimal.img of=/dev/nvme0n1 bs=100M status=progress; sync . Booting from that NVMe did work a few times.

 

I installed the u-boot bundled with Armbian to the SPI using armbian-config. I'm not sure this was a good idea, at least it did not make NVMe booting work better.

 

Edited by armfan
Posted (edited)

Hi @armfan. From what I am able to extract from the flood of braindumps you have a non-working NVME with 2TB that is not working for some reason. If it really stops sometimes in the middle of u-boot::nvme::init then you may have some power issue with this NVME.

 

For comparison: I placed my NVME in the lower m.2 and booted via MTD the u-boot armbian-installed from the "current" image downloadable from my site. See attached capture file.

 

HTH // Sven-Ola

nvme-lower-uboot-may-26-2026.cap

Edited by sven-ola
Added UART boot capture
Posted (edited)

@rm_ No, SD and NVME are working with Armbian edge 7.1, while USB does not.

root@orangepirv2:~# uname -a
Linux orangepirv2 7.1.0-rc3-edge-spacemit #3 SMP PREEMPT_DYNAMIC Sun May 10 21:08:09 UTC 2026 riscv64 GNU/Linux
root@orangepirv2:~# blkid
/dev/nvme0n1p1: LABEL="armbi_root" UUID="fdbd4ab2-2238-4a62-a079-74ff0582c8d2" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00406d4f-01"
/dev/mmcblk0p1: LABEL="armbi_root" UUID="63ee7593-e111-4547-ac2f-6bdb8519ce11" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9ebf8299-01"
/dev/zram0: UUID="3be872bc-b408-46c3-8ec9-d27500adc1dd" TYPE="swap"
/dev/zram1: LABEL="log2ram" UUID="bace3aba-15ea-4833-a7ad-f7d9e39aa0c5" BLOCK_SIZE="4096" TYPE="ext4"
root@orangepirv2:~# lsusb
root@orangepirv2:~# lspci
0001:00:00.0 PCI bridge: SpacemiT X60 PCIe 2.0 x2 Root Complex (rev 01)
0002:00:00.0 PCI bridge: SpacemiT X60 PCIe 2.0 x2 Root Complex (rev 01)
0002:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9B1 (DRAM-less) (rev 02)

Anyhow, thanks for the Phoronix link // Sven-Ola

Edited by sven-ola
Posted

Hi all!

 

Here follows the learning from circa 12 hours of trying to make Armbian with 7.1 and 6.18 kernel work.

 

What worked and didn't work:

 

  • 6.18 booted with 100% success rate from MicroSD.
     
  • 7.1 did not boot at all for me from MicroSD. Debug log below. (Here the u-boot works, the kernel loads, but it fails around the point where it tries to mount the root filesystem.)
     
  • 7.1 worked booted from NVMe SSD a few times, it started with some success rate there and then the success rate went to 0. The failures are in u-boot.
     
  • 6.18 booted from NVMe SSD had a similar pattern as 7.1.
     
  • So what caused me the most headache was that u-boot would not boot off the NVMe SSD. (Initially I had a few successes but the success rate went to 0.)

    It found the SSD, but said it can't find any partition.
     
  • As for the PCIe networking card, I saw it work on both 7.1 and 6.18 images for a moment, but it did not work stably. Installing the "armbian-firmware" package didn't make a difference. I'd need to test this more though. Most of my time went to trying make the RV2 boot off the NVMe SSD.

 

I wrote some detail thoughts and questions about u-boot's inability to boot off NVMe SSD below.

 

 

Aside from any fixes you suggest, things to try that come to mind to me are:

  • Wait for Linux 7.2 to be released, and then wait for an Armbian image with it. This is scheduled for August.

    Perhaps it just works a lot better as more RV2 functions have been mainlined, and it generally has been tested more by the community - Linux 7 is still so early.
     
  • Try to boot the 7.1 kernel Armbian from SSD but with a /boot partition on a MicroSD card.

 

 

Hardware setup

 

To this RV2 was connected a Samsung 960 Pro 2TB in the 22x80mm M.2 slot (lower), and a RTL8127ATF SFP+ NIC, which was connected to the 22x30mm M.2 (upper) slot via an adapter.

 

Both M.2/PCIe cards got 3.3V supply from the RV2 only. The M.2 to PCIe adapter has a 12V supply input, which was not used. This appeared to suffice for both cards because as you will see below the NIC's link LED did light up at one point.

 

The power supply to the RV2 was a good 5V 5A power supply. I actually tried two different ones, and it did not affect the results.

The RV2 feeds both M.2 connectors and the onboard WIFI from one 5V to 3.3V voltage converter, which appears to be a SY8286A. Its capacity is 6A, i.e. x 3.3V = 19.8W. The SSD should draw max 5W, and the NIC max 2W. Therefore I conclude that the power supply to both cards was fully adequate.

(The said 5V to 3.3V converter is in on page 5 in the RV2's schematics @OPI RV2 V1_1_SCH_20250508(1).pdf" which is http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-RV2.html .  Here it's only called U3, which has 17 PINs with specified names. Concluded it's SY8286A based on searching for a voltage converter with 17 PINs with matching names. It's 3x3mm and has 82% energy conversion efficiency meaning it may produce as much as 3.5W of heat. https://www.bulcomp-eng.com/datasheet/SY8286A (QFN20) - Datasheet 1.pdf )

 

image.png.8361c6db6e58200518e69381f4172c9a.png

 

image.png.772a4a92c0c81eca2ac3717cddb9e323.png

 

 

U-boot fail when trying to boot 7.1 from NVMe SSD

 

During the many hours I tested the RV2, I had the best success early in the testing:

 

Early in the testing, I got the 7.1 kernel Armbian image to boot from the SSD circa 3-4 times. This was as quickly as on the first, second or third try, i.e. I try to boot and if it failed once or twice then at least on the third try it worked.

 

On all other occasions, u-boot failed with the error "Couldn't find partition nvme na:1".

 

What does "nvme na" even mean?

 

At this stage I was booting from the u-boot on the SPI flash, that the RV2 came bundled with.


 

Quote

[   8.051]
Device 0: Vendor: 0x144d Rev: SEEEEEEERIAL  Prod: SEEEEERIAL
[   8.058]             Type: Hard Disk
[   8.062]             Capacity: 1953514.3 MB = 1907.7 GB (4000797360 x 512)
[   8.069] ... is now current device
[   8.072]
Device 0: Vendor: 0x144d Rev: SEEEEEERIAL Prod: SEEEEEEERIAL
[   8.079]             Type: Hard Disk
[   8.082]             Capacity: 1953514.3 MB = 1907.7 GB (4000797360 x 512)
[   8.089] ... is now current device
[   8.092] Couldn't find partition nvme na:1
[   8.272] ethernet@cac80000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
[  13.156] phy_startup() failed: -110FAILED: -110missing environment variable: pxeuuid

 

 

This failure mode happened both before and after upgrading the SSD to the latest firmware.

 

I tried to fix it by un-screwing and re-screwing the SSD in the M.2 slot to work around any potential issue with glap. I don't think that made any material difference.

 

 

I thought what if there is an issue with the u-boot version, so I went through the u-boot SPI flashing process Sven-Ola pointed to using the "armbian-config" tool on the 6.18 kernel Armbian image. This only changed the look of the error message:

 

Now instead u-boot printed "no nvme partition table available" once and then"** No partition table - nvme 0 **" "Couldn't find partition nvme 0:1" five times, and then left me in an u-boot prompt:

 

Quote

 

sys: 0x200
try sd...
bm:3
ERROR:   CMD8
ERROR:   sd f! l:76
bm:4
nor m:0x20 d:0x4118
j...

U-Boot SPL 2022.10_armbian-2022.10-Sd61c-P155c-H8b52-V5e72-Be4e9-R448a (May 01 2026 - 21:34:38 +0000)
[   0.240] DDR type LPDDR4X
[   0.241] set ddr tx odt to 80ohm!
[   0.261] lpddr silicon init consume 20ms
[   0.262] Change DDR data rate to 2400MT/s
[   0.293] WARNING at drivers/mtd/nand/spi/core.c:85/spinand_get_cfg()!
[   0.507] Boot from fit configuration x1_orangepi-rv2
[   0.509] ## Checking hash(es) for config conf_18 ... OK
[   0.515] ## Checking hash(es) for Image uboot ... crc32+ OK
[   0.527] ## Checking hash(es) for Image fdt_18 ... crc32+ OK
[   0.540] ## Checking hash(es) for config config_1 ... OK
[   0.543] ## Checking hash(es) for Image opensbi ... crc32+ OK
[   0.592]

U-Boot 2022.10_armbian-2022.10-Sd61c-P155c-H8b52-V5e72-Be4e9-R448a (May 01 2026 - 21:34:38 +0000)

[   0.599] CPU:   rv64imafdcv
[   0.602] Model: ky x1 orangepi-rv2 board
[   0.606] DRAM:  DDR size = 8192 MB
[   0.609] 8 GiB
[   0.676] reset driver probe start
[   0.678] reset driver probe finish
[   0.704] Core:  414 devices, 29 uclasses, devicetree: board
[   0.717] WDT:   Started PMIC_WDT with servicing (60s timeout)
[   0.722] WDT:   Started watchdog@D4080000 with servicing (60s timeout)
[   0.730] MMC:   sdh@d4280000: probe done.
[   0.737] sdh@d4281000: probe done.
[   0.737] sdh@d4280000: 0, sdh@d4281000: 2
[   0.742] Loading Environment from nowhere... OK
[   0.746] initialize_console_log_buffer
[   0.749] Have allocated memory for console log buffer
[   0.754] In:    serial
[   0.756] Out:   serial
[   0.759] Err:   serial
[   0.762] Default to 100kHz
[   0.879] Found 2 valid MAC addresses.
[   0.880] TLV item: product_name = x1_orangepi-rv2
[   0.885] TLV item: ddr_cs_num = 2
[   0.894] Found device 'hdmi@c0400500', disp_uc_priv=000000007dea0b80
[   1.004] HDMI cannot get HPD signal
[   1.004] spacemit_display_init: device 'dpu@c0340000' display won't probe (ret=-1)
[   1.125] HDMI cannot get HPD signal
[   1.125] display devices not found or not probed yet: -1
[   1.130] All buttons probed successfully
[   1.139] k1x_qspi spi@d420c000: qspi iobase:0x0x00000000d420c000, ahb_addr:0x0x00000000b8000000, max_hz:26500000Hz
[   1.146] k1x_qspi spi@d420c000: rx buf size:128, tx buf size:256, ahb buf size=512
[   1.154] k1x_qspi spi@d420c000: AHB read enabled
[   1.159] k1x_qspi spi@d420c000: bus clock: 26500000Hz, PMUap reg[0xd4282860]:0x0000075b
[   1.166] k1x_qspi spi@d420c000: AHB buf size: 512
[   1.171] SF: Detected XM25QU128C with page size 256 Bytes, erase size 64 KiB, total 16 MiB
List of MTD devices:
[   1.182] * nor0
[   1.183]   - device: flash@0
[   1.186]   - parent: spi@d420c000
[   1.189]   - driver: jedec_spi_nor
[   1.193]   - path: /soc/spi@d420c000/flash@0
[   1.196]   - type: NOR flash
[   1.199]   - block size: 0x10000 bytes
[   1.203]   - min I/O: 0x1 bytes
[   1.206]   - 0x000000000000-0x000001000000 : "nor0"
[   1.210]        - 0x000000000000-0x000000010000 : "bootinfo"
[   1.216]        - 0x000000010000-0x000000020000 : "private"
[   1.221]        - 0x000000020000-0x000000060000 : "fsbl"
[   1.226]        - 0x000000060000-0x000000070000 : "env"
[   1.230]        - 0x000000070000-0x0000000a0000 : "opensbi"
[   1.236]        - 0x0000000a0000-0x000001000000 : "uboot"
[   1.242] Read PMIC reg ab value f0
[   1.244] Failed to get fastboot key config: -19
[   1.248] MMC: no card present
[   1.251] mmc_init: -123, time 3
[   1.254] Net flash mode not enabled
[   1.257] Failed to probe HUSB239: -19
[   1.261] Continue to boot
[   1.272] pcie_dw_k1x pcie@ca400000: has no power-on-status flag, use default.
[   1.276] Now init Rterm...
[   1.279] pcie prot id = 1, porta_init_done = 0
[   1.283] Now waiting portA resister tuning done...
[   1.288] porta redonly_reg2: 00005d47
[   1.291] pcie_rcal = 0x00005d47
[   1.294] pcie port id = 1, lane num = 2
[   1.298] Now int init_puphy...
[   1.301] waiting pll lock...
[   1.304] Now finish init_puphy....
[   1.307] pcie_dw_k1x pcie@ca400000: Unable to get phy0
[   1.312] pcie_dw_k1x pcie@ca400000: Unable to get phy1
[   1.317] pcie_dw_k1x pcie@ca400000: PCIe interface power on, set gpio 116 to 1
[   1.438] PCIE-0: Link up (Gen2-x2, Bus0)
[   1.448] pcie_dw_k1x pcie@ca800000: has no power on gpio.
[   1.450] pcie_dw_k1x pcie@ca800000: has no power-on-status flag, use default.
[   1.458] Now init Rterm...
[   1.460] pcie prot id = 2, porta_init_done = 0
[   1.464] Now waiting portA resister tuning done...
[   1.469] porta redonly_reg2: 00005d47
[   1.472] pcie_rcal = 0x00005d47
[   1.476] pcie port id = 2, lane num = 2
[   1.479] Now int init_puphy...
[   1.482] waiting pll lock...
[   1.485] Now finish init_puphy....
[   1.488] pcie_dw_k1x pcie@ca800000: Unable to get phy0
[   1.493] pcie_dw_k1x pcie@ca800000: Unable to get phy1
[   1.600] PCIE-2: Link up (Gen2-x2, Bus2)
[   4.756] can not find partition in blk dev
[   4.792] Card did not respond to voltage select! : -110
[   4.794] mmc_init: -95, time 33
[   4.797] Cannot find blk device
[   4.800] Cannot get available block device
[   4.804] Partition bootfs not found!
[   4.809] RGMII interface
[   4.810] eth0: ethernet@cac80000
[   4.813] MAC mapping file path not set in environment
[   4.818] can not find partition in blk dev
[   4.853] Card did not respond to voltage select! : -110
[   4.855] mmc_init: -95, time 33
[   4.858] Cannot find blk device
[   4.861] can not get available blk dev
[   4.865] Net:   eth0: ethernet@cac80000
[   4.871] Hit any key to stop autoboot:  0
Loading K1-X Environment ...
[   5.877]
[   5.878] Running NVMe Scan ...
[   5.912] Card did not respond to voltage select! : -110
[   5.914] mmc_init: -95, time 33
[   5.917] Couldn't find partition mmc 2:
[   5.952] Card did not respond to voltage select! : -110
[   5.954] mmc_init: -95, time 33
[   5.957] Couldn't find partition mmc 2:
[   5.993] Card did not respond to voltage select! : -110
[   5.995] mmc_init: -95, time 34
[   5.998] Couldn't find partition mmc 2:
[   6.032] Card did not respond to voltage select! : -110
[   6.034] mmc_init: -95, time 32
[   6.037] Couldn't find partition mmc 2:
[   6.073] Card did not respond to voltage select! : -110
[   6.075] mmc_init: -95, time 34
[   6.078] Couldn't find partition mmc 2:
[   6.081]
no nvme partition table available
[   6.086] ** No partition table - nvme 0 **
[   6.090] Couldn't find partition nvme 0:1
[   6.094] ** No partition table - nvme 0 **
[   6.098] Couldn't find partition nvme 0:1
[   6.101] ** No partition table - nvme 0 **
[   6.105] Couldn't find partition nvme 0:1
[   6.109] ** No partition table - nvme 0 **
[   6.113] Couldn't find partition nvme 0:1
[   6.117] ** No partition table - nvme 0 **
[   6.121] Couldn't find partition nvme 0:1

=>

 

 

From the u-boot prompt, I learned that the partitioning table is MBR and not GPT, because it says "DOS" partition type.
 

Quote

 

=> nvme part 0

Partition Map for NVMe device 0  --   Partition Type: DOS

[ 101.199] Part Start Sector    Num Sectors     UUID            Type
[ 101.203]   1  8192            3694592         00406d4f-01     83
=> [ 139.922] nvme part

Partition Map for NVMe device 0  --   Partition Type: DOS

[ 140.756] Part Start Sector    Num Sectors     UUID            Type
[ 140.761]   1  8192            3694592         00406d4f-01     83
=> [ 143.995] nvme info
Device 0: Vendor: 0x144d Rev: SEEEEERIAL Prod: SEEEEERIAL
[ 145.016]             Type: Hard Disk
[ 145.019]             Capacity: 1953514.3 MB = 1907.7 GB (4000797360 x 512)
=>

 

 

 

After this, I tried "sysboot nvme 0:1 fat" which did boot into something, but I think it was actually to the MicroSD, because it behaved the same as when I try to boot the 7.1 kernel Armbian from MicroSD: it repeated "Begin: Running /scripts/local-block ... done." circa 20 times and then "Gave up waiting for root file system device." .. "ALERT!  UUID=63ee7593-e111-4547-ac2f-6bdb8519ce11 does not exist.  Dropping to a shell!". But, I'd need to re-test this more carefully to make any conclusion.

 


Regarding this complaint that there would be no partition on the NVMe disk, I booted the RV2 from the 6.18 kernel Armbian on a MicroSD card, and there, "mount /dev/nvme0n1p1 /mnt" did work.

 

Quote

root@orangepirv2:~# dmesg | grep nvme
[    1.671797] nvme nvme0: pci function 0001:01:00.0
[    1.671838] nvme 0001:01:00.0: enabling device (0000 -> 0002)
[    1.688312] nvme nvme0: 7/0/0 default/read/poll queues
[    1.740041]  nvme0n1: p1
root@orangepirv2:~# mount /dev/nvme0
nvme0      nvme0n1    nvme0n1p1
root@orangepirv2:~# mount /dev/nvme0n1p1 /mnt
root@orangepirv2:~# ls /mnt
bin  boot  dev  etc  home  initrd.img  initrd.img.old  lib  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old
root@orangepirv2:~#

 

 

Summary thoughts about u-boot's inability to boot from SSD + questions

 

So to summarize, booting the OrangePI RV2 from a 2TB SSD worked a few times but eventually started having a 100% failure rate (circa 25 failures in a row), seeming to say it finds the NVMe disk but complains it can't find a partition, while we know that there was a partition. And these failures were in u-boot.

 

Also since the failure was already in u-boot, the Linux kernel version doesn't matter.

 

This made me think the error could be any of the following:

 

  • Could it be that U-Boot has some incorrectness in its configuration for the power supply to the M.2 slots?

    However, I can't see the 5V to 3.3V voltage converter is software-configurable at all (see schematic above). Meanwhile the P1 PMIC is software-configurable.

    Could it be that the U-Boot has some incorrect configuration to the X1's PCI subsystem or PMIC configuration?
     
  • Could there be a problem that U-Boot can't handle partitions that are almost 2TB in size?

    For safety, it could be a good idea to switch all these Armbian images to GPT partitioning table as DOS/MBR partition tables don't scale anyhow - 2TB is supposed to work, but people will like to boot the RV2 from 4TB+ SSD:s.
     
  • Could there be a problem that U-Boot does not wait for appropriately long time for the SSD to initialize?


Overall I found it a really peculiar issue that U-Boot says it finds the NVMe but appears to fail to read from it.

 

@sven-ola Any idea?

 

 

 

More tests and results re SSD

 

For completeness, on the successfully booted system - that should be only 6.18 kernel booted from MicroSD - with time I did see some SSD failure reported:

 

Quote

 

root@orangepirv2:~# dmesg | grep -i nvme
[    1.667929] nvme nvme0: pci function 0002:01:00.0
[    1.667966] nvme 0002:01:00.0: enabling device (0000 -> 0002)
[    1.683793] nvme nvme0: 7/0/0 default/read/poll queues
[    1.727991]  nvme0n1: p1
[   33.774048] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0x10
[   33.774066] nvme nvme0: Does your device have a faulty power saving mode enabled?
[   33.774073] nvme nvme0: Try "nvme_core.default_ps_max_latency_us=0 pcie_aspm=off pcie_port_pm=off" and report a bug
[   33.806412] nvme0n1: Read(0x2) @ LBA 0, 8 blocks, Host Aborted Command (sct 0x3 / sc 0x71)
[   33.806430] I/O error, dev nvme0n1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[   33.814055] nvme 0002:01:00.0: enabling device (0000 -> 0002)
[   33.814103] nvme nvme0: Disabling device after reset failure: -19
[   33.838084] Buffer I/O error on dev nvme0n1, logical block 0, async page read
[   33.848084] Buffer I/O error on dev nvme0n1p1, logical block 0, async page read
[   37.755951] Buffer I/O error on dev nvme0n1p1, logical block 0, async page read
[   66.561113] Buffer I/O error on dev nvme0n1p1, logical block 0, async page read
[   66.564882] EXT4-fs (nvme0n1p1): unable to read superblock
root@orangepirv2:~#


 

 

 

sven-ola suggested me to try connecting the SSD to the other M.2 slot instead, and that did not work any better. Maybe it worked worse.

 

I could imagine that there was a situation with double bugs here, that the issue with the SSD inside Linux shows some issue with the PCIe drivers.

 

 

For completeness, lspci -v shows this (on 6.18 booted from MicroSD):
 

Quote

 

root@orangepirv2:~# uname -a
Linux orangepirv2 6.18.33-current-spacemit #3 SMP PREEMPT_DYNAMIC Sat May 23 14:51:24 UTC 2026 riscv64 GNU/Linux
root@orangepirv2:~# lspci -v
0001:00:00.0 PCI bridge: SpacemiT X60 PCIe 2.0 x2 Root Complex (rev 01) (prog-if 00 [Normal decode])
        Device tree node: /sys/firmware/devicetree/base/soc/pcie@ca400000/interrupt-controller@0
        Flags: bus master, fast devsel, latency 0, IRQ 66
        Memory at 90000000 (32-bit, non-prefetchable) [size=1M]
        Memory at 90100000 (32-bit, non-prefetchable) [size=1M]
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: [disabled] [16-bit]
        Memory behind bridge: 90200000-902fffff [size=1M] [32-bit]
        Prefetchable memory behind bridge: [disabled] [64-bit]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable+ Count=1/32 Maskable- 64bit+
        Capabilities: [70] Express Root Port (Slot-), IntMsgNum 0
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Secondary PCI Express
        Capabilities: [160] Vendor Specific Information: ID=0006 Rev=0 Len=018 <?>
        Kernel driver in use: pcieport

0001:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963 (prog-if 02 [NVM Express])
        Subsystem: Samsung Electronics Co Ltd SM963 2.5" NVMe PCIe SSD
        Flags: bus master, fast devsel, latency 0, IRQ 65
        Memory at 90200000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, IntMsgNum 0
        Capabilities: [b0] MSI-X: Enable+ Count=8 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Device Serial Number 00-00-00-00-00-00-00-00
        Capabilities: [158] Power Budgeting <?>
        Capabilities: [168] Secondary PCI Express
        Capabilities: [188] Latency Tolerance Reporting
        Capabilities: [190] L1 PM Substates
        Kernel driver in use: nvme
        Kernel modules: nvme

0002:00:00.0 PCI bridge: SpacemiT X60 PCIe 2.0 x2 Root Complex (rev 01) (prog-if 00 [Normal decode])
        Device tree node: /sys/firmware/devicetree/base/soc/pcie@ca800000/interrupt-controller@0
        Flags: fast devsel, IRQ 70
        Memory at b0000000 (32-bit, non-prefetchable) [disabled] [size=1M]
        Memory at b0100000 (32-bit, non-prefetchable) [disabled] [size=1M]
        Bus: primary=00, secondary=00, subordinate=00, sec-latency=0
        Memory behind bridge: 00000000-000fffff [disabled] [32-bit]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
        Capabilities: [70] Express Root Port (Slot-), IntMsgNum 0
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Secondary PCI Express
        Capabilities: [160] Vendor Specific Information: ID=0006 Rev=0 Len=018 <?>
        Kernel driver in use: pcieport

0002:01:00.0 Unassigned class [ffff]: Realtek Semiconductor Co., Ltd. RTL8127 10GbE Controller (rev ff) (prog-if ff)
        Flags: fast devsel, IRQ 69
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, IntMsgNum 1
        Capabilities: [b0] MSI-X: Enable- Count=64 Masked-
        Capabilities: [d0] Vital Product Data
        Kernel modules: r8169

root@orangepirv2:~#


 

 

 

 

From inside this Linux, this simple test of the SSD works, and shows ~600M/sec.

 

Quote

 

root@orangepirv2:~# dd if=/dev/nvme0n1 of=/dev/null bs=100M status=progress
35546726400 bytes (36 GB, 33 GiB) copied, 55 s, 646 MB/s^C
344+0 records in
343+0 records out
35966156800 bytes (36 GB, 33 GiB) copied, 60.3714 s, 596 MB/s

root@orangepirv2:~#

 

 

 

Having a look at this disk right now, I just saw something weird:

 

I see /dev/nvme0n1 but no partitions - ls /dev/nvme0n0p* gives nothing.

 

fdisk found no partitions (empty partition list printout).

 

gdisk found three partitions but after 'fixing' the partition table. I'd need to look into this more. I have not done any changes to the SSD's partition table after the original flashing the disk with the Armbian image.

 

Perhaps some bug some-where in this u-boot or Armbian caused the partition table to get overwritten, no idea?
 

Quote

root@orangepirv2:~# fdisk -x /dev/nvme0n1
Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors
Disk model: Samsung SSD 960 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

root@orangepirv2:~# gdisk /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.10

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Warning: Invalid CRC on main header data; loaded backup partition table.
Warning! Main and backup partition tables differ! Use the 'c' and 'e' options
on the recovery & transformation menu to examine the two tables.

Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!
Main header: ERROR
Backup header: OK
Main partition table: ERROR
Backup partition table: OK

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: damaged

Found invalid MBR and corrupt GPT. What do you want to do? (Using the
GPT MAY permit recovery of GPT data.)
 1 - Use current GPT
 2 - Create blank GPT

Your answer: 1

Command (? for help): print
Disk /dev/nvme0n1: 4000797360 sectors, 1.9 TiB
Model: Samsung SSD 960 PRO 2TB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 316A2C1C-1FE2-4B53-AEB3-40EC9D91ABA0
Partition table holds up to 128 entries
Main partition table begins at sector 32 and ends at sector 63
First usable sector is 64, last usable sector is 4000797326
Partitions will be aligned on 2048-sector boundaries
Total free space is 3686021711 sectors (1.7 TiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          206847   100.0 MiB   EF00  EFI System
   2          206848       157491199   75.0 GiB    0700  Basic data partition
   3       157493248       314779647   75.0 GiB    8E00

Command (? for help): quit
root@orangepirv2:~#

 

 

 

To show that the SSD can work, here is a cycle of re-flashing the 7.1 image and looking at its partition descriptors in Linux + fdisk's output + gdisk's output + trying to mount it.
 

Quote

root@orangepirv2:~# uname -a
Linux orangepirv2 6.18.33-current-spacemit #3 SMP PREEMPT_DYNAMIC Sat May 23 14:51:24 UTC 2026 riscv64 GNU/Linux
root@orangepirv2:~# dd if=Armbian-unofficial_26.05.0-trunk_Orangepirv2_trixie_edge_7.1.0-rc3_minimal.img of=/dev/nvme0n1 bs=100M status=progress
838860800 bytes (839 MB, 800 MiB) copied, 2 s, 395 MB/s
11+0 records in
11+0 records out
1153433600 bytes (1.2 GB, 1.1 GiB) copied, 4.76761 s, 242 MB/s
root@orangepirv2:~# sync
root@orangepirv2:~# fdisk -x /dev/nvme0n1
Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors
Disk model: Samsung SSD 960 PRO 2TB
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: 0x9ebf8299

Device         Boot Start     End Sectors Id Type  Start-C/H/S End-C/H/S Attrs
/dev/nvme0n1p1       8192 2252799 2244608 83 Linux     0/130/3 140/58/46
root@orangepirv2:~# gdisk /dev/nvme0n1
GPT fdisk (gdisk) version 1.0.10

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Warning: Invalid CRC on main header data; loaded backup partition table.
Warning! Main and backup partition tables differ! Use the 'c' and 'e' options
on the recovery & transformation menu to examine the two tables.

Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!
Main header: ERROR
Backup header: OK

Main partition table: ERROR
Backup partition table: OK

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: damaged

Found valid MBR and corrupt GPT. Which do you want to use? (Using the
GPT MAY permit recovery of GPT data.)
 1 - MBR
 2 - GPT
 3 - Create blank GPT

Your answer: 1

Command (? for help): print
Disk /dev/nvme0n1: 4000797360 sectors, 1.9 TiB
Model: Samsung SSD 960 PRO 2TB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): FC9E2E86-7EBB-4774-8499-32CA9E1A41F5
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 4000797326
Partitions will be aligned on 2048-sector boundaries
Total free space is 3998552685 sectors (1.9 TiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            8192         2252799   1.1 GiB     8300  Linux filesystem

Command (? for help): quit
root@orangepirv2:~# ls /dev/nvme0*
/dev/nvme0  /dev/nvme0n1  /dev/nvme0n1p1
root@orangepirv2:~# mount /dev/nvme0n1p1 /mnt
root@orangepirv2:~# ls /mnt
bin   dev  home        initrd.img.old  lost+found  mnt  proc  run   selinux  sys  usr  vmlinuz
boot  etc  initrd.img  lib             media       opt  root  sbin  srv      tmp  var  vmlinuz.old
root@orangepirv2:~# umount /mnt
root@orangepirv2:~#

 

 

 

How the 7.1 kernel Armbian fails when trying to boot it from MicroSD

 

For your reference, here is how the 7.1 kernel Armbian fails when I try to boot it from MicroSD. The failure rate is 100%, I did not get it to work a single time.
 

Quote

sys: 0x200
try sd...
bm:3
j...

U-Boot SPL 2022.10_armbian-2022.10-Sd61c-P24da-H8b52-V5e72-Bd0d2-R448a (May 29 2026 - 12:51:31 +0000)
[   0.153] DDR type LPDDR4X
[   0.154] set ddr tx odt to 80ohm!
[   0.174] lpddr silicon init consume 20ms
[   0.175] Change DDR data rate to 2400MT/s
[   0.649] Boot from fit configuration x1_orangepi-rv2
[   0.651] ## Checking hash(es) for config conf_18 ... OK
[   0.656] ## Checking hash(es) for Image uboot ... crc32+ OK
[   0.668] ## Checking hash(es) for Image fdt_18 ... crc32+ OK
[   0.689] ## Checking hash(es) for config config_1 ... OK
[   0.692] ## Checking hash(es) for Image opensbi ... crc32+ OK
[   0.741]

U-Boot 2022.10_armbian-2022.10-Sd61c-P24da-H8b52-V5e72-Bd0d2-R448a (May 29 2026 - 12:51:31 +0000)

[   0.748] CPU:   rv64imafdcv
[   0.751] Model: ky x1 orangepi-rv2 board
[   0.754] DRAM:  DDR size = 8192 MB
[   0.758] 8 GiB
[   0.824] reset driver probe start
[   0.826] reset driver probe finish
[   0.852] Core:  414 devices, 29 uclasses, devicetree: board
[   0.865] WDT:   Started PMIC_WDT with servicing (60s timeout)
[   0.870] WDT:   Started watchdog@D4080000 with servicing (60s timeout)
[   0.879] MMC:   sdh@d4280000: probe done.
[   0.885] sdh@d4281000: probe done.
[   0.886] sdh@d4280000: 0, sdh@d4281000: 2
[   0.890] Loading Environment from MMC... *** Warning - bad CRC, using default environment

[   1.009] initialize_console_log_buffer
[   1.010] Have allocated memory for console log buffer
[   1.015] In:    serial
[   1.017] Out:   serial
[   1.019] Err:   serial
[   1.023] Default to 100kHz
[   1.140] Found 2 valid MAC addresses.
[   1.141] TLV item: product_name = x1_orangepi-rv2
[   1.145] TLV item: ddr_cs_num = 2
[   1.154] Found device 'hdmi@c0400500', disp_uc_priv=000000007dea0b80
[   1.265] HDMI cannot get HPD signal
[   1.265] spacemit_display_init: device 'dpu@c0340000' display won't probe (ret=-1)
[   1.386] HDMI cannot get HPD signal
[   1.386] display devices not found or not probed yet: -1
[   1.391] All buttons probed successfully
[   1.400] k1x_qspi spi@d420c000: qspi iobase:0x0x00000000d420c000, ahb_addr:0x0x00000000b8000000, max_hz:26500000Hz
[   1.407] k1x_qspi spi@d420c000: rx buf size:128, tx buf size:256, ahb buf size=512
[   1.415] k1x_qspi spi@d420c000: AHB read enabled
[   1.420] k1x_qspi spi@d420c000: bus clock: 26500000Hz, PMUap reg[0xd4282860]:0x0000075b
[   1.427] k1x_qspi spi@d420c000: AHB buf size: 512
[   1.432] SF: Detected XM25QU128C with page size 256 Bytes, erase size 64 KiB, total 16 MiB
List of MTD devices:
[   1.443] * nor0
[   1.444]   - device: flash@0
[   1.447]   - parent: spi@d420c000
[   1.450]   - driver: jedec_spi_nor
[   1.454]   - path: /soc/spi@d420c000/flash@0
[   1.457]   - type: NOR flash
[   1.460]   - block size: 0x10000 bytes
[   1.464]   - min I/O: 0x1 bytes
[   1.467]   - 0x000000000000-0x000001000000 : "nor0"
[   1.472]        - 0x000000000000-0x000000010000 : "bootinfo"
[   1.477]        - 0x000000010000-0x000000020000 : "private"
[   1.482]        - 0x000000020000-0x000000060000 : "fsbl"
[   1.487]        - 0x000000060000-0x000000070000 : "env"
[   1.491]        - 0x000000070000-0x0000000a0000 : "opensbi"
[   1.497]        - 0x0000000a0000-0x000001000000 : "uboot"
[   1.503] Read PMIC reg ab value f4
[   1.505] Failed to get fastboot key config: -19
[   1.509] Net flash mode not enabled
[   1.513] Failed to probe HUSB239: -19
[   1.516] Continue to boot
[   1.520] RGMII interface
[   1.521] eth0: ethernet@cac80000
[   1.524] MAC mapping file path not set in environment
[   1.529] K1X: :_load_env_from_blk
[   1.549] Failed to load 'env_k1-x.txt'
[   1.551] Net:   eth0: ethernet@cac80000
[   1.556] Hit any key to stop autoboot:  0
Loading K1-X Environment ...
[   2.562]
[   2.563] Running NVMe Scan ...
[   2.575] pcie_dw_k1x pcie@ca400000: has no power-on-status flag, use default.
[   2.579] Now init Rterm...
[   2.582] pcie prot id = 1, porta_init_done = 0
[   2.586] Now waiting portA resister tuning done...
[   2.591] porta redonly_reg2: 00005d37
[   2.594] pcie_rcal = 0x00005d37
[   2.597] pcie port id = 1, lane num = 2
[   2.601] Now int init_puphy...
[   2.604] waiting pll lock...
[   2.607] Now finish init_puphy....
[   2.610] pcie_dw_k1x pcie@ca400000: Unable to get phy0
[   2.615] pcie_dw_k1x pcie@ca400000: Unable to get phy1
[   2.620] pcie_dw_k1x pcie@ca400000: PCIe interface power on, set gpio 116 to 1
[   2.753] PCIE-0: Link up (Gen2-x2, Bus0)
[   2.763] pcie_dw_k1x pcie@ca800000: has no power on gpio.
[   2.766] pcie_dw_k1x pcie@ca800000: has no power-on-status flag, use default.
[   2.773] Now init Rterm...
[   2.775] pcie prot id = 2, porta_init_done = 0
[   2.780] Now waiting portA resister tuning done...
[   2.784] porta redonly_reg2: 00005d37
[   2.788] pcie_rcal = 0x00005d37
[   2.791] pcie port id = 2, lane num = 2
[   2.795] Now int init_puphy...
[   2.798] waiting pll lock...
[   2.800] Now finish init_puphy....
[   2.804] pcie_dw_k1x pcie@ca800000: Unable to get phy0
[   2.809] pcie_dw_k1x pcie@ca800000: Unable to get phy1
[   2.932] PCIE-2: Link up (Gen2-x2, Bus2)
[   6.405] Retrieving file: /boot/extlinux/extlinux.conf
[   6.434] 1:   Armbian-unofficial
[   6.434] Retrieving file: /boot/uInitrd
[   7.308] Retrieving file: /boot/Image
[   8.313] append: root=UUID=63ee7593-e111-4547-ac2f-6bdb8519ce11 earlycon=sbi console=tty1 console=ttyS0,115200 loglevel=1 rw no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 splash plymouth.ignore-serial-consoles
[   8.331] Retrieving file: /boot/dtb/spacemit/k1-orangepi-rv2.dtb
[   8.378]    Uncompressing Kernel Image
[   8.774] Moving Image from 0x10000000 to 0x200000, end=2c73000
[   8.797] ## Loading init Ramdisk from Legacy Image at 21000000 ...
[   8.800]    Image Name:   uInitrd
[   8.803]    Image Type:   RISC-V Linux RAMDisk Image (gzip compressed)
[   8.809]    Data Size:    13892069 Bytes = 13.2 MiB
[   8.814]    Load Address: 00000000
[   8.818]    Entry Point:  00000000
   Verifying Checksum ... OK
[   8.885] ## Flattened Device Tree blob at 31000000
[   8.887]    Booting using the fdt blob at 0x31000000
[   8.892]    Loading Ramdisk to 7d03b000, end 7dd7a9e5 ... OK
[   8.904]    Loading Device Tree to 000000007d030000, end 000000007d03afd7 ... OK

Starting kernel ...

[    0.000000] Booting Linux on hartid 0
[    0.000000] Linux version 7.1.0-rc3-edge-spacemit (build@armbian) (riscv64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #3 SMP PREEMPT_DYNAMIC Sun May 10 21:08:09 UTC 2026
[    0.000000] Machine model: OrangePi RV2
[    0.000000] SBI specification v1.0 detected
[    0.000000] SBI implementation ID=0x1 Version=0x10003
[    0.000000] SBI IPI extension detected
[    0.000000] SBI RFENCE extension detected
[    0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[    0.000000] printk: legacy bootconsole [sbi0] enabled
Loading, please wait...
Starting systemd-udevd version 257.13-1~deb13u1
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... Scanning for Btrfs filesystems
done.
Begin: Waiting for root file system ... Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
Begin: Running /scripts/local-block ... done.
done.
Gave up waiting for root file system device.  Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  UUID=63ee7593-e111-4547-ac2f-6bdb8519ce11 does not exist.  Dropping to a shell!
(initramfs) 

 

 


 

 

image.thumb.png.bbdfa5aa48947788cc0b02fa600310f6.png

 

 

 

 

@rm_ Thanks for the link to https://www.phoronix.com/news/SpacemiT-K1-K3-Linux-7.2 which links to https://lore.kernel.org/lkml/20260602070257-KYC5031219@kernel.org/ , which says "For boards of K1", "OrangePi RV2", "Enable eMMC/I2C/PCIe/PMIC/QSPI/USB".

The meaning here is that the Linux 6.18 and also Linux 7.1 use special patched kernels, not just the mainline kernel. What's happening in Linux 7.2 is that more RV2 functionality moves in to the mainline kernel. This way, Sven-Ola is correct when he says that SD and NVME already work in Armbian edge 7.1.
 

 

image.png

Posted (edited)

I could try one more thing: I could try a *third* USB-C power supply. However, there don't exist very many 5A@5V power supplies on the market. I would try a 3A@5V rated power supply.

 

Have you guys had any problem with power supplies on the RV2?

 

What power supply do you use?

 

Would it be of any help that I buy a Raspberry Pi 5 power supply made by Raspberry Pi Ltd, that's rated 5.1V@5A?

 

https://www.raspberrypi.com/products/27w-power-supply/ https://www.amazon.de/-/en/Official-Raspberry-Pi-USB-C-Supply-black/dp/B0CN3MRV16

 

Actually in this context is it a good thing to use a power supply rated 5.1V rather than 5.0V? Anyhow as far as the 3.3V supply on the RV2 is concerned, the voltage converter should treat 5.1V and 5.0V equally, it has a wide accepted voltage interval.

 

image.thumb.png.765861e4c4363db9131be7e67e542d97.png

Edited by armfan

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines