[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 0/1] hw/arm/aspeed: Automatically zero-extend flash images
From: |
Cédric Le Goater |
Subject: |
Re: [PATCH 0/1] hw/arm/aspeed: Automatically zero-extend flash images |
Date: |
Tue, 15 Nov 2022 14:06:57 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 |
Hello Peter,
On 11/14/22 20:08, Peter Delevoryas wrote:
I've been using this patch for a long time so that I don't have to use
dd to zero-extend stuff all the time. It's just doing what people are
doing already, right? I hope it's not controversial.
I simply run :
truncate --size <size>
on the FW file when needed and it is rare because most FW image builders
know the flash size of the target.
However, the current error message is confusing and the following could
be an improvement :
@@ -1606,6 +1606,13 @@ static void m25p80_realize(SSIPeripheral
if (s->blk) {
uint64_t perm = BLK_PERM_CONSISTENT_READ |
(blk_supports_write_perm(s->blk) ? BLK_PERM_WRITE : 0);
+
+ if (blk_getlength(s->blk) != s->size) {
+ error_setg(errp, "backend file is too small for flash device %s (%d
MB)",
+ object_class_get_name(OBJECT_CLASS(mc)), s->size >> 20);
+ return;
+ }
+
ret = blk_set_perm(s->blk, perm, BLK_PERM_ALL, errp);
if (ret < 0) {
return;
I can send a patch for the above.
<hack>
I mostly run the QEMU machines with -snapshot, this hack :
blk_set_allow_write_beyond_eof(s->blk, true);
makes it work also ...
</hack>
Thanks,
C.
One note: I couldn't figure out how to make it work without changing the
permissions on the block device to allow truncation. If somebody knows
how to avoid the `blk_get_perm`, `blk_set_perm` calls here, let me know!
Thanks,
Peter
Peter Delevoryas (1):
hw/arm/aspeed: Automatically zero-extend flash images
hw/arm/aspeed.c | 40 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 39 insertions(+), 1 deletion(-)