qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH-for-6.1 0/2] hw/block/pflash_cfi02: Do not create aliases when not necessary
@ 2021-03-25 12:09 Philippe Mathieu-Daudé
  2021-03-25 12:09 ` [PATCH-for-6.1 1/2] hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize() Philippe Mathieu-Daudé
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-25 12:09 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Philippe Mathieu-Daudé,
	Philippe Mathieu-Daudé,
	qemu-block, Max Reitz

Simplify memory layout when no pflash_cfi02 mapping requested.
For example using the r2d machine:

  (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
  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

Philippe Mathieu-Daud=C3=A9 (2):
  hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize()
  hw/block/pflash_cfi02: Do not create aliases when not necessary

 hw/block/pflash_cfi02.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

--=20
2.26.2



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

* [PATCH-for-6.1 1/2] hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize()
  2021-03-25 12:09 [PATCH-for-6.1 0/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
@ 2021-03-25 12:09 ` Philippe Mathieu-Daudé
  2021-03-25 12:47   ` Richard Henderson
  2021-03-25 12:09 ` [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
  2021-04-19  9:26 ` [PATCH-for-6.1 0/2] " Philippe Mathieu-Daudé
  2 siblings, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-25 12:09 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Philippe Mathieu-Daudé,
	Philippe Mathieu-Daudé,
	qemu-block, Max Reitz

The ROMD mode isn't related to mapping setup.
Ideally we'd set this mode when the state machine resets,
but for now simply move it to pflash_cfi02_realize() to
not introduce logical change.

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

diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c
index 25c053693ce..35e30bb812c 100644
--- a/hw/block/pflash_cfi02.c
+++ b/hw/block/pflash_cfi02.c
@@ -173,7 +173,6 @@ static void pflash_setup_mappings(PFlashCFI02 *pfl)
                                  "pflash-alias", &pfl->orig_mem, 0, size);
         memory_region_add_subregion(&pfl->mem, i * size, &pfl->mem_mappings[i]);
     }
-    pfl->rom_mode = true;
 }
 
 static void pflash_reset_state_machine(PFlashCFI02 *pfl)
@@ -917,6 +916,7 @@ static void pflash_cfi02_realize(DeviceState *dev, Error **errp)
     /* Allocate memory for a bitmap for sectors being erased. */
     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);
 
-- 
2.26.2



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

* [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases when not necessary
  2021-03-25 12:09 [PATCH-for-6.1 0/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
  2021-03-25 12:09 ` [PATCH-for-6.1 1/2] hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize() Philippe Mathieu-Daudé
@ 2021-03-25 12:09 ` Philippe Mathieu-Daudé
  2021-03-25 12:49   ` Richard Henderson
  2021-04-19  9:26 ` [PATCH-for-6.1 0/2] " Philippe Mathieu-Daudé
  2 siblings, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-03-25 12:09 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Philippe Mathieu-Daudé,
	Philippe Mathieu-Daudé,
	qemu-block, Max Reitz

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(-)

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;
-- 
2.26.2



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

* Re: [PATCH-for-6.1 1/2] hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize()
  2021-03-25 12:09 ` [PATCH-for-6.1 1/2] hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize() Philippe Mathieu-Daudé
@ 2021-03-25 12:47   ` Richard Henderson
  0 siblings, 0 replies; 6+ messages in thread
From: Richard Henderson @ 2021-03-25 12:47 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Kevin Wolf, Philippe Mathieu-Daudé, qemu-block, Max Reitz

On 3/25/21 6:09 AM, Philippe Mathieu-Daudé wrote:
> The ROMD mode isn't related to mapping setup.
> Ideally we'd set this mode when the state machine resets,
> but for now simply move it to pflash_cfi02_realize() to
> not introduce logical change.
> 
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
>   hw/block/pflash_cfi02.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

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

r~



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

* Re: [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases when not necessary
  2021-03-25 12:09 ` [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
@ 2021-03-25 12:49   ` Richard Henderson
  0 siblings, 0 replies; 6+ messages in thread
From: Richard Henderson @ 2021-03-25 12:49 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Kevin Wolf, Philippe Mathieu-Daudé, qemu-block, Max Reitz

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;
> 



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

* Re: [PATCH-for-6.1 0/2] hw/block/pflash_cfi02: Do not create aliases when not necessary
  2021-03-25 12:09 [PATCH-for-6.1 0/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
  2021-03-25 12:09 ` [PATCH-for-6.1 1/2] hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize() Philippe Mathieu-Daudé
  2021-03-25 12:09 ` [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
@ 2021-04-19  9:26 ` Philippe Mathieu-Daudé
  2 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-04-19  9:26 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel; +Cc: Kevin Wolf, qemu-block, Max Reitz

On 3/25/21 1:09 PM, Philippe Mathieu-Daudé wrote:
> Simplify memory layout when no pflash_cfi02 mapping requested.

> Philippe Mathieu-Daud=C3=A9 (2):
>   hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize()
>   hw/block/pflash_cfi02: Do not create aliases when not necessary

Thanks, series applied to pflash-next tree.



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

end of thread, other threads:[~2021-04-19  9:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-25 12:09 [PATCH-for-6.1 0/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
2021-03-25 12:09 ` [PATCH-for-6.1 1/2] hw/block/pflash_cfi02: Set romd mode in pflash_cfi02_realize() Philippe Mathieu-Daudé
2021-03-25 12:47   ` Richard Henderson
2021-03-25 12:09 ` [PATCH-for-6.1 2/2] hw/block/pflash_cfi02: Do not create aliases when not necessary Philippe Mathieu-Daudé
2021-03-25 12:49   ` Richard Henderson
2021-04-19  9:26 ` [PATCH-for-6.1 0/2] " Philippe Mathieu-Daudé

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).