BaseTools/EfiRom: Add multiple device id support

This is a patch to implement writing and dumping of PCI 3.0 Device ID
lists in EFI option ROMs in the EfiRom tool.
Using this modification, multiple space-delimited device IDs can be
specified after -i.  The first device in the list is used for the main
PCI ROM header Device ID field and is also written in the list.  The
list is only written when more than one device ID has been specified;
when only one device ID is given on the command line, the EfiRom output
should be identical to the current code.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=666
Cc: Liming Gao <liming.gao@intel.com>
Cc: Tomas Pilar <tpilar@solarflare.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Daniel Verkamp
2017-08-21 16:26:26 +08:00
committed by Yonghong Zhu
parent 656ac0c7d8
commit 9f3a38cdfb
2 changed files with 135 additions and 29 deletions

View File

@@ -1,7 +1,7 @@
/** @file
This file contains the relevant declarations required to generate Option Rom File
Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.<BR>
Copyright (c) 1999 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
under the terms and conditions of the BSD License which accompanies this
distribution. The full text of the license may be found at
@@ -83,9 +83,9 @@ typedef struct {
UINT16 ClassCode;
UINT16 PciRevision;
UINT16 VendId;
UINT16 DevId;
UINT16 *DevIdList;
UINT32 DevIdCount;
UINT8 VendIdValid;
UINT8 DevIdValid;
INT8 Verbose;
INT8 Quiet;
INT8 Debug;