[U-Boot] [PATCH v3 1/1] avb2.0: add get_size_of_partition()

Implement get_size_of_partition() operation, which is required by the latest upstream libavb [1].
[1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5
Signed-off-by: Igor Opaniuk igor.opaniuk@linaro.org ---
Changes for v3: - reword commit message, added avblib repository link, that stick to specific tag - fix get_size_of_partition() function description.
Changes for v2: - change the return code for the case when out_size_num_bytes is NULL (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g)
common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/common/avb_verify.c b/common/avb_verify.c index 20e35ad..82ddebc 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, }
/** + * get_size_of_partition() - gets the size of a partition identified + * by a string name + * + * @ops: contains AVB ops handlers + * @partition: partition name (NUL-terminated UTF-8 string) + * @out_size_num_bytes: returns the value of a partition size + * + * @return: + * AVB_IO_RESULT_OK, on success (GUID found) + * AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL + * AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found + */ +static AvbIOResult get_size_of_partition(AvbOps *ops, + const char *partition, + u64 *out_size_num_bytes) +{ + struct mmc_part *part; + + if (!out_size_num_bytes) + return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE; + + part = get_partition(ops, partition); + if (!part) + return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION; + + *out_size_num_bytes = part->info.blksz * part->info.size; + + return AVB_IO_RESULT_OK; +} + +/** * ============================================================================ * AVB2.0 AvbOps alloc/initialisation/free * ============================================================================ @@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; ops_data->ops.get_unique_guid_for_partition = get_unique_guid_for_partition; - + ops_data->ops.get_size_of_partition = get_size_of_partition; ops_data->mmc_dev = boot_device;
return &ops_data->ops;

On 08/10/2018 08:59 AM, Igor Opaniuk wrote:
Implement get_size_of_partition() operation, which is required by the latest upstream libavb [1].
[1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5
Signed-off-by: Igor Opaniuk igor.opaniuk@linaro.org
Sam reviewed v1, not sure enough changed to drop his review tag, anyway for me:
Acked-by: Andrew F. Davis afd@ti.com
Changes for v3:
- reword commit message, added avblib repository link, that stick to specific tag
- fix get_size_of_partition() function description.
Changes for v2:
- change the return code for the case when out_size_num_bytes is NULL (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g)
common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/common/avb_verify.c b/common/avb_verify.c index 20e35ad..82ddebc 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, }
/**
- get_size_of_partition() - gets the size of a partition identified
- by a string name
- @ops: contains AVB ops handlers
- @partition: partition name (NUL-terminated UTF-8 string)
- @out_size_num_bytes: returns the value of a partition size
- @return:
AVB_IO_RESULT_OK, on success (GUID found)
AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL
AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found
- */
+static AvbIOResult get_size_of_partition(AvbOps *ops,
const char *partition,
u64 *out_size_num_bytes)
+{
- struct mmc_part *part;
- if (!out_size_num_bytes)
return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE;
- part = get_partition(ops, partition);
- if (!part)
return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION;
- *out_size_num_bytes = part->info.blksz * part->info.size;
- return AVB_IO_RESULT_OK;
+}
+/**
- ============================================================================
- AVB2.0 AvbOps alloc/initialisation/free
- ============================================================================
@@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; ops_data->ops.get_unique_guid_for_partition = get_unique_guid_for_partition;
ops_data->ops.get_size_of_partition = get_size_of_partition; ops_data->mmc_dev = boot_device;
return &ops_data->ops;

Sam,
Could you please double-check this patch and confirm that your tag can be still applied?
Thanks!
On 10 August 2018 at 17:06, Andrew F. Davis afd@ti.com wrote:
On 08/10/2018 08:59 AM, Igor Opaniuk wrote:
Implement get_size_of_partition() operation, which is required by the latest upstream libavb [1].
[1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5
Signed-off-by: Igor Opaniuk igor.opaniuk@linaro.org
Sam reviewed v1, not sure enough changed to drop his review tag, anyway for me:
Acked-by: Andrew F. Davis afd@ti.com
Changes for v3:
- reword commit message, added avblib repository link, that stick to specific tag
- fix get_size_of_partition() function description.
Changes for v2:
- change the return code for the case when out_size_num_bytes is NULL (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g)
common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/common/avb_verify.c b/common/avb_verify.c index 20e35ad..82ddebc 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, }
/**
- get_size_of_partition() - gets the size of a partition identified
- by a string name
- @ops: contains AVB ops handlers
- @partition: partition name (NUL-terminated UTF-8 string)
- @out_size_num_bytes: returns the value of a partition size
- @return:
AVB_IO_RESULT_OK, on success (GUID found)
AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL
AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found
- */
+static AvbIOResult get_size_of_partition(AvbOps *ops,
const char *partition,
u64 *out_size_num_bytes)
+{
struct mmc_part *part;
if (!out_size_num_bytes)
return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE;
part = get_partition(ops, partition);
if (!part)
return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION;
*out_size_num_bytes = part->info.blksz * part->info.size;
return AVB_IO_RESULT_OK;
+}
+/**
- ============================================================================
- AVB2.0 AvbOps alloc/initialisation/free
- ============================================================================
@@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; ops_data->ops.get_unique_guid_for_partition = get_unique_guid_for_partition;
ops_data->ops.get_size_of_partition = get_size_of_partition; ops_data->mmc_dev = boot_device; return &ops_data->ops;

On Fri, Aug 10, 2018 at 5:14 PM, Igor Opaniuk igor.opaniuk@linaro.org wrote:
Sam,
Could you please double-check this patch and confirm that your tag can be still applied?
Sure.
Reviewed-by: Sam Protsenko semen.protsenko@linaro.org
Thanks!
On 10 August 2018 at 17:06, Andrew F. Davis afd@ti.com wrote:
On 08/10/2018 08:59 AM, Igor Opaniuk wrote:
Implement get_size_of_partition() operation, which is required by the latest upstream libavb [1].
[1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5
Signed-off-by: Igor Opaniuk igor.opaniuk@linaro.org
Sam reviewed v1, not sure enough changed to drop his review tag, anyway for me:
Acked-by: Andrew F. Davis afd@ti.com
Changes for v3:
- reword commit message, added avblib repository link, that stick to specific tag
- fix get_size_of_partition() function description.
Changes for v2:
- change the return code for the case when out_size_num_bytes is NULL (s/AVB_IO_RESULT_ERROR_IO/AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE/g)
common/avb_verify.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/common/avb_verify.c b/common/avb_verify.c index 20e35ad..82ddebc 100644 --- a/common/avb_verify.c +++ b/common/avb_verify.c @@ -700,6 +700,37 @@ static AvbIOResult get_unique_guid_for_partition(AvbOps *ops, }
/**
- get_size_of_partition() - gets the size of a partition identified
- by a string name
- @ops: contains AVB ops handlers
- @partition: partition name (NUL-terminated UTF-8 string)
- @out_size_num_bytes: returns the value of a partition size
- @return:
AVB_IO_RESULT_OK, on success (GUID found)
AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE, out_size_num_bytes is NULL
AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION, if partition was not found
- */
+static AvbIOResult get_size_of_partition(AvbOps *ops,
const char *partition,
u64 *out_size_num_bytes)
+{
struct mmc_part *part;
if (!out_size_num_bytes)
return AVB_IO_RESULT_ERROR_INSUFFICIENT_SPACE;
part = get_partition(ops, partition);
if (!part)
return AVB_IO_RESULT_ERROR_NO_SUCH_PARTITION;
*out_size_num_bytes = part->info.blksz * part->info.size;
return AVB_IO_RESULT_OK;
+}
+/**
- ============================================================================
- AVB2.0 AvbOps alloc/initialisation/free
- ============================================================================
@@ -722,7 +753,7 @@ AvbOps *avb_ops_alloc(int boot_device) ops_data->ops.read_is_device_unlocked = read_is_device_unlocked; ops_data->ops.get_unique_guid_for_partition = get_unique_guid_for_partition;
ops_data->ops.get_size_of_partition = get_size_of_partition; ops_data->mmc_dev = boot_device; return &ops_data->ops;
-- Regards, Igor Opaniuk

On Fri, Aug 10, 2018 at 04:59:59PM +0300, Igor Opaniuk wrote:
Implement get_size_of_partition() operation, which is required by the latest upstream libavb [1].
[1] https://android.googlesource.com/platform/external/avb/+/android-p-preview-5
Signed-off-by: Igor Opaniuk igor.opaniuk@linaro.org Acked-by: Andrew F. Davis afd@ti.com Reviewed-by: Sam Protsenko semen.protsenko@linaro.org
Applied to u-boot/master, thanks!
participants (4)
-
Andrew F. Davis
-
Igor Opaniuk
-
Sam Protsenko
-
Tom Rini