* [PATCH v2 1/9] system: Define ram_addr_t to be always uint64_t
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 2/9] hw/vexpress.c: Remove forced cast to u64 Peter Xu
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu,
Philippe Mathieu-Daudé
QEMU's 32bit host support was deprecated since 10.0 and removed in
11.0 (commit 372ec46b9f), at least system emulation part (cf634dfcd8fc
revived tools). Now it's safe to move ram_addr_t completely over to
uint64_t.
It should be almost the same as uintptr_t as before for !Xen, except that
on some systems (like MacOS) uintptr_t and uint64_t can be typed slightly
differently, causing unnecessary compiler warnings when use them in a
mixture way.
Hopefully, this change also makes it clear that ram_addr_t is never used as
a host pointer in any form, but only an internal QEMU integer based address
space for allocating ramblocks.
[1] https://lore.kernel.org/r/d7b2fbf6-f9fa-4b39-8f40-95b7d5d0d8fb@oss.qualcomm.com
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Philippe Mathieu-Daudé <philmd@mailo.com>
Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
include/system/ram_addr.h | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/include/system/ram_addr.h b/include/system/ram_addr.h
index 129f6b8757..044c0b52cc 100644
--- a/include/system/ram_addr.h
+++ b/include/system/ram_addr.h
@@ -14,16 +14,14 @@
#ifndef RAM_ADDR_H
#define RAM_ADDR_H
-/* address in the RAM (different from a physical address) */
-#if defined(CONFIG_XEN_BACKEND)
+/*
+ * QEMU's internal RAM address space for ramblock allocations (different
+ * from guest physical address).
+ */
typedef uint64_t ram_addr_t;
-# define RAM_ADDR_MAX UINT64_MAX
-# define RAM_ADDR_FMT "%" PRIx64
-#else
-typedef uintptr_t ram_addr_t;
-# define RAM_ADDR_MAX UINTPTR_MAX
-# define RAM_ADDR_FMT "%" PRIxPTR
-#endif
+
+#define RAM_ADDR_MAX UINT64_MAX
+#define RAM_ADDR_FMT "%" PRIx64
#define DIRTY_MEMORY_VGA 0
#define DIRTY_MEMORY_CODE 1
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 2/9] hw/vexpress.c: Remove forced cast to u64
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
2026-08-18 17:20 ` [PATCH v2 1/9] system: Define ram_addr_t to be always uint64_t Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 3/9] arm/mps: Remove 32bit define for MPS3_DDR_SIZE Peter Xu
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
Now since ram_addr_t has switched to u64, remove the forced cast as not
needed.
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
hw/arm/vexpress.c | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index f26d8c6f8d..a6ce426356 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -363,16 +363,9 @@ static void a15_daughterboard_init(VexpressMachineState *vms,
MachineState *machine = MACHINE(vms);
MemoryRegion *sysmem = get_system_memory();
- {
- /* We have to use a separate 64 bit variable here to avoid the gcc
- * "comparison is always false due to limited range of data type"
- * warning if we are on a host where ram_addr_t is 32 bits.
- */
- uint64_t rsz = ram_size;
- if (rsz > (30ULL * 1024 * 1024 * 1024)) {
- error_report("vexpress-a15: cannot model more than 30GB RAM");
- exit(1);
- }
+ if (ram_size > (30ULL * 1024 * 1024 * 1024)) {
+ error_report("vexpress-a15: cannot model more than 30GB RAM");
+ exit(1);
}
/* RAM is from 0x80000000 upwards; there is no low-memory alias for it. */
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 3/9] arm/mps: Remove 32bit define for MPS3_DDR_SIZE
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
2026-08-18 17:20 ` [PATCH v2 1/9] system: Define ram_addr_t to be always uint64_t Peter Xu
2026-08-18 17:20 ` [PATCH v2 2/9] hw/vexpress.c: Remove forced cast to u64 Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 4/9] xen-mapcache: Remove 32bit support Peter Xu
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
QEMU has switched to 64bit-only hosts for all system emulations.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
hw/arm/mps2-tz.c | 9 ---------
hw/arm/mps3r.c | 8 --------
2 files changed, 17 deletions(-)
diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index d6d178642b..f47b0cacb8 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -178,16 +178,7 @@ OBJECT_DECLARE_TYPE(MPS2TZMachineState, MPS2TZMachineClass, MPS2TZ_MACHINE)
/* Slow 32Khz S32KCLK frequency in Hz */
#define S32KCLK_FRQ (32 * 1000)
-
-/*
- * The MPS3 DDR is 2GiB, but on a 32-bit host QEMU doesn't permit
- * emulation of that much guest RAM, so artificially make it smaller.
- */
-#if HOST_LONG_BITS == 32
-#define MPS3_DDR_SIZE (1 * GiB)
-#else
#define MPS3_DDR_SIZE (2 * GiB)
-#endif
/* For cpu{0,1}_mpu_{ns,s}, means "leave at SSE's default value" */
#define MPU_REGION_DEFAULT UINT32_MAX
diff --git a/hw/arm/mps3r.c b/hw/arm/mps3r.c
index caad820d3b..82a354e958 100644
--- a/hw/arm/mps3r.c
+++ b/hw/arm/mps3r.c
@@ -59,15 +59,7 @@ typedef struct RAMInfo {
int flags;
} RAMInfo;
-/*
- * The MPS3 DDR is 3GiB, but on a 32-bit host QEMU doesn't permit
- * emulation of that much guest RAM, so artificially make it smaller.
- */
-#if HOST_LONG_BITS == 32
-#define MPS3_DDR_SIZE (1 * GiB)
-#else
#define MPS3_DDR_SIZE (3 * GiB)
-#endif
/*
* Flag values:
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 4/9] xen-mapcache: Remove 32bit support
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
` (2 preceding siblings ...)
2026-08-18 17:20 ` [PATCH v2 3/9] arm/mps: Remove 32bit define for MPS3_DDR_SIZE Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 5/9] bsd-user: Remove 32bit host support in thunk_convert|print() Peter Xu
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
QEMU has switched to 64bit-only hosts for all system emulations.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
hw/xen/xen-mapcache.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/hw/xen/xen-mapcache.c b/hw/xen/xen-mapcache.c
index 85cf0cf359..e30c07c2ee 100644
--- a/hw/xen/xen-mapcache.c
+++ b/hw/xen/xen-mapcache.c
@@ -26,11 +26,7 @@
#include <xenevtchn.h>
#include <xengnttab.h>
-#if HOST_LONG_BITS == 32
-# define MCACHE_MAX_SIZE (1UL<<31) /* 2GB Cap */
-#else
-# define MCACHE_MAX_SIZE (1UL<<35) /* 32GB Cap */
-#endif
+#define MCACHE_MAX_SIZE (1UL << 35) /* 32GB Cap */
/* This is the size of the virtual address space reserve to QEMU that will not
* be use by MapCache.
@@ -151,11 +147,7 @@ void xen_map_cache_init(phys_offset_to_gaddr_t f, void *opaque)
exit(EXIT_FAILURE);
}
- if (HOST_LONG_BITS == 32) {
- bucket_shift = 16;
- } else {
- bucket_shift = 20;
- }
+ bucket_shift = 20;
if (geteuid() == 0) {
rlimit_as.rlim_cur = RLIM_INFINITY;
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 5/9] bsd-user: Remove 32bit host support in thunk_convert|print()
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
` (3 preceding siblings ...)
2026-08-18 17:20 ` [PATCH v2 4/9] xen-mapcache: Remove 32bit support Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 6/9] linux-user: " Peter Xu
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
QEMU has switched to 64bit-only hosts for all system/user emulations.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
bsd-user/thunk.c | 47 +++--------------------------------------------
1 file changed, 3 insertions(+), 44 deletions(-)
diff --git a/bsd-user/thunk.c b/bsd-user/thunk.c
index 3c89ae3ab8..6703286609 100644
--- a/bsd-user/thunk.c
+++ b/bsd-user/thunk.c
@@ -134,13 +134,7 @@ const argtype *thunk_convert(void *dst, const void *src,
case TYPE_ULONGLONG:
*(uint64_t *)dst = tswap64(*(uint64_t *)src);
break;
-#if HOST_LONG_BITS == 32 && TARGET_ABI_BITS == 32
- case TYPE_LONG:
- case TYPE_ULONG:
- case TYPE_PTRVOID:
- *(uint32_t *)dst = tswap32(*(uint32_t *)src);
- break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32
case TYPE_LONG:
case TYPE_ULONG:
case TYPE_PTRVOID:
@@ -155,27 +149,12 @@ const argtype *thunk_convert(void *dst, const void *src,
*(uint32_t *)dst = tswap32(*(uint64_t *)src & 0xffffffff);
}
break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
+#elif TARGET_ABI_BITS == 64
case TYPE_LONG:
case TYPE_ULONG:
case TYPE_PTRVOID:
*(uint64_t *)dst = tswap64(*(uint64_t *)src);
break;
-#elif HOST_LONG_BITS == 32 && TARGET_ABI_BITS == 64
- case TYPE_LONG:
- case TYPE_ULONG:
- case TYPE_PTRVOID:
- if (to_host) {
- *(uint32_t *)dst = tswap64(*(uint64_t *)src);
- } else {
- if (type == TYPE_LONG) {
- /* sign extension */
- *(uint64_t *)dst = tswap64(*(int32_t *)src);
- } else {
- *(uint64_t *)dst = tswap64(*(uint32_t *)src);
- }
- }
- break;
#else
#warning unsupported conversion
#endif
@@ -283,17 +262,7 @@ const argtype *thunk_print(void *arg, const argtype *type_ptr)
case TYPE_ULONGLONG:
qemu_log("%" PRIu64, tswap64(*(uint64_t *)arg));
break;
-#if HOST_LONG_BITS == 32 && TARGET_ABI_BITS == 32
- case TYPE_PTRVOID:
- qemu_log("0x%" PRIx32, tswap32(*(uint32_t *)arg));
- break;
- case TYPE_LONG:
- qemu_log("%" PRId32, tswap32(*(uint32_t *)arg));
- break;
- case TYPE_ULONG:
- qemu_log("%" PRIu32, tswap32(*(uint32_t *)arg));
- break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32
case TYPE_PTRVOID:
qemu_log("0x%" PRIx32, tswap32(*(uint64_t *)arg & 0xffffffff));
break;
@@ -303,16 +272,6 @@ const argtype *thunk_print(void *arg, const argtype *type_ptr)
case TYPE_ULONG:
qemu_log("%" PRIu32, tswap32(*(uint64_t *)arg & 0xffffffff));
break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
- case TYPE_PTRVOID:
- qemu_log("0x%" PRIx64, tswap64(*(uint64_t *)arg));
- break;
- case TYPE_LONG:
- qemu_log("%" PRId64, tswap64(*(uint64_t *)arg));
- break;
- case TYPE_ULONG:
- qemu_log("%" PRIu64, tswap64(*(uint64_t *)arg));
- break;
#else
case TYPE_PTRVOID:
qemu_log("0x%" PRIx64, tswap64(*(uint64_t *)arg));
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 6/9] linux-user: Remove 32bit host support in thunk_convert|print()
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
` (4 preceding siblings ...)
2026-08-18 17:20 ` [PATCH v2 5/9] bsd-user: Remove 32bit host support in thunk_convert|print() Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 7/9] arm/aspeed: Drop ASPEED_RAM_SIZE Peter Xu
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
QEMU has switched to 64bit-only hosts for all system/user emulations.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
linux-user/thunk.c | 47 +++-------------------------------------------
1 file changed, 3 insertions(+), 44 deletions(-)
diff --git a/linux-user/thunk.c b/linux-user/thunk.c
index 3cd19e79c6..892ff3d154 100644
--- a/linux-user/thunk.c
+++ b/linux-user/thunk.c
@@ -145,13 +145,7 @@ const argtype *thunk_convert(void *dst, const void *src,
case TYPE_ULONGLONG:
*(uint64_t *)dst = tswap64(*(uint64_t *)src);
break;
-#if HOST_LONG_BITS == 32 && TARGET_ABI_BITS == 32
- case TYPE_LONG:
- case TYPE_ULONG:
- case TYPE_PTRVOID:
- *(uint32_t *)dst = tswap32(*(uint32_t *)src);
- break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32
case TYPE_LONG:
case TYPE_ULONG:
case TYPE_PTRVOID:
@@ -166,27 +160,12 @@ const argtype *thunk_convert(void *dst, const void *src,
*(uint32_t *)dst = tswap32(*(uint64_t *)src & 0xffffffff);
}
break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
+#elif TARGET_ABI_BITS == 64
case TYPE_LONG:
case TYPE_ULONG:
case TYPE_PTRVOID:
*(uint64_t *)dst = tswap64(*(uint64_t *)src);
break;
-#elif HOST_LONG_BITS == 32 && TARGET_ABI_BITS == 64
- case TYPE_LONG:
- case TYPE_ULONG:
- case TYPE_PTRVOID:
- if (to_host) {
- *(uint32_t *)dst = tswap64(*(uint64_t *)src);
- } else {
- if (type == TYPE_LONG) {
- /* sign extension */
- *(uint64_t *)dst = tswap64(*(int32_t *)src);
- } else {
- *(uint64_t *)dst = tswap64(*(uint32_t *)src);
- }
- }
- break;
#else
#warning unsupported conversion
#endif
@@ -294,17 +273,7 @@ const argtype *thunk_print(void *arg, const argtype *type_ptr)
case TYPE_ULONGLONG:
qemu_log("%" PRIu64, tswap64(*(uint64_t *)arg));
break;
-#if HOST_LONG_BITS == 32 && TARGET_ABI_BITS == 32
- case TYPE_PTRVOID:
- qemu_log("0x%" PRIx32, tswap32(*(uint32_t *)arg));
- break;
- case TYPE_LONG:
- qemu_log("%" PRId32, tswap32(*(uint32_t *)arg));
- break;
- case TYPE_ULONG:
- qemu_log("%" PRIu32, tswap32(*(uint32_t *)arg));
- break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32
case TYPE_PTRVOID:
qemu_log("0x%" PRIx32, tswap32(*(uint64_t *)arg & 0xffffffff));
break;
@@ -314,16 +283,6 @@ const argtype *thunk_print(void *arg, const argtype *type_ptr)
case TYPE_ULONG:
qemu_log("%" PRIu32, tswap32(*(uint64_t *)arg & 0xffffffff));
break;
-#elif HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
- case TYPE_PTRVOID:
- qemu_log("0x%" PRIx64, tswap64(*(uint64_t *)arg));
- break;
- case TYPE_LONG:
- qemu_log("%" PRId64, tswap64(*(uint64_t *)arg));
- break;
- case TYPE_ULONG:
- qemu_log("%" PRIu64, tswap64(*(uint64_t *)arg));
- break;
#else
case TYPE_PTRVOID:
qemu_log("0x%" PRIx64, tswap64(*(uint64_t *)arg));
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 7/9] arm/aspeed: Drop ASPEED_RAM_SIZE
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
` (5 preceding siblings ...)
2026-08-18 17:20 ` [PATCH v2 6/9] linux-user: " Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 8/9] hw/arm/raspi4b: Drop board_rev for 32bit hosts Peter Xu
2026-08-18 17:20 ` [PATCH v2 9/9] machine: Remove 32bit limitation on ram size Peter Xu
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
QEMU has switched to 64bit-only hosts for all system/user emulations. It's
not needed anymore.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
include/hw/arm/aspeed.h | 7 -------
hw/arm/aspeed_ast2600_anacapa.c | 2 +-
hw/arm/aspeed_ast2600_bletchley.c | 2 +-
hw/arm/aspeed_ast2600_catalina.c | 2 +-
hw/arm/aspeed_ast2600_fby35.c | 2 +-
hw/arm/aspeed_ast2600_fuji.c | 2 +-
hw/arm/aspeed_ast2600_gb200nvl.c | 2 +-
7 files changed, 6 insertions(+), 13 deletions(-)
diff --git a/include/hw/arm/aspeed.h b/include/hw/arm/aspeed.h
index a00238ed74..7a012d87de 100644
--- a/include/hw/arm/aspeed.h
+++ b/include/hw/arm/aspeed.h
@@ -25,13 +25,6 @@ DECLARE_OBJ_CHECKERS(AspeedMachineState, AspeedMachineClass,
#define ASPEED_MAC2_ON (1 << 2)
#define ASPEED_MAC3_ON (1 << 3)
-/* On 32-bit hosts, lower RAM to 1G because of the 2047 MB limit */
-#if HOST_LONG_BITS == 32
-#define ASPEED_RAM_SIZE(sz) MIN((sz), 1 * GiB)
-#else
-#define ASPEED_RAM_SIZE(sz) (sz)
-#endif
-
struct AspeedMachineState {
MachineState parent_obj;
diff --git a/hw/arm/aspeed_ast2600_anacapa.c b/hw/arm/aspeed_ast2600_anacapa.c
index 65d6b0faa2..45f7a25efd 100644
--- a/hw/arm/aspeed_ast2600_anacapa.c
+++ b/hw/arm/aspeed_ast2600_anacapa.c
@@ -18,7 +18,7 @@
#define ANACAPA_BMC_HW_STRAP1 0x00002002
#define ANACAPA_BMC_HW_STRAP2 0x00000000
-#define ANACAPA_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB)
+#define ANACAPA_BMC_RAM_SIZE (2 * GiB)
/*
* "Anacapa HPM (MB)" FRU data. Generated with frugen.
diff --git a/hw/arm/aspeed_ast2600_bletchley.c b/hw/arm/aspeed_ast2600_bletchley.c
index b7e84db143..8f9061c472 100644
--- a/hw/arm/aspeed_ast2600_bletchley.c
+++ b/hw/arm/aspeed_ast2600_bletchley.c
@@ -18,7 +18,7 @@
/* Bletchley hardware value */
#define BLETCHLEY_BMC_HW_STRAP1 0x00002000
#define BLETCHLEY_BMC_HW_STRAP2 0x00000801
-#define BLETCHLEY_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB)
+#define BLETCHLEY_BMC_RAM_SIZE (2 * GiB)
static void bletchley_bmc_i2c_init(AspeedMachineState *bmc)
{
diff --git a/hw/arm/aspeed_ast2600_catalina.c b/hw/arm/aspeed_ast2600_catalina.c
index f714c9d1b3..c328997668 100644
--- a/hw/arm/aspeed_ast2600_catalina.c
+++ b/hw/arm/aspeed_ast2600_catalina.c
@@ -20,7 +20,7 @@
/* Catalina hardware value */
#define CATALINA_BMC_HW_STRAP1 0x00002002
#define CATALINA_BMC_HW_STRAP2 0x00000800
-#define CATALINA_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB)
+#define CATALINA_BMC_RAM_SIZE (2 * GiB)
#define TYPE_TMP75 TYPE_TMP105
#define TYPE_TMP421 "tmp421"
diff --git a/hw/arm/aspeed_ast2600_fby35.c b/hw/arm/aspeed_ast2600_fby35.c
index f624427070..1d546b1f0a 100644
--- a/hw/arm/aspeed_ast2600_fby35.c
+++ b/hw/arm/aspeed_ast2600_fby35.c
@@ -17,7 +17,7 @@
#define TYPE_LM75 TYPE_TMP105
#define TYPE_TMP421 "tmp421"
-#define FBY35_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB)
+#define FBY35_BMC_RAM_SIZE (2 * GiB)
static const uint8_t fby35_nic_fruid[] = {
0x01, 0x00, 0x00, 0x01, 0x0f, 0x20, 0x00, 0xcf, 0x01, 0x0e, 0x19, 0xd7,
diff --git a/hw/arm/aspeed_ast2600_fuji.c b/hw/arm/aspeed_ast2600_fuji.c
index 37db252e27..cb987e2eff 100644
--- a/hw/arm/aspeed_ast2600_fuji.c
+++ b/hw/arm/aspeed_ast2600_fuji.c
@@ -22,7 +22,7 @@
/* Fuji hardware value */
#define FUJI_BMC_HW_STRAP1 0x00000000
#define FUJI_BMC_HW_STRAP2 0x00000000
-#define FUJI_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB)
+#define FUJI_BMC_RAM_SIZE (2 * GiB)
static void get_pca9548_channels(I2CBus *bus, uint8_t mux_addr,
I2CBus **channels)
diff --git a/hw/arm/aspeed_ast2600_gb200nvl.c b/hw/arm/aspeed_ast2600_gb200nvl.c
index ad9a10110b..7abd934624 100644
--- a/hw/arm/aspeed_ast2600_gb200nvl.c
+++ b/hw/arm/aspeed_ast2600_gb200nvl.c
@@ -16,7 +16,7 @@
/* GB200NVL hardware value */
#define GB200NVL_BMC_HW_STRAP1 0x000000C0
#define GB200NVL_BMC_HW_STRAP2 0x00000003
-#define GB200NVL_BMC_RAM_SIZE ASPEED_RAM_SIZE(1 * GiB)
+#define GB200NVL_BMC_RAM_SIZE (1 * GiB)
static const uint8_t gb200nvl_bmc_fruid[] = {
0x01, 0x00, 0x00, 0x01, 0x0b, 0x00, 0x00, 0xf3, 0x01, 0x0a, 0x19, 0x1f,
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 8/9] hw/arm/raspi4b: Drop board_rev for 32bit hosts
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
` (6 preceding siblings ...)
2026-08-18 17:20 ` [PATCH v2 7/9] arm/aspeed: Drop ASPEED_RAM_SIZE Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
2026-08-18 17:20 ` [PATCH v2 9/9] machine: Remove 32bit limitation on ram size Peter Xu
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
QEMU has switched to 64bit-only hosts for all system/user emulations.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
hw/arm/raspi4b.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/hw/arm/raspi4b.c b/hw/arm/raspi4b.c
index e1595a875f..5f7abbb4c4 100644
--- a/hw/arm/raspi4b.c
+++ b/hw/arm/raspi4b.c
@@ -111,11 +111,7 @@ static void raspi4b_machine_class_init(ObjectClass *oc, const void *data)
MachineClass *mc = MACHINE_CLASS(oc);
RaspiBaseMachineClass *rmc = RASPI_BASE_MACHINE_CLASS(oc);
-#if HOST_LONG_BITS == 32
- rmc->board_rev = 0xa03111; /* Revision 1.1, 1 Gb RAM */
-#else
rmc->board_rev = 0xb03115; /* Revision 1.5, 2 Gb RAM */
-#endif
raspi_machine_class_common_init(mc, rmc->board_rev);
mc->auto_create_sdcard = true;
mc->init = raspi4b_machine_init;
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 9/9] machine: Remove 32bit limitation on ram size
2026-08-18 17:20 [PATCH v2 0/9] Remove 32bit support on system/user emulations Peter Xu
` (7 preceding siblings ...)
2026-08-18 17:20 ` [PATCH v2 8/9] hw/arm/raspi4b: Drop board_rev for 32bit hosts Peter Xu
@ 2026-08-18 17:20 ` Peter Xu
8 siblings, 0 replies; 10+ messages in thread
From: Peter Xu @ 2026-08-18 17:20 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Paolo Bonzini, Peter Maydell,
Philippe Mathieu-Daudé, Peter Xu
QEMU has switched to 64bit-only hosts for all system/user emulations.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
hw/core/machine.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/hw/core/machine.c b/hw/core/machine.c
index e617f7804d..776df84191 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -1625,14 +1625,6 @@ void machine_run_board_init(MachineState *machine, const char *mem_path, Error *
clock values from the log. */
replay_checkpoint(CHECKPOINT_INIT);
- if (!xen_enabled()) {
- /* On 32-bit hosts, QEMU is limited by virtual address space */
- if (machine->ram_size > (2047 << 20) && HOST_LONG_BITS == 32) {
- error_setg(errp, "at most 2047 MB RAM can be simulated");
- return;
- }
- }
-
if (machine->memdev) {
ram_addr_t backend_size = object_property_get_uint(OBJECT(machine->memdev),
"size", &error_abort);
--
2.54.0
^ permalink raw reply related [flat|nested] 10+ messages in thread