qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v3] hw/dma/pl330: Add memory region to replace default


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v3] hw/dma/pl330: Add memory region to replace default
Date: Mon, 16 Aug 2021 12:41:00 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

On 8/16/21 12:24 PM, Wen, Jianxian wrote:
> PL330 needs a memory region which can connect with SMMU IOMMU region to 
> support SMMU translate.
> 
> Signed-off-by: Jianxian Wen <jianxian.wen@verisilicon.com>
> ---
> Changes v1 -> v2 (after review of Peter Maydell):
>  - Use the dma_memory_read/dma_memory_write functions, update function 
> AddressSpace* parameter.
> Changes v2 -> v3 (after review of Philippe Mathieu-Daudé):
>  - Refine code to comply with code style, update error message if memory link 
> is not set.
> 
>  hw/arm/exynos4210.c  |  3 +++
>  hw/arm/xilinx_zynq.c |  3 +++
>  hw/dma/pl330.c       | 20 ++++++++++++++++----
>  3 files changed, 22 insertions(+), 4 deletions(-)

> @@ -1562,6 +1565,12 @@ static void pl330_realize(DeviceState *dev, Error 
> **errp)
>                            "dma", PL330_IOMEM_SIZE);
>      sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->iomem);
>  
> +    if (!s->mem_mr) {
> +        error_setg(errp, "'memory' link is not set");
> +        return;
> +    }
> +    address_space_init(&s->mem_as, s->mem_mr, "pl330");

So when multiple controllers are created, this makes the 'info mtree'
output longer, all AS named similarly:

./qemu-system-arm -M smdkc210 -S -monitor stdio
QEMU 6.0.93 monitor - type 'help' for more information
(qemu) info mtree
address-space: memory
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom
    0000000002000000-000000000200ffff (prio 0, rom): alias
exynos4210.irom_alias @exynos4210.irom 0000000000000000-000000000000ffff
    0000000002020000-000000000203ffff (prio 0, ram): exynos4210.iram
    0000000005000000-00000000050000ff (prio 0, i/o): lan9118-mmio
    0000000010000000-0000000010000007 (prio 0, i/o): exynos4210.chipid
    0000000010020000-0000000010023d0b (prio 0, i/o): exynos4210.pmu
    0000000010030000-0000000010045103 (prio 0, i/o): exynos4210.clk
    0000000010050000-0000000010050443 (prio 0, i/o): exynos4210-mct
    0000000010070000-00000000100700ff (prio 0, i/o): exynos4210-rtc
    0000000010440000-0000000010440107 (prio 0, i/o): exynos4210-combiner
    0000000010448000-0000000010448107 (prio 0, i/o): exynos4210-combiner
    0000000010480000-000000001048ffff (prio 0, i/o):
exynos4210-cpu-container
      0000000010480000-00000000104800ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu0 @gic_cpu 0000000000000000-00000000000000ff
      0000000010488000-00000000104880ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu1 @gic_cpu 0000000000000000-00000000000000ff
    0000000010490000-000000001049ffff (prio 0, i/o):
exynos4210-dist-container
      0000000010490000-0000000010490fff (prio 0, i/o): alias
exynos4210-gic-alias_dist0 @gic_dist 0000000000000000-0000000000000fff
      0000000010498000-0000000010498fff (prio 0, i/o): alias
exynos4210-gic-alias_dist1 @gic_dist 0000000000000000-0000000000000fff
    0000000010500000-0000000010501fff (prio 0, i/o): a9mp-priv-container
      0000000010500000-00000000105000ff (prio 0, i/o): a9-scu
      0000000010500100-00000000105001ff (prio 0, i/o): gic_cpu
      0000000010500200-000000001050021f (prio 0, i/o): a9gtimer shared
      0000000010500600-000000001050061f (prio 0, i/o): arm_mptimer_timer
      0000000010500620-000000001050063f (prio 0, i/o): arm_mptimer_timer
      0000000010501000-0000000010501fff (prio 0, i/o): gic_dist
    0000000010502000-0000000010502fff (prio 0, i/o): l2x0_cc
    0000000010830400-00000000108305ff (prio 0, i/o): exynos4210.rng
    0000000011c00000-0000000011c04113 (prio 0, i/o): exynos4210.fimd
    0000000012510000-00000000125100ff (prio 0, i/o): sdhci
    0000000012520000-00000000125200ff (prio 0, i/o): sdhci
    0000000012530000-00000000125300ff (prio 0, i/o): sdhci
    0000000012540000-00000000125400ff (prio 0, i/o): sdhci
    0000000012580000-0000000012580fff (prio 0, i/o): ehci
      0000000012580000-000000001258000f (prio 0, i/o): capabilities
      0000000012580010-0000000012580053 (prio 0, i/o): operational
      0000000012580054-000000001258006b (prio 0, i/o): ports
    0000000012680000-0000000012680fff (prio 0, i/o): dma
    0000000012690000-0000000012690fff (prio 0, i/o): dma
    0000000012850000-0000000012850fff (prio 0, i/o): dma
    0000000013800000-000000001380003b (prio 0, i/o): exynos4210.uart
    0000000013810000-000000001381003b (prio 0, i/o): exynos4210.uart
    0000000013820000-000000001382003b (prio 0, i/o): exynos4210.uart
    0000000013830000-000000001383003b (prio 0, i/o): exynos4210.uart
    0000000013860000-0000000013860013 (prio 0, i/o): exynos4210.i2c
    0000000013870000-0000000013870013 (prio 0, i/o): exynos4210.i2c
    0000000013880000-0000000013880013 (prio 0, i/o): exynos4210.i2c
    0000000013890000-0000000013890013 (prio 0, i/o): exynos4210.i2c
    00000000138a0000-00000000138a0013 (prio 0, i/o): exynos4210.i2c
    00000000138b0000-00000000138b0013 (prio 0, i/o): exynos4210.i2c
    00000000138c0000-00000000138c0013 (prio 0, i/o): exynos4210.i2c
    00000000138d0000-00000000138d0013 (prio 0, i/o): exynos4210.i2c
    00000000138e0000-00000000138e0013 (prio 0, i/o): exynos4210.i2c
    00000000139d0000-00000000139d004f (prio 0, i/o): exynos4210-pwm
    0000000040000000-000000007fffffff (prio 0, ram): exynos4210.dram0

address-space: I/O
  0000000000000000-000000000000ffff (prio 0, i/o): io

address-space: cpu-memory-0
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom
    0000000002000000-000000000200ffff (prio 0, rom): alias
exynos4210.irom_alias @exynos4210.irom 0000000000000000-000000000000ffff
    0000000002020000-000000000203ffff (prio 0, ram): exynos4210.iram
    0000000005000000-00000000050000ff (prio 0, i/o): lan9118-mmio
    0000000010000000-0000000010000007 (prio 0, i/o): exynos4210.chipid
    0000000010020000-0000000010023d0b (prio 0, i/o): exynos4210.pmu
    0000000010030000-0000000010045103 (prio 0, i/o): exynos4210.clk
    0000000010050000-0000000010050443 (prio 0, i/o): exynos4210-mct
    0000000010070000-00000000100700ff (prio 0, i/o): exynos4210-rtc
    0000000010440000-0000000010440107 (prio 0, i/o): exynos4210-combiner
    0000000010448000-0000000010448107 (prio 0, i/o): exynos4210-combiner
    0000000010480000-000000001048ffff (prio 0, i/o):
exynos4210-cpu-container
      0000000010480000-00000000104800ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu0 @gic_cpu 0000000000000000-00000000000000ff
      0000000010488000-00000000104880ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu1 @gic_cpu 0000000000000000-00000000000000ff
    0000000010490000-000000001049ffff (prio 0, i/o):
exynos4210-dist-container
      0000000010490000-0000000010490fff (prio 0, i/o): alias
exynos4210-gic-alias_dist0 @gic_dist 0000000000000000-0000000000000fff
      0000000010498000-0000000010498fff (prio 0, i/o): alias
exynos4210-gic-alias_dist1 @gic_dist 0000000000000000-0000000000000fff
    0000000010500000-0000000010501fff (prio 0, i/o): a9mp-priv-container
      0000000010500000-00000000105000ff (prio 0, i/o): a9-scu
      0000000010500100-00000000105001ff (prio 0, i/o): gic_cpu
      0000000010500200-000000001050021f (prio 0, i/o): a9gtimer shared
      0000000010500600-000000001050061f (prio 0, i/o): arm_mptimer_timer
      0000000010500620-000000001050063f (prio 0, i/o): arm_mptimer_timer
      0000000010501000-0000000010501fff (prio 0, i/o): gic_dist
    0000000010502000-0000000010502fff (prio 0, i/o): l2x0_cc
    0000000010830400-00000000108305ff (prio 0, i/o): exynos4210.rng
    0000000011c00000-0000000011c04113 (prio 0, i/o): exynos4210.fimd
    0000000012510000-00000000125100ff (prio 0, i/o): sdhci
    0000000012520000-00000000125200ff (prio 0, i/o): sdhci
    0000000012530000-00000000125300ff (prio 0, i/o): sdhci
    0000000012540000-00000000125400ff (prio 0, i/o): sdhci
    0000000012580000-0000000012580fff (prio 0, i/o): ehci
      0000000012580000-000000001258000f (prio 0, i/o): capabilities
      0000000012580010-0000000012580053 (prio 0, i/o): operational
      0000000012580054-000000001258006b (prio 0, i/o): ports
    0000000012680000-0000000012680fff (prio 0, i/o): dma
    0000000012690000-0000000012690fff (prio 0, i/o): dma
    0000000012850000-0000000012850fff (prio 0, i/o): dma
    0000000013800000-000000001380003b (prio 0, i/o): exynos4210.uart
    0000000013810000-000000001381003b (prio 0, i/o): exynos4210.uart
    0000000013820000-000000001382003b (prio 0, i/o): exynos4210.uart
    0000000013830000-000000001383003b (prio 0, i/o): exynos4210.uart
    0000000013860000-0000000013860013 (prio 0, i/o): exynos4210.i2c
    0000000013870000-0000000013870013 (prio 0, i/o): exynos4210.i2c
    0000000013880000-0000000013880013 (prio 0, i/o): exynos4210.i2c
    0000000013890000-0000000013890013 (prio 0, i/o): exynos4210.i2c
    00000000138a0000-00000000138a0013 (prio 0, i/o): exynos4210.i2c
    00000000138b0000-00000000138b0013 (prio 0, i/o): exynos4210.i2c
    00000000138c0000-00000000138c0013 (prio 0, i/o): exynos4210.i2c
    00000000138d0000-00000000138d0013 (prio 0, i/o): exynos4210.i2c
    00000000138e0000-00000000138e0013 (prio 0, i/o): exynos4210.i2c
    00000000139d0000-00000000139d004f (prio 0, i/o): exynos4210-pwm
    0000000040000000-000000007fffffff (prio 0, ram): exynos4210.dram0

address-space: cpu-memory-1
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom
    0000000002000000-000000000200ffff (prio 0, rom): alias
exynos4210.irom_alias @exynos4210.irom 0000000000000000-000000000000ffff
    0000000002020000-000000000203ffff (prio 0, ram): exynos4210.iram
    0000000005000000-00000000050000ff (prio 0, i/o): lan9118-mmio
    0000000010000000-0000000010000007 (prio 0, i/o): exynos4210.chipid
    0000000010020000-0000000010023d0b (prio 0, i/o): exynos4210.pmu
    0000000010030000-0000000010045103 (prio 0, i/o): exynos4210.clk
    0000000010050000-0000000010050443 (prio 0, i/o): exynos4210-mct
    0000000010070000-00000000100700ff (prio 0, i/o): exynos4210-rtc
    0000000010440000-0000000010440107 (prio 0, i/o): exynos4210-combiner
    0000000010448000-0000000010448107 (prio 0, i/o): exynos4210-combiner
    0000000010480000-000000001048ffff (prio 0, i/o):
exynos4210-cpu-container
      0000000010480000-00000000104800ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu0 @gic_cpu 0000000000000000-00000000000000ff
      0000000010488000-00000000104880ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu1 @gic_cpu 0000000000000000-00000000000000ff
    0000000010490000-000000001049ffff (prio 0, i/o):
exynos4210-dist-container
      0000000010490000-0000000010490fff (prio 0, i/o): alias
exynos4210-gic-alias_dist0 @gic_dist 0000000000000000-0000000000000fff
      0000000010498000-0000000010498fff (prio 0, i/o): alias
exynos4210-gic-alias_dist1 @gic_dist 0000000000000000-0000000000000fff
    0000000010500000-0000000010501fff (prio 0, i/o): a9mp-priv-container
      0000000010500000-00000000105000ff (prio 0, i/o): a9-scu
      0000000010500100-00000000105001ff (prio 0, i/o): gic_cpu
      0000000010500200-000000001050021f (prio 0, i/o): a9gtimer shared
      0000000010500600-000000001050061f (prio 0, i/o): arm_mptimer_timer
      0000000010500620-000000001050063f (prio 0, i/o): arm_mptimer_timer
      0000000010501000-0000000010501fff (prio 0, i/o): gic_dist
    0000000010502000-0000000010502fff (prio 0, i/o): l2x0_cc
    0000000010830400-00000000108305ff (prio 0, i/o): exynos4210.rng
    0000000011c00000-0000000011c04113 (prio 0, i/o): exynos4210.fimd
    0000000012510000-00000000125100ff (prio 0, i/o): sdhci
    0000000012520000-00000000125200ff (prio 0, i/o): sdhci
    0000000012530000-00000000125300ff (prio 0, i/o): sdhci
    0000000012540000-00000000125400ff (prio 0, i/o): sdhci
    0000000012580000-0000000012580fff (prio 0, i/o): ehci
      0000000012580000-000000001258000f (prio 0, i/o): capabilities
      0000000012580010-0000000012580053 (prio 0, i/o): operational
      0000000012580054-000000001258006b (prio 0, i/o): ports
    0000000012680000-0000000012680fff (prio 0, i/o): dma
    0000000012690000-0000000012690fff (prio 0, i/o): dma
    0000000012850000-0000000012850fff (prio 0, i/o): dma
    0000000013800000-000000001380003b (prio 0, i/o): exynos4210.uart
    0000000013810000-000000001381003b (prio 0, i/o): exynos4210.uart
    0000000013820000-000000001382003b (prio 0, i/o): exynos4210.uart
    0000000013830000-000000001383003b (prio 0, i/o): exynos4210.uart
    0000000013860000-0000000013860013 (prio 0, i/o): exynos4210.i2c
    0000000013870000-0000000013870013 (prio 0, i/o): exynos4210.i2c
    0000000013880000-0000000013880013 (prio 0, i/o): exynos4210.i2c
    0000000013890000-0000000013890013 (prio 0, i/o): exynos4210.i2c
    00000000138a0000-00000000138a0013 (prio 0, i/o): exynos4210.i2c
    00000000138b0000-00000000138b0013 (prio 0, i/o): exynos4210.i2c
    00000000138c0000-00000000138c0013 (prio 0, i/o): exynos4210.i2c
    00000000138d0000-00000000138d0013 (prio 0, i/o): exynos4210.i2c
    00000000138e0000-00000000138e0013 (prio 0, i/o): exynos4210.i2c
    00000000139d0000-00000000139d004f (prio 0, i/o): exynos4210-pwm
    0000000040000000-000000007fffffff (prio 0, ram): exynos4210.dram0

address-space: pl330
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom
    0000000002000000-000000000200ffff (prio 0, rom): alias
exynos4210.irom_alias @exynos4210.irom 0000000000000000-000000000000ffff
    0000000002020000-000000000203ffff (prio 0, ram): exynos4210.iram
    0000000005000000-00000000050000ff (prio 0, i/o): lan9118-mmio
    0000000010000000-0000000010000007 (prio 0, i/o): exynos4210.chipid
    0000000010020000-0000000010023d0b (prio 0, i/o): exynos4210.pmu
    0000000010030000-0000000010045103 (prio 0, i/o): exynos4210.clk
    0000000010050000-0000000010050443 (prio 0, i/o): exynos4210-mct
    0000000010070000-00000000100700ff (prio 0, i/o): exynos4210-rtc
    0000000010440000-0000000010440107 (prio 0, i/o): exynos4210-combiner
    0000000010448000-0000000010448107 (prio 0, i/o): exynos4210-combiner
    0000000010480000-000000001048ffff (prio 0, i/o):
exynos4210-cpu-container
      0000000010480000-00000000104800ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu0 @gic_cpu 0000000000000000-00000000000000ff
      0000000010488000-00000000104880ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu1 @gic_cpu 0000000000000000-00000000000000ff
    0000000010490000-000000001049ffff (prio 0, i/o):
exynos4210-dist-container
      0000000010490000-0000000010490fff (prio 0, i/o): alias
exynos4210-gic-alias_dist0 @gic_dist 0000000000000000-0000000000000fff
      0000000010498000-0000000010498fff (prio 0, i/o): alias
exynos4210-gic-alias_dist1 @gic_dist 0000000000000000-0000000000000fff
    0000000010500000-0000000010501fff (prio 0, i/o): a9mp-priv-container
      0000000010500000-00000000105000ff (prio 0, i/o): a9-scu
      0000000010500100-00000000105001ff (prio 0, i/o): gic_cpu
      0000000010500200-000000001050021f (prio 0, i/o): a9gtimer shared
      0000000010500600-000000001050061f (prio 0, i/o): arm_mptimer_timer
      0000000010500620-000000001050063f (prio 0, i/o): arm_mptimer_timer
      0000000010501000-0000000010501fff (prio 0, i/o): gic_dist
    0000000010502000-0000000010502fff (prio 0, i/o): l2x0_cc
    0000000010830400-00000000108305ff (prio 0, i/o): exynos4210.rng
    0000000011c00000-0000000011c04113 (prio 0, i/o): exynos4210.fimd
    0000000012510000-00000000125100ff (prio 0, i/o): sdhci
    0000000012520000-00000000125200ff (prio 0, i/o): sdhci
    0000000012530000-00000000125300ff (prio 0, i/o): sdhci
    0000000012540000-00000000125400ff (prio 0, i/o): sdhci
    0000000012580000-0000000012580fff (prio 0, i/o): ehci
      0000000012580000-000000001258000f (prio 0, i/o): capabilities
      0000000012580010-0000000012580053 (prio 0, i/o): operational
      0000000012580054-000000001258006b (prio 0, i/o): ports
    0000000012680000-0000000012680fff (prio 0, i/o): dma
    0000000012690000-0000000012690fff (prio 0, i/o): dma
    0000000012850000-0000000012850fff (prio 0, i/o): dma
    0000000013800000-000000001380003b (prio 0, i/o): exynos4210.uart
    0000000013810000-000000001381003b (prio 0, i/o): exynos4210.uart
    0000000013820000-000000001382003b (prio 0, i/o): exynos4210.uart
    0000000013830000-000000001383003b (prio 0, i/o): exynos4210.uart
    0000000013860000-0000000013860013 (prio 0, i/o): exynos4210.i2c
    0000000013870000-0000000013870013 (prio 0, i/o): exynos4210.i2c
    0000000013880000-0000000013880013 (prio 0, i/o): exynos4210.i2c
    0000000013890000-0000000013890013 (prio 0, i/o): exynos4210.i2c
    00000000138a0000-00000000138a0013 (prio 0, i/o): exynos4210.i2c
    00000000138b0000-00000000138b0013 (prio 0, i/o): exynos4210.i2c
    00000000138c0000-00000000138c0013 (prio 0, i/o): exynos4210.i2c
    00000000138d0000-00000000138d0013 (prio 0, i/o): exynos4210.i2c
    00000000138e0000-00000000138e0013 (prio 0, i/o): exynos4210.i2c
    00000000139d0000-00000000139d004f (prio 0, i/o): exynos4210-pwm
    0000000040000000-000000007fffffff (prio 0, ram): exynos4210.dram0

address-space: pl330
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom
    0000000002000000-000000000200ffff (prio 0, rom): alias
exynos4210.irom_alias @exynos4210.irom 0000000000000000-000000000000ffff
    0000000002020000-000000000203ffff (prio 0, ram): exynos4210.iram
    0000000005000000-00000000050000ff (prio 0, i/o): lan9118-mmio
    0000000010000000-0000000010000007 (prio 0, i/o): exynos4210.chipid
    0000000010020000-0000000010023d0b (prio 0, i/o): exynos4210.pmu
    0000000010030000-0000000010045103 (prio 0, i/o): exynos4210.clk
    0000000010050000-0000000010050443 (prio 0, i/o): exynos4210-mct
    0000000010070000-00000000100700ff (prio 0, i/o): exynos4210-rtc
    0000000010440000-0000000010440107 (prio 0, i/o): exynos4210-combiner
    0000000010448000-0000000010448107 (prio 0, i/o): exynos4210-combiner
    0000000010480000-000000001048ffff (prio 0, i/o):
exynos4210-cpu-container
      0000000010480000-00000000104800ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu0 @gic_cpu 0000000000000000-00000000000000ff
      0000000010488000-00000000104880ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu1 @gic_cpu 0000000000000000-00000000000000ff
    0000000010490000-000000001049ffff (prio 0, i/o):
exynos4210-dist-container
      0000000010490000-0000000010490fff (prio 0, i/o): alias
exynos4210-gic-alias_dist0 @gic_dist 0000000000000000-0000000000000fff
      0000000010498000-0000000010498fff (prio 0, i/o): alias
exynos4210-gic-alias_dist1 @gic_dist 0000000000000000-0000000000000fff
    0000000010500000-0000000010501fff (prio 0, i/o): a9mp-priv-container
      0000000010500000-00000000105000ff (prio 0, i/o): a9-scu
      0000000010500100-00000000105001ff (prio 0, i/o): gic_cpu
      0000000010500200-000000001050021f (prio 0, i/o): a9gtimer shared
      0000000010500600-000000001050061f (prio 0, i/o): arm_mptimer_timer
      0000000010500620-000000001050063f (prio 0, i/o): arm_mptimer_timer
      0000000010501000-0000000010501fff (prio 0, i/o): gic_dist
    0000000010502000-0000000010502fff (prio 0, i/o): l2x0_cc
    0000000010830400-00000000108305ff (prio 0, i/o): exynos4210.rng
    0000000011c00000-0000000011c04113 (prio 0, i/o): exynos4210.fimd
    0000000012510000-00000000125100ff (prio 0, i/o): sdhci
    0000000012520000-00000000125200ff (prio 0, i/o): sdhci
    0000000012530000-00000000125300ff (prio 0, i/o): sdhci
    0000000012540000-00000000125400ff (prio 0, i/o): sdhci
    0000000012580000-0000000012580fff (prio 0, i/o): ehci
      0000000012580000-000000001258000f (prio 0, i/o): capabilities
      0000000012580010-0000000012580053 (prio 0, i/o): operational
      0000000012580054-000000001258006b (prio 0, i/o): ports
    0000000012680000-0000000012680fff (prio 0, i/o): dma
    0000000012690000-0000000012690fff (prio 0, i/o): dma
    0000000012850000-0000000012850fff (prio 0, i/o): dma
    0000000013800000-000000001380003b (prio 0, i/o): exynos4210.uart
    0000000013810000-000000001381003b (prio 0, i/o): exynos4210.uart
    0000000013820000-000000001382003b (prio 0, i/o): exynos4210.uart
    0000000013830000-000000001383003b (prio 0, i/o): exynos4210.uart
    0000000013860000-0000000013860013 (prio 0, i/o): exynos4210.i2c
    0000000013870000-0000000013870013 (prio 0, i/o): exynos4210.i2c
    0000000013880000-0000000013880013 (prio 0, i/o): exynos4210.i2c
    0000000013890000-0000000013890013 (prio 0, i/o): exynos4210.i2c
    00000000138a0000-00000000138a0013 (prio 0, i/o): exynos4210.i2c
    00000000138b0000-00000000138b0013 (prio 0, i/o): exynos4210.i2c
    00000000138c0000-00000000138c0013 (prio 0, i/o): exynos4210.i2c
    00000000138d0000-00000000138d0013 (prio 0, i/o): exynos4210.i2c
    00000000138e0000-00000000138e0013 (prio 0, i/o): exynos4210.i2c
    00000000139d0000-00000000139d004f (prio 0, i/o): exynos4210-pwm
    0000000040000000-000000007fffffff (prio 0, ram): exynos4210.dram0

address-space: pl330
  0000000000000000-ffffffffffffffff (prio 0, i/o): system
    0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom
    0000000002000000-000000000200ffff (prio 0, rom): alias
exynos4210.irom_alias @exynos4210.irom 0000000000000000-000000000000ffff
    0000000002020000-000000000203ffff (prio 0, ram): exynos4210.iram
    0000000005000000-00000000050000ff (prio 0, i/o): lan9118-mmio
    0000000010000000-0000000010000007 (prio 0, i/o): exynos4210.chipid
    0000000010020000-0000000010023d0b (prio 0, i/o): exynos4210.pmu
    0000000010030000-0000000010045103 (prio 0, i/o): exynos4210.clk
    0000000010050000-0000000010050443 (prio 0, i/o): exynos4210-mct
    0000000010070000-00000000100700ff (prio 0, i/o): exynos4210-rtc
    0000000010440000-0000000010440107 (prio 0, i/o): exynos4210-combiner
    0000000010448000-0000000010448107 (prio 0, i/o): exynos4210-combiner
    0000000010480000-000000001048ffff (prio 0, i/o):
exynos4210-cpu-container
      0000000010480000-00000000104800ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu0 @gic_cpu 0000000000000000-00000000000000ff
      0000000010488000-00000000104880ff (prio 0, i/o): alias
exynos4210-gic-alias_cpu1 @gic_cpu 0000000000000000-00000000000000ff
    0000000010490000-000000001049ffff (prio 0, i/o):
exynos4210-dist-container
      0000000010490000-0000000010490fff (prio 0, i/o): alias
exynos4210-gic-alias_dist0 @gic_dist 0000000000000000-0000000000000fff
      0000000010498000-0000000010498fff (prio 0, i/o): alias
exynos4210-gic-alias_dist1 @gic_dist 0000000000000000-0000000000000fff
    0000000010500000-0000000010501fff (prio 0, i/o): a9mp-priv-container
      0000000010500000-00000000105000ff (prio 0, i/o): a9-scu
      0000000010500100-00000000105001ff (prio 0, i/o): gic_cpu
      0000000010500200-000000001050021f (prio 0, i/o): a9gtimer shared
      0000000010500600-000000001050061f (prio 0, i/o): arm_mptimer_timer
      0000000010500620-000000001050063f (prio 0, i/o): arm_mptimer_timer
      0000000010501000-0000000010501fff (prio 0, i/o): gic_dist
    0000000010502000-0000000010502fff (prio 0, i/o): l2x0_cc
    0000000010830400-00000000108305ff (prio 0, i/o): exynos4210.rng
    0000000011c00000-0000000011c04113 (prio 0, i/o): exynos4210.fimd
    0000000012510000-00000000125100ff (prio 0, i/o): sdhci
    0000000012520000-00000000125200ff (prio 0, i/o): sdhci
    0000000012530000-00000000125300ff (prio 0, i/o): sdhci
    0000000012540000-00000000125400ff (prio 0, i/o): sdhci
    0000000012580000-0000000012580fff (prio 0, i/o): ehci
      0000000012580000-000000001258000f (prio 0, i/o): capabilities
      0000000012580010-0000000012580053 (prio 0, i/o): operational
      0000000012580054-000000001258006b (prio 0, i/o): ports
    0000000012680000-0000000012680fff (prio 0, i/o): dma
    0000000012690000-0000000012690fff (prio 0, i/o): dma
    0000000012850000-0000000012850fff (prio 0, i/o): dma
    0000000013800000-000000001380003b (prio 0, i/o): exynos4210.uart
    0000000013810000-000000001381003b (prio 0, i/o): exynos4210.uart
    0000000013820000-000000001382003b (prio 0, i/o): exynos4210.uart
    0000000013830000-000000001383003b (prio 0, i/o): exynos4210.uart
    0000000013860000-0000000013860013 (prio 0, i/o): exynos4210.i2c
    0000000013870000-0000000013870013 (prio 0, i/o): exynos4210.i2c
    0000000013880000-0000000013880013 (prio 0, i/o): exynos4210.i2c
    0000000013890000-0000000013890013 (prio 0, i/o): exynos4210.i2c
    00000000138a0000-00000000138a0013 (prio 0, i/o): exynos4210.i2c
    00000000138b0000-00000000138b0013 (prio 0, i/o): exynos4210.i2c
    00000000138c0000-00000000138c0013 (prio 0, i/o): exynos4210.i2c
    00000000138d0000-00000000138d0013 (prio 0, i/o): exynos4210.i2c
    00000000138e0000-00000000138e0013 (prio 0, i/o): exynos4210.i2c
    00000000139d0000-00000000139d004f (prio 0, i/o): exynos4210-pwm
    0000000040000000-000000007fffffff (prio 0, ram): exynos4210.dram0

memory-region: exynos4210.irom
  0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom

memory-region: gic_cpu
  0000000000000000-00000000000000ff (prio 0, i/o): gic_cpu

memory-region: gic_dist
  0000000000000000-0000000000000fff (prio 0, i/o): gic_dist

(qemu) info mtree -f
FlatView #0
 AS "I/O", root: io
 Root memory region: io
  0000000000000000-000000000000ffff (prio 0, i/o): io

FlatView #1
 AS "memory", root: system
 AS "cpu-memory-0", root: system
 AS "cpu-memory-1", root: system
 AS "pl330", root: system
 AS "pl330", root: system
 AS "pl330", root: system
 Root memory region: system
  0000000000000000-000000000000ffff (prio 0, rom): exynos4210.irom
  0000000002000000-000000000200ffff (prio 0, rom): exynos4210.irom
  0000000002020000-000000000203ffff (prio 0, ram): exynos4210.iram
  0000000005000000-00000000050000ff (prio 0, i/o): lan9118-mmio
  0000000010000000-0000000010000007 (prio 0, i/o): exynos4210.chipid
  0000000010020000-0000000010023d0b (prio 0, i/o): exynos4210.pmu
  0000000010030000-0000000010045103 (prio 0, i/o): exynos4210.clk
  0000000010050000-0000000010050443 (prio 0, i/o): exynos4210-mct
  0000000010070000-00000000100700ff (prio 0, i/o): exynos4210-rtc
  0000000010440000-0000000010440107 (prio 0, i/o): exynos4210-combiner
  0000000010448000-0000000010448107 (prio 0, i/o): exynos4210-combiner
  0000000010480000-00000000104800ff (prio 0, i/o): gic_cpu
  0000000010488000-00000000104880ff (prio 0, i/o): gic_cpu
  0000000010490000-0000000010490fff (prio 0, i/o): gic_dist
  0000000010498000-0000000010498fff (prio 0, i/o): gic_dist
  0000000010500000-00000000105000ff (prio 0, i/o): a9-scu
  0000000010500100-00000000105001ff (prio 0, i/o): gic_cpu
  0000000010500200-000000001050021f (prio 0, i/o): a9gtimer shared
  0000000010500600-000000001050061f (prio 0, i/o): arm_mptimer_timer
  0000000010500620-000000001050063f (prio 0, i/o): arm_mptimer_timer
  0000000010501000-0000000010501fff (prio 0, i/o): gic_dist
  0000000010502000-0000000010502fff (prio 0, i/o): l2x0_cc
  0000000010830400-00000000108305ff (prio 0, i/o): exynos4210.rng
  0000000011c00000-0000000011c04113 (prio 0, i/o): exynos4210.fimd
  0000000012510000-00000000125100ff (prio 0, i/o): sdhci
  0000000012520000-00000000125200ff (prio 0, i/o): sdhci
  0000000012530000-00000000125300ff (prio 0, i/o): sdhci
  0000000012540000-00000000125400ff (prio 0, i/o): sdhci
  0000000012580000-000000001258000f (prio 0, i/o): capabilities
  0000000012580010-0000000012580053 (prio 0, i/o): operational
  0000000012580054-000000001258006b (prio 0, i/o): ports
  0000000012680000-0000000012680fff (prio 0, i/o): dma
  0000000012690000-0000000012690fff (prio 0, i/o): dma
  0000000012850000-0000000012850fff (prio 0, i/o): dma
  0000000013800000-000000001380003b (prio 0, i/o): exynos4210.uart
  0000000013810000-000000001381003b (prio 0, i/o): exynos4210.uart
  0000000013820000-000000001382003b (prio 0, i/o): exynos4210.uart
  0000000013830000-000000001383003b (prio 0, i/o): exynos4210.uart
  0000000013860000-0000000013860013 (prio 0, i/o): exynos4210.i2c
  0000000013870000-0000000013870013 (prio 0, i/o): exynos4210.i2c
  0000000013880000-0000000013880013 (prio 0, i/o): exynos4210.i2c
  0000000013890000-0000000013890013 (prio 0, i/o): exynos4210.i2c
  00000000138a0000-00000000138a0013 (prio 0, i/o): exynos4210.i2c
  00000000138b0000-00000000138b0013 (prio 0, i/o): exynos4210.i2c
  00000000138c0000-00000000138c0013 (prio 0, i/o): exynos4210.i2c
  00000000138d0000-00000000138d0013 (prio 0, i/o): exynos4210.i2c
  00000000138e0000-00000000138e0013 (prio 0, i/o): exynos4210.i2c
  00000000139d0000-00000000139d004f (prio 0, i/o): exynos4210-pwm
  0000000040000000-000000007fffffff (prio 0, ram): exynos4210.dram0

'info mtree' is mostly for debugging, what matters is the flatview,
so no need to make the controller model more complex by adding an
'id' property (which would be useful for trace event btw).

AS are not QOM so we can not pass them via link property,
we have to use MR for that. So not much room to improve.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>



reply via email to

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