git: 45d585ab7f22 - stable/14 - powerpc: Always use BE tag in nexus_map_resource
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 15 May 2025 01:50:09 UTC
The branch stable/14 has been updated by jhibbits:
URL: https://cgit.FreeBSD.org/src/commit/?id=45d585ab7f222ca36988c406df528128a17f9884
commit 45d585ab7f222ca36988c406df528128a17f9884
Author: Justin Hibbits <jhibbits@FreeBSD.org>
AuthorDate: 2025-05-13 01:35:14 +0000
Commit: Justin Hibbits <jhibbits@FreeBSD.org>
CommitDate: 2025-05-15 01:38:24 +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
(cherry picked from commit c4921a0faaf1683f39347dd066000d929c39c8b9)
---
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 826e75daa374..b40bb26fd395 100644
--- a/sys/powerpc/powerpc/nexus.c
+++ b/sys/powerpc/powerpc/nexus.c
@@ -289,7 +289,7 @@ nexus_map_resource(device_t bus, device_t child, int type, 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;