[coreboot-gerrit] Patch set updated for coreboot: 911c1b5 mainboard/storm: setup mmu in storm mainboard_init

Marc Jones (marc.jones@se-eng.com) gerrit at coreboot.org
Sat Jan 3 00:53:20 CET 2015


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/8010

-gerrit

commit 911c1b5526f4fbe43150f3fc1a7b4a77a97a6df7
Author: Deepa Dinamani <deepad at codeaurora.org>
Date:   Thu May 15 17:14:12 2014 -0700

    mainboard/storm: setup mmu in storm mainboard_init
    
    enable protection of zero page access, provide for uncached device memory range,
    and protect against access outside of DRAM except to device registers.
    
    BUG=chrome-os-partner:28467
    TEST=verified mmu.pagetable.list output:
    
    _______address___________|_physical________________|sec|_d_|_size____|_permissions____________________|_glb|_shr|_pageflags______________________|
         C:00000000--000FFFFF| | | | | | | | |
         C:00100000--3FFFFFFF| A:00:00100000--3FFFFFFF| ns| 00| 00100000| P:readwrite U:readwrite notexec| yes| no | strongly ordered |
         C:40000000--428FFFFF| A:00:40000000--428FFFFF| ns| 00| 00100000| P:readwrite U:readwrite exec | yes| no | write-back/no write alloc |
         C:42900000--43CFFFFF| A:00:42900000--43CFFFFF| ns| 00| 00100000| P:readwrite U:readwrite notexec| yes| no | strongly ordered |
         C:43D00000--5FFFFFFF| A:00:43D00000--5FFFFFFF| ns| 00| 00100000| P:readwrite U:readwrite exec | yes| no | write-back/no write alloc |
    
    Original-Change-Id: If9beb10938841aead5105d662f0aef741995d708
    Original-Signed-off-by: Deepa Dinamani <deepad at codeaurora.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/200341
    Original-Reviewed-by: Vadim Bendebury <vbendeb at chromium.org>
    Original-Commit-Queue: Vadim Bendebury <vbendeb at chromium.org>
    Original-Tested-by: Vadim Bendebury <vbendeb at chromium.org>
    (cherry picked from commit 09dd137453d8c6f1b60692b01226498e22f34fb2)
    Signed-off-by: Marc Jones <marc.jones at se-eng.com>
    
    Conflicts:
    	src/mainboard/google/storm/mainboard.c
    
    Change-Id: Idff7e3f0bc5903933e9f1b980f595666380696d1
---
 src/mainboard/google/storm/mainboard.c | 38 ++++++++++++++++++++++++++++++++--
 1 file changed, 36 insertions(+), 2 deletions(-)

diff --git a/src/mainboard/google/storm/mainboard.c b/src/mainboard/google/storm/mainboard.c
index 0b0182f..1e622f4 100644
--- a/src/mainboard/google/storm/mainboard.c
+++ b/src/mainboard/google/storm/mainboard.c
@@ -1,7 +1,7 @@
 /*
  * This file is part of the coreboot project.
  *
- * Copyright 2013 Google Inc.
+ * Copyright 2014 Google Inc.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,11 +17,45 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include <device/device.h>
+#include <arch/cache.h>
 #include <boot/coreboot_tables.h>
+#include <device/device.h>
+
+#define TO_MB(x)             ((x)>>20)
+
+/* convenient shorthand (in MB) */
+#define DRAM_START           TO_MB(CONFIG_SYS_SDRAM_BASE)
+#define DRAM_SIZE            (CONFIG_DRAM_SIZE_MB)
+#define DRAM_END             (DRAM_START + DRAM_SIZE)
+
+/* DMA memory for drivers */
+#define DMA_START            TO_MB(CONFIG_DRAM_DMA_START)
+#define DMA_SIZE             TO_MB(CONFIG_DRAM_DMA_SIZE)
+
+static void setup_mmu(void)
+{
+	dcache_mmu_disable();
+
+	/* Map Device memory. */
+	mmu_config_range(0, DRAM_START, DCACHE_OFF);
+	/* Disable Page 0 for trapping NULL pointer references. */
+	mmu_disable_range(0, 1);
+	/* Map DRAM memory */
+	mmu_config_range(DRAM_START, DRAM_SIZE, DCACHE_WRITEBACK);
+	/* Map DMA memory */
+	if (DMA_SIZE)
+		mmu_config_range(DMA_START, DMA_SIZE, DCACHE_OFF);
+
+	mmu_disable_range(DRAM_END, 4096 - DRAM_END);
+
+	mmu_init();
+
+	dcache_mmu_enable();
+}
 
 static void mainboard_init(device_t dev)
 {
+	 setup_mmu();
 }
 
 static void mainboard_enable(device_t dev)



More information about the coreboot-gerrit mailing list