6

i would like to fully understand the (special?) handling of eMMC boot partitions (in Linux).

As far as i understand, eMMCs offer some kind of low level partitioning. There is a special meaning to (at least) 2 areas: BOOT and RPMB. BOOT leads typically to device nodes like that: /dev/mmcblk1boot0 or /dev/mmcblk1boot1 RPBM usually gives device nodes like this: /dev/mmcblk1rpmb but i am not interested in those RPMB partitions atm. (fyi: interesting article about those can be found here: https://sergioprado.blog/rpmb-a-secret-place-inside-the-emmc/)

Those partitions can be but don't have to be used for the actual boot process itself. While working on upgrading a legacy project (Linux Kernel 3.12) it turns out that in the past those boot partitions could just be used like any other device. So someone created a partition table and a filesystem on top of it. That actually works as expected and you could even see those partitions from within a running linux system like this: /dev/mmcblk1boot0p1. Whereas with a more recent system (Linux Kernel 6.1) those partitions are just not visible anymore. Interesting details are:

  • fdisk is still listing the paritions
  • partx can see those partitons but not make them available
  • partitions can not be mounted
  • using the blkdevparts kernel commandline parameter does not seem to help (or i used it wrong ^^)

It feels like the new system is behaving according to standards, even though i can not explicitly find the point the is forbidding to have a normal partition table within those parts of the eMMC. Or maybe i am just doing smth wrong and those partitions can be mounted somehow. Physically they are still existing.

I noticed that in more recent versions of Linux, those boot partitions are write protected. The idea seems to be, to prevent anyone from accidentally breaking a system. Also i know that this can be changed during runtime by simply writing a 0 to the force_ro in the sysfs echo "0" > /sys/class/block/mmcblk1boot0/force_ro. But in this situation there is some actual data stored within those partitions, and it is not needed for the boot process, but very well needed during system runtime.

My questions here are:

  • what changed over that time?
  • is this intended behavior?
  • is there any way to still make those partitions available?

any hint or clarification on that topic would be very helpful and very much appreciated.

thx Christian

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.