summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/broadcom/cygnus/bootblock.c13
-rw-r--r--src/soc/broadcom/cygnus/include/soc/memlayout.ld1
2 files changed, 11 insertions, 3 deletions
diff --git a/src/soc/broadcom/cygnus/bootblock.c b/src/soc/broadcom/cygnus/bootblock.c
index 37edf7f771..3c6d242d76 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 c48c1bc221..cfa50a544f 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)