Skip to content

Commit 76ad6bb

Browse files
Test the PMSA direct-access registers.
Put something unique into each of the 15 MPU regions, to check we're reading/writing to the right ones.
1 parent c8ee756 commit 76ad6bb

3 files changed

Lines changed: 259 additions & 41 deletions

File tree

examples/mps3-an536/reference/registers-armv8r-none-eabihf.out

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,53 @@ Region 12: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: Re
1919
Region 13: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
2020
Region 14: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
2121
Region 15: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
22-
Region 0: El1Region { range: 0x0..=0x3fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
23-
Region 1: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
24-
Region 2: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
25-
Region 3: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
26-
Region 4: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
27-
Region 5: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
28-
Region 6: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
29-
Region 7: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
30-
Region 8: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
31-
Region 9: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
32-
Region 10: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
33-
Region 11: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
34-
Region 12: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
35-
Region 13: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
36-
Region 14: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
37-
Region 15: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
22+
Region 0: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
23+
Region 1: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
24+
Region 2: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
25+
Region 3: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
26+
Region 4: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
27+
Region 5: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
28+
Region 6: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
29+
Region 7: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
30+
Region 8: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
31+
Region 9: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
32+
Region 10: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
33+
Region 11: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
34+
Region 12: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
35+
Region 13: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
36+
Region 14: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
37+
Region 15: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
38+
Region 0: El1Region { range: 0x0..=0xfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
39+
Region 1: El1Region { range: 0x10000000..=0x1fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
40+
Region 2: El1Region { range: 0x20000000..=0x2fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
41+
Region 3: El1Region { range: 0x30000000..=0x3fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
42+
Region 4: El1Region { range: 0x40000000..=0x4fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
43+
Region 5: El1Region { range: 0x50000000..=0x5fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
44+
Region 6: El1Region { range: 0x60000000..=0x6fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
45+
Region 7: El1Region { range: 0x70000000..=0x7fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
46+
Region 8: El1Region { range: 0x80000000..=0x8fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
47+
Region 9: El1Region { range: 0x90000000..=0x9fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
48+
Region 10: El1Region { range: 0xa0000000..=0xafffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
49+
Region 11: El1Region { range: 0xb0000000..=0xbfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
50+
Region 12: El1Region { range: 0xc0000000..=0xcfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
51+
Region 13: El1Region { range: 0xd0000000..=0xdfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
52+
Region 14: El1Region { range: 0xe0000000..=0xefffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
53+
Region 15: El1Region { range: 0xf0000000..=0xffffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
54+
Region 0: Prbar { base: 00000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
55+
Region 1: Prbar { base: 00400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
56+
Region 2: Prbar { base: 00800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
57+
Region 3: Prbar { base: 00c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
58+
Region 4: Prbar { base: 01000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
59+
Region 5: Prbar { base: 01400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
60+
Region 6: Prbar { base: 01800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
61+
Region 7: Prbar { base: 01c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
62+
Region 8: Prbar { base: 02000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
63+
Region 9: Prbar { base: 02400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
64+
Region 10: Prbar { base: 02800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
65+
Region 11: Prbar { base: 02c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
66+
Region 12: Prbar { base: 03000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
67+
Region 13: Prbar { base: 03400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
68+
Region 14: Prbar { base: 03800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
69+
Region 15: Prbar { base: 03c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
3870
SCTLR { IE=0 TE=0 NMFI=0 EE=0 U=1 FI=0 DZ=1 BR=1 RR=0 V=0 I=0 Z=1 SW=0 C=0 A=0 M=0 } before setting C, I and Z
3971
SCTLR { IE=0 TE=0 NMFI=0 EE=0 U=1 FI=0 DZ=1 BR=1 RR=0 V=0 I=1 Z=1 SW=0 C=1 A=0 M=0 } after

examples/mps3-an536/reference/registers-thumbv8r-none-eabihf.out

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,53 @@ Region 12: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: Re
1919
Region 13: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
2020
Region 14: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
2121
Region 15: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
22-
Region 0: El1Region { range: 0x0..=0x3fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
23-
Region 1: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
24-
Region 2: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
25-
Region 3: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
26-
Region 4: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
27-
Region 5: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
28-
Region 6: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
29-
Region 7: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
30-
Region 8: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
31-
Region 9: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
32-
Region 10: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
33-
Region 11: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
34-
Region 12: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
35-
Region 13: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
36-
Region 14: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
37-
Region 15: El1Region { range: 0x0..=0x3f, shareability: NonShareable, access: ReadWriteNoEL0, no_exec: false, mair: 0, enable: false }
22+
Region 0: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
23+
Region 1: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
24+
Region 2: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
25+
Region 3: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
26+
Region 4: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
27+
Region 5: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
28+
Region 6: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
29+
Region 7: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
30+
Region 8: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
31+
Region 9: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
32+
Region 10: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
33+
Region 11: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
34+
Region 12: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
35+
Region 13: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
36+
Region 14: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
37+
Region 15: Prbar { base: 00000000, shareability: NonShareable, access_perms: ReadWriteNoEL0, nx: false }
38+
Region 0: El1Region { range: 0x0..=0xfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
39+
Region 1: El1Region { range: 0x10000000..=0x1fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
40+
Region 2: El1Region { range: 0x20000000..=0x2fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
41+
Region 3: El1Region { range: 0x30000000..=0x3fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
42+
Region 4: El1Region { range: 0x40000000..=0x4fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
43+
Region 5: El1Region { range: 0x50000000..=0x5fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
44+
Region 6: El1Region { range: 0x60000000..=0x6fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
45+
Region 7: El1Region { range: 0x70000000..=0x7fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
46+
Region 8: El1Region { range: 0x80000000..=0x8fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
47+
Region 9: El1Region { range: 0x90000000..=0x9fffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
48+
Region 10: El1Region { range: 0xa0000000..=0xafffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
49+
Region 11: El1Region { range: 0xb0000000..=0xbfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
50+
Region 12: El1Region { range: 0xc0000000..=0xcfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
51+
Region 13: El1Region { range: 0xd0000000..=0xdfffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
52+
Region 14: El1Region { range: 0xe0000000..=0xefffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
53+
Region 15: El1Region { range: 0xf0000000..=0xffffffff, shareability: OuterShareable, access: ReadWrite, no_exec: true, mair: 0, enable: true }
54+
Region 0: Prbar { base: 00000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
55+
Region 1: Prbar { base: 00400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
56+
Region 2: Prbar { base: 00800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
57+
Region 3: Prbar { base: 00c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
58+
Region 4: Prbar { base: 01000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
59+
Region 5: Prbar { base: 01400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
60+
Region 6: Prbar { base: 01800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
61+
Region 7: Prbar { base: 01c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
62+
Region 8: Prbar { base: 02000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
63+
Region 9: Prbar { base: 02400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
64+
Region 10: Prbar { base: 02800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
65+
Region 11: Prbar { base: 02c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
66+
Region 12: Prbar { base: 03000000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
67+
Region 13: Prbar { base: 03400000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
68+
Region 14: Prbar { base: 03800000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
69+
Region 15: Prbar { base: 03c00000, shareability: OuterShareable, access_perms: ReadWrite, nx: true }
3870
SCTLR { IE=0 TE=0 NMFI=0 EE=0 U=1 FI=0 DZ=1 BR=1 RR=0 V=0 I=0 Z=1 SW=0 C=0 A=0 M=0 } before setting C, I and Z
3971
SCTLR { IE=0 TE=0 NMFI=0 EE=0 U=1 FI=0 DZ=1 BR=1 RR=0 V=0 I=1 Z=1 SW=0 C=1 A=0 M=0 } after

0 commit comments

Comments
 (0)