#
f91e9401 |
|
22-Apr-2024 |
Andrew Turner <andrew@FreeBSD.org> |
dev/psci: Check all compat strings When searching for the PSCI FDT node we only check a few compat strings. Use the existing compat_data array to check all strings the driver may attach to. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D44913
|
#
0f354b2b |
|
09-Jul-2021 |
Andriy Gapon <avg@FreeBSD.org> |
psci: split off psci_reboot from psci_shutdown Priority of psci_reboot set so that it is run after shutdown_panic is executed. This is to provide uniform experience with other platforms. MFC after: 3 weeks
|
#
53670ee1 |
|
15-Feb-2024 |
Stephen J. Kiernan <stevek@FreeBSD.org> |
psci: Add FDT node status check Consider the PSCI missing if the FDT node status says it is not okay. Reviewed by: andrew Obtained from: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D43920
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
7ca55fcc |
|
29-Jan-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Only call SMCCC init on arm64 We don't build the smccc code on arm so don't call into it there.
|
#
0600af1f |
|
03-Jun-2022 |
Andrew Turner <andrew@FreeBSD.org> |
Make SMCCC usable by device drivers To allow device drivers to call into SMCCC we need to initialise it earlier. As it depends on PSCI, and that is detected via ACPI or FDT move the call to smccc_init to the PSCI driver. Add a function for drivers to read the smccc version, or 0 if smccc is not present.
|
#
866beaa0 |
|
26-Oct-2022 |
Kyle Evans <kevans@FreeBSD.org> |
psci: set psci_present as early as possible psci_attach is way too late to provide the intended semantics for psci_present. psci calls can be made immediately after psci_init(), called way earlier at SI_SUB_CPU + SI_ORDER_FIRST, and we need it to be valid as early as we can possibly call a psci function. This fixes booting RPi3+4 with the in-review spintable patch; rpi3-psci-monitor patches the FDT to add a PSCI node, but it doesn't patch each cpus' enable-method. Because of this, we would stall the boot while enabling CPU 1 as we saw a valid looking enable-method and "no" functional PSCI and attempted to use the spintable rather than simply not starting secondary APs. Fixes: 2218070b2c3c32 ("psci: finish psci_present implementation") Reported by: karels
|
#
395bee12 |
|
09-May-2022 |
John Baldwin <jhb@FreeBSD.org> |
psci: Remove unused devclass arguments to DRIVER_MODULE.
|
#
2218070b |
|
18-Mar-2022 |
Kyle Evans <kevans@FreeBSD.org> |
psci: finish psci_present implementation This was already declared in psci.h, but it was never defined/set. Do this now, so we can use it to decide if enable-method in /cpus FDT nodes should be inspected later on. While we're here, convert it to a boolean. Reviewed by: andrew (slightly earlier version) Differential Revision: https://reviews.freebsd.org/D34553
|
#
0bc26186 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
psci: clean up empty lines in .c and .h files
|
#
7722d8c7 |
|
13-Sep-2019 |
Ruslan Bukin <br@FreeBSD.org> |
Add generic arm/arm64 secure-monitor SMCCC interface and switch PSCI code to use it. This interface will also be used by Intel Stratix 10 platform. This was not tested on arm due to lack of PSCI-enabled arm hardware lying around. Reviewed by: andrew Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21439
|
#
91e44013 |
|
19-Mar-2019 |
Michal Meloun <mmel@FreeBSD.org> |
PSCI: Don't take missing implementation of psci get_version() as fatal. Minimalistic PSCI implementation in U-Boot doesn't implement get_version() method for some SoC. In this case, use PSCI version declared by 'psci' node in DT as fallback. MFC after: 2 weeks
|
#
85ab1415 |
|
06-Jul-2018 |
Emmanuel Vadot <manu@FreeBSD.org> |
psci: Add \n at the end of printf Add a \n at the end of the printf if no PSCI function was found otherwise it mess up the console log.
|
#
9e8cb3d2 |
|
13-Jun-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Move psci_call to a header file so we can use it in other files to communicate with the firmware. Sponsored by: DARPA, AFRL
|
#
5add8393 |
|
12-Jun-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Add a handler for the PSCI_FEATURES function. This needs PSCI 1.0, so check for this, returning an error if the version is too old. Sponsored by: DARPA, AFRL
|
#
4493861b |
|
12-Jun-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Find and cache the PSCI version on driver attach. Sponsored by: DARPA, AFRL
|
#
0c38b2d3 |
|
12-Jun-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Rework PSCI so it only searches for the call function once. This is in preperation for supporting newer smccc functions that also use the same call method. Reviewed by: manu Differential Revision: https://reviews.freebsd.org/D15745
|
#
8ab09f8a |
|
09-Jan-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Add a function to find the PSCI version the firmware implements from outside the PSCI driver. MFC after: 1 week Sponsored by: DARPA, AFRL
|
#
a5c9ec37 |
|
19-Oct-2017 |
Ed Maste <emaste@FreeBSD.org> |
psci: change bootverbose string to 'PSCI 0.2 compatible' Prior to r324754 we treated PSCI 0.2 and 1.0 as identical, and r324754 extended that to include all PSCI 1.x revisions. Change the string emitted under bootverbose to reference '0.2 compatible' to avoid confusion when the system includes a later PSCI rev. Discussed with: andrew Sponsored by: The FreeBSD Foundation
|
#
833a983e |
|
19-Oct-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Allow later PSCI revisions to also work. The latest ARM Trusted Firmware reports version 1.1 so the check was failing. As thjis is a minor change from 1.0, and future 1.x revisions are also expected to be backwards compatible just ignore the minor revision in the init handler. Sponsored by: DARPA, AFRL
|
#
845ed716 |
|
06-Oct-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Also handle psci 1.0. This can be seen as a bug fix update for the 0.2 specification we already support, with the only changes in functions we don't currently use. Sponsored by: DARPA, AFRL
|
#
574a7c6c |
|
24-Apr-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Call the PSCI reset from cpu_reset on arm64. When rebooting from DDB the kernel calls this directly so the event handler is not called, meaning the computer fails to reboot. Tested by: cognet MFC after: 1 week Sponsored by: DARPA, AFRL
|
#
2b5014f6 |
|
07-Dec-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Add ACPI support to the PSCI driver. This checks the Fixed ACPI Description Table to find if the hardware supports PSCI, and if so what method the kernel should use to interact with it. Obtained from: ABT Systems Ltd Sponsored by: The FreeBSD Foundation
|
#
c2dd354b |
|
25-Oct-2016 |
Andrew Turner <andrew@FreeBSD.org> |
Create a new PSCI error code and use it to signal that starting the CPU is impossible as the PSCI firmware is missing. Sponsored by: ABT Systmes Ltd
|
#
6e3244f5 |
|
11-Aug-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Start to support PSCI 1.0. For all the functions we currently support this can be seen as the same as 0.2. There are changes with the data passed to CPU_SUSPEND, however we don't yet use this call. Sponsored by: ABT Systems Ltd
|
#
7ad1ac7d |
|
24-May-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Rework the PSCI cpu on code to allow it to work before device drivers have started. This allows this functions to be used with the regular ARM SMP initialisation sequence.
|
#
46b1fe92 |
|
12-Apr-2015 |
Andrew Turner <andrew@FreeBSD.org> |
Add a driver for the ARM Power State Coordination Interface (PSCI). This handles versions 0.1 and 0.2 of the standard on 32-bit ARM. With this driver we can shutdown in QEMU. Further work is needed to turn secondary cores on on boot and to support later revisions of the specification. Submitted by: Robin Randhawa <Robin.Randhawa at ARM.com> Sponsored by: The FreeBSD Foundation
|