[coreboot-gerrit] New patch to review for coreboot: 7b38720 cygnus: enable mmu

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Apr 16 15:22:21 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/9768

-gerrit

commit 7b38720c00f1ae134a66eda1fd3a8cb3e8a9a707
Author: Daisuke Nojiri <dnojiri at chromium.org>
Date:   Tue Feb 17 13:43:35 2015 -0800

    cygnus: enable mmu
    
    this is not only for speed but also preventing the cpu from crashing.
    the cpu is not happy when cache is cleaned without mmu turned on.
    
    BUG=chrome-os-partner:36691
    BRANCH=broadcom-firmware
    TEST=boot purin to romstage.
    
    Change-Id: I2445dcc2729798c4fc56fa191cbc8471ef708d08
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 9e35c925b75213e1d35bf191f22c39aaf1726eeb
    Original-Signed-off-by: Daisuke Nojiri <dnojiri at chromium.org>
    Original-Change-Id: Icaf8c506df258edb99413949e6e3089a2b1a91af
    Original-Reviewed-on: https://chrome-internal-review.googlesource.com/199388
    Original-Reviewed-by: Julius Werner <jwerner at chromium.org>
    Original-Commit-Queue: Daisuke Nojiri <dnojiri at google.com>
    Original-Tested-by: Daisuke Nojiri <dnojiri at google.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/251306
---
 src/soc/broadcom/cygnus/bootblock.c              | 13 ++++++++++---
 src/soc/broadcom/cygnus/include/soc/memlayout.ld |  1 +
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/soc/broadcom/cygnus/bootblock.c b/src/soc/broadcom/cygnus/bootblock.c
index 37edf7f..3c6d242 100644
--- a/src/soc/broadcom/cygnus/bootblock.c
+++ b/src/soc/broadcom/cygnus/bootblock.c
@@ -17,13 +17,20 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <arch/cache.h>
 #include <bootblock_common.h>
-#include <console/console.h>
+#include <stddef.h>
+#include <symbols.h>
 
 void bootblock_soc_init(void)
 {
 	/*
-	 * typically, this is the place where mmu is initialized to enable
-	 * cache. it helps speed up vboot verification.
+	 * not only for speed but for preventing the cpu from crashing.
+	 * the cpu is not happy when cache is cleaned without mmu turned on.
 	 */
+	mmu_init();
+	mmu_config_range(0, 4096, DCACHE_OFF);
+	mmu_config_range_kb((uintptr_t)_sram/KiB, _sram_size/KiB,
+			    DCACHE_WRITETHROUGH);
+	dcache_mmu_enable();
 }
diff --git a/src/soc/broadcom/cygnus/include/soc/memlayout.ld b/src/soc/broadcom/cygnus/include/soc/memlayout.ld
index c48c1bc..cfa50a5 100644
--- a/src/soc/broadcom/cygnus/include/soc/memlayout.ld
+++ b/src/soc/broadcom/cygnus/include/soc/memlayout.ld
@@ -31,6 +31,7 @@ SECTIONS
 	SRAM_START(0x02000000)
 	REGION(reserved_for_system_status, 0x02000000, 4K, 4)
 	TTB(0x02004000, 16K)		/* must be aligned to 16K */
+	TTB_SUBTABLES(0x02008000, 1K)
 	REGION(reserved_for_maskrom, 0x02009400, 4K, 4)
 	BOOTBLOCK(0x0200A440, 18K)
 	PRERAM_CBMEM_CONSOLE(0x0200F000, 4K)



More information about the coreboot-gerrit mailing list