First Barebox Boot Loader release for RK3588 Pocket Reform, OpenBSD

Hi everyone, here’s the first release of the Barebox bootloader tailored for MNT Pocket Reform with RK3588 processor, including DSI/HDMI graphics support and a comfy shell: First release for RK3588 MNT Pocket Reform · Reform / MNT Reform Barebox · GitLab · MNT Source

I’ve only been able to test this thoroughly with Display V2, but I’m very interested to hear if it works for you regardless of display version.

Here are some photos of what to expect:

Here are some extra instructions for testing OpenBSD: README-mnt.md · main · Reform / MNT Reform Barebox · GitLab · MNT Source

3 Likes

Look at this file to find out what panel you have:

/sys/devices/platform/fde30000.dsi/fde30000.dsi.0/mnt_pocket_reform_panel_version

The next version of reform-tools will include output for this: bin/reform-check: print Pocket Reform panel version (22ef61a5) · Commits · Reform / MNT Reform Tools · GitLab · MNT Source

Barebox works very well on my RK3588 Pocket Reform and reliably boots my Debian stable system with /boot on eMMC.

I observed that to boot a system from sd-card, /boot on the sd-card has to have bootspec files in /boot/loader/entries/*.conf which are created since reform-tools 1.84. Older system images on sd-card with just boot.scr or extlinux.conf will not get booted by barebox.

Also note, that when booting with barebox, when the flash-kernel hook is run during kernel upgrades, flash-kernel will exit early with the message:

System running in EFI mode, skipping.

This is fine since reform-tools 1.87 which ships its own hook populating /conf/conf.d/default_root in case flash-kernel doesn’t do it. This is also the point where you could try out performing a sudo apt remove flash-kernel. Your system should still work fine afterwards. We are experimenting with a system without flash-kernel in this MR:

https://source.mnt.re/reform/reform-system-image/-/merge_requests/151

If you encounter any problems without flash-kernel installed, please contact me.

I was able to put barebox on my Pocket (with panel v1) with the help from Josch. It is a joy having it!

It works but I need this little hack for the display to work, which I run at boot (within cron @reboot /myscript.sh):

#!/bin/sh

echo display-subsystem >/sys/bus/platform/drivers/rockchip-drm/unbind || true
echo display-subsystem >/sys/bus/platform/drivers/rockchip-drm/bind || true

On dmesg appear two lines like:

[    3.400631] panel-mnt-pocket-reform fde30000.dsi.0: [display] init in prepare...
[   10.736624] panel-mnt-pocket-reform fde30000.dsi.0: [display] init in prepare...

the first one does not make the panel work (which I think should), but the second which is triggered by the previous script does.

Tried 5 scenarios:

  • latest official os image on sdcard
  • latest official os image on sdcard with the hack
  • latest official os image on sdcard with hdmi
  • debian/trixie on emmc
  • debian/trixie on emmc with the hack

The two scenarios without the hack got consistently a blank screen, the two with the hack got consistently a working panel, and when HDMI was connected to a monitor, both internal panel and hdmi worked.

You can also force the panel work by:

  • setterm -blank 1, after screen is blanked/resumed panel works (kernel logs “panel … init in prepare …”)
  • setterm -blank force -term linux </dev/tty1 >/dev/tty1
    setterm -blank poke -term linux </dev/tty1 >/dev/tty1
    
  • inside a wayland session by enabling and disabling a display, like with wdisplays command.

Dmesg from latest Debian/Sid booting from both u-boot and barebox:

I hope this may be useful, ask for any other test if needed.

EDIT: added test and dmesg with an HDMI monitor attached.

2 Likes

Wrote barebox to emmc and booting debian/stable from emmc.

I’m adding to my previous post that my Pocket with display panel v1, with an HDMI monitor attached, boots correctly with both internal panel and HDMI active.

1 Like