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