avb: Make AVB independent of fastboot
authorUsama Arif <usama.arif@arm.com>
Tue, 11 Aug 2020 14:46:03 +0000 (15:46 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 24 Aug 2020 18:11:13 +0000 (14:11 -0400)
AVB only uses CONFIG_FASTBOOT_BUF_ADDR from fastboot for memory.
This memory is used for assigning temporary buffers.
This can be assigned a new variable and used as CONFIG_AVB_BUF_ADDR.
This is to support future boards that support AVB but dont support
USB and therefore dont support FASTBOOT.

Signed-off-by: Usama Arif <usama.arif@arm.com>
Cc: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Igor Opaniuk <igor.opaniuk@gmail.com>
[trini: Change defaults]
Signed-off-by: Tom Rini <trini@konsulko.com>
common/Kconfig
common/avb_verify.c
include/avb_verify.h

index 8f61aa7..c58f08b 100644 (file)
@@ -1003,7 +1003,7 @@ config HASH
 
 config AVB_VERIFY
        bool "Build Android Verified Boot operations"
-       depends on LIBAVB && FASTBOOT
+       depends on LIBAVB
        depends on PARTITION_UUIDS
        help
          This option enables compilation of bootloader-dependent operations,
@@ -1012,6 +1012,24 @@ config AVB_VERIFY
            * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
            * Helpers to alloc/init/free avb ops.
 
+if AVB_VERIFY
+
+config AVB_BUF_ADDR
+       hex "Define AVB buffer address"
+       default FASTBOOT_BUF_ADDR
+       help
+         AVB requires a buffer for memory transactions. This variable defines the
+         buffer address.
+
+config AVB_BUF_SIZE
+       hex "Define AVB buffer SIZE"
+       default FASTBOOT_BUF_SIZE
+       help
+         AVB requires a buffer for memory transactions. This variable defines the
+         buffer size.
+
+endif # AVB_VERIFY
+
 config SPL_HASH
        bool # "Support hashing API (SHA1, SHA256, etc.)"
        help
index a2b7396..db10d0f 100644 (file)
@@ -7,7 +7,6 @@
 #include <avb_verify.h>
 #include <blk.h>
 #include <cpu_func.h>
-#include <fastboot.h>
 #include <image.h>
 #include <malloc.h>
 #include <part.h>
index a8d7090..1e787ba 100644 (file)
@@ -72,12 +72,12 @@ static inline uint64_t calc_offset(struct mmc_part *part, int64_t offset)
 
 static inline size_t get_sector_buf_size(void)
 {
-       return (size_t)CONFIG_FASTBOOT_BUF_SIZE;
+       return (size_t)CONFIG_AVB_BUF_SIZE;
 }
 
 static inline void *get_sector_buf(void)
 {
-       return map_sysmem(CONFIG_FASTBOOT_BUF_ADDR, CONFIG_FASTBOOT_BUF_SIZE);
+       return map_sysmem(CONFIG_AVB_BUF_ADDR, CONFIG_AVB_BUF_SIZE);
 }
 
 static inline bool is_buf_unaligned(void *buffer)