Multiboot on a NVMe SSD

How one would do to install multiples operating systems on the Pocket reform SSD (Genode/Sculpt OS, OpenBSD, Plan9/9Front)? Is it even possible (I guess some U-Boot fu will be mandatory)?

U-boot has support for reading extlinux.conf instead of boot.scr and will then present you with a boot menu that you can navigate with your keyboard and select what you want to boot. This works very well on imx8mq to select which of multiple kernel versions one would like to boot. It does not work well on the other platforms as the display is not switched on by u-boot but only later by linux. For this to work on other platforms, u-boot would need to gain display support first. See [u-boot] internal display support in u-boot (#21) · Issues · Reform / reform · GitLab

Thanks for your synthetical answer. Just out of curiosity, what is needed for u-boot to be able to display on the internal display? Is it “just” a matter of injecting drivers and display config (refresh rate etc…) into an u-boot build or is it more involved than that?

I can only tell you that it needs people much smarter than me to add this. This is how it looked like the last time it was done: add lcdif driver (ba9c4af6) · Commits · Reform / reform-boundary-uboot · GitLab (plus several bug fix commits after that one)

Thanks for you post.

I was thinking about it today and I thought about three alternatives, let me tell you about them and maybe you’ll be able to tell me whether they would be easier to implement :

  • Using the soundcard to read each item of the boot menu
  • Using the UART to show each item of the boot menu
  • Using the OLED show each item of the boot menu

As there’s a way to communicate between the CPU module and the OLED I think the third solution would be the best one as it will also be user friendly (no need to open the case to get to the UART). Do you think it will be less involved technically?

Printing to uart is least involved and can be done today. But it will also be least useful because who is running around with a second computer to access uart?

Using the soundcard would be most involved as i’m unaware of any sound support in u-boot.

Letting u-boot print to the OLED is something that @minute was thinking about in the past: 2022-06-02.log

So I guess any patches implementing this option might be welcome?

Is uboot able to do hidraw type access to the keyboard? If so I could see that being not too difficult to implement something there. Either as a custom menu on the keyboard controller itself, or uboot sending raw drawing commands to the keyboard and rendering itself that way (and handling keypresses at its own level).

Thanks, I wasn’t aware this has been discussed before, as soon as two years ago!

I never developped for u-boot but I may give a try as it might be a low enough hanging fruit for me to get my feet wet. Is there any pipeline ready or tutorial on how to experiment with u-boot on the pocket reform? I believe the reform-flash-uboot will be the most useful here but maybe it’s also feasible and more easy to experiment though some JTAG header or other low-level hardware port?