Your ROOT_URL in app.ini is https://src.whiteboxsystems.nl/ but you are visiting http://src.whiteboxsystems.nl/Whitebox/u-boot/commit/c6d9e9dbc3d02c03ea1f6671034317593a2ea4ff You should set ROOT_URL correctly, otherwise the web may not work correctly.

SPL: Add XIP booting support

Enable support for XIP (execute in place) of U-Boot or kernel image. There is
no need to copy image from flash to ram if flash supports execute in place.

Signed-off-by: Vikas Manocha <vikas.manocha@st.com>
Reviewed-by: Alexandru Gagniuc <alex.g@adaptrum.com>
master
Vikas Manocha 8 years ago committed by Tom Rini
parent b97476965b
commit c6d9e9dbc3
  1. 1
      arch/arm/include/asm/spl.h
  2. 9
      common/spl/Kconfig
  3. 1
      common/spl/Makefile
  4. 28
      common/spl/spl_xip.c

@ -29,6 +29,7 @@ enum {
BOOT_DEVICE_I2C,
BOOT_DEVICE_BOARD,
BOOT_DEVICE_DFU,
BOOT_DEVICE_XIP,
BOOT_DEVICE_NONE
};
#endif

@ -437,6 +437,15 @@ config SPL_NOR_SUPPORT
a memory-mapped device makes it very easy to access. Loading from
NOR is typically achieved with just a memcpy().
config SPL_XIP_SUPPORT
bool "Support XIP"
depends on SPL
help
Enable support for execute in place of U-Boot or kernel image. There
is no need to copy image from flash to ram if flash supports execute
in place. Its very useful in systems having enough flash but not
enough ram to load the image.
config SPL_ONENAND_SUPPORT
bool "Support OneNAND flash"
help

@ -12,6 +12,7 @@ ifdef CONFIG_SPL_BUILD
obj-$(CONFIG_SPL_FRAMEWORK) += spl.o
obj-$(CONFIG_SPL_LOAD_FIT) += spl_fit.o
obj-$(CONFIG_SPL_NOR_SUPPORT) += spl_nor.o
obj-$(CONFIG_SPL_XIP_SUPPORT) += spl_xip.o
obj-$(CONFIG_SPL_YMODEM_SUPPORT) += spl_ymodem.o
ifndef CONFIG_SPL_UBI
obj-$(CONFIG_SPL_NAND_SUPPORT) += spl_nand.o

@ -0,0 +1,28 @@
/*
* Copyright (C) 2017 Vikas Manocha <vikas.manocha@st.com>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <spl.h>
static int spl_xip(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev)
{
#ifdef CONFIG_SPL_OS_BOOT
if (!spl_start_uboot()) {
spl_image->arg = (void *)CONFIG_SYS_FDT_BASE;
spl_image->name = "Linux";
spl_image->os = IH_OS_LINUX;
spl_image->load_addr = CONFIG_SYS_LOAD_ADDR;
spl_image->entry_point = CONFIG_SYS_LOAD_ADDR;
debug("spl: payload xipImage, load addr: 0x%lx\n",
spl_image->load_addr);
return 0;
}
#endif
return(spl_parse_image_header(spl_image, (const struct image_header *)
CONFIG_SYS_UBOOT_BASE));
}
SPL_LOAD_IMAGE_METHOD("XIP", 0, BOOT_DEVICE_XIP, spl_xip);
Loading…
Cancel
Save