
On 05/23/2016 04:48 AM, Zhiqiang Hou wrote:
From: Hou Zhiqiang Zhiqiang.Hou@nxp.com
The FSL Primary Protected Application (PPA) is a software component loaded during boot which runs in TrustZone and remains resident after boot.
Signed-off-by: Hou Zhiqiang Zhiqiag.Hou@nxp.com
V4:
- Moved secure firmware validation API to this patch.
- Moved secure firmware getting supported PSCI version API to this patch.
V3:
- Refactor the code.
- Add PPA firmware version info output.
<snip>
+int sec_firmware_validate(void) +{
- void *ppa_addr;
+#ifdef CONFIG_SYS_LS_PPA_FW_IN_NOR
- ppa_addr = (void *)CONFIG_SYS_LS_PPA_FW_ADDR;
+#else +#error "No CONFIG_SYS_LS_PPA_FW_IN_xxx defined" +#endif
- return ppa_firmware_validate(ppa_addr);
+}
You are returning 0 when the image is valid. This function name is confusing. How about declare it as bool, and change the name to is_sec_firmware_valid()?
+#ifdef CONFIG_ARMV8_PSCI +unsigned int sec_firmware_support_psci_version(void) +{
- unsigned int psci_ver = 0;
- if (!sec_firmware_validate())
psci_ver = ppa_support_psci_version();
- return psci_ver;
+} +#endif
+int ppa_init_pre(u64 *entry) +{
- u64 ppa_ram_addr;
- const void *raw_image_addr;
- size_t raw_image_size = 0;
- size_t ppa_ram_size = ppa_get_dram_block_size();
- int ret;
- debug("fsl-ppa: ppa size(0x%lx)\n", ppa_ram_size);
- /*
* The PPA must be stored in secure memory.
* Append PPA to secure mmu table.
*/
- ppa_ram_addr = (gd->secure_ram & MEM_RESERVE_SECURE_ADDR_MASK) +
gd->arch.tlb_size;
Should we check "if (gd->secure_ram & MEM_RESERVE_SECURE_SECURED)" before using the secure memory?
York