+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- SwitchToCacheMode.c\r
-\r
-Abstract:\r
-\r
- Ipf CAR specific function used to switch to cache mode for the later memory access\r
-\r
-Revision History\r
-\r
---*/\r
-\r
-#include "IpfPeiMain.h"\r
-#define RecoveryFn 0x03\r
-\r
-VOID\r
-SwitchToCacheMode (\r
- IN PEI_CORE_INSTANCE *CoreData\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Switch the PHIT pointers to cache mode after InstallPeiMemory in CAR.\r
-\r
-Arguments:\r
-\r
- CoreData - The PEI core Private Data\r
-\r
-Returns:\r
-\r
---*/\r
-{\r
- EFI_HOB_HANDOFF_INFO_TABLE *Phit;\r
-\r
- if ((GetHandOffStatus().r10 & 0xFF) == RecoveryFn) {\r
- CoreData->StackBase = CoreData->StackBase & CACHE_MODE_ADDRESS_MASK;\r
- CoreData->HobList.Raw = (UINT8 *)((UINTN)CoreData->HobList.Raw & CACHE_MODE_ADDRESS_MASK);\r
-\r
- //\r
- // Change the PHIT pointer value to cache mode\r
- //\r
- Phit = CoreData->HobList.HandoffInformationTable;\r
-\r
- Phit->EfiMemoryTop = Phit->EfiMemoryTop & CACHE_MODE_ADDRESS_MASK;\r
- Phit->EfiFreeMemoryTop = Phit->EfiFreeMemoryTop & CACHE_MODE_ADDRESS_MASK;\r
- Phit->EfiMemoryBottom = Phit->EfiMemoryBottom & CACHE_MODE_ADDRESS_MASK;\r
- Phit->EfiFreeMemoryBottom = Phit->EfiFreeMemoryBottom & CACHE_MODE_ADDRESS_MASK;\r
- Phit->EfiEndOfHobList = Phit->EfiEndOfHobList & CACHE_MODE_ADDRESS_MASK;\r
- }\r
-\r
- return;\r
-}\r