#
f2e62e60 |
| 11-Oct-2024 |
Justin Hibbits <jhibbits@FreeBSD.org> |
loader/powerpc: Add some CAS support for newer POWER CPUs
* Add PVR bits for POWER10 and POWER11 * Initialize the `err` outvar, in case it's not touched on success by the hypervisor, to prevent sp
loader/powerpc: Add some CAS support for newer POWER CPUs
* Add PVR bits for POWER10 and POWER11 * Initialize the `err` outvar, in case it's not touched on success by the hypervisor, to prevent spurious errors.
show more ...
|
Revision tags: release/13.4.0, release/14.1.0, release/13.3.0 |
|
#
3e15b01d |
| 22-Feb-2024 |
Warner Losh <imp@FreeBSD.org> |
libsa: Remove redundant sys/cdefs.h
Sponsored by: Netflix
|
Revision tags: release/14.0.0 |
|
#
1d386b48 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0 |
|
#
a23e18ea |
| 22-Oct-2021 |
Leandro Lupori <luporl@FreeBSD.org> |
powerpc64: tell kernel when radix is not available
If CAS detects that radix is not supported, set radix_mmu to 0 to avoid the kernel trying to use it and panic.
MFC after: 2 weeks Sponsored by: In
powerpc64: tell kernel when radix is not available
If CAS detects that radix is not supported, set radix_mmu to 0 to avoid the kernel trying to use it and panic.
MFC after: 2 weeks Sponsored by: Instituto de Pesquisas Eldorado (eldorado.org.br)
show more ...
|
#
f8328864 |
| 20-Oct-2021 |
Leandro Lupori <luporl@FreeBSD.org> |
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 th
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
show more ...
|
#
8ecf9a8b |
| 14-Oct-2021 |
Leandro Lupori <luporl@FreeBSD.org> |
powerpc64: make radix with superpages default
As Radix MMU with superpages enabled is now stable, make it the default choice on supported hardware (POWER9 and above), since its performance is greate
powerpc64: make radix with superpages default
As Radix MMU with superpages enabled is now stable, make it the default choice on supported hardware (POWER9 and above), since its performance is greater than that of HPT MMU.
Reviewed by: alfredo, jhibbits Sponsored by: Instituto de Pesquisas Eldorado (eldorado.org.br) Differential Revision: https://reviews.freebsd.org/D30797
show more ...
|
#
a58abcde |
| 15-Sep-2021 |
Leandro Lupori <luporl@FreeBSD.org> |
powerpc64: change CAS to support Radix MMU
Use radix_mmu environment variable to select between Hash or Radix MMU, when performing the CAS method call. This matches kernel's behavior, by selecting H
powerpc64: change CAS to support Radix MMU
Use radix_mmu environment variable to select between Hash or Radix MMU, when performing the CAS method call. This matches kernel's behavior, by selecting Hash MMU by default and Radix if radix_mmu is not zero, to make sure that both loader and kernel always select the same MMU.
The device tree is queried to detect Radix/GTSE support and to find out if CAS is supported, making the old CPU version and HV bit checks unnecessary now.
Reviewed by: jhibbits MFC after: 2 weeks Sponsored by: Instituto de Pesquisas Eldorado (eldorado.org.br) Differential Revision: https://reviews.freebsd.org/D31951
show more ...
|
Revision tags: release/13.0.0, release/12.2.0, release/11.4.0, release/12.1.0 |
|
#
8b3bc70a |
| 08-Oct-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352764 through r353315.
|
#
dbef5f71 |
| 08-Oct-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
loader/powerpc64: Include generic PVR values in CAS architecture list
Add generic PVR values for PowerISA 2.07 and 3.00. This allows booting pseries in QEMU with compatibilty mode enabled.
Submitt
loader/powerpc64: Include generic PVR values in CAS architecture list
Add generic PVR values for PowerISA 2.07 and 3.00. This allows booting pseries in QEMU with compatibilty mode enabled.
Submitted by: Shawn Anastasio <shawn@anastas.io>
show more ...
|
#
cd51f7df |
| 07-Oct-2019 |
Justin Hibbits <jhibbits@FreeBSD.org> |
loader/powerpc64: Fix HV check for CAS usage
Logic was backwards. The function returns true if it *is* running as a hypervisor, whereas we want to only call the CAS utility if we're running as a gu
loader/powerpc64: Fix HV check for CAS usage
Logic was backwards. The function returns true if it *is* running as a hypervisor, whereas we want to only call the CAS utility if we're running as a guest.
Reported by: Shawn Anastasio <shawn@anastas.io>
show more ...
|
#
c5c3ba6b |
| 03-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r351317 through r351731.
|
#
9ae63185 |
| 01-Sep-2019 |
Brandon Bergren <bdragon@FreeBSD.org> |
Move CAS check in powerpc64 ofw loader until after the PVR check.
This unbreaks using the powerpc64 loader on a 32-bit processor.
Approved by: jhibbits (mentor) Differential Revision: https://revie
Move CAS check in powerpc64 ofw loader until after the PVR check.
This unbreaks using the powerpc64 loader on a 32-bit processor.
Approved by: jhibbits (mentor) Differential Revision: https://reviews.freebsd.org/D21297
show more ...
|
#
83e356c3 |
| 31-Jul-2019 |
Leandro Lupori <luporl@FreeBSD.org> |
[PPC64] Implement CAS
Guest PPC OSs running under a hypervisor may communicate the features they support, in order for the hypervisor to expose a virtualized machine in the way the client (guest OS)
[PPC64] Implement CAS
Guest PPC OSs running under a hypervisor may communicate the features they support, in order for the hypervisor to expose a virtualized machine in the way the client (guest OS) expects (see LoPAPR 1.1 - B.6.2.3).
This is done by calling the "/ibm,client-architecture-support" (CAS) method, informing supported features in option vectors. Until now, FreeBSD wasn't using CAS, but instead relied on hypervisor/QEMU's defaults.
The problem is that, without CAS, it is very inconvenient to run POWER9 VMs on a POWER9 host running with radix enabled. This happens because, in this case, the QEMU default is to present the guest OS a dual MMU (HPT/RPT), instead of presenting a regular HPT MMU, as FreeBSD expects, resulting in an early panic. The known workarounds required either changing the host to disable radix or passing a flag to QEMU to run in a POWER8 compatible mode.
With CAS, FreeBSD is now able to communicate that it wants an HPT MMU, independent of the host setup, which now makes FreeBSD work on POWER9/pseries, with KVM enabled and without hugepages (support added in a previous commit).
As CAS is invoked through OpenFirmware's call-method interface, it needs to be performed early, when OpenFirmware is still operational. Besides, now that FDT is the default way to inspect the device tree on PPC, OFW call-method feature will be unavailable by default, when control is passed to the kernel. Because of this, the call to CAS is being performed at the loader, instead of at the kernel.
To avoid regressions with old platforms, this change uses CAS only on POWER8/POWER9.
Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D20827
show more ...
|