Struct rp_pac::accessctrl::Accessctrl
source · pub struct Accessctrl { /* private fields */ }
Expand description
Hardware access control registers
Implementations§
source§impl Accessctrl
impl Accessctrl
pub const unsafe fn from_ptr(ptr: *mut ()) -> Self
pub const fn as_ptr(&self) -> *mut ()
sourcepub const fn lock(self) -> Reg<Lock, RW>
pub const fn lock(self) -> Reg<Lock, RW>
Once a LOCK bit is written to 1, ACCESSCTRL silently ignores writes from that master. LOCK is writable only by a Secure, Privileged processor or debugger. LOCK bits are only writable when their value is zero. Once set, they can never be cleared, except by a full reset of ACCESSCTRL Setting the LOCK bit does not affect whether an access raises a bus error. Unprivileged writes, or writes from the DMA, will continue to raise bus errors. All other accesses will continue not to.
sourcepub const fn force_core_ns(self) -> Reg<ForceCoreNs, RW>
pub const fn force_core_ns(self) -> Reg<ForceCoreNs, RW>
Force core 1’s bus accesses to always be Non-secure, no matter the core’s internal state. Useful for schemes where one core is designated as the Non-secure core, since some peripherals may filter individual registers internally based on security state but not on master ID.
sourcepub const fn cfgreset(self) -> Reg<Cfgreset, RW>
pub const fn cfgreset(self) -> Reg<Cfgreset, RW>
Write 1 to reset all ACCESSCTRL configuration, except for the LOCK and FORCE_CORE_NS registers. This bit is used in the RP2350 bootrom to quickly restore ACCESSCTRL to a known state during the boot path. Note that, like all registers in ACCESSCTRL, this register is not writable when the writer’s corresponding LOCK bit is set, therefore a master which has been locked out of ACCESSCTRL can not use the CFGRESET register to disturb its contents.
sourcepub const fn gpio_nsmask0(self) -> Reg<u32, RW>
pub const fn gpio_nsmask0(self) -> Reg<u32, RW>
Control whether GPIO0…31 are accessible to Non-secure code. Writable only by a Secure, Privileged processor or debugger. 0 -> Secure access only 1 -> Secure + Non-secure access
sourcepub const fn gpio_nsmask1(self) -> Reg<GpioNsmask1, RW>
pub const fn gpio_nsmask1(self) -> Reg<GpioNsmask1, RW>
Control whether GPIO32..47 are accessible to Non-secure code, and whether QSPI and USB bitbang are accessible through the Non-secure SIO. Writable only by a Secure, Privileged processor or debugger.
sourcepub const fn rom(self) -> Reg<Access, RW>
pub const fn rom(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access ROM, and at what security/privilege levels they can do so. Defaults to fully open access. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn xip_main(self) -> Reg<Access, RW>
pub const fn xip_main(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access XIP_MAIN, and at what security/privilege levels they can do so. Defaults to fully open access. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn sram(self, n: usize) -> Reg<Access, RW>
pub const fn sram(self, n: usize) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access SRAM0, and at what security/privilege levels they can do so. Defaults to fully open access. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn dma(self) -> Reg<Access, RW>
pub const fn dma(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access DMA, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn usbctrl(self) -> Reg<Access, RW>
pub const fn usbctrl(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access USBCTRL, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pio0(self) -> Reg<Access, RW>
pub const fn pio0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PIO0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pio1(self) -> Reg<Access, RW>
pub const fn pio1(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PIO1, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pio2(self) -> Reg<Access, RW>
pub const fn pio2(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PIO2, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn coresight_trace(self) -> Reg<Access, RW>
pub const fn coresight_trace(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access CORESIGHT_TRACE, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn coresight_periph(self) -> Reg<Access, RW>
pub const fn coresight_periph(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access CORESIGHT_PERIPH, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn sysinfo(self) -> Reg<Access, RW>
pub const fn sysinfo(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access SYSINFO, and at what security/privilege levels they can do so. Defaults to fully open access. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn resets(self) -> Reg<Access, RW>
pub const fn resets(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access RESETS, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn io_bank0(self) -> Reg<Access, RW>
pub const fn io_bank0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access IO_BANK0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn io_bank1(self) -> Reg<Access, RW>
pub const fn io_bank1(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access IO_BANK1, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pads_bank0(self) -> Reg<Access, RW>
pub const fn pads_bank0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PADS_BANK0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pads_qspi(self) -> Reg<Access, RW>
pub const fn pads_qspi(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PADS_QSPI, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn busctrl(self) -> Reg<Access, RW>
pub const fn busctrl(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access BUSCTRL, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn adc0(self) -> Reg<Access, RW>
pub const fn adc0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access ADC0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn hstx(self) -> Reg<Access, RW>
pub const fn hstx(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access HSTX, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn i2c0(self) -> Reg<Access, RW>
pub const fn i2c0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access I2C0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn i2c1(self) -> Reg<Access, RW>
pub const fn i2c1(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access I2C1, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pwm(self) -> Reg<Access, RW>
pub const fn pwm(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PWM, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn spi0(self) -> Reg<Access, RW>
pub const fn spi0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access SPI0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn spi1(self) -> Reg<Access, RW>
pub const fn spi1(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access SPI1, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn timer0(self) -> Reg<Access, RW>
pub const fn timer0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access TIMER0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn timer1(self) -> Reg<Access, RW>
pub const fn timer1(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access TIMER1, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn uart0(self) -> Reg<Access, RW>
pub const fn uart0(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access UART0, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn uart1(self) -> Reg<Access, RW>
pub const fn uart1(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access UART1, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn otp(self) -> Reg<Access, RW>
pub const fn otp(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access OTP, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn tbman(self) -> Reg<Access, RW>
pub const fn tbman(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access TBMAN, and at what security/privilege levels they can do so. Defaults to Secure access from any master. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn powman(self) -> Reg<Access, RW>
pub const fn powman(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access POWMAN, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn trng(self) -> Reg<Access, RW>
pub const fn trng(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access TRNG, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn sha256(self) -> Reg<Access, RW>
pub const fn sha256(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access SHA256, and at what security/privilege levels they can do so. Defaults to Secure, Privileged access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn syscfg(self) -> Reg<Access, RW>
pub const fn syscfg(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access SYSCFG, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn clocks(self) -> Reg<Access, RW>
pub const fn clocks(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access CLOCKS, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn xosc(self) -> Reg<Access, RW>
pub const fn xosc(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access XOSC, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn rosc(self) -> Reg<Access, RW>
pub const fn rosc(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access ROSC, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pll_sys(self) -> Reg<Access, RW>
pub const fn pll_sys(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PLL_SYS, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn pll_usb(self) -> Reg<Access, RW>
pub const fn pll_usb(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access PLL_USB, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn ticks(self) -> Reg<Access, RW>
pub const fn ticks(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access TICKS, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn watchdog(self) -> Reg<Access, RW>
pub const fn watchdog(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access WATCHDOG, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn rsm(self) -> Reg<Access, RW>
pub const fn rsm(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access RSM, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn xip_ctrl(self) -> Reg<Access, RW>
pub const fn xip_ctrl(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access XIP_CTRL, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn xip_qmi(self) -> Reg<Access, RW>
pub const fn xip_qmi(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access XIP_QMI, and at what security/privilege levels they can do so. Defaults to Secure, Privileged processor or debug access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
sourcepub const fn xip_aux(self) -> Reg<Access, RW>
pub const fn xip_aux(self) -> Reg<Access, RW>
Control whether debugger, DMA, core 0 and core 1 can access XIP_AUX, and at what security/privilege levels they can do so. Defaults to Secure, Privileged access only. This register is writable only from a Secure, Privileged processor or debugger, with the exception of the NSU bit, which becomes Non-secure-Privileged-writable when the NSP bit is set.
Trait Implementations§
source§impl Clone for Accessctrl
impl Clone for Accessctrl
source§fn clone(&self) -> Accessctrl
fn clone(&self) -> Accessctrl
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl PartialEq for Accessctrl
impl PartialEq for Accessctrl
impl Copy for Accessctrl
impl Eq for Accessctrl
impl Send for Accessctrl
impl StructuralPartialEq for Accessctrl
impl Sync for Accessctrl
Auto Trait Implementations§
impl Freeze for Accessctrl
impl RefUnwindSafe for Accessctrl
impl Unpin for Accessctrl
impl UnwindSafe for Accessctrl
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)