Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn> > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Nhi Pham via > groups.io > 发送时间: 2023年8月21日 11:41 > 收件人: devel@edk2.groups.io > 抄送: Nhi Pham <n...@os.amperecomputing.com>; Jian J Wang > <jian.j.w...@intel.com>; Liming Gao <gaolim...@byosoft.com.cn>; Hao A > Wu <hao.a.wu@intel.c> > 主题: [ ** SPAMMAIL ** ][edk2-devel] [PATCH 1/1] > MdeModulePkg/PciBusDxe: Fix boot hang with faulty PCI Option ROM > > A faulty PCI device has the Option ROM image size set to 0. UEFI reads > two headers PCI_EXPANSION_ROM_HEADER and PCI_DATA_STRUCTURE to > get the > Option ROM information. Because the image size is 0, the Option ROM > header address never changes. As a result, UEFI keeps reading the same > two headers definitely. This patch is intended to fix it. > > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Hao A Wu <hao.a.wu@intel.c> > Signed-off-by: Nhi Pham <n...@os.amperecomputing.com> > --- > MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c > b/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c > index 89f5f64101a5..bd5ace18f6e4 100644 > --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c > +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciOptionRomSupport.c > @@ -506,13 +506,13 @@ LoadOpRomImage ( > Indicator = RomPcir->Indicator; > > RomImageSize = RomImageSize + RomPcir->ImageLength * 512; > > RomBarOffset = RomBarOffset + RomPcir->ImageLength * 512; > > - } while (((Indicator & 0x80) == 0x00) && ((RomBarOffset - RomBar) < > RomSize)); > > + } while (((Indicator & 0x80) == 0x00) && ((RomBarOffset - RomBar) < > RomSize) && (RomImageSize > 0)); > > > > // > > // Some Legacy Cards do not report the correct ImageLength so used the > maximum > > // of the legacy length and the PCIR Image Length > > // > > - if (CodeType == PCI_CODE_TYPE_PCAT_IMAGE) { > > + if ((RomImageSize > 0) && (CodeType == PCI_CODE_TYPE_PCAT_IMAGE)) > { > > RomImageSize = MAX (RomImageSize, LegacyImageLength); > > } > > > > -- > 2.25.1 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107991): https://edk2.groups.io/g/devel/message/107991 Mute This Topic: https://groups.io/mt/100927966/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-