public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Leif Lindholm <leif.lindholm@linaro.org>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: edk2-devel@lists.01.org, lersek@redhat.com
Subject: Re: [PATCH] ArmPlatformPkg/ArmVExpressFastBootDxe: clean up code and comments
Date: Fri, 28 Oct 2016 16:23:01 +0100	[thread overview]
Message-ID: <20161028152301.GD1161@bivouac.eciton.net> (raw)
In-Reply-To: <1477667597-26331-1-git-send-email-ard.biesheuvel@linaro.org>

On Fri, Oct 28, 2016 at 04:13:17PM +0100, Ard Biesheuvel wrote:
> This module contains an implementation of the Android Fastboot Platform
> protocol. So follow common Tianocore practice, and duplicate the per-method
> comment blocks from the interface definition into the implementation.
> 
> In addition, let's make all methods and the procotol struct STATIC, given
> that they are never referenced via external linkage.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

> ---
>  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c | 79 ++++++++++++++++++--
>  1 file changed, 74 insertions(+), 5 deletions(-)
> 
> diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c
> index 64b25f8a8c45..a01bf3c671ad 100644
> --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c
> +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBoot.c
> @@ -1,6 +1,7 @@
>  /** @file
>  
>    Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
> +  Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
>  
>    This program and the accompanying materials
>    are licensed and made available under the terms and conditions of the BSD License
> @@ -135,11 +136,13 @@ ReadPartitionEntries (
>  
>  
>  /*
> -  Initialise: Open the Android NVM device and find the partitions on it. Save them in
> -  a list along with the "PartitionName" fields for their GPT entries.
> -  We will use these partition names as the key in
> -  ArmFastbootPlatformFlashPartition.
> +  Do any initialisation that needs to be done in order to be able to respond to
> +  commands.
> +
> +  @retval EFI_SUCCESS   Initialised successfully.
> +  @retval !EFI_SUCCESS  Error in initialisation.
>  */
> +STATIC
>  EFI_STATUS
>  ArmFastbootPlatformInit (
>    VOID
> @@ -164,6 +167,7 @@ ArmFastbootPlatformInit (
>    //
>    // Get EFI_HANDLES for all the partitions on the block devices pointed to by
>    // PcdFastbootFlashDevicePath, also saving their GPT partition labels.
> +  // We will use these labels as the key in ArmFastbootPlatformFlashPartition.
>    // There's no way to find all of a device's children, so we get every handle
>    // in the system supporting EFI_BLOCK_IO_PROTOCOL and then filter out ones
>    // that don't represent partitions on the flash device.
> @@ -296,6 +300,11 @@ Exit:
>  
>  }
>  
> +/*
> +  To be called when Fastboot is finished and we aren't rebooting or booting an
> +  image. Undo initialisation, free resrouces.
> +*/
> +STATIC
>  VOID
>  ArmFastbootPlatformUnInit (
>    VOID
> @@ -304,6 +313,18 @@ ArmFastbootPlatformUnInit (
>    FreePartitionList ();
>  }
>  
> +/*
> +  Flash the partition named (according to a platform-specific scheme)
> +  PartitionName, with the image pointed to by Buffer, whose size is BufferSize.
> +
> +  @param[in] PartitionName  Null-terminated name of partition to write.
> +  @param[in] BufferSize     Size of Buffer in byets.
> +  @param[in] Buffer         Data to write to partition.
> +
> +  @retval EFI_NOT_FOUND     No such partition.
> +  @retval EFI_DEVICE_ERROR  Flashing failed.
> +*/
> +STATIC
>  EFI_STATUS
>  ArmFastbootPlatformFlashPartition (
>    IN CHAR8  *PartitionName,
> @@ -382,6 +403,15 @@ ArmFastbootPlatformFlashPartition (
>    return Status;
>  }
>  
> +/*
> +  Erase the partition named PartitionName.
> +
> +  @param[in] PartitionName  Null-terminated name of partition to erase.
> +
> +  @retval EFI_NOT_FOUND     No such partition.
> +  @retval EFI_DEVICE_ERROR  Erasing failed.
> +*/
> +STATIC
>  EFI_STATUS
>  ArmFastbootPlatformErasePartition (
>    IN CHAR8 *Partition
> @@ -390,6 +420,25 @@ ArmFastbootPlatformErasePartition (
>    return EFI_SUCCESS;
>  }
>  
> +/*
> +  If the variable referred to by Name exists, copy it (as a null-terminated
> +  string) into Value. If it doesn't exist, put the Empty string in Value.
> +
> +  Variable names and values may not be larger than 60 bytes, excluding the
> +  terminal null character. This is a limitation of the Fastboot protocol.
> +
> +  The Fastboot application will handle platform-nonspecific variables
> +  (Currently "version" is the only one of these.)
> +
> +  @param[in]  Name   Null-terminated name of Fastboot variable to retrieve.
> +  @param[out] Value  Caller-allocated buffer for null-terminated value of
> +                     variable.
> +
> +  @retval EFI_SUCCESS       The variable was retrieved, or it doesn't exist.
> +  @retval EFI_DEVICE_ERROR  There was an error looking up the variable. This
> +                            does _not_ include the variable not existing.
> +*/
> +STATIC
>  EFI_STATUS
>  ArmFastbootPlatformGetVar (
>    IN  CHAR8   *Name,
> @@ -404,6 +453,26 @@ ArmFastbootPlatformGetVar (
>    return EFI_SUCCESS;
>  }
>  
> +/*
> +  React to an OEM-specific command.
> +
> +  Future versions of this function might want to allow the platform to do some
> +  extra communication with the host. A way to do this would be to add a function
> +  to the FASTBOOT_TRANSPORT_PROTOCOL that allows the implementation of
> +  DoOemCommand to replace the ReceiveEvent with its own, and to restore the old
> +  one when it's finished.
> +
> +  However at the moment although the specification allows it, the AOSP fastboot
> +  host application doesn't handle receiving any data from the client, and it
> +  doesn't support a data phase for OEM commands.
> +
> +  @param[in] Command    Null-terminated command string.
> +
> +  @retval EFI_SUCCESS       The command executed successfully.
> +  @retval EFI_NOT_FOUND     The command wasn't recognised.
> +  @retval EFI_DEVICE_ERROR  There was an error executing the command.
> +*/
> +STATIC
>  EFI_STATUS
>  ArmFastbootPlatformOemCommand (
>    IN  CHAR8   *Command
> @@ -425,7 +494,7 @@ ArmFastbootPlatformOemCommand (
>    }
>  }
>  
> -FASTBOOT_PLATFORM_PROTOCOL mPlatformProtocol = {
> +STATIC FASTBOOT_PLATFORM_PROTOCOL mPlatformProtocol = {
>    ArmFastbootPlatformInit,
>    ArmFastbootPlatformUnInit,
>    ArmFastbootPlatformFlashPartition,
> -- 
> 2.7.4
> 


  reply	other threads:[~2016-10-28 15:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-28 15:13 [PATCH] ArmPlatformPkg/ArmVExpressFastBootDxe: clean up code and comments Ard Biesheuvel
2016-10-28 15:23 ` Leif Lindholm [this message]
2016-10-28 15:23 ` Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161028152301.GD1161@bivouac.eciton.net \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox