public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive
@ 2017-08-20 19:33 Alan Ott
  2017-08-20 19:33 ` [PATCH v2 edk2-platforms 1/3] Silicon/AMD/Styx: Make PcdSataPortMode 32 bits Alan Ott
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Alan Ott @ 2017-08-20 19:33 UTC (permalink / raw)
  To: leif.lindholm, ard.biesheuvel; +Cc: edk2-devel, linaro-uefi, Alan Ott

Without the PCD for the second SATA Controller being specified, the boot
will hang. These patches fix it.

Alan Ott (3):
  Silicon/AMD/Styx: Make PcdSataPortMode 32 bits
  Silicon/AMD/Styx: Use PcdSataPortMode properly for two controllers
  Platform/AMD/OverdriveBoard: Re-enable the second SATA Controller

 Platform/AMD/OverdriveBoard/OverdriveBoard.dsc              | 10 +++-------
 Silicon/AMD/Styx/AmdStyx.dec                                |  2 +-
 .../AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c   | 13 +++++++++----
 3 files changed, 13 insertions(+), 12 deletions(-)

-- 
2.9.3



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 edk2-platforms 1/3] Silicon/AMD/Styx: Make PcdSataPortMode 32 bits
  2017-08-20 19:33 [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Alan Ott
@ 2017-08-20 19:33 ` Alan Ott
  2017-08-20 19:33 ` [PATCH v2 edk2-platforms 2/3] Silicon/AMD/Styx: Use PcdSataPortMode properly for two controllers Alan Ott
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Alan Ott @ 2017-08-20 19:33 UTC (permalink / raw)
  To: leif.lindholm, ard.biesheuvel; +Cc: edk2-devel, linaro-uefi, Alan Ott

Extra bits are needed to accomodate all 14 SATA ports

Signed-off-by: Alan Ott <alan@softiron.com>
Contributed-under: TianoCore Contribution Agreement 1.0
---
 Silicon/AMD/Styx/AmdStyx.dec                                  | 2 +-
 Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Silicon/AMD/Styx/AmdStyx.dec b/Silicon/AMD/Styx/AmdStyx.dec
index ddd5bf4..c6eebe6 100644
--- a/Silicon/AMD/Styx/AmdStyx.dec
+++ b/Silicon/AMD/Styx/AmdStyx.dec
@@ -54,7 +54,7 @@
   gAmdStyxTokenSpaceGuid.PcdSata0CtrlAxiSlvPort|0xE0300000|UINT32|0x00020000
   gAmdStyxTokenSpaceGuid.PcdSata0PortCount|8|UINT8|0x00020001
   gAmdStyxTokenSpaceGuid.PcdSataPi|0xFF|UINT32|0x00020002
-  gAmdStyxTokenSpaceGuid.PcdSataPortMode|0|UINT16|0x00020003
+  gAmdStyxTokenSpaceGuid.PcdSataPortMode|0|UINT32|0x00020003
   gAmdStyxTokenSpaceGuid.PcdSataPortMpsp|TRUE|BOOLEAN|0x00020004
   gAmdStyxTokenSpaceGuid.PcdSataSmpsSupport|FALSE|BOOLEAN|0x00020005
   gAmdStyxTokenSpaceGuid.PcdSataSssSupport|TRUE|BOOLEAN|0x00020006
diff --git a/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c b/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
index 1958d91..78c6819 100644
--- a/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
+++ b/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
@@ -110,8 +110,8 @@ InitializeSataController (
   SataChPerSerdes = FixedPcdGet8 (PcdSataNumChPerSerdes);
 
   for (PortNum = 0; PortNum < SataPortCount; PortNum += SataChPerSerdes) {
-    EvenPort = (UINT32)(FixedPcdGet16 (PcdSataPortMode) >> (PortNum * 2)) & 3;
-    OddPort = (UINT32)(FixedPcdGet16 (PcdSataPortMode) >> ((PortNum+1) * 2)) & 3;
+    EvenPort = (UINT32)(FixedPcdGet32 (PcdSataPortMode) >> (PortNum * 2)) & 3;
+    OddPort = (UINT32)(FixedPcdGet32 (PcdSataPortMode) >> ((PortNum+1) * 2)) & 3;
     SataPhyInit ((StartPort + PortNum) / SataChPerSerdes, EvenPort, OddPort);
   }
 
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 edk2-platforms 2/3] Silicon/AMD/Styx: Use PcdSataPortMode properly for two controllers
  2017-08-20 19:33 [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Alan Ott
  2017-08-20 19:33 ` [PATCH v2 edk2-platforms 1/3] Silicon/AMD/Styx: Make PcdSataPortMode 32 bits Alan Ott
@ 2017-08-20 19:33 ` Alan Ott
  2017-08-20 19:33 ` [PATCH v2 edk2-platforms 3/3] Platform/AMD/OverdriveBoard: Re-enable the second SATA Controller Alan Ott
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Alan Ott @ 2017-08-20 19:33 UTC (permalink / raw)
  To: leif.lindholm, ard.biesheuvel; +Cc: edk2-devel, linaro-uefi, Alan Ott

The previous implementation used only the lower bits for both the first
and second SATA controller, when the upper bits should have been used for
the second SATA controller.

Also ASSERT that SataChPerSerdes is 2, because the even/odd logic doesn't
work if it's not.

Signed-off-by: Alan Ott <alan@softiron.com>
Contributed-under: TianoCore Contribution Agreement 1.0
---
 Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c b/Silicon/AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c
index 78c6819..ea49cae 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);
   }
 
   //
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 edk2-platforms 3/3] Platform/AMD/OverdriveBoard: Re-enable the second SATA Controller
  2017-08-20 19:33 [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Alan Ott
  2017-08-20 19:33 ` [PATCH v2 edk2-platforms 1/3] Silicon/AMD/Styx: Make PcdSataPortMode 32 bits Alan Ott
  2017-08-20 19:33 ` [PATCH v2 edk2-platforms 2/3] Silicon/AMD/Styx: Use PcdSataPortMode properly for two controllers Alan Ott
@ 2017-08-20 19:33 ` Alan Ott
  2017-08-20 19:52 ` [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Ard Biesheuvel
  2017-08-21 14:12 ` Leif Lindholm
  4 siblings, 0 replies; 8+ messages in thread
From: Alan Ott @ 2017-08-20 19:33 UTC (permalink / raw)
  To: leif.lindholm, ard.biesheuvel; +Cc: edk2-devel, linaro-uefi, Alan Ott

The comment indicating that only the first SATA controller is operational
on SoftIron-branded OverDrive 3000 boards is incorrect. Re-enable the
second SATA controller.

Signed-off-by: Alan Ott <alan@softiron.com>
Contributed-under: TianoCore Contribution Agreement 1.0
---
 Platform/AMD/OverdriveBoard/OverdriveBoard.dsc | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
index f256ffb..2881de3 100644
--- a/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
+++ b/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
@@ -409,14 +409,10 @@ DEFINE DO_FLASHER   = FALSE
   gArmTokenSpaceGuid.PcdGicDistributorBase|0xE1110000
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xE112F000
 
-  #
-  # AMD's B1 based Overdrive has 14 SATA ports across 2 controllers. However,
-  # it appears that Softiron's Overdrive 3000, which is also B1 based, does
-  # not have the second SATA controller enabled, and any attempts to use it
-  # will crash the firmware. So use the first controller only.
-  #
+  # SATA Ports
   gAmdStyxTokenSpaceGuid.PcdSata0PortCount|8
-  gAmdStyxTokenSpaceGuid.PcdSataPortMode|0xffff
+  gAmdStyxTokenSpaceGuid.PcdSata1PortCount|6
+  gAmdStyxTokenSpaceGuid.PcdSataPortMode|0x0fffffff
 
   # PCIe Support
   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xF0000000
-- 
2.9.3



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive
  2017-08-20 19:33 [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Alan Ott
                   ` (2 preceding siblings ...)
  2017-08-20 19:33 ` [PATCH v2 edk2-platforms 3/3] Platform/AMD/OverdriveBoard: Re-enable the second SATA Controller Alan Ott
@ 2017-08-20 19:52 ` Ard Biesheuvel
  2017-08-21 14:12 ` Leif Lindholm
  4 siblings, 0 replies; 8+ messages in thread
From: Ard Biesheuvel @ 2017-08-20 19:52 UTC (permalink / raw)
  To: Alan Ott; +Cc: Leif Lindholm, edk2-devel@lists.01.org, linaro-uefi

On 20 August 2017 at 20:33, Alan Ott <alan@softiron.com> wrote:
> Without the PCD for the second SATA Controller being specified, the boot
> will hang. These patches fix it.
>
> Alan Ott (3):
>   Silicon/AMD/Styx: Make PcdSataPortMode 32 bits
>   Silicon/AMD/Styx: Use PcdSataPortMode properly for two controllers
>   Platform/AMD/OverdriveBoard: Re-enable the second SATA Controller
>

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive
  2017-08-20 19:33 [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Alan Ott
                   ` (3 preceding siblings ...)
  2017-08-20 19:52 ` [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Ard Biesheuvel
@ 2017-08-21 14:12 ` Leif Lindholm
  2017-08-21 14:20   ` Alan Ott
  4 siblings, 1 reply; 8+ messages in thread
From: Leif Lindholm @ 2017-08-21 14:12 UTC (permalink / raw)
  To: Alan Ott; +Cc: ard.biesheuvel, edk2-devel, linaro-uefi

On Sun, Aug 20, 2017 at 03:33:32PM -0400, Alan Ott wrote:
> Without the PCD for the second SATA Controller being specified, the boot
> will hang. These patches fix it.

Given Ard's RB, I'm happy for this to go in.
However, would you be happy to contribute these under TianoCore
Contribution Agreement 1.1 rather than 1.0?

If so, please confirm here and I can fold in the change before
pushing.

/
    Leif

> Alan Ott (3):
>   Silicon/AMD/Styx: Make PcdSataPortMode 32 bits
>   Silicon/AMD/Styx: Use PcdSataPortMode properly for two controllers
>   Platform/AMD/OverdriveBoard: Re-enable the second SATA Controller
> 
>  Platform/AMD/OverdriveBoard/OverdriveBoard.dsc              | 10 +++-------
>  Silicon/AMD/Styx/AmdStyx.dec                                |  2 +-
>  .../AMD/Styx/Drivers/StyxSataPlatformDxe/InitController.c   | 13 +++++++++----
>  3 files changed, 13 insertions(+), 12 deletions(-)
> 
> -- 
> 2.9.3
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive
  2017-08-21 14:12 ` Leif Lindholm
@ 2017-08-21 14:20   ` Alan Ott
  2017-08-21 17:17     ` Leif Lindholm
  0 siblings, 1 reply; 8+ messages in thread
From: Alan Ott @ 2017-08-21 14:20 UTC (permalink / raw)
  To: Leif Lindholm; +Cc: ard.biesheuvel, edk2-devel, linaro-uefi

On 08/21/2017 10:12 AM, Leif Lindholm wrote:
> On Sun, Aug 20, 2017 at 03:33:32PM -0400, Alan Ott wrote:
>> Without the PCD for the second SATA Controller being specified, the boot
>> will hang. These patches fix it.
>
> Given Ard's RB, I'm happy for this to go in.
> However, would you be happy to contribute these under TianoCore
> Contribution Agreement 1.1 rather than 1.0?
>
> If so, please confirm here and I can fold in the change before
> pushing.

Contributed-under: TianoCore Contribution Agreement 1.1

Thanks Leif!



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive
  2017-08-21 14:20   ` Alan Ott
@ 2017-08-21 17:17     ` Leif Lindholm
  0 siblings, 0 replies; 8+ messages in thread
From: Leif Lindholm @ 2017-08-21 17:17 UTC (permalink / raw)
  To: Alan Ott; +Cc: ard.biesheuvel, edk2-devel, linaro-uefi

On Mon, Aug 21, 2017 at 10:20:11AM -0400, Alan Ott wrote:
> On 08/21/2017 10:12 AM, Leif Lindholm wrote:
> > On Sun, Aug 20, 2017 at 03:33:32PM -0400, Alan Ott wrote:
> > > Without the PCD for the second SATA Controller being specified, the boot
> > > will hang. These patches fix it.
> > 
> > Given Ard's RB, I'm happy for this to go in.
> > However, would you be happy to contribute these under TianoCore
> > Contribution Agreement 1.1 rather than 1.0?
> > 
> > If so, please confirm here and I can fold in the change before
> > pushing.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> 
> Thanks Leif!

Thanks, Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Series pushed as 7d9c49468..b263c30e5.

/
    Leif


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-08-21 17:14 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-20 19:33 [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Alan Ott
2017-08-20 19:33 ` [PATCH v2 edk2-platforms 1/3] Silicon/AMD/Styx: Make PcdSataPortMode 32 bits Alan Ott
2017-08-20 19:33 ` [PATCH v2 edk2-platforms 2/3] Silicon/AMD/Styx: Use PcdSataPortMode properly for two controllers Alan Ott
2017-08-20 19:33 ` [PATCH v2 edk2-platforms 3/3] Platform/AMD/OverdriveBoard: Re-enable the second SATA Controller Alan Ott
2017-08-20 19:52 ` [PATCH v2 edk2-platforms 0/3] Re-enable the second SATA controller on Overdrive Ard Biesheuvel
2017-08-21 14:12 ` Leif Lindholm
2017-08-21 14:20   ` Alan Ott
2017-08-21 17:17     ` Leif Lindholm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox