1. 04 Jan, 2019 1 commit
    • Antonio Nino Diaz's avatar
      Sanitise includes across codebase · 09d40e0e
      Antonio Nino Diaz authored
      Enforce full include path for includes. Deprecate old paths.
      
      The following folders inside include/lib have been left unchanged:
      
      - include/lib/cpus/${ARCH}
      - include/lib/el3_runtime/${ARCH}
      
      The reason for this change is that having a global namespace for
      includes isn't a good idea. It defeats one of the advantages of having
      folders and it introduces problems that are sometimes subtle (because
      you may not know the header you are actually including if there are two
      of them).
      
      For example, this patch had to be created because two headers were
      called the same way: e0ea0928 ("Fix gpio includes of mt8173 platform
      to avoid collision."). More recently, this patch has had similar
      problems: 46f9b2c3 ("drivers: add tzc380 support").
      
      This problem was introduced in commit 4ecca339
      
       ("Move include and
      source files to logical locations"). At that time, there weren't too
      many headers so it wasn't a real issue. However, time has shown that
      this creates problems.
      
      Platforms that want to preserve the way they include headers may add the
      removed paths to PLAT_INCLUDES, but this is discouraged.
      
      Change-Id: I39dc53ed98f9e297a5966e723d1936d6ccf2fc8f
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      09d40e0e
  2. 12 Dec, 2018 1 commit
  3. 10 Dec, 2018 1 commit
  4. 07 Dec, 2018 3 commits
    • Julius Werner's avatar
      drivers/console: Reimplement MUTLI_CONSOLE_API framework in C · 91b48c9f
      Julius Werner authored
      
      
      Now that we have switched to using the stack in MULTI_CONSOLE_API
      framework functions and have factored all code involved in crash
      reporting out into a separate file, there's really no reason to keep the
      main framework code in assembly anymore. This patch rewrites it in C
      which allows us to have a single implementation across aarch32/64 and
      should be much easier to maintain going forward.
      
      Change-Id: I6c85a01e89a79e8b233f3f8bee812f0dbd026221
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      91b48c9f
    • Julius Werner's avatar
      drivers/console: Link console framework code by default · 985ee0b7
      Julius Werner authored
      
      
      This patch makes the build system link the console framework code by
      default, like it already does with other common libraries (e.g. cache
      helpers). This should not make a difference in practice since TF is
      linked with --gc-sections, so the linker will garbage collect all
      functions and data that are not referenced by any other code. Thus, if a
      platform doesn't want to include console code for size reasons and
      doesn't make any references to console functions, the code will not be
      included in the final binary.
      
      To avoid compatibility issues with older platform ports, only make this
      change for the MULTI_CONSOLE_API.
      
      Change-Id: I153a9dbe680d57aadb860d1c829759ba701130d3
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      985ee0b7
    • Julius Werner's avatar
      plat/common/crash_console_helpers.S: Fix MULTI_CONSOLE_API support · 63c52d00
      Julius Werner authored
      Crash reporting via the default consoles registered by MULTI_CONSOLE_API
      has been broken since commit d35cc347
      
       (Console: Use callee-saved
      registers), which was introduced to allow console drivers written in C.
      It's not really possible with the current crash reporting framework to
      support console drivers in C, however we should make sure that the
      existing assembly drivers that do support crash reporting continue to
      work through the MULTI_CONSOLE_API.
      
      This patch fixes the problem by creating custom console_putc() and
      console_flush() implementations for the crash reporting case that do not
      use the stack. Platforms that want to use this feature will have to link
      plat/common/aarch64/crash_console_helpers.S explicitly.
      
      Also update the documentation to better reflect the new reality (of this
      being an option rather than the expected default for most platforms).
      
      Change-Id: Id0c761e5e2fddaf25c277bc7b8ab603946ca73cb
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      63c52d00
  5. 05 Dec, 2018 1 commit
  6. 04 Dec, 2018 6 commits
  7. 26 Nov, 2018 1 commit
  8. 23 Nov, 2018 1 commit
  9. 21 Nov, 2018 1 commit
  10. 15 Nov, 2018 4 commits
  11. 12 Nov, 2018 1 commit
  12. 09 Nov, 2018 2 commits
    • Yann Gautier's avatar
      stm32mp1: correct some static analysis tools issues · 3e6fab43
      Yann Gautier authored
      
      
      These issues wer found by sparse:
      
      drivers/st/clk/stm32mp1_clk.c:1524:19:
       warning: incorrect type in assignment (different base types)
          expected restricted fdt32_t const [usertype] *pkcs_cell
          got unsigned int const [usertype] *
      
      plat/st/stm32mp1/plat_image_load.c:13:6:
       warning: symbol 'plat_flush_next_bl_params' was not declared.
       Should it be static?
      plat/st/stm32mp1/plat_image_load.c:21:16:
       warning: symbol 'plat_get_bl_image_load_info' was not declared.
       Should it be static?
      plat/st/stm32mp1/plat_image_load.c:29:13:
       warning: symbol 'plat_get_next_bl_params' was not declared.
       Should it be static?
      
      plat/st/stm32mp1/bl2_io_storage.c:40:10:
       warning: symbol 'block_buffer' was not declared. Should it be static?
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      3e6fab43
    • Yann Gautier's avatar
      drivers: partition: correct some static analysis tools issues · 4cb17707
      Yann Gautier authored
      
      
      cppcheck:
      [drivers/partition/gpt.c:19] -> [drivers/partition/gpt.c:19]:
       (warning) Either the condition 'str_in!=((void*)0)' is redundant
       or there is possible null pointer dereference: name.
      
      sparse:
      drivers/partition/gpt.c:39:9:
       warning: Using plain integer as NULL pointer
      Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
      4cb17707
  13. 08 Nov, 2018 1 commit
    • Antonio Nino Diaz's avatar
      Standardise header guards across codebase · c3cf06f1
      Antonio Nino Diaz authored
      
      
      All identifiers, regardless of use, that start with two underscores are
      reserved. This means they can't be used in header guards.
      
      The style that this project is now to use the full name of the file in
      capital letters followed by 'H'. For example, for a file called
      "uart_example.h", the header guard is UART_EXAMPLE_H.
      
      The exceptions are files that are imported from other projects:
      
      - CryptoCell driver
      - dt-bindings folders
      - zlib headers
      
      Change-Id: I50561bf6c88b491ec440d0c8385c74650f3c106e
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      c3cf06f1
  14. 06 Nov, 2018 2 commits
  15. 29 Oct, 2018 1 commit
  16. 26 Oct, 2018 1 commit
  17. 23 Oct, 2018 1 commit
    • Antonio Nino Diaz's avatar
      tzc: Fix MISRA defects · af6491f8
      Antonio Nino Diaz authored
      
      
      The definitions FAIL_CONTROL_*_SHIFT were incorrect, they have been
      fixed.
      
      The types tzc_region_attributes_t and tzc_action_t have been removed and
      replaced by unsigned int because it is not allowed to do logical
      operations on enums.
      
      Also, fix some address definitions in arm_def.h.
      
      Change-Id: Id37941d76883f9fe5045a5f0a4224c133c504d8b
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      af6491f8
  18. 22 Oct, 2018 2 commits
  19. 20 Oct, 2018 1 commit
    • Andre Przywara's avatar
      allwinner: Add RSB driver · 103f19f0
      Andre Przywara authored
      
      
      The "Reduced Serial Bus" is an Allwinner specific bus, bearing many
      similarities with I2C. It sports a much higher bus frequency, though,
      (typically 3 MHz) and requires much less handholding for the typical
      task of manipulating slave registers (fire-and-forget).
      On most A64 boards this bus is used to connect the PMIC to the SoC.
      
      This driver provides basic primitives to read and write slave registers,
      it will be later used by the PMIC code.
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      103f19f0
  20. 19 Oct, 2018 1 commit
    • Soby Mathew's avatar
      Multi-console: Deprecate the `finish_console_register` macro · cc5859ca
      Soby Mathew authored
      
      
      The `finish_console_register` macro is used by the multi console
      framework to register the `console_t` driver callbacks. It relied
      on weak references to the `ldr` instruction to populate 0 to the
      callback in case the driver has not defined the appropriate
      function. Use of `ldr` instruction to load absolute address to a
      reference makes the binary position dependant. These instructions
      should be replaced with adrp/adr instruction for position independant
      executable(PIE). But adrp/adr instructions don't work well with weak
      references as described in GNU ld bugzilla issue 22589.
      
      This patch defines a new version of `finish_console_register` macro
      which can spcify which driver callbacks are valid and deprecates the
      old one. If any of the argument is not specified, then the macro
      populates 0 for that callback. Hence the functionality of the previous
      deprecated macro is preserved. The USE_FINISH_CONSOLE_REG_2 define
      is used to select the new variant of the macro and will be removed
      once the deprecated variant is removed.
      
      All the upstream console drivers have been migrated to use the new
      macro in this patch.
      
      NOTE: Platforms be aware that the new variant of the
      `finish_console_register` should be used and the old variant is
      deprecated.
      
      Change-Id: Ia6a67aaf2aa3ba93932992d683587bbd0ad25259
      Signed-off-by: default avatarSoby Mathew <soby.mathew@arm.com>
      cc5859ca
  21. 18 Oct, 2018 1 commit
    • Grzegorz Jaszczyk's avatar
      mvebu: cp110: introduce COMPHY porting layer · 42a29337
      Grzegorz Jaszczyk authored
      
      
      Some of COMPHY parameters depends on the hw connection between the SoC
      and the PHY, which can vary on different boards e.g. due to different
      wires length. Define the "porting layer" with some defaults
      parameters. It ease updating static values which needs to be updated due
      to board differences, which are now grouped in one place.
      
      Example porting layer for a8k-db is under:
      plat/marvell/a8k/a80x0/board/phy-porting-layer.h
      
      If for some boards parameters are not defined (missing
      phy-porting-layer.h), the default values are used
      (drivers/marvell/comphy/phy-default-porting-layer.h)
      and the following compilation warning is show:
      "Using default comphy params - you may need to suit them to your board".
      
      The common COMPHY driver code is extracted in order to be shared with
      future COMPHY driver for A3700 SoC platforms
      Signed-off-by: default avatarGrzegorz Jaszczyk <jaz@semihalf.com>
      Signed-off-by: default avatarIgal Liberman <igall@marvell.com>
      Signed-off-by: default avatarKonstantin Porotchkin <kostap@marvell.com>
      42a29337
  22. 17 Oct, 2018 6 commits