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
>
next prev parent 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