[coreboot-gerrit] Patch set updated for coreboot: 91f0885 ipq806x: clear the RPM initialization Acknowledge bit

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Mon Jun 1 10:56:06 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/10310

-gerrit

commit 91f088552d3dcf8d22c1b38f0585944e0c18450f
Author: Sourabh Banerjee <sbanerje at codeaurora.org>
Date:   Fri Apr 24 22:54:18 2015 +0530

    ipq806x: clear the RPM initialization Acknowledge bit
    
    The RPM initialization Acknowledge is cleared by writing 1
    into bit-10 of the RPM_INT_ACK register.
    
    The existing code got it wrong and is writing zero to that bit.
    
    BRANCH=storm
    BUG=chrome-os-partner:39231
    TEST=with this patch and an RPM firmware update, an SP4 device
         survived more than 1000 reboots in a row.
    
    Change-Id: Ibba296ed0571ad9403a0c51c7f82f07f185b4e83
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 13b4a0f093ba652ad6bccdfc4b3686c0741c6fe7
    Original-Change-Id: I39e6ea50e0f66b4af68bdb868dd4437c34bb4524
    Original-Signed-off-by: Viswanath Kraleti <vkraleti at codeaurora.org>
    Original-Signed-off-by: Vadim Bendebury <vbendeb at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/266969
    Original-Reviewed-by: Manoj Juneja <mjuneja at qti.qualcomm.com>
---
 src/soc/qualcomm/ipq806x/blobs_init.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/soc/qualcomm/ipq806x/blobs_init.c b/src/soc/qualcomm/ipq806x/blobs_init.c
index dc52200..ae7e4d4 100644
--- a/src/soc/qualcomm/ipq806x/blobs_init.c
+++ b/src/soc/qualcomm/ipq806x/blobs_init.c
@@ -131,7 +131,11 @@ void start_rpm(void)
 	printk(BIOS_INFO, "Starting RPM\n");
 
 	/* Clear 'ready' indication. */
-	write32(RPM_INT_ACK, read32(RPM_INT_ACK) & ~ready_mask);
+	/*
+	 * RPM_INT_ACK is clear-on-write type register,
+	 * read-modify-write is not recommended.
+	 */
+	write32(RPM_INT_ACK, ready_mask);
 
 	/* Set RPM entry address */
 	write32(RPM_SIGNAL_ENTRY, load_addr);



More information about the coreboot-gerrit mailing list