]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
riscv: cpu: fu740: clear feature disable CSR
authorGreen Wan <green.wan@sifive.com>
Mon, 3 May 2021 06:23:05 +0000 (23:23 -0700)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Wed, 5 May 2021 08:11:27 +0000 (16:11 +0800)
Clear feature disable CSR to turn on all features of hart. The detail
is specified at section, 'SiFive Feature Disable CSR', in user manual

https://sifive.cdn.prismic.io/sifive/aee0dd4c-d156-496e-a6c4-db0cf54bbe68_sifive_U74MC_rtl_full_20G1.03.00_manual.pdf

Signed-off-by: Green Wan <green.wan@sifive.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Rick Chen <rick@andestech.com>
arch/riscv/cpu/fu540/spl.c

index 45657b790965e21e486878f5c718dacbf748ec52..1740ef98b6b57f46a1053f0958b6efb908c8c9c3 100644 (file)
@@ -6,6 +6,9 @@
 
 #include <dm.h>
 #include <log.h>
+#include <asm/csr.h>
+
+#define CSR_U74_FEATURE_DISABLE        0x7c1
 
 int spl_soc_init(void)
 {
@@ -21,3 +24,15 @@ int spl_soc_init(void)
 
        return 0;
 }
+
+void harts_early_init(void)
+{
+       /*
+        * Feature Disable CSR
+        *
+        * Clear feature disable CSR to '0' to turn on all features for
+        * each core. This operation must be in M-mode.
+        */
+       if (CONFIG_IS_ENABLED(RISCV_MMODE))
+               csr_write(CSR_U74_FEATURE_DISABLE, 0);
+}