FspHelper.nasm 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. ;; @file
  2. ; Provide FSP helper function.
  3. ;
  4. ; Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
  5. ; SPDX-License-Identifier: BSD-2-Clause-Patent
  6. ;;
  7. SECTION .text
  8. FSP_HEADER_IMGBASE_OFFSET EQU 1Ch
  9. global ASM_PFX(FspInfoHeaderRelativeOff)
  10. ASM_PFX(FspInfoHeaderRelativeOff):
  11. DD 0x12345678 ; This value must be patched by the build script
  12. global ASM_PFX(AsmGetFspBaseAddress)
  13. ASM_PFX(AsmGetFspBaseAddress):
  14. call ASM_PFX(AsmGetFspInfoHeader)
  15. add eax, FSP_HEADER_IMGBASE_OFFSET
  16. mov eax, dword [eax]
  17. ret
  18. global ASM_PFX(AsmGetFspInfoHeader)
  19. ASM_PFX(AsmGetFspInfoHeader):
  20. call ASM_PFX(NextInstruction)
  21. ASM_PFX(NextInstruction):
  22. pop eax
  23. sub eax, ASM_PFX(NextInstruction)
  24. add eax, ASM_PFX(AsmGetFspInfoHeader)
  25. sub eax, dword [eax - ASM_PFX(AsmGetFspInfoHeader) + ASM_PFX(FspInfoHeaderRelativeOff)]
  26. ret
  27. global ASM_PFX(AsmGetFspInfoHeaderNoStack)
  28. ASM_PFX(AsmGetFspInfoHeaderNoStack):
  29. mov eax, ASM_PFX(AsmGetFspInfoHeader)
  30. sub eax, dword [ASM_PFX(FspInfoHeaderRelativeOff)]
  31. jmp edi