git: c4921a0faaf1 - main - powerpc: Always use BE tag in nexus_map_resource
Date: Tue, 13 May 2025 02:28:59 UTC
The branch main has been updated by jhibbits:
URL: https://cgit.FreeBSD.org/src/commit/?id=c4921a0faaf1683f39347dd066000d929c39c8b9
commit c4921a0faaf1683f39347dd066000d929c39c8b9
Author: Justin Hibbits <jhibbits@FreeBSD.org>
AuthorDate: 2025-05-13 01:35:14 +0000
Commit: Justin Hibbits <jhibbits@FreeBSD.org>
CommitDate: 2025-05-13 01:35:14 +0000
powerpc: Always use BE tag in nexus_map_resource
7b5a5e4e replaced nexus_activate_resource() with the bus generic
equivalent, which uses bus_map_resource(). However, though not intended
to have a functional change, nexus_map_resource() uses the bus tag of
the build (BE vs LE), while nexus_activate_resource() always explicitly
set a big-endian tag, leading to failures on powerpc64le now. Using BE
unless otherwise explicitly specified with the RF_LITTLEENDIAN fixes LE
on bare metal, and doesn't hurt in a VM, which nexus_map_resource() was
added for.
Reported by: pkubaj
Tested by: pkubaj
Fixes: 7b5a5e4e("powerpc nexus: Use bus_generic_rman_*")
MFC after: 1 day
---
sys/powerpc/powerpc/nexus.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys/powerpc/powerpc/nexus.c b/sys/powerpc/powerpc/nexus.c
index 18b8fc57114f..029b6ef8a479 100644
--- a/sys/powerpc/powerpc/nexus.c
+++ b/sys/powerpc/powerpc/nexus.c
@@ -288,7 +288,7 @@ nexus_map_resource(device_t bus, device_t child, struct resource *r,
if ((rman_get_flags(r) & RF_LITTLEENDIAN) != 0)
map->r_bustag = &bs_le_tag;
else
- map->r_bustag = nexus_get_bus_tag(NULL, NULL);
+ map->r_bustag = &bs_be_tag;
map->r_size = length;
map->r_bushandle = (bus_space_handle_t)map->r_vaddr;
break;