On 10/26/24 03:02, Cédric Le Goater wrote: [ ... ]
I don't mind a single file. What bothers me is that the partitioning is made mandatory for ast2600 even if not used.Our only use case, in 2019, was to boot QEMU ast2600 machines from an eMMC device using an OpenBMC FW image like the ones we find on IBM Power10 Rainier systems. I agree we only focused on this scenario. Most of the support should be there for other use cases, and it's now a question of finding the right tunables for the user. I did a quick experiment using 2 patches, one on hw/sd/sd.c to fix c8cb19876d3e ("hw/sd/sdcard: Support boot area in emmc image") @@ -826,7 +826,9 @@ static void sd_reset(DeviceState *dev) sect = 0; } size = sect << HWBLOCK_SHIFT; - size -= sd_bootpart_offset(sd); + if (sd_is_emmc(sd)) { + size -= sd->boot_part_size * 2; + } sect = sd_addr_to_wpnum(size) + 1; and another on hw/arm/aspeed.c to remove the setting of the eMMC device properties when it is not bootable : @@ -338,7 +338,7 @@ static void sdhci_attach_drive(SDHCIStat return; } card = qdev_new(emmc ? TYPE_EMMC : TYPE_SD_CARD); - if (emmc) { + if (emmc && boot_emmc) { qdev_prop_set_uint64(card, "boot-partition-size", 1 * MiB); qdev_prop_set_uint8(card, "boot-config", boot_emmc ? 0x1 << 3 : 0x0); (I am not saying this is correct)
Works for me, though, and it is much better than mandating the existence of boot partitions. If you end up submitting those patches, please feel free to add Tested-by: Guenter Roeck <[email protected]> Thanks, Guenter
