On 9/2/25 17:34, Jan Kiszka wrote:
On 02.09.25 17:06, Philippe Mathieu-Daudé wrote:
On 1/9/25 07:56, Jan Kiszka wrote:
From: Jan Kiszka <jan.kis...@siemens.com>

The power-of-2 rule applies to the user data area, not the complete
block image. The latter can be concatenation of boot partition images
and the user data.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
---
   hw/sd/sd.c | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 8c290595f0..16aee210b4 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -2789,7 +2789,7 @@ static void sd_realize(DeviceState *dev, Error
**errp)
               return;
           }
   -        blk_size = blk_getlength(sd->blk);
+        blk_size = blk_getlength(sd->blk) - sd->boot_part_size * 2;
           if (blk_size > 0 && !is_power_of_2(blk_size)) {
               int64_t blk_size_aligned = pow2ceil(blk_size);
               char *blk_size_str;

This seems to break the tests/functional/arm/test_aspeed_rainier.py
test due to mmc-p10bmc-20240617.qcow2 size:

Command: /builds/qemu-project/qemu/build/qemu-system-arm -display none -
vga none -chardev socket,id=mon,fd=5 -mon chardev=mon,mode=control -
machine rainier-bmc -chardev socket,id=console,fd=10 -serial
chardev:console -drive file=/builds/qemu-project/qemu/functional-cache/
download/
d523fb478d2b84d5adc5658d08502bc64b1486955683814f89c6137518acd90b,if=sd,id=sd2,index=2
 -net nic -net user -snapshot
Output: qemu-system-arm: Invalid SD card size: 16 GiB
SD card size has to be a power of 2, e.g. 16 GiB.

https://gitlab.com/qemu-project/qemu/-/jobs/11217561316


Hmm, then the test was always wrong as well. I suspect the aspeed is
enabling boot partitions by default,

Yes for the rainier machine which boots from eMMC :

        if (emmc && boot_emmc) {
            qdev_prop_set_uint64(card, "boot-partition-size", 1 * MiB);
            qdev_prop_set_uint8(card, "boot-config", 0x1 << 3);
        }

In this case, the emmc image is tailored to support boot. It's no
different from real HW AFAICT. It's old (6/7y).

Thanks,

C.


Reply via email to