From 8eea980706d25e6f96730a5777b82f17aa584f30 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Tue, 17 Mar 2026 15:37:26 -0400 Subject: [PATCH] arm64: System info fixes * Implement arch_fill_topology_node * Change uname to return 'arm64' in utsname.machine instead of 'aarch64' to match what is used for packages (otherwise, on startup, package daemon thinks every package has the wrong architecture) Change-Id: Ibba8784fca826023e0e13fef4222bdba6a6a6964 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10684 Reviewed-by: waddlesplash --- .../kernel/arch/arm64/arch_system_info.cpp | 22 +++++++++++++------ src/system/libroot/posix/sys/uname.c | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/system/kernel/arch/arm64/arch_system_info.cpp b/src/system/kernel/arch/arm64/arch_system_info.cpp index 4d76ae6800..e44fb026a8 100644 --- a/src/system/kernel/arch/arm64/arch_system_info.cpp +++ b/src/system/kernel/arch/arm64/arch_system_info.cpp @@ -9,16 +9,24 @@ #include -status_t -arch_get_system_info(system_info *info, size_t size) -{ - return B_OK; -} - - void arch_fill_topology_node(cpu_topology_node_info* node, int32 cpu) { + switch (node->type) { + case B_TOPOLOGY_ROOT: + node->data.root.platform = B_CPU_ARM_64; + break; + case B_TOPOLOGY_PACKAGE: + node->data.package.vendor = B_CPU_VENDOR_UNKNOWN; + node->data.package.cache_line_size = CACHE_LINE_SIZE; + break; + case B_TOPOLOGY_CORE: + node->data.core.model = 0; + node->data.core.default_frequency = 0; + break; + default: + break; + } } diff --git a/src/system/libroot/posix/sys/uname.c b/src/system/libroot/posix/sys/uname.c index 730ac47546..9b569c8346 100644 --- a/src/system/libroot/posix/sys/uname.c +++ b/src/system/libroot/posix/sys/uname.c @@ -84,7 +84,7 @@ uname(struct utsname *info) platform = "arm"; break; case B_CPU_ARM_64: - platform = "aarch64"; + platform = "arm64"; break; case B_CPU_RISC_V: platform = "riscv64";