aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/allwinner/a10
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/allwinner/a10')
-rw-r--r--src/cpu/allwinner/a10/Kconfig10
-rw-r--r--src/cpu/allwinner/a10/Makefile.inc15
2 files changed, 15 insertions, 10 deletions
diff --git a/src/cpu/allwinner/a10/Kconfig b/src/cpu/allwinner/a10/Kconfig
index 639108a5ba..3df1cebdfc 100644
--- a/src/cpu/allwinner/a10/Kconfig
+++ b/src/cpu/allwinner/a10/Kconfig
@@ -42,18 +42,22 @@ config ROMSTAGE_BASE
hex
default SYS_SDRAM_BASE
-# Keep the stack in SRAM
+# 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 0x00004000
+ default 0x00006000
config STACK_SIZE
hex
- default 0x00004000
+ default 0x00002000
## TODO Change this to some better address not overlapping bootblock when
## cbfstool supports creating header in arbitrary location.
diff --git a/src/cpu/allwinner/a10/Makefile.inc b/src/cpu/allwinner/a10/Makefile.inc
index 48f3110605..9f7208ae26 100644
--- a/src/cpu/allwinner/a10/Makefile.inc
+++ b/src/cpu/allwinner/a10/Makefile.inc
@@ -21,15 +21,16 @@ get_bootblock_size= \
sed 's/[^0-9 ]//g')) \
$(shell echo $$(($(word 2, $(strip $(bb_s))))))
-# The boot ROM in the SoC will start loading code if a special boot0 header is
+# The boot ROM in the SoC will start loading code if a special BOOT0 header is
# found (at an offset of 8KiB in either NAND or SD), and the checksum is
-# correct. this header is normally added by the 'mxsunxiboot' tool. The file
-# passed to mksunxiboot should only include the bootblock due to size
-# limitations.
-# FIXME: Figure out how to safely integrate in coreboot.rom. For now, only copy
-# the first 15 KiB of coreboot.rom (This will not collide with stack)
+# correct. This header is normally added by the 'mxsunxiboot' tool. The boot ROM
+# will load at most 24KiB of data to SRAM, so limit the file size accordingly.
+# The BOOT0 header takes 32 bytes, so limit our file to 24KiB - 32 bytes.
+# FIXME: Figure out how to safely integrate in coreboot.rom.
+# FIXME: The file passed to mksunxiboot should only include the bootblock due
+# to size limitations.
$(obj)/BOOT0: $(obj)/coreboot.rom
@printf " BOOT0 $(subst $(obj)/,,$(^))\n"
touch $@
- dd if=$^ of=$^.tmp bs=1024 count=15
+ dd if=$^ of=$^.tmp bs=24544 count=1
-mksunxiboot $^.tmp $@