On 11/18/25 7:04 PM, Alexandre Courbot wrote:
On Sat Nov 15, 2025 at 8:30 AM JST, Timur Tabi wrote:
<snip>
@@ -290,6 +291,15 @@ pub(crate) fn mem_scrubbing_done(self) -> bool {
16:16 set_dmtag as u8;
});
+impl NV_PFALCON_FALCON_DMATRFCMD {
+ /// Programs the 'imem' and 'sec' fields for the given FalconMem
+ pub(crate) fn with_falcon_mem(self, mem: FalconMem) -> Self {
+ self
+ .set_imem(mem != FalconMem::Dmem)
+ .set_sec(if mem == FalconMem::ImemSec { 1 } else { 0 })
+ }
+}
+
After merging `ImemSec` and `ImemNs` into a single enum, you can change
this code into:
self.set_imem(matches!(mem, FalconMem::Imem { .. }))
.set_sec(if matches!(mem, FalconMem::Imem { secure: true }) {
Or with enums all the way down:
.set_sec(if matches!(mem, FalconMem::Imem { NonSecure }) {
1
} else {
0
})
thanks,
--
John Hubbard