I am unable to switch the boot partition using the parameters that are described in the Integration Checklist.
When I set:
mender_boot_part=3
mender_boot_part_hex=3
I still get booted into partition 2.
Given the same paramters (mender_boot_part=3), when I execute the commands contained in boot.scr at the u-boot command prompt manually:
fdt addr {fdt_addr} && fdt get value bootargs /chosen bootargs**
**run mender_setup**
**mmc dev {mender_uboot_dev}
load {mender_uboot_root} {kernel_addr_r} /boot/uImage
bootm {kernel_addr_r} - {fdt_addr}
I still get booted into mender_boot_part 2 (instead of mender_boot_part 3).
I inspected bootargs after mender_setup:
bootargs=8250.nr_uarts=1 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
and it contains the wrong root (it should have been p3).
Q1: Where does this get set?
I went ahead and modified bootargs so as to point to the desired root partition, and the system hangs at the “Starting kernel …” message from U-Boot. This I understand even less.
Q2: Is there any resource that describes in more detail how the U-Boot integration mechanism works?
Out distribution is based on OpenEmbedded/Yocto thud. We are using a Raspberry Pi 3 B for this test. It includes the meta-mender-raspberrypi layer, as well as meta-mender-demo and meta-mender-core.
Maybe it is worth mentioning that we are using a MACHINE name different than “raspberrypi3”; also we are using a PREEMPT_RT kernel.