MdeModulePkg: Enhance PciBusDxe to handle high 32bit of MEM64 BAR returns 0
authorRuiyu Ni <ruiyu.ni@intel.com>
Thu, 30 Jul 2015 06:40:36 +0000 (06:40 +0000)
committerniruiyu <niruiyu@Edk2>
Thu, 30 Jul 2015 06:40:36 +0000 (06:40 +0000)
commit5c13180cfc9827f11174995a5211d6dde2a1ef31
treea4e75da93112372b1bfc59c5a1ecdef65d880196
parentf2993c021d1832ad741ba7bb5668809935b717c7
MdeModulePkg: Enhance PciBusDxe to handle high 32bit of MEM64 BAR returns 0

According to the PCI spec, when software writes all-one to BAR for size probing,
the value read back should be 0b1...10...0 after masking the BAR type bits.
But in real world, it's possible that certain device returns 0b0...01...10...0
for MEM64 BAR size probing: some bits in the high 32bit may be 0.
PciBus driver has the code to handle such case. However, it doesn't handle the
case that the high 32bit is totally 0. The patch is to handle the special case.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18114 6f19259b-4bc3-4df7-8a09-765794883524
MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c