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__