Browse Source

soc/sifive/sifive_freedom: add SiFive Freedom FU740 SoC

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

Signed-off-by: Filip Kokosinski <fkokosinski@antmicro.com>
pull/69687/head
Filip Kokosinski 1 year ago committed by Carles Cufi
parent
commit
e563eb0a62
  1. 1
      soc/sifive/sifive_freedom/fu700/CMakeLists.txt
  2. 19
      soc/sifive/sifive_freedom/fu700/Kconfig
  3. 9
      soc/sifive/sifive_freedom/fu700/Kconfig.defconfig
  4. 16
      soc/sifive/sifive_freedom/fu700/Kconfig.soc
  5. 0
      soc/sifive/sifive_freedom/fu700/clock.c
  6. 0
      soc/sifive/sifive_freedom/fu700/prci.h
  7. 0
      soc/sifive/sifive_freedom/fu700/soc.h
  8. 3
      soc/sifive/sifive_freedom/soc.yml
  9. 15
      soc/soc_legacy/riscv/sifive_freedom/Kconfig
  10. 4
      soc/soc_legacy/riscv/sifive_freedom/Kconfig.defconfig
  11. 4
      soc/soc_legacy/riscv/sifive_freedom/Kconfig.soc
  12. 5
      soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.defconfig.u740
  13. 13
      soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.series
  14. 22
      soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.soc

1
soc/soc_legacy/riscv/sifive_freedom/u700/CMakeLists.txt → soc/sifive/sifive_freedom/fu700/CMakeLists.txt

@ -1,5 +1,6 @@ @@ -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 "")

19
soc/sifive/sifive_freedom/fu700/Kconfig

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
# Copyright (c) 2024 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_SIFIVE_FREEDOM_FU700
bool
# 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
select RISCV_ISA_EXT_C
select RISCV_ISA_EXT_ZICSR
select RISCV_ISA_EXT_ZIFENCEI
select INCLUDE_RESET_VECTOR
select 64BIT

9
soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.defconfig.series → soc/sifive/sifive_freedom/fu700/Kconfig.defconfig

@ -1,10 +1,7 @@ @@ -1,10 +1,7 @@
# Copyright (c) 2017 Jean-Paul Etienne <fractalclone@gmail.com>
# SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_SIFIVE_FREEDOM_U700
config SOC_SERIES
default "u700"
if SOC_SERIES_SIFIVE_FREEDOM_FU700
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 32768
@ -27,6 +24,4 @@ config MAX_IRQ_PER_AGGREGATOR @@ -27,6 +24,4 @@ config MAX_IRQ_PER_AGGREGATOR
config NUM_IRQS
default 64
source "soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.defconfig.u*"
endif # SOC_SERIES_SIFIVE_FREEDOM_U700
endif # SOC_SERIES_SIFIVE_FREEDOM_FU700

16
soc/sifive/sifive_freedom/fu700/Kconfig.soc

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

0
soc/soc_legacy/riscv/sifive_freedom/u700/clock.c → soc/sifive/sifive_freedom/fu700/clock.c

0
soc/soc_legacy/riscv/sifive_freedom/u700/prci.h → soc/sifive/sifive_freedom/fu700/prci.h

0
soc/soc_legacy/riscv/sifive_freedom/u700/soc.h → soc/sifive/sifive_freedom/fu700/soc.h

3
soc/sifive/sifive_freedom/soc.yml

@ -7,3 +7,6 @@ family: @@ -7,3 +7,6 @@ family:
- name: fu500
socs:
- name: fu540
- name: fu700
socs:
- name: fu740

15
soc/soc_legacy/riscv/sifive_freedom/Kconfig

@ -1,15 +0,0 @@ @@ -1,15 +0,0 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_FAMILY_SIFIVE_FREEDOM
bool
if SOC_FAMILY_SIFIVE_FREEDOM
config SOC_FAMILY
string
default "sifive_freedom"
source "soc/soc_legacy/riscv/sifive_freedom/*/Kconfig.soc"
endif # SOC_FAMILY_SIFIVE_FREEDOM

4
soc/soc_legacy/riscv/sifive_freedom/Kconfig.defconfig

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
source "soc/soc_legacy/riscv/sifive_freedom/*/Kconfig.defconfig.series"

4
soc/soc_legacy/riscv/sifive_freedom/Kconfig.soc

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
source "soc/soc_legacy/riscv/sifive_freedom/*/Kconfig.series"

5
soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.defconfig.u740

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

13
soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.series

@ -1,13 +0,0 @@ @@ -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_U700
bool "SiFive Freedom SOC U700 implementation"
select RISCV
select RISCV_PRIVILEGED
select RISCV_HAS_PLIC
select SOC_FAMILY_SIFIVE_FREEDOM
help
Enable support for SiFive Freedom U700 SOC

22
soc/soc_legacy/riscv/sifive_freedom/u700/Kconfig.soc

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
# RISCV_SIFIVE_FREEDOM SOC configuration options
# Copyright (c) 2017 Jean-Paul Etienne <fractalclone@gmail.com>
# SPDX-License-Identifier: Apache-2.0
choice
prompt "SiFive Freedom SOC implementation"
depends on SOC_SERIES_SIFIVE_FREEDOM_U700
config SOC_SIFIVE_FREEDOM_U740
bool "SiFive Freedom U740 SOC implementation"
select ATOMIC_OPERATIONS_C
select INCLUDE_RESET_VECTOR
select 64BIT
select RISCV_ISA_RV64I
select RISCV_ISA_EXT_M
select RISCV_ISA_EXT_A
select RISCV_ISA_EXT_C
select RISCV_ISA_EXT_ZICSR
select RISCV_ISA_EXT_ZIFENCEI
endchoice
Loading…
Cancel
Save