summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c b/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
index 78c6819138..ea49cae989 100644
--- a/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
+++ b/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
@@ -109,10 +109,15 @@ InitializeSataController (
SataChPerSerdes = FixedPcdGet8 (PcdSataNumChPerSerdes);
- for (PortNum = 0; PortNum < SataPortCount; PortNum += SataChPerSerdes) {
+ //
+ // SataChPerSerdes must be 2 for the Even/Odd logic in the loop below
+ //
+ ASSERT(SataChPerSerdes == 2);
+
+ for (PortNum = StartPort; PortNum < SataPortCount + StartPort; PortNum += SataChPerSerdes) {
EvenPort = (UINT32)(FixedPcdGet32 (PcdSataPortMode) >> (PortNum * 2)) & 3;
OddPort = (UINT32)(FixedPcdGet32 (PcdSataPortMode) >> ((PortNum+1) * 2)) & 3;
- SataPhyInit ((StartPort + PortNum) / SataChPerSerdes, EvenPort, OddPort);
+ SataPhyInit (PortNum / SataChPerSerdes, EvenPort, OddPort);
}
//