History log of /openbsd-src/sys/dev/fdt/psci.c (Results 1 – 17 of 17)
Revision Date Author Comments
# 07eca602 10-Jul-2024 kettenis <kettenis@openbsd.org>

Implement support for deeper idle states offered by PSCI. Reduces the
idle power usage of the Vivobook S15 by almost 50%.

ok patrick@


# 8feacbfa 13-Apr-2024 kettenis <kettenis@openbsd.org>

Renove unused function and prototype.

ok jsg@


# 8291c3f1 18-Mar-2024 kettenis <kettenis@openbsd.org>

Implement Spectre-V4 mitigations. The only real effect of this change is
that we now make a firmware call to enable the mitigations if the
firmware tells us mitigations are implemented and needed.

Implement Spectre-V4 mitigations. The only real effect of this change is
that we now make a firmware call to enable the mitigations if the
firmware tells us mitigations are implemented and needed. But according
to the specification these mitigations should be enabled by default.
The open source TF-A implementation only implements mitigations for older
Cortex-A76 cores. Newer Cortex-A76 revisions are not vulnerable and as
far as I can tell we only support SoCs with the newer cores.

ok patrick@

show more ...


# 5f4ad52d 19-Feb-2023 kettenis <kettenis@openbsd.org>

Add support for deep(er) idle states that can be entered using PSCI. For
now this only supports states advertised in device trees, but ACPI support
could be added as well. The parsing of the idle s

Add support for deep(er) idle states that can be entered using PSCI. For
now this only supports states advertised in device trees, but ACPI support
could be added as well. The parsing of the idle states as well as the
heuristic to pick the deepest one is probably a bit to simple, but more
complex cases can be added later. Worst case cores will use WFI and use
more power in suspend.

ok phessler@

show more ...


# 2fb1186f 13-Feb-2023 kettenis <kettenis@openbsd.org>

Add a driver for the ARM System Control and Management Interface, which,
among other things allows management of clocks under firmware management.

ok patrick@


# 16569a75 10-Dec-2022 patrick <patrick@openbsd.org>

Mitigate Spectre-BHB by using core-specific trampoline vectors. On some cores
Spectre-BHB can be mitigated by using a loop that branches a number of times.
For cores where this does not suffice, or

Mitigate Spectre-BHB by using core-specific trampoline vectors. On some cores
Spectre-BHB can be mitigated by using a loop that branches a number of times.
For cores where this does not suffice, or where Spectre-V2 needs to be handled
as well, try and call into a new PSCI function that mitigates both Spectre-V2
and Spectre-BHB. Some newer machines, which might not be in anyone's hands
yet, have an instruction (CLRBHB) that clears the BHB. If ECBHB is set, the
BHB isn't vulnerable. If we have CSV2_3/HCXT, it's not vulnerable at all.

No visible performance dropoff on a MacchiatoBin (4xA72) or Lenovo x13s (4xA78C+
4xX1C), but around 2-3% on a LX2K (16xA72) and RK3399 (4xA53+2xA72).

ok kettenis@

show more ...


# 149f7d98 09-Jul-2022 kettenis <kettenis@openbsd.org>

Add support for calling the CPU_OFF and SYSTEM_SUSPEND functions.
Add a function to check whether SYSTEM_SUSPEND is supported by the
PSCI firmware.

ok patrick@


# 9fdf0c62 24-Oct-2021 mpi <mpi@openbsd.org>

Constify struct cfattach.

ok visa@ a long time ago, ok patrick@


# fb4391c8 10-Oct-2021 kettenis <kettenis@openbsd.org>

Apparently it is possible for firmware to indicate that SMCCC_VERSION is
implemented but have that call return NOT_SUPPORTED. Makes no sense,
but the SMCCC standard documents this and tells us to tr

Apparently it is possible for firmware to indicate that SMCCC_VERSION is
implemented but have that call return NOT_SUPPORTED. Makes no sense,
but the SMCCC standard documents this and tells us to treat this as v1.0.
Change the code accordingly. Turn a few checks that should always be true
into KASSERTs to keep the control flow simple.

ok patrick@

show more ...


# 2d5eadd6 23-May-2018 kettenis <kettenis@openbsd.org>

Simplify the CVE-2017-5715 workaround code. Marvell backported SMSCCC 1.1
support to their ATF fork and I expect other vendors that bothered to
backport the early workaround to do the same. And ano

Simplify the CVE-2017-5715 workaround code. Marvell backported SMSCCC 1.1
support to their ATF fork and I expect other vendors that bothered to
backport the early workaround to do the same. And another ATF update is
needed anyway to implement the workaround for Spectre variant 4i
(CVE-2018-3639).

ok patrick@, mlarkin@, jsg@

show more ...


# cdcef956 03-May-2018 kettenis <kettenis@openbsd.org>

Add support for SMCCC 1.1 which provides proper support for the firmware-based
workaround for branch target injection attacks (CVE 2017-5715).

ok patrick@, jsg@


# 45584b64 23-Feb-2018 kettenis <kettenis@openbsd.org>

Get rid of the cpu_on_fn hook and call the psci(4) functions directly instead
like we already do in the code that flushes the BTB.

ok jsg@


# 5f9962a9 28-Jan-2018 jsg <jsg@openbsd.org>

Store PSCI function ids as uint32_t not int in the softc.
Avoids unwanted sign extension on arm64 that resulted in qemu not
recognising the function ids and matches the specification.

Problem report

Store PSCI function ids as uint32_t not int in the softc.
Avoids unwanted sign extension on arm64 that resulted in qemu not
recognising the function ids and matches the specification.

Problem reported by semarie@
ok kettenis@

show more ...


# 88672784 17-Jan-2018 kettenis <kettenis@openbsd.org>

Implement support for the PSCI_VERSION call and export the function such that
we can use it to defend against branch target injection attacks.

ok patrick@, visa@


# 8bcbf207 29-Dec-2017 kettenis <kettenis@openbsd.org>

Use register_t instead of uint32_t in smc/hmc calls such that arguments
to SMC64 functions don't get truncated. Implement support for the CPU_ON
call.


# a60283c7 27-Feb-2017 patrick <patrick@openbsd.org>

Add support for the older generation spec of PSCI, which supports
shutdown and reset only if the function id is explicitly provided
in the device tree. For the newer implementations we are supposed

Add support for the older generation spec of PSCI, which supports
shutdown and reset only if the function id is explicitly provided
in the device tree. For the newer implementations we are supposed
to be using the specified function ids only.

With and ok jsg@

show more ...


# 4406bb04 25-Jan-2017 jsg <jsg@openbsd.org>

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@