\r
\r
/**\r
- Set memory cacheability attributes for given range of memeory.\r
-\r
- @param This Protocol instance structure\r
- @param BaseAddress Specifies the start address of the\r
- memory range\r
- @param Length Specifies the length of the memory range\r
- @param Attributes The memory cacheability for the memory range\r
-\r
- @retval EFI_SUCCESS If the cacheability of that memory range is\r
- set successfully\r
- @retval EFI_UNSUPPORTED If the desired operation cannot be done\r
- @retval EFI_INVALID_PARAMETER The input parameter is not correct,\r
- such as Length = 0\r
+ Implementation of SetMemoryAttributes() service of CPU Architecture Protocol.\r
+\r
+ This function modifies the attributes for the memory region specified by BaseAddress and\r
+ Length from their current attributes to the attributes specified by Attributes.\r
+\r
+ @param This The EFI_CPU_ARCH_PROTOCOL instance.\r
+ @param BaseAddress The physical address that is the start address of a memory region.\r
+ @param Length The size in bytes of the memory region.\r
+ @param Attributes The bit mask of attributes to set for the memory region.\r
+\r
+ @retval EFI_SUCCESS The attributes were set for the memory region.\r
+ @retval EFI_ACCESS_DENIED The attributes for the memory resource range specified by\r
+ BaseAddress and Length cannot be modified.\r
+ @retval EFI_INVALID_PARAMETER Length is zero.\r
+ Attributes specified an illegal combination of attributes that\r
+ cannot be set together.\r
+ @retval EFI_OUT_OF_RESOURCES There are not enough system resources to modify the attributes of\r
+ the memory resource range.\r
+ @retval EFI_UNSUPPORTED The processor does not support one or more bytes of the memory\r
+ resource range specified by BaseAddress and Length.\r
+ The bit mask of attributes is not support for the memory resource\r
+ range specified by BaseAddress and Length.\r
\r
**/\r
EFI_STATUS\r
CacheType = CacheWriteBack;\r
break;\r
\r
- default:\r
+ case EFI_MEMORY_UCE:\r
+ case EFI_MEMORY_RP:\r
+ case EFI_MEMORY_XP:\r
+ case EFI_MEMORY_RUNTIME:\r
return EFI_UNSUPPORTED;\r
+\r
+ default:\r
+ return EFI_INVALID_PARAMETER;\r
}\r
//\r
// call MTRR libary function\r