1. 09 Mar, 2020 3 commits
  2. 05 Mar, 2020 1 commit
    • Varun Wadekar's avatar
      Tegra: spe: use CONSOLE_T_BASE to save MMIO base address · 9e7e9867
      Varun Wadekar authored
      Commit ac71344e
      
       moved the base address
      for the MMIO aperture of the console inside the console_t struct. As
      a result, the driver should now save the MMIO base address to console_t
      at offset marked by the CONSOLE_T_BASE macro.
      
      This patch updates the SPE console driver to use the CONSOLE_T_BASE macro
      to save/access the MMIO base address.
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      Change-Id: I42afc2608372687832932269108ed642f218fd40
      9e7e9867
  3. 03 Mar, 2020 1 commit
  4. 25 Feb, 2020 3 commits
  5. 20 Feb, 2020 12 commits
    • Varun Wadekar's avatar
      Tegra: spe: uninit console on a timeout · 8a47fe43
      Varun Wadekar authored
      
      
      There are chances a denial-of-service attack, if an attacker
      removes the SPE firmware from the system. The console driver
      would end up waiting for the firmware to respond indefinitely.
      The console driver must detect such scenarios and uninit the
      interface as a result.
      
      This patch adds a timeout to the interaction with the SPE
      firmware and uninits the interface if it times out.
      
      Change-Id: I06f27a858baed25711d41105b4110865f1a01727
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8a47fe43
    • Varun Wadekar's avatar
      Tegra: handler to check support for System Suspend · 5d52aea8
      Varun Wadekar authored
      
      
      Tegra210 SoCs need the sc7entry-fw to enter System Suspend mode,
      but there might be certain boards that do not have this firmware
      blob. To stop the NS world from issuing System suspend entry
      commands on such devices, we ned to disable System Suspend from
      the PSCI "features".
      
      This patch removes the System suspend handler from the Tegra PSCI
      ops, so that the framework will disable support for "System Suspend"
      from the PSCI "features".
      
      Original change by: kalyani chidambaram <kalyanic@nvidia.com>
      
      Change-Id: Ie029f82f55990a8b3a6debb73e95e0e218bfd1f5
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      5d52aea8
    • Varun Wadekar's avatar
      Tegra: bpmp_ipc: improve cyclomatic complexity · 21368290
      Varun Wadekar authored
      
      
      Code complexity is a good indication of maintainability versus
      testability of a piece of software.
      
      ISO26262 introduces the following thresholds:
      
          complexity < 10 is accepted
          10 <= complexity < 20 has to be justified
          complexity >= 20 cannot be accepted
      
      Rationale is that number of test cases to fully test a piece of
      software can (depending on the coverage metrics) grow exponentially
      with the number of branches in the software.
      
      This patch removes redundant conditionals from 'ipc_send_req_atomic'
      handler to reduce the McCabe Cyclomatic Complexity for this function
      
      Change-Id: I20fef79a771301e1c824aea72a45ff83f97591d5
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      21368290
    • Varun Wadekar's avatar
      Tegra: platform handler to relocate BL32 image · 6f47acdb
      Varun Wadekar authored
      
      
      This patch provides platforms an opportunity to relocate the
      BL32 image, during cold boot. Tegra186 platforms, for example,
      relocate BL32 images to TZDRAM memory as the previous bootloader
      relies on BL31 to do so.
      
      Change-Id: Ibb864901e43aca5bf55d8c79e918b598c12e8a28
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      6f47acdb
    • Varun Wadekar's avatar
      Tegra: common: improve cyclomatic complexity · ee21281a
      Varun Wadekar authored
      
      
      Code complexity is a good indication of maintainability versus
      testability of a piece of software.
      
      ISO26262 introduces the following thresholds:
      
          complexity < 10 is accepted
          10 <= complexity < 20 has to be justified
          complexity >= 20 cannot be accepted
      
      Rationale is that number of test cases to fully test a piece of
      software can (depending on the coverage metrics) grow exponentially
      with the number of branches in the software.
      
      This patch removes redundant conditionals from 'bl31_early_platform_setup'
      handler to reduce the McCabe Cyclomatic Complexity for this function.
      
      Change-Id: Ifb628e33269b388f9323639cd97db761a7e049c4
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      ee21281a
    • kalyani chidambaram's avatar
      Tegra210: secure PMC hardware block · 37f76024
      kalyani chidambaram authored
      
      
      This patch sets the "secure" bit to mark the PMC hardware block
      as accessible only from the secure world. This setting must be
      programmed during cold boot and System Resume.
      
      The sc7entry-fw, running on the COP, needs access to the PMC block
      to enter System Suspend state, so "unlock" the PMC block before
      passing control to the COP.
      
      Change-Id: I00e39a49ae6b9f8c8eafe0cf7ff63fe6a67fdccf
      Signed-off-by: default avatarkalyani chidambaram <kalyanic@nvidia.com>
      37f76024
    • Varun Wadekar's avatar
      Tegra: delay_timer: support for physical secure timer · dd4f0885
      Varun Wadekar authored
      
      
      This patch modifies the delay timer driver to switch to the ARM
      secure physical timer instead of using Tegra's on-chip uS timer.
      
      The secure timer is not accessible to the NS world and so eliminates
      an important attack vector, where the Tegra timer source gets switched
      off from the NS world leading to a DoS attack for the trusted world.
      
      This timer is shared with the S-EL1 layer for now, but later patches
      will mark it as exclusive to the EL3 exception mode.
      
      Change-Id: I2c00f8cb4c48b25578971c626c314603906ad7cc
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      dd4f0885
    • Pritesh Raithatha's avatar
      Tegra194: memctrl: lock mc stream id security config · 56e7d6a7
      Pritesh Raithatha authored
      
      
      This patch locks most of the stream id security config registers as
      per HW guidance.
      
      This patch keeps the stream id configs unlocked for the following
      clients, to allow some platforms to still function, until they make
      the transition to the latest guidance.
      
      - ISPRA
      - ISPFALR
      - ISPFALW
      - ISPWA
      - ISPWA1
      - ISPWB
      - XUSB_DEVR
      - XUSB_DEVW
      - XUSB_HOSTR
      - XUSB_HOSTW
      - VIW
      - VIFALR
      - VIFALW
      
      Change-Id: I66192b228a0a237035938f498babc0325764d5df
      Signed-off-by: default avatarPritesh Raithatha <praithatha@nvidia.com>
      56e7d6a7
    • kalyani chidambaram's avatar
      Tegra210: resume PMC hardware block for all platforms · 3414bad8
      kalyani chidambaram authored
      
      
      The PMC hardware block resume handler was called for Tegra210
      platforms, only if the sc7entry-fw was present on the device.
      This would cause problems for devices that do not support this
      firmware.
      
      This patch fixes this logic and resumes the PMC block even if
      the sc7entry-fw is not present on the device.
      
      Change-Id: I6f0eb7878126f624ea98392f583ed45a231d27db
      Signed-off-by: default avatarKalyani Chidambaram <kalyanic@nvidia.com>
      3414bad8
    • Varun Wadekar's avatar
      Tegra: macro for legacy WDT FIQ handling · b20a8b92
      Varun Wadekar authored
      
      
      This patch adds the macro to enable legacy FIQ handling to the common
      Tegra makefile. The default value of this macro is '0'. Platforms that
      need this support should enable it from their makefiles.
      
      This patch also helps fix violation of Rule 20.9.
      
      Rule 20.9 "All identifiers used in the controlling expression of #if
                 of #elif preprocessing directives shall be #define'd before
                 evaluation"
      
      Change-Id: I4f0c9917c044b5b1967fb5e79542cd3bf6e91f18
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      b20a8b92
    • Varun Wadekar's avatar
      Tegra186: enable higher performance non-cacheable load forwarding · 103ea3f4
      Varun Wadekar authored
      
      
      This patch enables higher performance non-cacheable load forwarding for
      Tegra186 platforms.
      
      Change-Id: Ifceb304bfbd805f415bb6205c9679602ecb47b53
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      103ea3f4
    • Varun Wadekar's avatar
      Tegra210: enable higher performance non-cacheable load forwarding · 8baa16f8
      Varun Wadekar authored
      
      
      This patch enables higher performance non-cacheable load forwarding for
      Tegra210 platforms.
      
      Change-Id: I11d0ffc09aca97d37386f283f2fbd2483d51fd28
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8baa16f8
  6. 05 Feb, 2020 1 commit
  7. 31 Jan, 2020 11 commits
    • Pritesh Raithatha's avatar
      Tegra186: memctrl: lock stream id security config · 029b45d1
      Pritesh Raithatha authored
      
      
      Tegra186 is in production so lock stream id security configs
      for all the clients.
      
      Change-Id: I64bdd5a9f12319a543291bfdbbfc1559d7a44113
      Signed-off-by: default avatarPritesh Raithatha <praithatha@nvidia.com>
      029b45d1
    • Varun Wadekar's avatar
      Tegra194: remove support for simulated system suspend · 8ad1e475
      Varun Wadekar authored
      
      
      This patch removes support for simulated system suspend for Tegra194
      platforms as we have actual silicon platforms that support this
      feature now.
      
      Change-Id: I9ed1b002886fed7bbc3d890a82d6cad67e900bae
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8ad1e475
    • Varun Wadekar's avatar
      Tegra194: mce: fix multiple MISRA issues · 4a232d5b
      Varun Wadekar authored
      
      
      This patch fixes violations of the following MISRA rules
      
      * Rule 8.5  "An external object or function shall be declared once in
                   one and only one file"
      * Rule 10.3 "The value of an expression shall not be assigned to an
                   object with a narrower essential type or of a different
                   esential type category"
      
      Change-Id: I4314cd4fea0a4adc6665868dd31e619b4f367e14
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      4a232d5b
    • Varun Wadekar's avatar
      Tegra: bpmp: fix multiple MISRA issues · 64aa08fb
      Varun Wadekar authored
      
      
      This patch fixes violations for the following MISRA rules
      
      * Rule 5.7  "A tag name shall be a unique identifier"
      * Rule 10.1 "Operands shall not be of an inappropriate essential type"
      * Rule 10.3 "The value of an expression shall not be assigned to an object
                   with a narrower essential type or of a different essential type
                   category"
      * Rule 10.4 "Both operands of an operator in which the usual arithmetic
                   conversions are performed shall have the same essential type
                   category"
      * Rule 20.7 "Expressions resulting from the expansion of macro parameters
                   shall be enclosed in parentheses"
      * Rule 21.1 "#define and #undef shall not be used on a reserved identifier
                   or reserved macro name"
      
      Change-Id: I83cbe659c2d72e76dd4759959870b57c58adafdf
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      64aa08fb
    • Varun Wadekar's avatar
      Tegra194: se: fix multiple MISRA issues · 8d4107f0
      Varun Wadekar authored
      
      
      This patch fixes violations for the following MISRA rules
      
      * Rule 8.4  "A compatible declaration shall be visible when an object or
                   function with external linkage is defined"
      * Rule 10.1 "Operands shall not be of an inappropriate essential type"
      * Rule 10.6 "Both operands of an operator in which the usual arithmetic
                   conversions are perdormed shall have the same essential type
                   category"
      * Rule 17.7 "The value returned by a function having non-void return
                   type shall be used"
      
      Change-Id: I171ac8340de729fd7be928fa0c0694e9bb8569f0
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8d4107f0
    • Varun Wadekar's avatar
      Tegra: compile PMC driver for Tegra132/Tegra210 platforms · 57c539f9
      Varun Wadekar authored
      
      
      The PMC driver is used only by Tegra210 and Tegra132 platforms. This
      patch removes pmc.c from the common makefile and moves it to the
      platform specific makefiles.
      
      As a result, the PMC code from common code has been moved to Tegra132
      and Tegra210 platform ports.
      
      Change-Id: Ia157f70e776b3eff3c12eb8f0f02d30102670a98
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      57c539f9
    • Varun Wadekar's avatar
      Tegra: memctrl_v2: remove weakly defined TZDRAM setup handler · f561a179
      Varun Wadekar authored
      
      
      This patch removes the per-platform, weakly defined TZDRAM setup handler,
      as all affected platforms implement the actual handler.
      
      Change-Id: I95d04b2a771bc5d673e56b097d45c493fa388ee8
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      f561a179
    • Varun Wadekar's avatar
      Tegra: remove weakly defined per-platform SiP handler · ba37943d
      Varun Wadekar authored
      
      
      This patch removes the weakly defined per-platform SiP handler
      as all platforms implement this handler, defeating the need for
      a weak definition.
      
      Change-Id: Id4c7e69163d2635de1813f5a385ac874253a8da9
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      ba37943d
    • Varun Wadekar's avatar
      Tegra: remove weakly defined PSCI platform handlers · e44f86ef
      Varun Wadekar authored
      
      
      This patch removes all the weakly defined PSCI handlers defined
      per-platform, to improve code coverage numbers and reduce MISRA
      defects.
      
      Change-Id: I0f9c0caa0a6071d0360d07454b19dcc7340da8c2
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      e44f86ef
    • Varun Wadekar's avatar
      Tegra: remove weakly defined platform setup handlers · 39171cd0
      Varun Wadekar authored
      
      
      This patch converts the weakly defined platform setup handlers into
      actual platform specific handlers to improve code coverage numbers
      and some MISRA defects.
      
      The weakly defined handlers never get executed thus resulting in
      lower coverage - function, function calls, statements, branches
      and pairs.
      
      Change-Id: I02f450f66b5754a90d934df4d76eb91459fca5f9
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      39171cd0
    • Varun Wadekar's avatar
      Tegra: per-SoC DRAM base values · 5f1803f9
      Varun Wadekar authored
      
      
      Tegra194 supports upto 64GB of DRAM, whereas the previous SoCs support
      upto 32GB DRAM. This patch moves the common DRAM base/end macros to
      individual Tegra SoC headers to fix this anomaly.
      
      Change-Id: I1a9f386b67c2311baab289e726d95cef6954071b
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      5f1803f9
  8. 28 Jan, 2020 2 commits
    • Madhukar Pappireddy's avatar
      Enable -Wredundant-decls warning check · ca661a00
      Madhukar Pappireddy authored
      
      
      This flag warns if anything is declared more than once in the same
      scope, even in cases where multiple declaration is valid and changes
      nothing.
      
      Consequently, this patch also fixes the issues reported by this
      flag. Consider the following two lines of code from two different source
      files(bl_common.h and bl31_plat_setup.c):
      
      IMPORT_SYM(uintptr_t, __RO_START__, BL_CODE_BASE);
      IMPORT_SYM(unsigned long, __RO_START__, BL2_RO_BASE);
      
      The IMPORT_SYM macro which actually imports a linker symbol as a C expression.
      The macro defines the __RO_START__ as an extern variable twice, one for each
      instance. __RO_START__ symbol is defined by the linker script to mark the start
      of the Read-Only area of the memory map.
      
      Essentially, the platform code redefines the linker symbol with a different
      (relevant) name rather than using the standard symbol. A simple solution to
      fix this issue in the platform code for redundant declarations warning is
      to remove the second IMPORT_SYM and replace it with following assignment
      
      static const unsigned long BL2_RO_BASE = BL_CODE_BASE;
      
      Change-Id: If4835d1ee462d52b75e5afd2a59b64828707c5aa
      Signed-off-by: default avatarMadhukar Pappireddy <madhukar.pappireddy@arm.com>
      ca661a00
    • Varun Wadekar's avatar
      Tegra194: enable spe-console functionality · ffd58cca
      Varun Wadekar authored
      
      
      This patch enables the config to switch to the console provided
      by the SPE firmware.
      
      Change-Id: I5a3bed09ee1e84f958d0925501d1a79fb7f694de
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      ffd58cca
  9. 23 Jan, 2020 6 commits