From: Tom Rini <trini@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 17/17] ARM: SPL: Enhance spi_spl_load to match the other load functions
Date: Wed, 15 Aug 2012 14:30:54 -0700 [thread overview]
Message-ID: <1345066254-6911-18-git-send-email-trini@ti.com> (raw)
In-Reply-To: <1345066254-6911-1-git-send-email-trini@ti.com>
Signed-off-by: Tom Rini <trini@ti.com>
---
arch/arm/include/asm/spl.h | 2 +-
arch/arm/lib/spl.c | 4 ++--
drivers/mtd/spi/spi_spl_load.c | 23 ++++++++++++-----------
3 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/arch/arm/include/asm/spl.h b/arch/arm/include/asm/spl.h
index f0eb96f..6e60902 100644
--- a/arch/arm/include/asm/spl.h
+++ b/arch/arm/include/asm/spl.h
@@ -61,7 +61,7 @@ void spl_mmc_load_image(void);
void spl_ymodem_load_image(void);
/* SPI SPL functions */
-void spi_boot(void);
+void spl_spi_load_image(void);
#ifdef CONFIG_SPL_BOARD_INIT
void spl_board_init(void);
diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c
index dc26750..2532111 100644
--- a/arch/arm/lib/spl.c
+++ b/arch/arm/lib/spl.c
@@ -177,8 +177,8 @@ void board_init_r(gd_t *id, ulong dummy)
#endif
#ifdef CONFIG_SPL_SPI_SUPPORT
case BOOT_DEVICE_SPI:
- spi_boot();
- break;
+ spl_spi_load_image();
+ break;
#endif
default:
puts("SPL: Un-supported Boot Device\n");
diff --git a/drivers/mtd/spi/spi_spl_load.c b/drivers/mtd/spi/spi_spl_load.c
index 1aa30ac..f439ca5 100644
--- a/drivers/mtd/spi/spi_spl_load.c
+++ b/drivers/mtd/spi/spi_spl_load.c
@@ -24,16 +24,17 @@
#include <common.h>
#include <spi_flash.h>
+#include <asm/spl.h>
/*
* The main entry for SPI booting. It's necessary that SDRAM is already
* configured and available since this code loads the main U-Boot image
* from SPI into SDRAM and starts it from there.
*/
-void spi_boot(void)
+void spl_spi_load_image(void)
{
struct spi_flash *flash;
- void (*uboot)(void) __noreturn;
+ struct image_header *header;
/*
* Load U-Boot image from SPI flash into RAM
@@ -42,17 +43,17 @@ void spi_boot(void)
flash = spi_flash_probe(CONFIG_SPL_SPI_BUS, CONFIG_SPL_SPI_CS,
CONFIG_SF_DEFAULT_SPEED, SPI_MODE_3);
if (!flash) {
- puts("failed.\n");
+ puts("SPI probe failed.\n");
hang();
}
- spi_flash_read(flash, CONFIG_SYS_SPI_U_BOOT_OFFS,
- CONFIG_SYS_SPI_U_BOOT_SIZE,
- (void *) CONFIG_SYS_TEXT_BASE);
+ /* use CONFIG_SYS_TEXT_BASE as temporary storage area */
+ header = (struct image_header *)(CONFIG_SYS_TEXT_BASE);
- /*
- * Jump to U-Boot image
- */
- uboot = (void *) CONFIG_SYS_TEXT_BASE;
- (*uboot)();
+ /* Load u-boot, mkimage header is 64 bytes. */
+ spi_flash_read(flash, CONFIG_SYS_SPI_U_BOOT_OFFS, 0x40,
+ (void *) header);
+ spl_parse_image_header(header);
+ spi_flash_read(flash, CONFIG_SYS_SPI_U_BOOT_OFFS,
+ spl_image.size, (void *)spl_image.load_addr);
}
--
1.7.9.5
next prev parent reply other threads:[~2012-08-15 21:30 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-15 21:30 [U-Boot] [PATCH 00/17]: ARM: SPL: Make more generic, merge DaVinci and OMAP Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 01/17] spl_mmc: Make FAT checks / calls guarded with CONFIG_SPL_FAT_SUPPORT Tom Rini
2012-08-16 7:52 ` Stefano Babic
2012-08-15 21:30 ` [U-Boot] [PATCH 02/17] omap-common: SPL: Add CONFIG_SPL_DISPLAY_PRINT / spl_display_print() Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 03/17] ARM: SPL: Move the omap SPL framework to arch/arm/lib Tom Rini
2012-08-16 7:45 ` Stefano Babic
2012-08-16 14:38 ` Tom Rini
2012-08-17 8:25 ` Stefano Babic
2012-08-15 21:30 ` [U-Boot] [PATCH 04/17] Makefile: Move SPL files to clobber, remove from clean Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 05/17] ARM: SPL: Rename omap_boot_device to spl_boot_device Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 06/17] ARM: SPL: Rename omap_boot_mode to spl_boot_mode() Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 07/17] omap-common: Fix typo in lowlevel_init.S::save_boot_params Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 08/17] ARM: SPL: Remove NAND_MODE_HW_ECC from spl_nand.c Tom Rini
2012-08-16 7:59 ` Stefano Babic
2012-08-15 21:30 ` [U-Boot] [PATCH 09/17] ARM: SPL: Only call mem_malloc_init if configured Tom Rini
2012-08-16 8:01 ` Stefano Babic
2012-08-16 14:40 ` Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 10/17] ARM: SPL: Add <asm/spl.h> and <asm/arch/spl.h> Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 11/17] ARM: SPL: Make spl_mmc.c more generic Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 12/17] ARM: SPL: Clean up spl.c / spl_nand.c slightly Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 13/17] ARM: SPL: Start hooking in the current SPI SPL support Tom Rini
2012-08-15 21:30 ` [U-Boot] [PATCH 14/17] ARM: SPL: Move gpmc_init() to spl_board_init() Tom Rini
2012-08-16 8:05 ` Stefano Babic
2012-08-15 21:30 ` [U-Boot] [PATCH 15/17] ARM: SPL: Convert davinci to CONFIG_SPL_FRAMEWORK Tom Rini
2012-08-20 10:08 ` Christian Riesch
2012-08-15 21:30 ` [U-Boot] [PATCH 16/17] SPL: Enhance drivers/mtd/nand/nand_spl_load.c Tom Rini
2012-08-24 20:35 ` Scott Wood
2012-08-15 21:30 ` Tom Rini [this message]
2012-08-16 6:30 ` [U-Boot] [PATCH 00/17]: ARM: SPL: Make more generic, merge DaVinci and OMAP Stefan Roese
2012-08-16 14:30 ` Tom Rini
2012-08-16 14:50 ` Stefan Roese
2012-08-16 7:32 ` Stefano Babic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1345066254-6911-18-git-send-email-trini@ti.com \
--to=trini@ti.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.