1. 15 Jan, 2019 1 commit
  2. 04 Jan, 2019 1 commit
    • Antonio Nino Diaz's avatar
      Sanitise includes across codebase · 09d40e0e
      Antonio Nino Diaz authored
      Enforce full include path for includes. Deprecate old paths.
      
      The following folders inside include/lib have been left unchanged:
      
      - include/lib/cpus/${ARCH}
      - include/lib/el3_runtime/${ARCH}
      
      The reason for this change is that having a global namespace for
      includes isn't a good idea. It defeats one of the advantages of having
      folders and it introduces problems that are sometimes subtle (because
      you may not know the header you are actually including if there are two
      of them).
      
      For example, this patch had to be created because two headers were
      called the same way: e0ea0928 ("Fix gpio includes of mt8173 platform
      to avoid collision."). More recently, this patch has had similar
      problems: 46f9b2c3 ("drivers: add tzc380 support").
      
      This problem was introduced in commit 4ecca339
      
       ("Move include and
      source files to logical locations"). At that time, there weren't too
      many headers so it wasn't a real issue. However, time has shown that
      this creates problems.
      
      Platforms that want to preserve the way they include headers may add the
      removed paths to PLAT_INCLUDES, but this is discouraged.
      
      Change-Id: I39dc53ed98f9e297a5966e723d1936d6ccf2fc8f
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      09d40e0e
  3. 08 Nov, 2018 1 commit
    • Antonio Nino Diaz's avatar
      Standardise header guards across codebase · c3cf06f1
      Antonio Nino Diaz authored
      
      
      All identifiers, regardless of use, that start with two underscores are
      reserved. This means they can't be used in header guards.
      
      The style that this project is now to use the full name of the file in
      capital letters followed by 'H'. For example, for a file called
      "uart_example.h", the header guard is UART_EXAMPLE_H.
      
      The exceptions are files that are imported from other projects:
      
      - CryptoCell driver
      - dt-bindings folders
      - zlib headers
      
      Change-Id: I50561bf6c88b491ec440d0c8385c74650f3c106e
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      c3cf06f1
  4. 01 Nov, 2018 1 commit
  5. 26 Oct, 2018 1 commit
    • Antonio Nino Diaz's avatar
      xlat: Fix compatibility between v1 and v2 · 03987d01
      Antonio Nino Diaz authored
      
      
      There are several platforms using arm_setup_page_tables(), which is
      supposed to be Arm platform only. This creates several dependency
      problems between platforms.
      
      This patch adds the definition XLAT_TABLES_LIB_V2 to the xlat tables lib
      v2 makefile. This way it is possible to detect from C code which version
      is being used and include the correct header.
      
      The file arm_xlat_tables.h has been renamed to xlat_tables_compat.h and
      moved to a common folder. This way, when in doubt, this header can be
      used to guarantee compatibility, as it includes the correct header based
      on XLAT_TABLES_LIB_V2.
      
      This patch also removes the usage of ARM_XLAT_TABLES_V1 from QEMU (so
      that is now locked in xlat lib v2) and ZynqMP (where it was added as a
      workaround).
      
      Change-Id: Ie1e22a23b44c549603d1402a237a70d0120d3e04
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      03987d01
  6. 18 Oct, 2018 1 commit
  7. 10 Oct, 2018 1 commit
  8. 28 Sep, 2018 1 commit
  9. 04 Sep, 2018 2 commits
  10. 22 Aug, 2018 1 commit
  11. 03 Aug, 2018 1 commit
  12. 20 Jul, 2018 1 commit
  13. 31 Mar, 2018 1 commit
    • Michalis Pappas's avatar
      qemu: don't use C functions for the crash console callbacks · 0e24ea81
      Michalis Pappas authored
      
      
      Use the console_pl011_core_* functions directly in the crash console
      callbacks.
      
      This bypasses the MULTI_CONSOLE_API for the crash console (UART1), but
      allows using the crash console before the C runtime has been initialized
      (eg to call ASM_ASSERT). This retains backwards compatibility with respect
      to functionality when the old API is used.
      
      Use the MULTI_CONSOLE_API to register UART0 as the boot and runtime
      console.
      
      Fixes ARM-software/tf-issues#572
      Signed-off-by: default avatarMichalis Pappas <mpappas@fastmail.fm>
      0e24ea81
  14. 26 Mar, 2018 1 commit
  15. 24 Mar, 2018 1 commit
  16. 22 Mar, 2018 1 commit
  17. 20 Mar, 2018 1 commit
    • Michalis Pappas's avatar
      qemu: Add support for stack canary protection · f68d22e8
      Michalis Pappas authored
      
      
      Allow qemu users to enable stack protection. Since the virt platform
      does not provide an RNG, use a basic, timer-based, canary generation,
      similarly to FVP.
      
      Increase SRAM size and BL2 size to fit images when stack protection is
      enabled.
      
      Notice that stack protection is not enabled by default in qemu.
      
      Fixes ARM-software/tf-issues#568
      Signed-off-by: default avatarMichalis Pappas <mpappas@fastmail.fm>
      f68d22e8
  18. 04 Mar, 2018 1 commit
  19. 28 Feb, 2018 1 commit
    • Michalis Pappas's avatar
      qemu: Support SEPARATE_CODE_AND_RODATA · 27e0ccab
      Michalis Pappas authored
      
      
      Update qemu_configure_mmu_##_el to add an additional region for code,
      marked as MT_CODE | MT_SECURE. Update ro region attributes to NON_EXEC.
      
      Update calls to QEMU_CONFIGURE_BLx_MMU() to pass an additional region for
      code. Update calls to pass regions defined in common_def.h.
      
      Increase MAX_MMAP_REGIONS to 10.
      
      Enable SEPARATE_CODE_AND_RODATA by default on QEMU builds.
      
      Fixes ARM-software/tf-issues#558
      Signed-off-by: default avatarMichalis Pappas <mpappas@fastmail.fm>
      27e0ccab
  20. 27 Feb, 2018 1 commit
  21. 09 Feb, 2018 1 commit
    • Santeri Salko's avatar
      qemu: Fix interrupt type check · 53a98be3
      Santeri Salko authored
      
      
      Function plat_ic_get_pending_interrupt_type() should return interrupt
      type, not id. The function is used in aarch64 exception handling and
      currently the irq/fiq forwarding fails if a secure interrupt happens while
      running normal world.
      
      The qemu-specific gic file does not contain any extra functionality so it
      can be removed and common file can be used instead.
      
      fixes arm-software/tf-issues#546
      Signed-off-by: default avatarSanteri Salko <santeri.salko@gmail.com>
      53a98be3
  22. 05 Feb, 2018 1 commit
    • Etienne Carriere's avatar
      qemu: support ARMv7/Cortex-A15 · 765ed9fc
      Etienne Carriere authored
      
      
      Define Qemu AArch32 implementation for some platform functions
      (core position, secondary boot cores, crash console). These are
      derived from the AArch64 implementation.
      
      BL31 on Qemu is needed only for ARMv8 and later. On ARMv7, BL32 is
      the first executable image after BL2.
      
      Support SP_MIN and OP-TEE as BL32: create a sp_min make script target
      in Qemu, define mapping for IMAGE_BL32
      
      Minor fix Qemu return value type for plat_get_ns_image_entrypoint().
      
      Qemu model for the Cortex-A15 does not support the virtualization
      extension although the core expects it. To overcome the issue, Qemu
      ARMv7 configuration set ARCH_SUPPORTS_VIRTUALIZATION to 0.
      
      Add missing AArch32 assembly macro arm_print_gic_regs from ARM platform
      used by the Qemu platform.
      
      Qemu Cortex-A15 model integrates a single cluster with up to 4 cores.
      
      Change-Id: I65b44399071d6f5aa40d5183be11422b9ee9ca15
      Signed-off-by: default avatarEtienne Carriere <etienne.carriere@linaro.org>
      765ed9fc
  23. 01 Feb, 2018 2 commits
  24. 30 Nov, 2017 1 commit
    • David Cunado's avatar
      Do not enable SVE on pre-v8.2 platforms · 3872fc2d
      David Cunado authored
      
      
      Pre-v8.2 platforms such as the Juno platform does not have
      the Scalable Vector Extensions implemented and so the build
      option ENABLE_SVE is set to zero.
      
      This has a minor performance improvement with no functional
      impact.
      
      Change-Id: Ib072735db7a0247406f8b60e325b7e28b1e04ad1
      Signed-off-by: default avatarDavid Cunado <david.cunado@arm.com>
      3872fc2d
  25. 02 Nov, 2017 1 commit
  26. 26 Oct, 2017 1 commit
  27. 25 Oct, 2017 1 commit
  28. 24 Oct, 2017 1 commit
    • Etienne Carriere's avatar
      qemu: fix holding pen mailbox sequence · 33dd33f8
      Etienne Carriere authored
      
      
      Before this change, plat_secondary_cold_boot_setup reads wake up mailbox
      as a byte array but through 64bit accesses on unaligned 64bit addresses.
      In the other hand qemu_pwr_domain_on wakes secondary cores by writing
      into a 64bit array.
      
      This change forces the 64bit mailbox format as PLAT_QEMU_HOLD_ENTRY_SIZE
      explicitly specifies it.
      Signed-off-by: default avatarEtienne Carriere <etienne.carriere@linaro.org>
      33dd33f8
  29. 24 Aug, 2017 3 commits
  30. 16 Aug, 2017 1 commit
    • Fu Wei's avatar
      qemu: Add LOAD_IMAGE_V2 support · 64b31125
      Fu Wei authored
      
      
      The generic LOAD_IMAGE_V2 framework has been merged and enable for almost
      all the arm platform. Because qemu platform doesn't share those common
      files with arm, QEMU haven't got this support yet.
      
      This patch add all the necessary code the files for adding LOAD_IMAGE_V2
      support on QEMU and enable it as default.
      
      Fixes ARM-software/tf-issues#507
      Signed-off-by: default avatarFu Wei <fu.wei@linaro.org>
      64b31125
  31. 31 Jul, 2017 1 commit
    • Fu Wei's avatar
      qemu: use translation tables library v2 as default. · dd923601
      Fu Wei authored
      
      
      Almost all the arm platform has switch to translation tables library v2 as
      default. Because qemu platform doesn't use arm_common.mk like other arm
      platforms, QEMU haven't switched to v2 yet.
      
      This patch adds all the necessary code for adding translation tables
      library v2 support on QEMU and use it as default.
      
      Fixes ARM-software/tf-issues#508
      Signed-off-by: default avatarFu Wei <fu.wei@linaro.org>
      dd923601
  32. 14 Jul, 2017 1 commit
  33. 03 May, 2017 1 commit
  34. 02 May, 2017 1 commit
  35. 20 Mar, 2017 1 commit
  36. 06 Feb, 2017 1 commit
    • Douglas Raillard's avatar
      Replace some memset call by zeromem · 32f0d3c6
      Douglas Raillard authored
      
      
      Replace all use of memset by zeromem when zeroing moderately-sized
      structure by applying the following transformation:
      memset(x, 0, sizeof(x)) => zeromem(x, sizeof(x))
      
      As the Trusted Firmware is compiled with -ffreestanding, it forbids the
      compiler from using __builtin_memset and forces it to generate calls to
      the slow memset implementation. Zeromem is a near drop in replacement
      for this use case, with a more efficient implementation on both AArch32
      and AArch64.
      
      Change-Id: Ia7f3a90e888b96d056881be09f0b4d65b41aa79e
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      32f0d3c6