HomeFreeBSD

powerpc64: fix OFWFB with Radix MMU

Description

powerpc64: fix OFWFB with Radix MMU

Current implementation of Radix MMU doesn't support mapping
arbitrary virtual addresses, such as the ones generated by
"direct mapping" I/O addresses. This caused the system to hang, when
early I/O addresses, such as those used by OpenFirmware Frame Buffer,
were remapped after the MMU was up.

To avoid having to modify mmu_radix_kenter_attr just to support this
use case, this change makes early I/O map use virtual addresses from
KVA area instead (similar to what mmu_radix_mapdev_attr does), as
these can be safely remapped later.

Reviewed by: alfredo (earlier version), jhibbits (in irc)
Sponsored by: Instituto de Pesquisas Eldorado (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D31232

(cherry picked from commit 76384bd10fdbb97be2803d969905f15a84255d6a)

Details

Provenance
luporlAuthored on Oct 14 2021, 1:39 PM
Reviewer
alfredo
Differential Revision
D31232: powerpc64: fix OFWFB with Radix MMU
Parents
rG3530ba8cc1e7: efirt(9): Correct efi_var_set definition in the manpage
Branches
Unknown
Tags
Unknown