mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/AtaAtapiPassThru: valid ports transverse algo of AHCI controller is updated to handle inconsecutive case
Signed-off-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13932 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
f3b4867f94
commit
6b13aa602a
|
@ -2202,8 +2202,19 @@ AhciModeInitialization (
|
|||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
for (Port = 0; Port < MaxPortNumber; Port ++) {
|
||||
for (Port = 0; Port < EFI_AHCI_MAX_PORTS; Port ++) {
|
||||
if ((PortImplementBitMap & (BIT0 << Port)) != 0) {
|
||||
//
|
||||
// According to AHCI spec, MaxPortNumber should be equal or greater than the number of implemented ports.
|
||||
//
|
||||
if ((MaxPortNumber--) == 0) {
|
||||
//
|
||||
// Should never be here.
|
||||
//
|
||||
ASSERT (FALSE);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
IdeInit->NotifyPhase (IdeInit, EfiIdeBeforeChannelEnumeration, Port);
|
||||
|
||||
//
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
#define EFI_AHCI_IS_OFFSET 0x0008
|
||||
#define EFI_AHCI_PI_OFFSET 0x000C
|
||||
|
||||
#define EFI_AHCI_MAX_PORTS 32
|
||||
|
||||
typedef struct {
|
||||
UINT32 Lower32;
|
||||
UINT32 Upper32;
|
||||
|
|
Loading…
Reference in New Issue