On Wed, 14 Oct 2026 09:00:37 +0200, Shawn Guo <[email protected]> said: > For early_boot subsystems, probe unconditionally marks the rproc > RPROC_DETACHED and qcom_pas_attach() discovers from SMP2P whether the > bootloader actually started the remote. If it did not, attach sets the > state back to RPROC_OFFLINE and fails, expecting the core to boot the > firmware instead. The core does not do that: rproc_boot() treats the > attach failure as fatal and the remote is never started. > > This is hit on Nord with firmware where XBL no longer brings ADSP out > of reset. The remote never publishes its inbound SMP2P entries, so the > very first state read fails (debug print below) and the ADSP stays down: > > qcom_q6v5_pas 4c00000.remoteproc: Failed to get fatal_irq state: -19 > remoteproc remoteproc0: can't attach to rproc adsp: -19 > > The ready, stop-ack and sysmon shutdown-ack signals cannot change while > Linux has not yet interacted with the remote, so there is no reason to > defer the decision to attach time. Check them in probe and only mark > the rproc RPROC_DETACHED when the remote is up and has not been asked > to stop; otherwise leave it RPROC_OFFLINE so the regular firmware boot > path is taken. The ready state is read first so that a missing SMP2P > entry -ENODEV is treated as "not running" before sysmon is queried. > > qcom_pas_attach() keeps only the fatal check, since that is the one > signal that has to be acted upon once the rproc is attached. > > Assisted-by: LLM > Reviewed-by: Stephan Gerhold <[email protected]> > Fixes: 16472c99f469 ("remoteproc: qcom: pas: Add late attach support for > subsystems") > Signed-off-by: Shawn Guo <[email protected]> > ---
Reviewed-by: Bartosz Golaszewski <[email protected]>

