aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2011-05-10 22:08:30 -0400
committerKevin O'Connor <kevin@koconnor.net>2011-05-10 22:08:30 -0400
commit49bf57b87238ac964ac2ae527b74a7086132e27a (patch)
tree6392471e7a43ab2229de29837c628894e91647dd
parent9ead6fc588b783e10fa98ee4d989630be998b4a8 (diff)
downloadseabios-49bf57b87238ac964ac2ae527b74a7086132e27a.tar.gz
Add config option (CONFIG_BOOTORDER) to disable bootorder support.
-rw-r--r--src/Kconfig7
-rw-r--r--src/boot.c15
2 files changed, 22 insertions, 0 deletions
diff --git a/src/Kconfig b/src/Kconfig
index 3133d88..0da69e6 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -51,6 +51,13 @@ menu "General Features"
default y
help
Support showing a graphical boot splash screen.
+ config BOOTORDER
+ depends on BOOT
+ bool "Boot ordering"
+ default y
+ help
+ Support controlling of the boot order via the fw_cfg/CBFS
+ "bootorder" file.
config COREBOOT_FLASH
depends on COREBOOT
diff --git a/src/boot.c b/src/boot.c
index 1cd4126..9a67916 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -26,6 +26,9 @@ static int BootorderCount;
static void
loadBootOrder(void)
{
+ if (!CONFIG_BOOTORDER)
+ return;
+
char *f = romfile_loadfile("bootorder", NULL);
if (!f)
return;
@@ -121,6 +124,8 @@ build_pci_path(char *buf, int max, const char *devname, int bdf)
int bootprio_find_pci_device(int bdf)
{
+ if (!CONFIG_BOOTORDER)
+ return -1;
// Find pci device - for example: /pci@i0cf8/ethernet@5
char desc[256];
build_pci_path(desc, sizeof(desc), "*", bdf);
@@ -129,6 +134,8 @@ int bootprio_find_pci_device(int bdf)
int bootprio_find_ata_device(int bdf, int chanid, int slave)
{
+ if (!CONFIG_BOOTORDER)
+ return -1;
if (bdf == -1)
// support only pci machine for now
return -1;
@@ -141,6 +148,8 @@ int bootprio_find_ata_device(int bdf, int chanid, int slave)
int bootprio_find_fdc_device(int bdf, int port, int fdid)
{
+ if (!CONFIG_BOOTORDER)
+ return -1;
if (bdf == -1)
// support only pci machine for now
return -1;
@@ -153,6 +162,8 @@ int bootprio_find_fdc_device(int bdf, int port, int fdid)
int bootprio_find_pci_rom(int bdf, int instance)
{
+ if (!CONFIG_BOOTORDER)
+ return -1;
// Find pci rom - for example: /pci@i0cf8/scsi@3:rom2
char desc[256], *p;
p = build_pci_path(desc, sizeof(desc), "*", bdf);
@@ -163,6 +174,8 @@ int bootprio_find_pci_rom(int bdf, int instance)
int bootprio_find_named_rom(const char *name, int instance)
{
+ if (!CONFIG_BOOTORDER)
+ return -1;
// Find named rom - for example: /rom@genroms/linuxboot.bin
char desc[256], *p;
p = desc + snprintf(desc, sizeof(desc), "/rom@%s", name);
@@ -173,6 +186,8 @@ int bootprio_find_named_rom(const char *name, int instance)
int bootprio_find_usb(int bdf, u64 path)
{
+ if (!CONFIG_BOOTORDER)
+ return -1;
// Find usb - for example: /pci@i0cf8/usb@1,2/hub@1/network@0/ethernet@0
int i;
char desc[256], *p;