Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

gpu: nova-core: sequencer: Implement basic core operations

These opcodes implement various falcon-related boot operations: reset,
start, wait-for-halt.

Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Message-ID: <20251114195552.739371-11-joelagnelf@nvidia.com>

authored by

Joel Fernandes and committed by
Alexandre Courbot
9641f052 e386680e

+19
+19
drivers/gpu/nova-core/gsp/sequencer.rs
··· 76 76 RegPoll(fw::RegPollPayload), 77 77 DelayUs(fw::DelayUsPayload), 78 78 RegStore(fw::RegStorePayload), 79 + CoreReset, 80 + CoreStart, 81 + CoreWaitForHalt, 79 82 } 80 83 81 84 impl GspSeqCmd { ··· 113 110 let size = opcode_size + size_of_val(&payload); 114 111 (GspSeqCmd::RegStore(payload), size) 115 112 } 113 + fw::SeqBufOpcode::CoreReset => (GspSeqCmd::CoreReset, opcode_size), 114 + fw::SeqBufOpcode::CoreStart => (GspSeqCmd::CoreStart, opcode_size), 115 + fw::SeqBufOpcode::CoreWaitForHalt => (GspSeqCmd::CoreWaitForHalt, opcode_size), 116 116 _ => return Err(EINVAL), 117 117 }; 118 118 ··· 220 214 GspSeqCmd::RegPoll(cmd) => cmd.run(seq), 221 215 GspSeqCmd::DelayUs(cmd) => cmd.run(seq), 222 216 GspSeqCmd::RegStore(cmd) => cmd.run(seq), 217 + GspSeqCmd::CoreReset => { 218 + seq.gsp_falcon.reset(seq.bar)?; 219 + seq.gsp_falcon.dma_reset(seq.bar); 220 + Ok(()) 221 + } 222 + GspSeqCmd::CoreStart => { 223 + seq.gsp_falcon.start(seq.bar)?; 224 + Ok(()) 225 + } 226 + GspSeqCmd::CoreWaitForHalt => { 227 + seq.gsp_falcon.wait_till_halted(seq.bar)?; 228 + Ok(()) 229 + } 223 230 } 224 231 } 225 232 }