[coreboot-gerrit] Patch set updated for coreboot: 7a38abc libpayload arm64: Allow board to define upper address limit on DMA

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Sat Mar 21 13:54:38 CET 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8800

-gerrit

commit 7a38abcea89729144737d1a349968c4fb3a3b81d
Author: Furquan Shaikh <furquan at google.com>
Date:   Sat Jan 31 23:24:32 2015 -0800

    libpayload arm64: Allow board to define upper address limit on DMA
    
    Instead of forcing boards to have DMA region below 4GiB, provide
    Kconfig option DMA_LIM_EXCL that a board can use to set the upper
    limit in MiB units on the address range reserved by DMA. By default,
    this value is 0x1000 i.e. 4GiB limit on the DMA upper address.
    
    BUG=None
    BRANCH=None
    TEST=Compiles successfully for rush. Default value is seen as 0x1000.
    
    Change-Id: Ie35d3844a0989486ae022f8922fdd4c9d7d57fb4
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 6716cf312a103bc0440a558fc43c8c77869816e3
    Original-Change-Id: I3ecbb4ec90995ab1568cb0924d5ce9467492697d
    Original-Signed-off-by: Furquan Shaikh <furquan at google.com>
    Original-Reviewed-on: https://chromium-review.googlesource.com/245250
    Original-Tested-by: Furquan Shaikh <furquan at chromium.org>
    Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
    Original-Commit-Queue: Furquan Shaikh <furquan at chromium.org>
---
 payloads/libpayload/arch/arm64/Config.in         | 4 ++++
 payloads/libpayload/arch/arm64/mmu.c             | 2 +-
 payloads/libpayload/configs/config.arm64-generic | 3 ++-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/payloads/libpayload/arch/arm64/Config.in b/payloads/libpayload/arch/arm64/Config.in
index 0f2596c..d2f8e56 100644
--- a/payloads/libpayload/arch/arm64/Config.in
+++ b/payloads/libpayload/arch/arm64/Config.in
@@ -33,4 +33,8 @@ config ARCH_SPECIFIC_OPTIONS # dummy
 	def_bool y
 	select LITTLE_ENDIAN
 
+config DMA_LIM_EXCL
+	hex "DMA address limit(exclusive) in MiB units"
+	default 0x1000
+
 endif
diff --git a/payloads/libpayload/arch/arm64/mmu.c b/payloads/libpayload/arch/arm64/mmu.c
index da2127d..adbee0f 100644
--- a/payloads/libpayload/arch/arm64/mmu.c
+++ b/payloads/libpayload/arch/arm64/mmu.c
@@ -609,7 +609,7 @@ static struct mmu_memrange *mmu_add_dma_range(struct mmu_ranges *mmu_ranges)
 	/* DMA_DEFAULT_SIZE is multiple of GRANULE_SIZE */
 	assert((DMA_DEFAULT_SIZE % GRANULE_SIZE) == 0);
 	prop.size = DMA_DEFAULT_SIZE;
-	prop.lim_excl = MIN_64_BIT_ADDR;
+	prop.lim_excl = (uint64_t)CONFIG_LP_DMA_LIM_EXCL * MiB;
 	prop.align = GRANULE_SIZE;
 	prop.is_valid_range = NULL;
 	prop.src_type = TYPE_NORMAL_MEM;
diff --git a/payloads/libpayload/configs/config.arm64-generic b/payloads/libpayload/configs/config.arm64-generic
index aa6e2b4..d44237e 100644
--- a/payloads/libpayload/configs/config.arm64-generic
+++ b/payloads/libpayload/configs/config.arm64-generic
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # libpayload version: 0.2.0
-# Wed Mar 18 16:11:01 2015
+# Sat Mar 21 13:53:09 2015
 #
 
 #
@@ -65,3 +65,4 @@ CONFIG_LP_USB_GEN_HUB=y
 CONFIG_LP_LITTLE_ENDIAN=y
 # CONFIG_LP_IO_ADDRESS_SPACE is not set
 CONFIG_LP_ARCH_SPECIFIC_OPTIONS=y
+CONFIG_LP_DMA_LIM_EXCL=0x1000



More information about the coreboot-gerrit mailing list