[coreboot-gerrit] Patch set updated for coreboot: d24197d arm64: Reorganize payload entry code and related Kconfigs

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Tue May 19 14:35:17 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10247

-gerrit

commit d24197dba61b4a31d5323eff160afda1b568c2a2
Author: Julius Werner <jwerner at chromium.org>
Date:   Thu May 7 16:59:31 2015 -0700

    arm64: Reorganize payload entry code and related Kconfigs
    
    This patch slightly reorganizes arm64/boot.c with the aim of being more
    readable:
    Make more obvious that there's no code execution here after payload_entry.
    
    [pg: taken from patch linked below]
    
    Change-Id: Ia341e5d290b10ad5ba3edb349b8a7f619022d99f
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 5067e47bc03f04ad2dba044f022716e0fc62bb9e
    Original-Change-Id: I1b2038acc0d054716a3c580ce97ea8e9a45abfa2
    Original-Signed-off-by: Julius Werner <jwerner at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/270783
    Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
---
 src/arch/arm64/boot.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/arch/arm64/boot.c b/src/arch/arm64/boot.c
index 702953c..1d9987a 100644
--- a/src/arch/arm64/boot.c
+++ b/src/arch/arm64/boot.c
@@ -50,19 +50,16 @@ static void run_payload(struct prog *prog)
 		printk(BIOS_SPEW, "entry    = %p\n", doit);
 
 		/* If current EL is not EL3, jump to payload at same EL. */
-		if (current_el != EL3) {
-			/* Point of no-return */
+		if (current_el != EL3)
 			doit(arg);
-		}
-
-		/* If current EL is EL3, we transition to payload in EL2. */
-		struct exc_state exc_state;
-
-		memset(&exc_state, 0, sizeof(exc_state));
+		else {
+			/* If current EL is EL3, we transition to payload in EL2. */
+			struct exc_state exc_state;
+			memset(&exc_state, 0, sizeof(exc_state));
+			exc_state.elx.spsr = get_eret_el(EL2, SPSR_USE_L);
 
-		exc_state.elx.spsr = get_eret_el(EL2, SPSR_USE_L);
-
-		transition_with_entry(doit, arg, &exc_state);
+			transition_with_entry(doit, arg, &exc_state);
+		}
 	}
 }
 



More information about the coreboot-gerrit mailing list