forked from Imagelibrary/seL4
Add new imx8mp-evk platform
This new platform is NXP Semiconductor's Evaluation Kit for the i.MX 8M Plus Applications Processor. It's from the i.MX 8M family of processors and is largely similar to the existing i.MX 8M Quad and i.MX 8M Mini platforms. Signed-off-by: Damon Lee <damon@kry10.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright 2024, Kry10 Limited.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <sel4/config.h>
|
||||
#include <sel4/arch/constants_cortex_a53.h>
|
||||
|
||||
#if CONFIG_WORD_SIZE == 32
|
||||
/* First address in the virtual address space that is not accessible to user level */
|
||||
#define seL4_UserTop 0xe0000000
|
||||
#else
|
||||
/* otherwise this is defined at the arch level */
|
||||
#endif
|
||||
@@ -9,12 +9,19 @@ cmake_minimum_required(VERSION 3.7.2)
|
||||
|
||||
declare_platform(imx8mq-evk KernelPlatformImx8mq-evk PLAT_IMX8MQ_EVK KernelArchARM)
|
||||
declare_platform(imx8mm-evk KernelPlatformImx8mm-evk PLAT_IMX8MM_EVK KernelArchARM)
|
||||
declare_platform(imx8mp-evk KernelPlatformImx8mp-evk PLAT_IMX8MP_EVK KernelArchARM)
|
||||
|
||||
if(KernelPlatformImx8mq-evk OR KernelPlatformImx8mm-evk)
|
||||
if(KernelPlatformImx8mq-evk OR KernelPlatformImx8mm-evk OR KernelPlatformImx8mp-evk)
|
||||
declare_seL4_arch(aarch64 aarch32)
|
||||
if(KernelPlatformImx8mq-evk)
|
||||
config_set(KernelPlatImx8mq PLAT_IMX8MQ ON)
|
||||
endif()
|
||||
if(KernelPlatformImx8mp-evk)
|
||||
# The i.MX 8M Plus SoC has higher interrupt numbers than the 8M Mini and the 8M Quad
|
||||
set(IMX8M_MAX_IRQ 192 CACHE INTERNAL "")
|
||||
else()
|
||||
set(IMX8M_MAX_IRQ 160 CACHE INTERNAL "")
|
||||
endif()
|
||||
set(KernelArmCortexA53 ON)
|
||||
set(KernelArchArmV8a ON)
|
||||
set(KernelArmGicV3 ON)
|
||||
@@ -27,7 +34,7 @@ if(KernelPlatformImx8mq-evk OR KernelPlatformImx8mm-evk)
|
||||
endif()
|
||||
declare_default_headers(
|
||||
TIMER_FREQUENCY 8000000
|
||||
MAX_IRQ 160
|
||||
MAX_IRQ ${IMX8M_MAX_IRQ}
|
||||
TIMER drivers/timer/arm_generic.h
|
||||
INTERRUPT_CONTROLLER arch/machine/gic_v3.h
|
||||
NUM_PPI 32
|
||||
@@ -38,6 +45,6 @@ if(KernelPlatformImx8mq-evk OR KernelPlatformImx8mm-evk)
|
||||
endif()
|
||||
|
||||
add_sources(
|
||||
DEP "KernelPlatformImx8mq-evk OR KernelPlatformImx8mm-evk"
|
||||
DEP "KernelPlatformImx8mq-evk OR KernelPlatformImx8mm-evk OR KernelPlatformImx8mp-evk"
|
||||
CFILES src/arch/arm/machine/gic_v3.c src/arch/arm/machine/l2c_nop.c
|
||||
)
|
||||
|
||||
27
src/plat/imx8m-evk/overlay-imx8mp-evk.dts
Normal file
27
src/plat/imx8m-evk/overlay-imx8mp-evk.dts
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright 2024, Kry10 Limited.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-only
|
||||
*/
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
seL4,elfloader-devices =
|
||||
"serial1",
|
||||
&{/psci},
|
||||
&{/timer};
|
||||
|
||||
seL4,kernel-devices =
|
||||
"serial1",
|
||||
&{/soc@0/interrupt-controller@38800000},
|
||||
&{/timer};
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
/* The following normal memory regions are Linux specific. */
|
||||
/delete-node/ dsp@92400000;
|
||||
/delete-node/ vdev0vring0@942f0000;
|
||||
/delete-node/ vdev0vring1@942f8000;
|
||||
/delete-node/ vdev0buffer@94300000;
|
||||
};
|
||||
};
|
||||
2668
tools/dts/imx8mp-evk.dts
Normal file
2668
tools/dts/imx8mp-evk.dts
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user