Decided it wouldve been a good idea to report here in case anyone was interested in the topic and/or wanted to help, since i’m not good at this kind of stuff, heh.
As it stands, the RCM4 board is technically able to support any SoMs that adhere to the RPi CM4 pinout, and i’ve had some success starting my reform with a Mars CM (perhaps the first publicly documented reform RISC-V bringup on this forum? ). The system is operable, after some helpful init script adjustments to bang the USB Reset GPIO were suggested on irc by @minute, with of course the exception of… everything exposed by the device tree. Whoops. This would also include power management and the internal display, and as the module does not offer dual HDMI output it’s not possible to use the adapter board featured in the RCM4 + RPi CM4 kit, which would connect the secondary HDMI port (as the first is helpfully routed to the physical port). The bootloader, shipped from the factory as OpenSBI + U-Boot burnt into SPI flash, is able to find the NVMe all on its’ own without assistance, so the system boots just fine. From a cursory glance, there does seem to be some sort of EFI (stub?) support, but as it stands the board will happily report itself as a Starfive VisionFive V2, as it specs the same JH7110. There are a few quirks depending on your hardware revision, namely some higher-spec versions of the boards (e.g. the 8GB ram/32GB emmc version) will report an incorrect type in the configuration eeprom, which can be adjusted with a little patience, a serial monitor and tweezers.
To boot the official Debian image, i follow this process:
- With a NVMe to ExpressCard adapter, i flash the official system image for my version of the board (in this case, CM with eMMC, but i have also tested the CM with SD card version, it has the same limitation in terms of the sd card as the RPi CM4) to a NVMe. The SD Card is not operable yet, as there is apparently a voltage selection quirk with the reform itself which needs a software workaround?
- I expand the system partition, as it doesnt seem to be done automagically, last time i checked. I also take the chance to…
- Mount the boot partition, and change extlinux.conf to point to the proper root filesystem (in my case, i’ll have to swap out mmcblk0p4 with nvme0n1p4. a quick :%s with vim does the trick) so it will boot.
After all that, connect to the serial port and watch it compute until a login prompt shows up. After you log in (on the official image you can log in with root/milkv) take some time to change the default runlevel to multi-user. Please also be sure to update /etc/default/u-boot to match your configuration.
To enable USB you will need to install gpiod. You’ll need the internet and you’re going to get many rtc0 errors but push on through. The GPIO pin the reform uses as USB_HUB_RESET is mapped to gpio pin 52, so poking that off and on again with gpioset should do the trick.
I put down this small writeup in the hopes of someone more willing to step up to the task of assuaging the device tree to work on the reform can pick up from here, because i am very much out of my element…
The default dtb for the Mars CM board, according to the vendor image, is starfive/jh7110-visionfive-v2.dtb
You might also find useful to check out the helpfully available Mars CM Schematics
Good luck to whoever wants to give it a go!