Home | History | Annotate | Download | only in TemplateSec
      1 /** @file
      2 
      3   Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
      4 
      5   This program and the accompanying materials
      6   are licensed and made available under the terms and conditions of the BSD License
      7   which accompanies this distribution.  The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #include <PiPei.h>
     16 
     17 #include <Library/DebugLib.h>
     18 #include <Library/PrePiLib.h>
     19 #include <Library/PcdLib.h>
     20 
     21 #include <Ppi/GuidedSectionExtraction.h>
     22 
     23 VOID
     24 _ModuleEntryPoint (
     25   VOID
     26   )
     27 {
     28 }
     29 
     30 VOID
     31 CEntryPoint (
     32   VOID    *MemoryBase,
     33   UINTN   MemorySize,
     34   VOID    *StackBase,
     35   UINTN   StackSize
     36   )
     37 {
     38   EFI_PHYSICAL_ADDRESS  MemoryBegin;
     39   UINT64                MemoryLength;
     40   VOID                  *HobBase;
     41 
     42   //
     43   // Boot strap the C environment so the other library services will work properly.
     44   //
     45   MemoryBegin  = (EFI_PHYSICAL_ADDRESS)(UINTN)MemoryBase;
     46   MemoryLength = (UINT64)MemorySize;
     47   HobBase      = (VOID *)(UINTN)(FixedPcdGet32(PcdEmbeddedFdBaseAddress) + FixedPcdGet32(PcdEmbeddedFdSize));
     48   CreateHobList (MemoryBase, MemorySize, HobBase, StackBase);
     49 
     50   MemoryBegin  = (EFI_PHYSICAL_ADDRESS)(UINTN)StackBase;
     51   MemoryLength = (UINT64)StackSize;
     52   UpdateStackHob (MemoryBegin, MemoryLength);
     53 
     54   DEBUG ((DEBUG_ERROR, "CEntryPoint (%x,%x,%x,%x)\n", MemoryBase, MemorySize, StackBase, StackSize));
     55 
     56   //
     57   // Add your C code stuff here....
     58   //
     59 
     60 
     61   //
     62   // Load the DXE Core and transfer control to it
     63   //
     64 
     65   // Give the DXE Core access to our DEBUG and ASSERT infrastructure so this will work prior
     66   // to the DXE version being loaded. Thus we close the debugging gap between phases.
     67   AddDxeCoreReportStatusCodeCallback ();
     68 
     69   //BuildFvHobs (PcdBfvBase, PcdBfvSize, NULL);
     70 
     71   LoadDxeCoreFromFv (NULL, 0);
     72 
     73   // DXE Core should always load and never return
     74   ASSERT (FALSE);
     75 }
     76 
     77