This fixes a number of potential issues, such as generating a build failure if the bootblock is too large, and making sure romstage and ramstage cannot overlap in memory. Change-Id: I4ca9ad097b145445316bcd962e007731b08a7fda Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-on: http://review.coreboot.org/4687 Tested-by: build bot (Jenkins)
125 lines
2.5 KiB
Plaintext
125 lines
2.5 KiB
Plaintext
config CPU_ALLWINNER_A10
|
|
bool
|
|
default n
|
|
|
|
if CPU_ALLWINNER_A10
|
|
|
|
config CPU_SPECIFIC_OPTIONS
|
|
def_bool y
|
|
select HAVE_INIT_TIMER
|
|
select HAVE_MONOTONIC_TIMER
|
|
select HAVE_UART_SPECIAL
|
|
select HAVE_UART_MEMORY_MAPPED
|
|
select BOOTBLOCK_CONSOLE
|
|
select EARLY_CONSOLE
|
|
|
|
config BOOTBLOCK_CPU_INIT
|
|
string
|
|
default "cpu/allwinner/a10/bootblock.c"
|
|
help
|
|
CPU/SoC-specific bootblock code. This is useful if the
|
|
bootblock must load microcode or copy data from ROM before
|
|
searching for the bootblock.
|
|
|
|
# The "eGON.BT0" header takes 32 bytes
|
|
config BOOTBLOCK_BASE
|
|
hex
|
|
default 0x20
|
|
|
|
config BOOTBLOCK_ROM_OFFSET
|
|
hex
|
|
default 0x00
|
|
|
|
config CBFS_HEADER_ROM_OFFSET
|
|
hex
|
|
default 0x10
|
|
|
|
# This is the maximum size bootblock that the BROM will load. If the bootblock
|
|
# gets larger, this will generate a build failure, rather than a silent
|
|
# "coreboot won't run" failure.
|
|
# Normally, we would place romstage at 0x5fe0, but we place it a little lower to
|
|
# satisfy the 64 byte alignment.
|
|
config CBFS_ROM_OFFSET
|
|
default 0x5fc0
|
|
|
|
# 16 MiB above ramstage, so there is no overlap
|
|
config ROMSTAGE_BASE
|
|
hex
|
|
default 0x41000000
|
|
|
|
# Keep the stack in SRAM block A2.
|
|
# SRAM blocks A1 (0-16KiB) and A2 (16KiB-32KiB) are always accessible to the
|
|
# CPU. This gives us 32KiB of SRAM to boot with. The BROM bootloader will use up
|
|
# to 24KiB to load our bootblock, which leaves us the area from 24KiB to 32KiB
|
|
# to use however we see fit.
|
|
config STACK_TOP
|
|
hex
|
|
default 0x00008000
|
|
|
|
config STACK_BOTTOM
|
|
hex
|
|
default 0x00006000
|
|
|
|
config STACK_SIZE
|
|
hex
|
|
default 0x00002000
|
|
|
|
## TODO Change this to some better address not overlapping bootblock when
|
|
## cbfstool supports creating header in arbitrary location.
|
|
config CBFS_HEADER_ROM_OFFSET
|
|
hex "offset of master CBFS header in ROM"
|
|
default 0x40
|
|
|
|
config SYS_SDRAM_BASE
|
|
hex
|
|
default 0x40000000
|
|
|
|
choice CONSOLE_SERIAL_UART_CHOICES
|
|
prompt "Serial Console UART"
|
|
default CONSOLE_SERIAL_UART0
|
|
depends on CONSOLE_SERIAL_UART
|
|
|
|
config CONSOLE_SERIAL_UART0
|
|
bool "UART0"
|
|
help
|
|
Serial console on UART0
|
|
|
|
config CONSOLE_SERIAL_UART1
|
|
bool "UART1"
|
|
help
|
|
Serial console on UART1
|
|
|
|
config CONSOLE_SERIAL_UART2
|
|
bool "UART2"
|
|
help
|
|
Serial console on UART2
|
|
|
|
config CONSOLE_SERIAL_UART3
|
|
bool "UART3"
|
|
help
|
|
Serial console on UART3
|
|
|
|
config CONSOLE_SERIAL_UART4
|
|
bool "UART4"
|
|
help
|
|
Serial console on UART4
|
|
|
|
config CONSOLE_SERIAL_UART5
|
|
bool "UART5"
|
|
help
|
|
Serial console on UART5
|
|
|
|
config CONSOLE_SERIAL_UART6
|
|
bool "UART6"
|
|
help
|
|
Serial console on UART6
|
|
|
|
config CONSOLE_SERIAL_UART7
|
|
bool "UART7"
|
|
help
|
|
Serial console on UART7
|
|
|
|
endchoice
|
|
|
|
endif # if CPU_ALLWINNER_A10
|