1. 05 Dec, 2013 5 commits
    • Achin Gupta's avatar
      rework general purpose registers save and restore · 4a826dda
      Achin Gupta authored
      The runtime exception handling assembler code used magic numbers for
      saving and restoring the general purpose register context on stack
      memory. The memory is interpreted as a 'gp_regs' structure and the
      magic numbers are offsets to members of this structure. This patch
      replaces the magic number offsets with constants. It also adds compile
      time assertions to prevent an incorrect assembler view of this
      structure.
      
      Change-Id: Ibf125bfdd62ba3a33e58c5f1d71f8c229720781c
      4a826dda
    • Dan Handley's avatar
      Enable third party contributions · ab2d31ed
      Dan Handley authored
      - Add instructions for contributing to ARM Trusted Firmware.
      
      - Update copyright text in all files to acknowledge contributors.
      
      Change-Id: I9311aac81b00c6c167d2f8c889aea403b84450e5
      ab2d31ed
    • Sandrine Bailleux's avatar
      Update user guide further to linker scripts changes · cd29b0a6
      Sandrine Bailleux authored
      This patch updates the user guide section about the memory layout.
        - Explain the verifications that the linker scripts does on the
          global memory layout.
        - Refer to the new linker symbols.
        - Describe the linker symbols exported to the trusted firmware code.
      
      Change-Id: I033ab2b867e8b9776deb4185b9986bcb8218f286
      cd29b0a6
    • Sandrine Bailleux's avatar
      Properly initialise the C runtime environment · 65f546a1
      Sandrine Bailleux authored
      This patch makes sure the C runtime environment is properly
      initialised before executing any C code.
      
        - Zero-initialise NOBITS sections (e.g. the bss section).
        - Relocate BL1 data from ROM to RAM.
      
      Change-Id: I0da81b417b2f0d1f7ef667cc5131b1e47e22571f
      65f546a1
    • Sandrine Bailleux's avatar
      Various improvements/cleanups on the linker scripts · 8d69a03f
      Sandrine Bailleux authored
        - Check at link-time that bootloader images will fit in memory
          at run time and that they won't overlap each other.
        - Remove text and rodata orphan sections.
        - Define new linker symbols to remove the need for platform setup
          code to know the order of sections.
        - Reduce the size of the raw binary images by cutting some sections
          out of the disk image and allocating them at load time, whenever
          possible.
        - Rework alignment constraints on sections.
        - Remove unused linker symbols.
        - Homogenize linker symbols names across all BLs.
        - Add some comments in the linker scripts.
      
      Change-Id: I47a328af0ccc7c8ab47fcc0dc6e7dd26160610b9
      8d69a03f
  2. 27 Nov, 2013 9 commits
    • Sandrine Bailleux's avatar
      Treat compiler, assembler and linker warnings as errors · 3e850a84
      Sandrine Bailleux authored
      Change-Id: I56284ebf63bef99de1beb4fd86e2d8b6a7962ac0
      3e850a84
    • James Morrissey's avatar
      Generate build products in sub-directories · eaaeece2
      James Morrissey authored
      A single binary can be compiled using a command such as:
        make CROSS_COMPILE=aarch64-none-elf- bl1
      
      Also make use of brackets consistent in the Makefile.
      
      Change-Id: I2180fdb473411ef7cffe39670a7b2de82def812e
      eaaeece2
    • Harry Liebel's avatar
      Increase default amount of RAM for Base FVPs in FDTs · 375ae68e
      Harry Liebel authored
      - Large RAM-disks may have trouble starting with 2GB of memory.
      - Increase from 2GB to 4GB in FDT.
      
      Change-Id: I12c1b8e5db41114b88c69c48621cb21247a6a6a7
      375ae68e
    • Sandrine Bailleux's avatar
      fvp: Remove call to bl2_get_ns_mem_layout() function · 942f4053
      Sandrine Bailleux authored
      On FVP platforms, for now it is assumed that the normal-world
      bootloader is already sitting in its final memory location.
      Therefore, BL2 doesn't need to load it and so it doesn't need
      to know the extents of the non-trusted DRAM.
      
      Change-Id: I33177ab43ca242edc8958f2fa8d994e7cf3e0843
      942f4053
    • Sandrine Bailleux's avatar
      AArch64: Remove EL-agnostic TLB helper functions · 295538bc
      Sandrine Bailleux authored
      Also, don't invalidate the TLBs in disable_mmu() function, it's better
      to do it in enable_mmu() function just before actually enabling the
      MMU.
      
      Change-Id: Ib32d6660019b0b2c17254156aad4be67ab4970e1
      295538bc
    • Sandrine Bailleux's avatar
      Unmask SError and Debug exceptions. · 3738274d
      Sandrine Bailleux authored
      Any asynchronous exception caused by the firmware should be handled
      in the firmware itself.  For this reason, unmask SError exceptions
      (and Debug ones as well) on all boot paths.  Also route external
      abort and SError interrupts to EL3, otherwise they will target EL1.
      
      Change-Id: I9c191d2d0dcfef85f265641c8460dfbb4d112092
      3738274d
    • Sandrine Bailleux's avatar
      fvp: Remove unnecessary initializers · 204aa03d
      Sandrine Bailleux authored
      Global and static variables are expected to be initialised to zero
      by default.  This is specified by the C99 standard. This patch
      removes some unnecessary initialisations of such variables.
      
      It fixes a compilation warning at the same time:
        plat/fvp/bl31_plat_setup.c:82:3: warning: missing braces around
        initializer [-Wmissing-braces]
           section("tzfw_coherent_mem"))) = {0};
           ^
        plat/fvp/bl31_plat_setup.c:82:3: warning: (near initialization for
        ‘ns_entry_info[0]’) [-Wmissing-braces]
      
      Note that GCC should not have emitted this warning message in the
      first place.  The C Standard permits braces to be elided around
      subaggregate initializers.  See this GCC bug report:
      http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
      
      Change-Id: I13cb0c344feb9803bca8819f976377741fa6bc35
      204aa03d
    • Sandrine Bailleux's avatar
      Fix inlining of GIC helper functions · 27866d84
      Sandrine Bailleux authored
      Change-Id: I27aad560a5da21c0439f3ccc9dc07b026e7c6022
      27866d84
    • Sandrine Bailleux's avatar
      Move generic architectural setup out of blx_plat_arch_setup(). · c10bd2ce
      Sandrine Bailleux authored
      blx_plat_arch_setup() should only perform platform-specific
      architectural setup, e.g. enabling the MMU.  This patch moves
      generic architectural setup code out of blx_plat_arch_setup().
      
      Change-Id: I4ccf56b8c4a2fa84909817779a2d97a14aaafab6
      c10bd2ce
  3. 14 Nov, 2013 6 commits
    • James Morrissey's avatar
      Fix documentation issues in v0.2 release · ba3155bb
      James Morrissey authored
      Change-Id: I4e2a9daa97e3be3d2f53894f2ec7947ba6bb3a16
      ba3155bb
    • Harry Liebel's avatar
      Add Foundation FVP documentation · cff4e296
      Harry Liebel authored
      Change-Id: I5e47ba96e128d3a793517441f5a6c9f2ccbdfc66
      cff4e296
    • Harry Liebel's avatar
      Add GICv3 ITS to FDTs · 3498859b
      Harry Liebel authored
      - The interrupt addresses need to be updated to work.
      
      Change-Id: Icdd00177095ae9e4eb7b13718762f92e29b1465c
      3498859b
    • Harry Liebel's avatar
      Do not enable CCI on Foundation FVP · 30affd56
      Harry Liebel authored
      - The Foundation FVP only has one cluster and does not have
        CCI.
      
      Change-Id: If91e81ff72c52e448150089c4cfea3e4d6ae1232
      30affd56
    • Harry Liebel's avatar
      FDTs for v5.2 Foundation model · 43ef4f1e
      Harry Liebel authored
      - The Foundation FVP is a cut down version of the Base FVP and as
        such lacks some components.
      - Three FDTs are provided.
        fvp-foundation-gicv2legacy-psci:
          Use this when setting the Foundation FVP to use GICv2. In this
          mode the GIC is located at the VE location, as described in the
          VE platform memory map.
        fvp-foundation-gicv3-psci :
          Use this when setting the Foundation FVP to use GICv3. In this
          mode the GIC is located at the Base location, as described in the
          Base platform memory map.
        fvp-foundation-gicv2-psci :
          Use this when setting the Foundation FVP to use GICv3, but Linux
          is expected to use GICv2 emulation mode. In this mode the GIC is
          located at the Base location, but the GICv3 is used in GICv2
          emulation mode.
      
      Change-Id: I9d69bcef35c64cc8f16550efe077f578e55aaae5
      43ef4f1e
    • Harry Liebel's avatar
      Writing to the FVP LED register should be a 32bit access. · 068b950f
      Harry Liebel authored
      - Writing to this register with a 64bit access can cause a
        Systen Error Exception on some models.
      
      Change-Id: Ibcf5bdf7ab55707db61c16298f25caff50e1ff7e
      068b950f
  4. 25 Oct, 2013 1 commit