On 10/26/24 17:32, Guenter Roeck wrote:
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.

Yes. However, if the emmc device was user creatable, we could use :

  -blockdev node-name=emmc0,driver=file,filename=mmc-ast2600-evb-noboot.raw \
  -device emmc,bus=sdhci-bus.2,drive=emmc0

and with boot partitions:

  -M boot-emmc=true \
  -blockdev node-name=emmc0,driver=file,filename=mmc-ast2600-evb.raw \
  -device 
emmc,bus=sdhci-bus.2,drive=emmc0,boot-partition-size=1048576,boot-config=8

The above would be my preferred approach if acceptable. The "sd-bus"
bus identifier should be changed in other machines tough.

If you end up submitting those patches, please feel free to add

Tested-by: Guenter Roeck <li...@roeck-us.net>

I should send these fixes for QEMU 9.2.

Thanks,

C.


Reply via email to