* [PATCH v2 0/9] Remove 32bit support on system/user emulations
@ 2026-08-18 17:20 Peter Xu
2026-08-18 17:20 ` [PATCH v2 1/9] system: Define ram_addr_t to be always uint64_t Peter Xu
` (8 more replies)
0 siblings, 9 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
v1: https://lore.kernel.org/r/20260814134035.2733355-1-peterx@redhat.com
In v2, I touched up the original patch per suggested. Then I added some
more patches, almost quickly looking at references of HOST_LONG_BITS and
clean up those I feel confident about over 32bits. I still left some there
(dev-properties, qht, etc.) which smells like tools may still use them.
Please have a look, thanks.
Peter Xu (9):
system: Define ram_addr_t to be always uint64_t
hw/vexpress.c: Remove forced cast to u64
arm/mps: Remove 32bit define for MPS3_DDR_SIZE
xen-mapcache: Remove 32bit support
bsd-user: Remove 32bit host support in thunk_convert|print()
linux-user: Remove 32bit host support in thunk_convert|print()
arm/aspeed: Drop ASPEED_RAM_SIZE
hw/arm/raspi4b: Drop board_rev for 32bit hosts
machine: Remove 32bit limitation on ram size
include/hw/arm/aspeed.h | 7 -----
include/system/ram_addr.h | 16 +++++------
bsd-user/thunk.c | 47 ++-----------------------------
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 +-
hw/arm/mps2-tz.c | 9 ------
hw/arm/mps3r.c | 8 ------
hw/arm/raspi4b.c | 4 ---
hw/arm/vexpress.c | 13 ++-------
hw/core/machine.c | 8 ------
hw/xen/xen-mapcache.c | 12 ++------
linux-user/thunk.c | 47 ++-----------------------------
16 files changed, 24 insertions(+), 159 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [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
end of thread, other threads:[~2026-08-18 17:22 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH v2 3/9] arm/mps: Remove 32bit define for MPS3_DDR_SIZE Peter Xu
2026-08-18 17:20 ` [PATCH v2 4/9] xen-mapcache: Remove 32bit support Peter Xu
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 ` [PATCH v2 6/9] linux-user: " Peter Xu
2026-08-18 17:20 ` [PATCH v2 7/9] arm/aspeed: Drop ASPEED_RAM_SIZE 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
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.