soc/sifive/sifive_freedom: add SiFive Freedom U540 SoC

This commit adds support for the SiFive Freedom U540 SoC for the Zephyr
Hardware Model v2.

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
This commit is contained in:
Filip Kokosinski
2024-02-12 12:54:09 +01:00
committed by Carles Cufi
parent bfcc2ed18f
commit 7e8de1e781
10 changed files with 32 additions and 36 deletions

View File

@@ -1,5 +1,6 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_sources(clock.c)
zephyr_include_directories(.)
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/riscv/common/linker.ld CACHE INTERNAL "")

View File

@@ -1,17 +1,14 @@
# RISCV_SIFIVE_FREEDOM SOC configuration options
# Copyright (c) 2017 Jean-Paul Etienne <fractalclone@gmail.com>
# Copyright (c) 2024 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0
choice
prompt "SiFive Freedom SOC implementation"
depends on SOC_SERIES_SIFIVE_FREEDOM_U500
config SOC_SERIES_SIFIVE_FREEDOM_FU500
bool
config SOC_SIFIVE_FREEDOM_U540
bool "SiFive Freedom U540 SOC implementation"
select ATOMIC_OPERATIONS_C
select INCLUDE_RESET_VECTOR
select 64BIT
# RISC-V options
select RISCV
select RISCV_PRIVILEGED
select RISCV_HAS_PLIC
select RISCV_ISA_RV64I
select RISCV_ISA_EXT_M
select RISCV_ISA_EXT_A
@@ -19,4 +16,5 @@ config SOC_SIFIVE_FREEDOM_U540
select RISCV_ISA_EXT_ZICSR
select RISCV_ISA_EXT_ZIFENCEI
endchoice
select 64BIT
select INCLUDE_RESET_VECTOR

View File

@@ -1,10 +1,8 @@
# Copyright (c) 2017 Jean-Paul Etienne <fractalclone@gmail.com>
# Copyright (c) 2024 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_SIFIVE_FREEDOM_U500
config SOC_SERIES
default "u500"
if SOC_SERIES_SIFIVE_FREEDOM_FU500
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 32768
@@ -27,6 +25,4 @@ config MAX_IRQ_PER_AGGREGATOR
config NUM_IRQS
default 64
source "soc/soc_legacy/riscv/sifive_freedom/u500/Kconfig.defconfig.u*"
endif # SOC_SERIES_SIFIVE_FREEDOM_U500
endif # SOC_SERIES_SIFIVE_FREEDOM_FU500

View File

@@ -0,0 +1,16 @@
# Copyright (c) 2024 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_SIFIVE_FREEDOM_FU500
bool
select SOC_FAMILY_SIFIVE_FREEDOM
config SOC_SERIES
default "fu500" if SOC_SERIES_SIFIVE_FREEDOM_FU500
config SOC_SIFIVE_FREEDOM_FU540
bool
select SOC_SERIES_SIFIVE_FREEDOM_FU500
config SOC
default "fu540" if SOC_SIFIVE_FREEDOM_FU540

View File

@@ -4,3 +4,6 @@ family:
- name: fe300
socs:
- name: fe310
- name: fu500
socs:
- name: fu540

View File

@@ -1,5 +0,0 @@
# Copyright (c) 2017 Jean-Paul Etienne <fractalclone@gmail.com>
# SPDX-License-Identifier: Apache-2.0
config SOC
default "u540" if SOC_SIFIVE_FREEDOM_U540

View File

@@ -1,13 +0,0 @@
# RISCV_SIFIVE_FREEDOM SOC implementation
# Copyright (c) 2017 Jean-Paul Etienne <fractalclone@gmail.com>
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_SIFIVE_FREEDOM_U500
bool "SiFive Freedom U500 SOC implementation"
select RISCV
select RISCV_PRIVILEGED
select RISCV_HAS_PLIC
select SOC_FAMILY_SIFIVE_FREEDOM
help
Enable support for SiFive Freedom U500 SOC