uboot/board/freescale/imxrt1020-evk/imxrt1020-evk.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * Copyright (C) 2020
   4 * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com>
   5 */
   6
   7#include <common.h>
   8#include <dm.h>
   9#include <init.h>
  10#include <log.h>
  11#include <ram.h>
  12#include <spl.h>
  13#include <asm/global_data.h>
  14#include <asm/io.h>
  15#include <asm/armv7m.h>
  16#include <serial.h>
  17
  18DECLARE_GLOBAL_DATA_PTR;
  19
  20int dram_init(void)
  21{
  22#ifndef CONFIG_SUPPORT_SPL
  23        int rv;
  24        struct udevice *dev;
  25
  26        rv = uclass_get_device(UCLASS_RAM, 0, &dev);
  27        if (rv) {
  28                debug("DRAM init failed: %d\n", rv);
  29                return rv;
  30        }
  31
  32#endif
  33        return fdtdec_setup_mem_size_base();
  34}
  35
  36int dram_init_banksize(void)
  37{
  38        return fdtdec_setup_memory_banksize();
  39}
  40
  41#ifdef CONFIG_SPL_BUILD
  42#ifdef CONFIG_SPL_OS_BOOT
  43int spl_start_uboot(void)
  44{
  45        debug("SPL: booting kernel\n");
  46        /* break into full u-boot on 'c' */
  47        return serial_tstc() && serial_getc() == 'c';
  48}
  49#endif
  50
  51int spl_dram_init(void)
  52{
  53        struct udevice *dev;
  54        int rv;
  55
  56        rv = uclass_get_device(UCLASS_RAM, 0, &dev);
  57        if (rv)
  58                debug("DRAM init failed: %d\n", rv);
  59        return rv;
  60}
  61
  62void spl_board_init(void)
  63{
  64        preloader_console_init();
  65        spl_dram_init();
  66        arch_cpu_init(); /* to configure mpu for sdram rw permissions */
  67}
  68
  69u32 spl_boot_device(void)
  70{
  71        return BOOT_DEVICE_MMC1;
  72}
  73#endif
  74
  75int board_init(void)
  76{
  77        gd->bd->bi_boot_params = gd->bd->bi_dram[0].start + 0x100;
  78
  79        return 0;
  80}
  81