RDKQemu.fdf 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #
  2. # Copyright (c) 2011-2015, ARM Limited. All rights reserved.
  3. # Copyright (c) 2014 - 2018, Linaro Limited. All rights reserved.
  4. # Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
  5. #
  6. # SPDX-License-Identifier: BSD-2-Clause-Patent
  7. #
  8. ################################################################################
  9. #
  10. # FD Section
  11. # The [FD] Section is made up of the definition statements and a
  12. # description of what goes into the Flash Device Image. Each FD section
  13. # defines one flash "device" image. A flash device image may be one of
  14. # the following: Removable media bootable image (like a boot floppy
  15. # image,) an Option ROM image (that would be "flashed" into an add-in
  16. # card,) a System "Flash" image (that would be burned into a system's
  17. # flash) or an Update ("Capsule") image that will be used to update and
  18. # existing system flash.
  19. #
  20. ################################################################################
  21. [FD.RDK_EFI]
  22. BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # QEMU assigns 0 - 0x8000000 for a BootROM
  23. Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
  24. ErasePolarity = 1
  25. # This one is tricky, it must be: BlockSize * NumBlocks = Size
  26. BlockSize = 0x00001000
  27. NumBlocks = 0x200
  28. ################################################################################
  29. #
  30. # Following are lists of FD Region layout which correspond to the locations of different
  31. # images within the flash device.
  32. #
  33. # Regions must be defined in ascending order and may not overlap.
  34. #
  35. # A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
  36. # the pipe "|" character, followed by the size of the region, also in hex with the leading
  37. # "0x" characters. Like:
  38. # Offset|Size
  39. # PcdOffsetCName|PcdSizeCName
  40. # RegionType <FV, DATA, or FILE>
  41. #
  42. ################################################################################
  43. #
  44. # UEFI has trouble dealing with FVs that reside at physical address 0x0.
  45. # So instead, put a hardcoded 'jump to 0x1000' at offset 0x0, and put the
  46. # real FV at offset 0x1000
  47. #
  48. 0x00000000|0x00001000
  49. DATA = {
  50. !if $(ARCH) == AARCH64
  51. 0x00, 0x04, 0x00, 0x14 # 'b 0x1000' in AArch64 ASM
  52. !else
  53. 0xfe, 0x03, 0x00, 0xea # 'b 0x1000' in AArch32 ASM
  54. !endif
  55. }
  56. 0x00001000|0x001ff000
  57. gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
  58. FV = FVMAIN_COMPACT
  59. !include ArmVirtPkg/VarStore.fdf.inc
  60. ################################################################################
  61. #
  62. # FV Section
  63. #
  64. # [FV] section is used to define what components or modules are placed within a flash
  65. # device file. This section also defines order the components and modules are positioned
  66. # within the image. The [FV] section consists of define statements, set statements and
  67. # module statements.
  68. #
  69. ################################################################################
  70. !include ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
  71. [FV.FVMAIN_COMPACT]
  72. #FvNameGuid = 64074afe-340a-4be6-94ba-91b5b4d0d412
  73. FvAlignment = 16
  74. ERASE_POLARITY = 1
  75. MEMORY_MAPPED = TRUE
  76. STICKY_WRITE = TRUE
  77. LOCK_CAP = TRUE
  78. LOCK_STATUS = TRUE
  79. WRITE_DISABLED_CAP = TRUE
  80. WRITE_ENABLED_CAP = TRUE
  81. WRITE_STATUS = TRUE
  82. WRITE_LOCK_CAP = TRUE
  83. WRITE_LOCK_STATUS = TRUE
  84. READ_DISABLED_CAP = TRUE
  85. READ_ENABLED_CAP = TRUE
  86. READ_STATUS = TRUE
  87. READ_LOCK_CAP = TRUE
  88. READ_LOCK_STATUS = TRUE
  89. INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
  90. INF MdeModulePkg/Core/Pei/PeiMain.inf
  91. INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
  92. INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
  93. INF ArmPkg/Drivers/CpuPei/CpuPei.inf
  94. INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
  95. INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
  96. INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
  97. #
  98. # FDT installation
  99. #
  100. # The UEFI driver is at the end of the list of the driver to be dispatched
  101. # after the device drivers (eg: Ethernet) to ensure we have support for them.
  102. #INF Platform/ARM/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf
  103. FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
  104. SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
  105. SECTION FV_IMAGE = FVMAIN
  106. }
  107. }
  108. !include ArmVirtPkg/ArmVirtRules.fdf.inc