##
## 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 BOOTBLOCK_MAINBOARD_INIT
	string
	default "mainboard/emulation/qemu-armv7/bootblock.c"

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 ID_SECTION_BASE
	hex
	default 0x0001f000

config ROMSTAGE_BASE
	hex
	default 0x00020000

config ROMSTAGE_SIZE
	hex
	default 0x20000

config BOOTBLOCK_ROM_OFFSET
	hex
	default 0x0

config CBFS_HEADER_ROM_OFFSET
	hex
	default 0x0100000

config CBFS_ROM_OFFSET
	hex
	default 0x0110000

config IRAM_STACK
	hex
	default 0x0007ff00

config XIP_ROM_SIZE
	hex
	default ROMSTAGE_SIZE

config SYS_SDRAM_BASE
	hex "SDRAM base address"
	default 0x01000000

config SYS_TEXT_BASE
	hex "Executable code section"
	default 0x04e00000

config RAMBASE
	hex
	default SYS_SDRAM_BASE

# according to stefan, this is RAMBASE + 1M.
config RAMTOP
	hex
	default 0x01100000

endif #  BOARD_EMULATION_QEMU_ARMV7