summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-Wei Wang <chiawei_wang@aspeedtech.com>2021-10-27 14:17:35 +0800
committerTom Rini <trini@konsulko.com>2021-11-17 17:05:57 -0500
commite3cdc2cbb1b1a773b98bd39885c9be6b809375fb (patch)
tree594a811f7a58574eaca484848ed12309146c3a10
parent3aeb239f51ad7760dfef5f409ff80b76b3f60c3b (diff)
downloadu-boot-e3cdc2cbb1b1a773b98bd39885c9be6b809375fb.tar.gz
u-boot-e3cdc2cbb1b1a773b98bd39885c9be6b809375fb.tar.bz2
u-boot-e3cdc2cbb1b1a773b98bd39885c9be6b809375fb.zip
configs: ast2600: Boot kernel FIT in DRAM
AST2600 leverages the FIT hash/signature verification to fulfill secure boot trust chain. To improve the performance and save SW code size for those crypto operations, the two HW crypto engine, HACE and ACRY, are enabled. However, both of the engines can only access to data stored in DRAM space. Therefore, we need to move the FIT image into DRAM before the booting. This patch update the CONFIG_BOOTCOMMAND to execute the pre-defined ENV variable which consists of FIT image copy to memory and booting. Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
-rw-r--r--configs/evb-ast2600_defconfig2
-rw-r--r--include/configs/evb_ast2600.h7
2 files changed, 8 insertions, 1 deletions
diff --git a/configs/evb-ast2600_defconfig b/configs/evb-ast2600_defconfig
index dcf8deaae8..0f03a72e52 100644
--- a/configs/evb-ast2600_defconfig
+++ b/configs/evb-ast2600_defconfig
@@ -27,7 +27,7 @@ CONFIG_SPL_LOAD_FIT_ADDRESS=0x10000
CONFIG_USE_BOOTARGS=y
CONFIG_BOOTARGS="console=ttyS4,115200n8 root=/dev/ram rw"
CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="bootm 20100000"
+CONFIG_BOOTCOMMAND="run bootspi"
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_SPL_SIZE_LIMIT_SUBTRACT_GD=y
CONFIG_SPL_SIZE_LIMIT_SUBTRACT_MALLOC=y
diff --git a/include/configs/evb_ast2600.h b/include/configs/evb_ast2600.h
index 3805091d7c..9049a9fc10 100644
--- a/include/configs/evb_ast2600.h
+++ b/include/configs/evb_ast2600.h
@@ -14,7 +14,14 @@
#define CONFIG_SYS_LOAD_ADDR 0x83000000
/* Misc */
+#define STR_HELPER(s) #s
+#define STR(s) STR_HELPER(s)
+
#define CONFIG_EXTRA_ENV_SETTINGS \
+ "loadaddr=" STR(CONFIG_SYS_LOAD_ADDR) "\0" \
+ "bootspi=fdt addr 20100000 && fdt header get fitsize totalsize && " \
+ "cp.b 20100000 ${loadaddr} ${fitsize} && bootm; " \
+ "echo Error loading kernel FIT image\0" \
""
#endif /* __CONFIG_H */