]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Drivers/CpuDxe/CpuDxe.c
ArmPkg/CpuDxe: set DmaBufferAlignment according to CWG
[mirror_edk2.git] / ArmPkg / Drivers / CpuDxe / CpuDxe.c
index 0c49acb510831eb5a4e9bc43f767e091c612ed12..7d328d096b1e498567d3b9e59775a39f645d933a 100644 (file)
@@ -17,8 +17,6 @@
 \r
 #include <Guid/IdleLoopEvent.h>\r
 \r
-BOOLEAN mInterruptState   = FALSE;\r
-\r
 \r
 /**\r
   This function flushes the range of addresses from Start to Start+Length\r
@@ -41,7 +39,7 @@ BOOLEAN mInterruptState   = FALSE;
 \r
   @retval EFI_SUCCESS           The address range from Start to Start+Length was flushed from\r
                                 the processor's data cache.\r
-  @retval EFI_UNSUPPORTEDT      The processor does not support the cache flush type specified\r
+  @retval EFI_UNSUPPORTED       The processor does not support the cache flush type specified\r
                                 by FlushType.\r
   @retval EFI_DEVICE_ERROR      The address range from Start to Start+Length could not be flushed\r
                                 from the processor's data cache.\r
@@ -92,7 +90,6 @@ CpuEnableInterrupt (
 {\r
   ArmEnableInterrupts ();\r
 \r
-  mInterruptState  = TRUE;\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -114,7 +111,6 @@ CpuDisableInterrupt (
 {\r
   ArmDisableInterrupts ();\r
 \r
-  mInterruptState = FALSE;\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -143,7 +139,7 @@ CpuGetInterruptState (
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
-  *State = mInterruptState;\r
+  *State = ArmGetInterruptState();\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -229,9 +225,18 @@ EFI_CPU_ARCH_PROTOCOL mCpu = {
   CpuGetTimerValue,\r
   CpuSetMemoryAttributes,\r
   0,          // NumberOfTimers\r
-  4,          // DmaBufferAlignment\r
+  2048,       // DmaBufferAlignment\r
 };\r
 \r
+STATIC\r
+VOID\r
+InitializeDma (\r
+  IN OUT  EFI_CPU_ARCH_PROTOCOL   *CpuArchProtocol\r
+  )\r
+{\r
+  CpuArchProtocol->DmaBufferAlignment = ArmCacheWritebackGranule ();\r
+}\r
+\r
 EFI_STATUS\r
 CpuDxeInitialize (\r
   IN EFI_HANDLE         ImageHandle,\r
@@ -243,6 +248,8 @@ CpuDxeInitialize (
 \r
   InitializeExceptions (&mCpu);\r
 \r
+  InitializeDma (&mCpu);\r
+\r
   Status = gBS->InstallMultipleProtocolInterfaces (\r
                 &mCpuHandle,\r
                 &gEfiCpuArchProtocolGuid,           &mCpu,\r