blob: 27140c5c35c8849eb927e13534f208844d896d99 [file] [log] [blame]
Marek Vasute39fa7d2018-10-03 12:44:13 +02001// 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 <asm/io.h>
10#include <spl.h>
11
12#define RCAR_CNTC_BASE 0xE6080000
13#define CNTCR_EN BIT(0)
14
15void board_init_f(ulong dummy)
16{
17 writel(CNTCR_EN, RCAR_CNTC_BASE);
18 timer_init();
19}
20
21void spl_board_init(void)
22{
23 /* UART clocks enabled and gd valid - init serial console */
24 preloader_console_init();
25}
26
27u32 spl_boot_device(void)
28{
29 return BOOT_DEVICE_UART;
30}
31
32void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
33{
34 debug("image entry point: 0x%lx\n", spl_image->entry_point);
35 if (spl_image->os == IH_OS_ARM_TRUSTED_FIRMWARE) {
36 typedef void (*image_entry_arg_t)(int, int, int, int)
37 __attribute__ ((noreturn));
38 image_entry_arg_t image_entry =
39 (image_entry_arg_t)(uintptr_t) spl_image->entry_point;
40 image_entry(IH_MAGIC, CONFIG_SPL_TEXT_BASE, 0, 0);
41 } else {
42 typedef void __noreturn (*image_entry_noargs_t)(void);
43 image_entry_noargs_t image_entry =
44 (image_entry_noargs_t)spl_image->entry_point;
45 image_entry();
46 }
47}
48
49void s_init(void)
50{
51}
52
53void reset_cpu(ulong addr)
54{
55}