add basic secure monitor code for armv7+, for some reason sdram security does not...
[rpi-open-firmware.git] / arm_chainloader / chainloader.h
index d222593..6f416d2 100644 (file)
@@ -35,6 +35,23 @@ static inline void __attribute__((noreturn)) hang_cpu() {
     (((uintmax_t)(__n) >= NBBY * sizeof(uintmax_t)) ? 0 : \\r
     ((uintmax_t)1 << (uintmax_t)((__n) & (NBBY * sizeof(uintmax_t) - 1))))\r
 \r
+static inline uint32_t arm_get_cpsr() {\r
+       uint32_t r;\r
+       __asm__ volatile("mrs %0, cpsr\n" : "=r" (r) :: "memory");\r
+       return r;\r
+}\r
+\r
+#define ARM32_MODE_MASK 0x1f\r
+#define ARM32_USR 0x10\r
+#define ARM32_FIQ 0x11\r
+#define ARM32_IRQ 0x12\r
+#define ARM32_SVC 0x13\r
+#define ARM32_MON 0x16\r
+#define ARM32_ABT 0x17\r
+#define ARM32_HYP 0x1a\r
+#define ARM32_UND 0x1b\r
+#define ARM32_SYS 0x1f\r
+\r
 #ifdef __cplusplus\r
 }\r
 #endif\r
This page took 0.06826 seconds and 4 git commands to generate.