1# 2# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230) 3# Copyright 2020, HENSOLDT Cyber GmbH 4# 5# SPDX-License-Identifier: GPL-2.0-only 6# 7 8cmake_minimum_required(VERSION 3.7.2) 9 10declare_platform(imx6 KernelPlatImx6 PLAT_IMX6 KernelSel4ArchAarch32) 11 12# disable platform specific settings by default in cache, will be enabled below 13# if active 14foreach( 15 var 16 IN 17 ITEMS 18 KernelPlatformSabre 19 KernelPlatformWandQ 20 KernelPlatformNitrogen6SX 21 KernelPlatImx6dq 22 KernelPlatImx6sx 23) 24 unset(${var} CACHE) 25 set(${var} OFF) 26endforeach() 27 28if(KernelPlatImx6) 29 30 check_platform_and_fallback_to_default(KernelARMPlatform "sabre") 31 32 if(KernelARMPlatform STREQUAL "sabre") 33 config_set(KernelPlatformSabre PLAT_SABRE ON) 34 config_set(KernelPlatImx6dq PLAT_IMX6DQ ON) 35 36 elseif(KernelARMPlatform STREQUAL "wandq") 37 config_set(KernelPlatformWandQ PLAT_WANDQ ON) 38 config_set(KernelPlatImx6dq PLAT_IMX6DQ ON) 39 40 elseif(KernelARMPlatform STREQUAL "nitrogen6sx") 41 config_set(KernelPlatformNitrogen6SX PLAT_NITROGEN6SX ON) 42 config_set(KernelPlatImx6sx PLAT_IMX6SX ON) 43 44 else() 45 message(FATAL_ERROR "Which imx6 platform not specified") 46 endif() 47 48 config_set(KernelARMPlatform ARM_PLAT ${KernelARMPlatform}) 49 declare_seL4_arch(aarch32) 50 set(KernelArmCortexA9 ON) 51 set(KernelArchArmV7a ON) 52 set(KernelArmMach "imx" CACHE INTERNAL "") 53 list(APPEND KernelDTSList "tools/dts/${KernelARMPlatform}.dts") 54 list(APPEND KernelDTSList "src/plat/imx6/overlay-${KernelARMPlatform}.dts") 55 56 if(KernelIsMCS) 57 if(KernelARMPlatform STREQUAL "nitrogen6sx") 58 list(APPEND KernelDTSList "src/plat/imx6/mcs-overlay-nitrogen6sx.dts") 59 else() 60 list(APPEND KernelDTSList "src/plat/imx6/mcs-overlay-imx6.dts") 61 endif() 62 set(timer_file drivers/timer/arm_global.h) 63 else() 64 set(timer_file drivers/timer/arm_priv.h) 65 endif() 66 67 declare_default_headers( 68 TIMER_FREQUENCY 498000000 69 MAX_IRQ 159 70 INTERRUPT_CONTROLLER arch/machine/gic_v2.h 71 NUM_PPI 32 72 TIMER ${timer_file} 73 CLK_SHIFT 41llu 74 CLK_MAGIC 4415709349llu 75 KERNEL_WCET 10llu 76 TIMER_PRECISION 2u 77 ) 78endif() 79 80add_sources( 81 DEP "KernelPlatImx6" 82 CFILES src/arch/arm/machine/l2c_310.c src/arch/arm/machine/gic_v2.c 83) 84