gpu: nova-core: falcon: Move start functionality into separate helper
Move start functionality into a separate helper so we can use it from the sequencer. 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-3-joelagnelf@nvidia.com>
This commit is contained in:
committed by
Alexandre Courbot
parent
2d981773e1
commit
c5c0cfa67a
@@ -564,7 +564,21 @@ impl<E: FalconEngine + 'static> Falcon<E> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Runs the loaded firmware and waits for its completion.
|
||||
/// Start the falcon CPU.
|
||||
pub(crate) fn start(&self, bar: &Bar0) -> Result<()> {
|
||||
match regs::NV_PFALCON_FALCON_CPUCTL::read(bar, &E::ID).alias_en() {
|
||||
true => regs::NV_PFALCON_FALCON_CPUCTL_ALIAS::default()
|
||||
.set_startcpu(true)
|
||||
.write(bar, &E::ID),
|
||||
false => regs::NV_PFALCON_FALCON_CPUCTL::default()
|
||||
.set_startcpu(true)
|
||||
.write(bar, &E::ID),
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Start running the loaded firmware.
|
||||
///
|
||||
/// `mbox0` and `mbox1` are optional parameters to write into the `MBOX0` and `MBOX1` registers
|
||||
/// prior to running.
|
||||
@@ -589,15 +603,7 @@ impl<E: FalconEngine + 'static> Falcon<E> {
|
||||
.write(bar, &E::ID);
|
||||
}
|
||||
|
||||
match regs::NV_PFALCON_FALCON_CPUCTL::read(bar, &E::ID).alias_en() {
|
||||
true => regs::NV_PFALCON_FALCON_CPUCTL_ALIAS::default()
|
||||
.set_startcpu(true)
|
||||
.write(bar, &E::ID),
|
||||
false => regs::NV_PFALCON_FALCON_CPUCTL::default()
|
||||
.set_startcpu(true)
|
||||
.write(bar, &E::ID),
|
||||
}
|
||||
|
||||
self.start(bar)?;
|
||||
self.wait_till_halted(bar)?;
|
||||
|
||||
let (mbox0, mbox1) = (
|
||||
|
||||
Reference in New Issue
Block a user