diff options
author | Stefano Babic <sbabic@denx.de> | 2015-11-12 17:13:26 +0100 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2015-11-12 17:13:26 +0100 |
commit | 5f5620ab2679608f94b3a77e51c77d0a770103bd (patch) | |
tree | ec983c06d2f62384909968bb870add121b8a1502 /arch/arm/cpu/armv8/fsl-layerscape/spl.c | |
parent | 78e9ca52edaab74ad645d719676ff4c24d2f462c (diff) | |
parent | 038be18fd95aa6283eafb85ceabc0b880976424b (diff) | |
download | u-boot-5f5620ab2679608f94b3a77e51c77d0a770103bd.tar.gz |
Merge git://git.denx.de/u-boot
Diffstat (limited to 'arch/arm/cpu/armv8/fsl-layerscape/spl.c')
-rw-r--r-- | arch/arm/cpu/armv8/fsl-layerscape/spl.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c new file mode 100644 index 0000000000..ba551aaa6e --- /dev/null +++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c @@ -0,0 +1,79 @@ +/* + * Copyright 2014-2015 Freescale Semiconductor, Inc. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <spl.h> +#include <asm/io.h> +#include <fsl_ifc.h> +#include <fsl_csu.h> +#include <i2c.h> + +DECLARE_GLOBAL_DATA_PTR; + +u32 spl_boot_device(void) +{ +#ifdef CONFIG_SPL_MMC_SUPPORT + return BOOT_DEVICE_MMC1; +#endif +#ifdef CONFIG_SPL_NAND_SUPPORT + return BOOT_DEVICE_NAND; +#endif + return 0; +} + +u32 spl_boot_mode(void) +{ + switch (spl_boot_device()) { + case BOOT_DEVICE_MMC1: +#ifdef CONFIG_SPL_FAT_SUPPORT + return MMCSD_MODE_FAT; +#else + return MMCSD_MODE_RAW; +#endif + case BOOT_DEVICE_NAND: + return 0; + default: + puts("spl: error: unsupported device\n"); + hang(); + } +} + +#ifdef CONFIG_SPL_BUILD +void board_init_f(ulong dummy) +{ + /* Set global data pointer */ + gd = &gdata; + /* Clear global data */ + memset((void *)gd, 0, sizeof(gd_t)); +#ifdef CONFIG_LS2085A + arch_cpu_init(); +#endif +#ifdef CONFIG_FSL_IFC + init_early_memctl_regs(); +#endif + board_early_init_f(); + timer_init(); +#ifdef CONFIG_LS2085A + env_init(); +#endif + get_clocks(); + + preloader_console_init(); + +#ifdef CONFIG_SPL_I2C_SUPPORT + i2c_init_all(); +#endif + dram_init(); + + /* Clear the BSS */ + memset(__bss_start, 0, __bss_end - __bss_start); + +#ifdef CONFIG_LAYERSCAPE_NS_ACCESS + enable_layerscape_ns_access(); +#endif + board_init_r(NULL, 0); +} +#endif |