| ;------------------------------------------------------------------------------ | |
| ; @file | |
| ; First code executed by processor after resetting. | |
| ; | |
| ; Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR> | |
| ; 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. | |
| ; | |
| ;------------------------------------------------------------------------------ | |
| BITS 16 | |
| ALIGN 16 | |
| ; | |
| ; Pad the image size to 4k when page tables are in VTF0 | |
| ; | |
| ; If the VTF0 image has page tables built in, then we need to make | |
| ; sure the end of VTF0 is 4k above where the page tables end. | |
| ; | |
| ; This is required so the page tables will be 4k aligned when VTF0 is | |
| ; located just below 0x100000000 (4GB) in the firmware device. | |
| ; | |
| %ifdef ALIGN_TOP_TO_4K_FOR_PAGING | |
| TIMES (0x1000 - ($ - EndOfPageTables) - 0x20) DB 0 | |
| %endif | |
| applicationProcessorEntryPoint: | |
| ; | |
| ; Application Processors entry point | |
| ; | |
| ; GenFv generates code aligned on a 4k boundary which will jump to this | |
| ; location. (0xffffffe0) This allows the Local APIC Startup IPI to be | |
| ; used to wake up the application processors. | |
| ; | |
| jmp EarlyApInitReal16 | |
| ALIGN 8 | |
| DD 0 | |
| ; | |
| ; The VTF signature | |
| ; | |
| ; VTF-0 means that the VTF (Volume Top File) code does not require | |
| ; any fixups. | |
| ; | |
| vtfSignature: | |
| DB 'V', 'T', 'F', 0 | |
| ALIGN 16 | |
| resetVector: | |
| ; | |
| ; Reset Vector | |
| ; | |
| ; This is where the processor will begin execution | |
| ; | |
| nop | |
| nop | |
| jmp EarlyBspInitReal16 | |
| ALIGN 16 | |
| fourGigabytes: | |