summaryrefslogtreecommitdiffstats
path: root/arch/riscv/Kconfig.socs
blob: 828b65a0c177c7eedd5968f1b2eb3e187bd4a104 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# SPDX-License-Identifier: GPL-2.0-only

menu "SoC selection"

config SOC_ERIZO
	bool "Erizo SoC"
	depends on ARCH_RV32I
	select HAS_ASM_DEBUG_LL
	select HAS_NMON
	select USE_COMPRESSED_DTB
	select RISCV_M_MODE
	select RISCV_TIMER

config BOARD_ERIZO_GENERIC
	depends on SOC_ERIZO
	def_bool y

config SOC_VIRT
	bool "QEMU Virt Machine"
	select RISCV_S_MODE
	select BOARD_RISCV_GENERIC_DT
	select HAS_CACHE
	select HAS_ASM_DEBUG_LL
	help
	  Generates an image tht can be be booted by QEMU. The image is called
	  barebox-dt-2nd.img

config BOARD_RISCV_VIRT
	depends on SOC_VIRT
	bool "QEMU Virt Machine"
	select OF_OVERLAY
	select BOARD_QEMU_VIRT
	default y
	help
	  Enables environment and state on top of QEMU RISC-V Virt machine
	  cfi-flash.

config BOARD_RISCVEMU
	depends on SOC_VIRT
	bool "TinyEMU Virt Machine (riscvemu)"
	default y
	help
	  TinyEMU's Virt machine differs from QEMU in poweroff and restart
	  mechanisms. This adds the necessary support.

config CPU_SIFIVE
	bool
	select HAS_CACHE

config SOC_SIFIVE
	bool "SiFive SoCs"
	select CPU_SIFIVE
	select RISCV_S_MODE
	select CLK_SIFIVE
	select CLK_SIFIVE_PRCI
	select RISCV_TIMER
	select HAS_MACB
	select HAS_ASM_DEBUG_LL
	help
	  This enables support for SiFive SoC platform hardware.

if SOC_SIFIVE

config BOARD_HIFIVE
	bool "HiFive"
	depends on ARCH_RV64I
	select USE_COMPRESSED_DTB

endif

config SOC_STARFIVE
	bool "StarFive SoCs"
	select ARCH_HAS_RESET_CONTROLLER
	select RISCV_S_MODE
	select HAS_ASM_DEBUG_LL
	select HAS_NMON
	help
	  This enables support for SiFive SoC platform hardware.

if SOC_STARFIVE

config SOC_STARFIVE_JH71XX
	bool
	select CPU_SIFIVE

config SOC_STARFIVE_JH7100
	bool
	select SOC_STARFIVE_JH71XX
	select SIFIVE_L2
	help
	  Unlike JH7110 and later, CPU on the JH7100 are not cache-coherent
	  with respect to DMA masters like GMAC and DW MMC controller.
	  Select this if barebox needs to do DMA on this SoC.

config BOARD_BEAGLEV
	bool "BeagleV"
	depends on ARCH_RV64I
	select SOC_STARFIVE_JH71XX
	select USE_COMPRESSED_DTB

config BOARD_BEAGLEV_BETA
	bool "BeagleV Beta (with JH7100)"
	depends on BOARD_BEAGLEV
	select SOC_STARFIVE_JH7100
	help
	  Select this for hardware using the earlier JH7100 SoC. The JH7110
	  used with later production runs is cache-coherent and thus can do
	  without the special DMA handling enabled by this option. It's safe
	  to enable this option for other SoCs.

endif

comment "CPU features"

config SIFIVE_L2
	bool "SiFive L2 cache controller"
	depends on CPU_SIFIVE

config SOC_LITEX
	bool "LiteX SoCs"
	depends on ARCH_RV32I
	select HAS_ASM_DEBUG_LL
	select HAS_NMON
	select USE_COMPRESSED_DTB
	select RISCV_TIMER

config BOARD_LITEX_LINUX
	bool "litex linux board"
	depends on SOC_LITEX
	select RISCV_M_MODE
	def_bool y

endmenu