qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] hw/arm/virt: use pflash image real size when mapping
@ 2020-09-18 12:21 haibinzhang(张海斌)
  0 siblings, 0 replies; 6+ messages in thread
From: haibinzhang(张海斌) @ 2020-09-18 12:21 UTC (permalink / raw)
  To: peter.maydell@linaro.org, qemu-arm@nongnu.or; +Cc: qemu-devel@nongnu.org

Default size of arm-virt pflash image is 64MB which
will cost extra 128MB(64MBx2) memory per qemu process
and 12.5GB for 100 qemu processes. Host memory is
precious and it is valuable to reduce pflash image size.
For compatibility arm-virt uses real size when mapping.

Signed-off-by: Haibin Zhang <haibinzhang@tencent.com>
---
 hw/arm/virt.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index acf9bfbece..3545e12865 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -50,6 +50,7 @@
 #include "sysemu/sysemu.h"
 #include "sysemu/tpm.h"
 #include "sysemu/kvm.h"
+#include "sysemu/block-backend.h"
 #include "hw/loader.h"
 #include "exec/address-spaces.h"
 #include "qemu/bitops.h"
@@ -1001,10 +1002,27 @@ static void virt_flash_map(VirtMachineState *vms,
      */
     hwaddr flashsize = vms->memmap[VIRT_FLASH].size / 2;
     hwaddr flashbase = vms->memmap[VIRT_FLASH].base;
+    int64_t realsize;
+    BlockBackend *blk;

-    virt_flash_map1(vms->flash[0], flashbase, flashsize,
+    realsize = flashsize;
+    blk = pflash_cfi01_get_blk(vms->flash[0]);
+    if (blk) {
+        realsize = blk_getlength(blk);
+        realsize = realsize < flashsize ? realsize : flashsize;
+    }
+
+    virt_flash_map1(vms->flash[0], flashbase, realsize,
                     secure_sysmem);
-    virt_flash_map1(vms->flash[1], flashbase + flashsize, flashsize,
+
+    realsize = flashsize;
+    blk = pflash_cfi01_get_blk(vms->flash[1]);
+    if (blk) {
+        realsize = blk_getlength(blk);
+        realsize = realsize < flashsize ? realsize : flashsize;
+    }
+
+    virt_flash_map1(vms->flash[1], flashbase + flashsize, realsize,
                     sysmem);
 }

--
2.23.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] hw/arm/virt: use pflash image real size when mapping
@ 2020-09-18 12:26 haibinzhang(张海斌)
  2020-09-18 13:41 ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 6+ messages in thread
From: haibinzhang(张海斌) @ 2020-09-18 12:26 UTC (permalink / raw)
  To: Peter Maydell, qemu-arm@nongnu.org; +Cc: qemu-devel@nongnu.org

Default size of arm-virt pflash image is 64MB which
will cost extra 128MB(64MBx2) memory per qemu process
and 12.5GB for 100 qemu processes. Host memory is
precious and it is valuable to reduce pflash image size.
For compatibility arm-virt uses real size when mapping.

Signed-off-by: Haibin Zhang <haibinzhang@tencent.com>
---
 hw/arm/virt.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index acf9bfbece..3545e12865 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -50,6 +50,7 @@
 #include "sysemu/sysemu.h"
 #include "sysemu/tpm.h"
 #include "sysemu/kvm.h"
+#include "sysemu/block-backend.h"
 #include "hw/loader.h"
 #include "exec/address-spaces.h"
 #include "qemu/bitops.h"
@@ -1001,10 +1002,27 @@ static void virt_flash_map(VirtMachineState *vms,
      */
     hwaddr flashsize = vms->memmap[VIRT_FLASH].size / 2;
     hwaddr flashbase = vms->memmap[VIRT_FLASH].base;
+    int64_t realsize;
+    BlockBackend *blk;

-    virt_flash_map1(vms->flash[0], flashbase, flashsize,
+    realsize = flashsize;
+    blk = pflash_cfi01_get_blk(vms->flash[0]);
+    if (blk) {
+        realsize = blk_getlength(blk);
+        realsize = realsize < flashsize ? realsize : flashsize;
+    }
+
+    virt_flash_map1(vms->flash[0], flashbase, realsize,
                     secure_sysmem);
-    virt_flash_map1(vms->flash[1], flashbase + flashsize, flashsize,
+
+    realsize = flashsize;
+    blk = pflash_cfi01_get_blk(vms->flash[1]);
+    if (blk) {
+        realsize = blk_getlength(blk);
+        realsize = realsize < flashsize ? realsize : flashsize;
+    }
+
+    virt_flash_map1(vms->flash[1], flashbase + flashsize, realsize,
                     sysmem);
 }

--
2.23.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] hw/arm/virt: use pflash image real size when mapping
  2020-09-18 12:26 [PATCH] hw/arm/virt: use pflash image real size when mapping haibinzhang(张海斌)
@ 2020-09-18 13:41 ` Philippe Mathieu-Daudé
  2020-09-19 10:03   ` haibinzhang(张海斌)
                     ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-09-18 13:41 UTC (permalink / raw)
  To: haibinzhang(张海斌), Peter Maydell,
	qemu-arm@nongnu.org
  Cc: Laszlo Ersek, Leif Lindholm, Ard Biesheuvel,
	qemu-devel@nongnu.org, Stefan Hajnoczi

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=gbk, Size: 2366 bytes --]

Cc'ing firmware experts.

On 9/18/20 2:26 PM, haibinzhang(张海斌) wrote:
> Default size of arm-virt pflash image is 64MB which
> will cost extra 128MB(64MBx2) memory per qemu process
> and 12.5GB for 100 qemu processes. Host memory is
> precious and it is valuable to reduce pflash image size.
> For compatibility arm-virt uses real size when mapping.

Flash#0 is a device because eventually its model will handle
sector/block protection, so firmware can do CapsuleUpdate
(updating itself). Meanwhile you could treat flash#0 as a pure
ROM device... But this wouldn't be the 'arm-virt' machine anymore.

> 
> Signed-off-by: Haibin Zhang <haibinzhang@tencent.com>
> ---
>  hw/arm/virt.c | 22 ++++++++++++++++++++--
>  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index acf9bfbece..3545e12865 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -50,6 +50,7 @@
>  #include "sysemu/sysemu.h"
>  #include "sysemu/tpm.h"
>  #include "sysemu/kvm.h"
> +#include "sysemu/block-backend.h"
>  #include "hw/loader.h"
>  #include "exec/address-spaces.h"
>  #include "qemu/bitops.h"
> @@ -1001,10 +1002,27 @@ static void virt_flash_map(VirtMachineState *vms,
>       */
>      hwaddr flashsize = vms->memmap[VIRT_FLASH].size / 2;
>      hwaddr flashbase = vms->memmap[VIRT_FLASH].base;
> +    int64_t realsize;
> +    BlockBackend *blk;
> 
> -    virt_flash_map1(vms->flash[0], flashbase, flashsize,
> +    realsize = flashsize;
> +    blk = pflash_cfi01_get_blk(vms->flash[0]);
> +    if (blk) {
> +        realsize = blk_getlength(blk);
> +        realsize = realsize < flashsize ? realsize : flashsize;
> +    }

Stefan recently posted "nvdimm: read-only file support" which
might be a better way to achieve what you want:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg741137.html

> +
> +    virt_flash_map1(vms->flash[0], flashbase, realsize,
>                      secure_sysmem);
> -    virt_flash_map1(vms->flash[1], flashbase + flashsize, flashsize,
> +
> +    realsize = flashsize;
> +    blk = pflash_cfi01_get_blk(vms->flash[1]);
> +    if (blk) {
> +        realsize = blk_getlength(blk);
> +        realsize = realsize < flashsize ? realsize : flashsize;
> +    }
> +
> +    virt_flash_map1(vms->flash[1], flashbase + flashsize, realsize,
>                      sysmem);
>  }
> 
> --
> 2.23.0
> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] hw/arm/virt: use pflash image real size when mapping
  2020-09-18 13:41 ` Philippe Mathieu-Daudé
@ 2020-09-19 10:03   ` haibinzhang(张海斌)
  2020-09-21  5:34   ` haibinzhang(张海斌)
  2020-09-22  6:57   ` Laszlo Ersek
  2 siblings, 0 replies; 6+ messages in thread
From: haibinzhang(张海斌) @ 2020-09-19 10:03 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Peter Maydell, Stefan Hajnoczi, qemu-devel@nongnu.org,
	qemu-arm@nongnu.org, Ard Biesheuvel, Leif Lindholm, Laszlo Ersek

[-- Attachment #1: Type: text/plain, Size: 3844 bytes --]



On Sep 18, 2020, at 9:41 PM, Philippe Mathieu-Daudé <philmd@redhat.com<mailto:philmd@redhat.com>> wrote:

Cc'ing firmware experts.

On 9/18/20 2:26 PM, haibinzhang(寮犳捣鏂? wrote:
Default size of arm-virt pflash image is 64MB which
will cost extra 128MB(64MBx2) memory per qemu process
and 12.5GB for 100 qemu processes. Host memory is
precious and it is valuable to reduce pflash image size.
For compatibility arm-virt uses real size when mapping.

Flash#0 is a device because eventually its model will handle
sector/block protection, so firmware can do CapsuleUpdate
(updating itself). Meanwhile you could treat flash#0 as a pure
ROM device... But this wouldn't be the 'arm-virt' machine anymore.


Example:
1. Get QEMU_EFI.fd and QEMU_VARS.fd from tianocore/edk2

2. Make pflash images
  dd if=/dev/zero bs=1M count=64 of=flash0.img
  dd if=/dev/zero bs=1M count=64 of=flash1.img
  dd if=QEMU_EFI.fd bs=1M of=flash0.img conv=notrunc
  dd if=QEMU_VARS.fd bs=1M of=flash1.img conv=notrunc

3. Start VM
  qemu-system-aarch64 -machine virt,accel=kvm,gic-version=3 \
  -drive file=flash0.img,if=pflash,format=raw,unit=0,readonly=on \
  -drive file=flash1.img,if=pflash,format=raw,unit=1 \
  …

In virt machine, VIRT_FLASH size is fixed 128MB (fixed 64MB for Flash0, fixed 64MB for Flash1).
Flash0 and Flash1 are two Block Backend devices and will be copied into two memory storages alloced
in virt_flash_map, not file mapping. Size of memory storage is fixed 64MB.

Since size checking, virt machine currently doesn’t support <64MB pflash images. So, get real
size of pflash image first, and use real size to alloc memory storage.

I always use 8MB Flash0 and Flash1, using following commands
  dd if=/dev/zero bs=1M count=8 of=flash0.img
  dd if=/dev/zero bs=1M count=8 of=flash1.img
  dd if=QEMU_EFI.fd bs=1M of=flash0.img conv=notrunc
  dd if=QEMU_VARS.fd bs=1M of=flash1.img conv=notrunc


Signed-off-by: Haibin Zhang <haibinzhang@tencent.com<mailto:haibinzhang@tencent.com>>
---
hw/arm/virt.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index acf9bfbece..3545e12865 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -50,6 +50,7 @@
#include "sysemu/sysemu.h"
#include "sysemu/tpm.h"
#include "sysemu/kvm.h"
+#include "sysemu/block-backend.h"
#include "hw/loader.h"
#include "exec/address-spaces.h"
#include "qemu/bitops.h"
@@ -1001,10 +1002,27 @@ static void virt_flash_map(VirtMachineState *vms,
     */
    hwaddr flashsize = vms->memmap[VIRT_FLASH].size / 2;
    hwaddr flashbase = vms->memmap[VIRT_FLASH].base;
+    int64_t realsize;
+    BlockBackend *blk;

-    virt_flash_map1(vms->flash[0], flashbase, flashsize,
+    realsize = flashsize;
+    blk = pflash_cfi01_get_blk(vms->flash[0]);
+    if (blk) {
+        realsize = blk_getlength(blk);
+        realsize = realsize < flashsize ? realsize : flashsize;
+    }

Stefan recently posted "nvdimm: read-only file support" which
might be a better way to achieve what you want:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg741137.html


Flash0 is read-only and shared by all VMs, but Flash1 is not and private for each VM.

Btw., how to create a nvdimm device mapping to address range 0~128MB?

+
+    virt_flash_map1(vms->flash[0], flashbase, realsize,
                    secure_sysmem);
-    virt_flash_map1(vms->flash[1], flashbase + flashsize, flashsize,
+
+    realsize = flashsize;
+    blk = pflash_cfi01_get_blk(vms->flash[1]);
+    if (blk) {
+        realsize = blk_getlength(blk);
+        realsize = realsize < flashsize ? realsize : flashsize;
+    }
+
+    virt_flash_map1(vms->flash[1], flashbase + flashsize, realsize,
                    sysmem);
}

--
2.23.0


[-- Attachment #2: Type: text/html, Size: 17584 bytes --]

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] hw/arm/virt: use pflash image real size when mapping
  2020-09-18 13:41 ` Philippe Mathieu-Daudé
  2020-09-19 10:03   ` haibinzhang(张海斌)
@ 2020-09-21  5:34   ` haibinzhang(张海斌)
  2020-09-22  6:57   ` Laszlo Ersek
  2 siblings, 0 replies; 6+ messages in thread
From: haibinzhang(张海斌) @ 2020-09-21  5:34 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Peter Maydell, xtay.haibin@gmail.com, Stefan Hajnoczi,
	qemu-devel@nongnu.org, qemu-arm@nongnu.org, Ard Biesheuvel,
	Leif Lindholm, Laszlo Ersek

Resend the mail using plain text format

> On Sep 18, 2020, at 9:41 PM, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> 
> Cc'ing firmware experts.
> 
> On 9/18/20 2:26 PM, haibinzhang(寮犳捣鏂? wrote:
>> Default size of arm-virt pflash image is 64MB which
>> will cost extra 128MB(64MBx2) memory per qemu process
>> and 12.5GB for 100 qemu processes. Host memory is
>> precious and it is valuable to reduce pflash image size.
>> For compatibility arm-virt uses real size when mapping.
> 
> Flash#0 is a device because eventually its model will handle
> sector/block protection, so firmware can do CapsuleUpdate
> (updating itself). Meanwhile you could treat flash#0 as a pure
> ROM device... But this wouldn't be the 'arm-virt' machine anymore.
> 

But Flash#0/#1 are corresponding to two rom MemoryRegions related to memory cost.

Example:
1. Get QEMU_EFI.fd and QEMU_VARS.fd from tianocore/edk2

2. Make pflash images
  dd if=/dev/zero bs=1M count=64 of=flash0.img
  dd if=/dev/zero bs=1M count=64 of=flash1.img
  dd if=QEMU_EFI.fd bs=1M of=flash0.img conv=notrunc
  dd if=QEMU_VARS.fd bs=1M of=flash1.img conv=notrunc

3. Start VM
  qemu-system-aarch64 -machine virt,accel=kvm,gic-version=3 \
  -drive file=flash0.img,if=pflash,format=raw,unit=0,readonly=on \
  -drive file=flash1.img,if=pflash,format=raw,unit=1 \
  …

In virt machine, VIRT_FLASH size is fixed 128MB (fixed 64MB for Flash0, fixed 64MB for Flash1).
Flash0 and Flash1 are two Block Backend devices and will be copied into two memory storages alloced 
in virt_flash_map, not file mapping. Size of memory storage is fixed 64MB.

Since size checking, virt machine currently doesn’t support <64MB pflash images. So, get real
size of pflash image first, and use real size to alloc memory storage.

I always use 8MB Flash0 and Flash1, using following commands
  dd if=/dev/zero bs=1M count=8 of=flash0.img
  dd if=/dev/zero bs=1M count=8 of=flash1.img
  dd if=QEMU_EFI.fd bs=1M of=flash0.img conv=notrunc
  dd if=QEMU_VARS.fd bs=1M of=flash1.img conv=notrunc

>> 
>> Signed-off-by: Haibin Zhang <haibinzhang@tencent.com>
>> ---
>> hw/arm/virt.c | 22 ++++++++++++++++++++--
>> 1 file changed, 20 insertions(+), 2 deletions(-)
>> 
>> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
>> index acf9bfbece..3545e12865 100644
>> --- a/hw/arm/virt.c
>> +++ b/hw/arm/virt.c
>> @@ -50,6 +50,7 @@
>> #include "sysemu/sysemu.h"
>> #include "sysemu/tpm.h"
>> #include "sysemu/kvm.h"
>> +#include "sysemu/block-backend.h"
>> #include "hw/loader.h"
>> #include "exec/address-spaces.h"
>> #include "qemu/bitops.h"
>> @@ -1001,10 +1002,27 @@ static void virt_flash_map(VirtMachineState *vms,
>>      */
>>     hwaddr flashsize = vms->memmap[VIRT_FLASH].size / 2;
>>     hwaddr flashbase = vms->memmap[VIRT_FLASH].base;
>> +    int64_t realsize;
>> +    BlockBackend *blk;
>> 
>> -    virt_flash_map1(vms->flash[0], flashbase, flashsize,
>> +    realsize = flashsize;
>> +    blk = pflash_cfi01_get_blk(vms->flash[0]);
>> +    if (blk) {
>> +        realsize = blk_getlength(blk);
>> +        realsize = realsize < flashsize ? realsize : flashsize;
>> +    }
> 
> Stefan recently posted "nvdimm: read-only file support" which
> might be a better way to achieve what you want:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg741137.html

Flash0 is read-only and shared by all VMs, but Flash1 is not and private for each VM.

Btw., how to create a nvdimm device mapping to address range 0~128MB?

> 
>> +
>> +    virt_flash_map1(vms->flash[0], flashbase, realsize,
>>                     secure_sysmem);
>> -    virt_flash_map1(vms->flash[1], flashbase + flashsize, flashsize,
>> +
>> +    realsize = flashsize;
>> +    blk = pflash_cfi01_get_blk(vms->flash[1]);
>> +    if (blk) {
>> +        realsize = blk_getlength(blk);
>> +        realsize = realsize < flashsize ? realsize : flashsize;
>> +    }
>> +
>> +    virt_flash_map1(vms->flash[1], flashbase + flashsize, realsize,
>>                     sysmem);
>> }
>> 
>> --
>> 2.23.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] hw/arm/virt: use pflash image real size when mapping
  2020-09-18 13:41 ` Philippe Mathieu-Daudé
  2020-09-19 10:03   ` haibinzhang(张海斌)
  2020-09-21  5:34   ` haibinzhang(张海斌)
@ 2020-09-22  6:57   ` Laszlo Ersek
  2 siblings, 0 replies; 6+ messages in thread
From: Laszlo Ersek @ 2020-09-22  6:57 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé,
	haibinzhang(张海斌), Peter Maydell,
	qemu-arm@nongnu.org
  Cc: Leif Lindholm, Ard Biesheuvel, qemu-devel@nongnu.org,
	Stefan Hajnoczi

On 09/18/20 15:41, Philippe Mathieu-Daudé wrote:
> Cc'ing firmware experts.
> 
> On 9/18/20 2:26 PM, haibinzhang(寮犳捣鏂�) wrote:
>> Default size of arm-virt pflash image is 64MB which
>> will cost extra 128MB(64MBx2) memory per qemu process
>> and 12.5GB for 100 qemu processes. Host memory is
>> precious and it is valuable to reduce pflash image size.
>> For compatibility arm-virt uses real size when mapping.
> 
> Flash#0 is a device because eventually its model will handle
> sector/block protection, so firmware can do CapsuleUpdate
> (updating itself). Meanwhile you could treat flash#0 as a pure
> ROM device... But this wouldn't be the 'arm-virt' machine anymore.
> 
>>
>> Signed-off-by: Haibin Zhang <haibinzhang@tencent.com>
>> ---
>>  hw/arm/virt.c | 22 ++++++++++++++++++++--
>>  1 file changed, 20 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
>> index acf9bfbece..3545e12865 100644
>> --- a/hw/arm/virt.c
>> +++ b/hw/arm/virt.c
>> @@ -50,6 +50,7 @@
>>  #include "sysemu/sysemu.h"
>>  #include "sysemu/tpm.h"
>>  #include "sysemu/kvm.h"
>> +#include "sysemu/block-backend.h"
>>  #include "hw/loader.h"
>>  #include "exec/address-spaces.h"
>>  #include "qemu/bitops.h"
>> @@ -1001,10 +1002,27 @@ static void virt_flash_map(VirtMachineState *vms,
>>       */
>>      hwaddr flashsize = vms->memmap[VIRT_FLASH].size / 2;
>>      hwaddr flashbase = vms->memmap[VIRT_FLASH].base;
>> +    int64_t realsize;
>> +    BlockBackend *blk;
>>
>> -    virt_flash_map1(vms->flash[0], flashbase, flashsize,
>> +    realsize = flashsize;
>> +    blk = pflash_cfi01_get_blk(vms->flash[0]);
>> +    if (blk) {
>> +        realsize = blk_getlength(blk);
>> +        realsize = realsize < flashsize ? realsize : flashsize;
>> +    }
> 
> Stefan recently posted "nvdimm: read-only file support" which
> might be a better way to achieve what you want:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg741137.html
> 
>> +
>> +    virt_flash_map1(vms->flash[0], flashbase, realsize,
>>                      secure_sysmem);
>> -    virt_flash_map1(vms->flash[1], flashbase + flashsize, flashsize,
>> +
>> +    realsize = flashsize;
>> +    blk = pflash_cfi01_get_blk(vms->flash[1]);
>> +    if (blk) {
>> +        realsize = blk_getlength(blk);
>> +        realsize = realsize < flashsize ? realsize : flashsize;
>> +    }
>> +
>> +    virt_flash_map1(vms->flash[1], flashbase + flashsize, realsize,
>>                      sysmem);
>>  }
>>
>> --
>> 2.23.0
>>
> 

We've been here before.

  [Qemu-devel] [RFC PATCH] hw/arm/virt: use variable size of flash device to save memory

  https://lists.gnu.org/archive/html/qemu-devel/2019-03/msg06773.html
  http://mid.mail-archive.com/20190325125142.11628-1-zhengxiang9@huawei.com

I don't have anything to add.

Laszlo



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-09-22  7:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-18 12:26 [PATCH] hw/arm/virt: use pflash image real size when mapping haibinzhang(张海斌)
2020-09-18 13:41 ` Philippe Mathieu-Daudé
2020-09-19 10:03   ` haibinzhang(张海斌)
2020-09-21  5:34   ` haibinzhang(张海斌)
2020-09-22  6:57   ` Laszlo Ersek
  -- strict thread matches above, loose matches on Subject: below --
2020-09-18 12:21 haibinzhang(张海斌)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).