[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