1. 27 Jan, 2020 2 commits
  2. 24 Jan, 2020 1 commit
  3. 29 Oct, 2019 1 commit
    • Andrew F. Davis's avatar
      ti: k3: common: Add PIE support · ff835a9a
      Andrew F. Davis authored
      
      
      Running TF-A from non-standard location such as DRAM is useful for some
      SRAM heavy use-cases. Allow the TF-A binary to be executed from an
      arbitrary memory location.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Change-Id: Icd97926e4d97f37d7cde4a92758a52f57d569111
      ff835a9a
  4. 04 Jul, 2019 1 commit
    • Andrew F. Davis's avatar
      ti: k3: common: Trap all asynchronous bus errors to EL3 · 93d5e141
      Andrew F. Davis authored
      
      
      These errors are asynchronous and cannot be directly correlated with the
      exact current running software, so handling them in the same EL is not
      critical. Handling them in TF-A allows for more platform specific
      decoding of the implementation defined exception registers
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Change-Id: Iee7a38c9fc9c698fa0ad42dafa598bcbed6a4fda
      93d5e141
  5. 28 Jun, 2019 1 commit
  6. 06 Jun, 2019 2 commits
    • Andrew F. Davis's avatar
      ti: k3: common: Remove coherency workaround for AM65x · 48d6b264
      Andrew F. Davis authored
      
      
      We previously left our caches on during power-down to prevent any
      non-caching accesses to memory that is cached by other cores. Now with
      the last accessed areas all being marked as non-cached by
      USE_COHERENT_MEM we can rely on that to workaround our interconnect
      issues. Remove the old workaround.
      
      Change-Id: Idadb7696d1449499d1edff4f6f62ab3b99d1efb7
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      48d6b264
    • Andrew F. Davis's avatar
      ti: k3: common: Use coherent memory for shared data · 65f7b817
      Andrew F. Davis authored
      
      
      HW_ASSISTED_COHERENCY implies something stronger than just hardware
      coherent interconnect, specifically a DynamIQ capable ARM core.
      
      For K3, lets use WARMBOOT_ENABLE_DCACHE_EARLY to enable caches early
      and then let the caches get shut off on powerdown, to prevent data
      corruption we also need to USE_COHERENT_MEM so that any accesses to
      shared memory after this point is only to memory that is set as
      non-cached for all cores.
      
      Change-Id: Ib9337f012df0e0388237942607c501b6f3e2a949
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      65f7b817
  7. 22 May, 2019 2 commits
  8. 30 Apr, 2019 1 commit
    • Andrew F. Davis's avatar
      ti: k3: common: Remove MSMC port definitions · a82bf5ad
      Andrew F. Davis authored
      
      
      The MSMC port defines were added to help in the case when some ports
      are not connected and have no cores attached. We can get the same
      functionality by defined the number of cores on that port to zero.
      This simplifies several code paths, do this here.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Change-Id: I3247fe37af7b86c3227e647b4f617fab70c8ee8a
      a82bf5ad
  9. 26 Apr, 2019 4 commits
  10. 23 Apr, 2019 4 commits
    • Andrew F. Davis's avatar
      ti: k3: drivers: ti_sci: Retry message receive on bad sequence ID · 71a35273
      Andrew F. Davis authored
      
      
      When we get a sequence ID that does not match what we expect then the we
      are looking at is not the one we are expecting and so we error out. We
      can also assume this message is a stale message left in the queue, in
      this case we can read in the next message and check again for our
      message. Switch to doing that here. We only retry a set number of times
      so we don't lock the system if our message is actually lost and will
      never show up.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Change-Id: I6c8186ccc45e646d3ba9d431f7d4c451dcd70c5c
      71a35273
    • Andrew F. Davis's avatar
      ti: k3: drivers: ti_sci: Cleanup sequence ID usage · 7a469035
      Andrew F. Davis authored
      
      
      The sequence ID can be set with a message to identify it when it is
      responded to in the response queue. We assign each message a number and
      check for this same number to detect response mismatches.
      
      Start this at 0 and increase it by one for each message sent, even ones
      that do not request or wait for a response as one may still be delivered
      in some cases and we want to detect this.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Change-Id: I72b4d1ef98bf1c1409d9db9db074af8dfbcd83ea
      7a469035
    • Andrew F. Davis's avatar
      ti: k3: drivers: sec_proxy: Use direction definitions · fb98ca5a
      Andrew F. Davis authored
      
      
      The direction of a thread should be explicitly compared to avoid
      confusion. Also fixup message wording based on this direction.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Change-Id: Ia3cf9413cd23af476bb5d2e6d70bee15234cbd11
      fb98ca5a
    • Andrew F. Davis's avatar
      ti: k3: drivers: sec_proxy: Fix printf format specifiers · 6c30baee
      Andrew F. Davis authored
      
      
      The ID of a thread is not used outside for printing it out when
      something goes wrong. The specifier used is also not consistent.
      Instead of storing the thread ID, store its name and print that.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      Change-Id: Id137c2f8dfdd5c599e220193344ece903f80af7b
      6c30baee
  11. 19 Apr, 2019 4 commits
  12. 11 Feb, 2019 6 commits
  13. 22 Jan, 2019 1 commit
    • Andrew F. Davis's avatar
      ti: k3: common: Add support for runtime detection of GICR base address · b5443284
      Andrew F. Davis authored
      
      
      Valid addresses for GICR base are always a set calculable distance from
      the GICD and is based on the number of cores a given instance of GICv3 IP
      can support. The formula for the number of address bits is given by the
      ARM GIC-500 TRM section 3.2 as 2^(18+log2(cores)) with the MSB set to
      one for GICR instances. Holes in the GIC address space are also
      guaranteed to safely return 0 on reads. This allows us to support runtime
      detection of the GICR base address by starting from GIC base address plus
      BIT(18) and walking until the GICR ID register (IIDR) is detected. We
      stop searching after BIT(20) to prevent searching out into space if
      something goes wrong. This can be extended out if we ever have a device
      with 16 or more cores.
      Signed-off-by: default avatarAndrew F. Davis <afd@ti.com>
      b5443284
  14. 21 Jan, 2019 7 commits
  15. 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
  16. 07 Dec, 2018 1 commit
    • 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
  17. 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