/** @file * * Copyright (c) 2011, ARM Limited. All rights reserved. * * 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 * http://opensource.org/licenses/bsd-license.php * * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. * **/ #include #include #include #include // // Have to use build system to set the original value in case we are running // from FLASH and globals don't work. So if you do a GetHobList() and gHobList // and gHobList is NULL the PCD default values are used. // VOID *gHobList = NULL; /** Returns the pointer to the HOB list. This function returns the pointer to first HOB in the list. @return The pointer to the HOB list. **/ VOID * EFIAPI PrePeiGetHobList ( VOID ) { if (gHobList == NULL) { return (VOID *)*(UINTN*)(PcdGet32 (PcdCPUCoresNonSecStackBase) + (PcdGet32 (PcdCPUCoresNonSecStackSize) / 2) - PcdGet32 (PcdHobListPtrGlobalOffset)); } else { return gHobList; } } /** Updates the pointer to the HOB list. @param HobList Hob list pointer to store **/ EFI_STATUS EFIAPI PrePeiSetHobList ( IN VOID *HobList ) { gHobList = HobList; // // If this code is running from ROM this could fail // return (gHobList == HobList) ? EFI_SUCCESS: EFI_UNSUPPORTED; }