summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/libpayload/arch/arm64/Config.in4
-rw-r--r--payloads/libpayload/arch/arm64/mmu.c2
-rw-r--r--payloads/libpayload/configs/config.arm64-generic3
3 files changed, 7 insertions, 2 deletions
diff --git a/payloads/libpayload/arch/arm64/Config.in b/payloads/libpayload/arch/arm64/Config.in
index 0f2596c452..d2f8e5675a 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 da2127d0da..adbee0f4b8 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 aa6e2b4014..d44237ef5a 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