src/optionroms.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
From: Rob Barnes <robbarnes@google.com>
Date: Wed, 22 Jan 2020 14:09:21 -0700
Some devices have the same vendor and device ID but need different
Option ROM files. Change the look-up to include the revision, then
fallback to looking up without the revision.
BUG=b:148125384
TEST=Manual, boot trembyle and confirm SeaBIOS console is displayed.
Change-Id: I4c969b08727077fcb5ca1198e61cc6711c675019
Reviewed-on:
https://chromium-review.googlesource.com/c/chromiumos/third_party/seabios/+/2015963
Reviewed-by: Raul E Rangel <rrangel@chromium.org>
Tested-by: Rob Barnes <robbarnes@google.com>
Commit-Queue: Rob Barnes <robbarnes@google.com>
Auto-Submit: Rob Barnes <robbarnes@google.com>
---
src/optionroms.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/optionroms.c b/src/optionroms.c
index e906ab9..c3aa9b0 100644
--- a/src/optionroms.c
+++ b/src/optionroms.c
@@ -329,10 +329,17 @@ init_pcirom(struct pci_device *pci, int isvga, u64
*sources)
dprintf(4, "Attempting to init PCI bdf %pP (vd %04x:%04x)\n"
, pci, pci->vendor, pci->device);
- char fname[17];
- snprintf(fname, sizeof(fname), "pci%04x,%04x.rom"
- , pci->vendor, pci->device);
+ char fname[20];
+ // Try to find rom file with revision included
+ snprintf(fname, sizeof(fname), "pci%04x,%04x,%02x.rom"
+ , pci->vendor, pci->device, pci->revision);
struct romfile_s *file = romfile_find(fname);
+ if (!file) {
+ // Fallback to finding rom file without revision
+ snprintf(fname, sizeof(fname), "pci%04x,%04x.rom"
+ , pci->vendor, pci->device);
+ file = romfile_find(fname);
+ }
struct rom_header *rom = NULL;
if (file)
rom = deploy_romfile(file);
--
2.25.1
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-leave@seabios.org
On Mon, Mar 16, 2020 at 05:48:55PM +0100, Paul Menzel wrote:
> From: Rob Barnes <robbarnes@google.com>
> Date: Wed, 22 Jan 2020 14:09:21 -0700
>
> Some devices have the same vendor and device ID but need different
> Option ROM files. Change the look-up to include the revision, then
> fallback to looking up without the revision.
>
> BUG=b:148125384
> TEST=Manual, boot trembyle and confirm SeaBIOS console is displayed.
> - char fname[17];
> - snprintf(fname, sizeof(fname), "pci%04x,%04x.rom"
> - , pci->vendor, pci->device);
> + char fname[20];
> + // Try to find rom file with revision included
> + snprintf(fname, sizeof(fname), "pci%04x,%04x,%02x.rom"
> + , pci->vendor, pci->device, pci->revision);
> struct romfile_s *file = romfile_find(fname);
> + if (!file) {
> + // Fallback to finding rom file without revision
> + snprintf(fname, sizeof(fname), "pci%04x,%04x.rom"
> + , pci->vendor, pci->device);
> + file = romfile_find(fname);
> + }
Looks good too, but likewise doesn't apply.
Seems something is broken in your mail workflow.
Did you use "git send-email" which usually gets things right?
cheers,
Gerd
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-leave@seabios.org
On Mon, Mar 16, 2020 at 05:48:55PM +0100, Paul Menzel wrote:
> From: Rob Barnes <robbarnes@google.com>
> Date: Wed, 22 Jan 2020 14:09:21 -0700
>
> Some devices have the same vendor and device ID but need different
> Option ROM files. Change the look-up to include the revision, then
> fallback to looking up without the revision.
Thanks. At a high-level I think this change is fine. However, the
documentation would also need to be updated (specifically I'm thinking
about docs/Runtime_config.md).
-Kevin
>
> BUG=b:148125384
> TEST=Manual, boot trembyle and confirm SeaBIOS console is displayed.
>
> Change-Id: I4c969b08727077fcb5ca1198e61cc6711c675019
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/seabios/+/2015963
> Reviewed-by: Raul E Rangel <rrangel@chromium.org>
> Tested-by: Rob Barnes <robbarnes@google.com>
> Commit-Queue: Rob Barnes <robbarnes@google.com>
> Auto-Submit: Rob Barnes <robbarnes@google.com>
> ---
> src/optionroms.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/src/optionroms.c b/src/optionroms.c
> index e906ab9..c3aa9b0 100644
> --- a/src/optionroms.c
> +++ b/src/optionroms.c
> @@ -329,10 +329,17 @@ init_pcirom(struct pci_device *pci, int isvga, u64
> *sources)
> dprintf(4, "Attempting to init PCI bdf %pP (vd %04x:%04x)\n"
> , pci, pci->vendor, pci->device);
>
> - char fname[17];
> - snprintf(fname, sizeof(fname), "pci%04x,%04x.rom"
> - , pci->vendor, pci->device);
> + char fname[20];
> + // Try to find rom file with revision included
> + snprintf(fname, sizeof(fname), "pci%04x,%04x,%02x.rom"
> + , pci->vendor, pci->device, pci->revision);
> struct romfile_s *file = romfile_find(fname);
> + if (!file) {
> + // Fallback to finding rom file without revision
> + snprintf(fname, sizeof(fname), "pci%04x,%04x.rom"
> + , pci->vendor, pci->device);
> + file = romfile_find(fname);
> + }
> struct rom_header *rom = NULL;
> if (file)
> rom = deploy_romfile(file);
> --
> 2.25.1
> _______________________________________________
> SeaBIOS mailing list -- seabios@seabios.org
> To unsubscribe send an email to seabios-leave@seabios.org
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-leave@seabios.org
© 2016 - 2026 Red Hat, Inc.