On 02.09.25 17:06, Philippe Mathieu-Daudé wrote: > On 1/9/25 07:56, Jan Kiszka wrote: >> From: Jan Kiszka <[email protected]> >> >> 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 <[email protected]> >> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> >> --- >> 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, and the image was created to pass the wrong alignment check. Where / by whom is the image maintained? Jan -- Siemens AG, Foundational Technologies Linux Expert Center
