[edk2] [platforms: PATCH 04/11] Applications/SpiTool: Enable configurable CS and SCLK mode

Marcin Wojtas posted 11 patches 7 years, 3 months ago
[edk2] [platforms: PATCH 04/11] Applications/SpiTool: Enable configurable CS and SCLK mode
Posted by Marcin Wojtas 7 years, 3 months ago
Until now transfer SCLK mode and CS were fixed, when using
shell 'sf' command. This patch enables their configuration.
Update porting guide accordingly.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
---
 Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c   | 6 +++++-
 Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf | 2 ++
 Platform/Marvell/Documentation/PortingGuide.txt       | 9 +++++----
 Platform/Marvell/Marvell.dec                          | 2 ++
 4 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c
index 184e3d7..b6dc54f 100644
--- a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c
+++ b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c
@@ -218,6 +218,7 @@ EFI_STATUS              Status;
   CONST CHAR16          *LengthStr = NULL, *FileStr = NULL;
   BOOLEAN               AddrFlag = FALSE, LengthFlag = TRUE, FileFlag = FALSE;
   UINT8                 Flag = 0, CheckFlag = 0;
+  UINT8                 Mode, Cs;
 
   Status = gBS->LocateProtocol (
     &gMarvellSpiFlashProtocolGuid,
@@ -283,8 +284,11 @@ EFI_STATUS              Status;
     }
   }
 
+  Mode = PcdGet32 (PcdSpiFlashMode);
+  Cs = PcdGet32 (PcdSpiFlashCs);
+
   // Setup new spi device
-  Slave = SpiMasterProtocol->SetupDevice (SpiMasterProtocol, 0, 0);
+  Slave = SpiMasterProtocol->SetupDevice (SpiMasterProtocol, Cs, Mode);
     if (Slave == NULL) {
       Print(L"sf: Cannot allocate SPI device!\n");
       return SHELL_ABORTED;
diff --git a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf
index 41b7b7c..c1ab770 100644
--- a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf
+++ b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf
@@ -66,6 +66,8 @@
 
 [Pcd]
  gMarvellTokenSpaceGuid.PcdSpiFlashId
+ gMarvellTokenSpaceGuid.PcdSpiFlashCs
+ gMarvellTokenSpaceGuid.PcdSpiFlashMode
 
 [Protocols]
  gMarvellSpiFlashProtocolGuid
diff --git a/Platform/Marvell/Documentation/PortingGuide.txt b/Platform/Marvell/Documentation/PortingGuide.txt
index 8c3579e..3b79bd2 100644
--- a/Platform/Marvell/Documentation/PortingGuide.txt
+++ b/Platform/Marvell/Documentation/PortingGuide.txt
@@ -284,10 +284,6 @@ Following PCDs are available for configuration of spi driver:
   - gMarvellTokenSpaceGuid.PcdSpiMaxFrequency
 	(Max SCLK line frequency (in Hz) (max transfer frequency) )
 
-  - gMarvellTokenSpaceGuid.PcdSpiDefaultMode
-	(default SCLK mode (see SPI_MODE enum in file OpenPlatformPkg/Drivers/Spi/MvSpi.h) )
-
-
 SpiFlash configuration
 ======================
 Folowing PCDs for spi flash driver configuration must be set properly:
@@ -307,6 +303,11 @@ Folowing PCDs for spi flash driver configuration must be set properly:
   - gMarvellTokenSpaceGuid.PcdSpiFlashPollCmd
 	(Spi flash polling flag)
 
+  - gMarvellTokenSpaceGuid.PcdSpiFlashMode
+	(Default SCLK mode (see SPI_MODE enum in file OpenPlatformPkg/Drivers/Spi/MvSpi.h))
+
+  - gMarvellTokenSpaceGuid.PcdSpiFlashCs
+	(Chip select used for communication with the Flash)
 
 MPP configuration
 =================
diff --git a/Platform/Marvell/Marvell.dec b/Platform/Marvell/Marvell.dec
index 4e2dd6d..869e376 100644
--- a/Platform/Marvell/Marvell.dec
+++ b/Platform/Marvell/Marvell.dec
@@ -128,6 +128,8 @@
   gMarvellTokenSpaceGuid.PcdSpiFlashEraseSize|0|UINT64|0x3000054
   gMarvellTokenSpaceGuid.PcdSpiFlashPageSize|0|UINT32|0x3000055
   gMarvellTokenSpaceGuid.PcdSpiFlashId|0|UINT32|0x3000056
+  gMarvellTokenSpaceGuid.PcdSpiFlashCs|0|UINT32|0x3000057
+  gMarvellTokenSpaceGuid.PcdSpiFlashMode|0|UINT32|0x3000058
 
 #ComPhy
   gMarvellTokenSpaceGuid.PcdComPhyDevices|{ 0x0 }|VOID*|0x30000098
-- 
1.8.3.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [platforms: PATCH 04/11] Applications/SpiTool: Enable configurable CS and SCLK mode
Posted by Leif Lindholm 7 years, 3 months ago
On Fri, Sep 01, 2017 at 03:08:16PM +0200, Marcin Wojtas wrote:
> Until now transfer SCLK mode and CS were fixed, when using
> shell 'sf' command. This patch enables their configuration.
> Update porting guide accordingly.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
> ---
>  Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c   | 6 +++++-
>  Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf | 2 ++
>  Platform/Marvell/Documentation/PortingGuide.txt       | 9 +++++----
>  Platform/Marvell/Marvell.dec                          | 2 ++
>  4 files changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c
> index 184e3d7..b6dc54f 100644
> --- a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c
> +++ b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.c
> @@ -218,6 +218,7 @@ EFI_STATUS              Status;
>    CONST CHAR16          *LengthStr = NULL, *FileStr = NULL;
>    BOOLEAN               AddrFlag = FALSE, LengthFlag = TRUE, FileFlag = FALSE;
>    UINT8                 Flag = 0, CheckFlag = 0;
> +  UINT8                 Mode, Cs;
>  
>    Status = gBS->LocateProtocol (
>      &gMarvellSpiFlashProtocolGuid,
> @@ -283,8 +284,11 @@ EFI_STATUS              Status;
>      }
>    }
>  
> +  Mode = PcdGet32 (PcdSpiFlashMode);
> +  Cs = PcdGet32 (PcdSpiFlashCs);
> +
>    // Setup new spi device
> -  Slave = SpiMasterProtocol->SetupDevice (SpiMasterProtocol, 0, 0);
> +  Slave = SpiMasterProtocol->SetupDevice (SpiMasterProtocol, Cs, Mode);
>      if (Slave == NULL) {
>        Print(L"sf: Cannot allocate SPI device!\n");
>        return SHELL_ABORTED;
> diff --git a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf
> index 41b7b7c..c1ab770 100644
> --- a/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf
> +++ b/Platform/Marvell/Applications/SpiTool/SpiFlashCmd.inf
> @@ -66,6 +66,8 @@
>  
>  [Pcd]
>   gMarvellTokenSpaceGuid.PcdSpiFlashId
> + gMarvellTokenSpaceGuid.PcdSpiFlashCs
> + gMarvellTokenSpaceGuid.PcdSpiFlashMode

Alphabetically sorted, please.

>  
>  [Protocols]
>   gMarvellSpiFlashProtocolGuid
> diff --git a/Platform/Marvell/Documentation/PortingGuide.txt b/Platform/Marvell/Documentation/PortingGuide.txt
> index 8c3579e..3b79bd2 100644
> --- a/Platform/Marvell/Documentation/PortingGuide.txt
> +++ b/Platform/Marvell/Documentation/PortingGuide.txt
> @@ -284,10 +284,6 @@ Following PCDs are available for configuration of spi driver:
>    - gMarvellTokenSpaceGuid.PcdSpiMaxFrequency
>  	(Max SCLK line frequency (in Hz) (max transfer frequency) )
>  
> -  - gMarvellTokenSpaceGuid.PcdSpiDefaultMode
> -	(default SCLK mode (see SPI_MODE enum in file OpenPlatformPkg/Drivers/Spi/MvSpi.h) )
> -
> -
>  SpiFlash configuration
>  ======================
>  Folowing PCDs for spi flash driver configuration must be set properly:
> @@ -307,6 +303,11 @@ Folowing PCDs for spi flash driver configuration must be set properly:
>    - gMarvellTokenSpaceGuid.PcdSpiFlashPollCmd
>  	(Spi flash polling flag)
>  
> +  - gMarvellTokenSpaceGuid.PcdSpiFlashMode
> +	(Default SCLK mode (see SPI_MODE enum in file OpenPlatformPkg/Drivers/Spi/MvSpi.h))
> +
> +  - gMarvellTokenSpaceGuid.PcdSpiFlashCs
> +	(Chip select used for communication with the Flash)
>  
>  MPP configuration
>  =================
> diff --git a/Platform/Marvell/Marvell.dec b/Platform/Marvell/Marvell.dec
> index 4e2dd6d..869e376 100644
> --- a/Platform/Marvell/Marvell.dec
> +++ b/Platform/Marvell/Marvell.dec
> @@ -128,6 +128,8 @@
>    gMarvellTokenSpaceGuid.PcdSpiFlashEraseSize|0|UINT64|0x3000054
>    gMarvellTokenSpaceGuid.PcdSpiFlashPageSize|0|UINT32|0x3000055
>    gMarvellTokenSpaceGuid.PcdSpiFlashId|0|UINT32|0x3000056
> +  gMarvellTokenSpaceGuid.PcdSpiFlashCs|0|UINT32|0x3000057
> +  gMarvellTokenSpaceGuid.PcdSpiFlashMode|0|UINT32|0x3000058
>  
>  #ComPhy
>    gMarvellTokenSpaceGuid.PcdComPhyDevices|{ 0x0 }|VOID*|0x30000098
> -- 
> 1.8.3.1
> 
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel