armv7/snow: get to romstage

This patch does a few things to get us into romstage:
- Add romstage as a stage (a later patch adds it as a binary, which
  is probably wrong). The Makefile magic is complex enough that we
  let it build the XIP file for now, but we no longer use it.

- Replace findstage with loadstage. Loadstage will find a stage,
  load the code to memory, and zero the remaining part of memory.
  Now we can link the romstage to go anywhere!

- Eliminate magic offsets from code/ldscripts and centralize Kconfig
  variables in src/cpu/samsung/exynos5250/Kconfig.

- Tidy up code and serial output

Change-Id: Iae4d2f9e7f429cb1df15d49daf9a08b88d75d79d
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-on: http://review.coreboot.org/2174
Tested-by: build bot (Jenkins)
This commit is contained in:
David Hendricks
2013-01-17 20:52:21 -08:00
committed by Ronald G. Minnich
parent f572e1e5fc
commit 211a5d56db
12 changed files with 179 additions and 86 deletions

View File

@@ -14,27 +14,16 @@ config SATA_AHCI
bool
default n
config SPL_BUILD
bool
default n
config SYS_TEXT_BASE
hex "Executable code section"
default 0x43e00000
config SYS_SDRAM_BASE
hex "SDRAM base address"
default 0x40000000
#FIXME(dhendrix, reinauer): re-visit this RAMBASE/RAMTOP stuff...
config RAMBASE
hex
default SYS_SDRAM_BASE
# according to stefan, this is RAMBASE + 1M.
config RAMTOP
hex
default 0x40100000
# Example SRAM/iRAM map for Exynos5250 platform:
#
# 0x0202_0000: vendor-provided BL1
# 0x0202_3400: bootblock, assume up to 32KB in size
# 0x0202_2600: ID section, assume 2KB in size. This will be
# within the bootblock section.
# 0x0203_0000: romstage, assume up to 128KB in size.
# 0x0207_7f00: stack pointer
# this may be used to calculate offsets
config IRAM_BOTTOM
hex
default 0x02020000
@@ -43,14 +32,54 @@ config IRAM_TOP
hex
default 0x02077fff
config SYS_INIT_SP_ADDR
config BOOTBLOCK_BASE
hex
default 0x02058000
default 0x02023400
config ID_SECTION_BASE
hex
default 0x02026000
config ROMSTAGE_BASE
hex
default 0x02030000
config ROMSTAGE_SIZE
hex
default 0x10000
# FIXME: This is for copying SPI content into SRAM temporarily and
# will be removed when we have the SPI streaming driver implemented.
config SPI_IMAGE_HACK
hex
default 0x02060000
config IRAM_STACK
hex
default SYS_INIT_SP_ADDR
default 0x02077f00
# FIXME: other magic numbers that should probably go away
config XIP_ROM_SIZE
hex "ROM stage (BL2) size"
default 0x20000
hex
default ROMSTAGE_SIZE
config SYS_SDRAM_BASE
hex "SDRAM base address"
default 0x40000000
config SPL_BUILD
bool
default n
config SYS_TEXT_BASE
hex "Executable code section"
default 0x43e00000
config RAMBASE
hex
default SYS_SDRAM_BASE
# according to stefan, this is RAMBASE + 1M.
config RAMTOP
hex
default 0x40100000

View File

@@ -36,5 +36,6 @@ static int config_branch_prediction(int set_cr_z)
void bootblock_cpu_init(void);
void bootblock_cpu_init(void)
{
/* FIXME: this is a stub for now */
volatile unsigned long *pshold = (unsigned long *)0x1004330c;
*pshold |= 0x100;
}