[coreboot-gerrit] Patch set updated for coreboot: soc/intel/apollolake: use arch_segment_loaded() for CAR code coherency

Aaron Durbin (adurbin@chromium.org) gerrit at coreboot.org
Sat Apr 2 03:55:44 CEST 2016


Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14212

-gerrit

commit 7e2b68bed8043ed8e1c7568437e68b1155263662
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Thu Mar 31 13:26:46 2016 -0500

    soc/intel/apollolake: use arch_segment_loaded() for CAR code coherency
    
    Instead of using platform_prog_run() for flushing programs
    from L1D to L2 for code coherency purposes use arch_segment_loaded()
    instead as that it's primary purpose. The arch_segment_loaded()
    is called within the infrastructure at the appropriate places when
    loading programs. Therefore use that to perform the L1D flush
    instead of when something is just about to run.
    
    Change-Id: Ib0a6be6f676dcf2c946ef5702471af65d89133e9
    Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
 src/soc/intel/apollolake/car.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/soc/intel/apollolake/car.c b/src/soc/intel/apollolake/car.c
index 7646865..c49d7ef 100644
--- a/src/soc/intel/apollolake/car.c
+++ b/src/soc/intel/apollolake/car.c
@@ -26,8 +26,9 @@ static void flush_l1d_to_l2(void)
 	wrmsr(MSR_POWER_MISC, msr);
 }
 
-void platform_prog_run(struct prog *prog)
+void arch_segment_loaded(uintptr_t start, size_t size, int flags)
 {
-	/* Flush L1D cache to L2 */
-	flush_l1d_to_l2();
+	/* Flush L1D cache to L2 on final segment loaded */
+	if (flags & SEG_FINAL)
+		flush_l1d_to_l2();
 }



More information about the coreboot-gerrit mailing list