aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSam Eiderman <shmuel.eiderman@oracle.com>2019-06-12 12:37:03 +0300
committerGerd Hoffmann <kraxel@redhat.com>2019-11-06 10:56:00 +0100
commitcb56f61c109985ad71078b1fb2e65bd4d6ed1a59 (patch)
tree722865fe87a430be7906fc4e20c6dda1bc29780e /src
parentad2910949b1886deba24f574cee76cdc75e7cabe (diff)
downloadseabios-hppa-cb56f61c109985ad71078b1fb2e65bd4d6ed1a59.zip
seabios-hppa-cb56f61c109985ad71078b1fb2e65bd4d6ed1a59.tar.gz
seabios-hppa-cb56f61c109985ad71078b1fb2e65bd4d6ed1a59.tar.bz2
config: Add toggle for bootdevice information
Add the "BOOTDEVICES" toggle to remove boot device information received through fw_cfg. We will use this toggle in QEMU to reduce the size of the 128k SeaBIOS rom, which is only used in old compat versions, where this boot device information does not exist. Reviewed-by: Karl Heubaum <karl.heubaum@oracle.com> Reviewed-by: Arbel Moshe <arbel.moshe@oracle.com> Signed-off-by: Sam Eiderman <shmuel.eiderman@oracle.com> Message-Id: <20190612093704.47175-5-shmuel.eiderman@oracle.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/Kconfig7
-rw-r--r--src/boot.c9
2 files changed, 16 insertions, 0 deletions
diff --git a/src/Kconfig b/src/Kconfig
index 55a87cb..b3645b3 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -72,6 +72,13 @@ endchoice
help
Support controlling of the boot order via the fw_cfg/CBFS
"bootorder" file.
+ config BOOTDEVICES
+ depends on BOOT
+ bool "Boot device information"
+ default y
+ help
+ Support boot device information via the fw_cfg/CBFS
+ "bootdevices" file.
config COREBOOT_FLASH
depends on COREBOOT
diff --git a/src/boot.c b/src/boot.c
index 9248fab..e89b923 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -95,6 +95,9 @@ static int BootDeviceCount;
static void
loadBootDevices(void)
{
+ if (!CONFIG_BOOTDEVICES)
+ return;
+
BootDeviceCount = 0;
int fsize;
char *f = romfile_loadfile("bootdevices", &fsize);
@@ -172,6 +175,8 @@ bootdevice_find(const char *glob)
static BootDevice *
bootdevice_find_pci_device(struct pci_device *pci)
{
+ if (!CONFIG_BOOTDEVICES)
+ return NULL;
// Find pci device - for example: /pci@i0cf8/ethernet@5
char desc[256];
build_pci_path(desc, sizeof(desc), "*", pci);
@@ -181,6 +186,8 @@ bootdevice_find_pci_device(struct pci_device *pci)
static BootDevice *
bootdevice_find_scsi_device(struct pci_device *pci, int target, int lun)
{
+ if (!CONFIG_BOOTDEVICES)
+ return NULL;
if (!pci)
// support only pci machine for now
return NULL;
@@ -194,6 +201,8 @@ bootdevice_find_scsi_device(struct pci_device *pci, int target, int lun)
static BootDevice *
bootdevice_find_ata_device(struct pci_device *pci, int chanid, int slave)
{
+ if (!CONFIG_BOOTDEVICES)
+ return NULL;
if (!pci)
// support only pci machine for now
return NULL;