1. 25 Jul, 2019 1 commit
    • Soby Mathew's avatar
      Merge changes I0d17ba6c,I540741d2,I9e6475ad,Ifd769320,I12c04a85, ... into integration · d38613df
      Soby Mathew authored
      * changes:
        plat/mediatek/mt81*: Use new bl31_params_parse() helper
        plat/rockchip: Use new bl31_params_parse_helper()
        Add helper to parse BL31 parameters (both versions)
        Factor out cross-BL API into export headers suitable for 3rd party code
        Use explicit-width data types in AAPCS parameter structs
        plat/rockchip: Switch to use new common BL aux parameter library
        Introduce lightweight BL platform parameter library
      d38613df
  2. 24 Jul, 2019 11 commits
    • Julius Werner's avatar
      plat/mediatek/mt81*: Use new bl31_params_parse() helper · cbdc72b5
      Julius Werner authored
      
      
      The Mediatek MT8173/MT8183 SoCs are prime candidates for switching to
      the new bl31_params_parse() helper, so switch them over. This will allow
      BL2 implementations on these platforms to transparently switch over to
      the version 2 parameter structure.
      
      Change-Id: I0d17ba6c455102d325a06503d2078a76d12b5deb
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      cbdc72b5
    • Julius Werner's avatar
      plat/rockchip: Use new bl31_params_parse_helper() · 3e02c743
      Julius Werner authored
      
      
      The Rockchip platform is a prime candidate for switching to the new
      bl31_params_parse_helper(), so switch it over. This will allow BL2
      implementations on this platform to transparently switch over to the
      version 2 parameter structure.
      
      Change-Id: I540741d2425c93f66c8697ce749a351eb2b3a7e8
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      3e02c743
    • Soby Mathew's avatar
    • Soby Mathew's avatar
      0cc1e68a
    • Soby Mathew's avatar
      bc61a9b8
    • Ambroise Vincent's avatar
      intel: agilex: Fix build error · 3bd24e72
      Ambroise Vincent authored
      "result of '1 << 31' requires 33 bits to represent, but 'int' only has
      32 bits [-Werror=shift-overflow=]"
      
      This is treated as an error since commit 93c690eb
      
       ("Enable
      -Wshift-overflow=2 to check for undefined shift behavior")
      
      Change-Id: I141827a6711ab7759bfd6357e4ed9c1176da7c7b
      Signed-off-by: default avatarAmbroise Vincent <ambroise.vincent@arm.com>
      3bd24e72
    • Julius Werner's avatar
      Add helper to parse BL31 parameters (both versions) · d9af1f7b
      Julius Werner authored
      BL31 used to take a single bl31_params_t parameter structure with entry
      point information in arg0. In commit 72600226
      
       (Add new version of image
      loading.) this API was changed to a more flexible linked list approach,
      and the old parameter structure was copied into all platforms that still
      used the old format. This duplicated code unnecessarily among all these
      platforms.
      
      This patch adds a helper function that platforms can optionally link to
      outsource the task of interpreting arg0. Many platforms are just
      interested in the BL32 and BL33 entry point information anyway. Since
      some platforms still need to support the old version 1 parameters, the
      helper will support both formats when ERROR_DEPRECATED == 0. This allows
      those platforms to drop a bunch of boilerplate code and asynchronously
      update their BL2 implementation to the newer format.
      
      Change-Id: I9e6475adb1a7d4bccea666118bd1c54962e9fc38
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      d9af1f7b
    • Julius Werner's avatar
      Factor out cross-BL API into export headers suitable for 3rd party code · 57bf6057
      Julius Werner authored
      
      
      This patch adds a new include/export/ directory meant for inclusion in
      third-party code. This is useful for cases where third-party code needs
      to interact with TF-A interfaces and data structures (such as a custom
      BL2-implementation like coreboot handing off to BL31). Directly
      including headers from the TF-A repository avoids having to duplicate
      all these definitions (and risk them going stale), but with the current
      header structure this is not possible because handoff API definitions
      are too deeply intertwined with other TF code/headers and chain-include
      other headers that will not be available in the other environment.
      
      The new approach aims to solve this by separating only the parts that
      are really needed into these special headers that are self-contained and
      will not chain-include other (non-export) headers. TF-A code should
      never include them directly but should instead always include the
      respective wrapper header, which will include the required prerequisites
      (like <stdint.h>) before including the export header. Third-party code
      can include the export headers via its own wrappers that make sure the
      necessary definitions are available in whatever way that environment can
      provide them.
      
      Change-Id: Ifd769320ba51371439a8e5dd5b79c2516c3b43ab
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      57bf6057
    • Julius Werner's avatar
      Use explicit-width data types in AAPCS parameter structs · 9352be88
      Julius Werner authored
      
      
      It's not a good idea to use u_register_t for the members of
      aapcs64_params_t and aapcs32_params_t, since the width of that type
      always depends on the current execution environment. This would cause
      problems if e.g. we used this structure to set up the entry point of an
      AArch32 program from within an AArch64 program. (It doesn't seem like
      any code is doing that today, but it's probably still a good idea to
      write this defensively. Also, it helps with my next patch.)
      
      Change-Id: I12c04a85611f2b6702589f3362bea3e6a7c9f776
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      9352be88
    • Julius Werner's avatar
      plat/rockchip: Switch to use new common BL aux parameter library · c1185ffd
      Julius Werner authored
      
      
      This patch changes all Rockchip platforms to use the new common BL aux
      parameter helpers. Since the parameter space is now cleanly split in
      generic and vendor-specific parameters and the COREBOOT_TABLE
      parameter is now generic, the parameter type number for that parameter
      has to change. Since it only affects coreboot which always builds TF as
      a submodule and includes its headers directly to get these constants,
      this should not cause any issues. In general, after this point, we
      should avoid changing already assigned parameter type numbers whenever
      possible.
      
      Change-Id: Ic99ddd1e91ff5e5fe212fa30c793a0b8394c9dad
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      c1185ffd
    • Jacky Bai's avatar
      plat: imx8m: Add basic rdc module init driver · 3d660799
      Jacky Bai authored
      
      
      Add the basic support for RDC init/config driver,
      this module driver can be enhanced more if necessary.
      Signed-off-by: default avatarJacky Bai <ping.bai@nxp.com>
      Change-Id: I290dc378d0d85671435f9de46d5aa790b4e006c8
      3d660799
  3. 23 Jul, 2019 7 commits
  4. 22 Jul, 2019 1 commit
  5. 19 Jul, 2019 2 commits
  6. 18 Jul, 2019 2 commits
    • Julius Werner's avatar
      Introduce lightweight BL platform parameter library · b852d229
      Julius Werner authored
      
      
      This patch adds some common helper code to support a lightweight
      platform parameter passing framework between BLs that has already been
      used on Rockchip platforms but is more widely useful to others as well.
      It can be used as an implementation for the SoC firmware configuration
      file mentioned in the docs, and is primarily intended for platforms
      that only require a handful of values to be passed and want to get by
      without a libfdt dependency. Parameters are stored in a linked list and
      the parameter space is split in generic and vendor-specific parameter
      types. Generic types will be handled by this code whereas
      vendor-specific types have to be handled by a vendor-specific handler
      function that gets passed in.
      
      Change-Id: If3413d44e86b99d417294ce8d33eb2fc77a6183f
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      b852d229
    • Louis Mayencourt's avatar
      doc: Complete the storage abstraction layer doc · dbeace10
      Louis Mayencourt authored
      
      
      Add uml sequence and class diagram to illustrate the behavior of the
      storage abstraction layer.
      
      Change-Id: I338262729f8034cc3d3eea1d0ce19cca973a91bb
      Signed-off-by: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
      dbeace10
  7. 17 Jul, 2019 8 commits
  8. 16 Jul, 2019 4 commits
    • Louis Mayencourt's avatar
      Cortex_hercules: Introduce preliminary cpu support · 294f9ef9
      Louis Mayencourt authored
      
      
      Change-Id: Iab767e9937f5c6c8150953fcdc3b37e8ee83fa63
      Signed-off-by: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
      294f9ef9
    • Usama Arif's avatar
      plat/arm: Introduce A5 DesignStart platform. · 00c7d5ac
      Usama Arif authored
      
      
      This patch adds support for Cortex-A5 FVP for the
      DesignStart program. DesignStart aims at providing
      low cost and fast access to Arm IP.
      
      Currently with this patch only the primary CPU is booted
      and the rest of them wait for an interrupt.
      Signed-off-by: default avatarUsama Arif <usama.arif@arm.com>
      Change-Id: I3a2281ce6de2402dda4610a89939ed53aa045fab
      00c7d5ac
    • Ambroise Vincent's avatar
      console: update skeleton · 52e91081
      Ambroise Vincent authored
      
      
      Update the skeleton implementation of the console interface.
      
      The 32 bit version was outdated and has been copied from the 64 bit
      version.
      
      Change-Id: Ib3e4eb09402ffccb1a30c703a53829a7bf064dfe
      Signed-off-by: default avatarAmbroise Vincent <ambroise.vincent@arm.com>
      52e91081
    • Soby Mathew's avatar
      Merge changes from topic "jc/shift-overflow" into integration · d0d0f171
      Soby Mathew authored
      * changes:
        Enable -Wshift-overflow=2 to check for undefined shift behavior
        Update base code to not rely on undefined overflow behaviour
        Update hisilicon drivers to not rely on undefined overflow behaviour
        Update synopsys drivers to not rely on undefined overflow behaviour
        Update imx platform to not rely on undefined overflow behaviour
        Update mediatek platform to not rely on undefined overflow behaviour
        Update layerscape platform to not rely on undefined overflow behaviour
        Update intel platform to not rely on undefined overflow behaviour
        Update rockchip platform to not rely on undefined overflow behaviour
        Update renesas platform to not rely on undefined overflow behaviour
        Update meson platform to not rely on undefined overflow behaviour
        Update marvell platform to not rely on undefined overflow behaviour
      d0d0f171
  9. 15 Jul, 2019 2 commits
  10. 14 Jul, 2019 2 commits