remove check on non-secure entrypoint parameter
authorAchin Gupta <achin.gupta@arm.com>
Tue, 5 Nov 2013 11:10:38 +0000 (11:10 +0000)
committerDan Handley <dan.handley@arm.com>
Thu, 5 Dec 2013 12:28:50 +0000 (12:28 +0000)
In fvp_affinst_on/suspend, the non-secure entrypoint is always
expected to lie in the DRAM. This check will not be valid if
non-secure code executes directly out of flash e.g. a baremetal
test. This patch removes this check.

Change-Id: I0436e1138fc394aae8ff1ea59ebe38b46a440b61

docs/change-log.md
plat/fvp/fvp_pm.c

index 8be7a514bc8612e35f39ad34125f81c90b1fee02..5a9bdb3a2140c8878c0c43a853427e515e9f1c17 100644 (file)
@@ -56,6 +56,9 @@ Detailed changes since last release
     is powered on, if a non zero context id parameter was passed in the PSCI
     CPU_ON and CPU_SUSPEND api calls has been corrected.
 
+*   A restriction in the FVP code which did not allow the non-secure entrypoint
+    to lie outside the DRAM has been removed.
+
 ARM Trusted Firmware - version 0.2
 ==================================
 
index 658a28594110ec9c30c2a3ef7086004b01b6f887..d3abe1d87c024dd50fcb5396515f45e546c0798b 100644 (file)
@@ -58,11 +58,6 @@ int fvp_affinst_on(unsigned long mpidr,
        mailbox *fvp_mboxes;
        unsigned int psysr;
 
-       if (ns_entrypoint < DRAM_BASE) {
-               rc = PSCI_E_INVALID_PARAMS;
-               goto exit;
-       }
-
        /*
         * It's possible to turn on only affinity level 0 i.e. a cpu
         * on the FVP. Ignore any other affinity level.
@@ -193,12 +188,6 @@ int fvp_affinst_suspend(unsigned long mpidr,
        unsigned long cpu_setup, cci_setup, linear_id;
        mailbox *fvp_mboxes;
 
-       /* Cannot allow NS world to execute trusted firmware code */
-       if (ns_entrypoint < DRAM_BASE) {
-               rc = PSCI_E_INVALID_PARAMS;
-               goto exit;
-       }
-
        switch (afflvl) {
        case MPIDR_AFFLVL1:
                if (state == PSCI_STATE_OFF) {
@@ -260,7 +249,6 @@ int fvp_affinst_suspend(unsigned long mpidr,
                assert(0);
        }
 
-exit:
        return rc;
 }