qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS
@ 2025-12-09 13:56 Anton Johansson via
  2025-12-09 13:56 ` [PATCH 1/7] target/alpha: Introduce alpha_phys_addr_space_bits() Anton Johansson via
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

The target macro TARGET_PHYS_ADDR_SPACE_BITS is unused since commit

  2e8fe327eb6 ("accel/tcg: Simplify L1_MAP_ADDR_SPACE_BITS"),

replace the handful of remaining uses with runtime functions or
constants.

For discussion see:

  https://lore.kernel.org/qemu-devel/8f0db5c1-f20b-4b7a-8d6c-76ce7ec7b4e0@linaro.org/

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Anton Johansson <anjo@rev.ng>
---
Anton Johansson (7):
      target/alpha: Introduce alpha_phys_addr_space_bits()
      target/hppa: Define PA[20|1X] physical address space size
      target/i386: Drop physical address range checks
      target/loongarch: Introduce loongarch_palen_mask()
      hw/loongarch: Use loongarch_palen_mask()
      hw/riscv: Fix IOMMU PAS capability to 56 bits
      Drop TARGET_PHYS_ADDR_SPACE_BITS

 include/exec/cpu-defs.h           |  3 ---
 include/exec/poison.h             |  2 --
 include/hw/loongarch/boot.h       |  3 ++-
 linux-user/alpha/target_proc.h    |  2 +-
 target/alpha/cpu-param.h          |  3 ---
 target/alpha/cpu.h                |  1 +
 target/arm/cpu-param.h            |  2 --
 target/avr/cpu-param.h            |  1 -
 target/hexagon/cpu-param.h        |  1 -
 target/hppa/cpu-param.h           |  2 --
 target/i386/cpu-param.h           |  2 --
 target/i386/tcg/helper-tcg.h      |  2 --
 target/loongarch/cpu-mmu.h        |  1 +
 target/loongarch/cpu-param.h      |  1 -
 target/loongarch/internals.h      |  1 -
 target/m68k/cpu-param.h           |  1 -
 target/microblaze/cpu-param.h     |  2 --
 target/mips/cpu-param.h           |  2 --
 target/openrisc/cpu-param.h       |  1 -
 target/ppc/cpu-param.h            |  7 -------
 target/riscv/cpu-param.h          |  2 --
 target/rx/cpu-param.h             |  1 -
 target/s390x/cpu-param.h          |  1 -
 target/sh4/cpu-param.h            |  1 -
 target/sparc/cpu-param.h          |  2 --
 target/tricore/cpu-param.h        |  1 -
 target/xtensa/cpu-param.h         |  1 -
 hw/loongarch/boot.c               | 28 ++++++++++++++++------------
 hw/loongarch/virt.c               |  5 ++++-
 hw/riscv/riscv-iommu.c            | 12 +++++++++---
 target/alpha/helper.c             | 18 ++++++++++++++++++
 target/hppa/mem_helper.c          | 23 ++++++++++++++++++-----
 target/i386/cpu.c                 |  9 +++------
 target/i386/kvm/kvm.c             |  3 +--
 target/loongarch/cpu_helper.c     | 14 +++++++++++---
 target/loongarch/tcg/tlb_helper.c | 12 ++++++++----
 36 files changed, 93 insertions(+), 80 deletions(-)



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

* [PATCH 1/7] target/alpha: Introduce alpha_phys_addr_space_bits()
  2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
@ 2025-12-09 13:56 ` Anton Johansson via
  2025-12-11 15:09   ` Richard Henderson
  2025-12-09 13:56 ` [PATCH 2/7] target/hppa: Define PA[20|1X] physical address space size Anton Johansson via
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

In preparation for dropping TARGET_PHYS_ADDR_SPACE_BITS, add a
a runtime function to correctly represent the size of the physical
address space for EV4-6 based on the current CPU version.

Signed-off-by: Anton Johansson <anjo@rev.ng>
---
 linux-user/alpha/target_proc.h |  2 +-
 target/alpha/cpu.h             |  1 +
 target/alpha/helper.c          | 18 ++++++++++++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/linux-user/alpha/target_proc.h b/linux-user/alpha/target_proc.h
index da437ee0e5..bcdd1e343c 100644
--- a/linux-user/alpha/target_proc.h
+++ b/linux-user/alpha/target_proc.h
@@ -57,7 +57,7 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd)
             "L1 Dcache\t\t: n/a\n"
             "L2 cache\t\t: n/a\n"
             "L3 cache\t\t: n/a\n",
-            model, TARGET_PAGE_SIZE, TARGET_PHYS_ADDR_SPACE_BITS,
+            model, TARGET_PAGE_SIZE, alpha_phys_addr_space_bits(cpu_env),
             max_cpus, num_cpus, cpu_mask);
 
     return 0;
diff --git a/target/alpha/cpu.h b/target/alpha/cpu.h
index 45944e46b5..9ee8d93b72 100644
--- a/target/alpha/cpu.h
+++ b/target/alpha/cpu.h
@@ -286,6 +286,7 @@ bool alpha_cpu_exec_interrupt(CPUState *cpu, int int_req);
 hwaddr alpha_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
 #endif /* !CONFIG_USER_ONLY */
 void alpha_cpu_dump_state(CPUState *cs, FILE *f, int flags);
+uint8_t alpha_phys_addr_space_bits(CPUAlphaState *env);
 int alpha_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg);
 int alpha_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
 
diff --git a/target/alpha/helper.c b/target/alpha/helper.c
index a9af52a928..0f0cf73bf3 100644
--- a/target/alpha/helper.c
+++ b/target/alpha/helper.c
@@ -523,6 +523,24 @@ void alpha_cpu_dump_state(CPUState *cs, FILE *f, int flags)
     qemu_fprintf(f, "\n");
 }
 
+uint8_t alpha_phys_addr_space_bits(CPUAlphaState *env)
+{
+    switch (env->implver) {
+    case IMPLVER_2106x:
+        /* EV4 */
+        return 34;
+    case IMPLVER_21164:
+        /* EV5 */
+        return 40;
+    case IMPLVER_21264:
+    case IMPLVER_21364:
+        /* EV6 and EV7*/
+        return 44;
+    default:
+        g_assert_not_reached();
+    }
+}
+
 /* This should only be called from translate, via gen_excp.
    We expect that ENV->PC has already been updated.  */
 G_NORETURN void helper_excp(CPUAlphaState *env, int excp, int error)

-- 
2.51.0



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

* [PATCH 2/7] target/hppa: Define PA[20|1X] physical address space size
  2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
  2025-12-09 13:56 ` [PATCH 1/7] target/alpha: Introduce alpha_phys_addr_space_bits() Anton Johansson via
@ 2025-12-09 13:56 ` Anton Johansson via
  2025-12-11 15:16   ` Richard Henderson
  2025-12-09 13:56 ` [PATCH 3/7] target/i386: Drop physical address range checks Anton Johansson via
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

When converting virtual to physical addresses,
TARGET_PHYS_ADDR_SPACE_BITS is used under PA-RISC 2.0, and an explicit
cast to uint32_t is used under PA-RISC 1.X.  Replace the former with a
more specific macro limited to mem_helper.c, and make the latter
conversion explicit by defining the size of the physical address space
for PA-RISC 1.X.

Signed-off-by: Anton Johansson <anjo@rev.ng>
---
 target/hppa/mem_helper.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index cce82e6599..8563bb0e2a 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -29,6 +29,19 @@
 #include "hw/core/cpu.h"
 #include "trace.h"
 
+/*
+ * 64-bit (PA-RISC 2.0) machines are assumed to run PA-8700, and 32-bit
+ * machines 7300LC.  This gives 44 and 32 bits of physical address space
+ * respectively.
+ *
+ *   CPU model        Physical address space bits
+ *   PA-7000--7300LC  32
+ *   PA-8000--8600    40
+ *   PA-8700--8900    44
+ */
+#define HPPA_PHYS_ADDR_SPACE_BITS_PA20 44
+#define HPPA_PHYS_ADDR_SPACE_BITS_PA1X 32
+
 hwaddr hppa_abs_to_phys_pa2_w1(vaddr addr)
 {
     /*
@@ -42,8 +55,8 @@ hwaddr hppa_abs_to_phys_pa2_w1(vaddr addr)
      * Since the supported physical address space is below 54 bits, the
      * H-8 algorithm is moot and all that is left is to truncate.
      */
-    QEMU_BUILD_BUG_ON(TARGET_PHYS_ADDR_SPACE_BITS > 54);
-    return sextract64(addr, 0, TARGET_PHYS_ADDR_SPACE_BITS);
+    QEMU_BUILD_BUG_ON(HPPA_PHYS_ADDR_SPACE_BITS_PA20 > 54);
+    return sextract64(addr, 0, HPPA_PHYS_ADDR_SPACE_BITS_PA20);
 }
 
 hwaddr hppa_abs_to_phys_pa2_w0(vaddr addr)
@@ -67,7 +80,7 @@ hwaddr hppa_abs_to_phys_pa2_w0(vaddr addr)
          * is what can be seen on physical machines too.
          */
         addr = (uint32_t)addr;
-        addr |= -1ull << (TARGET_PHYS_ADDR_SPACE_BITS - 4);
+        addr |= -1ull << (HPPA_PHYS_ADDR_SPACE_BITS_PA20 - 4);
     }
     return addr;
 }
@@ -217,7 +230,7 @@ int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
             if (hppa_is_pa20(env)) {
                 phys = hppa_abs_to_phys_pa2_w0(addr);
             } else {
-                phys = (uint32_t)addr;
+                phys = extract64(addr, 0, HPPA_PHYS_ADDR_SPACE_BITS_PA1X);
             }
             break;
         default:
@@ -558,7 +571,7 @@ static void itlbt_pa20(CPUHPPAState *env, target_ulong r1,
     /* Align per the page size. */
     ent->pa &= TARGET_PAGE_MASK << mask_shift;
     /* Ignore the bits beyond physical address space. */
-    ent->pa = sextract64(ent->pa, 0, TARGET_PHYS_ADDR_SPACE_BITS);
+    ent->pa = sextract64(ent->pa, 0, HPPA_PHYS_ADDR_SPACE_BITS_PA20);
 
     ent->t = extract64(r2, 61, 1);
     ent->d = extract64(r2, 60, 1);

-- 
2.51.0



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

* [PATCH 3/7] target/i386: Drop physical address range checks
  2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
  2025-12-09 13:56 ` [PATCH 1/7] target/alpha: Introduce alpha_phys_addr_space_bits() Anton Johansson via
  2025-12-09 13:56 ` [PATCH 2/7] target/hppa: Define PA[20|1X] physical address space size Anton Johansson via
@ 2025-12-09 13:56 ` Anton Johansson via
  2025-12-09 13:56 ` [PATCH 4/7] target/loongarch: Introduce loongarch_palen_mask() Anton Johansson via
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

Since TARGET_PHYS_ADDR_SPACE_BITS is now fixed to 64 bits for all
targets we can remove range checks on cpu->phys_bits and
TCG_PHYS_ADDR_BITS.

Signed-off-by: Anton Johansson <anjo@rev.ng>
---
 target/i386/tcg/helper-tcg.h | 2 --
 target/i386/cpu.c            | 9 +++------
 target/i386/kvm/kvm.c        | 3 +--
 3 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h
index e41cbda407..f4b2ff740d 100644
--- a/target/i386/tcg/helper-tcg.h
+++ b/target/i386/tcg/helper-tcg.h
@@ -31,8 +31,6 @@
 # define TCG_PHYS_ADDR_BITS 36
 #endif
 
-QEMU_BUILD_BUG_ON(TCG_PHYS_ADDR_BITS > TARGET_PHYS_ADDR_SPACE_BITS);
-
 /**
  * x86_cpu_do_interrupt:
  * @cpu: vCPU the interrupt is to be handled by.
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 6417775786..0eeceed7cd 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -9435,12 +9435,9 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp)
      * accel-specific code in cpu_exec_realizefn.
      */
     if (env->features[FEAT_8000_0001_EDX] & CPUID_EXT2_LM) {
-        if (cpu->phys_bits &&
-            (cpu->phys_bits > TARGET_PHYS_ADDR_SPACE_BITS ||
-            cpu->phys_bits < 32)) {
-            error_setg(errp, "phys-bits should be between 32 and %u "
-                             " (but is %u)",
-                             TARGET_PHYS_ADDR_SPACE_BITS, cpu->phys_bits);
+        if (cpu->phys_bits && cpu->phys_bits < 32) {
+            error_setg(errp, "phys-bits should be at least 32"
+                             " (but is %u)", cpu->phys_bits);
             return;
         }
         /*
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
index 60c7981138..edfff01d64 100644
--- a/target/i386/kvm/kvm.c
+++ b/target/i386/kvm/kvm.c
@@ -4681,8 +4681,7 @@ static int kvm_get_msrs(X86CPU *cpu)
      */
 
     if (cpu->fill_mtrr_mask) {
-        QEMU_BUILD_BUG_ON(TARGET_PHYS_ADDR_SPACE_BITS > 52);
-        assert(cpu->phys_bits <= TARGET_PHYS_ADDR_SPACE_BITS);
+        assert(cpu->phys_bits <= 52);
         mtrr_top_bits = MAKE_64BIT_MASK(cpu->phys_bits, 52 - cpu->phys_bits);
     } else {
         mtrr_top_bits = 0;

-- 
2.51.0



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

* [PATCH 4/7] target/loongarch: Introduce loongarch_palen_mask()
  2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
                   ` (2 preceding siblings ...)
  2025-12-09 13:56 ` [PATCH 3/7] target/i386: Drop physical address range checks Anton Johansson via
@ 2025-12-09 13:56 ` Anton Johansson via
  2025-12-09 13:56 ` [PATCH 5/7] hw/loongarch: Use loongarch_palen_mask() Anton Johansson via
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

In preparation for dropping TARGET_PHYS_ADDR_SPACE_BITS, define a
runtime function to construct a mask from the PALEN cpucfg field.
The mask is then used when converting from virtual to physical
addresses.

Signed-off-by: Anton Johansson <anjo@rev.ng>
---
 target/loongarch/cpu-mmu.h        |  1 +
 target/loongarch/internals.h      |  1 -
 target/loongarch/cpu_helper.c     | 14 +++++++++++---
 target/loongarch/tcg/tlb_helper.c | 12 ++++++++----
 4 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/target/loongarch/cpu-mmu.h b/target/loongarch/cpu-mmu.h
index 2259de9d36..3286accc14 100644
--- a/target/loongarch/cpu-mmu.h
+++ b/target/loongarch/cpu-mmu.h
@@ -98,5 +98,6 @@ TLBRet loongarch_ptw(CPULoongArchState *env, MMUContext *context,
 void get_dir_base_width(CPULoongArchState *env, uint64_t *dir_base,
                         uint64_t *dir_width, unsigned int level);
 hwaddr loongarch_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
+uint64_t loongarch_palen_mask(CPULoongArchState *env);
 
 #endif  /* LOONGARCH_CPU_MMU_H */
diff --git a/target/loongarch/internals.h b/target/loongarch/internals.h
index 8793bd9df6..e01dbed40f 100644
--- a/target/loongarch/internals.h
+++ b/target/loongarch/internals.h
@@ -13,7 +13,6 @@
 #define FCMP_UN   0b0100  /* unordered */
 #define FCMP_GT   0b1000  /* fp0 > fp1 */
 
-#define TARGET_PHYS_MASK MAKE_64BIT_MASK(0, TARGET_PHYS_ADDR_SPACE_BITS)
 #define TARGET_VIRT_MASK MAKE_64BIT_MASK(0, TARGET_VIRT_ADDR_SPACE_BITS)
 
 void loongarch_translate_init(void);
diff --git a/target/loongarch/cpu_helper.c b/target/loongarch/cpu_helper.c
index a6eba4f416..6497b454a6 100644
--- a/target/loongarch/cpu_helper.c
+++ b/target/loongarch/cpu_helper.c
@@ -147,6 +147,7 @@ TLBRet loongarch_ptw(CPULoongArchState *env, MMUContext *context,
 {
     CPUState *cs = env_cpu(env);
     target_ulong index = 0, phys = 0;
+    uint64_t palen_mask = loongarch_palen_mask(env);
     uint64_t dir_base, dir_width;
     uint64_t base, pte;
     int level;
@@ -154,13 +155,14 @@ TLBRet loongarch_ptw(CPULoongArchState *env, MMUContext *context,
     TLBRet ret;
     MemTxResult ret1;
 
+
     address = context->addr;
     if ((address >> 63) & 0x1) {
         base = env->CSR_PGDH;
     } else {
         base = env->CSR_PGDL;
     }
-    base &= TARGET_PHYS_MASK;
+    base &= palen_mask;
 
     for (level = 4; level >= 0; level--) {
         get_dir_base_width(env, &dir_base, &dir_width, level);
@@ -181,7 +183,7 @@ TLBRet loongarch_ptw(CPULoongArchState *env, MMUContext *context,
                 break;
             } else {
                 /* Discard high bits with page directory table */
-                base &= TARGET_PHYS_MASK;
+                base &= palen_mask;
             }
         }
     }
@@ -315,7 +317,7 @@ TLBRet get_physical_address(CPULoongArchState *env, MMUContext *context,
     /* Check PG and DA */
     address = context->addr;
     if (da & !pg) {
-        context->physical = address & TARGET_PHYS_MASK;
+        context->physical = address & loongarch_palen_mask(env);
         context->prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
         context->mmu_index = MMU_DA_IDX;
         return TLBRET_MATCH;
@@ -364,3 +366,9 @@ hwaddr loongarch_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
     }
     return context.physical;
 }
+
+uint64_t loongarch_palen_mask(CPULoongArchState *env)
+{
+    uint64_t phys_bits = FIELD_EX32(env->cpucfg[1], CPUCFG1, PALEN);
+    return MAKE_64BIT_MASK(0, phys_bits);
+}
diff --git a/target/loongarch/tcg/tlb_helper.c b/target/loongarch/tcg/tlb_helper.c
index 01e0a27f0b..30107f3e3f 100644
--- a/target/loongarch/tcg/tlb_helper.c
+++ b/target/loongarch/tcg/tlb_helper.c
@@ -691,8 +691,10 @@ target_ulong helper_lddir(CPULoongArchState *env, target_ulong base,
 {
     CPUState *cs = env_cpu(env);
     target_ulong badvaddr, index, phys;
+    uint64_t palen_mask = loongarch_palen_mask(env);
     uint64_t dir_base, dir_width;
 
+
     if (unlikely((level == 0) || (level > 4))) {
         qemu_log_mask(LOG_GUEST_ERROR,
                       "Attepted LDDIR with level %u\n", level);
@@ -714,11 +716,11 @@ target_ulong helper_lddir(CPULoongArchState *env, target_ulong base,
     }
 
     badvaddr = env->CSR_TLBRBADV;
-    base = base & TARGET_PHYS_MASK;
+    base = base & palen_mask;
     get_dir_base_width(env, &dir_base, &dir_width, level);
     index = (badvaddr >> dir_base) & ((1 << dir_width) - 1);
     phys = base | index << 3;
-    return ldq_phys(cs->as, phys) & TARGET_PHYS_MASK;
+    return ldq_phys(cs->as, phys) & palen_mask;
 }
 
 void helper_ldpte(CPULoongArchState *env, target_ulong base, target_ulong odd,
@@ -728,9 +730,11 @@ void helper_ldpte(CPULoongArchState *env, target_ulong base, target_ulong odd,
     target_ulong phys, tmp0, ptindex, ptoffset0, ptoffset1, badv;
     uint64_t ptbase = FIELD_EX64(env->CSR_PWCL, CSR_PWCL, PTBASE);
     uint64_t ptwidth = FIELD_EX64(env->CSR_PWCL, CSR_PWCL, PTWIDTH);
+    uint64_t palen_mask = loongarch_palen_mask(env);
     uint64_t dir_base, dir_width;
     uint8_t  ps;
 
+
     /*
      * The parameter "base" has only two types,
      * one is the page table base address,
@@ -738,7 +742,7 @@ void helper_ldpte(CPULoongArchState *env, target_ulong base, target_ulong odd,
      * and the other is the huge page entry,
      * whose bit 6 should be 1.
      */
-    base = base & TARGET_PHYS_MASK;
+    base = base & palen_mask;
     if (FIELD_EX64(base, TLBENTRY, HUGE)) {
         /*
          * Gets the huge page level and Gets huge page size.
@@ -779,7 +783,7 @@ void helper_ldpte(CPULoongArchState *env, target_ulong base, target_ulong odd,
         ptoffset0 = ptindex << 3;
         ptoffset1 = (ptindex + 1) << 3;
         phys = base | (odd ? ptoffset1 : ptoffset0);
-        tmp0 = ldq_phys(cs->as, phys) & TARGET_PHYS_MASK;
+        tmp0 = ldq_phys(cs->as, phys) & palen_mask;
         ps = ptbase;
     }
 

-- 
2.51.0



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

* [PATCH 5/7] hw/loongarch: Use loongarch_palen_mask()
  2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
                   ` (3 preceding siblings ...)
  2025-12-09 13:56 ` [PATCH 4/7] target/loongarch: Introduce loongarch_palen_mask() Anton Johansson via
@ 2025-12-09 13:56 ` Anton Johansson via
  2025-12-09 13:56 ` [PATCH 6/7] hw/riscv: Fix IOMMU PAS capability to 56 bits Anton Johansson via
  2025-12-09 13:56 ` [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
  6 siblings, 0 replies; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

Replaces remaining uses of TARGET_PHYS_ADDR_SPACE_BITS with
runtime calls to loongarch_palen_mask() to fetch the physical
address mask from the cpucfg PALEN field.

Signed-off-by: Anton Johansson <anjo@rev.ng>
---
 include/hw/loongarch/boot.h |  3 ++-
 hw/loongarch/boot.c         | 28 ++++++++++++++++------------
 hw/loongarch/virt.c         |  5 ++++-
 3 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/include/hw/loongarch/boot.h b/include/hw/loongarch/boot.h
index 9819f7fbe3..4984322f75 100644
--- a/include/hw/loongarch/boot.h
+++ b/include/hw/loongarch/boot.h
@@ -113,6 +113,7 @@ struct memmap_entry {
     uint32_t reserved;
 };
 
-void loongarch_load_kernel(MachineState *ms, struct loongarch_boot_info *info);
+void loongarch_load_kernel(MachineState *ms, struct loongarch_boot_info *info,
+                           uint64_t phys_addr_mask);
 
 #endif /* HW_LOONGARCH_BOOT_H */
diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c
index 8857a04998..d18aa575ba 100644
--- a/hw/loongarch/boot.c
+++ b/hw/loongarch/boot.c
@@ -217,10 +217,12 @@ static void init_cmdline(struct loongarch_boot_info *info, void *p, void *start)
 
 static uint64_t cpu_loongarch_virt_to_phys(void *opaque, uint64_t addr)
 {
-    return addr & MAKE_64BIT_MASK(0, TARGET_PHYS_ADDR_SPACE_BITS);
+    uint64_t *phys_addr_mask = opaque;
+    return addr & *phys_addr_mask;
 }
 
 static int64_t load_loongarch_linux_image(const char *filename,
+                                          uint64_t phys_addr_mask,
                                           uint64_t *kernel_entry,
                                           uint64_t *kernel_low,
                                           uint64_t *kernel_high)
@@ -251,10 +253,8 @@ static int64_t load_loongarch_linux_image(const char *filename,
     }
 
     /* Early kernel versions may have those fields in virtual address */
-    *kernel_entry = extract64(le64_to_cpu(hdr->kernel_entry),
-                              0, TARGET_PHYS_ADDR_SPACE_BITS);
-    *kernel_low = extract64(le64_to_cpu(hdr->load_offset),
-                            0, TARGET_PHYS_ADDR_SPACE_BITS);
+    *kernel_entry = le64_to_cpu(hdr->kernel_entry) & phys_addr_mask;
+    *kernel_low = le64_to_cpu(hdr->load_offset) & phys_addr_mask;
     *kernel_high = *kernel_low + size;
 
     rom_add_blob_fixed(filename, buffer, size, *kernel_low);
@@ -303,19 +303,21 @@ static ram_addr_t alloc_initrd_memory(struct loongarch_boot_info *info,
     exit(1);
 }
 
-static int64_t load_kernel_info(struct loongarch_boot_info *info)
+static int64_t load_kernel_info(struct loongarch_boot_info *info,
+                                uint64_t phys_addr_mask)
 {
     uint64_t kernel_entry, kernel_low, kernel_high, initrd_offset = 0;
     ssize_t kernel_size;
 
     kernel_size = load_elf(info->kernel_filename, NULL,
-                           cpu_loongarch_virt_to_phys, NULL,
+                           cpu_loongarch_virt_to_phys, &phys_addr_mask,
                            &kernel_entry, &kernel_low,
                            &kernel_high, NULL, ELFDATA2LSB,
                            EM_LOONGARCH, 1, 0);
-    kernel_entry = cpu_loongarch_virt_to_phys(NULL, kernel_entry);
+    kernel_entry = cpu_loongarch_virt_to_phys(&phys_addr_mask, kernel_entry);
     if (kernel_size < 0) {
         kernel_size = load_loongarch_linux_image(info->kernel_filename,
+                                                 phys_addr_mask,
                                                  &kernel_entry, &kernel_low,
                                                  &kernel_high);
     }
@@ -395,14 +397,15 @@ static void init_boot_rom(MachineState *ms,
 }
 
 static void loongarch_direct_kernel_boot(MachineState *ms,
-                                         struct loongarch_boot_info *info)
+                                         struct loongarch_boot_info *info,
+                                         uint64_t phys_addr_mask)
 {
     void *p, *bp;
     int64_t kernel_addr = VIRT_FLASH0_BASE;
     uint64_t *data;
 
     if (info->kernel_filename) {
-        kernel_addr = load_kernel_info(info);
+        kernel_addr = load_kernel_info(info, phys_addr_mask);
     } else {
         if (!qtest_enabled()) {
             warn_report("No kernel provided, booting from flash drive.");
@@ -429,7 +432,8 @@ static void loongarch_direct_kernel_boot(MachineState *ms,
     g_free(bp);
 }
 
-void loongarch_load_kernel(MachineState *ms, struct loongarch_boot_info *info)
+void loongarch_load_kernel(MachineState *ms, struct loongarch_boot_info *info,
+                           uint64_t phys_addr_mask)
 {
     LoongArchVirtMachineState *lvms = LOONGARCH_VIRT_MACHINE(ms);
 
@@ -440,6 +444,6 @@ void loongarch_load_kernel(MachineState *ms, struct loongarch_boot_info *info)
     if (lvms->bios_loaded) {
         loongarch_firmware_boot(lvms, info);
     } else {
-        loongarch_direct_kernel_boot(ms, info);
+        loongarch_direct_kernel_boot(ms, info, phys_addr_mask);
     }
 }
diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c
index 49434ad182..e3e61903b0 100644
--- a/hw/loongarch/virt.c
+++ b/hw/loongarch/virt.c
@@ -33,6 +33,7 @@
 #include "hw/misc/unimp.h"
 #include "hw/loongarch/fw_cfg.h"
 #include "target/loongarch/cpu.h"
+#include "target/loongarch/cpu-mmu.h"
 #include "hw/firmware/smbios.h"
 #include "qapi/qapi-visit-common.h"
 #include "hw/acpi/generic_event_device.h"
@@ -785,6 +786,7 @@ static void virt_init(MachineState *machine)
     hwaddr base, size, ram_size = machine->ram_size;
     MachineClass *mc = MACHINE_GET_CLASS(machine);
     Object *cpuobj;
+    uint64_t phys_addr_mask = 0;
 
     if (!cpu_model) {
         cpu_model = LOONGARCH_CPU_TYPE_NAME("la464");
@@ -872,7 +874,8 @@ static void virt_init(MachineState *machine)
     qemu_register_powerdown_notifier(&lvms->powerdown_notifier);
 
     lvms->bootinfo.ram_size = ram_size;
-    loongarch_load_kernel(machine, &lvms->bootinfo);
+    phys_addr_mask = loongarch_palen_mask(&LOONGARCH_CPU(first_cpu)->env);
+    loongarch_load_kernel(machine, &lvms->bootinfo, phys_addr_mask);
 }
 
 static void virt_get_acpi(Object *obj, Visitor *v, const char *name,

-- 
2.51.0



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

* [PATCH 6/7] hw/riscv: Fix IOMMU PAS capability to 56 bits
  2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
                   ` (4 preceding siblings ...)
  2025-12-09 13:56 ` [PATCH 5/7] hw/loongarch: Use loongarch_palen_mask() Anton Johansson via
@ 2025-12-09 13:56 ` Anton Johansson via
  2025-12-09 13:56 ` [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
  6 siblings, 0 replies; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

Replaces the only remaining use of TARGET_PHYS_ADDR_SPACE_BITS for RISCV
with the fixed size of the riscv64 physical address space.

Better would be to somehow determine if a 32-bit or 64-bit cpu is
running and set accordingly, but I'm not sure how that would be done
from the device instance init function. This field is unused anyway.

Signed-off-by: Anton Johansson <anjo@rev.ng>
---
 hw/riscv/riscv-iommu.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c
index f8656ec04b..573c536824 100644
--- a/hw/riscv/riscv-iommu.c
+++ b/hw/riscv/riscv-iommu.c
@@ -2448,9 +2448,15 @@ static void riscv_iommu_instance_init(Object *obj)
     /* Enable translation debug interface */
     s->cap = RISCV_IOMMU_CAP_DBG;
 
-    /* Report QEMU target physical address space limits */
-    s->cap = set_field(s->cap, RISCV_IOMMU_CAP_PAS,
-                       TARGET_PHYS_ADDR_SPACE_BITS);
+    /*
+     * Report QEMU target physical address space limits.
+     *
+     * Currently set to the riscv64 limit of 56 bits (44 bit PPN),
+     * riscv32 would use 34 bits (22 bit PPN).
+     *
+     * This field is currently unused.
+     */
+    s->cap = set_field(s->cap, RISCV_IOMMU_CAP_PAS, 56);
 
     /* TODO: method to report supported PID bits */
     s->pid_bits = 8; /* restricted to size of MemTxAttrs.pid */

-- 
2.51.0



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

* [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS
  2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
                   ` (5 preceding siblings ...)
  2025-12-09 13:56 ` [PATCH 6/7] hw/riscv: Fix IOMMU PAS capability to 56 bits Anton Johansson via
@ 2025-12-09 13:56 ` Anton Johansson via
  2025-12-09 16:07   ` Brian Cain
  2025-12-11 15:18   ` Richard Henderson
  6 siblings, 2 replies; 12+ messages in thread
From: Anton Johansson via @ 2025-12-09 13:56 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Richard Henderson

The macro is no longer in use and can safely be dropped.

Signed-off-by: Anton Johansson <anjo@rev.ng>
---
 include/exec/cpu-defs.h       | 3 ---
 include/exec/poison.h         | 2 --
 target/alpha/cpu-param.h      | 3 ---
 target/arm/cpu-param.h        | 2 --
 target/avr/cpu-param.h        | 1 -
 target/hexagon/cpu-param.h    | 1 -
 target/hppa/cpu-param.h       | 2 --
 target/i386/cpu-param.h       | 2 --
 target/loongarch/cpu-param.h  | 1 -
 target/m68k/cpu-param.h       | 1 -
 target/microblaze/cpu-param.h | 2 --
 target/mips/cpu-param.h       | 2 --
 target/openrisc/cpu-param.h   | 1 -
 target/ppc/cpu-param.h        | 7 -------
 target/riscv/cpu-param.h      | 2 --
 target/rx/cpu-param.h         | 1 -
 target/s390x/cpu-param.h      | 1 -
 target/sh4/cpu-param.h        | 1 -
 target/sparc/cpu-param.h      | 2 --
 target/tricore/cpu-param.h    | 1 -
 target/xtensa/cpu-param.h     | 1 -
 21 files changed, 39 deletions(-)

diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index e01acb7c90..141b5a9929 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -28,9 +28,6 @@
 #ifndef TARGET_LONG_BITS
 # error TARGET_LONG_BITS must be defined in cpu-param.h
 #endif
-#ifndef TARGET_PHYS_ADDR_SPACE_BITS
-# error TARGET_PHYS_ADDR_SPACE_BITS must be defined in cpu-param.h
-#endif
 #ifndef TARGET_VIRT_ADDR_SPACE_BITS
 # error TARGET_VIRT_ADDR_SPACE_BITS must be defined in cpu-param.h
 #endif
diff --git a/include/exec/poison.h b/include/exec/poison.h
index a779adbb7a..2caf2d92f1 100644
--- a/include/exec/poison.h
+++ b/include/exec/poison.h
@@ -43,8 +43,6 @@
 #pragma GCC poison TARGET_FMT_ld
 #pragma GCC poison TARGET_FMT_lu
 
-#pragma GCC poison TARGET_PHYS_ADDR_SPACE_BITS
-
 #pragma GCC poison CONFIG_ALPHA_DIS
 #pragma GCC poison CONFIG_HPPA_DIS
 #pragma GCC poison CONFIG_I386_DIS
diff --git a/target/alpha/cpu-param.h b/target/alpha/cpu-param.h
index a799f42db3..e04bfeee12 100644
--- a/target/alpha/cpu-param.h
+++ b/target/alpha/cpu-param.h
@@ -8,9 +8,6 @@
 #ifndef ALPHA_CPU_PARAM_H
 #define ALPHA_CPU_PARAM_H
 
-/* ??? EV4 has 34 phys addr bits, EV5 has 40, EV6 has 44.  */
-#define TARGET_PHYS_ADDR_SPACE_BITS  44
-
 #ifdef CONFIG_USER_ONLY
 /*
  * Allow user-only to vary page size.  Real hardware allows only 8k and 64k,
diff --git a/target/arm/cpu-param.h b/target/arm/cpu-param.h
index 8b46c7c570..08785125ad 100644
--- a/target/arm/cpu-param.h
+++ b/target/arm/cpu-param.h
@@ -9,10 +9,8 @@
 #define ARM_CPU_PARAM_H
 
 #ifdef TARGET_AARCH64
-# define TARGET_PHYS_ADDR_SPACE_BITS  52
 # define TARGET_VIRT_ADDR_SPACE_BITS  52
 #else
-# define TARGET_PHYS_ADDR_SPACE_BITS  40
 # define TARGET_VIRT_ADDR_SPACE_BITS  32
 #endif
 
diff --git a/target/avr/cpu-param.h b/target/avr/cpu-param.h
index f74bfc2580..066ada1e9c 100644
--- a/target/avr/cpu-param.h
+++ b/target/avr/cpu-param.h
@@ -22,7 +22,6 @@
 #define AVR_CPU_PARAM_H
 
 #define TARGET_PAGE_BITS 10
-#define TARGET_PHYS_ADDR_SPACE_BITS 24
 #define TARGET_VIRT_ADDR_SPACE_BITS 24
 
 #define TARGET_INSN_START_EXTRA_WORDS 0
diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h
index 635d509e74..31da1a239f 100644
--- a/target/hexagon/cpu-param.h
+++ b/target/hexagon/cpu-param.h
@@ -20,7 +20,6 @@
 
 #define TARGET_PAGE_BITS 16     /* 64K pages */
 
-#define TARGET_PHYS_ADDR_SPACE_BITS 36
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
 
 #define TARGET_INSN_START_EXTRA_WORDS 0
diff --git a/target/hppa/cpu-param.h b/target/hppa/cpu-param.h
index 9bf7ac76d0..8e33d1ac36 100644
--- a/target/hppa/cpu-param.h
+++ b/target/hppa/cpu-param.h
@@ -9,11 +9,9 @@
 #define HPPA_CPU_PARAM_H
 
 #if defined(CONFIG_USER_ONLY) && defined(TARGET_ABI32)
-# define TARGET_PHYS_ADDR_SPACE_BITS  32
 # define TARGET_VIRT_ADDR_SPACE_BITS  32
 #else
 /* ??? PA-8000 through 8600 have 40 bits; PA-8700 and 8900 have 44 bits. */
-# define TARGET_PHYS_ADDR_SPACE_BITS  40
 # define TARGET_VIRT_ADDR_SPACE_BITS  64
 #endif
 
diff --git a/target/i386/cpu-param.h b/target/i386/cpu-param.h
index ebb844bcc8..9e4cb74e04 100644
--- a/target/i386/cpu-param.h
+++ b/target/i386/cpu-param.h
@@ -9,7 +9,6 @@
 #define I386_CPU_PARAM_H
 
 #ifdef TARGET_X86_64
-# define TARGET_PHYS_ADDR_SPACE_BITS  52
 /*
  * ??? This is really 48 bits, sign-extended, but the only thing
  * accessible to userland with bit 48 set is the VSYSCALL, and that
@@ -17,7 +16,6 @@
  */
 # define TARGET_VIRT_ADDR_SPACE_BITS  47
 #else
-# define TARGET_PHYS_ADDR_SPACE_BITS  36
 # define TARGET_VIRT_ADDR_SPACE_BITS  32
 #endif
 #define TARGET_PAGE_BITS 12
diff --git a/target/loongarch/cpu-param.h b/target/loongarch/cpu-param.h
index 58cc45a377..7779461054 100644
--- a/target/loongarch/cpu-param.h
+++ b/target/loongarch/cpu-param.h
@@ -8,7 +8,6 @@
 #ifndef LOONGARCH_CPU_PARAM_H
 #define LOONGARCH_CPU_PARAM_H
 
-#define TARGET_PHYS_ADDR_SPACE_BITS 48
 #define TARGET_VIRT_ADDR_SPACE_BITS 48
 
 #define TARGET_PAGE_BITS 12
diff --git a/target/m68k/cpu-param.h b/target/m68k/cpu-param.h
index 256a2b5f8b..802d8fc674 100644
--- a/target/m68k/cpu-param.h
+++ b/target/m68k/cpu-param.h
@@ -14,7 +14,6 @@
  * use the smallest one
  */
 #define TARGET_PAGE_BITS 12
-#define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
 
 #define TARGET_INSN_START_EXTRA_WORDS 1
diff --git a/target/microblaze/cpu-param.h b/target/microblaze/cpu-param.h
index e0a3794513..90a0cf2435 100644
--- a/target/microblaze/cpu-param.h
+++ b/target/microblaze/cpu-param.h
@@ -17,10 +17,8 @@
  * of address space.
  */
 #ifdef CONFIG_USER_ONLY
-#define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
 #else
-#define TARGET_PHYS_ADDR_SPACE_BITS 64
 #define TARGET_VIRT_ADDR_SPACE_BITS 64
 #endif
 
diff --git a/target/mips/cpu-param.h b/target/mips/cpu-param.h
index 58f450827f..d62110e732 100644
--- a/target/mips/cpu-param.h
+++ b/target/mips/cpu-param.h
@@ -8,10 +8,8 @@
 #define MIPS_CPU_PARAM_H
 
 #ifdef TARGET_ABI_MIPSN64
-#define TARGET_PHYS_ADDR_SPACE_BITS 48
 #define TARGET_VIRT_ADDR_SPACE_BITS 48
 #else
-#define TARGET_PHYS_ADDR_SPACE_BITS 40
 # ifdef CONFIG_USER_ONLY
 #  define TARGET_VIRT_ADDR_SPACE_BITS 31
 # else
diff --git a/target/openrisc/cpu-param.h b/target/openrisc/cpu-param.h
index b4f57bbe69..740cf76ddd 100644
--- a/target/openrisc/cpu-param.h
+++ b/target/openrisc/cpu-param.h
@@ -9,7 +9,6 @@
 #define OPENRISC_CPU_PARAM_H
 
 #define TARGET_PAGE_BITS 13
-#define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
 
 #define TARGET_INSN_START_EXTRA_WORDS 1
diff --git a/target/ppc/cpu-param.h b/target/ppc/cpu-param.h
index e4ed9080ee..2065915dc5 100644
--- a/target/ppc/cpu-param.h
+++ b/target/ppc/cpu-param.h
@@ -9,12 +9,6 @@
 #define PPC_CPU_PARAM_H
 
 #ifdef TARGET_PPC64
-/*
- * Note that the official physical address space bits is 62-M where M
- * is implementation dependent.  I've not looked up M for the set of
- * cpus we emulate at the system level.
- */
-#define TARGET_PHYS_ADDR_SPACE_BITS 62
 /*
  * Note that the PPC environment architecture talks about 80 bit virtual
  * addresses, with segmentation.  Obviously that's not all visible to a
@@ -26,7 +20,6 @@
 #  define TARGET_VIRT_ADDR_SPACE_BITS 64
 # endif
 #else
-# define TARGET_PHYS_ADDR_SPACE_BITS 36
 # define TARGET_VIRT_ADDR_SPACE_BITS 32
 #endif
 
diff --git a/target/riscv/cpu-param.h b/target/riscv/cpu-param.h
index cfdc67c258..b96e1ce12e 100644
--- a/target/riscv/cpu-param.h
+++ b/target/riscv/cpu-param.h
@@ -9,10 +9,8 @@
 #define RISCV_CPU_PARAM_H
 
 #if defined(TARGET_RISCV64)
-# define TARGET_PHYS_ADDR_SPACE_BITS 56 /* 44-bit PPN */
 # define TARGET_VIRT_ADDR_SPACE_BITS 48 /* sv48 */
 #elif defined(TARGET_RISCV32)
-# define TARGET_PHYS_ADDR_SPACE_BITS 34 /* 22-bit PPN */
 # define TARGET_VIRT_ADDR_SPACE_BITS 32 /* sv32 */
 #endif
 #define TARGET_PAGE_BITS 12 /* 4 KiB Pages */
diff --git a/target/rx/cpu-param.h b/target/rx/cpu-param.h
index 84934f3bca..4cf6183aa0 100644
--- a/target/rx/cpu-param.h
+++ b/target/rx/cpu-param.h
@@ -21,7 +21,6 @@
 
 #define TARGET_PAGE_BITS 12
 
-#define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
 
 #define TARGET_INSN_START_EXTRA_WORDS 0
diff --git a/target/s390x/cpu-param.h b/target/s390x/cpu-param.h
index abfae3bedf..e46e0757c6 100644
--- a/target/s390x/cpu-param.h
+++ b/target/s390x/cpu-param.h
@@ -9,7 +9,6 @@
 #define S390_CPU_PARAM_H
 
 #define TARGET_PAGE_BITS 12
-#define TARGET_PHYS_ADDR_SPACE_BITS 64
 #define TARGET_VIRT_ADDR_SPACE_BITS 64
 
 #define TARGET_INSN_START_EXTRA_WORDS 2
diff --git a/target/sh4/cpu-param.h b/target/sh4/cpu-param.h
index f328715ee8..e2632bb20f 100644
--- a/target/sh4/cpu-param.h
+++ b/target/sh4/cpu-param.h
@@ -9,7 +9,6 @@
 #define SH4_CPU_PARAM_H
 
 #define TARGET_PAGE_BITS 12  /* 4k */
-#define TARGET_PHYS_ADDR_SPACE_BITS  32
 #ifdef CONFIG_USER_ONLY
 # define TARGET_VIRT_ADDR_SPACE_BITS 31
 #else
diff --git a/target/sparc/cpu-param.h b/target/sparc/cpu-param.h
index 45eea9d6ba..4c92862ea3 100644
--- a/target/sparc/cpu-param.h
+++ b/target/sparc/cpu-param.h
@@ -9,7 +9,6 @@
 
 #ifdef TARGET_SPARC64
 # define TARGET_PAGE_BITS 13 /* 8k */
-# define TARGET_PHYS_ADDR_SPACE_BITS  41
 # ifdef TARGET_ABI32
 #  define TARGET_VIRT_ADDR_SPACE_BITS 32
 # else
@@ -17,7 +16,6 @@
 # endif
 #else
 # define TARGET_PAGE_BITS 12 /* 4k */
-# define TARGET_PHYS_ADDR_SPACE_BITS 36
 # define TARGET_VIRT_ADDR_SPACE_BITS 32
 #endif
 
diff --git a/target/tricore/cpu-param.h b/target/tricore/cpu-param.h
index eb33a67c41..f260a888c2 100644
--- a/target/tricore/cpu-param.h
+++ b/target/tricore/cpu-param.h
@@ -9,7 +9,6 @@
 #define TRICORE_CPU_PARAM_H
 
 #define TARGET_PAGE_BITS 14
-#define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
 
 #define TARGET_INSN_START_EXTRA_WORDS 0
diff --git a/target/xtensa/cpu-param.h b/target/xtensa/cpu-param.h
index 7a0c22c900..328176281e 100644
--- a/target/xtensa/cpu-param.h
+++ b/target/xtensa/cpu-param.h
@@ -9,7 +9,6 @@
 #define XTENSA_CPU_PARAM_H
 
 #define TARGET_PAGE_BITS 12
-#define TARGET_PHYS_ADDR_SPACE_BITS 32
 #ifdef CONFIG_USER_ONLY
 #define TARGET_VIRT_ADDR_SPACE_BITS 30
 #else

-- 
2.51.0



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

* Re: [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS
  2025-12-09 13:56 ` [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
@ 2025-12-09 16:07   ` Brian Cain
  2025-12-11 15:18   ` Richard Henderson
  1 sibling, 0 replies; 12+ messages in thread
From: Brian Cain @ 2025-12-09 16:07 UTC (permalink / raw)
  To: Anton Johansson
  Cc: qemu-devel, Philippe Mathieu-Daudé, Richard Henderson

[-- Attachment #1: Type: text/plain, Size: 11189 bytes --]

On Tue, Dec 9, 2025 at 7:54 AM Anton Johansson via <qemu-devel@nongnu.org>
wrote:

> The macro is no longer in use and can safely be dropped.
>
> Signed-off-by: Anton Johansson <anjo@rev.ng>
> ---
>  include/exec/cpu-defs.h       | 3 ---
>  include/exec/poison.h         | 2 --
>  target/alpha/cpu-param.h      | 3 ---
>  target/arm/cpu-param.h        | 2 --
>  target/avr/cpu-param.h        | 1 -
>  target/hexagon/cpu-param.h    | 1 -
>  target/hppa/cpu-param.h       | 2 --
>  target/i386/cpu-param.h       | 2 --
>  target/loongarch/cpu-param.h  | 1 -
>  target/m68k/cpu-param.h       | 1 -
>  target/microblaze/cpu-param.h | 2 --
>  target/mips/cpu-param.h       | 2 --
>  target/openrisc/cpu-param.h   | 1 -
>  target/ppc/cpu-param.h        | 7 -------
>  target/riscv/cpu-param.h      | 2 --
>  target/rx/cpu-param.h         | 1 -
>  target/s390x/cpu-param.h      | 1 -
>  target/sh4/cpu-param.h        | 1 -
>  target/sparc/cpu-param.h      | 2 --
>  target/tricore/cpu-param.h    | 1 -
>  target/xtensa/cpu-param.h     | 1 -
>  21 files changed, 39 deletions(-)
>

Reviewed-by: Brian Cain <brian.cain@oss.qualcomm.com>


> diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
> index e01acb7c90..141b5a9929 100644
> --- a/include/exec/cpu-defs.h
> +++ b/include/exec/cpu-defs.h
> @@ -28,9 +28,6 @@
>  #ifndef TARGET_LONG_BITS
>  # error TARGET_LONG_BITS must be defined in cpu-param.h
>  #endif
> -#ifndef TARGET_PHYS_ADDR_SPACE_BITS
> -# error TARGET_PHYS_ADDR_SPACE_BITS must be defined in cpu-param.h
> -#endif
>  #ifndef TARGET_VIRT_ADDR_SPACE_BITS
>  # error TARGET_VIRT_ADDR_SPACE_BITS must be defined in cpu-param.h
>  #endif
> diff --git a/include/exec/poison.h b/include/exec/poison.h
> index a779adbb7a..2caf2d92f1 100644
> --- a/include/exec/poison.h
> +++ b/include/exec/poison.h
> @@ -43,8 +43,6 @@
>  #pragma GCC poison TARGET_FMT_ld
>  #pragma GCC poison TARGET_FMT_lu
>
> -#pragma GCC poison TARGET_PHYS_ADDR_SPACE_BITS
> -
>  #pragma GCC poison CONFIG_ALPHA_DIS
>  #pragma GCC poison CONFIG_HPPA_DIS
>  #pragma GCC poison CONFIG_I386_DIS
> diff --git a/target/alpha/cpu-param.h b/target/alpha/cpu-param.h
> index a799f42db3..e04bfeee12 100644
> --- a/target/alpha/cpu-param.h
> +++ b/target/alpha/cpu-param.h
> @@ -8,9 +8,6 @@
>  #ifndef ALPHA_CPU_PARAM_H
>  #define ALPHA_CPU_PARAM_H
>
> -/* ??? EV4 has 34 phys addr bits, EV5 has 40, EV6 has 44.  */
> -#define TARGET_PHYS_ADDR_SPACE_BITS  44
> -
>  #ifdef CONFIG_USER_ONLY
>  /*
>   * Allow user-only to vary page size.  Real hardware allows only 8k and
> 64k,
> diff --git a/target/arm/cpu-param.h b/target/arm/cpu-param.h
> index 8b46c7c570..08785125ad 100644
> --- a/target/arm/cpu-param.h
> +++ b/target/arm/cpu-param.h
> @@ -9,10 +9,8 @@
>  #define ARM_CPU_PARAM_H
>
>  #ifdef TARGET_AARCH64
> -# define TARGET_PHYS_ADDR_SPACE_BITS  52
>  # define TARGET_VIRT_ADDR_SPACE_BITS  52
>  #else
> -# define TARGET_PHYS_ADDR_SPACE_BITS  40
>  # define TARGET_VIRT_ADDR_SPACE_BITS  32
>  #endif
>
> diff --git a/target/avr/cpu-param.h b/target/avr/cpu-param.h
> index f74bfc2580..066ada1e9c 100644
> --- a/target/avr/cpu-param.h
> +++ b/target/avr/cpu-param.h
> @@ -22,7 +22,6 @@
>  #define AVR_CPU_PARAM_H
>
>  #define TARGET_PAGE_BITS 10
> -#define TARGET_PHYS_ADDR_SPACE_BITS 24
>  #define TARGET_VIRT_ADDR_SPACE_BITS 24
>
>  #define TARGET_INSN_START_EXTRA_WORDS 0
> diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h
> index 635d509e74..31da1a239f 100644
> --- a/target/hexagon/cpu-param.h
> +++ b/target/hexagon/cpu-param.h
> @@ -20,7 +20,6 @@
>
>  #define TARGET_PAGE_BITS 16     /* 64K pages */
>
> -#define TARGET_PHYS_ADDR_SPACE_BITS 36
>  #define TARGET_VIRT_ADDR_SPACE_BITS 32
>
>  #define TARGET_INSN_START_EXTRA_WORDS 0
> diff --git a/target/hppa/cpu-param.h b/target/hppa/cpu-param.h
> index 9bf7ac76d0..8e33d1ac36 100644
> --- a/target/hppa/cpu-param.h
> +++ b/target/hppa/cpu-param.h
> @@ -9,11 +9,9 @@
>  #define HPPA_CPU_PARAM_H
>
>  #if defined(CONFIG_USER_ONLY) && defined(TARGET_ABI32)
> -# define TARGET_PHYS_ADDR_SPACE_BITS  32
>  # define TARGET_VIRT_ADDR_SPACE_BITS  32
>  #else
>  /* ??? PA-8000 through 8600 have 40 bits; PA-8700 and 8900 have 44 bits.
> */
> -# define TARGET_PHYS_ADDR_SPACE_BITS  40
>  # define TARGET_VIRT_ADDR_SPACE_BITS  64
>  #endif
>
> diff --git a/target/i386/cpu-param.h b/target/i386/cpu-param.h
> index ebb844bcc8..9e4cb74e04 100644
> --- a/target/i386/cpu-param.h
> +++ b/target/i386/cpu-param.h
> @@ -9,7 +9,6 @@
>  #define I386_CPU_PARAM_H
>
>  #ifdef TARGET_X86_64
> -# define TARGET_PHYS_ADDR_SPACE_BITS  52
>  /*
>   * ??? This is really 48 bits, sign-extended, but the only thing
>   * accessible to userland with bit 48 set is the VSYSCALL, and that
> @@ -17,7 +16,6 @@
>   */
>  # define TARGET_VIRT_ADDR_SPACE_BITS  47
>  #else
> -# define TARGET_PHYS_ADDR_SPACE_BITS  36
>  # define TARGET_VIRT_ADDR_SPACE_BITS  32
>  #endif
>  #define TARGET_PAGE_BITS 12
> diff --git a/target/loongarch/cpu-param.h b/target/loongarch/cpu-param.h
> index 58cc45a377..7779461054 100644
> --- a/target/loongarch/cpu-param.h
> +++ b/target/loongarch/cpu-param.h
> @@ -8,7 +8,6 @@
>  #ifndef LOONGARCH_CPU_PARAM_H
>  #define LOONGARCH_CPU_PARAM_H
>
> -#define TARGET_PHYS_ADDR_SPACE_BITS 48
>  #define TARGET_VIRT_ADDR_SPACE_BITS 48
>
>  #define TARGET_PAGE_BITS 12
> diff --git a/target/m68k/cpu-param.h b/target/m68k/cpu-param.h
> index 256a2b5f8b..802d8fc674 100644
> --- a/target/m68k/cpu-param.h
> +++ b/target/m68k/cpu-param.h
> @@ -14,7 +14,6 @@
>   * use the smallest one
>   */
>  #define TARGET_PAGE_BITS 12
> -#define TARGET_PHYS_ADDR_SPACE_BITS 32
>  #define TARGET_VIRT_ADDR_SPACE_BITS 32
>
>  #define TARGET_INSN_START_EXTRA_WORDS 1
> diff --git a/target/microblaze/cpu-param.h b/target/microblaze/cpu-param.h
> index e0a3794513..90a0cf2435 100644
> --- a/target/microblaze/cpu-param.h
> +++ b/target/microblaze/cpu-param.h
> @@ -17,10 +17,8 @@
>   * of address space.
>   */
>  #ifdef CONFIG_USER_ONLY
> -#define TARGET_PHYS_ADDR_SPACE_BITS 32
>  #define TARGET_VIRT_ADDR_SPACE_BITS 32
>  #else
> -#define TARGET_PHYS_ADDR_SPACE_BITS 64
>  #define TARGET_VIRT_ADDR_SPACE_BITS 64
>  #endif
>
> diff --git a/target/mips/cpu-param.h b/target/mips/cpu-param.h
> index 58f450827f..d62110e732 100644
> --- a/target/mips/cpu-param.h
> +++ b/target/mips/cpu-param.h
> @@ -8,10 +8,8 @@
>  #define MIPS_CPU_PARAM_H
>
>  #ifdef TARGET_ABI_MIPSN64
> -#define TARGET_PHYS_ADDR_SPACE_BITS 48
>  #define TARGET_VIRT_ADDR_SPACE_BITS 48
>  #else
> -#define TARGET_PHYS_ADDR_SPACE_BITS 40
>  # ifdef CONFIG_USER_ONLY
>  #  define TARGET_VIRT_ADDR_SPACE_BITS 31
>  # else
> diff --git a/target/openrisc/cpu-param.h b/target/openrisc/cpu-param.h
> index b4f57bbe69..740cf76ddd 100644
> --- a/target/openrisc/cpu-param.h
> +++ b/target/openrisc/cpu-param.h
> @@ -9,7 +9,6 @@
>  #define OPENRISC_CPU_PARAM_H
>
>  #define TARGET_PAGE_BITS 13
> -#define TARGET_PHYS_ADDR_SPACE_BITS 32
>  #define TARGET_VIRT_ADDR_SPACE_BITS 32
>
>  #define TARGET_INSN_START_EXTRA_WORDS 1
> diff --git a/target/ppc/cpu-param.h b/target/ppc/cpu-param.h
> index e4ed9080ee..2065915dc5 100644
> --- a/target/ppc/cpu-param.h
> +++ b/target/ppc/cpu-param.h
> @@ -9,12 +9,6 @@
>  #define PPC_CPU_PARAM_H
>
>  #ifdef TARGET_PPC64
> -/*
> - * Note that the official physical address space bits is 62-M where M
> - * is implementation dependent.  I've not looked up M for the set of
> - * cpus we emulate at the system level.
> - */
> -#define TARGET_PHYS_ADDR_SPACE_BITS 62
>  /*
>   * Note that the PPC environment architecture talks about 80 bit virtual
>   * addresses, with segmentation.  Obviously that's not all visible to a
> @@ -26,7 +20,6 @@
>  #  define TARGET_VIRT_ADDR_SPACE_BITS 64
>  # endif
>  #else
> -# define TARGET_PHYS_ADDR_SPACE_BITS 36
>  # define TARGET_VIRT_ADDR_SPACE_BITS 32
>  #endif
>
> diff --git a/target/riscv/cpu-param.h b/target/riscv/cpu-param.h
> index cfdc67c258..b96e1ce12e 100644
> --- a/target/riscv/cpu-param.h
> +++ b/target/riscv/cpu-param.h
> @@ -9,10 +9,8 @@
>  #define RISCV_CPU_PARAM_H
>
>  #if defined(TARGET_RISCV64)
> -# define TARGET_PHYS_ADDR_SPACE_BITS 56 /* 44-bit PPN */
>  # define TARGET_VIRT_ADDR_SPACE_BITS 48 /* sv48 */
>  #elif defined(TARGET_RISCV32)
> -# define TARGET_PHYS_ADDR_SPACE_BITS 34 /* 22-bit PPN */
>  # define TARGET_VIRT_ADDR_SPACE_BITS 32 /* sv32 */
>  #endif
>  #define TARGET_PAGE_BITS 12 /* 4 KiB Pages */
> diff --git a/target/rx/cpu-param.h b/target/rx/cpu-param.h
> index 84934f3bca..4cf6183aa0 100644
> --- a/target/rx/cpu-param.h
> +++ b/target/rx/cpu-param.h
> @@ -21,7 +21,6 @@
>
>  #define TARGET_PAGE_BITS 12
>
> -#define TARGET_PHYS_ADDR_SPACE_BITS 32
>  #define TARGET_VIRT_ADDR_SPACE_BITS 32
>
>  #define TARGET_INSN_START_EXTRA_WORDS 0
> diff --git a/target/s390x/cpu-param.h b/target/s390x/cpu-param.h
> index abfae3bedf..e46e0757c6 100644
> --- a/target/s390x/cpu-param.h
> +++ b/target/s390x/cpu-param.h
> @@ -9,7 +9,6 @@
>  #define S390_CPU_PARAM_H
>
>  #define TARGET_PAGE_BITS 12
> -#define TARGET_PHYS_ADDR_SPACE_BITS 64
>  #define TARGET_VIRT_ADDR_SPACE_BITS 64
>
>  #define TARGET_INSN_START_EXTRA_WORDS 2
> diff --git a/target/sh4/cpu-param.h b/target/sh4/cpu-param.h
> index f328715ee8..e2632bb20f 100644
> --- a/target/sh4/cpu-param.h
> +++ b/target/sh4/cpu-param.h
> @@ -9,7 +9,6 @@
>  #define SH4_CPU_PARAM_H
>
>  #define TARGET_PAGE_BITS 12  /* 4k */
> -#define TARGET_PHYS_ADDR_SPACE_BITS  32
>  #ifdef CONFIG_USER_ONLY
>  # define TARGET_VIRT_ADDR_SPACE_BITS 31
>  #else
> diff --git a/target/sparc/cpu-param.h b/target/sparc/cpu-param.h
> index 45eea9d6ba..4c92862ea3 100644
> --- a/target/sparc/cpu-param.h
> +++ b/target/sparc/cpu-param.h
> @@ -9,7 +9,6 @@
>
>  #ifdef TARGET_SPARC64
>  # define TARGET_PAGE_BITS 13 /* 8k */
> -# define TARGET_PHYS_ADDR_SPACE_BITS  41
>  # ifdef TARGET_ABI32
>  #  define TARGET_VIRT_ADDR_SPACE_BITS 32
>  # else
> @@ -17,7 +16,6 @@
>  # endif
>  #else
>  # define TARGET_PAGE_BITS 12 /* 4k */
> -# define TARGET_PHYS_ADDR_SPACE_BITS 36
>  # define TARGET_VIRT_ADDR_SPACE_BITS 32
>  #endif
>
> diff --git a/target/tricore/cpu-param.h b/target/tricore/cpu-param.h
> index eb33a67c41..f260a888c2 100644
> --- a/target/tricore/cpu-param.h
> +++ b/target/tricore/cpu-param.h
> @@ -9,7 +9,6 @@
>  #define TRICORE_CPU_PARAM_H
>
>  #define TARGET_PAGE_BITS 14
> -#define TARGET_PHYS_ADDR_SPACE_BITS 32
>  #define TARGET_VIRT_ADDR_SPACE_BITS 32
>
>  #define TARGET_INSN_START_EXTRA_WORDS 0
> diff --git a/target/xtensa/cpu-param.h b/target/xtensa/cpu-param.h
> index 7a0c22c900..328176281e 100644
> --- a/target/xtensa/cpu-param.h
> +++ b/target/xtensa/cpu-param.h
> @@ -9,7 +9,6 @@
>  #define XTENSA_CPU_PARAM_H
>
>  #define TARGET_PAGE_BITS 12
> -#define TARGET_PHYS_ADDR_SPACE_BITS 32
>  #ifdef CONFIG_USER_ONLY
>  #define TARGET_VIRT_ADDR_SPACE_BITS 30
>  #else
>
> --
> 2.51.0
>
>
>

[-- Attachment #2: Type: text/html, Size: 12986 bytes --]

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

* Re: [PATCH 1/7] target/alpha: Introduce alpha_phys_addr_space_bits()
  2025-12-09 13:56 ` [PATCH 1/7] target/alpha: Introduce alpha_phys_addr_space_bits() Anton Johansson via
@ 2025-12-11 15:09   ` Richard Henderson
  0 siblings, 0 replies; 12+ messages in thread
From: Richard Henderson @ 2025-12-11 15:09 UTC (permalink / raw)
  To: Anton Johansson, qemu-devel; +Cc: Philippe Mathieu-Daudé

On 12/9/25 07:56, Anton Johansson wrote:
> In preparation for dropping TARGET_PHYS_ADDR_SPACE_BITS, add a
> a runtime function to correctly represent the size of the physical
> address space for EV4-6 based on the current CPU version.
> 
> Signed-off-by: Anton Johansson <anjo@rev.ng>
> ---
>   linux-user/alpha/target_proc.h |  2 +-
>   target/alpha/cpu.h             |  1 +
>   target/alpha/helper.c          | 18 ++++++++++++++++++
>   3 files changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/linux-user/alpha/target_proc.h b/linux-user/alpha/target_proc.h
> index da437ee0e5..bcdd1e343c 100644
> --- a/linux-user/alpha/target_proc.h
> +++ b/linux-user/alpha/target_proc.h
> @@ -57,7 +57,7 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd)
>               "L1 Dcache\t\t: n/a\n"
>               "L2 cache\t\t: n/a\n"
>               "L3 cache\t\t: n/a\n",
> -            model, TARGET_PAGE_SIZE, TARGET_PHYS_ADDR_SPACE_BITS,
> +            model, TARGET_PAGE_SIZE, alpha_phys_addr_space_bits(cpu_env),
>               max_cpus, num_cpus, cpu_mask);
>   
>       return 0;
> diff --git a/target/alpha/cpu.h b/target/alpha/cpu.h
> index 45944e46b5..9ee8d93b72 100644
> --- a/target/alpha/cpu.h
> +++ b/target/alpha/cpu.h
> @@ -286,6 +286,7 @@ bool alpha_cpu_exec_interrupt(CPUState *cpu, int int_req);
>   hwaddr alpha_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
>   #endif /* !CONFIG_USER_ONLY */
>   void alpha_cpu_dump_state(CPUState *cs, FILE *f, int flags);
> +uint8_t alpha_phys_addr_space_bits(CPUAlphaState *env);
>   int alpha_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg);
>   int alpha_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
>   
> diff --git a/target/alpha/helper.c b/target/alpha/helper.c
> index a9af52a928..0f0cf73bf3 100644
> --- a/target/alpha/helper.c
> +++ b/target/alpha/helper.c
> @@ -523,6 +523,24 @@ void alpha_cpu_dump_state(CPUState *cs, FILE *f, int flags)
>       qemu_fprintf(f, "\n");
>   }
>   
> +uint8_t alpha_phys_addr_space_bits(CPUAlphaState *env)
> +{
> +    switch (env->implver) {
> +    case IMPLVER_2106x:
> +        /* EV4 */
> +        return 34;
> +    case IMPLVER_21164:
> +        /* EV5 */
> +        return 40;
> +    case IMPLVER_21264:
> +    case IMPLVER_21364:
> +        /* EV6 and EV7*/
> +        return 44;
> +    default:
> +        g_assert_not_reached();
> +    }
> +}
> +
>   /* This should only be called from translate, via gen_excp.
>      We expect that ENV->PC has already been updated.  */
>   G_NORETURN void helper_excp(CPUAlphaState *env, int excp, int error)
> 

This could just as well be a static function within linux-user/alpha/target_proc.h.


r~


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

* Re: [PATCH 2/7] target/hppa: Define PA[20|1X] physical address space size
  2025-12-09 13:56 ` [PATCH 2/7] target/hppa: Define PA[20|1X] physical address space size Anton Johansson via
@ 2025-12-11 15:16   ` Richard Henderson
  0 siblings, 0 replies; 12+ messages in thread
From: Richard Henderson @ 2025-12-11 15:16 UTC (permalink / raw)
  To: Anton Johansson, qemu-devel; +Cc: Philippe Mathieu-Daudé

On 12/9/25 07:56, Anton Johansson wrote:
> When converting virtual to physical addresses,
> TARGET_PHYS_ADDR_SPACE_BITS is used under PA-RISC 2.0, and an explicit
> cast to uint32_t is used under PA-RISC 1.X.  Replace the former with a
> more specific macro limited to mem_helper.c, and make the latter
> conversion explicit by defining the size of the physical address space
> for PA-RISC 1.X.
> 
> Signed-off-by: Anton Johansson <anjo@rev.ng>
> ---
>   target/hppa/mem_helper.c | 23 ++++++++++++++++++-----
>   1 file changed, 18 insertions(+), 5 deletions(-)

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


r~



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

* Re: [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS
  2025-12-09 13:56 ` [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
  2025-12-09 16:07   ` Brian Cain
@ 2025-12-11 15:18   ` Richard Henderson
  1 sibling, 0 replies; 12+ messages in thread
From: Richard Henderson @ 2025-12-11 15:18 UTC (permalink / raw)
  To: Anton Johansson, qemu-devel; +Cc: Philippe Mathieu-Daudé

On 12/9/25 07:56, Anton Johansson wrote:
> The macro is no longer in use and can safely be dropped.
> 
> Signed-off-by: Anton Johansson<anjo@rev.ng>
> ---
>   include/exec/cpu-defs.h       | 3 ---
>   include/exec/poison.h         | 2 --
>   target/alpha/cpu-param.h      | 3 ---
>   target/arm/cpu-param.h        | 2 --
>   target/avr/cpu-param.h        | 1 -
>   target/hexagon/cpu-param.h    | 1 -
>   target/hppa/cpu-param.h       | 2 --
>   target/i386/cpu-param.h       | 2 --
>   target/loongarch/cpu-param.h  | 1 -
>   target/m68k/cpu-param.h       | 1 -
>   target/microblaze/cpu-param.h | 2 --
>   target/mips/cpu-param.h       | 2 --
>   target/openrisc/cpu-param.h   | 1 -
>   target/ppc/cpu-param.h        | 7 -------
>   target/riscv/cpu-param.h      | 2 --
>   target/rx/cpu-param.h         | 1 -
>   target/s390x/cpu-param.h      | 1 -
>   target/sh4/cpu-param.h        | 1 -
>   target/sparc/cpu-param.h      | 2 --
>   target/tricore/cpu-param.h    | 1 -
>   target/xtensa/cpu-param.h     | 1 -
>   21 files changed, 39 deletions(-)

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

r~


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

end of thread, other threads:[~2025-12-11 15:19 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-09 13:56 [PATCH 0/7] single-binary: Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
2025-12-09 13:56 ` [PATCH 1/7] target/alpha: Introduce alpha_phys_addr_space_bits() Anton Johansson via
2025-12-11 15:09   ` Richard Henderson
2025-12-09 13:56 ` [PATCH 2/7] target/hppa: Define PA[20|1X] physical address space size Anton Johansson via
2025-12-11 15:16   ` Richard Henderson
2025-12-09 13:56 ` [PATCH 3/7] target/i386: Drop physical address range checks Anton Johansson via
2025-12-09 13:56 ` [PATCH 4/7] target/loongarch: Introduce loongarch_palen_mask() Anton Johansson via
2025-12-09 13:56 ` [PATCH 5/7] hw/loongarch: Use loongarch_palen_mask() Anton Johansson via
2025-12-09 13:56 ` [PATCH 6/7] hw/riscv: Fix IOMMU PAS capability to 56 bits Anton Johansson via
2025-12-09 13:56 ` [PATCH 7/7] Drop TARGET_PHYS_ADDR_SPACE_BITS Anton Johansson via
2025-12-09 16:07   ` Brian Cain
2025-12-11 15:18   ` Richard Henderson

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