mirror of https://github.com/acidanthera/audk.git
Per PI 1.2 errata B spec, for SetMemoryAttributes() service of CPU Architecture Protocol, EFI_INVALID_PARAMETER should be returned for cases:
If Attributes specifies a combination of memory attributes that cannot be set together, then EFI_INVALID_PARAMETER is returned. For example, if both EFI_MEMORY_UC and EFI_MEMORY_WT are set. Signed-off-by: rsun3 Reviewed-by: jyao1 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11694 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
33d41385e3
commit
4ec21e8b50
|
@ -3,7 +3,7 @@
|
|||
|
||||
This code abstracts the DXE core from processor implementation details.
|
||||
|
||||
Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -244,6 +244,8 @@ EFI_STATUS
|
|||
@retval EFI_ACCESS_DENIED The attributes for the memory resource range specified by
|
||||
BaseAddress and Length cannot be modified.
|
||||
@retval EFI_INVALID_PARAMETER Length is zero.
|
||||
Attributes specified an illegal combination of attributes that
|
||||
cannot be set together.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the attributes of
|
||||
the memory resource range.
|
||||
@retval EFI_UNSUPPORTED The processor does not support one or more bytes of the memory
|
||||
|
|
|
@ -581,19 +581,28 @@ CpuGetTimerValue (
|
|||
|
||||
|
||||
/**
|
||||
Set memory cacheability attributes for given range of memeory.
|
||||
Implementation of SetMemoryAttributes() service of CPU Architecture Protocol.
|
||||
|
||||
@param This Protocol instance structure
|
||||
@param BaseAddress Specifies the start address of the
|
||||
memory range
|
||||
@param Length Specifies the length of the memory range
|
||||
@param Attributes The memory cacheability for the memory range
|
||||
This function modifies the attributes for the memory region specified by BaseAddress and
|
||||
Length from their current attributes to the attributes specified by Attributes.
|
||||
|
||||
@retval EFI_SUCCESS If the cacheability of that memory range is
|
||||
set successfully
|
||||
@retval EFI_UNSUPPORTED If the desired operation cannot be done
|
||||
@retval EFI_INVALID_PARAMETER The input parameter is not correct,
|
||||
such as Length = 0
|
||||
@param This The EFI_CPU_ARCH_PROTOCOL instance.
|
||||
@param BaseAddress The physical address that is the start address of a memory region.
|
||||
@param Length The size in bytes of the memory region.
|
||||
@param Attributes The bit mask of attributes to set for the memory region.
|
||||
|
||||
@retval EFI_SUCCESS The attributes were set for the memory region.
|
||||
@retval EFI_ACCESS_DENIED The attributes for the memory resource range specified by
|
||||
BaseAddress and Length cannot be modified.
|
||||
@retval EFI_INVALID_PARAMETER Length is zero.
|
||||
Attributes specified an illegal combination of attributes that
|
||||
cannot be set together.
|
||||
@retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the attributes of
|
||||
the memory resource range.
|
||||
@retval EFI_UNSUPPORTED The processor does not support one or more bytes of the memory
|
||||
resource range specified by BaseAddress and Length.
|
||||
The bit mask of attributes is not support for the memory resource
|
||||
range specified by BaseAddress and Length.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
|
@ -644,8 +653,14 @@ CpuSetMemoryAttributes (
|
|||
CacheType = CacheWriteBack;
|
||||
break;
|
||||
|
||||
default:
|
||||
case EFI_MEMORY_UCE:
|
||||
case EFI_MEMORY_RP:
|
||||
case EFI_MEMORY_XP:
|
||||
case EFI_MEMORY_RUNTIME:
|
||||
return EFI_UNSUPPORTED;
|
||||
|
||||
default:
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
//
|
||||
// call MTRR libary function
|
||||
|
|
Loading…
Reference in New Issue