| 113 | ); |
| 114 | |
| 115 | VOID |
| 116 | DxeInit ( |
| 117 | IN EFILDRHANDOFF *Handoff |
| 118 | ) |
| 119 | /*++ |
| 120 | |
| 121 | Routine Description: |
| 122 | |
| 123 | This is the entry point after this code has been loaded into memory. |
| 124 | |
| 125 | Arguments: |
| 126 | |
| 127 | |
| 128 | Returns: |
| 129 | |
| 130 | Calls into EFI Firmware |
| 131 | |
| 132 | --*/ |
| 133 | { |
| 134 | VOID *StackTop; |
| 135 | VOID *StackBottom; |
| 136 | VOID *PageTableBase; |
| 137 | VOID *MemoryTopOnDescriptor; |
| 138 | VOID *MemoryDescriptor; |
| 139 | VOID *NvStorageBase; |
| 140 | // CHAR8 PrintBuffer[256]; |
| 141 | EFILDRHANDOFF HandoffCopy; |
| 142 | |
| 143 | CopyMem((VOID*) &HandoffCopy, (VOID*) Handoff, sizeof (EFILDRHANDOFF)); |
| 144 | Handoff = &HandoffCopy; |
| 145 | |
| 146 | // ClearScreen(); |
| 147 | |
| 148 | /* PrintString ( |
| 149 | "Enter DxeIpl ...\n" |
| 150 | "Handoff:\n" |
| 151 | "Handoff.BfvBase = %p, BfvLength = %x\n" |
| 152 | "Handoff.DxeIplImageBase = %p, DxeIplImageSize = %x\n" |
| 153 | "Handoff.DxeCoreImageBase = %p, DxeCoreImageSize = %x\n", |
| 154 | Handoff->BfvBase, Handoff->BfvSize, |
| 155 | Handoff->DxeIplImageBase, Handoff->DxeIplImageSize, |
| 156 | Handoff->DxeCoreImageBase, Handoff->DxeCoreImageSize |
| 157 | ); |
| 158 | */ |
| 159 | // |
| 160 | // Hob Generation Guild line: |
| 161 | // * Don't report FV as physical memory |
| 162 | // * MemoryAllocation Hob should only cover physical memory |
| 163 | // * Use ResourceDescriptor Hob to report physical memory or Firmware Device and they shouldn't be overlapped |
| 164 | // PrintString("Prepare Cpu HOB information ...\n"); |
| 165 | PrepareHobCpu (); |
| 166 | |
| 167 | // |
| 168 | // 1. BFV |
| 169 | // |
| 170 | // PrintString("Prepare BFV HOB information ...\n"); |
| 171 | PrepareHobBfv (Handoff->BfvBase, Handoff->BfvSize); |
| 172 |
no test coverage detected