armv8: add support for armv8 cpu

This is an emulation cpu.

Lots of stuff missing, clearly, but I want to get the basic outline right.

BUG=None
TEST=breaks no builds
BRANCH=None

Change-Id: Ie9431afe1dbc4eb8e4b5b73da006a0603a221f3f
Signed-off-by: Ronald G. Minnich <rminnich@google.com>
Reviewed-on: https://chromium-review.googlesource.com/180385
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: Ronald Minnich <rminnich@chromium.org>
This commit is contained in:
Ronald G. Minnich 2013-11-25 10:02:51 -08:00 committed by chrome-internal-fetch
commit 1795f3d5ef
9 changed files with 88 additions and 3 deletions

View file

@ -113,6 +113,7 @@ else
include $(HAVE_DOTCONFIG)
ARCHDIR-$(CONFIG_ARCH_AARCH64) := aarch64
ARCHDIR-$(CONFIG_ARCH_ARM) := arm
ARCHDIR-$(CONFIG_ARCH_X86) := x86

View file

@ -226,6 +226,10 @@ config ARCH_ARM
bool
default n
config ARCH_AARCH64
bool
default n
# Warning: The file is included whether or not the if is here.
# but the if controls how the evaluation occurs.
if ARCH_X86
@ -236,6 +240,10 @@ if ARCH_ARM
source src/arch/arm/Kconfig
endif
if ARCH_AARCH64
source src/arch/aarch64/Kconfig
endif
config HAVE_ARCH_MEMSET
bool
default n

View file

@ -1,12 +1,9 @@
# Warning: This file is included whether or not the if is here.
# The if controls how the evaluation occurs.
# (See also src/Kconfig)
if ARCH_ARM
source src/cpu/armltd/Kconfig
endif # ARCH_ARM
if ARCH_X86
source src/cpu/amd/Kconfig

View file

@ -1 +1,2 @@
source src/cpu/armltd/cortex-a9/Kconfig
source src/cpu/armltd/armv8/Kconfig

View file

@ -1 +1,2 @@
subdirs-$(CONFIG_CPU_ARMLTD_CORTEX_A9) += cortex-a9
subdirs-$(CONFIG_CPU_ARMLTD_CORTEX_A9) += armv8

View file

@ -0,0 +1,15 @@
config CPU_ARMLTD_ARMV8
depends on ARCH_AARCH64
bool
select EARLY_CONSOLE
default n
if CPU_ARMLTD_ARMV8
config BOOTBLOCK_CPU_INIT
string
default "cpu/armltd/armv8/bootblock.c"
help
CPU/SoC-specific bootblock code.
endif

View file

@ -0,0 +1,3 @@
ramstage-y += cache.c
romstage-y += cache.c
bootblock-y += cache.c

View file

@ -0,0 +1,17 @@
/*
* Copyright (C) 2013 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
void bootblock_cpu_init(void);
void bootblock_cpu_init(void)
{
}

View file

@ -0,0 +1,42 @@
/*
* Copyright (C) 2013 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <aarch64.h>
/*
* Sets L2 cache related parameters before enabling data cache
*/
void v8_outer_cache_enable(void)
{
}
/* stubs so we don't need weak symbols in cache_v8.c */
void v8_outer_cache_disable(void)
{
}
void v8_outer_cache_flush_all(void)
{
}
void v8_outer_cache_inval_all(void)
{
}
void v8_outer_cache_flush_range(u32 start, u32 end)
{
}
void v8_outer_cache_inval_range(u32 start, u32 end)
{
}