##
## This file is part of the coreboot project.
##
## 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.

# Emulation for ARM Ltd Versatile Express Cortex-A9
#  http://www.arm.com/products/tools/development-boards/versatile-express

# To execute, do:
# export QEMU_AUDIO_DRV=none
# qemu-system-arm -M vexpress-a9 -m 1024M -nographic -kernel build/coreboot.rom

if BOARD_EMULATION_QEMU_ARMV7

config BOARD_SPECIFIC_OPTIONS # dummy
	def_bool y
	select ARCH_ARMV7
	select CPU_ARMLTD_CORTEX_A9
	select HAVE_UART_MEMORY_MAPPED
	select HAVE_UART_SPECIAL
	select BOARD_ROMSIZE_KB_4096

config MAINBOARD_DIR
	string
	default emulation/qemu-armv7

config MAINBOARD_PART_NUMBER
	string
	default "QEMU ARMv7"

config MAX_CPUS
	int
	default 2

config MAINBOARD_VENDOR
	string
	default "ARM Ltd."

config SYS_SDRAM_BASE
	hex "SDRAM base address"
	default 0x01000000

config DRAM_SIZE_MB
	int
	default 1024

# Memory map for qemu vexpress-a9:
#
# 0x0000_0000: jump instruction (by qemu)
# 0x0001_0000: bootblock (entry of kernel / firmware)
# 0x0002_0000: romstage, assume up to 128KB in size.
# 0x0007_ff00: stack pointer
# 0x0010_0000: CBFS header
# 0x0011_0000: CBFS data
# 0x0100_0000: reserved for ramstage
# 0x1000_0000: I/O map address

config BOOTBLOCK_BASE
	hex
	default 0x00010000

config ROMSTAGE_BASE
	hex
	default 0x00020000

config RAMSTAGE_BASE
	hex
	default SYS_SDRAM_BASE

config CBFS_HEADER_ROM_OFFSET
	hex
	default 0x0100000

config CBFS_ROM_OFFSET
	hex
	default 0x0110000

endif #  BOARD_EMULATION_QEMU_ARMV7
