u-boot/arch/arm/cpu/arm926ejs/mxs
Lukasz Majewski 014315b2d8 spl: Provide more space to be used for storing SPL on imx28 OCRAM
With the current configuration provided in mxsimage{-spl}.mx28.cfg the
size of SPL binary has been constrained to 32 KiB, due to "LOAD IVT"
command with 0x8000 offset.

The problem was that, the imx28 ROM takes the u-boot.sb and then
extracts from it the IVT header and places it on the 0x8000 OCRAM offset
overwriting any valid (i.e. loaded from eMMC or SPI-NOR) SPL code. This
bug was unnoticed as the overwrite size was just 32 bytes, so the
probability that some important code is altered was low.

However, in the XEA board (where the SPL size is ~39KiB), the overwritten
data was `(struct dm_spi_ops *) 0x800c <mxs_spi_ops>`, which is used
during the boot process.

As a result the SPL execution code hanged with "undefined instruction"
abort as callbacks (with wrong addresses) from it were called.

The fix is to change the OCRAM's offset where IVT is loaded to 0xE000,
so the SPL can grow up to ~57KiB (the maximal size of OCRAM memory
available is 0xE3FC).

Signed-off-by: Lukasz Majewski <lukma@denx.de>
2022-02-05 13:38:39 +01:00
..
clock.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
iomux.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mxs.c ARM: fix LTO for imx28_xea 2021-05-24 14:21:30 -04:00
mxs_init.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mxsimage-signed.cfg ARM: mxs: tools: Add support for boot progress display flag 2014-11-20 10:13:45 +01:00
mxsimage-spl.mx23.cfg ARM: mxs: support full SPL framework 2018-04-27 09:32:54 +02:00
mxsimage-spl.mx28.cfg spl: Provide more space to be used for storing SPL on imx28 OCRAM 2022-02-05 13:38:39 +01:00
mxsimage.mx23.cfg ARM: mxs: tools: Add support for boot progress display flag 2014-11-20 10:13:45 +01:00
mxsimage.mx28.cfg spl: Provide more space to be used for storing SPL on imx28 OCRAM 2022-02-05 13:38:39 +01:00
spl_boot.c serial: Rename SERIAL_SUPPORT to SERIAL 2021-09-04 12:26:01 -04:00
spl_lradc_init.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
spl_mem_init.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
spl_power_init.c mxs: power: Change sequence of enabling DCDC switches 2022-02-05 13:38:38 +01:00
start.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
timer.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
u-boot-imx23.bd kbuild,mxs: use short logs for MXS images 2014-03-12 17:04:37 -04:00
u-boot-imx28.bd kbuild,mxs: use short logs for MXS images 2014-03-12 17:04:37 -04:00
u-boot-spl.lds linker: Modify linker scripts to be more generic 2019-01-26 22:55:53 -05:00