• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
_ModuleEntryPoint(VOID)24 _ModuleEntryPoint (
25   VOID
26   )
27 {
28 }
29 
30 VOID
CEntryPoint(VOID * MemoryBase,UINTN MemorySize,VOID * StackBase,UINTN StackSize)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