blob: a48be29599433945311eb6f22eb6ff4500070767 [file] [log] [blame]
Simon Glassc51faed2019-04-25 21:58:54 -06001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * (C) Copyright 2016 Google, Inc
4 * Written by Simon Glass <sjg@chromium.org>
5 */
6
Simon Glassc51faed2019-04-25 21:58:54 -06007#include <bloblist.h>
Simon Glass1fa70f82019-11-14 12:57:34 -07008#include <cpu_func.h>
Simon Glassc51faed2019-04-25 21:58:54 -06009#include <debug_uart.h>
10#include <handoff.h>
Simon Glass97589732020-05-10 11:40:02 -060011#include <init.h>
Simon Glass0f2af882020-05-10 11:40:05 -060012#include <log.h>
Simon Glass3ba929a2020-10-30 21:38:53 -060013#include <asm/global_data.h>
Simon Glassc51faed2019-04-25 21:58:54 -060014#include <asm/mtrr.h>
Tom Rinidec7ea02024-05-20 13:35:03 -060015#include <linux/errno.h>
Simon Glassc51faed2019-04-25 21:58:54 -060016
17int misc_init_r(void)
18{
19 return 0;
20}
21
22int dram_init(void)
23{
24 struct spl_handoff *ho;
25
Simon Glass90c1a582022-01-12 19:26:17 -070026 ho = bloblist_find(BLOBLISTT_U_BOOT_SPL_HANDOFF, sizeof(*ho));
Simon Glassc51faed2019-04-25 21:58:54 -060027 if (!ho)
28 return log_msg_ret("Missing SPL hand-off info", -ENOENT);
29 handoff_load_dram_size(ho);
30#ifdef CONFIG_TPL
31 /* TODO(sjg@chromium.org): MTRR cannot be adjusted without a hang */
32 mtrr_add_request(MTRR_TYPE_WRBACK, 0, 2ULL << 30);
33#else
34 mtrr_add_request(MTRR_TYPE_WRBACK, 0, gd->ram_size);
35 mtrr_commit(true);
36#endif
37
38 return 0;
39}
40
41int checkcpu(void)
42{
43 return 0;
44}
45
46int print_cpuinfo(void)
47{
48 return 0;
49}
50
51void board_debug_uart_init(void)
52{
53}
54
55int dram_init_banksize(void)
56{
Simon Glassc51faed2019-04-25 21:58:54 -060057 struct spl_handoff *ho;
58
Simon Glass90c1a582022-01-12 19:26:17 -070059 ho = bloblist_find(BLOBLISTT_U_BOOT_SPL_HANDOFF, sizeof(*ho));
Simon Glassc51faed2019-04-25 21:58:54 -060060 if (!ho)
61 return log_msg_ret("Missing SPL hand-off info", -ENOENT);
62 handoff_load_dram_banks(ho);
Simon Glassc51faed2019-04-25 21:58:54 -060063
64 return 0;
65}