]> git.proxmox.com Git - mirror_edk2.git/blame - CorebootModulePkg/SecCore/Ia32/SecEntry.nasm
CorebootModulePkg/SecCore: Adding NASM files in SecCore module
[mirror_edk2.git] / CorebootModulePkg / SecCore / Ia32 / SecEntry.nasm
CommitLineData
365a3aab
MM
1;------------------------------------------------------------------------------\r
2;\r
3; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
4; This program and the accompanying materials\r
5; are licensed and made available under the terms and conditions of the BSD License\r
6; which accompanies this distribution. The full text of the license may be found at\r
7; http://opensource.org/licenses/bsd-license.php.\r
8;\r
9; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11;\r
12; Abstract:\r
13;\r
14; Entry point for the coreboot UEFI payload.\r
15;\r
16;------------------------------------------------------------------------------\r
17\r
18SECTION .text\r
19\r
20; C Functions\r
21extern ASM_PFX(SecStartup)\r
22\r
23; Pcds\r
24extern ASM_PFX(PcdGet32 (PcdPayloadFdMemBase))\r
25\r
26;\r
27; SecCore Entry Point\r
28;\r
29; Processor is in flat protected mode\r
30;\r
31; @param[in] EAX Initial value of the EAX register (BIST: Built-in Self Test)\r
32; @param[in] DI 'BP': boot-strap processor, or 'AP': application processor\r
33; @param[in] EBP Pointer to the start of the Boot Firmware Volume\r
34;\r
35; @return None This routine does not return\r
36;\r
37global ASM_PFX(_ModuleEntryPoint)\r
38ASM_PFX(_ModuleEntryPoint):\r
39 ;\r
40 ; Disable all the interrupts\r
41 ;\r
42 cli\r
43 ;\r
44 ; Construct the temporary memory at 0x80000, length 0x10000\r
45 ;\r
46 mov esp, (BASE_512KB + SIZE_64KB)\r
47\r
48 ;\r
49 ; Pass BFV into the PEI Core\r
50 ;\r
51 push DWORD [ASM_PFX(PcdGet32 (PcdPayloadFdMemBase))]\r
52\r
53 ;\r
54 ; Pass stack base into the PEI Core\r
55 ;\r
56 push BASE_512KB\r
57\r
58 ;\r
59 ; Pass stack size into the PEI Core\r
60 ;\r
61 push SIZE_64KB\r
62\r
63 ;\r
64 ; Pass Control into the PEI Core\r
65 ;\r
66 call ASM_PFX(SecStartup)\r
67\r
68 ;\r
69 ; Should never return\r
70 ;\r
71 jmp $\r
72\r