diff options
author | Dan Murphy <dmurphy@ti.com> | 2014-02-03 06:59:01 -0600 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-02-19 10:47:43 -0500 |
commit | fff40a7e02092eee11970e7001c8560df419cac1 (patch) | |
tree | 503236e40ccc5a43f559ecf1ab61e216e73d0780 /common/spl/spl_sata.c | |
parent | 054c8388345184e38c7bd7f64a529fa346b63df2 (diff) | |
download | u-boot-imx-fff40a7e02092eee11970e7001c8560df419cac1.zip u-boot-imx-fff40a7e02092eee11970e7001c8560df419cac1.tar.gz u-boot-imx-fff40a7e02092eee11970e7001c8560df419cac1.tar.bz2 |
common: spl: Add spl sata boot support
Add spl_sata to read a fat partition from a bootable SATA
drive.
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
Diffstat (limited to 'common/spl/spl_sata.c')
-rw-r--r-- | common/spl/spl_sata.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/common/spl/spl_sata.c b/common/spl/spl_sata.c new file mode 100644 index 0000000..2e7adca --- /dev/null +++ b/common/spl/spl_sata.c @@ -0,0 +1,49 @@ +/* + * (C) Copyright 2013 + * Texas Instruments, <www.ti.com> + * + * Dan Murphy <dmurphy@ti.com> + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Derived work from spl_usb.c + */ + +#include <common.h> +#include <spl.h> +#include <asm/u-boot.h> +#include <sata.h> +#include <fat.h> +#include <version.h> +#include <image.h> + +DECLARE_GLOBAL_DATA_PTR; + +void spl_sata_load_image(void) +{ + int err; + block_dev_desc_t *stor_dev; + + err = init_sata(CONFIG_SPL_SATA_BOOT_DEVICE); + if (err) { +#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT + printf("spl: sata init failed: err - %d\n", err); +#endif + hang(); + } else { + /* try to recognize storage devices immediately */ + stor_dev = scsi_get_dev(0); + } + +#ifdef CONFIG_SPL_OS_BOOT + if (spl_start_uboot() || spl_load_image_fat_os(stor_dev, + CONFIG_SYS_SATA_FAT_BOOT_PARTITION)) +#endif + err = spl_load_image_fat(stor_dev, + CONFIG_SYS_SATA_FAT_BOOT_PARTITION, + CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME); + if (err) { + puts("Error loading sata device\n"); + hang(); + } +} |