Check for ISA extension in startup
- Check for the 'X' extension in misa at startup. If not present, skip
initialization for the vector core.
Change-Id: I03a1f14498fbb74e08a6d99eac6e596b01c94c25
diff --git a/crt/kelvin_start.S b/crt/kelvin_start.S
index 9ed259a..07fb0ae 100644
--- a/crt/kelvin_start.S
+++ b/crt/kelvin_start.S
@@ -57,8 +57,13 @@
mv t6, zero
###############################################
- # Zero out all kelvin registers #
+ # Check for the X extension, and if present, #
+ # zero out all kelvin registers #
###############################################
+ csrr a0, misa
+ srli a0, a0, 23
+ andi a0, a0, 1
+ beqz a0, vector_zero_end
vdup.w.x.m v0, zero
vdup.w.x.m v4, zero
vdup.w.x.m v8, zero
@@ -77,6 +82,7 @@
vdup.w.x.m v60, zero
acset.v v48, v0
adwinit.v v48, v0
+vector_zero_end:
# Zero out the bss section
la a0, __bss_start__