[U-Boot] [PATCH 6/8] am57xx_hs: avb2.0: add support of AVB 2.0

Igor Opaniuk igor.opaniuk at linaro.org
Wed Apr 25 13:18:03 UTC 2018


1. Add vbmeta partition info to android partition layout for am57xx SoC
2. Add support of AVB 2.0 (including avb subset of commands) for am57xx HS

Signed-off-by: Igor Opaniuk <igor.opaniuk at linaro.org>
---
 configs/am57xx_hs_evm_defconfig |  3 +++
 include/configs/am57xx_evm.h    | 11 +++++++++++
 include/environment/ti/boot.h   | 15 +++++++++++++++
 3 files changed, 29 insertions(+)

diff --git a/configs/am57xx_hs_evm_defconfig b/configs/am57xx_hs_evm_defconfig
index ca9742f..226537a 100644
--- a/configs/am57xx_hs_evm_defconfig
+++ b/configs/am57xx_hs_evm_defconfig
@@ -81,3 +81,6 @@ CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
 CONFIG_USB_GADGET_VENDOR_NUM=0x0451
 CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
+# CONFIG_LIBAVB is not set
+# CONFIG_LIBAVB_AB is not set
+# CONFIG_CMD_AVB is not set
diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
index d1f73f7..020eec1 100644
--- a/include/configs/am57xx_evm.h
+++ b/include/configs/am57xx_evm.h
@@ -38,6 +38,16 @@
 
 #define CONFIG_SYS_OMAP_ABE_SYSCK
 
+#define str(a)				#a
+#define VBMETA_PART_SIZE		(64 * 1024)
+
+#if defined(CONFIG_LIBAVB)
+#define VBMETA_PART \
+	"name=vbmeta,size=" str(VBMETA_PART_SIZE) ",uuid=${uuid_gpt_vbmeta};"
+#else
+#define VBMETA_PART			""
+#endif
+
 /* Define the default GPT table for eMMC */
 #define PARTS_DEFAULT \
 	/* Linux partitions */ \
@@ -61,6 +71,7 @@
 	"name=cache,size=256M,uuid=${uuid_gpt_cache};" \
 	"name=ipu1,size=1M,uuid=${uuid_gpt_ipu1};" \
 	"name=ipu2,size=1M,uuid=${uuid_gpt_ipu2};" \
+	VBMETA_PART \
 	"name=userdata,size=-,uuid=${uuid_gpt_userdata}"
 
 #define DFUARGS \
diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h
index 24b7783..a8336ae 100644
--- a/include/environment/ti/boot.h
+++ b/include/environment/ti/boot.h
@@ -18,6 +18,19 @@
 #define PARTS_DEFAULT
 #endif
 
+#if defined(CONFIG_CMD_AVB)
+#define AVB_VERIFY_CHECK "if run avb_verify; then " \
+				"echo AVB verification OK.;" \
+				"set bootargs $bootargs $avb_bootargs;" \
+			"else " \
+				"echo AVB verification failed.;" \
+			"exit; fi;"
+#define AVB_VERIFY_CMD "avb_verify=avb init 1; avb verify;\0"
+#else
+#define AVB_VERIFY_CHECK ""
+#define AVB_VERIFY_CMD ""
+#endif
+
 #define DEFAULT_COMMON_BOOT_TI_ARGS \
 	"console=" CONSOLEDEV ",115200n8\0" \
 	"fdtfile=undefined\0" \
@@ -26,6 +39,7 @@
 	"bootfile=zImage\0" \
 	"usbtty=cdc_acm\0" \
 	"vram=16M\0" \
+	AVB_VERIFY_CMD \
 	"partitions=" PARTS_DEFAULT "\0" \
 	"optargs=\0" \
 	"dofastboot=0\0" \
@@ -43,6 +57,7 @@
 		"setenv machid fe6; " \
 		"mmc dev $mmcdev; " \
 		"mmc rescan; " \
+		AVB_VERIFY_CHECK \
 		"part start mmc ${mmcdev} environment fdt_start; " \
 		"part size mmc ${mmcdev} environment fdt_size; " \
 		"part start mmc ${mmcdev} boot boot_start; " \
-- 
2.7.4



More information about the U-Boot mailing list