#
ccbe9a9f |
| 21-Nov-2024 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: T-HEAD PBMT support
T-HEAD CPUs provide a spec-violating implementation of page-based memory types, using PTE bits [63:59]. Add basic support for this "errata", referred to in some places as
riscv: T-HEAD PBMT support
T-HEAD CPUs provide a spec-violating implementation of page-based memory types, using PTE bits [63:59]. Add basic support for this "errata", referred to in some places as an "extension".
Note that this change is not enough on its own, but a workaround is needed for the bootstrap (locore) page tables as well.
Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45472
show more ...
|
#
dfe57951 |
| 21-Nov-2024 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv: add custom T-HEAD dcache ops
This is the first major quirk we need to support in order to run on current T-HEAD/XuanTie CPUs, e.g. the C906 or C910, found in several existing RISC-V SBCs. Wit
riscv: add custom T-HEAD dcache ops
This is the first major quirk we need to support in order to run on current T-HEAD/XuanTie CPUs, e.g. the C906 or C910, found in several existing RISC-V SBCs. With these custom dcache routines installed, busdma can reliably communicate with devices which are not coherent w.r.t. the CPU's data caches.
This patch introduces the first quirk/errata handling functions to identcpu.c, and thus is forced to make some decisions about how this code is structured. It will be amended with the changes that follow in the series, yet I feel the final result is (unavoidably) somewhat clumsy. I expect the CPU identification code will continue to evolve as more CPUs and their quirks are eventually supported.
Discussed with: jrtc27 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D47455
show more ...
|