armv7: Add emulation/qemu-armv7 board.

To simplify testing ARM implementation, we need a QEMU configuration for
ARM. The qemu-armv7 provides serial output, CBFS simulation, and full
boot path (bootblock, romstage, ramstage) to verify the boot loader
functionality.

To run with QEMU:
 export QEMU_AUDIO_DRV=none
 qemu-system-arm -M vexpress-a9 -m 1024M -nographic -kernel build/coreboot.rom

Verified to boot until ramstage loaded successfully by QEMU v1.0.50.

Change-Id: I1f23ffaf408199811a0756236821c7e0f2a85004
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: http://review.coreboot.org/2354
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Hung-Te Lin
2013-02-12 00:07:38 +08:00
committed by Ronald G. Minnich
parent bc64cae995
commit 7635a60ca8
19 changed files with 491 additions and 0 deletions

View File

@@ -3,6 +3,7 @@
# (See also src/Kconfig)
if ARCH_ARMV7
source src/cpu/armltd/Kconfig
source src/cpu/samsung/Kconfig
endif # ARCH_ARM

View File

@@ -2,6 +2,7 @@
## Subdirectories
################################################################################
subdirs-y += amd
subdirs-y += armltd
subdirs-y += intel
subdirs-y += samsung
subdirs-y += via

8
src/cpu/armltd/Kconfig Normal file
View File

@@ -0,0 +1,8 @@
config CPU_ARMLTD_CORTEX_A9
depends on ARCH_ARMV7
bool
default n
if CPU_ARMLTD_CORTEX_A9
source src/cpu/armltd/cortex-a9/Kconfig
endif

View File

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

View File

@@ -0,0 +1,5 @@
config BOOTBLOCK_CPU_INIT
string
default "cpu/armltd/cortex-a9/bootblock.c"
help
CPU/SoC-specific bootblock code.

View File

@@ -0,0 +1,2 @@
ramstage-y += cache.c
romstage-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,44 @@
/*
* 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 <common.h>
#include <system.h>
#include <armv7.h>
/*
* Sets L2 cache related parameters before enabling data cache
*/
void v7_outer_cache_enable(void)
{
}
/* stubs so we don't need weak symbols in cache_v7.c */
void v7_outer_cache_disable(void)
{
}
void v7_outer_cache_flush_all(void)
{
}
void v7_outer_cache_inval_all(void)
{
}
void v7_outer_cache_flush_range(u32 start, u32 end)
{
}
void v7_outer_cache_inval_range(u32 start, u32 end)
{
}