1. 31 Jul, 2019 2 commits
  2. 05 Jul, 2019 1 commit
    • Masahiro Yamada's avatar
      uniphier: support console based on multi-console · ac9f1b55
      Masahiro Yamada authored
      
      
      The legacy console is gone. Re-add the console support based on the
      multi-console framework.
      
      I am still keeping the putc, getc, and flush callbacks in
      uniphier_console.S to use plat/common/aarch64/crash_console_helpers.S
      
      The console registration code already relies on that C environment
      has been set up. So, I just filled the struct console fields with the
      callback pointers, then called console_register() directly. I also
      re-implemented the init function in C to improve the readability.
      
      Removing the custom crash console implementation has one disadvantage;
      we cannot use the crash console on very early crashes because
      crash_console_helpers.S works only after the console is registered.
      I can live with this limitation.
      
      Tested on my boards, and confirmed this worked like before.
      
      Change-Id: Ieab9c849853ff6c525c15ea894a85944f257db59
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      ac9f1b55
  3. 12 Apr, 2019 1 commit
    • Ambroise Vincent's avatar
      Mbed TLS: Remove weak heap implementation · 2374ab17
      Ambroise Vincent authored
      
      
      The implementation of the heap function plat_get_mbedtls_heap() becomes
      mandatory for platforms supporting TRUSTED_BOARD_BOOT.
      
      The shared Mbed TLS heap default weak function implementation is
      converted to a helper function get_mbedtls_heap_helper() which can be
      used by the platforms for their own function implementation.
      
      Change-Id: Ic8f2994e25e3d9fcd371a21ac459fdcafe07433e
      Signed-off-by: default avatarAmbroise Vincent <ambroise.vincent@arm.com>
      2374ab17
  4. 01 Feb, 2019 2 commits
  5. 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
  6. 10 Dec, 2018 1 commit
  7. 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
  8. 30 Oct, 2018 2 commits
  9. 28 Sep, 2018 1 commit
  10. 30 Aug, 2018 1 commit
  11. 22 Aug, 2018 1 commit
  12. 20 Jul, 2018 1 commit
  13. 12 Jun, 2018 1 commit
  14. 26 Mar, 2018 1 commit
  15. 02 Feb, 2018 3 commits
  16. 01 Feb, 2018 2 commits
  17. 24 Jan, 2018 2 commits
  18. 22 Jan, 2018 1 commit
  19. 04 Jan, 2018 1 commit
  20. 20 Dec, 2017 2 commits
  21. 30 Nov, 2017 1 commit
    • David Cunado's avatar
      Do not enable SVE on pre-v8.2 platforms · 3872fc2d
      David Cunado authored
      
      
      Pre-v8.2 platforms such as the Juno platform does not have
      the Scalable Vector Extensions implemented and so the build
      option ENABLE_SVE is set to zero.
      
      This has a minor performance improvement with no functional
      impact.
      
      Change-Id: Ib072735db7a0247406f8b60e325b7e28b1e04ad1
      Signed-off-by: default avatarDavid Cunado <david.cunado@arm.com>
      3872fc2d
  22. 06 Nov, 2017 1 commit
    • Masahiro Yamada's avatar
      uniphier: make sure to create build directory before ROT key · 3c946152
      Masahiro Yamada authored
      
      
      Building the UniPhier platform in parallel with TRUSTED_BOARD_BOOT=1
      could fail due to non-existing directory.  It might be difficult to
      reproduce, but here is an easier way to trigger the problem:
      
      $ make PLAT=uniphier TRUSTED_BOARD_BOOT=1 MBEDTLS_DIR=mbedtls certificates
        OPENSSL build/uniphier/release/rot_key.pem
      /bin/sh: 1: cannot create build/uniphier/release/rot_key.pem: Directory nonexistent
      make: *** [build/uniphier/release/rot_key.pem] Error 2
      
      The $(ROT_KEY) must depend on $(BUILD_PLAT) so that the build directory
      is created before the key.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      3c946152
  23. 18 Oct, 2017 1 commit
  24. 16 Oct, 2017 1 commit
  25. 27 Sep, 2017 1 commit
  26. 01 Sep, 2017 2 commits
  27. 26 Jul, 2017 1 commit
    • Sandrine Bailleux's avatar
      xlat lib v2: Expose *_ctx() APIs · a9ad848c
      Sandrine Bailleux authored
      
      
      In a previous patch, the xlat_ctx_t type has been made public.
      This patch now makes the *_ctx() APIs public.
      
      Each API now has a *_ctx() variant. Most of them were already implemented
      and this patch just makes them public. However, some of them were missing
      so this patch introduces them.
      
      Now that all these APIs are public, there's no good reason for splitting
      them accross 2 files (xlat_tables_internal.c and xlat_tables_common.c).
      Therefore, this patch moves all code into xlat_tables_internal.c and
      removes xlat_tables_common.c. It removes it from the library's makefile
      as well.
      
      This last change introduces a compatibility break for platform ports
      that specifically include the xlat_tables_common.c file instead of
      including the library's Makefile. The UniPhier platform makefile has
      been updated to now omit this file from the list of source files.
      
      The prototype of mmap_add_region_ctx() has been slightly changed. The
      mmap_region_t passed in argument needs to be constant because it gets
      called from map_add(), which receives a constant region. The former
      implementation of mmap_add() used to cast the const qualifier away,
      which is not a good practice.
      
      Also remove init_xlation_table(), which was a sub-function of
      init_xlat_tables(). Now there's just init_xlat_tables() (and
      init_xlat_tables_ctx()). Both names were too similar, which was
      confusing. Besides, now that all the code is in a single file,
      it's no longer needed to have 2 functions for that.
      
      Change-Id: I4ed88c68e44561c3902fbebb89cb197279c5293b
      Signed-off-by: default avatarSandrine Bailleux <sandrine.bailleux@arm.com>
      a9ad848c
  28. 20 Jun, 2017 1 commit
    • Masahiro Yamada's avatar
      uniphier: embed ROTPK hash into BL1/BL2 · 63634800
      Masahiro Yamada authored
      
      
      Currently, ROTPK_NOT_DEPLOYED flag is set in plat_get_rotpk_info().
      It is up to users how to retrieve ROTPK if the ROT verification is
      desired.  This is not nice.
      
      This commit improves plat_get_rotpk_info() implementation and automates
      the ROTPK deployment.  UniPhier platform has no ROTPK storage, so it
      should be embedded in BL1/BL2, like ARM_ROTPK_LOCATION=devel_rsa case.
      This makes sense because UniPhier platform implements its internal ROM
      i.e. BL1 is used as updatable pseudo ROM.
      
      Things work like this:
      
      - ROT_KEY (default: $(BUILD_PLAT)/rot_key.pem) is created if missing.
        Users can override ROT_KEY from the command line if they want to
        use a specific ROT key.
      
      - ROTPK_HASH is generated based on ROT_KEY.
      
      - ROTPK_HASH is included by uniphier_rotpk.S and compiled into BL1/BL2.
      
      - ROT_KEY is input to cert_create tool.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      63634800
  29. 15 Jun, 2017 1 commit
  30. 12 Jun, 2017 2 commits