1. 03 Jun, 2016 1 commit
    • Soby Mathew's avatar
      Allow dynamic overriding of ROTPK verification · 04943d33
      Soby Mathew authored
      A production ROM with TBB enabled must have the ability to boot test software
      before a real ROTPK is deployed (e.g. manufacturing mode). Previously the
      function plat_get_rotpk_info() must return a valid ROTPK for TBB to succeed.
      This patch adds an additional bit `ROTPK_NOT_DEPLOYED` in the output `flags`
      parameter from plat_get_rotpk_info(). If this bit is set, then the ROTPK
      in certificate is used without verifying against the platform value.
      
      Fixes ARM-software/tf-issues#381
      
      Change-Id: Icbbffab6bff8ed76b72431ee21337f550d8fdbbb
      04943d33
  2. 27 May, 2016 9 commits
  3. 26 May, 2016 2 commits
    • Sandrine Bailleux's avatar
      Fill exception vectors with zero bytes · 79627dc3
      Sandrine Bailleux authored
      The documentation of the GNU assembler specifies the following about
      the .align assembler directive:
       "the padding bytes are normally zero. However, on some systems, if
       the section is marked as containing code and the fill value is
       omitted, the space is filled with no-op instructions."
      (see https://sourceware.org/binutils/docs/as/Align.html)
      
      When building Trusted Firmware, the AArch64 GNU assembler uses a
      mix of zero bytes and no-op instructions as the padding bytes to
      align exception vectors.
      
      This patch mandates to use zero bytes to be stored in the padding
      bytes in the exception vectors. In the AArch64 instruction set, no
      valid instruction encodes as zero so this effectively inserts
      illegal instructions. Should this code end up being executed for
      any reason, it would crash immediately. This gives us an extra
      protection against misbehaving code at no extra cost.
      
      Change-Id: I4f2abb39d0320ca0f9d467fc5af0cb92ae297351
      79627dc3
    • Sandrine Bailleux's avatar
      Introduce some helper macros for exception vectors · e0ae9fab
      Sandrine Bailleux authored
      This patch introduces some assembler macros to simplify the
      declaration of the exception vectors. It abstracts the section
      the exception code is put into as well as the alignments
      constraints mandated by the ARMv8 architecture. For all TF images,
      the exception code has been updated to make use of these macros.
      
      This patch also updates some invalid comments in the exception
      vector code.
      
      Change-Id: I35737b8f1c8c24b6da89b0a954c8152a4096fa95
      e0ae9fab
  4. 25 May, 2016 3 commits
    • Soby Mathew's avatar
      PSCI: Add pwr_domain_pwr_down_wfi() hook in plat_psci_ops · ac1cc8eb
      Soby Mathew authored
      This patch adds a new optional platform hook `pwr_domain_pwr_down_wfi()` in
      the plat_psci_ops structure. This hook allows the platform to perform platform
      specific actions including the wfi invocation to enter powerdown. This hook
      is invoked by both psci_do_cpu_off() and psci_cpu_suspend_start() functions.
      The porting-guide.md is also updated for the same.
      
      This patch also modifies the `psci_power_down_wfi()` function to invoke
      `plat_panic_handler` incase of panic instead of the busy while loop.
      
      Fixes ARM-Software/tf-issues#375
      
      Change-Id: Iba104469a1445ee8d59fb3a6fdd0a98e7f24dfa3
      ac1cc8eb
    • Soby Mathew's avatar
      Add CCN support to FVP platform port · 71237876
      Soby Mathew authored
      This patch adds support to select CCN driver for FVP during build.
      A new build option `FVP_INTERCONNECT_DRIVER` is added to allow
      selection between the CCI and CCN driver. Currently only the CCN-502
      variant is supported on FVP.
      
      The common ARM CCN platform helper file now verifies the cluster
      count declared by platform is equal to the number of root node
      masters exported by the ARM Standard platform.
      
      Change-Id: I71d7b4785f8925ed499c153b2e9b9925fcefd57a
      71237876
    • Soby Mathew's avatar
      CCN: Add API to query the PART0 ID from CCN · 6331a31a
      Soby Mathew authored
      This patch adds the API `ccn_get_part0_id` to query the PART0 ID from the
      PERIPHERAL_ID 0 register in the CCN driver. This ID allows to distinguish
      the variant of CCN present on the system and possibly enable dynamic
      configuration of the IP based on the variant. Also added an assert in
      `ccn_master_to_rn_id_map()` to ensure that the master map bitfield provided
      by the platform is within the expected interface id.
      
      Change-Id: I92d2db7bd93a9be8a7fbe72a522cbcba0aba2d0e
      6331a31a
  5. 24 May, 2016 1 commit
  6. 20 May, 2016 6 commits
    • Antonio Nino Diaz's avatar
      Replace Rockchip delay timer by generic one · 6704f425
      Antonio Nino Diaz authored
      Use the generic delay timer instead of having a specific platform
      file for configuring it.
      
      Change-Id: Ifa68b9c97cd96ae1190cee74d22d729af95e4537
      6704f425
    • Antonio Nino Diaz's avatar
      Replace MediaTek delay timer by generic one · 1d0b990e
      Antonio Nino Diaz authored
      Use the generic delay timer instead of having a specific platform
      file for configuring it.
      
      Change-Id: If6b8f60bc04230f4b85b2bcc1b670fc65461214e
      1d0b990e
    • Antonio Nino Diaz's avatar
      Replace SP804 timer by generic delay timer on FVP · 32cd95f0
      Antonio Nino Diaz authored
      Added a build flag to select the generic delay timer on FVP instead
      of the SP804 timer. By default, the generic one will be selected. The
      user guide has been updated.
      
      Change-Id: Ica34425c6d4ed95a187b529c612f6d3b26b78bc6
      32cd95f0
    • Antonio Nino Diaz's avatar
      Implement generic delay timer · 0bcedb22
      Antonio Nino Diaz authored
      Add delay timer implementation based on the system generic counter.
      This either uses the platform's implementation of
      `plat_get_syscnt_freq()` or explicit clock multiplier/divider values
      provided by the platform.
      
      The current implementation of udelay has been modified to avoid
      unnecessary calculations while waiting on the loop and to make it
      easier to check for overflows.
      
      Change-Id: I9062e1d506dc2f68367fd9289250b93444721732
      0bcedb22
    • Antonio Nino Diaz's avatar
      Implement plat_get_syscnt_freq2 on platforms · f3d3b316
      Antonio Nino Diaz authored
      Replaced plat_get_syscnt_freq by plat_get_syscnt_freq2 on all
      upstream platforms.
      
      Change-Id: I3248f3f65a16dc5e9720012a05c35b9e3ba6abbe
      f3d3b316
    • Antonio Nino Diaz's avatar
      Add 32 bit version of plat_get_syscnt_freq · d4486391
      Antonio Nino Diaz authored
      Added plat_get_syscnt_freq2, which is a 32 bit variant of the 64 bit
      plat_get_syscnt_freq. The old one has been flagged as deprecated.
      Common code has been updated to use this new version. Porting guide
      has been updated.
      
      Change-Id: I9e913544926c418970972bfe7d81ee88b4da837e
      d4486391
  7. 12 May, 2016 3 commits
  8. 11 May, 2016 1 commit
  9. 05 May, 2016 1 commit
  10. 04 May, 2016 5 commits
  11. 28 Apr, 2016 1 commit
    • Soby Mathew's avatar
      Change the default driver to GICv3 in FVP · a8af6a4d
      Soby Mathew authored
      This patch changes the default driver for FVP platform from the deprecated
      GICv3 legacy to the GICv3 only driver. This means that the default build of
      Trusted Firmware will not be able boot Linux kernel with GICv2 FDT blob. The
      user guide is also updated to reflect this change of default GIC driver for
      FVP.
      
      Change-Id: Id6fc8c1ac16ad633dabb3cd189b690415a047764
      a8af6a4d
  12. 27 Apr, 2016 7 commits