xref: /aosp_15_r20/external/coreboot/src/mainboard/emulation/qemu-i440fx/bootmode.c (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #include <bootmode.h>
4 #include <console/console.h>
5 #include "fw_cfg.h"
6 
7 /*
8  * Enable recovery mode with fw_cfg option to qemu:
9  *   -fw_cfg name=opt/cros/recovery,string=1
10  */
get_recovery_mode_switch(void)11 int get_recovery_mode_switch(void)
12 {
13 	FWCfgFile f;
14 
15 	if (!fw_cfg_check_file(&f, "opt/cros/recovery")) {
16 		uint8_t rec_mode;
17 		if (f.size != 1) {
18 			printk(BIOS_ERR, "opt/cros/recovery invalid size %d\n", f.size);
19 			return 0;
20 		}
21 		fw_cfg_get(f.select, &rec_mode, f.size);
22 		if (rec_mode == '1') {
23 			printk(BIOS_INFO, "Recovery is enabled.\n");
24 			return 1;
25 		}
26 	}
27 
28 	return 0;
29 }
30