Hey Dandan,

Thanks for your reply.
I issued updates for the current headers because I saw activity in 
edk2-platforms to implement these incomplete protocols and because I haven't 
heard back for discussed changes in the specification for some time.
Sure I could help submitting the ECR, however I'm not sure how. I'm not an UEFI 
Contributor and neither did I find any design flaws, just typos and missing 
definitions, which obviously must be bit values due to their non-exclusive 
nature.
If you need me to do something concrete, I will try to do my best.

Regards,
Marvin.

> -----Original Message-----
> From: Bi, Dandan <dandan...@intel.com>
> Sent: Monday, March 5, 2018 3:15 AM
> To: Marvin Häuser <marvin.haeu...@outlook.com>; edk2-
> de...@lists.01.org
> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming
> <liming....@intel.com>; Bi, Dandan <dandan...@intel.com>
> Subject: RE: [PATCH 1/5] MdePkg/SPI: Change function definitions to match
> their descriptions.
> 
> Hi Marvin,
> 
> Thank you very much for your contribution. Could you hold this patch series?
> Since current SPI header files follow PI1.6 spec.
> For this case, we should submit an ECR to update the PI spec firstly. After 
> the
> ECR has been approved by PIWG, then we can send patch to update them.
> Since you have found a lot of missing/incorrect parts in the SPI part of PI
> Spec. Could you help to submit an ECR to update them?
> 
> 
> Thanks,
> Dandan
> 
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Marvin Häuser
> Sent: Wednesday, February 28, 2018 12:49 AM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming
> <liming....@intel.com>
> Subject: [edk2] [PATCH 1/5] MdePkg/SPI: Change function definitions to
> match their descriptions.
> 
> The PI specification is not continuous with function headers and descriptions
> for the SPI protocols. Correct and comment these mistakes.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Marvin Haeuser <marvin.haeu...@outlook.com>
> ---
>  MdePkg/Include/Protocol/SpiConfiguration.h | 12 ++++++++----
>  MdePkg/Include/Protocol/SpiHc.h            | 14 +++++++++-----
>  MdePkg/Include/Protocol/SpiIo.h            | 15 ++++++++++-----
>  3 files changed, 27 insertions(+), 14 deletions(-)
> 
> diff --git a/MdePkg/Include/Protocol/SpiConfiguration.h
> b/MdePkg/Include/Protocol/SpiConfiguration.h
> index c0df183ec7f0..c36a809f4232 100644
> --- a/MdePkg/Include/Protocol/SpiConfiguration.h
> +++ b/MdePkg/Include/Protocol/SpiConfiguration.h
> @@ -1,7 +1,7 @@
>  /** @file
>    This file defines the SPI Configuration Protocol.
> 
> -  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2017 - 2018, Intel Corporation. All rights
> + reserved.<BR>
>    This program and the accompanying materials
>    are licensed and made available under the terms and conditions of the BSD
>    License which accompanies this distribution. The full text of the license 
> may
> @@ -65,6 +65,10 @@ EFI_STATUS
>    IN BOOLEAN                   PinValue
>    );
> 
> +//
> +// Note: In the PI specification, ClockHz is decorated as only 'IN', which is
> +//       not conforming to the parameter description.
> +//
>  /**
>    Set up the clock generator to produce the correct clock frequency, phase
> and
>    polarity for a SPI chip.
> @@ -78,7 +82,7 @@ EFI_STATUS
>                              ClockPhase and ClockPolarity fields. The routine
>                              also has access to the names for the SPI bus and
>                              chip which can be used during debugging.
> -  @param[in] ClockHz        Pointer to the requested clock frequency. The
> clock
> +  @param[in,out] ClockHz    Pointer to the requested clock frequency. The
> clock
>                              generator will choose a supported clock frequency
>                              which is less then or equal to this value.
>                              Specify zero to turn the clock generator off.
> @@ -92,8 +96,8 @@ EFI_STATUS
>  **/
>  typedef EFI_STATUS
>  (EFIAPI *EFI_SPI_CLOCK) (
> -  IN CONST EFI_SPI_PERIPHERAL  *SpiPeripheral,
> -  IN UINT32                    *ClockHz
> +  IN     CONST EFI_SPI_PERIPHERAL  *SpiPeripheral,
> +  IN OUT UINT32                    *ClockHz
>    );
> 
>  ///
> diff --git a/MdePkg/Include/Protocol/SpiHc.h
> b/MdePkg/Include/Protocol/SpiHc.h index 12fe5d2dce0a..71c75431e4e8
> 100644
> --- a/MdePkg/Include/Protocol/SpiHc.h
> +++ b/MdePkg/Include/Protocol/SpiHc.h
> @@ -1,7 +1,7 @@
>  /** @file
>    This file defines the SPI Host Controller Protocol.
> 
> -  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2017 - 2018, Intel Corporation. All rights
> + reserved.<BR>
>    This program and the accompanying materials
>    are licensed and made available under the terms and conditions of the BSD
>    License which accompanies this distribution. The full text of the license 
> may
> @@ -66,6 +66,10 @@ typedef EFI_STATUS
>    IN BOOLEAN                    PinValue
>    );
> 
> +//
> +// Note: In the PI specification, ClockHz is decorated as only 'IN', which is
> +//       not conforming to the parameter description.
> +//
>  /**
>    Set up the clock generator to produce the correct clock frequency, phase
> and
>    polarity for a SPI chip.
> @@ -80,7 +84,7 @@ typedef EFI_STATUS
>                              ClockPhase and ClockPolarity fields. The routine
>                              also has access to the names for the SPI bus and
>                              chip which can be used during debugging.
> -  @param[in] ClockHz        Pointer to the requested clock frequency. The SPI
> +  @param[in,out] ClockHz    Pointer to the requested clock frequency. The
> SPI
>                              host controller will choose a supported clock
>                              frequency which is less then or equal to this
>                              value. Specify zero to turn the clock generator 
> @@ -94,9 +98,9
> @@ typedef EFI_STATUS  **/  typedef EFI_STATUS  (EFIAPI
> *EFI_SPI_HC_PROTOCOL_CLOCK) (
> -  IN CONST EFI_SPI_HC_PROTOCOL  *This,
> -  IN CONST EFI_SPI_PERIPHERAL   *SpiPeripheral,
> -  IN UINT32                      *ClockHz
> +  IN     CONST EFI_SPI_HC_PROTOCOL  *This,
> +  IN     CONST EFI_SPI_PERIPHERAL   *SpiPeripheral,
> +  IN OUT UINT32                     *ClockHz
>    );
> 
>  /**
> diff --git a/MdePkg/Include/Protocol/SpiIo.h
> b/MdePkg/Include/Protocol/SpiIo.h index 43e804518f8b..8c5d96bb04b2
> 100644
> --- a/MdePkg/Include/Protocol/SpiIo.h
> +++ b/MdePkg/Include/Protocol/SpiIo.h
> @@ -1,7 +1,7 @@
>  /** @file
>    This file defines the SPI I/O Protocol.
> 
> -  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2017 - 2018, Intel Corporation. All rights
> + reserved.<BR>
>    This program and the accompanying materials
>    are licensed and made available under the terms and conditions of the BSD
>    License which accompanies this distribution. The full text of the license 
> may
> @@ -144,6 +144,11 @@ EFI_STATUS
>    OUT UINT8                      *ReadBuffer
>    );
> 
> +//
> +// Note: In the PI specification, 'This' is decorated with 'IN' and 'CONST'.
> +//       However, 'This' needs to be updated in order to reflect the
> +//       Peripheral update.
> +//
>  /**
>    Update the SPI peripheral associated with this SPI 10 instance.
> 
> @@ -152,8 +157,8 @@ EFI_STATUS
>    SPI NOR flash parts, where the size and parameters change depending
> upon
>    device is in the socket.
> 
> -  @param[in] This           Pointer to an EFI_SPI_IO_PROTOCOL structure.
> -  @param[in] SpiPeripheral  Pointer to an EFI_SPI_PERIPHERAL structure.
> +  @param[in,out] This           Pointer to an EFI_SPI_IO_PROTOCOL structure.
> +  @param[in]     SpiPeripheral  Pointer to an EFI_SPI_PERIPHERAL structure.
> 
>    @retval EFI_SUCCESS            The SPI peripheral was updated successfully
>    @retval EFI_INVALID_PARAMETER  The SpiPeripheral value is NULL, @@ -
> 165,8 +170,8 @@ EFI_STATUS  **/  typedef EFI_STATUS  (EFIAPI
> *EFI_SPI_IO_PROTOCOL_UPDATE_SPI_PERIPHERAL) (
> -  IN CONST EFI_SPI_IO_PROTOCOL  *This,
> -  IN CONST EFI_SPI_PERIPHERAL   *SpiPeripheral
> +  IN OUT EFI_SPI_IO_PROTOCOL       *This,
> +  IN     CONST EFI_SPI_PERIPHERAL  *SpiPeripheral
>    );
> 
>  ///
> --
> 2.16.0.windows.2
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to