fvp-aemv8-base.rst 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. Running on the AEMv8 Base FVP
  2. =============================
  3. AArch64 with reset to BL1 entrypoint
  4. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  5. The following ``FVP_Base_RevC-2xAEMv8A`` parameters should be used to boot Linux
  6. with 8 CPUs using the AArch64 build of TF-A.
  7. .. code:: shell
  8. <path-to>/FVP_Base_RevC-2xAEMv8A \
  9. -C pctl.startup=0.0.0.0 \
  10. -C bp.secure_memory=1 \
  11. -C bp.tzc_400.diagnostics=1 \
  12. -C cluster0.NUM_CORES=4 \
  13. -C cluster1.NUM_CORES=4 \
  14. -C cache_state_modelled=1 \
  15. -C bp.secureflashloader.fname="<path-to>/<bl1-binary>" \
  16. -C bp.flashloader0.fname="<path-to>/<FIP-binary>" \
  17. --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000 \
  18. --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
  19. .. note::
  20. The ``FVP_Base_RevC-2xAEMv8A`` has shifted affinities and requires
  21. a specific DTS for all the CPUs to be loaded.
  22. AArch32 with reset to BL1 entrypoint
  23. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  24. The following ``FVP_Base_AEMv8A-AEMv8A`` parameters should be used to boot Linux
  25. with 8 CPUs using the AArch32 build of TF-A.
  26. .. code:: shell
  27. <path-to>/FVP_Base_AEMv8A-AEMv8A \
  28. -C pctl.startup=0.0.0.0 \
  29. -C bp.secure_memory=1 \
  30. -C bp.tzc_400.diagnostics=1 \
  31. -C cluster0.NUM_CORES=4 \
  32. -C cluster1.NUM_CORES=4 \
  33. -C cache_state_modelled=1 \
  34. -C cluster0.cpu0.CONFIG64=0 \
  35. -C cluster0.cpu1.CONFIG64=0 \
  36. -C cluster0.cpu2.CONFIG64=0 \
  37. -C cluster0.cpu3.CONFIG64=0 \
  38. -C cluster1.cpu0.CONFIG64=0 \
  39. -C cluster1.cpu1.CONFIG64=0 \
  40. -C cluster1.cpu2.CONFIG64=0 \
  41. -C cluster1.cpu3.CONFIG64=0 \
  42. -C bp.secureflashloader.fname="<path-to>/<bl1-binary>" \
  43. -C bp.flashloader0.fname="<path-to>/<FIP-binary>" \
  44. --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000 \
  45. --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
  46. AArch64 with reset to BL31 entrypoint
  47. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  48. The following ``FVP_Base_RevC-2xAEMv8A`` parameters should be used to boot Linux
  49. with 8 CPUs using the AArch64 build of TF-A.
  50. .. code:: shell
  51. <path-to>/FVP_Base_RevC-2xAEMv8A \
  52. -C pctl.startup=0.0.0.0 \
  53. -C bp.secure_memory=1 \
  54. -C bp.tzc_400.diagnostics=1 \
  55. -C cluster0.NUM_CORES=4 \
  56. -C cluster1.NUM_CORES=4 \
  57. -C cache_state_modelled=1 \
  58. -C cluster0.cpu0.RVBAR=0x04010000 \
  59. -C cluster0.cpu1.RVBAR=0x04010000 \
  60. -C cluster0.cpu2.RVBAR=0x04010000 \
  61. -C cluster0.cpu3.RVBAR=0x04010000 \
  62. -C cluster1.cpu0.RVBAR=0x04010000 \
  63. -C cluster1.cpu1.RVBAR=0x04010000 \
  64. -C cluster1.cpu2.RVBAR=0x04010000 \
  65. -C cluster1.cpu3.RVBAR=0x04010000 \
  66. --data cluster0.cpu0="<path-to>/<bl31-binary>"@0x04010000 \
  67. --data cluster0.cpu0="<path-to>/<bl32-binary>"@0xff000000 \
  68. --data cluster0.cpu0="<path-to>/<bl33-binary>"@0x88000000 \
  69. --data cluster0.cpu0="<path-to>/<fdt>"@0x82000000 \
  70. --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000 \
  71. --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
  72. Notes:
  73. - Position Independent Executable (PIE) support is enabled in this
  74. config allowing BL31 to be loaded at any valid address for execution.
  75. - Since a FIP is not loaded when using BL31 as reset entrypoint, the
  76. ``--data="<path-to><bl31|bl32|bl33-binary>"@<base-address-of-binary>``
  77. parameter is needed to load the individual bootloader images in memory.
  78. BL32 image is only needed if BL31 has been built to expect a Secure-EL1
  79. Payload. For the same reason, the FDT needs to be compiled from the DT source
  80. and loaded via the ``--data cluster0.cpu0="<path-to>/<fdt>"@0x82000000``
  81. parameter.
  82. - The ``FVP_Base_RevC-2xAEMv8A`` has shifted affinities and requires a
  83. specific DTS for all the CPUs to be loaded.
  84. - The ``-C cluster<X>.cpu<Y>.RVBAR=@<base-address-of-bl31>`` parameter, where
  85. X and Y are the cluster and CPU numbers respectively, is used to set the
  86. reset vector for each core.
  87. - Changing the default value of ``ARM_TSP_RAM_LOCATION`` will also require
  88. changing the value of
  89. ``--data="<path-to><bl32-binary>"@<base-address-of-bl32>`` to the new value of
  90. ``BL32_BASE``.
  91. AArch32 with reset to SP_MIN entrypoint
  92. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  93. The following ``FVP_Base_AEMv8A-AEMv8A`` parameters should be used to boot Linux
  94. with 8 CPUs using the AArch32 build of TF-A.
  95. .. code:: shell
  96. <path-to>/FVP_Base_AEMv8A-AEMv8A \
  97. -C pctl.startup=0.0.0.0 \
  98. -C bp.secure_memory=1 \
  99. -C bp.tzc_400.diagnostics=1 \
  100. -C cluster0.NUM_CORES=4 \
  101. -C cluster1.NUM_CORES=4 \
  102. -C cache_state_modelled=1 \
  103. -C cluster0.cpu0.CONFIG64=0 \
  104. -C cluster0.cpu1.CONFIG64=0 \
  105. -C cluster0.cpu2.CONFIG64=0 \
  106. -C cluster0.cpu3.CONFIG64=0 \
  107. -C cluster1.cpu0.CONFIG64=0 \
  108. -C cluster1.cpu1.CONFIG64=0 \
  109. -C cluster1.cpu2.CONFIG64=0 \
  110. -C cluster1.cpu3.CONFIG64=0 \
  111. -C cluster0.cpu0.RVBAR=0x04002000 \
  112. -C cluster0.cpu1.RVBAR=0x04002000 \
  113. -C cluster0.cpu2.RVBAR=0x04002000 \
  114. -C cluster0.cpu3.RVBAR=0x04002000 \
  115. -C cluster1.cpu0.RVBAR=0x04002000 \
  116. -C cluster1.cpu1.RVBAR=0x04002000 \
  117. -C cluster1.cpu2.RVBAR=0x04002000 \
  118. -C cluster1.cpu3.RVBAR=0x04002000 \
  119. --data cluster0.cpu0="<path-to>/<bl32-binary>"@0x04002000 \
  120. --data cluster0.cpu0="<path-to>/<bl33-binary>"@0x88000000 \
  121. --data cluster0.cpu0="<path-to>/<fdt>"@0x82000000 \
  122. --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000 \
  123. --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
  124. .. note::
  125. Position Independent Executable (PIE) support is enabled in this
  126. config allowing SP_MIN to be loaded at any valid address for execution.
  127. --------------
  128. *Copyright (c) 2019-2024, Arm Limited. All rights reserved.*