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
This commit is contained in:
Justin Hibbits 2025-05-12 21:35:14 -04:00
parent fc40f4ca62
commit c4921a0faa

View file

@ -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;