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);  }  | 
