1. 17 Apr, 2015 1 commit
  2. 13 Apr, 2015 7 commits
    • danh-arm's avatar
      Merge pull request #289 from danh-arm/vw/tlkd-args-via-cpu-regs-v4 · da85170d
      danh-arm authored
      Pass arguments/results between EL3/S-EL1 via CPU registers (x0-x7) v4
      da85170d
    • danh-arm's avatar
      Merge pull request #288 from danh-arm/sb/remove-arch-makefile · 620b5be9
      danh-arm authored
      Remove the ARCH build configuration from the Makefile v2
      620b5be9
    • danh-arm's avatar
      Merge pull request #287 from danh-arm/sb/bl2-loading-errors · 9f64f7a4
      danh-arm authored
      Panic if platform specific BL3-0 handling fails v2
      9f64f7a4
    • Soby Mathew's avatar
      Fix recursive crash prints on FVP AEM model · 6fa11a5e
      Soby Mathew authored
      This patch fixes an issue in the cpu specific register reporting
      of FVP AEM model whereby crash reporting itself triggers an exception
      thus resulting in recursive crash prints. The input to the
      'size_controlled_print' in the crash reporting framework should
      be a NULL terminated string. As there were no cpu specific register
      to be reported on FVP AEM model, the issue was caused by passing 0
      instead of NULL terminated string to the above mentioned function.
      
      Change-Id: I664427b22b89977b389175dfde84c815f02c705a
      6fa11a5e
    • Varun Wadekar's avatar
      Pass arguments/results between EL3/S-EL1 via CPU registers (x0-x7) · 709a3c47
      Varun Wadekar authored
      
      
      This patch removes the need for a shared buffer between the EL3 and S-EL1
      levels. We now use the CPU registers, x0-x7, while passing data between
      the two levels. Since TLK is a 32-bit Trusted OS, tlkd has to unpack the
      arguments in the x0-x7 registers. TLK in turn gets these values via r0-r7.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      709a3c47
    • Sandrine Bailleux's avatar
      Remove the ARCH build configuration from the Makefile · d0687b26
      Sandrine Bailleux authored
      The ARCH variable, which defaults to 'aarch64', gives the wrong
      impression that the Trusted Firmware can be built for other
      architectures. This patch removes it. This doesn't have any
      consequence on the rest of the build system because the variable
      was unused.
      
      Change-Id: I97130f11f7733a3cbdfc89989587f2ebecaf3294
      d0687b26
    • Sandrine Bailleux's avatar
      Panic if platform specific BL3-0 handling fails · bcb79b90
      Sandrine Bailleux authored
      The return value of bl2_plat_handle_bl30() used to be ignored.
      This patch modifies the function load_bl30() so that it now
      checks this return value and returns it to bl2_main().
      
      This patch also unifies the error handling code across the
      load_blx() functions so that they return a status code in all
      cases and bl2_main() has the sole responsibility of panicking
      if appropriate.
      
      Change-Id: I2b26cdf65afa443b48c7da1fa7da8db956071bfb
      bcb79b90
  3. 09 Apr, 2015 1 commit
  4. 08 Apr, 2015 1 commit
    • Kévin Petit's avatar
      Add support to indicate size and end of assembly functions · 8b779620
      Kévin Petit authored
      
      
      In order for the symbol table in the ELF file to contain the size of
      functions written in assembly, it is necessary to report it to the
      assembler using the .size directive.
      
      To fulfil the above requirements, this patch introduces an 'endfunc'
      macro which contains the .endfunc and .size directives. It also adds
      a .func directive to the 'func' assembler macro.
      
      The .func/.endfunc have been used so the assembler can fail if
      endfunc is omitted.
      
      Fixes ARM-Software/tf-issues#295
      
      Change-Id: If8cb331b03d7f38fe7e3694d4de26f1075b278fc
      Signed-off-by: default avatarKévin Petit <kevin.petit@arm.com>
      8b779620
  5. 01 Apr, 2015 3 commits
  6. 31 Mar, 2015 6 commits
  7. 27 Mar, 2015 2 commits
    • Soby Mathew's avatar
      Remove the `owner` field in bakery_lock_t data structure · 548579f5
      Soby Mathew authored
      This patch removes the `owner` field in bakery_lock_t structure which
      is the data structure used in the bakery lock implementation that uses
      coherent memory. The assertions to protect against recursive lock
      acquisition were based on the 'owner' field. They are now done based
      on the bakery lock ticket number. These assertions are also added
      to the bakery lock implementation that uses normal memory as well.
      
      Change-Id: If4850a00dffd3977e218c0f0a8d145808f36b470
      548579f5
    • Soby Mathew's avatar
      Optimize the bakery lock structure for coherent memory · 1c9573a1
      Soby Mathew authored
      This patch optimizes the data structure used with the bakery lock
      implementation for coherent memory to save memory and minimize memory
      accesses. These optimizations were already part of the bakery lock
      implementation for normal memory and this patch now implements
      it for the coherent memory implementation as well. Also
      included in the patch is a cleanup to use the do-while loop while
      waiting for other contenders to finish choosing their tickets.
      
      Change-Id: Iedb305473133dc8f12126726d8329b67888b70f1
      1c9573a1
  8. 26 Mar, 2015 3 commits
  9. 24 Mar, 2015 1 commit
    • Sandrine Bailleux's avatar
      Add support for Juno r1 in the platform reset handler · 9454d316
      Sandrine Bailleux authored
      For Juno r0, the platform reset handler needs to:
       - Implement the workaround for defect #831273
       - Increase the L2 Data and Tag RAM latencies for Cortex-A57.
      
      Defect #831273 does not affect Juno r1. Also, the default value
      for the L2 Tag RAM latency for Cortex-A57 is suitable on Juno r1.
      The L2 Data RAM latency for Cortex-A57 still needs to be
      increased, though.
      
      This patch modifies the Juno platform reset handler to detect
      the board revision and skip the unnecessary steps on Juno r1.
      The behaviour on Juno r0 is unchanged.
      
      Change-Id: I27542917223e680ef923ee860900806ffcd0357b
      9454d316
  10. 20 Mar, 2015 1 commit
    • Achin Gupta's avatar
      Set group status of PPIs and SGIs correctly on GICv3 systems · 8cfc3fd2
      Achin Gupta authored
      On a GICv2 system, the group status of PPIs and SGIs is set in the GICD_IGROUPR0
      register. On a GICv3 system, if affinity routing is enabled for the non-secure
      state, then the group status of PPIs and SGIs should be set in the GICR_IGROUPR0
      register. ARM Trusted firmware sets the group status using the GICv2
      sequence. On a GICv3 system, if the group status of an interrupt is set to Group
      1 through a write to the GICD_IGROUPR0, then the GICR_IGROUPR0 is updated as
      well.
      
      The current sequence is incorrect since it first marks all PPIs and SGIs as
      Group 1. It then clears the bits in GICD_IGROUPR0 corresponding to secure
      interrupts to set their group status to Group 0. This operation is a no-op. It
      leaves the secure generic timer interrupt (#29) used by the TSP marked as Group
      1. This causes the interrupt to interfere with the execution of non-secure
      software. Once an interrupt has been marked as Group 1, the GICR_IGROUPR0 should
      be programmed to change its group status.
      
      This patch rectifies this issue by setting the group status of only the
      non-secure PPI and SGIs to Group 1 in the first place. GICD_IGROUPR0 resets to
      0. So secure interrupts are marked as Group 0 by default.
      
      Change-Id: I958b4b15f3e2b2444ce4c17764def36216498d00
      8cfc3fd2
  11. 19 Mar, 2015 1 commit
  12. 18 Mar, 2015 1 commit
  13. 17 Mar, 2015 8 commits
  14. 16 Mar, 2015 3 commits
    • Vikram Kanigiri's avatar
      Use ARM CCI driver on FVP and Juno platforms · 4991ecdc
      Vikram Kanigiri authored
      This patch updates the FVP and Juno platform ports to use the common
      driver for ARM Cache Coherent Interconnects.
      
      Change-Id: Ib142f456b9b673600592616a2ec99e9b230d6542
      4991ecdc
    • Vikram Kanigiri's avatar
      Common driver for ARM Cache Coherent Interconnects · 23e47ede
      Vikram Kanigiri authored
      Even though both CCI-400 and CCI-500 IPs have different configurations
      with respect to the number and types of supported interfaces, their
      register offsets and programming sequences are similar. This patch
      creates a common driver for enabling and disabling snoop transactions
      and DVMs with both the IPs.
      
      New platform ports which implement one of these IPs should use this
      common driver. Existing platform ports which implement CCI-400 should
      migrate to the common driver as the standalone CCI-400 will be
      deprecated in the future.
      
      Change-Id: I3ccd0eb7b062922d2e4a374ff8c21e79fa357556
      23e47ede
    • Vikram Kanigiri's avatar
      Add macro to calculate number of elements in an array · a7e98ad5
      Vikram Kanigiri authored
      This patch defines the ARRAY_SIZE macro for calculating number of elements
      in an array and uses it where appropriate.
      
      Change-Id: I72746a9229f0b259323972b498b9a3999731bc9b
      a7e98ad5
  15. 13 Mar, 2015 1 commit
    • Vikram Kanigiri's avatar
      Initialise cpu ops after enabling data cache · 12e7c4ab
      Vikram Kanigiri authored
      The cpu-ops pointer was initialized before enabling the data cache in the cold
      and warm boot paths. This required a DCIVAC cache maintenance operation to
      invalidate any stale cache lines resident in other cpus.
      
      This patch moves this initialization to the bl31_arch_setup() function
      which is always called after the data cache and MMU has been enabled.
      
      This change removes the need:
       1. for the DCIVAC cache maintenance operation.
       2. to initialise the CPU ops upon resumption from a PSCI CPU_SUSPEND
          call since memory contents are always preserved in this case.
      
      Change-Id: Ibb2fa2f7460d1a1f1e721242025e382734c204c6
      12e7c4ab