diff options
Diffstat (limited to 'qemu/roms/u-boot/common/spl')
-rw-r--r-- | qemu/roms/u-boot/common/spl/Makefile | 22 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl.c | 257 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_fat.c | 123 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_mmc.c | 147 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_nand.c | 84 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_net.c | 37 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_nor.c | 51 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_onenand.c | 31 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_sata.c | 49 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_usb.c | 58 | ||||
-rw-r--r-- | qemu/roms/u-boot/common/spl/spl_ymodem.c | 59 |
11 files changed, 0 insertions, 918 deletions
diff --git a/qemu/roms/u-boot/common/spl/Makefile b/qemu/roms/u-boot/common/spl/Makefile deleted file mode 100644 index 64569c2cc..000000000 --- a/qemu/roms/u-boot/common/spl/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# -# (C) Copyright 2012 -# Texas Instruments Incorporated - http://www.ti.com/ -# Aneesh V <aneesh@ti.com> -# -# SPDX-License-Identifier: GPL-2.0+ -# -# Based on common/Makefile. -# - -ifdef CONFIG_SPL_BUILD -obj-$(CONFIG_SPL_FRAMEWORK) += spl.o -obj-$(CONFIG_SPL_NOR_SUPPORT) += spl_nor.o -obj-$(CONFIG_SPL_YMODEM_SUPPORT) += spl_ymodem.o -obj-$(CONFIG_SPL_NAND_SUPPORT) += spl_nand.o -obj-$(CONFIG_SPL_ONENAND_SUPPORT) += spl_onenand.o -obj-$(CONFIG_SPL_NET_SUPPORT) += spl_net.o -obj-$(CONFIG_SPL_MMC_SUPPORT) += spl_mmc.o -obj-$(CONFIG_SPL_USB_SUPPORT) += spl_usb.o -obj-$(CONFIG_SPL_FAT_SUPPORT) += spl_fat.o -obj-$(CONFIG_SPL_SATA_SUPPORT) += spl_sata.o -endif diff --git a/qemu/roms/u-boot/common/spl/spl.c b/qemu/roms/u-boot/common/spl/spl.c deleted file mode 100644 index 774fdad25..000000000 --- a/qemu/roms/u-boot/common/spl/spl.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * (C) Copyright 2010 - * Texas Instruments, <www.ti.com> - * - * Aneesh V <aneesh@ti.com> - * - * SPDX-License-Identifier: GPL-2.0+ - */ -#include <common.h> -#include <spl.h> -#include <asm/u-boot.h> -#include <nand.h> -#include <fat.h> -#include <version.h> -#include <i2c.h> -#include <image.h> -#include <malloc.h> -#include <linux/compiler.h> - -DECLARE_GLOBAL_DATA_PTR; - -#ifndef CONFIG_SYS_UBOOT_START -#define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE -#endif -#ifndef CONFIG_SYS_MONITOR_LEN -#define CONFIG_SYS_MONITOR_LEN (200 * 1024) -#endif - -u32 *boot_params_ptr = NULL; -struct spl_image_info spl_image; - -/* Define board data structure */ -static bd_t bdata __attribute__ ((section(".data"))); - -/* - * Default function to determine if u-boot or the OS should - * be started. This implementation always returns 1. - * - * Please implement your own board specific funcion to do this. - * - * RETURN - * 0 to not start u-boot - * positive if u-boot should start - */ -#ifdef CONFIG_SPL_OS_BOOT -__weak int spl_start_uboot(void) -{ - puts("SPL: Please implement spl_start_uboot() for your board\n"); - puts("SPL: Direct Linux boot not active!\n"); - return 1; -} -#endif - -/* - * Weak default function for board specific cleanup/preparation before - * Linux boot. Some boards/platforms might not need it, so just provide - * an empty stub here. - */ -__weak void spl_board_prepare_for_linux(void) -{ - /* Nothing to do! */ -} - -void spl_parse_image_header(const struct image_header *header) -{ - u32 header_size = sizeof(struct image_header); - - if (image_get_magic(header) == IH_MAGIC) { - if (spl_image.flags & SPL_COPY_PAYLOAD_ONLY) { - /* - * On some system (e.g. powerpc), the load-address and - * entry-point is located at address 0. We can't load - * to 0-0x40. So skip header in this case. - */ - spl_image.load_addr = image_get_load(header); - spl_image.entry_point = image_get_ep(header); - spl_image.size = image_get_data_size(header); - } else { - spl_image.entry_point = image_get_load(header); - /* Load including the header */ - spl_image.load_addr = spl_image.entry_point - - header_size; - spl_image.size = image_get_data_size(header) + - header_size; - } - spl_image.os = image_get_os(header); - spl_image.name = image_get_name(header); - debug("spl: payload image: %.*s load addr: 0x%x size: %d\n", - sizeof(spl_image.name), spl_image.name, - spl_image.load_addr, spl_image.size); - } else { - /* Signature not found - assume u-boot.bin */ - debug("mkimage signature not found - ih_magic = %x\n", - header->ih_magic); - /* Let's assume U-Boot will not be more than 200 KB */ - spl_image.size = CONFIG_SYS_MONITOR_LEN; - spl_image.entry_point = CONFIG_SYS_UBOOT_START; - spl_image.load_addr = CONFIG_SYS_TEXT_BASE; - spl_image.os = IH_OS_U_BOOT; - spl_image.name = "U-Boot"; - } -} - -__weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image) -{ - typedef void __noreturn (*image_entry_noargs_t)(void); - - image_entry_noargs_t image_entry = - (image_entry_noargs_t) spl_image->entry_point; - - debug("image entry point: 0x%X\n", spl_image->entry_point); - image_entry(); -} - -#ifdef CONFIG_SPL_RAM_DEVICE -static void spl_ram_load_image(void) -{ - const struct image_header *header; - - /* - * Get the header. It will point to an address defined by handoff - * which will tell where the image located inside the flash. For - * now, it will temporary fixed to address pointed by U-Boot. - */ - header = (struct image_header *) - (CONFIG_SYS_TEXT_BASE - sizeof(struct image_header)); - - spl_parse_image_header(header); -} -#endif - -void board_init_r(gd_t *dummy1, ulong dummy2) -{ - u32 boot_device; - debug(">>spl:board_init_r()\n"); - -#ifdef CONFIG_SYS_SPL_MALLOC_START - mem_malloc_init(CONFIG_SYS_SPL_MALLOC_START, - CONFIG_SYS_SPL_MALLOC_SIZE); -#endif - -#ifndef CONFIG_PPC - /* - * timer_init() does not exist on PPC systems. The timer is initialized - * and enabled (decrementer) in interrupt_init() here. - */ - timer_init(); -#endif - -#ifdef CONFIG_SPL_BOARD_INIT - spl_board_init(); -#endif - - boot_device = spl_boot_device(); - debug("boot device - %d\n", boot_device); - switch (boot_device) { -#ifdef CONFIG_SPL_RAM_DEVICE - case BOOT_DEVICE_RAM: - spl_ram_load_image(); - break; -#endif -#ifdef CONFIG_SPL_MMC_SUPPORT - case BOOT_DEVICE_MMC1: - case BOOT_DEVICE_MMC2: - case BOOT_DEVICE_MMC2_2: - spl_mmc_load_image(); - break; -#endif -#ifdef CONFIG_SPL_NAND_SUPPORT - case BOOT_DEVICE_NAND: - spl_nand_load_image(); - break; -#endif -#ifdef CONFIG_SPL_ONENAND_SUPPORT - case BOOT_DEVICE_ONENAND: - spl_onenand_load_image(); - break; -#endif -#ifdef CONFIG_SPL_NOR_SUPPORT - case BOOT_DEVICE_NOR: - spl_nor_load_image(); - break; -#endif -#ifdef CONFIG_SPL_YMODEM_SUPPORT - case BOOT_DEVICE_UART: - spl_ymodem_load_image(); - break; -#endif -#ifdef CONFIG_SPL_SPI_SUPPORT - case BOOT_DEVICE_SPI: - spl_spi_load_image(); - break; -#endif -#ifdef CONFIG_SPL_ETH_SUPPORT - case BOOT_DEVICE_CPGMAC: -#ifdef CONFIG_SPL_ETH_DEVICE - spl_net_load_image(CONFIG_SPL_ETH_DEVICE); -#else - spl_net_load_image(NULL); -#endif - break; -#endif -#ifdef CONFIG_SPL_USBETH_SUPPORT - case BOOT_DEVICE_USBETH: - spl_net_load_image("usb_ether"); - break; -#endif -#ifdef CONFIG_SPL_USB_SUPPORT - case BOOT_DEVICE_USB: - spl_usb_load_image(); - break; -#endif -#ifdef CONFIG_SPL_SATA_SUPPORT - case BOOT_DEVICE_SATA: - spl_sata_load_image(); - break; -#endif - default: - debug("SPL: Un-supported Boot Device\n"); - hang(); - } - - switch (spl_image.os) { - case IH_OS_U_BOOT: - debug("Jumping to U-Boot\n"); - break; -#ifdef CONFIG_SPL_OS_BOOT - case IH_OS_LINUX: - debug("Jumping to Linux\n"); - spl_board_prepare_for_linux(); - jump_to_image_linux((void *)CONFIG_SYS_SPL_ARGS_ADDR); -#endif - default: - debug("Unsupported OS image.. Jumping nevertheless..\n"); - } - jump_to_image_no_args(&spl_image); -} - -/* - * This requires UART clocks to be enabled. In order for this to work the - * caller must ensure that the gd pointer is valid. - */ -void preloader_console_init(void) -{ - gd->bd = &bdata; - gd->baudrate = CONFIG_BAUDRATE; - - serial_init(); /* serial communications setup */ - - gd->have_console = 1; - - puts("\nU-Boot SPL " PLAIN_VERSION " (" U_BOOT_DATE " - " \ - U_BOOT_TIME ")\n"); -#ifdef CONFIG_SPL_DISPLAY_PRINT - spl_display_print(); -#endif -} diff --git a/qemu/roms/u-boot/common/spl/spl_fat.c b/qemu/roms/u-boot/common/spl/spl_fat.c deleted file mode 100644 index 56be94388..000000000 --- a/qemu/roms/u-boot/common/spl/spl_fat.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - * (C) Copyright 2014 - * Texas Instruments, <www.ti.com> - * - * Dan Murphy <dmurphy@ti.com> - * - * SPDX-License-Identifier: GPL-2.0+ - * - * FAT Image Functions copied from spl_mmc.c - */ - -#include <common.h> -#include <spl.h> -#include <asm/u-boot.h> -#include <fat.h> -#include <image.h> - -static int fat_registered; - -#ifdef CONFIG_SPL_FAT_SUPPORT -static int spl_register_fat_device(block_dev_desc_t *block_dev, int partition) -{ - int err = 0; - - if (fat_registered) - return err; - - err = fat_register_device(block_dev, partition); - if (err) { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - printf("%s: fat register err - %d\n", __func__, err); -#endif - hang(); - } - - fat_registered = 1; - - return err; -} - -int spl_load_image_fat(block_dev_desc_t *block_dev, - int partition, - const char *filename) -{ - int err; - struct image_header *header; - - err = spl_register_fat_device(block_dev, partition); - if (err) - goto end; - - header = (struct image_header *)(CONFIG_SYS_TEXT_BASE - - sizeof(struct image_header)); - - err = file_fat_read(filename, header, sizeof(struct image_header)); - if (err <= 0) - goto end; - - spl_parse_image_header(header); - - err = file_fat_read(filename, (u8 *)spl_image.load_addr, 0); - -end: -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - if (err <= 0) - printf("%s: error reading image %s, err - %d\n", - __func__, filename, err); -#endif - - return (err <= 0); -} - -#ifdef CONFIG_SPL_OS_BOOT -int spl_load_image_fat_os(block_dev_desc_t *block_dev, int partition) -{ - int err; - __maybe_unused char *file; - - err = spl_register_fat_device(block_dev, partition); - if (err) - return err; - -#if defined(CONFIG_SPL_ENV_SUPPORT) && defined(CONFIG_SPL_OS_BOOT) - file = getenv("falcon_args_file"); - if (file) { - err = file_fat_read(file, (void *)CONFIG_SYS_SPL_ARGS_ADDR, 0); - if (err <= 0) { - printf("spl: error reading image %s, err - %d, falling back to default\n", - file, err); - goto defaults; - } - file = getenv("falcon_image_file"); - if (file) { - err = spl_load_image_fat(block_dev, partition, file); - if (err != 0) { - puts("spl: falling back to default\n"); - goto defaults; - } - - return 0; - } else - puts("spl: falcon_image_file not set in environment, falling back to default\n"); - } else - puts("spl: falcon_args_file not set in environment, falling back to default\n"); - -defaults: -#endif - - err = file_fat_read(CONFIG_SPL_FAT_LOAD_ARGS_NAME, - (void *)CONFIG_SYS_SPL_ARGS_ADDR, 0); - if (err <= 0) { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - printf("%s: error reading image %s, err - %d\n", - __func__, CONFIG_SPL_FAT_LOAD_ARGS_NAME, err); -#endif - return -1; - } - - return spl_load_image_fat(block_dev, partition, - CONFIG_SPL_FAT_LOAD_KERNEL_NAME); -} -#endif -#endif diff --git a/qemu/roms/u-boot/common/spl/spl_mmc.c b/qemu/roms/u-boot/common/spl/spl_mmc.c deleted file mode 100644 index fa6f891bc..000000000 --- a/qemu/roms/u-boot/common/spl/spl_mmc.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * (C) Copyright 2010 - * Texas Instruments, <www.ti.com> - * - * Aneesh V <aneesh@ti.com> - * - * SPDX-License-Identifier: GPL-2.0+ - */ -#include <common.h> -#include <spl.h> -#include <asm/u-boot.h> -#include <mmc.h> -#include <version.h> -#include <image.h> - -DECLARE_GLOBAL_DATA_PTR; - -static int mmc_load_image_raw(struct mmc *mmc, unsigned long sector) -{ - unsigned long err; - u32 image_size_sectors; - struct image_header *header; - - header = (struct image_header *)(CONFIG_SYS_TEXT_BASE - - sizeof(struct image_header)); - - /* read image header to find the image size & load address */ - err = mmc->block_dev.block_read(0, sector, 1, header); - if (err == 0) - goto end; - - if (image_get_magic(header) != IH_MAGIC) - return -1; - - spl_parse_image_header(header); - - /* convert size to sectors - round up */ - image_size_sectors = (spl_image.size + mmc->read_bl_len - 1) / - mmc->read_bl_len; - - /* Read the header too to avoid extra memcpy */ - err = mmc->block_dev.block_read(0, sector, image_size_sectors, - (void *)spl_image.load_addr); - -end: -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - if (err == 0) - printf("spl: mmc blk read err - %lu\n", err); -#endif - - return (err == 0); -} - -#ifdef CONFIG_SPL_OS_BOOT -static int mmc_load_image_raw_os(struct mmc *mmc) -{ - if (!mmc->block_dev.block_read(0, - CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR, - CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS, - (void *)CONFIG_SYS_SPL_ARGS_ADDR)) { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - printf("mmc args blk read error\n"); -#endif - return -1; - } - - return mmc_load_image_raw(mmc, CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR); -} -#endif - -void spl_mmc_load_image(void) -{ - struct mmc *mmc; - int err; - u32 boot_mode; - - mmc_initialize(gd->bd); - /* We register only one device. So, the dev id is always 0 */ - mmc = find_mmc_device(0); - if (!mmc) { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - puts("spl: mmc device not found!!\n"); -#endif - hang(); - } - - err = mmc_init(mmc); - if (err) { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - printf("spl: mmc init failed: err - %d\n", err); -#endif - hang(); - } - - boot_mode = spl_boot_mode(); - if (boot_mode == MMCSD_MODE_RAW) { - debug("boot mode - RAW\n"); -#ifdef CONFIG_SPL_OS_BOOT - if (spl_start_uboot() || mmc_load_image_raw_os(mmc)) -#endif - err = mmc_load_image_raw(mmc, - CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR); -#ifdef CONFIG_SPL_FAT_SUPPORT - } else if (boot_mode == MMCSD_MODE_FAT) { - debug("boot mode - FAT\n"); -#ifdef CONFIG_SPL_OS_BOOT - if (spl_start_uboot() || spl_load_image_fat_os(&mmc->block_dev, - CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION)) -#endif - err = spl_load_image_fat(&mmc->block_dev, - CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION, - CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME); -#endif -#ifdef CONFIG_SUPPORT_EMMC_BOOT - } else if (boot_mode == MMCSD_MODE_EMMCBOOT) { - /* - * We need to check what the partition is configured to. - * 1 and 2 match up to boot0 / boot1 and 7 is user data - * which is the first physical partition (0). - */ - int part = (mmc->part_config >> 3) & PART_ACCESS_MASK; - - if (part == 7) - part = 0; - - if (mmc_switch_part(0, part)) { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - puts("MMC partition switch failed\n"); -#endif - hang(); - } -#ifdef CONFIG_SPL_OS_BOOT - if (spl_start_uboot() || mmc_load_image_raw_os(mmc)) -#endif - err = mmc_load_image_raw(mmc, - CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR); -#endif - } else { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - puts("spl: wrong MMC boot mode\n"); -#endif - hang(); - } - - if (err) - hang(); -} diff --git a/qemu/roms/u-boot/common/spl/spl_nand.c b/qemu/roms/u-boot/common/spl/spl_nand.c deleted file mode 100644 index 9da021862..000000000 --- a/qemu/roms/u-boot/common/spl/spl_nand.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2011 - * Corscience GmbH & Co. KG - Simon Schwarz <schwarz@corscience.de> - * - * SPDX-License-Identifier: GPL-2.0+ - */ -#include <common.h> -#include <config.h> -#include <spl.h> -#include <asm/io.h> -#include <nand.h> - -void spl_nand_load_image(void) -{ - struct image_header *header; - int *src __attribute__((unused)); - int *dst __attribute__((unused)); - - debug("spl: nand - using hw ecc\n"); - nand_init(); - - /*use CONFIG_SYS_TEXT_BASE as temporary storage area */ - header = (struct image_header *)(CONFIG_SYS_TEXT_BASE); -#ifdef CONFIG_SPL_OS_BOOT - if (!spl_start_uboot()) { - /* - * load parameter image - * load to temp position since nand_spl_load_image reads - * a whole block which is typically larger than - * CONFIG_CMD_SPL_WRITE_SIZE therefore may overwrite - * following sections like BSS - */ - nand_spl_load_image(CONFIG_CMD_SPL_NAND_OFS, - CONFIG_CMD_SPL_WRITE_SIZE, - (void *)CONFIG_SYS_TEXT_BASE); - /* copy to destintion */ - for (dst = (int *)CONFIG_SYS_SPL_ARGS_ADDR, - src = (int *)CONFIG_SYS_TEXT_BASE; - src < (int *)(CONFIG_SYS_TEXT_BASE + - CONFIG_CMD_SPL_WRITE_SIZE); - src++, dst++) { - writel(readl(src), dst); - } - - /* load linux */ - nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS, - CONFIG_SYS_NAND_PAGE_SIZE, (void *)header); - spl_parse_image_header(header); - if (header->ih_os == IH_OS_LINUX) { - /* happy - was a linux */ - nand_spl_load_image(CONFIG_SYS_NAND_SPL_KERNEL_OFFS, - spl_image.size, (void *)spl_image.load_addr); - nand_deselect(); - return; - } else { - puts("The Expected Linux image was not " - "found. Please check your NAND " - "configuration.\n"); - puts("Trying to start u-boot now...\n"); - } - } -#endif -#ifdef CONFIG_NAND_ENV_DST - nand_spl_load_image(CONFIG_ENV_OFFSET, - CONFIG_SYS_NAND_PAGE_SIZE, (void *)header); - spl_parse_image_header(header); - nand_spl_load_image(CONFIG_ENV_OFFSET, spl_image.size, - (void *)spl_image.load_addr); -#ifdef CONFIG_ENV_OFFSET_REDUND - nand_spl_load_image(CONFIG_ENV_OFFSET_REDUND, - CONFIG_SYS_NAND_PAGE_SIZE, (void *)header); - spl_parse_image_header(header); - nand_spl_load_image(CONFIG_ENV_OFFSET_REDUND, spl_image.size, - (void *)spl_image.load_addr); -#endif -#endif - /* Load u-boot */ - nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS, - CONFIG_SYS_NAND_PAGE_SIZE, (void *)header); - spl_parse_image_header(header); - nand_spl_load_image(CONFIG_SYS_NAND_U_BOOT_OFFS, - spl_image.size, (void *)spl_image.load_addr); - nand_deselect(); -} diff --git a/qemu/roms/u-boot/common/spl/spl_net.c b/qemu/roms/u-boot/common/spl/spl_net.c deleted file mode 100644 index ff5370592..000000000 --- a/qemu/roms/u-boot/common/spl/spl_net.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * (C) Copyright 2012 - * Ilya Yanok <ilya.yanok@gmail.com> - * - * SPDX-License-Identifier: GPL-2.0+ - */ -#include <common.h> -#include <spl.h> -#include <net.h> - -DECLARE_GLOBAL_DATA_PTR; - -void spl_net_load_image(const char *device) -{ - int rv; - - env_init(); - env_relocate(); - setenv("autoload", "yes"); - load_addr = CONFIG_SYS_TEXT_BASE - sizeof(struct image_header); - rv = eth_initialize(gd->bd); - if (rv == 0) { - printf("No Ethernet devices found\n"); - hang(); - } - if (device) - setenv("ethact", device); - rv = NetLoop(BOOTP); - if (rv < 0) { - printf("Problem booting with BOOTP\n"); - hang(); - } - spl_parse_image_header((struct image_header *)load_addr); -} diff --git a/qemu/roms/u-boot/common/spl/spl_nor.c b/qemu/roms/u-boot/common/spl/spl_nor.c deleted file mode 100644 index b444a3ea2..000000000 --- a/qemu/roms/u-boot/common/spl/spl_nor.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2012 Stefan Roese <sr@denx.de> - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#include <common.h> -#include <spl.h> - -void spl_nor_load_image(void) -{ - /* - * Loading of the payload to SDRAM is done with skipping of - * the mkimage header in this SPL NOR driver - */ - spl_image.flags |= SPL_COPY_PAYLOAD_ONLY; - - if (spl_start_uboot()) { - /* - * Load real U-Boot from its location in NOR flash to its - * defined location in SDRAM - */ - spl_parse_image_header( - (const struct image_header *)CONFIG_SYS_UBOOT_BASE); - - memcpy((void *)spl_image.load_addr, - (void *)(CONFIG_SYS_UBOOT_BASE + - sizeof(struct image_header)), - spl_image.size); - } else { - /* - * Load Linux from its location in NOR flash to its defined - * location in SDRAM - */ - spl_parse_image_header( - (const struct image_header *)CONFIG_SYS_OS_BASE); - - memcpy((void *)spl_image.load_addr, - (void *)(CONFIG_SYS_OS_BASE + - sizeof(struct image_header)), - spl_image.size); - - /* - * Copy DT blob (fdt) to SDRAM. Passing pointer to flash - * doesn't work (16 KiB should be enough for DT) - */ - memcpy((void *)CONFIG_SYS_SPL_ARGS_ADDR, - (void *)(CONFIG_SYS_FDT_BASE), - (16 << 10)); - } -} diff --git a/qemu/roms/u-boot/common/spl/spl_onenand.c b/qemu/roms/u-boot/common/spl/spl_onenand.c deleted file mode 100644 index d8d80974f..000000000 --- a/qemu/roms/u-boot/common/spl/spl_onenand.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 - * ISEE 2007 SL - Enric Balletbo i Serra <eballetbo@iseebcn.com> - * - * Based on common/spl/spl_nand.c - * Copyright (C) 2011 - * Corscience GmbH & Co. KG - Simon Schwarz <schwarz@corscience.de> - * - * SPDX-License-Identifier: GPL-2.0+ - */ -#include <common.h> -#include <config.h> -#include <spl.h> -#include <asm/io.h> -#include <onenand_uboot.h> - -void spl_onenand_load_image(void) -{ - struct image_header *header; - - debug("spl: onenand\n"); - - /*use CONFIG_SYS_TEXT_BASE as temporary storage area */ - header = (struct image_header *)(CONFIG_SYS_TEXT_BASE); - /* Load u-boot */ - onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, - CONFIG_SYS_ONENAND_PAGE_SIZE, (void *)header); - spl_parse_image_header(header); - onenand_spl_load_image(CONFIG_SYS_ONENAND_U_BOOT_OFFS, - spl_image.size, (void *)spl_image.load_addr); -} diff --git a/qemu/roms/u-boot/common/spl/spl_sata.c b/qemu/roms/u-boot/common/spl/spl_sata.c deleted file mode 100644 index 2e7adca0c..000000000 --- a/qemu/roms/u-boot/common/spl/spl_sata.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * (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(); - } -} diff --git a/qemu/roms/u-boot/common/spl/spl_usb.c b/qemu/roms/u-boot/common/spl/spl_usb.c deleted file mode 100644 index 53a904379..000000000 --- a/qemu/roms/u-boot/common/spl/spl_usb.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * (C) Copyright 2014 - * Texas Instruments, <www.ti.com> - * - * Dan Murphy <dmurphy@ti.com> - * - * SPDX-License-Identifier: GPL-2.0+ - * - * Derived work from spl_mmc.c - */ - -#include <common.h> -#include <spl.h> -#include <asm/u-boot.h> -#include <usb.h> -#include <fat.h> - -DECLARE_GLOBAL_DATA_PTR; - -#ifdef CONFIG_USB_STORAGE -static int usb_stor_curr_dev = -1; /* current device */ -#endif - -void spl_usb_load_image(void) -{ - int err; - block_dev_desc_t *stor_dev; - - usb_stop(); - err = usb_init(); - if (err) { -#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT - printf("%s: usb init failed: err - %d\n", __func__, err); -#endif - hang(); - } - -#ifdef CONFIG_USB_STORAGE - /* try to recognize storage devices immediately */ - usb_stor_curr_dev = usb_stor_scan(1); - stor_dev = usb_stor_get_dev(usb_stor_curr_dev); -#endif - - debug("boot mode - FAT\n"); - -#ifdef CONFIG_SPL_OS_BOOT - if (spl_start_uboot() || spl_load_image_fat_os(stor_dev, - CONFIG_SYS_USB_FAT_BOOT_PARTITION)) -#endif - err = spl_load_image_fat(stor_dev, - CONFIG_SYS_USB_FAT_BOOT_PARTITION, - CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME); - - if (err) { - puts("Error loading USB device\n"); - hang(); - } -} diff --git a/qemu/roms/u-boot/common/spl/spl_ymodem.c b/qemu/roms/u-boot/common/spl/spl_ymodem.c deleted file mode 100644 index 0f1e99707..000000000 --- a/qemu/roms/u-boot/common/spl/spl_ymodem.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * (C) Copyright 2000-2004 - * Wolfgang Denk, DENX Software Engineering, wd@denx.de. - * - * (C) Copyright 2011 - * Texas Instruments, <www.ti.com> - * - * Matt Porter <mporter@ti.com> - * - * SPDX-License-Identifier: GPL-2.0+ - */ -#include <common.h> -#include <spl.h> -#include <xyzModem.h> -#include <asm/u-boot.h> -#include <asm/utils.h> - -#define BUF_SIZE 1024 - -static int getcymodem(void) { - if (tstc()) - return (getc()); - return -1; -} - -void spl_ymodem_load_image(void) -{ - int size = 0; - int err; - int res; - int ret; - connection_info_t info; - char buf[BUF_SIZE]; - ulong store_addr = ~0; - ulong addr = 0; - - info.mode = xyzModem_ymodem; - ret = xyzModem_stream_open(&info, &err); - - if (!ret) { - while ((res = - xyzModem_stream_read(buf, BUF_SIZE, &err)) > 0) { - if (addr == 0) - spl_parse_image_header((struct image_header *)buf); - store_addr = addr + spl_image.load_addr; - size += res; - addr += res; - memcpy((char *)(store_addr), buf, res); - } - } else { - printf("spl: ymodem err - %s\n", xyzModem_error(err)); - hang(); - } - - xyzModem_stream_close(&err); - xyzModem_stream_terminate(false, &getcymodem); - - printf("Loaded %d bytes\n", size); -} |