diff options
author | Star Zeng <star.zeng@intel.com> | 2018-01-17 19:33:30 +0800 |
---|---|---|
committer | Star Zeng <star.zeng@intel.com> | 2018-05-10 14:23:47 +0800 |
commit | 0f6641efed5fc7ed4e9ca86be8acf81cc777a071 (patch) | |
tree | ec53723c8d5fcee07a2c3b05a017e66036046d38 | |
parent | 8bb7fa235f13f3e74b2d967dde6a621724e8c076 (diff) | |
download | edk2-0f6641efed5fc7ed4e9ca86be8acf81cc777a071.zip edk2-0f6641efed5fc7ed4e9ca86be8acf81cc777a071.tar.gz edk2-0f6641efed5fc7ed4e9ca86be8acf81cc777a071.tar.bz2 |
IntelSiliconPkg IntelVTdDxe: Fix DMA does not work issue
Fix DMA does not work issue when system memory is not
greater than 4G.
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
(cherry picked from commit 1d4c17a6ef1a06023cb533d108556c419bdb1fed)
-rw-r--r-- | IntelSiliconPkg/Feature/VTd/IntelVTdDxe/TranslationTable.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/TranslationTable.c b/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/TranslationTable.c index cecb5d2..7bdc4a5 100644 --- a/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/TranslationTable.c +++ b/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/TranslationTable.c @@ -286,9 +286,13 @@ CreateSecondLevelPagingEntry ( if (SecondLevelPagingEntry == NULL) {
return NULL;
}
- SecondLevelPagingEntry = CreateSecondLevelPagingEntryTable (VtdIndex, SecondLevelPagingEntry, SIZE_4GB, mAbove4GMemoryLimit, IoMmuAccess);
- if (SecondLevelPagingEntry == NULL) {
- return NULL;
+
+ if (mAbove4GMemoryLimit != 0) {
+ ASSERT (mAbove4GMemoryLimit > BASE_4GB);
+ SecondLevelPagingEntry = CreateSecondLevelPagingEntryTable (VtdIndex, SecondLevelPagingEntry, SIZE_4GB, mAbove4GMemoryLimit, IoMmuAccess);
+ if (SecondLevelPagingEntry == NULL) {
+ return NULL;
+ }
}
return SecondLevelPagingEntry;
|