spd: trusty: pass boot params to the Trusted OS
authorWayne Lin <wlin@nvidia.com>
Tue, 24 May 2016 22:28:42 +0000 (15:28 -0700)
committerVarun Wadekar <vwadekar@nvidia.com>
Mon, 6 Mar 2017 16:45:39 +0000 (08:45 -0800)
This patch passes the boot parameters, provided by the previous
bootloader, to the Trusted OS via X0, X1 and X2.

Original change by: Wayne Lin <wlin@nvidia.com>

Change-Id: I2039612a8a8226158babfd505ce8c31c4212319c
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
services/spd/trusty/trusty.c

index cb28b2e579c2ec21cb914ce90bd832bc5c94c303..750c3b0c320e577a646f5f75a1aca06f13839a7a 100644 (file)
@@ -45,6 +45,9 @@
 /* macro to check if Hypervisor is enabled in the HCR_EL2 register */
 #define HYP_ENABLE_FLAG                0x286001
 
+/* length of Trusty's input parameters (in bytes) */
+#define TRUSTY_PARAMS_LEN_BYTES        (4096*2)
+
 struct trusty_stack {
        uint8_t space[PLATFORM_STACK_SIZE] __aligned(16);
 };
@@ -414,6 +417,14 @@ static int32_t trusty_setup(void)
                                            DAIF_IRQ_BIT |
                                            DAIF_ABT_BIT);
 
+       /*
+        * arg0 = TZDRAM aperture available for BL32
+        * arg1 = BL32 boot params
+        * arg2 = BL32 boot params length
+        */
+       ep_info->args.arg1 = ep_info->args.arg2;
+       ep_info->args.arg2 = TRUSTY_PARAMS_LEN_BYTES;
+
        bl31_register_bl32_init(trusty_init);
 
        psci_register_spd_pm_hook(&trusty_pm);