uboot/arch/arm/mach-zynq/spl.c
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2014 Xilinx, Inc. Michal Simek
   3 *
   4 * SPDX-License-Identifier:     GPL-2.0+
   5 */
   6#include <common.h>
   7#include <spl.h>
   8
   9#include <asm/io.h>
  10#include <asm/arch/hardware.h>
  11#include <asm/spl.h>
  12#include <asm/arch/sys_proto.h>
  13
  14DECLARE_GLOBAL_DATA_PTR;
  15
  16void board_init_f(ulong dummy)
  17{
  18        ps7_init();
  19
  20        /* Clear the BSS. */
  21        memset(__bss_start, 0, __bss_end - __bss_start);
  22
  23        preloader_console_init();
  24        arch_cpu_init();
  25        board_init_r(NULL, 0);
  26}
  27
  28#ifdef CONFIG_SPL_BOARD_INIT
  29void spl_board_init(void)
  30{
  31        board_init();
  32}
  33#endif
  34
  35u32 spl_boot_device(void)
  36{
  37        u32 mode;
  38
  39        switch ((zynq_slcr_get_boot_mode()) & ZYNQ_BM_MASK) {
  40#ifdef CONFIG_SPL_SPI_SUPPORT
  41        case ZYNQ_BM_QSPI:
  42                puts("qspi boot\n");
  43                mode = BOOT_DEVICE_SPI;
  44                break;
  45#endif
  46        case ZYNQ_BM_NAND:
  47                mode = BOOT_DEVICE_NAND;
  48                break;
  49        case ZYNQ_BM_NOR:
  50                mode = BOOT_DEVICE_NOR;
  51                break;
  52#ifdef CONFIG_SPL_MMC_SUPPORT
  53        case ZYNQ_BM_SD:
  54                puts("mmc boot\n");
  55                mode = BOOT_DEVICE_MMC1;
  56                break;
  57#endif
  58        case ZYNQ_BM_JTAG:
  59                mode = BOOT_DEVICE_RAM;
  60                break;
  61        default:
  62                puts("Unsupported boot mode selected\n");
  63                hang();
  64        }
  65
  66        return mode;
  67}
  68
  69#ifdef CONFIG_SPL_MMC_SUPPORT
  70u32 spl_boot_mode(void)
  71{
  72        return MMCSD_MODE_FS;
  73}
  74#endif
  75
  76#ifdef CONFIG_SPL_OS_BOOT
  77int spl_start_uboot(void)
  78{
  79        /* boot linux */
  80        return 0;
  81}
  82#endif
  83
  84__weak void ps7_init(void)
  85{
  86        /*
  87         * This function is overridden by the one in
  88         * board/xilinx/zynq/(platform)/ps7_init_gpl.c, if it exists.
  89         */
  90}
  91