XenResetVector.nasmb 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. ;------------------------------------------------------------------------------
  2. ; @file
  3. ; This file includes all other code files to assemble the reset vector code
  4. ;
  5. ; Copyright (c) 2008 - 2013, Intel Corporation. All rights reserved.<BR>
  6. ; Copyright (c) 2019, Citrix Systems, Inc.
  7. ; SPDX-License-Identifier: BSD-2-Clause-Patent
  8. ;
  9. ;------------------------------------------------------------------------------
  10. ;
  11. ; If neither ARCH_IA32 nor ARCH_X64 are defined, then try to include
  12. ; Base.h to use the C pre-processor to determine the architecture.
  13. ;
  14. %ifndef ARCH_IA32
  15. %ifndef ARCH_X64
  16. #include <Base.h>
  17. #if defined (MDE_CPU_IA32)
  18. %define ARCH_IA32
  19. #elif defined (MDE_CPU_X64)
  20. %define ARCH_X64
  21. #endif
  22. %endif
  23. %endif
  24. %ifdef ARCH_IA32
  25. %ifdef ARCH_X64
  26. %error "Only one of ARCH_IA32 or ARCH_X64 can be defined."
  27. %endif
  28. %elifdef ARCH_X64
  29. %else
  30. %error "Either ARCH_IA32 or ARCH_X64 must be defined."
  31. %endif
  32. %include "CommonMacros.inc"
  33. %define PVH_SPACE(Offset) (FixedPcdGet32 (PcdXenPvhStartOfDayStructPtr) + (Offset))
  34. %include "PostCodes.inc"
  35. %ifdef DEBUG_PORT80
  36. %include "Port80Debug.asm"
  37. %elifdef DEBUG_SERIAL
  38. %include "SerialDebug.asm"
  39. %else
  40. %include "DebugDisabled.asm"
  41. %endif
  42. %include "Ia32/SearchForBfvBase.asm"
  43. %include "Ia32/SearchForSecEntry.asm"
  44. %ifdef ARCH_X64
  45. #include <AutoGen.h>
  46. %if (FixedPcdGet32 (PcdOvmfSecPageTablesSize) != 0x6000)
  47. %error "This implementation inherently depends on PcdOvmfSecPageTablesSize"
  48. %endif
  49. %define PT_ADDR(Offset) (FixedPcdGet32 (PcdOvmfSecPageTablesBase) + (Offset))
  50. %include "Ia32/Flat32ToFlat64.asm"
  51. %include "Ia32/PageTables64.asm"
  52. %endif
  53. %include "Ia16/Real16ToFlat32.asm"
  54. %include "Ia16/Init16.asm"
  55. %include "Main.asm"
  56. %include "Ia32/XenPVHMain.asm"
  57. %include "Ia16/ResetVectorVtf0.asm"