qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases whe


From: Richard Henderson
Subject: Re: [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases when not necessary
Date: Thu, 25 Mar 2021 06:49:53 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1

On 3/25/21 6:09 AM, Philippe Mathieu-Daudé wrote:
When no mapping is requested, it is pointless to create
alias regions.
Only create them when multiple mappings are requested to
simplify the memory layout. The flatview is not changed.

For example using 'qemu-system-sh4 -M r2d -S -monitor stdio',

* before:

   (qemu) info mtree
   address-space: memory
     0000000000000000-ffffffffffffffff (prio 0, i/o): system
       0000000000000000-0000000000ffffff (prio 0, i/o): pflash
         0000000000000000-0000000000ffffff (prio 0, romd): alias pflash-alias 
@r2d.flash 0000000000000000-0000000000ffffff
       0000000004000000-000000000400003f (prio 0, i/o): r2d-fpga
       000000000c000000-000000000fffffff (prio 0, ram): r2d.sdram
   (qemu) info mtree -f
   FlatView #0
    AS "memory", root: system
    AS "cpu-memory-0", root: system
    Root memory region: system
     0000000000000000-0000000000ffffff (prio 0, romd): r2d.flash
     0000000004000000-000000000400003f (prio 0, i/o): r2d-fpga
     000000000c000000-000000000fffffff (prio 0, ram): r2d.sdram

* after:

   (qemu) info mtree
   address-space: memory
     0000000000000000-ffffffffffffffff (prio 0, i/o): system
       0000000000000000-0000000000ffffff (prio 0, romd): r2d.flash
       0000000004000000-000000000400003f (prio 0, i/o): r2d-fpga
       000000000c000000-000000000fffffff (prio 0, ram): r2d.sdram
   (qemu) info mtree -f
   FlatView #0
    AS "memory", root: system
    AS "cpu-memory-0", root: system
    Root memory region: system
     0000000000000000-0000000000ffffff (prio 0, romd): r2d.flash
     0000000004000000-000000000400003f (prio 0, i/o): r2d-fpga
     000000000c000000-000000000fffffff (prio 0, ram): r2d.sdram

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
  hw/block/pflash_cfi02.c | 8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)


Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 35e30bb812c..02c514fb6e0 100644
--- a/hw/block/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
@@ -917,8 +917,12 @@ static void pflash_cfi02_realize(DeviceState *dev, Error 
**errp)
      pfl->sector_erase_map = bitmap_new(pfl->total_sectors);
pfl->rom_mode = true;
-    pflash_setup_mappings(pfl);
-    sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem);
+    if (pfl->mappings > 1) {
+        pflash_setup_mappings(pfl);
+        sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem);
+    } else {
+        sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->orig_mem);
+    }
timer_init_ns(&pfl->timer, QEMU_CLOCK_VIRTUAL, pflash_timer, pfl);
      pfl->status = 0;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]