device/pci_rom: Add vga_oprom_preload
This method will allow preloading the VGA_BIOS_FILE. By preloading the file, into cbfs_cache we reduce boot time. In the future we can also add support for loading the second VGA_BIOS_FILE and the DGPU VGA_BIOS_FILE. BUG=b:179699789 TEST=Boot guybrush to OS and verify 12 ms reduction in boot time Signed-off-by: Raul E Rangel <rrangel@chromium.org> Change-Id: Icb54fe3a942e9507ff6f1173ba5620a8f4ce6549 Reviewed-on: https://review.coreboot.org/c/coreboot/+/56581 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Rob Barnes <robbarnes@google.com>
This commit is contained in:
parent
b5811c0b48
commit
a3811fe5e7
|
@ -16,6 +16,21 @@
|
||||||
void __weak map_oprom_vendev_rev(u32 *vendev, u8 *rev) { return; }
|
void __weak map_oprom_vendev_rev(u32 *vendev, u8 *rev) { return; }
|
||||||
u32 __weak map_oprom_vendev(u32 vendev) { return vendev; }
|
u32 __weak map_oprom_vendev(u32 vendev) { return vendev; }
|
||||||
|
|
||||||
|
void vga_oprom_preload(void)
|
||||||
|
{
|
||||||
|
/* The CONFIG_VGA_BIOS_ID symbol is only defined when VGA_BIOS is selected */
|
||||||
|
#if CONFIG(VGA_BIOS)
|
||||||
|
const char name[] = "pci" CONFIG_VGA_BIOS_ID ".rom";
|
||||||
|
|
||||||
|
if (!CONFIG(CBFS_PRELOAD))
|
||||||
|
return;
|
||||||
|
|
||||||
|
printk(BIOS_DEBUG, "Preloading VGA ROM %s\n", name);
|
||||||
|
|
||||||
|
cbfs_preload(name);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static void *cbfs_boot_map_optionrom(uint16_t vendor, uint16_t device)
|
static void *cbfs_boot_map_optionrom(uint16_t vendor, uint16_t device)
|
||||||
{
|
{
|
||||||
char name[17] = "pciXXXX,XXXX.rom";
|
char name[17] = "pciXXXX,XXXX.rom";
|
||||||
|
|
|
@ -35,6 +35,7 @@ struct pci_data {
|
||||||
uint16_t reserved_2;
|
uint16_t reserved_2;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void vga_oprom_preload(void);
|
||||||
struct rom_header *pci_rom_probe(const struct device *dev);
|
struct rom_header *pci_rom_probe(const struct device *dev);
|
||||||
struct rom_header *pci_rom_load(struct device *dev,
|
struct rom_header *pci_rom_load(struct device *dev,
|
||||||
struct rom_header *rom_header);
|
struct rom_header *rom_header);
|
||||||
|
|
Loading…
Reference in New Issue