[RFC PATCH] hw/misc: make the tz-ppc-port names more useful

Alex Bennée posted 1 patch 18 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20251215170548.2594651-1-alex.bennee@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>
hw/misc/tz-ppc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[RFC PATCH] hw/misc: make the tz-ppc-port names more useful
Posted by Alex Bennée 18 hours ago
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


Re: [RFC PATCH] hw/misc: make the tz-ppc-port names more useful
Posted by Philippe Mathieu-Daudé 17 hours ago
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>