aboutsummaryrefslogtreecommitdiff
path: root/platform/thead/c910/platform.h
diff options
context:
space:
mode:
authorLiu Yibin <yibin_liu@c-sky.com>2020-01-02 12:21:36 +0800
committerAnup Patel <anup@brainfault.org>2020-01-02 10:03:23 +0530
commitc0849cd731fca884c939e6a1a699a853231292a2 (patch)
treefbb2b3d73abd72f090c97f33bd0a86e310f91c0a /platform/thead/c910/platform.h
parent46a90d90e7dca6eeb66700b6970171119c51fd66 (diff)
platform: Add T-head C910 initial support
This commit provides basic support for the Thead/C910 platform. Signed-off-by: Liu Yibin <yibin_liu@c-sky.com> Reviewed-by: Atish Patra <atish.patra@wdc.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'platform/thead/c910/platform.h')
-rw-r--r--platform/thead/c910/platform.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/platform/thead/c910/platform.h b/platform/thead/c910/platform.h
new file mode 100644
index 0000000..bc176e5
--- /dev/null
+++ b/platform/thead/c910/platform.h
@@ -0,0 +1,51 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#ifndef _C910_PLATFORM_H_
+#define _C910_PLATFORM_H_
+
+#define C910_HART_COUNT 16
+#define C910_HART_STACK_SIZE 8192
+
+#define SBI_THEAD_FEATURES \
+ (SBI_PLATFORM_HAS_PMP | \
+ SBI_PLATFORM_HAS_SCOUNTEREN | \
+ SBI_PLATFORM_HAS_MCOUNTEREN | \
+ SBI_PLATFORM_HAS_MFAULTS_DELEGATION)
+
+#define CSR_MCOR 0x7c2
+#define CSR_MHCR 0x7c1
+#define CSR_MCCR2 0x7c3
+#define CSR_MHINT 0x7c5
+#define CSR_MXSTATUS 0x7c0
+#define CSR_PLIC_BASE 0xfc1
+#define CSR_MRMR 0x7c6
+#define CSR_MRVBR 0x7c7
+
+#define SBI_EXT_VENDOR_C910_BOOT_OTHER_CORE 0x09000003
+
+#define C910_PLIC_CLINT_OFFSET 0x04000000 /* 64M */
+#define C910_PLIC_DELEG_OFFSET 0x001ffffc
+#define C910_PLIC_DELEG_ENABLE 0x1
+
+struct c910_regs_struct {
+ u64 pmpaddr0;
+ u64 pmpaddr1;
+ u64 pmpaddr2;
+ u64 pmpaddr3;
+ u64 pmpaddr4;
+ u64 pmpaddr5;
+ u64 pmpaddr6;
+ u64 pmpaddr7;
+ u64 pmpcfg0;
+ u64 mcor;
+ u64 mhcr;
+ u64 mccr2;
+ u64 mhint;
+ u64 mxstatus;
+ u64 plic_base_addr;
+ u64 clint_base_addr;
+};
+
+#endif /* _C910_PLATFORM_H_ */