EEPROM config and the CM5 lite

With the upcoming release of NVME capable adapter boards from @vileer & @lululvlv I have changed up the EEPROM config to be able to use them.

If you have a CM5 lite and are having problems with the sd card booting or have already updated the config but plan on getting a NVMe board. You need to edit your EEPROM and your CM5 lite has to have updated firmware that was released after 2025-01-06. Check using vcgencmd version to update sudo rpi-eeprom-update
sudo rpi-eeprom-config -e To edit the eeprom.
backup current config, then replace with:

[all]
BOOT_UART=1

# Switch off PMIC outputs on HALT
POWER_OFF_ON_HALT=1

# Default BOOT_ORDER for provisioning
# SD -> NVMe -> USB -> Network
BOOT_ORDER=0xf461

# Try boot on SDCard repeatly
SD_BOOT_MAX_RETRIES=2

# Slow down SDCard SDR Mode on bootloader
SD_QUIRKS=1

If you don’t have a sd card you can get working, myself and others have had this one work for getting it booted to apply the EEPROM changes.

If you have any question or suggestions post them here!

5 Likes

Thanks!!! Its coming!!!

1 Like

does it mean CM5 can boot from an usb flash drive?

2 Likes

It will be with the new adapter board that has access to the native USB 3 ports.

3 Likes

I think you should named them ā€œindigenousā€ :relieved_face:

2 Likes

You are the lifesaver!!!

3 Likes

sudo vcgencmd version executed with the following output:

Aug 20 2025 17:02:31
Copyright (c) 2012 Broadcom
version cd866525580337c0aee4b25880e1f5f9f674fb24 (clean) (release) (start)

Is it ready for the NVMe board?

you just need to change the boot order to this if you’ve already done the other changes

1 Like

I’m confused. My uConsole Kit RPI-CM4 Lite is running with a RPI5 0gb EMMC. When I run the commands for EEPROM and vcgencmd I only see a version that shows current from Sept. 23, 2024.

What am I missing? I have been battling this thing since I got it to do simple things like reboot. Every time it hangs and I have to take the batteries out to reset the device.

Here is what I see:
root@uconsole:/home/ddowning# rpi-eeprom-config -e
Updating bootloader EEPROM
image: /lib/firmware/raspberrypi/bootloader-2712/default/pieeprom-2024-09-23.bin
config_src: blconfig device
config: /tmp/tmp5xvcx2w3/boot.conf
################################################################################
[all]
BOOT_UART=1
Default BOOT_ORDER for provisioning
SD → NVMe → USB → Network
POWER_OFF_ON_HALT=1
#BOOT_ORDER=0xf2461
BOOT_ORDER=0xf461
SD_BOOT_MAX_RETRIES=2
SD_QUIRKS=1

################################################################################

*** To cancel this update run ā€˜sudo rpi-eeprom-update -r’ ***

*** CREATED UPDATE /tmp/tmp5xvcx2w3/pieeprom.upd ***

CURRENT: Mon Sep 23 13:02:56 UTC 2024 (1727096576)
UPDATE: Mon Sep 23 13:02:56 UTC 2024 (1727096576)
BOOTFS: /boot/firmware
ā€˜/tmp/tmp.e2itTrVdki’ → ā€˜/boot/firmware/pieeprom.upd’

UPDATING bootloader. This could take up to a minute. Please wait

*** Do not disconnect the power until the update is complete ***

If a problem occurs then the Raspberry Pi Imager may be used to create
a bootloader rescue SD card image which restores the default bootloader image.

flashrom -p linux_spi:dev=/dev/spidev10.0,spispeed=16000 -w /boot/firmware/pieeprom.upd
UPDATE SUCCESSFUL

Did you try and run rpi-eeprom-update?

You do have the correct settings applied to the EEPROM.

Yes, I ran that command. Here was the output: (I ran apt update first)

root@uconsole:/home/ddowning# rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Mon Sep 23 13:02:56 UTC 2024 (1727096576)
LATEST: Mon Sep 23 13:02:56 UTC 2024 (1727096576)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release.
root@uconsole:/home/ddowning#

To me this says it is going out and this is the latest it is finding, but that doesn’t make sense when others have newer versions from 2025.

I found this link with a lot of firmware listed. Should I pick the latest and install it?

Try going into raspi-config and updating that way to see if it works.

I did the manual install from that site, and the update was successful. I am now showing the following:

root@uconsole:/home/ddowning# rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Wed Feb 12 10:51:52 UTC 2025 (1739357512)
LATEST: Mon Sep 23 13:02:56 UTC 2024 (1727096576)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release.

I am assuming we want to be on the DEFAULT release for now. I am not sure why it was not seeing the latest default version out on the web. I would assume I am good for a while? Now we keep out ditribution up to date for Ubuntu and wait for further developments. I only have 1 package that is not upgrading, but it is listed as flash-kernel, so I am assuming it is being held back on purpose.

If I clean shutdown the device it powers down cleanly and can be brought back up again. But if sudo reboot, it hangs and never turns off. Is this something that is known and everyone is waiting until root cause is found and the issue addressed? Or is mine special and there is more work I should do? LOL

I just redid the Ubuntu image and it rebooted fine for me. I’m on EEPROM version 2025/08/27

but your version is new enough to work.

I do think sometimes Ubuntu hangs for a bit but does end up shutting down.

So the question is why would the source that your device reaches out to be different then the source my device reaches out to:

root@uconsole:/home/ddowning# vcgencmd version
2025/02/12 10:51:52
Copyright (c) 2012 Broadcom
version f788aab6 (release) (embedded)

I assume that for this process it points out to a public repository link of some sort. I just installed the image last night, so we should be on same revision levels in theory as well as have the same repository listings.

You’re running Ubuntu right? Maybe try Bookworm or Trixie and see if you can update it further.

I was able to get it working. I went to the official images on the raspberrypi github:

I then downloaded the image and installed it manually. If I would have placed the file in the default folder where the locally stored bin files are located, then the eeprom utility would have seen it and done the upgrade. Because the 2025/08/27 image actually comes from the source site as latest, what I should have done is changed my release to ā€œlatestā€, and placed the file in the ā€œlatest folder locally. Then the eeprom-upgrade would have found it and processed it. What I am not sure of is where the APT process looks at online to find new packages and bring them down to the appropriate folder. That part does not seem to be working for me. I am not sure if it is tied to the sources.list/repository lists, or if it is defined somewhere else. I have the ā€œlatestā€ version that maches your now and have learned how it works a little better.

root@uconsole:/home/ddowning# vcgencmd version
2025/08/27 20:01:47
Copyright (c) 2012 Broadcom
version 000d3ca2 (release) (embedded)
root@uconsole:/home/ddowning#

Side note, the reboot is working now with no issue. Super happy about that now. Thanks for the help Rex and keeping my sanity.

1 Like

Hello Rex, youre an absolute monster of contributor. Im still running your bookworm variant on my uConsole, which i use for writing in both portable and desktop mode. Absolutely solid. Btw i found Micro to be a much better notepad than Nano, and it also has a Windows version.

I would like to upgrade to CM5. Do you recommend maxing out with a 16Gb RAM/ 64GB eMMC board? I would like to try local LLMs, and apparently they love RAM and fast storage, but they also love to kill SD cards. (I managed to run up to 12B local LLMs on my Steam Deck, but what i really love is a 7B LLM that proofreads messy txt files and outputs neat doc files. I would love that on my uConsole). Could i boot off the SD and leave the internal storage for LLMs?

If you need a bunch of ram I’d get the 16GB one but no EMMC. If you have the EMMC variant you can’t use the SD card slot. So get the lite, then get one of the adapter boards that are coming out that support NVME. That way you can use the SD slot as a dual boot or as storage and have fast storage. A NVME drive will run 3x faster then the EMMC on a CM5.

2 Likes

understood. but what about this adapter

Waveshare M.2 Adapter with Active Cooler for Raspberry Pi 5 - The Pi Hut Waveshare M.2 Adapter with Active Cooler for Raspberry Pi 5 - The Pi Hut

we just cut out the fan and stick the M.2 to the case with some thermal paste. or is the ribbon cable to short to accommodate it? maybe some other ribbon cable?

:smile:i imagine youve answered this question before, just like you do with many other questions. answer them over and over