diff options
author | Christian Cunningham <cc@localhost> | 2022-03-24 18:59:26 -0700 |
---|---|---|
committer | Christian Cunningham <cc@localhost> | 2022-03-24 18:59:45 -0700 |
commit | 180dfed61505cfe944755f7078d7b29063ea7734 (patch) | |
tree | c676af11f12f94121c763e55e2b10fc8017ec669 | |
parent | 7753da66d7d72f441dadd76f357fd5ceb50e7c8f (diff) |
Allow access to CNTPCT from user mode
-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); } |