uboot/board/renesas/rcar-common/gen3-spl.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * R-Car Gen3 recovery SPL
   4 *
   5 * Copyright (C) 2019 Marek Vasut <marek.vasut@gmail.com>
   6 */
   7
   8#include <common.h>
   9#include <cpu_func.h>
  10#include <image.h>
  11#include <init.h>
  12#include <log.h>
  13#include <asm/io.h>
  14#include <spl.h>
  15#include <linux/bitops.h>
  16
  17#define RCAR_CNTC_BASE  0xE6080000
  18#define CNTCR_EN        BIT(0)
  19
  20void board_init_f(ulong dummy)
  21{
  22        writel(CNTCR_EN, RCAR_CNTC_BASE);
  23        timer_init();
  24}
  25
  26void spl_board_init(void)
  27{
  28        /* UART clocks enabled and gd valid - init serial console */
  29        preloader_console_init();
  30}
  31
  32u32 spl_boot_device(void)
  33{
  34        return BOOT_DEVICE_UART;
  35}
  36
  37void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
  38{
  39        debug("image entry point: 0x%lx\n", spl_image->entry_point);
  40        if (spl_image->os == IH_OS_ARM_TRUSTED_FIRMWARE) {
  41                typedef void (*image_entry_arg_t)(int, int, int, int)
  42                        __attribute__ ((noreturn));
  43                image_entry_arg_t image_entry =
  44                        (image_entry_arg_t)(uintptr_t) spl_image->entry_point;
  45                image_entry(IH_MAGIC, CONFIG_SPL_TEXT_BASE, 0, 0);
  46        } else {
  47                typedef void __noreturn (*image_entry_noargs_t)(void);
  48                image_entry_noargs_t image_entry =
  49                        (image_entry_noargs_t)spl_image->entry_point;
  50                image_entry();
  51        }
  52}
  53
  54void s_init(void)
  55{
  56}
  57
  58void reset_cpu(void)
  59{
  60}
  61