1#
2# Copyright 2020, DornerWorks
3# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
4# Copyright 2021, HENSOLDT Cyber
5#
6# SPDX-License-Identifier: GPL-2.0-only
7#
8
9cmake_minimum_required(VERSION 3.7.2)
10
11declare_platform(spike KernelPlatformSpike PLAT_SPIKE KernelArchRiscV)
12
13if(KernelPlatformSpike)
14    if("${KernelSel4Arch}" STREQUAL riscv32)
15        declare_seL4_arch(riscv32)
16    elseif("${KernelSel4Arch}" STREQUAL riscv64)
17        declare_seL4_arch(riscv64)
18    else()
19        fallback_declare_seL4_arch_default(riscv64)
20    endif()
21    config_set(KernelRiscVPlatform RISCV_PLAT "spike")
22    config_set(KernelPlatformFirstHartID FIRST_HART_ID 0)
23    config_set(KernelOpenSBIPlatform OPENSBI_PLATFORM "generic")
24    if(KernelSel4ArchRiscV32)
25        list(APPEND KernelDTSList "tools/dts/spike32.dts")
26    else()
27        list(APPEND KernelDTSList "tools/dts/spike.dts")
28    endif()
29    declare_default_headers(
30        TIMER_FREQUENCY 10000000 PLIC_MAX_NUM_INT 0
31        INTERRUPT_CONTROLLER drivers/irq/riscv_plic_dummy.h
32    )
33else()
34    unset(KernelPlatformFirstHartID CACHE)
35endif()
36