* [RFC PATCH] hw/misc: make the tz-ppc-port names more useful
@ 2025-12-15 17:05 Alex Bennée
2025-12-15 17:31 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 2+ messages in thread
From: Alex Bennée @ 2025-12-15 17:05 UTC (permalink / raw)
To: qemu-devel
Cc: Alex Bennée, Jim MacArthur, Peter Maydell,
open list:ARM PrimeCell and...
The TrustZone peripheral protection controller (tz-ppc) sits between
peripherals and the main system. However this results in "info mtree"
looking at bit confusing, especially as the sequence numbers can
overlap and miss steps:
0000000000000000-ffffffffffffffff (prio -2, i/o): system
0000000000000000-00000000003fffff (prio 0, i/o): tz-mpc-upstream
0000000000400000-00000000007fffff (prio 0, i/o): alias ssram-0-alias @tz-mpc-upstream 0000000000000000-00000000003fffff
0000000028000000-00000000281fffff (prio 0, i/o): tz-mpc-upstream
0000000028200000-00000000283fffff (prio 0, i/o): tz-mpc-upstream
0000000040080000-0000000040080fff (prio 0, i/o): iotkit-secctl-ns-regs
0000000040100000-0000000040100fff (prio 0, i/o): tz-ppc-port[1]
0000000040101000-0000000040101fff (prio 0, i/o): tz-ppc-port[2]
0000000040102000-0000000040102fff (prio 0, i/o): tz-ppc-port[3]
0000000040103000-0000000040103fff (prio 0, i/o): tz-ppc-port[4]
0000000040110000-0000000040110fff (prio 0, i/o): tz-ppc-port[0]
0000000040111000-0000000040111fff (prio 0, i/o): tz-ppc-port[1]
0000000040112000-0000000040112fff (prio 0, i/o): tz-ppc-port[2]
0000000040113000-0000000040113fff (prio 0, i/o): tz-ppc-port[3]
0000000040200000-0000000040200fff (prio 0, i/o): tz-ppc-port[5]
0000000040201000-0000000040201fff (prio 0, i/o): tz-ppc-port[6]
0000000040202000-0000000040202fff (prio 0, i/o): tz-ppc-port[7]
0000000040203000-0000000040203fff (prio 0, i/o): tz-ppc-port[8]
0000000040204000-0000000040204fff (prio 0, i/o): tz-ppc-port[9]
0000000040205000-0000000040205fff (prio 0, i/o): tz-ppc-port[0]
0000000040206000-0000000040206fff (prio 0, i/o): tz-ppc-port[1]
0000000040207000-0000000040207fff (prio 0, i/o): tz-ppc-port[10]
0000000040208000-0000000040208fff (prio 0, i/o): tz-ppc-port[11]
0000000040209000-0000000040209fff (prio 0, i/o): tz-ppc-port[2]
000000004020a000-000000004020afff (prio 0, i/o): tz-ppc-port[3]
000000004020b000-000000004020bfff (prio 0, i/o): tz-ppc-port[4]
000000004020c000-000000004020cfff (prio 0, i/o): tz-ppc-port[12]
000000004020d000-000000004020dfff (prio 0, i/o): tz-ppc-port[13]
0000000040300000-0000000040300fff (prio 0, i/o): tz-ppc-port[0]
0000000040301000-0000000040301fff (prio 0, i/o): tz-ppc-port[1]
0000000040302000-0000000040302fff (prio 0, i/o): tz-ppc-port[2]
0000000041000000-000000004113ffff (prio 0, i/o): tz-ppc-port[0]
0000000042000000-00000000420000ff (prio 0, i/o): tz-ppc-port[5]
0000000048007000-0000000048007fff (prio -1000, i/o): FPGA NS PC
0000000050080000-0000000050080fff (prio 0, i/o): iotkit-secctl-s-regs
0000000058007000-0000000058007fff (prio 0, i/o): tz-ppc-port[0]
0000000058008000-0000000058008fff (prio 0, i/o): tz-ppc-port[1]
0000000058009000-0000000058009fff (prio 0, i/o): tz-ppc-port[2]
0000000080000000-0000000080ffffff (prio 0, ram): mps.ram
So as a quality of life feature lets expose the name of the underlying
region so we get something more useful:
0000000000000000-ffffffffffffffff (prio -2, i/o): system
0000000000000000-00000000003fffff (prio 0, i/o): tz-mpc-upstream
0000000000400000-00000000007fffff (prio 0, i/o): alias ssram-0-alias @tz-mpc-upstream 0000000000000000-00000000003fffff
0000000028000000-00000000281fffff (prio 0, i/o): tz-mpc-upstream
0000000028200000-00000000283fffff (prio 0, i/o): tz-mpc-upstream
0000000040080000-0000000040080fff (prio 0, i/o): iotkit-secctl-ns-regs
0000000040100000-0000000040100fff (prio 0, i/o): tz-ppc-port[gpio0]
0000000040101000-0000000040101fff (prio 0, i/o): tz-ppc-port[gpio1]
0000000040102000-0000000040102fff (prio 0, i/o): tz-ppc-port[gpio2]
0000000040103000-0000000040103fff (prio 0, i/o): tz-ppc-port[gpio3]
0000000040110000-0000000040110fff (prio 0, i/o): tz-ppc-port[pl080]
0000000040111000-0000000040111fff (prio 0, i/o): tz-ppc-port[pl080]
0000000040112000-0000000040112fff (prio 0, i/o): tz-ppc-port[pl080]
0000000040113000-0000000040113fff (prio 0, i/o): tz-ppc-port[pl080]
0000000040200000-0000000040200fff (prio 0, i/o): tz-ppc-port[uart]
0000000040201000-0000000040201fff (prio 0, i/o): tz-ppc-port[uart]
0000000040202000-0000000040202fff (prio 0, i/o): tz-ppc-port[uart]
0000000040203000-0000000040203fff (prio 0, i/o): tz-ppc-port[uart]
0000000040204000-0000000040204fff (prio 0, i/o): tz-ppc-port[uart]
0000000040205000-0000000040205fff (prio 0, i/o): tz-ppc-port[pl022]
0000000040206000-0000000040206fff (prio 0, i/o): tz-ppc-port[pl022]
0000000040207000-0000000040207fff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
0000000040208000-0000000040208fff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
0000000040209000-0000000040209fff (prio 0, i/o): tz-ppc-port[pl022]
000000004020a000-000000004020afff (prio 0, i/o): tz-ppc-port[pl022]
000000004020b000-000000004020bfff (prio 0, i/o): tz-ppc-port[pl022]
000000004020c000-000000004020cfff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
000000004020d000-000000004020dfff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
0000000040300000-0000000040300fff (prio 0, i/o): tz-ppc-port[mps2-scc]
0000000040301000-0000000040301fff (prio 0, i/o): tz-ppc-port[i2s-audio]
0000000040302000-0000000040302fff (prio 0, i/o): tz-ppc-port[mps2-fpgaio]
0000000041000000-000000004113ffff (prio 0, i/o): tz-ppc-port[gfx]
0000000042000000-00000000420000ff (prio 0, i/o): tz-ppc-port[lan9118-mmio]
0000000048007000-0000000048007fff (prio -1000, i/o): FPGA NS PC
0000000050080000-0000000050080fff (prio 0, i/o): iotkit-secctl-s-regs
0000000058007000-0000000058007fff (prio 0, i/o): tz-ppc-port[tz-mpc-regs]
0000000058008000-0000000058008fff (prio 0, i/o): tz-ppc-port[tz-mpc-regs]
0000000058009000-0000000058009fff (prio 0, i/o): tz-ppc-port[tz-mpc-regs]
0000000080000000-0000000080ffffff (prio 0, ram): mps.ram
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Jim MacArthur <jim.macarthur@linaro.org>
---
hw/misc/tz-ppc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/misc/tz-ppc.c b/hw/misc/tz-ppc.c
index e4235a846d4..fd305f9f62f 100644
--- a/hw/misc/tz-ppc.c
+++ b/hw/misc/tz-ppc.c
@@ -273,7 +273,7 @@ static void tz_ppc_realize(DeviceState *dev, Error **errp)
continue;
}
- name = g_strdup_printf("tz-ppc-port[%d]", i);
+ name = g_strdup_printf("tz-ppc-port[%s]", memory_region_name(port->downstream));
port->ppc = s;
address_space_init(&port->downstream_as, port->downstream, name);
--
2.47.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [RFC PATCH] hw/misc: make the tz-ppc-port names more useful
2025-12-15 17:05 [RFC PATCH] hw/misc: make the tz-ppc-port names more useful Alex Bennée
@ 2025-12-15 17:31 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 2+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-12-15 17:31 UTC (permalink / raw)
To: Alex Bennée, qemu-devel
Cc: Jim MacArthur, Peter Maydell, open list:ARM PrimeCell and...
On 15/12/25 18:05, Alex Bennée wrote:
> The TrustZone peripheral protection controller (tz-ppc) sits between
> peripherals and the main system. However this results in "info mtree"
> looking at bit confusing, especially as the sequence numbers can
> overlap and miss steps:
>
> 0000000000000000-ffffffffffffffff (prio -2, i/o): system
> 0000000000000000-00000000003fffff (prio 0, i/o): tz-mpc-upstream
> 0000000000400000-00000000007fffff (prio 0, i/o): alias ssram-0-alias @tz-mpc-upstream 0000000000000000-00000000003fffff
> 0000000028000000-00000000281fffff (prio 0, i/o): tz-mpc-upstream
> 0000000028200000-00000000283fffff (prio 0, i/o): tz-mpc-upstream
> 0000000040080000-0000000040080fff (prio 0, i/o): iotkit-secctl-ns-regs
> 0000000040100000-0000000040100fff (prio 0, i/o): tz-ppc-port[1]
> 0000000040101000-0000000040101fff (prio 0, i/o): tz-ppc-port[2]
> 0000000040102000-0000000040102fff (prio 0, i/o): tz-ppc-port[3]
> 0000000040103000-0000000040103fff (prio 0, i/o): tz-ppc-port[4]
> 0000000040110000-0000000040110fff (prio 0, i/o): tz-ppc-port[0]
> 0000000040111000-0000000040111fff (prio 0, i/o): tz-ppc-port[1]
> 0000000040112000-0000000040112fff (prio 0, i/o): tz-ppc-port[2]
> 0000000040113000-0000000040113fff (prio 0, i/o): tz-ppc-port[3]
> 0000000040200000-0000000040200fff (prio 0, i/o): tz-ppc-port[5]
> 0000000040201000-0000000040201fff (prio 0, i/o): tz-ppc-port[6]
> 0000000040202000-0000000040202fff (prio 0, i/o): tz-ppc-port[7]
> 0000000040203000-0000000040203fff (prio 0, i/o): tz-ppc-port[8]
> 0000000040204000-0000000040204fff (prio 0, i/o): tz-ppc-port[9]
> 0000000040205000-0000000040205fff (prio 0, i/o): tz-ppc-port[0]
> 0000000040206000-0000000040206fff (prio 0, i/o): tz-ppc-port[1]
> 0000000040207000-0000000040207fff (prio 0, i/o): tz-ppc-port[10]
> 0000000040208000-0000000040208fff (prio 0, i/o): tz-ppc-port[11]
> 0000000040209000-0000000040209fff (prio 0, i/o): tz-ppc-port[2]
> 000000004020a000-000000004020afff (prio 0, i/o): tz-ppc-port[3]
> 000000004020b000-000000004020bfff (prio 0, i/o): tz-ppc-port[4]
> 000000004020c000-000000004020cfff (prio 0, i/o): tz-ppc-port[12]
> 000000004020d000-000000004020dfff (prio 0, i/o): tz-ppc-port[13]
> 0000000040300000-0000000040300fff (prio 0, i/o): tz-ppc-port[0]
> 0000000040301000-0000000040301fff (prio 0, i/o): tz-ppc-port[1]
> 0000000040302000-0000000040302fff (prio 0, i/o): tz-ppc-port[2]
> 0000000041000000-000000004113ffff (prio 0, i/o): tz-ppc-port[0]
> 0000000042000000-00000000420000ff (prio 0, i/o): tz-ppc-port[5]
> 0000000048007000-0000000048007fff (prio -1000, i/o): FPGA NS PC
> 0000000050080000-0000000050080fff (prio 0, i/o): iotkit-secctl-s-regs
> 0000000058007000-0000000058007fff (prio 0, i/o): tz-ppc-port[0]
> 0000000058008000-0000000058008fff (prio 0, i/o): tz-ppc-port[1]
> 0000000058009000-0000000058009fff (prio 0, i/o): tz-ppc-port[2]
> 0000000080000000-0000000080ffffff (prio 0, ram): mps.ram
>
> So as a quality of life feature lets expose the name of the underlying
> region so we get something more useful:
>
> 0000000000000000-ffffffffffffffff (prio -2, i/o): system
> 0000000000000000-00000000003fffff (prio 0, i/o): tz-mpc-upstream
> 0000000000400000-00000000007fffff (prio 0, i/o): alias ssram-0-alias @tz-mpc-upstream 0000000000000000-00000000003fffff
> 0000000028000000-00000000281fffff (prio 0, i/o): tz-mpc-upstream
> 0000000028200000-00000000283fffff (prio 0, i/o): tz-mpc-upstream
> 0000000040080000-0000000040080fff (prio 0, i/o): iotkit-secctl-ns-regs
> 0000000040100000-0000000040100fff (prio 0, i/o): tz-ppc-port[gpio0]
> 0000000040101000-0000000040101fff (prio 0, i/o): tz-ppc-port[gpio1]
> 0000000040102000-0000000040102fff (prio 0, i/o): tz-ppc-port[gpio2]
> 0000000040103000-0000000040103fff (prio 0, i/o): tz-ppc-port[gpio3]
> 0000000040110000-0000000040110fff (prio 0, i/o): tz-ppc-port[pl080]
> 0000000040111000-0000000040111fff (prio 0, i/o): tz-ppc-port[pl080]
> 0000000040112000-0000000040112fff (prio 0, i/o): tz-ppc-port[pl080]
> 0000000040113000-0000000040113fff (prio 0, i/o): tz-ppc-port[pl080]
> 0000000040200000-0000000040200fff (prio 0, i/o): tz-ppc-port[uart]
> 0000000040201000-0000000040201fff (prio 0, i/o): tz-ppc-port[uart]
> 0000000040202000-0000000040202fff (prio 0, i/o): tz-ppc-port[uart]
> 0000000040203000-0000000040203fff (prio 0, i/o): tz-ppc-port[uart]
> 0000000040204000-0000000040204fff (prio 0, i/o): tz-ppc-port[uart]
> 0000000040205000-0000000040205fff (prio 0, i/o): tz-ppc-port[pl022]
> 0000000040206000-0000000040206fff (prio 0, i/o): tz-ppc-port[pl022]
> 0000000040207000-0000000040207fff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
> 0000000040208000-0000000040208fff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
> 0000000040209000-0000000040209fff (prio 0, i/o): tz-ppc-port[pl022]
> 000000004020a000-000000004020afff (prio 0, i/o): tz-ppc-port[pl022]
> 000000004020b000-000000004020bfff (prio 0, i/o): tz-ppc-port[pl022]
> 000000004020c000-000000004020cfff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
> 000000004020d000-000000004020dfff (prio 0, i/o): tz-ppc-port[arm_sbcon_i2c]
> 0000000040300000-0000000040300fff (prio 0, i/o): tz-ppc-port[mps2-scc]
> 0000000040301000-0000000040301fff (prio 0, i/o): tz-ppc-port[i2s-audio]
> 0000000040302000-0000000040302fff (prio 0, i/o): tz-ppc-port[mps2-fpgaio]
> 0000000041000000-000000004113ffff (prio 0, i/o): tz-ppc-port[gfx]
> 0000000042000000-00000000420000ff (prio 0, i/o): tz-ppc-port[lan9118-mmio]
> 0000000048007000-0000000048007fff (prio -1000, i/o): FPGA NS PC
> 0000000050080000-0000000050080fff (prio 0, i/o): iotkit-secctl-s-regs
> 0000000058007000-0000000058007fff (prio 0, i/o): tz-ppc-port[tz-mpc-regs]
> 0000000058008000-0000000058008fff (prio 0, i/o): tz-ppc-port[tz-mpc-regs]
> 0000000058009000-0000000058009fff (prio 0, i/o): tz-ppc-port[tz-mpc-regs]
> 0000000080000000-0000000080ffffff (prio 0, ram): mps.ram
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Cc: Jim MacArthur <jim.macarthur@linaro.org>
> ---
> hw/misc/tz-ppc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-12-15 17:32 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-15 17:05 [RFC PATCH] hw/misc: make the tz-ppc-port names more useful Alex Bennée
2025-12-15 17:31 ` 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).