[SeaBIOS] [PATCH] Seabios: allow mapping of multiple PCI option ROMs to one
Kevin O'Connor
kevin at koconnor.net
Wed May 22 14:45:34 CEST 2013
On Tue, May 21, 2013 at 02:47:18PM -0500, Dave Frodin wrote:
> All,
> This is a patch that reproduces the vendor ID mapping that is done in
> coreboot in the various AMD northbridge's. The coreboot mapping is only
> useful if coreboot is used to run the vga bios. If seabios is the payload
> then most coreboot configs leave the vga bios init for it.
Thanks. See my comments below.
[...]
> --- a/src/optionroms.c
> +++ b/src/optionroms.c
> @@ -154,7 +154,6 @@ getRomPriority(u64 *sources, struct rom_header *rom, int instance)
> return bootprio_find_named_rom(file->name, instance);
> }
Looks like whitespace got corrupted in your email.
[...]
> +static u32
> +map_oprom_vendev(u32 vendev)
> +{
> + u32 new_vendev = vendev;
> +
> + switch (vendev) {
> + case 0x10029803: // Family14
> + case 0x10029804:
If we're going to have a mapping, I think it has to be read from
CBFS. I don't think we should hardcode a list into seabios.
[...]
> static struct rom_header *
> lookup_hardcode(struct pci_device *pci)
> {
> char fname[17];
> + u32 vendev_mapped;
> +
> + vendev_mapped = map_oprom_vendev((pci->vendor << 16) | pci->device);
> + pci->vendor = vendev_mapped >> 16;
> + pci->device = vendev_mapped & 0xFFFF;
Modifying struct pci_device doesn't look right.
-Kevin
More information about the SeaBIOS
mailing list