summaryrefslogtreecommitdiff
path: root/platform/thead/c910/platform.h
blob: 354404ef75b28fad0110e1a1f1357817c0bd8bf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * SPDX-License-Identifier: BSD-2-Clause
 */

#ifndef _C910_PLATFORM_H_
#define _C910_PLATFORM_H_

#define C910_HART_COUNT   16

#define SBI_THEAD_FEATURES	\
	 (SBI_PLATFORM_HAS_MFAULTS_DELEGATION | \
	 SBI_PLATFORM_HAS_HART_SECONDARY_BOOT)

#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 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_ */