[coreboot-gerrit] Patch set updated for coreboot: 589520c tegra124: fix the dangerous VPR write order

Marc Jones (marc.jones@se-eng.com) gerrit at coreboot.org
Thu Nov 13 22:12:24 CET 2014


Marc Jones (marc.jones at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7459

-gerrit

commit 589520ceaa70c2e49e128bfb6b07673645349012
Author: Joseph Lo <josephl at nvidia.com>
Date:   Fri Mar 28 19:13:51 2014 +0800

    tegra124: fix the dangerous VPR write order
    
    Currently we put the VPR write code just right before the AVP is going
    to freeze. We have no idea does the write operation successful or not
    before halting the AVP. And the power_on_main_cpu should be the last step
    of that. So we make a fix to change the order.
    
    BUG=none
    BRANCH=none
    TEST=LP0 suspend stress test and check the VPR is correct;
         LP0 suspend stress test with video playback
    
    Original-Change-Id: Ia62dde2a020910de39796d1cf62c1bf185cdb372
    Original-Signed-off-by: Joseph Lo <josephl at nvidia.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/192029
    Original-Reviewed-by: Tom Warren <twarren at nvidia.com>
    Original-Reviewed-by: Andrew Bresticker <abrestic at chromium.org>
    Original-Commit-Queue: Tom Warren <twarren at nvidia.com>
    Original-Tested-by: Tom Warren <twarren at nvidia.com>
    (cherry picked from commit 51473811fa477cca9ad9cbafdaad4fd4a2309234)
    Signed-off-by: Marc Jones <marc.jones at se-eng.com>
    
    Change-Id: Ia28329e38fcf12994594b73c805d061804aa01c4
---
 src/soc/nvidia/tegra124/lp0/tegra_lp0_resume.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/soc/nvidia/tegra124/lp0/tegra_lp0_resume.c b/src/soc/nvidia/tegra124/lp0/tegra_lp0_resume.c
index b993e31..0b519d6 100644
--- a/src/soc/nvidia/tegra124/lp0/tegra_lp0_resume.c
+++ b/src/soc/nvidia/tegra124/lp0/tegra_lp0_resume.c
@@ -583,13 +583,13 @@ void lp0_resume(void)
 
 	config_tsc();
 
-	power_on_main_cpu();
-
 	// Disable VPR.
 	write32(0, mc_video_protect_size_mb_ptr);
 	write32(VIDEO_PROTECT_WRITE_ACCESS_DISABLE,
 		mc_video_protect_reg_ctrl_ptr);
 
+	power_on_main_cpu();
+
 	// Halt the AVP.
 	while (1)
 		write32(FLOW_MODE_STOP | EVENT_JTAG,



More information about the coreboot-gerrit mailing list