1. 03 Jun, 2014 1 commit
    • Dan Handley's avatar
      User guide updates for v0.4 release · 5e831e69
      Dan Handley authored
      Update the Linux kernel, Linaro file system, FVP and DS-5 versions used for the
      v0.4 release in user-guide.md.
      
      Change-Id: I2265fc17c229d4b8cc52165d6583a4a579cdcee3
      5e831e69
  2. 29 May, 2014 6 commits
  3. 28 May, 2014 1 commit
    • Vikram Kanigiri's avatar
      Pass the args to the BL3-3 entrypoint · f05cb4a7
      Vikram Kanigiri authored
      At present the arguments for BL3-3 in the entry_point_info
      structure are not being transferred to X0-X7 before starting
      execution of this image
      
      This patch saves the args for BL3-3 into cpu context used
      for its entry
      
      Fixes ARM-software/tf-issues#172
      
      Change-Id: I001b4b9bff6a264336f0d01d377619ae719f928b
      f05cb4a7
  4. 27 May, 2014 5 commits
  5. 23 May, 2014 21 commits
    • Dan Handley's avatar
      Add enable mmu platform porting interfaces · dff8e47a
      Dan Handley authored
      Previously, the enable_mmu_elX() functions were implicitly part of
      the platform porting layer since they were included by generic
      code. These functions have been placed behind 2 new platform
      functions, bl31_plat_enable_mmu() and bl32_plat_enable_mmu().
      These are weakly defined so that they can be optionally overridden
      by platform ports.
      
      Also, the enable_mmu_elX() functions have been moved to
      lib/aarch64/xlat_tables.c for optional re-use by platform ports.
      These functions are tightly coupled with the translation table
      initialization code.
      
      Fixes ARM-software/tf-issues#152
      
      Change-Id: I0a2251ce76acfa3c27541f832a9efaa49135cc1c
      dff8e47a
    • Dan Handley's avatar
      Rename FVP specific files and functions · 17a387ad
      Dan Handley authored
      FVP specific files and functions containing the word "plat" have been
      renamed to use the word "fvp" to distinguish them from the common
      platform functionality and porting functions.
      
      Change-Id: I39f9673dab3ee9c74bd18b3e62b7c21027232f7d
      17a387ad
    • Dan Handley's avatar
      Move BL porting functions into platform.h · dec5e0d1
      Dan Handley authored
      Some platform porting functions were in BL specific header files.
      These have been moved to platform.h so that all porting functions
      are in the same place. The functions are now grouped by BL.
      Obsolete BL headers files have been removed.
      
      Also, the weak declaration of the init_bl2_mem_layout() function
      has been moved out the header file and into the source file
      (bl_common.c) using the more succinct #pragma syntax. This
      mitigates the risk of 2 weak definitions being created and the
      wrong one being picked up by the compiler.
      
      Change-Id: Ib19934939fd755f3e5a5a5bceec88da684308a83
      dec5e0d1
    • Dan Handley's avatar
      Split platform.h into separate headers · 5f0cdb05
      Dan Handley authored
      Previously, platform.h contained many declarations and definitions
      used for different purposes. This file has been split so that:
      
      * Platform definitions used by common code that must be defined
        by the platform are now in platform_def.h. The exact include
        path is exported through $PLAT_INCLUDES in the platform makefile.
      
      * Platform definitions specific to the FVP platform are now in
        /plat/fvp/fvp_def.h.
      
      * Platform API declarations specific to the FVP platform are now
        in /plat/fvp/fvp_private.h.
      
      * The remaining platform API declarations that must be ported by
        each platform are still in platform.h but this file has been
        moved to /include/plat/common since this can be shared by all
        platforms.
      
      Change-Id: Ieb3bb22fbab3ee8027413c6b39a783534aee474a
      5f0cdb05
    • Dan Handley's avatar
      Remove unused data declarations · 7a9a5f2d
      Dan Handley authored
      Some data variables were declared but not used. These have been
      removed.
      
      Change-Id: I038632af3c32d88984cd25b886c43ff763269bf9
      7a9a5f2d
    • Dan Handley's avatar
      Remove extern keyword from function declarations · c6bc0710
      Dan Handley authored
      Function declarations implicitly have external linkage so do not
      need the extern keyword.
      
      Change-Id: Ia0549786796d8bf5956487e8996450a0b3d79f32
      c6bc0710
    • Andrew Thoelke's avatar
    • Sandrine Bailleux's avatar
      doc: Update information about the memory layout · 638363eb
      Sandrine Bailleux authored
      Rework the "Memory layout on FVP platforms" section in the Firmware
      Design document. Add information about where the TSP image fits
      in the memory layout when present.
      
      Add documentation for the base addresses of each bootloader image
      in the porting guide.
      
      Change-Id: I4afb2605e008a1cb28c44a697804f2cb6bb4c9aa
      638363eb
    • Sandrine Bailleux's avatar
      Make the memory layout more flexible · a37255a2
      Sandrine Bailleux authored
      Currently the platform code gets to define the base address of each
      boot loader image. However, the linker scripts couteract this
      flexibility by enforcing a fixed overall layout of the different
      images. For example, they require that the BL3-1 image sits below
      the BL2 image. Choosing BL3-1 and BL2 base addresses in such a way
      that it violates this constraint makes the build fail at link-time.
      
      This patch requires the platform code to now define a limit address
      for each image. The linker scripts check that the image fits within
      these bounds so they don't rely anymore on the position of a given
      image in regard to the others.
      
      Fixes ARM-software/tf-issues#163
      
      Change-Id: I8c108646825da19a6a8dfb091b613e1dd4ae133c
      a37255a2
    • Sandrine Bailleux's avatar
      Make BL1 RO and RW base addresses configurable · 4f59d835
      Sandrine Bailleux authored
      BL1 RO and RW base address used to be fixed, respectively to the first
      address of the Trusted ROM and the first address of the Trusted RAM.
      
      Introduce new platform defines to configure the BL1 RO and RW base
      addresses.
      
      Change-Id: If26616513a47798593a4bb845a4b0fb37c867cd6
      4f59d835
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
    • Andrew Thoelke's avatar
      Limit BL3-1 read/write access to SRAM · 445fe84f
      Andrew Thoelke authored
      At present BL3-1 has access to all of the SRAM, including
      regions that are mapped as read-only and non-cacheable by other
      firmware images.
      
      This patch restricts BL3-1 to only be able to read/write from
      memory used for its own data sections
      
      Change-Id: I26cda1b9ba803d91a9eacda768f3ce7032c6db94
      
      Conflicts:
      
      	plat/fvp/bl31_plat_setup.c
      445fe84f
    • Andrew Thoelke's avatar
      Use a vector table for TSP entrypoints · 399fb08f
      Andrew Thoelke authored
      The TSP has a number of entrypoints used by the TSP on different
      occasions. These were provided to the TSPD as a table of function
      pointers, and required the TSPD to read the entry in the table,
      which is in TSP memory, in order to program the exception return
      address.
      
      Ideally, the TSPD has no access to the TSP memory.
      
      This patch changes the table of function pointers into a vector
      table of single instruction entrypoints. This allows the TSPD to
      calculate the entrypoint address instead of read it.
      
      Fixes ARM-software/tf-issues#160
      
      Change-Id: Iec6e055d537ade78a45799fbc6f43765a4725ad3
      399fb08f
    • Soby Mathew's avatar
      Non-Secure Interrupt support during Standard SMC processing in TSP · 239b04fa
      Soby Mathew authored
      Implements support for Non Secure Interrupts preempting the
      Standard SMC call in EL1. Whenever an IRQ is trapped in the
      Secure world we securely handover to the Normal world
      to process the interrupt. The normal world then issues
      "resume" smc call to resume the previous interrupted SMC call.
      Fixes ARM-software/tf-issues#105
      
      Change-Id: I72b760617dee27438754cdfc9fe9bcf4cc024858
      239b04fa
  6. 22 May, 2014 6 commits
    • Dan Handley's avatar
      Allow BL3-2 platform definitions to be optional · 1151c821
      Dan Handley authored
      The generic image loading and IO FIP code no longer forces the
      platform to create BL3-2 (Secure-EL1 Payload) specific
      definitions. The BL3-2 loading code in bl2/bl2main.c is wrapped
      by a #ifdef BL32_BASE blocks, allowing the BL3-2 definitions to
      be optional. Similarly for the name_uuid array defintion in
      drivers/io/io_fip.c.
      
      Also update the porting guide to reflect this change.
      
      The BL3-2 platform definitions remain non-configurably present
      in the FVP port.
      
      Fixes ARM-software/tf-issues#68
      
      Change-Id: Iea28b4e94d87a31f5522f271e290919a8a955460
      1151c821
    • Achin Gupta's avatar
      Enable secure timer to generate S-EL1 interrupts · a20a81e5
      Achin Gupta authored
      This patch enables secure physical timer during TSP initialisation and
      maintains it across power management operations so that a timer
      interrupt is generated every half second.
      
      Fixes ARM-software/tf-issues#104
      Fixes ARM-software/tf-issues#134
      
      Change-Id: I66c6cfd24bd5e6035ba75ebf0f047e568770a369
      a20a81e5
    • Achin Gupta's avatar
      Add S-EL1 interrupt handling support in the TSPD · b44a4435
      Achin Gupta authored
      This patch adds support in the TSPD for registering a handler for
      S-EL1 interrupts. This handler ferries the interrupts generated in the
      non-secure state to the TSP at 'tsp_fiq_entry'. Support has been added
      to the smc handler to resume execution in the non-secure state once
      interrupt handling has been completed by the TSP.
      
      There is also support for resuming execution in the normal world if
      the TSP receives a EL3 interrupt. This code is currently unused.
      
      Change-Id: I816732595a2635e299572965179f11aa0bf93b69
      b44a4435
    • Achin Gupta's avatar
      Add support for asynchronous FIQ handling in TSP · 57356e90
      Achin Gupta authored
      This patch adds support in the TSP to handle FIQ interrupts that are
      generated when execution is in the TSP. S-EL1 interrupt are handled
      normally and execution resumes at the instruction where the exception
      was originally taken. S-EL3 interrupts i.e. any interrupt not
      recognized by the TSP are handed to the TSPD. Execution resumes
      normally once such an interrupt has been handled at EL3.
      
      Change-Id: Ia3ada9a4fb15670afcc12538a6456f21efe58a8f
      57356e90
    • Achin Gupta's avatar
      Add support for synchronous FIQ handling in TSP · 6cf89021
      Achin Gupta authored
      This patch adds support in the TSP for handling S-EL1 interrupts
      handed over by the TSPD. It includes GIC support in its platform port,
      updates various statistics related to FIQ handling, exports an entry
      point that the TSPD can use to hand over interrupts and defines the
      handover protocol w.r.t what context is the TSP expected to preserve
      and the state in which the entry point is invoked by the TSPD.
      
      Change-Id: I93b22e5a8133400e4da366f5fc862f871038df39
      6cf89021
    • Achin Gupta's avatar
      Use secure timer to generate S-EL1 interrupts · fa9c08b7
      Achin Gupta authored
      This patch adds support in the TSP to program the secure physical
      generic timer to generate a EL-1 interrupt every half second. It also
      adds support for maintaining the timer state across power management
      operations. The TSPD ensures that S-EL1 can access the timer by
      programming the SCR_EL3.ST bit.
      
      This patch does not actually enable the timer. This will be done in a
      subsequent patch once the complete framework for handling S-EL1
      interrupts is in place.
      
      Change-Id: I1b3985cfb50262f60824be3a51c6314ce90571bc
      fa9c08b7