[coreboot-gerrit] New patch to review for coreboot: 68baa3f libpayload: Correct shareability mmu configuration on ARM64

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Tue Apr 21 15:18:50 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/9902

-gerrit

commit 68baa3fd8f79a0ffe452a38f1d8786da992e02f3
Author: Furquan Shaikh <furquan at google.com>
Date:   Tue Mar 31 22:15:07 2015 -0700

    libpayload: Correct shareability mmu configuration on ARM64
    
    BUG=chrome-os-partner:38222
    BRANCH=None
    TEST=Compiles successfully and boots kernel
    
    Change-Id: I6e1e841d84d1a73e5c726143aeba76af933e81a1
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 59861a2700407b9e6a6209fbc45543c127b50b4b
    Original-Change-Id: I256d07a41bec83037f2b61a9350f903119d8c101
    Original-Signed-off-by: Furquan Shaikh <furquan at google.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/263325
    Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
    Original-Commit-Queue: Furquan Shaikh <furquan at chromium.org>
    Original-Trybot-Ready: Furquan Shaikh <furquan at chromium.org>
    Original-Tested-by: Furquan Shaikh <furquan at chromium.org>
---
 payloads/libpayload/arch/arm64/mmu.c         | 1 +
 payloads/libpayload/include/arm64/arch/mmu.h | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/payloads/libpayload/arch/arm64/mmu.c b/payloads/libpayload/arch/arm64/mmu.c
index adbee0f..204412e 100644
--- a/payloads/libpayload/arch/arm64/mmu.c
+++ b/payloads/libpayload/arch/arm64/mmu.c
@@ -93,6 +93,7 @@ static uint64_t get_block_attr(unsigned long tag)
 	switch (tag) {
 
 	case TYPE_NORMAL_MEM:
+		attr |= BLOCK_SH_INNER_SHAREABLE;
 		attr |= (BLOCK_INDEX_MEM_NORMAL << BLOCK_INDEX_SHIFT);
 		break;
 	case TYPE_DEV_MEM:
diff --git a/payloads/libpayload/include/arm64/arch/mmu.h b/payloads/libpayload/include/arm64/arch/mmu.h
index 52b538e..e241d75 100644
--- a/payloads/libpayload/include/arm64/arch/mmu.h
+++ b/payloads/libpayload/include/arm64/arch/mmu.h
@@ -80,6 +80,12 @@ extern char _start[], _end[];
 
 #define BLOCK_ACCESS               (1 << 10)
 
+#define BLOCK_SH_SHIFT                 (8)
+#define BLOCK_SH_NON_SHAREABLE         (0 << BLOCK_SH_SHIFT)
+#define BLOCK_SH_UNPREDICTABLE         (1 << BLOCK_SH_SHIFT)
+#define BLOCK_SH_OUTER_SHAREABLE       (2 << BLOCK_SH_SHIFT)
+#define BLOCK_SH_INNER_SHAREABLE       (3 << BLOCK_SH_SHIFT)
+
 /* XLAT Table Init Attributes */
 
 #define VA_START                   0x0



More information about the coreboot-gerrit mailing list