summaryrefslogtreecommitdiffstats
path: root/bsps
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-02-25 17:45:06 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-02-25 20:38:20 +0100
commitfaaffbd913c0e4e39444b2b4b0e0bfb93cc1a0a2 (patch)
tree22e840b74ab2f28e275ade935d98116e40e3df19 /bsps
parentbsps/riscv: Add missing include (diff)
downloadrtems-faaffbd913c0e4e39444b2b4b0e0bfb93cc1a0a2.tar.bz2
riscv: Use zicsr architecture extension
This is required for ISA 2.0 support, see chapter "Zicsr", Control and Status Register (CSR) Instructions, Version 2.0 in RISC-V Instruction Set Manual, Volume I: RISC-V User-Level ISA
Diffstat (limited to 'bsps')
-rw-r--r--bsps/riscv/griscv/clock/clockdrv.c8
-rw-r--r--bsps/riscv/shared/start/start.S1
2 files changed, 8 insertions, 1 deletions
diff --git a/bsps/riscv/griscv/clock/clockdrv.c b/bsps/riscv/griscv/clock/clockdrv.c
index 4cf15fe4f8..a5b7b15760 100644
--- a/bsps/riscv/griscv/clock/clockdrv.c
+++ b/bsps/riscv/griscv/clock/clockdrv.c
@@ -187,7 +187,13 @@ CPU_Counter_ticks _CPU_Counter_read( void )
{
unsigned long timec;
- __asm__ volatile ( "csrr %0, time" : "=&r" ( timec ) );
+ __asm__ volatile (
+ ".option push\n"
+ ".option arch, +zicsr\n"
+ "csrr %0, time\n"
+ ".option pop" :
+ "=&r" ( timec )
+ );
return timec;
}
diff --git a/bsps/riscv/shared/start/start.S b/bsps/riscv/shared/start/start.S
index 04a62a26ce..3702f8ac2f 100644
--- a/bsps/riscv/shared/start/start.S
+++ b/bsps/riscv/shared/start/start.S
@@ -39,6 +39,7 @@ PUBLIC(_start)
.section .bsp_start_text, "wax", @progbits
.align 2
+ .option arch, +zicsr
TYPE_FUNC(_start)
SYM(_start):