1. 28 Feb, 2017 7 commits
    • Varun Wadekar's avatar
      Tegra: implement FIQ interrupt handler · 78e2bd10
      Varun Wadekar authored
      
      
      This patch adds a handler for FIQ interrupts triggered when
      the CPU is in the NS world. The handler stores the NS world's
      context along with ELR_EL3/SPSR_EL3.
      
      The NS world driver issues an SMC initially to register it's
      handler. The monitor firmware stores this handler address and
      jumps to it when the FIQ interrupt fires. Upon entry into the
      NS world the driver then issues another SMC to get the CPU
      context when the FIQ fired. This allows the NS world driver to
      determine the CPU state and call stack when the interrupt
      fired. Generally, systems register watchdog interrupts as FIQs
      which are then used to get the CPU state during hangs/crashes.
      
      Change-Id: I733af61a08d1318c75acedbe9569a758744edd0c
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      78e2bd10
    • Varun Wadekar's avatar
      Tegra: GIC: enable FIQ interrupt handling · d3360301
      Varun Wadekar authored
      
      
      Tegra chips support multiple FIQ interrupt sources. These interrupts
      are enabled in the GICD/GICC interfaces by the tegra_gic driver. A
      new FIQ handler would be added in a subsequent change which can be
      registered by the platform code.
      
      This patch adds the GIC programming as part of the tegra_gic_setup()
      which now takes an array of all the FIQ interrupts to be enabled for
      the platform. The Tegra132 and Tegra210 platforms right now do not
      register for any FIQ interrupts themselves, but will definitely use
      this support in the future.
      
      Change-Id: I0ea164be901cd6681167028fea0567399f18d4b8
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      d3360301
    • Varun Wadekar's avatar
      Tegra: implement common handler `plat_get_target_pwr_state()` · 2693f1db
      Varun Wadekar authored
      
      
      This patch adds a platform handler to calculate the proper target power
      level at the specified affinity level.
      
      Tegra platforms assign a local state value in order of decreasing depth
      of the power state i.e. for two power states X & Y, if X < Y then X
      represents a shallower power state than Y. As a result, the coordinated
      target local power state for a power domain will be the maximum of the
      requested local power state values.
      
      Change-Id: I67360684b7f5b783fcfdd605b96da5375fa05417
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      2693f1db
    • Varun Wadekar's avatar
      Tegra: include platform_def.h to access UART macros · 11bd24be
      Varun Wadekar authored
      
      
      This patch includes platform_def.h required to access UART macros -
      "TEGRA_BOOT_UART_CLK_IN_HZ" and "TEGRA_CONSOLE_BAUDRATE" from
      tegra_helpers.S.
      
      Change-Id: Ieb63968a48dc299d03e81ddeb1ccc871cf3397a1
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      11bd24be
    • Wayne Lin's avatar
      Tegra: allow SiP smc calls from Secure World · 2d05f810
      Wayne Lin authored
      
      
      This patch removes the restriction of allowing SiP calls only from the
      non-secure world. The secure world can issue SiP calls as a result of
      this patch now.
      
      Change-Id: Idd64e893ae8e114bba0196872d3ec544cac150bf
      Signed-off-by: default avatarWayne Lin <wlin@nvidia.com>
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      2d05f810
    • Varun Wadekar's avatar
      Tegra: handler for per-soc early setup · 5ea0b028
      Varun Wadekar authored
      
      
      This patch adds a weak handler for early platform setup which
      can be overriden by the soc-specific handlers to perform any
      early setup tasks.
      
      Change-Id: I1a7a98d59b2332a3030c6dca5a9b7be977177326
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      5ea0b028
    • Varun Wadekar's avatar
      Tegra: relocate code to BL31_BASE during cold boot · 939dcf25
      Varun Wadekar authored
      
      
      This patch adds support to relocate BL3-1 code to BL31_BASE in case
      we cold boot to a different address. This is particularly useful to
      maintain compatibility with legacy BL2 code.
      
      This patch also checks to see if the image base address matches either
      the TZDRAM or TZSRAM base.
      
      Change-Id: I72c96d7f89076701a6ac2537d4c06565c54dab9c
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      939dcf25
  2. 27 Feb, 2017 1 commit
  3. 24 Feb, 2017 30 commits
  4. 23 Feb, 2017 2 commits
    • Varun Wadekar's avatar
      Tegra: implement pwr_domain_pwr_down_wfi() handler · 26c0d9b2
      Varun Wadekar authored
      
      
      This patch adds the pwr_domain_power_down_wfi() handler for Tegra
      platforms which in turn executes the soc specific `power_down_wfi`
      handler.
      
      Change-Id: I5deecc09959db3c3d73f928f5c871966331cfd95
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      26c0d9b2
    • Varun Wadekar's avatar
      Tegra: memmap BL31's TZDRAM carveout · 260ae46f
      Varun Wadekar authored
      
      
      This patch maps the TZDRAM carveout used by the BL31. In the near
      future BL31 would be running from the TZRAM for security and
      performance reasons. The only downside to this solution is that
      the TZRAM loses its state in System Suspend. So, we map the TZDRAM
      carveout that the BL31 would use to save its state before entering
      System Suspend.
      
      Change-Id: Id5bda7e9864afd270cf86418c703fa61c2cb095f
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      260ae46f