mirror of https://github.com/acidanthera/audk.git
IntelSiliconPkg/Vtd: Support CSM usage.
Remove zero address check in IoMmuMap. The reason is that a CSM legacy driver may use legacy memory for DMA. As such, the legacyBios need allow below 1M to the legacy device. This patch also fixed some typo. Cc: Star Zeng <star.zeng@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jiewen Yao <jiewen.yao@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
parent
7d8e8474f9
commit
94fb621d37
|
@ -77,14 +77,14 @@ IoMmuMap (
|
|||
EFI_PHYSICAL_ADDRESS DmaMemoryTop;
|
||||
BOOLEAN NeedRemap;
|
||||
|
||||
DEBUG ((DEBUG_VERBOSE, "IoMmuMap: ==> 0x%08x - 0x%08x (%x)\n", HostAddress, NumberOfBytes, Operation));
|
||||
|
||||
if (HostAddress == NULL || NumberOfBytes == NULL || DeviceAddress == NULL ||
|
||||
if (NumberOfBytes == NULL || DeviceAddress == NULL ||
|
||||
Mapping == NULL) {
|
||||
DEBUG ((DEBUG_ERROR, "IoMmuMap: %r\n", EFI_INVALID_PARAMETER));
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
DEBUG ((DEBUG_VERBOSE, "IoMmuMap: ==> 0x%08x - 0x%08x (%x)\n", HostAddress, *NumberOfBytes, Operation));
|
||||
|
||||
//
|
||||
// Make sure that Operation is valid
|
||||
//
|
||||
|
@ -135,7 +135,7 @@ IoMmuMap (
|
|||
if (NeedRemap) {
|
||||
//
|
||||
// Common Buffer operations can not be remapped. If the common buffer
|
||||
// if above 4GB, then it is not possible to generate a mapping, so return
|
||||
// is above 4GB, then it is not possible to generate a mapping, so return
|
||||
// an error.
|
||||
//
|
||||
DEBUG ((DEBUG_ERROR, "IoMmuMap: %r\n", EFI_UNSUPPORTED));
|
||||
|
|
|
@ -891,7 +891,7 @@ SetAccessAttribute (
|
|||
|
||||
SecondLevelPagingEntry = NULL;
|
||||
|
||||
DEBUG ((DEBUG_INFO,"SetAccessAttribute (S%04x B%02x D%02x F%02x) (0x%016lx - 0x%08x, %x)\n", Segment, SourceId.Bits.Bus, SourceId.Bits.Device, SourceId.Bits.Function, BaseAddress, (UINTN)Length, IoMmuAccess));
|
||||
DEBUG ((DEBUG_VERBOSE,"SetAccessAttribute (S%04x B%02x D%02x F%02x) (0x%016lx - 0x%08x, %x)\n", Segment, SourceId.Bits.Bus, SourceId.Bits.Device, SourceId.Bits.Function, BaseAddress, (UINTN)Length, IoMmuAccess));
|
||||
|
||||
VtdIndex = FindVtdIndexByPciDevice (Segment, SourceId, &ExtContextEntry, &ContextEntry);
|
||||
if (VtdIndex == (UINTN)-1) {
|
||||
|
|
Loading…
Reference in New Issue