Updating uboot?

When I run reform-check[1] I notice:

I: Your platform name is: MNT Pocket Reform with i.MX8MP Module
I: You are running kernel version: 6.9.12-mnt-reform-arm64
I: Your installed kernel version: 6.9.12-1+reform20240803T055726Z
I: Your installed reform-tools version: 1.47
I: not installed:  minetest neverball
W: eMMC does not contain latest uboot
W: You can update it to the latest version by running as root:
reform-flash-uboot emmc
[...]

However, running reform-flash-boot

$ sudo reform-flash-uboot emmc
E: writing uboot to SD-Card not supported on MNT Pocket Reform with i.MX8MP Module

So - is there a way to update uboot on the Pocket? The handbook mentions that this is “rarely needed”, noted - if not then perhaps add a message in the reform-check output that this is just a notice rather than anything urgent.

[1] BTW I think the idea of reform-check is really useful! :+1:

1 Like

Thank you, you found a bug! It is fixed here: reform-tools 1.48 (!79) · Merge requests · Reform / MNT Reform Tools · GitLab

2 Likes

Great! Thank you. That change appears to enable the newer uboot to be downloaded and flashed here. That being said… My machine is now not booting :sob: The OLED comes on, the keys light up, but the screen is blank. Tried with and without an SD card. I guess I may have to do some sniffing on the serial terminal to see what is happening.


Pivoting to the reform-check side of things, it also states:

W: etc/modprobe.d/reform.conf doesn't exist
W: it should at least contain the following lines:
blacklist imx8m-ddrc
blacklist raid456

I don’t believe that this is necessary / applies to the Pocket Reform. There is a module marked not to be loaded in /etc/modprobe.d/reform-qcacld2.conf but the Pocket Reform doesn’t use the imx8m so I assume these lines are not needed here.

@minute which u-boot version are you flashing to the pocket reforms that you shipped to customers? Your post at Deleted the emmc partition - #2 by minute did not include anything about flashing u-boot. The reform-flash-uboot script will flash the reform-imx8mp-uboot tag 2024-05-06 which is also the top git commit of that repo. That should work, right?

Tried with and without an SD card.

Is the pocket preferring to load u-boot from sd-card or will it only try emmc?

Pivoting to the reform-check side of things, it also states:

This is the output you got before your machine stopped booting, right? It did not come back to life yet, yes? The output about /etc/modprobe.d should be irrelevant for your situation. Even if those files contain random content, they will not prevent you from getting serial output if your system gets so far that it starts loading and running linux.

Hi, I talked to Lukas on IRC and we figured out the problem. Currently, the reform-tools package encodes a u-boot offset of 33792 bytes. But this is only correct when flashing u-boot on the SD-card from which the imx8mplus cannot even load u-boot. When flashing u-boot to emmc, the correct offset is simply zero bytes. Lukas also pointed out that in case of the imx8mplus, updating u-boot should only be done by people who really, really want to and know what they are doing. So I’ll be setting the EMMC_BOOT value for the imx8mplus in reform-tools from true to false. This will also stop reform-check from suggesting to update u-boot.

I’m really sorry for the mess this caused you. I’m sorry that this soft-bricked your pocket. :bowing_man:

I talked with Lukas about u-boot offsets originally in March this year and that’s also how the incorrect 33792 byte value made it into reform-tools: 2024-03-19.log

3 Likes

Thanks for tracking it down - and I’m glad to have helped to avoid it affecting others…

Now I just need to figure out how to get back to a working state.