summaryrefslogtreecommitdiffstats
path: root/src/device
diff options
context:
space:
mode:
authorRaul E Rangel <rrangel@chromium.org>2021-07-16 14:03:21 -0600
committerFelix Held <felix-coreboot@felixheld.de>2021-07-20 16:51:25 +0000
commita736f480883e544b2131c966cdfb80bb42e751b3 (patch)
treef741fb798f4cdc3820031866aee70901251336c4 /src/device
parent21863e33c808c45c3a3db6ae432675d768832a50 (diff)
downloadcoreboot-a736f480883e544b2131c966cdfb80bb42e751b3.tar.gz
coreboot-a736f480883e544b2131c966cdfb80bb42e751b3.tar.bz2
coreboot-a736f480883e544b2131c966cdfb80bb42e751b3.zip
lib/cbfs,device/pci_rom: Move cbfs_boot_map_optionrom and modernize
These methods are oprom specific. Move them out of CBFS. I also deleted the tohex methods and replaced them with snprintf. BUG=b:179699789 TEST=Boot guybrush and see oprom still loads Signed-off-by: Raul E Rangel <rrangel@chromium.org> Change-Id: I03791f19c93fabfe62d9ecd4f9b4fad0e6a6146e Reviewed-on: https://review.coreboot.org/c/coreboot/+/56393 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'src/device')
-rw-r--r--src/device/pci_rom.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/device/pci_rom.c b/src/device/pci_rom.c
index 334d99be8f17..106b5f9c8bc2 100644
--- a/src/device/pci_rom.c
+++ b/src/device/pci_rom.c
@@ -6,6 +6,7 @@
#include <device/pci.h>
#include <device/pci_ids.h>
#include <device/pci_ops.h>
+#include <stdio.h>
#include <string.h>
#include <cbfs.h>
#include <cbmem.h>
@@ -15,6 +16,24 @@
void __weak map_oprom_vendev_rev(u32 *vendev, u8 *rev) { return; }
u32 __weak map_oprom_vendev(u32 vendev) { return vendev; }
+static void *cbfs_boot_map_optionrom(uint16_t vendor, uint16_t device)
+{
+ char name[17] = "pciXXXX,XXXX.rom";
+
+ snprintf(name, sizeof(name), "pci%04hx,%04hx.rom", vendor, device);
+
+ return cbfs_map(name, NULL);
+}
+
+static void *cbfs_boot_map_optionrom_revision(uint16_t vendor, uint16_t device, uint8_t rev)
+{
+ char name[20] = "pciXXXX,XXXX,XX.rom";
+
+ snprintf(name, sizeof(name), "pci%04hx,%04hx,%02hhx.rom", vendor, device, rev);
+
+ return cbfs_map(name, NULL);
+}
+
struct rom_header *pci_rom_probe(const struct device *dev)
{
struct rom_header *rom_header = NULL;