imxrt_ral/blocks/imxrt1011/
romc.rs
1#[doc = "ROMC"]
2#[repr(C)]
3pub struct RegisterBlock {
4 _reserved0: [u8; 0xd4],
5 #[doc = "ROMC Data Registers"]
6 pub ROMPATCHD: [crate::RWRegister<u32>; 8usize],
7 #[doc = "ROMC Control Register"]
8 pub ROMPATCHCNTL: crate::RWRegister<u32>,
9 #[doc = "ROMC Enable Register High"]
10 pub ROMPATCHENH: crate::RORegister<u32>,
11 #[doc = "ROMC Enable Register Low"]
12 pub ROMPATCHENL: crate::RWRegister<u32>,
13 #[doc = "ROMC Address Registers"]
14 pub ROMPATCHA: [crate::RWRegister<u32>; 16usize],
15 _reserved1: [u8; 0xc8],
16 #[doc = "ROMC Status Register"]
17 pub ROMPATCHSR: crate::RWRegister<u32>,
18}
19#[doc = "ROMC Data Registers"]
20pub mod ROMPATCHD {
21 #[doc = "Data Fix Registers - Stores the data used for 1-word data fix operations"]
22 pub mod DATAX {
23 pub const offset: u32 = 0;
24 pub const mask: u32 = 0xffff_ffff << offset;
25 pub mod R {}
26 pub mod W {}
27 pub mod RW {}
28 }
29}
30#[doc = "ROMC Control Register"]
31pub mod ROMPATCHCNTL {
32 #[doc = "Data Fix Enable - Controls the use of the first 8 address comparators for 1-word data fix or for code patch routine"]
33 pub mod DATAFIX {
34 pub const offset: u32 = 0;
35 pub const mask: u32 = 0xff << offset;
36 pub mod R {}
37 pub mod W {}
38 pub mod RW {
39 #[doc = "Address comparator triggers a opcode patch"]
40 pub const DATAFIX_0: u32 = 0;
41 #[doc = "Address comparator triggers a data fix"]
42 pub const DATAFIX_1: u32 = 0x01;
43 }
44 }
45 #[doc = "ROMC Disable -- This bit, when set, disables all ROMC operations"]
46 pub mod DIS {
47 pub const offset: u32 = 29;
48 pub const mask: u32 = 0x01 << offset;
49 pub mod R {}
50 pub mod W {}
51 pub mod RW {
52 #[doc = "Does not affect any ROMC functions (default)"]
53 pub const DIS_0: u32 = 0;
54 #[doc = "Disable all ROMC functions: data fixing, and opcode patching"]
55 pub const DIS_1: u32 = 0x01;
56 }
57 }
58}
59#[doc = "ROMC Enable Register Low"]
60pub mod ROMPATCHENL {
61 #[doc = "Enable Address Comparator - This bit enables the corresponding address comparator to trigger an event"]
62 pub mod ENABLE {
63 pub const offset: u32 = 0;
64 pub const mask: u32 = 0xffff << offset;
65 pub mod R {}
66 pub mod W {}
67 pub mod RW {
68 #[doc = "Address comparator disabled"]
69 pub const ENABLE_0: u32 = 0;
70 #[doc = "Address comparator enabled, ROMC will trigger a opcode patch or data fix event upon matching of the associated address"]
71 pub const ENABLE_1: u32 = 0x01;
72 }
73 }
74}
75#[doc = "ROMC Address Registers"]
76pub mod ROMPATCHA {
77 #[doc = "THUMB Comparator Select - Indicates that this address will trigger a THUMB opcode patch or an Arm opcode patch"]
78 pub mod THUMBX {
79 pub const offset: u32 = 0;
80 pub const mask: u32 = 0x01 << offset;
81 pub mod R {}
82 pub mod W {}
83 pub mod RW {
84 #[doc = "Arm patch"]
85 pub const THUMBX_0: u32 = 0;
86 #[doc = "THUMB patch (ignore if data fix)"]
87 pub const THUMBX_1: u32 = 0x01;
88 }
89 }
90 #[doc = "Address Comparator Registers - Indicates the memory address to be watched"]
91 pub mod ADDRX {
92 pub const offset: u32 = 1;
93 pub const mask: u32 = 0x003f_ffff << offset;
94 pub mod R {}
95 pub mod W {}
96 pub mod RW {}
97 }
98}
99#[doc = "ROMC Status Register"]
100pub mod ROMPATCHSR {
101 #[doc = "ROMC Source Number - Binary encoding of the number of the address comparator which has an address match in the most recent patch event on ROMC AHB"]
102 pub mod SOURCE {
103 pub const offset: u32 = 0;
104 pub const mask: u32 = 0x3f << offset;
105 pub mod R {}
106 pub mod W {}
107 pub mod RW {
108 #[doc = "Address Comparator 0 matched"]
109 pub const SOURCE_0: u32 = 0;
110 #[doc = "Address Comparator 1 matched"]
111 pub const SOURCE_1: u32 = 0x01;
112 #[doc = "Address Comparator 15 matched"]
113 pub const SOURCE_15: u32 = 0x0f;
114 }
115 }
116 #[doc = "ROMC AHB Multiple Address Comparator matches Indicator - Indicates that multiple address comparator matches occurred"]
117 pub mod SW {
118 pub const offset: u32 = 17;
119 pub const mask: u32 = 0x01 << offset;
120 pub mod R {}
121 pub mod W {}
122 pub mod RW {
123 #[doc = "no event or comparator collisions"]
124 pub const SW_0: u32 = 0;
125 #[doc = "a collision has occurred"]
126 pub const SW_1: u32 = 0x01;
127 }
128 }
129}