blob: c58f6a86a8fd6b3542f7c8ba0d37df19b4a01da5 [file] [log] [blame]
Simon Glass3a1a18f2015-01-27 22:13:47 -07001/*
2 * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7#include <common.h>
8#include <mmc.h>
9#include <pci_ids.h>
Bin Mengfe3fbd32015-07-30 03:49:18 -070010#include <asm/irq.h>
Bin Meng8b185042015-10-11 21:37:43 -070011#include <asm/mrccache.h>
Simon Glass3a1a18f2015-01-27 22:13:47 -070012#include <asm/post.h>
13
Simon Glassb4302582015-08-04 12:34:02 -060014#ifndef CONFIG_EFI_APP
Simon Glass3a1a18f2015-01-27 22:13:47 -070015int arch_cpu_init(void)
16{
Simon Glass3a1a18f2015-01-27 22:13:47 -070017 post_code(POST_CPU_INIT);
Simon Glass3a1a18f2015-01-27 22:13:47 -070018
Masahiro Yamada0a8547a2016-09-06 22:17:36 +090019 return x86_cpu_init_f();
Simon Glass3a1a18f2015-01-27 22:13:47 -070020}
Bin Mengfe3fbd32015-07-30 03:49:18 -070021
22int arch_misc_init(void)
23{
Simon Glassc8896ee2015-08-10 07:05:12 -060024 if (!ll_boot_init())
25 return 0;
Simon Glass46f8efe2015-08-10 07:05:10 -060026
Bin Meng8b185042015-10-11 21:37:43 -070027#ifdef CONFIG_ENABLE_MRC_CACHE
28 /*
29 * We intend not to check any return value here, as even MRC cache
30 * is not saved successfully, it is not a severe error that will
31 * prevent system from continuing to boot.
32 */
33 mrccache_save();
34#endif
35
Simon Glass12d69292016-01-19 21:32:26 -070036 return 0;
Bin Mengfe3fbd32015-07-30 03:49:18 -070037}
Bin Meng8b185042015-10-11 21:37:43 -070038
Simon Glassb4302582015-08-04 12:34:02 -060039#endif
Bin Meng74e56d12015-10-11 21:37:45 -070040
41void reset_cpu(ulong addr)
42{
43 /* cold reset */
44 x86_full_reset();
45}