just needs to compile, any BL32 image would do. To use TLK as the BL32, please
refer to the "Build TLK" section.
-Once a BL32 is ready, TLKD can be included in the image using the following
-command:
+Once a BL32 is ready, TLKD can be included in the image by adding "SPD=tlkd"
+to the build command.
-CROSS_COMPILE=<path_to_linaro_chain>/bin/aarch64-none-elf- make NEED_BL1=0
-NEED_BL2=0 BL32=<path_to_BL32_image> PLAT=<platform> SPD=tlkd all
-_
Trusted Little Kernel (TLK)
===========================
TLK is a Trusted OS running as Secure EL1. It is a Free Open Source Software
=========
To build and execute TLK, follow the instructions from "Building a TLK Device"
section from Tegra_BSP_for_Android_TLK_FOSS_Reference.pdf manual.
+
+Input parameters to TLK
+=======================
+TLK expects the TZDRAM size and a structure containing the boot arguments. BL2
+passes this information to the EL3 software as members of the bl32_ep_info
+struct, where bl32_ep_info is part of bl31_params_t (passed by BL2 in X0)
+
+Example:
+--------
+ bl32_ep_info->args.arg0 = TZDRAM size available for BL32
+ bl32_ep_info->args.arg1 = unused (used only on ARMv7)
+ bl32_ep_info->args.arg2 = pointer to boot args
+
static entry_point_info_t bl33_image_ep_info, bl32_image_ep_info;
static plat_params_from_bl2_t plat_bl31_params_from_bl2 = {
- (uint64_t)TZDRAM_SIZE, (uintptr_t)NULL
+ .tzdram_size = (uint64_t)TZDRAM_SIZE
};
/*******************************************************************************
bl32_image_ep_info = *from_bl2->bl32_ep_info;
/*
- * Parse platform specific parameters - TZDRAM aperture size and
- * pointer to BL32 params.
+ * Parse platform specific parameters - TZDRAM aperture size
*/
- if (plat_params) {
+ if (plat_params)
plat_bl31_params_from_bl2.tzdram_size = plat_params->tzdram_size;
- plat_bl31_params_from_bl2.bl32_params = plat_params->bl32_params;
- }
}
/*******************************************************************************