1. 16 Feb, 2017 2 commits
  2. 14 Feb, 2017 1 commit
  3. 13 Feb, 2017 6 commits
    • davidcunado-arm's avatar
      Merge pull request #828 from masahir0y/fiptool · 27e16d85
      davidcunado-arm authored
      Fiptool cleanup
      27e16d85
    • David Cunado's avatar
      Migrate to Linaro Release 16.12 · e361cf3b
      David Cunado authored
      
      
      This Linaro release updates both the binaries and the toolchain:
      Linaro binaries upgraded 16.06 --> 16.12
      AArch64 compiler upgraded 15.05 (gcc 4.9) --> 5.3-2015.05 (gcc 5.3)
      AArch32 compiler upgraded 15.05 (gcc 4.9) --> 5.3-2015.05 (gcc 5.3)
      
      The ARM TF codebase has been tested against these new binaries. This patch
      updates the User Guide to reflect that the 16.12 release is now a supported
      Linaro Release.
      
      Change-Id: I6247e820f591df7d05df4f622ee45a3abf2c2d72
      Signed-off-by: default avatarDavid Cunado <david.cunado@arm.com>
      e361cf3b
    • davidcunado-arm's avatar
      Merge pull request #826 from dp-arm/dp/psci-stat-abstraction · fd6d90d8
      davidcunado-arm authored
      Decouple PSCI stat residency calculation from PMF
      fd6d90d8
    • dp-arm's avatar
      PSCI: Do stat accounting for retention/standby states · e5bbd16a
      dp-arm authored
      
      
      Perform stat accounting for retention/standby states also when
      requested at multiple power levels.
      
      Change-Id: I2c495ea7cdff8619bde323fb641cd84408eb5762
      Signed-off-by: default avatardp-arm <dimitris.papastamos@arm.com>
      e5bbd16a
    • dp-arm's avatar
      PSCI: Decouple PSCI stat residency calculation from PMF · 04c1db1e
      dp-arm authored
      
      
      This patch introduces the following three platform interfaces:
      
      * void plat_psci_stat_accounting_start(const psci_power_state_t *state_info)
      
        This is an optional hook that platforms can implement in order
        to perform accounting before entering a low power state.  This
        typically involves capturing a timestamp.
      
      * void plat_psci_stat_accounting_stop(const psci_power_state_t *state_info)
      
        This is an optional hook that platforms can implement in order
        to perform accounting after exiting from a low power state.  This
        typically involves capturing a timestamp.
      
      * u_register_t plat_psci_stat_get_residency(unsigned int lvl,
      	const psci_power_state_t *state_info,
      	unsigned int last_cpu_index)
      
        This is an optional hook that platforms can implement in order
        to calculate the PSCI stat residency.
      
      If any of these interfaces are overridden by the platform, it is
      recommended that all of them are.
      
      By default `ENABLE_PSCI_STAT` is disabled.  If `ENABLE_PSCI_STAT`
      is set but `ENABLE_PMF` is not set then an alternative PSCI stat
      collection backend must be provided.  If both are set, then default
      weak definitions of these functions are provided, using PMF to
      calculate the residency.
      
      NOTE: Previously, platforms did not have to explicitly set
      `ENABLE_PMF` since this was automatically done by the top-level
      Makefile.
      
      Change-Id: I17b47804dea68c77bc284df15ee1ccd66bc4b79b
      Signed-off-by: default avatardp-arm <dimitris.papastamos@arm.com>
      04c1db1e
    • davidcunado-arm's avatar
      Merge pull request #836 from davidcunado-arm/dc/update_userguide · 4d07e782
      davidcunado-arm authored
      Update AEM and Cortex Models versions
      4d07e782
  4. 11 Feb, 2017 6 commits
  5. 10 Feb, 2017 1 commit
    • David Cunado's avatar
      Update AEM and Cortex Models versions · dbd1ab8e
      David Cunado authored
      
      
      AEMv8-A Model release v8.2 has been made available and Trusted Firmware
      has been tested against these versions as part of its CI system. This
      patch updates the user guide documentation to reflect the version of AEM
      and Cortex Models that Trusted Firmware has been tested against.
      
      Also, the Linaro Release Notes link was broken and this patch updates the
      link.
      
      Change-Id: I88729cef909a69fff629036f480fd6168ad7dc9a
      Signed-off-by: default avatarDavid Cunado <david.cunado@arm.com>
      dbd1ab8e
  6. 07 Feb, 2017 1 commit
  7. 06 Feb, 2017 3 commits
  8. 03 Feb, 2017 2 commits
    • Masahiro Yamada's avatar
      gitignore: ignore GNU GLOBAL tag files · a53fe692
      Masahiro Yamada authored
      GNU GLOBAL (https://www.gnu.org/software/global/
      
      ) is source code
      tagging system.  It creates 4 tag files (GTAGS, GRTAGS, GSYMS and
      GPATH) for the symbol cross-reference.  Ignore them.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      a53fe692
    • Masahiro Yamada's avatar
      Makefile: use git describe for BUILD_STRING · bee71c7a
      Masahiro Yamada authored
      Currently, the BUILD_STRING is just 7-digits git hash.  It is true
      we can identify which version is running, but we can not get a quick
      idea about how new or old it is.
      
      The command "git describe" provides us a bit more useful information
      in the format of:
        (tag-name)-(number of commits on top the tag)-g(7 digits hash)
      
      I added some options:
        --always
          Make "git describe" work without any tag in case the upstream
          ATF is cloned, but all the tags are locally dropped.
      
        --tags
          Use any tag instead of only annotated tags.  In ATF, only some
          tags are annotated, actually the last annotated tag is "v0.2",
          whereas we are on "v1.3" tag now.  This option is needed to get
          something like v1.3-233-gbcc2bf09 instead of v0.2-1713-gbcc2bf09.
      
        --dirty
          The mark "-dirty" is appended if the source tree is locally
          modified.
      
      With this commit, the welcome string
      
        NOTICE:  BL1: v1.3(debug):bcc2bf09
      
      will become like follows:
      
        NOTICE:  BL1: v1.3(debug):v1.3-233-gbcc2bf09
      
      -dirty
      
      While we are here, let's add "2> /dev/null" as well to silently
      ignore any error message from git.  We should not assume that users
      always work in a git repository; the ATF might be released in a
      tarball form instead of a git repository.  In such a case, the git
      command will fail, then the ugly message "fatal: Not a git ..." will
      be displayed during the build:
      
      $ make CROSS_COMPILE=aarch64-linux-gnu-
      fatal: Not a git repository (or any of the parent directories): .git
      Building fvp
        CC      drivers/io/io_semihosting.c
        CC      lib/semihosting/semihosting.c
           ...
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      bee71c7a
  9. 02 Feb, 2017 1 commit
    • dp-arm's avatar
      PMF: Fixup PMF constants · 888037e5
      dp-arm authored
      
      
      `PMF_ARM_TIF_IMPL_ID` should be set to 0x41.  The code already left
      shifts it by 24 bit positions so this was overflowing.
      
      This fixes a build error with GCC 6.2 when
      `ENABLE_RUNTIME_INSTRUMENTATION` is set.
      
      Change-Id: I4c99d48ea7ce3d76e9edd1325b1979994db2c0fb
      Signed-off-by: default avatardp-arm <dimitris.papastamos@arm.com>
      888037e5
  10. 31 Jan, 2017 7 commits
  11. 30 Jan, 2017 3 commits
    • Jeenu Viswambharan's avatar
      Report errata workaround status to console · 10bcd761
      Jeenu Viswambharan authored
      
      
      The errata reporting policy is as follows:
      
        - If an errata workaround is enabled:
      
          - If it applies (i.e. the CPU is affected by the errata), an INFO
            message is printed, confirming that the errata workaround has been
            applied.
      
          - If it does not apply, a VERBOSE message is printed, confirming
            that the errata workaround has been skipped.
      
        - If an errata workaround is not enabled, but would have applied had
          it been, a WARN message is printed, alerting that errata workaround
          is missing.
      
      The CPU errata messages are printed by both BL1 (primary CPU only) and
      runtime firmware on debug builds, once for each CPU/errata combination.
      
      Relevant output from Juno r1 console when ARM Trusted Firmware is built
      with PLAT=juno LOG_LEVEL=50 DEBUG=1:
      
        VERBOSE: BL1: cortex_a57: errata workaround for 806969 was not applied
        VERBOSE: BL1: cortex_a57: errata workaround for 813420 was not applied
        INFO:    BL1: cortex_a57: errata workaround for disable_ldnp_overread was applied
        WARNING: BL1: cortex_a57: errata workaround for 826974 was missing!
        WARNING: BL1: cortex_a57: errata workaround for 826977 was missing!
        WARNING: BL1: cortex_a57: errata workaround for 828024 was missing!
        WARNING: BL1: cortex_a57: errata workaround for 829520 was missing!
        WARNING: BL1: cortex_a57: errata workaround for 833471 was missing!
        ...
        VERBOSE: BL31: cortex_a57: errata workaround for 806969 was not applied
        VERBOSE: BL31: cortex_a57: errata workaround for 813420 was not applied
        INFO:    BL31: cortex_a57: errata workaround for disable_ldnp_overread was applied
        WARNING: BL31: cortex_a57: errata workaround for 826974 was missing!
        WARNING: BL31: cortex_a57: errata workaround for 826977 was missing!
        WARNING: BL31: cortex_a57: errata workaround for 828024 was missing!
        WARNING: BL31: cortex_a57: errata workaround for 829520 was missing!
        WARNING: BL31: cortex_a57: errata workaround for 833471 was missing!
        ...
        VERBOSE: BL31: cortex_a53: errata workaround for 826319 was not applied
        INFO:    BL31: cortex_a53: errata workaround for disable_non_temporal_hint was applied
      
      Also update documentation.
      
      Change-Id: Iccf059d3348adb876ca121cdf5207bdbbacf2aba
      Signed-off-by: default avatarJeenu Viswambharan <jeenu.viswambharan@arm.com>
      10bcd761
    • Jeenu Viswambharan's avatar
      Allow spin locks to be defined from assembly · b38bc68b
      Jeenu Viswambharan authored
      
      
      At present, spin locks can only defined from C files. Add some macros
      such that they can be defined from assembly files too.
      
      Change-Id: I64f0c214062f5c15b3c8b412c7f25c908e87d970
      Signed-off-by: default avatarJeenu Viswambharan <jeenu.viswambharan@arm.com>
      b38bc68b
    • Douglas Raillard's avatar
      Add -fno-builtin to CFLAGS · e507f8e7
      Douglas Raillard authored
      
      
      Disable the automatic substitution of functions with builtins. The
      existing -ffreestanding option should already do this but explicitly
      adding -fno-builtin reduces the risk of compiler variation. With this
      option, GCC is not supposed to be able to make assumptions on what the
      function does, which could otherwise lead to security-sensitive code
      removal.
      
      This can lead to potentially less efficient code but improves
      predictability of what code is actually compiled into the binary.
      
      Change-Id: I06ad151c61318bd1b00d84976f051d2d94314acc
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      e507f8e7
  12. 28 Jan, 2017 2 commits
    • Masahiro Yamada's avatar
      fiptool: support --align option to add desired alignment to image offset · 1c75d5df
      Masahiro Yamada authored
      
      
      The current fiptool packs all the images without any padding between
      them.  So, the offset to each image has no alignment.  This is not
      efficient, for example, when the FIP is read from a block-oriented
      device.
      
      For example, (e)MMC is accessed by block-addressing.  The block size
      is 512 byte.  So, the best case is each image is aligned by 512 byte
      since the DMA engine can transfer the whole of the image to its load
      address directly.  The worst case is the offset does not have even
      DMA-capable alignment (this is where we stand now).  In this case,
      we need to transfer every block to a bounce buffer, then do memcpy()
      from the bounce buffer to our final destination.  At least, this
      should work with the abstraction by the block I/O layer, but the
      CPU-intervention for the whole data transfer makes it really slow.
      
      This commit adds a new option --align to the fiptool.  This option,
      if given, requests the tool to align each component in the FIP file
      by the specified byte.  Also, add a new Make option FIP_ALIGN for
      easier access to this feature; users can give something like
      FIP_ALIGN=512 from the command line, or add "FIP_ALIGN := 512" to
      their platform.mk file.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      1c75d5df
    • Masahiro Yamada's avatar
      fiptool: embed fip_toc_entry in struct image · 65caa3d0
      Masahiro Yamada authored
      
      
      The struct image has "uuid" and "size" to memorize the field values
      they had in the TOC entry.  So, parse_fip() copies them from struct
      fip_toc_entry to struct image, then pack_images() copies them back
      to struct fip_toc_entry.
      
      The next commit (support --align option) will require to save the
      "offset" field as well.  This makes me realize that struct image
      can embed struct fip_toc_entry.
      
      This commit will allow the "flags" field to persevere the "update"
      command.  At this moment, the "flags" is not used in a useful way.
      (Yet, platforms can save their own parameters in the flags field.)
      It makes sense to save it unless users explicitly replace the image.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      65caa3d0
  13. 27 Jan, 2017 5 commits