mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
gpu: nova-core: gsp: Add support for checking if GSP reloaded
During the sequencer process, we need to check if GSP was successfully reloaded. Add functionality to check for the same. Reviewed-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Message-ID: <20251114195552.739371-6-joelagnelf@nvidia.com>
This commit is contained in:
parent
0f2c8e278e
commit
f77be04d00
|
|
@ -1,5 +1,11 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
use kernel::{
|
||||
io::poll::read_poll_timeout,
|
||||
prelude::*,
|
||||
time::Delta, //
|
||||
};
|
||||
|
||||
use crate::{
|
||||
driver::Bar0,
|
||||
falcon::{
|
||||
|
|
@ -37,4 +43,16 @@ pub(crate) fn clear_swgen0_intr(&self, bar: &Bar0) {
|
|||
.set_swgen0(true)
|
||||
.write(bar, &Gsp::ID);
|
||||
}
|
||||
|
||||
/// Checks if GSP reload/resume has completed during the boot process.
|
||||
#[expect(dead_code)]
|
||||
pub(crate) fn check_reload_completed(&self, bar: &Bar0, timeout: Delta) -> Result<bool> {
|
||||
read_poll_timeout(
|
||||
|| Ok(regs::NV_PGC6_BSI_SECURE_SCRATCH_14::read(bar)),
|
||||
|val| val.boot_stage_3_handoff(),
|
||||
Delta::ZERO,
|
||||
timeout,
|
||||
)
|
||||
.map(|_| true)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,6 +138,12 @@ pub(crate) fn higher_bound(self) -> u64 {
|
|||
// These scratch registers remain powered on even in a low-power state and have a designated group
|
||||
// number.
|
||||
|
||||
// Boot Sequence Interface (BSI) register used to determine
|
||||
// if GSP reload/resume has completed during the boot process.
|
||||
register!(NV_PGC6_BSI_SECURE_SCRATCH_14 @ 0x001180f8 {
|
||||
26:26 boot_stage_3_handoff as bool;
|
||||
});
|
||||
|
||||
// Privilege level mask register. It dictates whether the host CPU has privilege to access the
|
||||
// `PGC6_AON_SECURE_SCRATCH_GROUP_05` register (which it needs to read GFW_BOOT).
|
||||
register!(NV_PGC6_AON_SECURE_SCRATCH_GROUP_05_PRIV_LEVEL_MASK @ 0x00118128,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user