@@ -105,14 +105,23 @@ impl TryFrom<u8> for FalconCoreRevSubversion {
105
105
/// register.
106
106
#[ repr( u8 ) ]
107
107
#[ derive( Debug , Default , Copy , Clone ) ]
108
+ /// Security mode of the Falcon microprocessor.
109
+ ///
110
+ /// See `falcon.rst` for more details.
108
111
pub ( crate ) enum FalconSecurityModel {
109
112
/// Non-Secure: runs unsigned code without privileges.
110
113
#[ default]
111
114
None = 0 ,
112
- /// Low-Secure: runs code with some privileges. Can only be entered from `Heavy` mode, which
113
- /// will typically validate the LS code through some signature.
115
+ /// Light-Secured (LS): Runs signed code with some privileges.
116
+ /// Entry into this mode is only possible from 'Heavy-secure' mode, which verifies the code's
117
+ /// signature.
118
+ ///
119
+ /// Also known as Low-Secure, Privilege Level 2 or PL2.
114
120
Light = 2 ,
115
- /// High-Secure: runs signed code with full privileges. Signature is validated by boot ROM.
121
+ /// Heavy-Secured (HS): Runs signed code with full privileges.
122
+ /// The code's signature is verified by the Falcon Boot ROM (BROM).
123
+ ///
124
+ /// Also known as High-Secure, Privilege Level 3 or PL3.
116
125
Heavy = 3 ,
117
126
}
118
127
impl_from_enum_to_u32 ! ( FalconSecurityModel ) ;
@@ -136,10 +145,13 @@ impl TryFrom<u8> for FalconSecurityModel {
136
145
}
137
146
138
147
/// Signing algorithm for a given firmware, used in the [`crate::regs::NV_PFALCON2_FALCON_MOD_SEL`]
139
- /// register.
148
+ /// register. It is passed to the Falcon Boot ROM (BROM) as a parameter.
140
149
#[ repr( u8 ) ]
141
150
#[ derive( Debug , Default , Copy , Clone , PartialEq , Eq ) ]
142
151
pub ( crate ) enum FalconModSelAlgo {
152
+ /// AES.
153
+ #[ expect( dead_code) ]
154
+ Aes = 0 ,
143
155
/// RSA3K.
144
156
#[ default]
145
157
Rsa3k = 1 ,
@@ -209,15 +221,18 @@ pub(crate) enum FalconMem {
209
221
Dmem ,
210
222
}
211
223
212
- /// Target/source of a DMA transfer to/from falcon memory.
224
+ /// Defines the Framebuffer Interface (FBIF) aperture type.
225
+ /// This determines the memory type for external memory access during a DMA transfer, which is
226
+ /// performed by the Falcon's Framebuffer DMA (FBDMA) engine. See falcon.rst for more details.
213
227
#[ derive( Debug , Clone , Default ) ]
214
228
pub ( crate ) enum FalconFbifTarget {
215
229
/// VRAM.
216
230
#[ default]
231
+ /// Local Framebuffer (GPU's VRAM memory).
217
232
LocalFb = 0 ,
218
- /// Coherent system memory.
233
+ /// Coherent system memory (System DRAM) .
219
234
CoherentSysmem = 1 ,
220
- /// Non-coherent system memory.
235
+ /// Non-coherent system memory (System DRAM) .
221
236
NoncoherentSysmem = 2 ,
222
237
}
223
238
impl_from_enum_to_u32 ! ( FalconFbifTarget ) ;
0 commit comments