Add configurable ramstage support for minimal PCI scanning
This CL has changes that allow us to enable a configurable ramstage, and one change that allows us to minimize PCI scanning. Minimal scanning is a frequently requested feature. To enable it, we add two new variables to src/Kconfig CONFIGURABLE_RAMSTAGE is the overall variable controlling other options for minimizing the ramstage. MINIMAL_PCI_SCANNING is how we indicate we wish to enable minimal PCI scanning. Some devices must be scanned in all cases, such as 0:0.0. To indicate which devices we must scan, we add a new mandatory keyword to sconfig It is used in place of on, off, or hidden, and indicates a device is enabled and mandatory. Mandatory devices are always scanned. When MINIMAL_PCI_SCANNING is enabled, ONLY mandatory devices are scanned. We further add support in src/device/pci_device.c to manage both MINIMAL_PCI_SCANNING and mandatory devices. Finally, to show how this works in practice, we add mandatory keywords to 3 devices on the qemu-q35. TEST= 1. This is tested and working on the qemu-q35 target. 2. On CML-Hatch Before CL: Total Boot time: ~685ms After CL: Total Boot time: ~615ms Change-Id: I2073d9f8e9297c2b02530821ebb634ea2a5c758e Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36221 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Jeremy Soller <jeremy@system76.com>
This commit is contained in:
committed by
ron minnich
parent
91dc1e74a5
commit
466ca2c1ad
@@ -1,8 +1,8 @@
|
||||
/* A Bison parser, made by GNU Bison 3.0.5. */
|
||||
/* A Bison parser, made by GNU Bison 3.0.4. */
|
||||
|
||||
/* Bison interface for Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
|
||||
Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -30,8 +30,8 @@
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
#ifndef YY_YY_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
# define YY_YY_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
#ifndef YY_YY_HOME_RMINNICH_PROJECTS_LINUXBOOT_COREBOOTNERF_GITHUBCOREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
# define YY_YY_HOME_RMINNICH_PROJECTS_LINUXBOOT_COREBOOTNERF_GITHUBCOREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED
|
||||
/* Debug traces. */
|
||||
#ifndef YYDEBUG
|
||||
# define YYDEBUG 0
|
||||
@@ -49,34 +49,35 @@ extern int yydebug;
|
||||
DEVICE = 259,
|
||||
REGISTER = 260,
|
||||
BOOL = 261,
|
||||
HIDDEN = 262,
|
||||
BUS = 263,
|
||||
RESOURCE = 264,
|
||||
END = 265,
|
||||
EQUALS = 266,
|
||||
HEX = 267,
|
||||
STRING = 268,
|
||||
PCI = 269,
|
||||
PNP = 270,
|
||||
I2C = 271,
|
||||
APIC = 272,
|
||||
CPU_CLUSTER = 273,
|
||||
CPU = 274,
|
||||
DOMAIN = 275,
|
||||
IRQ = 276,
|
||||
DRQ = 277,
|
||||
SLOT_DESC = 278,
|
||||
IO = 279,
|
||||
NUMBER = 280,
|
||||
SUBSYSTEMID = 281,
|
||||
INHERIT = 282,
|
||||
IOAPIC_IRQ = 283,
|
||||
IOAPIC = 284,
|
||||
PCIINT = 285,
|
||||
GENERIC = 286,
|
||||
SPI = 287,
|
||||
USB = 288,
|
||||
MMIO = 289
|
||||
STATUS = 262,
|
||||
MANDATORY = 263,
|
||||
BUS = 264,
|
||||
RESOURCE = 265,
|
||||
END = 266,
|
||||
EQUALS = 267,
|
||||
HEX = 268,
|
||||
STRING = 269,
|
||||
PCI = 270,
|
||||
PNP = 271,
|
||||
I2C = 272,
|
||||
APIC = 273,
|
||||
CPU_CLUSTER = 274,
|
||||
CPU = 275,
|
||||
DOMAIN = 276,
|
||||
IRQ = 277,
|
||||
DRQ = 278,
|
||||
SLOT_DESC = 279,
|
||||
IO = 280,
|
||||
NUMBER = 281,
|
||||
SUBSYSTEMID = 282,
|
||||
INHERIT = 283,
|
||||
IOAPIC_IRQ = 284,
|
||||
IOAPIC = 285,
|
||||
PCIINT = 286,
|
||||
GENERIC = 287,
|
||||
SPI = 288,
|
||||
USB = 289,
|
||||
MMIO = 290
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -105,4 +106,4 @@ extern YYSTYPE yylval;
|
||||
|
||||
int yyparse (void);
|
||||
|
||||
#endif /* !YY_YY_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED */
|
||||
#endif /* !YY_YY_HOME_RMINNICH_PROJECTS_LINUXBOOT_COREBOOTNERF_GITHUBCOREBOOT_UTIL_SCONFIG_SCONFIG_TAB_H_SHIPPED_INCLUDED */
|
||||
|
Reference in New Issue
Block a user