HomeFreeBSD

powerpc64le: stand fixes

Description

powerpc64le: stand fixes

Fix boot1 and loader on PowerPC64 little-endian (LE).

Due to endian issues, boot1 couldn't find the UFS boot partition
and loader wasn't able to load the kernel. Most of the issues
happened because boot1 and loader were BE binaries trying to access
LE UFS partitions and because loader expects the kernel ELF image
to use the same endian as itself.

To fix these issues, boot1 and loader are now built as LE binaries
on PPC64LE. To support this, the functions that call OpenFirmware
were enhanced to correctly perform endian conversion on its input
and output arguments and to change the CPU into BE mode before
making the calls, as OpenFirmware always runs in BE. Besides that,
some other small fixes were needed.

Submitted by: bdragon (initial version)
Reviewed by: alfredo, jhibbits
Sponsored by: Instituto de Pesquisas Eldorado (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D32160

(cherry picked from commit f83288645cd9726c24ca67292fbc3abb4eb65a36)

Details

Provenance
luporlAuthored on Oct 20 2021, 6:48 PM
Reviewer
alfredo
Differential Revision
D32160: powerpc64le: stand fixes
Parents
rG84800daacf33: powerpc64: fix OFWFB with Radix MMU
Branches
Unknown
Tags
Unknown