HomeFreeBSD

psci: set psci_present as early as possible

Description

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

(cherry picked from commit 866beaa0aa95deeba467db3dcb605ba3a5048a5b)

Details

Provenance
kevansAuthored on Oct 27 2022, 3:46 AM
Parents
rGc4b8fda2c88b: bhyve: Avoid arithmetic on void pointers
Branches
Unknown
Tags
Unknown