blob: d785e0e6ac546904dc81dcc3d73b93b87757b5bf [file] [log] [blame]
Angel Pons986d50e2020-04-02 23:48:53 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Daisuke Nojiriefddcfb2014-09-04 09:55:34 -07002
Julius Wernerb5995b52014-12-01 13:28:47 -08003#include <arch/exception.h>
Aaron Durbin588ad7b2015-09-29 17:56:59 -05004#include <arch/hlt.h>
Daisuke Nojiribcc1d422014-06-19 19:16:24 -07005#include <console/console.h>
Aaron Durbin588ad7b2015-09-29 17:56:59 -05006#include <program_loading.h>
Philipp Deppenwiesefea24292017-10-17 17:02:29 +02007#include <security/vboot/vboot_common.h>
Daisuke Nojiribcc1d422014-06-19 19:16:24 -07008
Aaron Durbin64031672018-04-21 14:45:32 -06009void __weak verstage_mainboard_init(void)
Daisuke Nojiri1989a532014-06-30 08:28:17 -070010{
Aaron Durbin588ad7b2015-09-29 17:56:59 -050011 /* Default empty implementation. */
Daisuke Nojiri1989a532014-06-30 08:28:17 -070012}
13
Julius Werner94d94112017-03-16 19:21:51 -070014void main(void)
Julius Wernerb5995b52014-12-01 13:28:47 -080015{
16 console_init();
17 exception_init();
Aaron Durbin588ad7b2015-09-29 17:56:59 -050018 verstage_mainboard_init();
19
Julius Wernercd49cce2019-03-05 16:53:33 -080020 if (CONFIG(VBOOT_RETURN_FROM_VERSTAGE)) {
Aaron Durbin588ad7b2015-09-29 17:56:59 -050021 verstage_main();
Julius Werner5a090bf2021-04-02 17:24:34 -070022 printk(BIOS_DEBUG, "VBOOT: Returning from verstage.\n");
Aaron Durbin588ad7b2015-09-29 17:56:59 -050023 } else {
24 run_romstage();
25 hlt();
26 }
Julius Wernerb5995b52014-12-01 13:28:47 -080027}