Mender on pi4 with raspbian last version freeze on GPU boot sequence

We created a custom raspbian image last days using the last raspbian apt package (apt upgrade OK).
When we build the mender image from it, we face a boot problem on raspberry pi 4 (that did not occur with raspberry pi 3 and that did not occur with our golden image (before mender-convert)).

The pi 4 get stuck just after the rainbow screen with a blinking cursor.

After a long debugging sequence (using the serial UART console log), we figured out that if we replace the two following files with older versions, it makes the pi 4 boot :

  • start4.elf
  • fixup4.elf
    As we read online, these two files are related to GPU bootcode.
    Do someone know what can explain theses facts :
  • why does the mender building process affect the GPU boot sequence (as our golden image, without mender works well with both pi3 and pi4)
  • what have been changed in last GPU bootcode that can affect the boot on pi4
  • is it safe to “just” replace these two files with working one or we may face weird problem because of GPU bootcode not in sync with system files

Thanks for your help

Hi @Jerry

We do replace the rpi boot-files with our own custom compiled u-boot binary for rpi. However, our current setup is only 32-bit compatible.

We have been wanting to get the 64–bit support done for a while, but we are still not there unfortunately.

Hi @oleorhagen : our raspberry pi4 distribution is the 32 bit one. So, it seems this is not related to this issue.
Be the way : replacing the 2 files do fix the issue for us. We have tested this workaround for 2 weeks with no issue.
But i would be pleased to understand what is the underlying issue.
Regards

@oleorhagen is the a place where i can find the list of replaced boot-files in order to do some searching ?

our raspberry pi4 distribution is the 32 bit one. So, it seems this is not related to this issue.

Hmm, that is indeed unexpected then. Unless you guys are using a newer RaspiOS distribution than what we currently support ? (See the supported versions on the hub RPI page)

Alright, good :slight_smile:

I cannot be sure, I thought we didn’t replace the start.elf files.

Have a look here, in mender-convert. This is where we add u-boot as the bootloader, as the kernel so to speak, and have it again chain-load the real kernel