Add Quartz64 support

This adds support for the Pine64 Quartz64 and other devices based on
the Rockchip RK3566. The platform support is adapted from the
Rockpro64 code, except that the RK356x has A55 cores, and adjusting
for the fact that the ARM Generic Timer is the only on-chip timer
available.

Signed-off-by: Peter S. Housel <housel@acm.org>
This commit is contained in:
Peter S. Housel
2021-12-23 22:22:04 -08:00
committed by Gerwin Klein
parent bbafa62d30
commit 8ca4a87c9a
5 changed files with 2986 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
/*
* Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <autoconf.h>
#include <sel4/arch/constants_cortex_a55.h>

View File

@@ -0,0 +1,33 @@
#
# Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
#
# SPDX-License-Identifier: GPL-2.0-only
#
cmake_minimum_required(VERSION 3.7.2)
declare_platform(quartz64 KernelPlatformQuartz64 PLAT_QUARTZ64 KernelSel4ArchAarch64)
if(KernelPlatformQuartz64)
declare_seL4_arch(aarch64)
set(KernelArmCortexA55 ON)
set(KernelArchArmV8a ON)
set(KernelArmGicV3 ON)
config_set(KernelARMPlatform ARM_PLAT "quartz64")
list(APPEND KernelDTSList "tools/dts/quartz64.dts")
list(APPEND KernelDTSList "src/plat/quartz64/overlay-quartz64.dts")
declare_default_headers(
TIMER_FREQUENCY 24000000
MAX_IRQ 231
NUM_PPI 32
KERNEL_WCET 10u
TIMER drivers/timer/arm_generic.h
INTERRUPT_CONTROLLER arch/machine/gic_v3.h
)
endif()
add_sources(
DEP "KernelPlatformQuartz64"
CFILES src/arch/arm/machine/gic_v3.c src/arch/arm/machine/l2c_nop.c
)

View File

@@ -0,0 +1,17 @@
/*
* Copyright 2020, Data61, CSIRO (ABN 41 687 119 230)
*
* SPDX-License-Identifier: GPL-2.0-only
*/
/ {
chosen {
seL4,elfloader-devices =
"serial2",
&{/psci};
seL4,kernel-devices =
"serial2",
&{/interrupt-controller@fd400000},
&{/timer};
};
};

2925
tools/dts/quartz64.dts Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -61,6 +61,7 @@ xilinx/zynqmp-zcu102-rev1.0=zynqmp
freescale/fsl-imx8mq-evk=imx8mq-evk
freescale/fsl-imx8mm-evk=imx8mm-evk
rockchip/rk3399-rockpro64=rockpro64
rockchip/rk3566-quartz64-a=quartz64
broadcom/bcm2711-rpi-4-b=rpi4
avnet/maaxboard=maaxboard
"