diff options
-rw-r--r-- | kernel/sys/kernel.S | 5 | ||||
-rw-r--r-- | usr/main.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/kernel/sys/kernel.S b/kernel/sys/kernel.S index 71b22a1..df55cc1 100644 --- a/kernel/sys/kernel.S +++ b/kernel/sys/kernel.S @@ -19,6 +19,11 @@ kernel_main: mov r0, #0x80000000 mcr p15, 0, r0, c9, c12, 1 + // Allow access to CNTKCTL from PL0 + mrc p15, 0, r0, c14, c1, 0 + orr r0, #1 + mcr p15, 0, r0, c14, c1, 0 + // Intentional undefined instruction // .word 0xf7f0a000 cpsie ai, #0x10 @@ -41,4 +41,8 @@ void main(void) subscribe_irq(SYS_TIMER_2_IRQ, loopt, &stime_2); subscribe_irq(SYS_TIMER_3_IRQ, loopt, &stime_3); add_thread(loop, 0, 0); + unsigned long long counter; + asm volatile ("mrrc p15, 0, %0, c14" : "=r"(counter)); + draw_hex32(0, 20, counter>>32); + draw_hex32(9, 20, counter); } |