diff --git a/ArmPkg/Library/ArmExceptionLib/AArch64/ExceptionSupport.S b/ArmPkg/Library/ArmExceptionLib/AArch64/ExceptionSupport.S
index 96a0cb1d15..653c50109e 100644
--- a/ArmPkg/Library/ArmExceptionLib/AArch64/ExceptionSupport.S
+++ b/ArmPkg/Library/ArmExceptionLib/AArch64/ExceptionSupport.S
@@ -320,10 +320,10 @@ NoTTBR0Switch:
   // We do not try to recover.
   bl       ASM_PFX(CommonCExceptionHandler) // Call exception handler
 
-  ldr      x2, [x28, #(FP_CONTEXT_SIZE + 0x8)] // Saved Processor Status Register
-  and      x2, x2, #0xF
-  cmp      x2, 0           // Check whether EL0 process was interrupted
-  b.ne     NoTTBR0Switch2
+  ldr      x2, [x28, #(FP_CONTEXT_SIZE + 0x8)] // Saved Processor Status Register
+  and      x2, x2, #0xF
+  cmp      x2, 0           // Check whether EL0 process was interrupted
+  b.ne     NoTTBR0Switch2
   adrp     x1, ASM_PFX(CorePageTable)
   EL1_OR_EL2(x3)
 1:ldr      x4, [x1, #0x8]  // UserPageTable
@@ -431,6 +431,6 @@ ASM_PFX(CorePageTable):
 UserPageTable:
 .ds.d 1
 
-.balign 4096
-Padding:
-.ds.b 1
+.balign 4096
+Padding:
+.ds.b 1
diff --git a/ArmPkg/Library/ArmExceptionLib/Arm/ExceptionSupport.S b/ArmPkg/Library/ArmExceptionLib/Arm/ExceptionSupport.S
index 257b0b05a9..c36679308a 100644
--- a/ArmPkg/Library/ArmExceptionLib/Arm/ExceptionSupport.S
+++ b/ArmPkg/Library/ArmExceptionLib/Arm/ExceptionSupport.S
@@ -255,23 +255,23 @@ NoAdjustNeeded:
   vpush     {d0-d15}                @ save vstm registers in case they are used in optimizations
 #endif
 
-  ldr       R5, [SP, #0x40]         @ Saved Processor Status Register
-  and       R5, R5, #0xF
-  cmp       R5, 0                   @ Check whether EL0 process was interrupted
-  bne       NoTTBR0Switch
-  mrc       p15,0,R5,c2,c0,0        @ R5 == TTBR0
-  ADRL      (R6, UserPageTable)
-  str       R5, [R6]
-  and       R5, R5, #0x7F           @ Preserve TTBR0 attributes
-  LDRL      (R6, ASM_PFX(CorePageTable))
-  orr       R6, R6, R5              @ Assign TTBR0 attributes
+  ldr       R5, [SP, #0x40]         @ Saved Processor Status Register
+  and       R5, R5, #0xF
+  cmp       R5, 0                   @ Check whether EL0 process was interrupted
+  bne       NoTTBR0Switch
+  mrc       p15,0,R5,c2,c0,0        @ R5 == TTBR0
+  ADRL      (R6, UserPageTable)
+  str       R5, [R6]
+  and       R5, R5, #0x7F           @ Preserve TTBR0 attributes
+  LDRL      (R6, ASM_PFX(CorePageTable))
+  orr       R6, R6, R5              @ Assign TTBR0 attributes
   mcr       p15,0,R6,c2,c0,0        @ TTBR0 == R6
   mcr       p15,0,r0,c8,c7,0        @ TLBIALL, TLB Invalidate All.
   mcr       p15,0,r0,c7,c5,6        @ BPIALL, Branch Predictor Invalidate All.
   dsb
   isb
 
-NoTTBR0Switch:
+NoTTBR0Switch:
 
   mov       R4, SP                  @ Save current SP
   tst       R4, #4
@@ -327,18 +327,18 @@ NoTTBR0Switch2:
   ldmfd     SP!,{LR}                @ restore the link register for this context
   rfefd     SP!                     @ return from exception via srsfd stack slot
 
-ASM_FUNC_ALIGN(ExceptionHandlerFinal, 4096)
-
-.data
-
-.global ASM_PFX(CorePageTable)
-.balign 4096
-ASM_PFX(CorePageTable):
-.ds.l 1
-
-UserPageTable:
-.ds.l 1
-
-.balign 4096
-Padding:
-.ds.b 1
+ASM_FUNC_ALIGN(ExceptionHandlerFinal, 4096)
+
+.data
+
+.global ASM_PFX(CorePageTable)
+.balign 4096
+ASM_PFX(CorePageTable):
+.ds.l 1
+
+UserPageTable:
+.ds.l 1
+
+.balign 4096
+Padding:
+.ds.b 1
diff --git a/MdeModulePkg/Core/Dxe/SysCall/ARM/InitializeARM.c b/MdeModulePkg/Core/Dxe/SysCall/ARM/InitializeARM.c
index 4d81587422..becb1812c2 100644
--- a/MdeModulePkg/Core/Dxe/SysCall/ARM/InitializeARM.c
+++ b/MdeModulePkg/Core/Dxe/SysCall/ARM/InitializeARM.c
@@ -91,32 +91,32 @@ SysCallBootService (
   return Status;
 }
 
-VOID
-EFIAPI
-MakeUserPageTableTemplate (
-  OUT UINTN  *UserPageTableTemplate,
-  OUT UINTN  *UserPageTableTemplateSize
-  )
-{
-  ARM_MEMORY_REGION_DESCRIPTOR  Descriptor;
-  VOID                          *MemorySizeHob;
-
-  MemorySizeHob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid);
-  ASSERT (MemorySizeHob != NULL);
-  if (MemorySizeHob == NULL) {
-    return;
-  }
-
-  Descriptor.PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
-  Descriptor.VirtualBase  = Descriptor.PhysicalBase;
-  Descriptor.Length       = *(UINT64 *)GET_GUID_HOB_DATA (MemorySizeHob);
-  Descriptor.Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
-
-  ArmMakeUserPageTableTemplate (
-    &Descriptor,
-    UserPageTableTemplate,
-    UserPageTableTemplateSize
-    );
+VOID
+EFIAPI
+MakeUserPageTableTemplate (
+  OUT UINTN  *UserPageTableTemplate,
+  OUT UINTN  *UserPageTableTemplateSize
+  )
+{
+  ARM_MEMORY_REGION_DESCRIPTOR  Descriptor;
+  VOID                          *MemorySizeHob;
+
+  MemorySizeHob = GetFirstGuidHob (&gArmVirtSystemMemorySizeGuid);
+  ASSERT (MemorySizeHob != NULL);
+  if (MemorySizeHob == NULL) {
+    return;
+  }
+
+  Descriptor.PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
+  Descriptor.VirtualBase  = Descriptor.PhysicalBase;
+  Descriptor.Length       = *(UINT64 *)GET_GUID_HOB_DATA (MemorySizeHob);
+  Descriptor.Attributes   = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK;
+
+  ArmMakeUserPageTableTemplate (
+    &Descriptor,
+    UserPageTableTemplate,
+    UserPageTableTemplateSize
+    );
 }
 
 VOID
diff --git a/MdeModulePkg/Core/Dxe/SysCall/SupportedProtocols.c b/MdeModulePkg/Core/Dxe/SysCall/SupportedProtocols.c
index de06170e07..b263030aad 100644
--- a/MdeModulePkg/Core/Dxe/SysCall/SupportedProtocols.c
+++ b/MdeModulePkg/Core/Dxe/SysCall/SupportedProtocols.c
@@ -809,315 +809,315 @@ CoreOpenVolume (
   return Status;
 }
 
-INTN
-EFIAPI
-CoreUnicodeCollationStriColl (
-  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
-  IN CHAR16                          *Str1,
-  IN CHAR16                          *Str2
-  )
-{
-  EFI_STATUS            Status;
-  EFI_PHYSICAL_ADDRESS  UserMem;
-  USER_SPACE_DRIVER     *UserDriver;
-  VOID                  *EntryPoint;
-  UINTN                 Size1;
-  UINTN                 Size2;
-
-  UserDriver = FindUserSpaceDriver (This);
-  ASSERT (UserDriver != NULL);
-
-  This           = UserDriver->UserSpaceDriver;
-  gUserPageTable = UserDriver->UserPageTable;
-
-  Size1 = StrSize (Str1);
-  Size2 = StrSize (Str2);
-
-  Status = CoreAllocatePages (
-             AllocateAnyPages,
-             EfiRing3MemoryType,
-             EFI_SIZE_TO_PAGES (Size1 + Size2),
-             &UserMem
-             );
-  if (EFI_ERROR (Status)) {
-    return 0;
-  }
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Str1, Size1);
-  CopyMem ((VOID *)((UINTN)UserMem + Size1), (VOID *)Str2, Size2);
-  EntryPoint = (VOID *)This->StriColl;
-  ForbidSupervisorAccessToUserMemory ();
-
-  Status = GoToRing3 (
-             3,
-             EntryPoint,
-             This,
-             (UINTN)UserMem,
-             (UINTN)UserMem + Size1
-             );
-
-  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1 + Size2));
-
-  return (INTN)Status;
-}
-
-BOOLEAN
-EFIAPI
-CoreUnicodeCollationMetaiMatch (
-  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
-  IN CHAR16                          *String,
-  IN CHAR16                          *Pattern
-  )
-{
-  EFI_STATUS            Status;
-  EFI_PHYSICAL_ADDRESS  UserMem;
-  USER_SPACE_DRIVER     *UserDriver;
-  VOID                  *EntryPoint;
-  UINTN                 Size1;
-  UINTN                 Size2;
-
-  UserDriver = FindUserSpaceDriver (This);
-  ASSERT (UserDriver != NULL);
-
-  This           = UserDriver->UserSpaceDriver;
-  gUserPageTable = UserDriver->UserPageTable;
-
-  Size1 = StrSize (String);
-  Size2 = StrSize (Pattern);
-
-  Status = CoreAllocatePages (
-             AllocateAnyPages,
-             EfiRing3MemoryType,
-             EFI_SIZE_TO_PAGES (Size1 + Size2),
-             &UserMem
-             );
-  if (EFI_ERROR (Status)) {
-    return FALSE;
-  }
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)String, Size1);
-  CopyMem ((VOID *)((UINTN)UserMem + Size1), (VOID *)Pattern, Size2);
-  EntryPoint = (VOID *)This->MetaiMatch;
-  ForbidSupervisorAccessToUserMemory ();
-
-  Status = GoToRing3 (
-             3,
-             EntryPoint,
-             This,
-             (UINTN)UserMem,
-             (UINTN)UserMem + Size1
-             );
-
-  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1 + Size2));
-
-  return (BOOLEAN)Status;
-}
-
-VOID
-EFIAPI
-CoreUnicodeCollationStrLwr (
-  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
-  IN OUT CHAR16                      *Str
-  )
-{
-  EFI_STATUS            Status;
-  EFI_PHYSICAL_ADDRESS  UserMem;
-  USER_SPACE_DRIVER     *UserDriver;
-  VOID                  *EntryPoint;
-  UINTN                 Size1;
-
-  UserDriver = FindUserSpaceDriver (This);
-  ASSERT (UserDriver != NULL);
-
-  This           = UserDriver->UserSpaceDriver;
-  gUserPageTable = UserDriver->UserPageTable;
-
-  Size1 = StrSize (Str);
-
-  Status = CoreAllocatePages (
-             AllocateAnyPages,
-             EfiRing3MemoryType,
-             EFI_SIZE_TO_PAGES (Size1),
-             &UserMem
-             );
-  if (EFI_ERROR (Status)) {
-    return;
-  }
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Str, Size1);
-  EntryPoint = (VOID *)This->StrLwr;
-  ForbidSupervisorAccessToUserMemory ();
-
-  Status = GoToRing3 (
-             2,
-             EntryPoint,
-             This,
-             (UINTN)UserMem
-             );
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)Str, (VOID *)(UINTN)UserMem, Size1);
-  ForbidSupervisorAccessToUserMemory ();
-
-  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1));
-}
-
-VOID
-EFIAPI
-CoreUnicodeCollationStrUpr (
-  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
-  IN OUT CHAR16                      *Str
-  )
-{
-  EFI_STATUS            Status;
-  EFI_PHYSICAL_ADDRESS  UserMem;
-  USER_SPACE_DRIVER     *UserDriver;
-  VOID                  *EntryPoint;
-  UINTN                 Size1;
-
-  UserDriver = FindUserSpaceDriver (This);
-  ASSERT (UserDriver != NULL);
-
-  This           = UserDriver->UserSpaceDriver;
-  gUserPageTable = UserDriver->UserPageTable;
-
-  Size1 = StrSize (Str);
-
-  Status = CoreAllocatePages (
-             AllocateAnyPages,
-             EfiRing3MemoryType,
-             EFI_SIZE_TO_PAGES (Size1),
-             &UserMem
-             );
-  if (EFI_ERROR (Status)) {
-    return;
-  }
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Str, Size1);
-  EntryPoint = (VOID *)This->StrUpr;
-  ForbidSupervisorAccessToUserMemory ();
-
-  Status = GoToRing3 (
-             2,
-             EntryPoint,
-             This,
-             (UINTN)UserMem
-             );
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)Str, (VOID *)(UINTN)UserMem, Size1);
-  ForbidSupervisorAccessToUserMemory ();
-
-  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1));
-}
-
-VOID
-EFIAPI
-CoreUnicodeCollationFatToStr (
-  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
-  IN UINTN                           FatSize,
-  IN CHAR8                           *Fat,
-  OUT CHAR16                         *String
-  )
-{
-  EFI_STATUS            Status;
-  EFI_PHYSICAL_ADDRESS  UserMem;
-  USER_SPACE_DRIVER     *UserDriver;
-  VOID                  *EntryPoint;
-
-  UserDriver = FindUserSpaceDriver (This);
-  ASSERT (UserDriver != NULL);
-
-  This           = UserDriver->UserSpaceDriver;
-  gUserPageTable = UserDriver->UserPageTable;
-
-  Status = CoreAllocatePages (
-             AllocateAnyPages,
-             EfiRing3MemoryType,
-             EFI_SIZE_TO_PAGES (FatSize * 3),
-             &UserMem
-             );
-  if (EFI_ERROR (Status)) {
-    return;
-  }
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Fat, FatSize);
-  EntryPoint = (VOID *)This->FatToStr;
-  ForbidSupervisorAccessToUserMemory ();
-
-  Status = GoToRing3 (
-             4,
-             EntryPoint,
-             This,
-             FatSize,
-             (UINTN)UserMem,
-             (UINTN)UserMem + FatSize
-             );
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)String, (VOID *)((UINTN)UserMem + FatSize), FatSize * 2);
-  ForbidSupervisorAccessToUserMemory ();
-
-  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (FatSize * 3));
-}
-
-BOOLEAN
-EFIAPI
-CoreUnicodeCollationStrToFat (
-  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
-  IN CHAR16                          *String,
-  IN UINTN                           FatSize,
-  OUT CHAR8                          *Fat
-  )
-{
-  EFI_STATUS            Status;
-  EFI_PHYSICAL_ADDRESS  UserMem;
-  USER_SPACE_DRIVER     *UserDriver;
-  VOID                  *EntryPoint;
-  UINTN                 Size1;
-
-  UserDriver = FindUserSpaceDriver (This);
-  ASSERT (UserDriver != NULL);
-
-  This           = UserDriver->UserSpaceDriver;
-  gUserPageTable = UserDriver->UserPageTable;
-
-  Size1 = StrSize (String);
-
-  Status = CoreAllocatePages (
-             AllocateAnyPages,
-             EfiRing3MemoryType,
-             EFI_SIZE_TO_PAGES (FatSize + Size1),
-             &UserMem
-             );
-  if (EFI_ERROR (Status)) {
-    return FALSE;
-  }
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)String, Size1);
-  EntryPoint = (VOID *)This->StrToFat;
-  ForbidSupervisorAccessToUserMemory ();
-
-  Status = GoToRing3 (
-             4,
-             EntryPoint,
-             This,
-             (UINTN)UserMem,
-             FatSize,
-             (UINTN)UserMem + Size1
-             );
-
-  AllowSupervisorAccessToUserMemory ();
-  CopyMem ((VOID *)Fat, (VOID *)((UINTN)UserMem + Size1), FatSize);
-  ForbidSupervisorAccessToUserMemory ();
-
-  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (FatSize + Size1));
-
-  return (BOOLEAN)Status;
-}
+INTN
+EFIAPI
+CoreUnicodeCollationStriColl (
+  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
+  IN CHAR16                          *Str1,
+  IN CHAR16                          *Str2
+  )
+{
+  EFI_STATUS            Status;
+  EFI_PHYSICAL_ADDRESS  UserMem;
+  USER_SPACE_DRIVER     *UserDriver;
+  VOID                  *EntryPoint;
+  UINTN                 Size1;
+  UINTN                 Size2;
+
+  UserDriver = FindUserSpaceDriver (This);
+  ASSERT (UserDriver != NULL);
+
+  This           = UserDriver->UserSpaceDriver;
+  gUserPageTable = UserDriver->UserPageTable;
+
+  Size1 = StrSize (Str1);
+  Size2 = StrSize (Str2);
+
+  Status = CoreAllocatePages (
+             AllocateAnyPages,
+             EfiRing3MemoryType,
+             EFI_SIZE_TO_PAGES (Size1 + Size2),
+             &UserMem
+             );
+  if (EFI_ERROR (Status)) {
+    return 0;
+  }
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Str1, Size1);
+  CopyMem ((VOID *)((UINTN)UserMem + Size1), (VOID *)Str2, Size2);
+  EntryPoint = (VOID *)This->StriColl;
+  ForbidSupervisorAccessToUserMemory ();
+
+  Status = GoToRing3 (
+             3,
+             EntryPoint,
+             This,
+             (UINTN)UserMem,
+             (UINTN)UserMem + Size1
+             );
+
+  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1 + Size2));
+
+  return (INTN)Status;
+}
+
+BOOLEAN
+EFIAPI
+CoreUnicodeCollationMetaiMatch (
+  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
+  IN CHAR16                          *String,
+  IN CHAR16                          *Pattern
+  )
+{
+  EFI_STATUS            Status;
+  EFI_PHYSICAL_ADDRESS  UserMem;
+  USER_SPACE_DRIVER     *UserDriver;
+  VOID                  *EntryPoint;
+  UINTN                 Size1;
+  UINTN                 Size2;
+
+  UserDriver = FindUserSpaceDriver (This);
+  ASSERT (UserDriver != NULL);
+
+  This           = UserDriver->UserSpaceDriver;
+  gUserPageTable = UserDriver->UserPageTable;
+
+  Size1 = StrSize (String);
+  Size2 = StrSize (Pattern);
+
+  Status = CoreAllocatePages (
+             AllocateAnyPages,
+             EfiRing3MemoryType,
+             EFI_SIZE_TO_PAGES (Size1 + Size2),
+             &UserMem
+             );
+  if (EFI_ERROR (Status)) {
+    return FALSE;
+  }
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)String, Size1);
+  CopyMem ((VOID *)((UINTN)UserMem + Size1), (VOID *)Pattern, Size2);
+  EntryPoint = (VOID *)This->MetaiMatch;
+  ForbidSupervisorAccessToUserMemory ();
+
+  Status = GoToRing3 (
+             3,
+             EntryPoint,
+             This,
+             (UINTN)UserMem,
+             (UINTN)UserMem + Size1
+             );
+
+  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1 + Size2));
+
+  return (BOOLEAN)Status;
+}
+
+VOID
+EFIAPI
+CoreUnicodeCollationStrLwr (
+  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
+  IN OUT CHAR16                      *Str
+  )
+{
+  EFI_STATUS            Status;
+  EFI_PHYSICAL_ADDRESS  UserMem;
+  USER_SPACE_DRIVER     *UserDriver;
+  VOID                  *EntryPoint;
+  UINTN                 Size1;
+
+  UserDriver = FindUserSpaceDriver (This);
+  ASSERT (UserDriver != NULL);
+
+  This           = UserDriver->UserSpaceDriver;
+  gUserPageTable = UserDriver->UserPageTable;
+
+  Size1 = StrSize (Str);
+
+  Status = CoreAllocatePages (
+             AllocateAnyPages,
+             EfiRing3MemoryType,
+             EFI_SIZE_TO_PAGES (Size1),
+             &UserMem
+             );
+  if (EFI_ERROR (Status)) {
+    return;
+  }
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Str, Size1);
+  EntryPoint = (VOID *)This->StrLwr;
+  ForbidSupervisorAccessToUserMemory ();
+
+  Status = GoToRing3 (
+             2,
+             EntryPoint,
+             This,
+             (UINTN)UserMem
+             );
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)Str, (VOID *)(UINTN)UserMem, Size1);
+  ForbidSupervisorAccessToUserMemory ();
+
+  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1));
+}
+
+VOID
+EFIAPI
+CoreUnicodeCollationStrUpr (
+  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
+  IN OUT CHAR16                      *Str
+  )
+{
+  EFI_STATUS            Status;
+  EFI_PHYSICAL_ADDRESS  UserMem;
+  USER_SPACE_DRIVER     *UserDriver;
+  VOID                  *EntryPoint;
+  UINTN                 Size1;
+
+  UserDriver = FindUserSpaceDriver (This);
+  ASSERT (UserDriver != NULL);
+
+  This           = UserDriver->UserSpaceDriver;
+  gUserPageTable = UserDriver->UserPageTable;
+
+  Size1 = StrSize (Str);
+
+  Status = CoreAllocatePages (
+             AllocateAnyPages,
+             EfiRing3MemoryType,
+             EFI_SIZE_TO_PAGES (Size1),
+             &UserMem
+             );
+  if (EFI_ERROR (Status)) {
+    return;
+  }
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Str, Size1);
+  EntryPoint = (VOID *)This->StrUpr;
+  ForbidSupervisorAccessToUserMemory ();
+
+  Status = GoToRing3 (
+             2,
+             EntryPoint,
+             This,
+             (UINTN)UserMem
+             );
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)Str, (VOID *)(UINTN)UserMem, Size1);
+  ForbidSupervisorAccessToUserMemory ();
+
+  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (Size1));
+}
+
+VOID
+EFIAPI
+CoreUnicodeCollationFatToStr (
+  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
+  IN UINTN                           FatSize,
+  IN CHAR8                           *Fat,
+  OUT CHAR16                         *String
+  )
+{
+  EFI_STATUS            Status;
+  EFI_PHYSICAL_ADDRESS  UserMem;
+  USER_SPACE_DRIVER     *UserDriver;
+  VOID                  *EntryPoint;
+
+  UserDriver = FindUserSpaceDriver (This);
+  ASSERT (UserDriver != NULL);
+
+  This           = UserDriver->UserSpaceDriver;
+  gUserPageTable = UserDriver->UserPageTable;
+
+  Status = CoreAllocatePages (
+             AllocateAnyPages,
+             EfiRing3MemoryType,
+             EFI_SIZE_TO_PAGES (FatSize * 3),
+             &UserMem
+             );
+  if (EFI_ERROR (Status)) {
+    return;
+  }
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)Fat, FatSize);
+  EntryPoint = (VOID *)This->FatToStr;
+  ForbidSupervisorAccessToUserMemory ();
+
+  Status = GoToRing3 (
+             4,
+             EntryPoint,
+             This,
+             FatSize,
+             (UINTN)UserMem,
+             (UINTN)UserMem + FatSize
+             );
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)String, (VOID *)((UINTN)UserMem + FatSize), FatSize * 2);
+  ForbidSupervisorAccessToUserMemory ();
+
+  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (FatSize * 3));
+}
+
+BOOLEAN
+EFIAPI
+CoreUnicodeCollationStrToFat (
+  IN EFI_UNICODE_COLLATION_PROTOCOL  *This,
+  IN CHAR16                          *String,
+  IN UINTN                           FatSize,
+  OUT CHAR8                          *Fat
+  )
+{
+  EFI_STATUS            Status;
+  EFI_PHYSICAL_ADDRESS  UserMem;
+  USER_SPACE_DRIVER     *UserDriver;
+  VOID                  *EntryPoint;
+  UINTN                 Size1;
+
+  UserDriver = FindUserSpaceDriver (This);
+  ASSERT (UserDriver != NULL);
+
+  This           = UserDriver->UserSpaceDriver;
+  gUserPageTable = UserDriver->UserPageTable;
+
+  Size1 = StrSize (String);
+
+  Status = CoreAllocatePages (
+             AllocateAnyPages,
+             EfiRing3MemoryType,
+             EFI_SIZE_TO_PAGES (FatSize + Size1),
+             &UserMem
+             );
+  if (EFI_ERROR (Status)) {
+    return FALSE;
+  }
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)(UINTN)UserMem, (VOID *)String, Size1);
+  EntryPoint = (VOID *)This->StrToFat;
+  ForbidSupervisorAccessToUserMemory ();
+
+  Status = GoToRing3 (
+             4,
+             EntryPoint,
+             This,
+             (UINTN)UserMem,
+             FatSize,
+             (UINTN)UserMem + Size1
+             );
+
+  AllowSupervisorAccessToUserMemory ();
+  CopyMem ((VOID *)Fat, (VOID *)((UINTN)UserMem + Size1), FatSize);
+  ForbidSupervisorAccessToUserMemory ();
+
+  CoreFreePages (UserMem, EFI_SIZE_TO_PAGES (FatSize + Size1));
+
+  return (BOOLEAN)Status;
+}
diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm
index 0c81564554..ee2a061fd5 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.nasm
@@ -468,18 +468,18 @@ DoReturn:
 
 DoIret:
     iretd
-ReturnToRing3:
-    mov     ecx, [ASM_PFX(UserPageTable)]
-    mov     cr3, ecx
-    pop     ecx
-    mov     esp, ebp
-    pop     ebp
-    add     esp, 8
-    iretd
+ReturnToRing3:
+    mov     ecx, [ASM_PFX(UserPageTable)]
+    mov     cr3, ecx
+    pop     ecx
+    mov     esp, ebp
+    pop     ebp
+    add     esp, 8
+    iretd
 
-ALIGN   4096
-global ASM_PFX(ExceptionHandlerEnd)
-ASM_PFX(ExceptionHandlerEnd):
+ALIGN   4096
+global ASM_PFX(ExceptionHandlerEnd)
+ASM_PFX(ExceptionHandlerEnd):
 
 ;---------------------------------------;
 ; _AsmGetTemplateAddressMap                  ;
diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
index 31e1a70780..9ba3ae5172 100644
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm
@@ -63,13 +63,13 @@ global ASM_PFX(UserPageTable)
 ASM_PFX(UserPageTable):
   resq 1
 
-global ASM_PFX(mSwitchCr3Flag)
-ASM_PFX(mSwitchCr3Flag):
-  db 0x0
+global ASM_PFX(mSwitchCr3Flag)
+ASM_PFX(mSwitchCr3Flag):
+  db 0x0
 
-ALIGN   4096
-Padding:
-  db 0x0
+ALIGN   4096
+Padding:
+  db 0x0
 
 DEFAULT REL
 SECTION .text
@@ -493,17 +493,17 @@ DoReturn:
 DoIret:
     iretq
 ReturnToRing3:
-    mov     rcx, [ASM_PFX(UserPageTable)]
-    mov     cr3, rcx
-    pop     rcx
-    mov     rsp, rbp
-    pop     rbp
-    add     rsp, 16
+    mov     rcx, [ASM_PFX(UserPageTable)]
+    mov     cr3, rcx
+    pop     rcx
+    mov     rsp, rbp
+    pop     rbp
+    add     rsp, 16
     iretq
 
 ALIGN   4096
-global ASM_PFX(ExceptionHandlerEnd)
-ASM_PFX(ExceptionHandlerEnd):
+global ASM_PFX(ExceptionHandlerEnd)
+ASM_PFX(ExceptionHandlerEnd):
 
 ;-------------------------------------------------------------------------------------
 ;  GetTemplateAddressMap (&AddressMap);