1. 23 Mar, 2020 13 commits
  2. 22 Mar, 2020 14 commits
    • Anthony Zhou's avatar
      Tegra194: move cluster and CPU counter to header file. · 9aaa8882
      Anthony Zhou authored
      
      
      MISRA rules request that the cluster and CPU counter be unsigned
      values and have a suffix 'U'. If the define located in the makefile,
      this cannot be done.
      
      This patch moves the PLATFORM_CLUSTER_COUNT and PLATFORM_MAX_CPUS_PER_CLUSTER
      macros to tegra_def.h as a result.
      
      Change-Id: I9ef0beb29485729de204b4ffbb5241b039690e5a
      Signed-off-by: default avatarAnthony Zhou <anzhou@nvidia.com>
      9aaa8882
    • Varun Wadekar's avatar
      Tegra: gicv2: initialize target masks · 7644e2aa
      Varun Wadekar authored
      
      
      This patch initializes the target masks in the GICv2 driver
      data, for all PEs. This will allow platforms to set the PE
      target for SPIs.
      
      Change-Id: I7bf2ad79c04c2555ab310acba17823fb157327a3
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      7644e2aa
    • Mustafa Yigit Bilgen's avatar
      spd: tlkd: support new TLK SMCs for RPMB service · bd0c2f8d
      Mustafa Yigit Bilgen authored
      
      
      This patch adds support to handle following TLK SMCs:
      {TLK_SET_BL_VERSION, TLK_LOCK_BL_INTERFACE, TLK_BL_RPMB_SERVICE}
      
      These SMCs need to be supported in ATF in order to forward them to
      TLK. Otherwise, these functionalities won't work.
      
      Brief:
      TLK_SET_BL_VERSION: This SMC is issued by the bootloader to supply its
      version to TLK. TLK can use this to prevent rollback attacks.
      
      TLK_LOCK_BL_INTERFACE: This SMC is issued by bootloader before handing off
      execution to the OS. This allows preventing sensitive SMCs being used
      by the OS.
      
      TLK_BL_RPMB_SERVICE: bootloader issues this SMC to sign or verify RPMB
      frames.
      
      Tested by: Tests TLK can receive the new SMCs issued by bootloader
      
      Change-Id: I57c2d189a5f7a77cea26c3f8921866f2a6f0f944
      Signed-off-by: default avatarMustafa Yigit Bilgen <mbilgen@nvidia.com>
      bd0c2f8d
    • sumitg's avatar
      Tegra210: trigger CPU0 hotplug power on using FC · a45c3e9d
      sumitg authored
      
      
      Hotplug poweron is not working for boot CPU as it's being
      triggerred using PMC and not with Flow Controller. This is
      happening because "cpu_powergate_mask" is only getting set
      for non-boot CPU's as the boot CPU's first bootup follows
      different code path. The patch is marking a CPU as ON within
      "cpu_powergate_mask" when turning its power domain on
      during power on. This will ensure only first bootup on all
      CPU's is using PMC and subsequent hotplug poweron will be
      using Flow Controller.
      
      Change-Id: Ie9e86e6f9a777d41508a93d2ce286f31307932c2
      Signed-off-by: default avatarsumitg <sumitg@nvidia.com>
      a45c3e9d
    • Pritesh Raithatha's avatar
      Tegra: memctrl: cleanup streamid override registers · 36e26375
      Pritesh Raithatha authored
      
      
      Streamid override registers are passed to memctrl to program bypass
      streamid for all the registers. There is no reason to bypass SMMU
      for any of the client so need to remove register list and do not
      set streamid_override_cfg.
      
      Some Tegra186 platforms don't boot due to SDMMC failure so keep SDMMC
      bypass as of now. Will revisit once these issues are fixed.
      
      Change-Id: I3f67e2a0e1b53160e2218f3acace7da45532f934
      Signed-off-by: default avatarPritesh Raithatha <praithatha@nvidia.com>
      36e26375
    • Varun Wadekar's avatar
      Tegra: memctrl_v2: remove support to secure TZSRAM · 71376951
      Varun Wadekar authored
      
      
      This patch removes support to secure the on-chip TZSRAM memory for
      Tegra186 and Tegra194 platforms as the previous bootloader does that
      for them.
      
      Change-Id: I50c7b7f9694285fe31135ada09baed1cfedaaf07
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      71376951
    • Varun Wadekar's avatar
      Tegra: include platform headers from individual makefiles · eeb1b5e3
      Varun Wadekar authored
      
      
      This patch modifies PLAT_INCLUDES to include individual Tegra SoC
      headers from the platform's makefile.
      
      Change-Id: If5248667f4e58ac18727d37a18fbba8e53f2d7b5
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      eeb1b5e3
    • Varun Wadekar's avatar
      Tegra210: rename ENABLE_WDT_LEGACY_FIQ_HANDLING macro · ebe076da
      Varun Wadekar authored
      
      
      This patch renames 'ENABLE_WDT_LEGACY_FIQ_HANDLING' macro to
      'ENABLE_TEGRA_WDT_LEGACY_FIQ_HANDLING', to indicate that this
      is a Tegra feature.
      
      Change-Id: I5c4431e662223ee80efbfd5ec2513f8b1cadfc50
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      ebe076da
    • Varun Wadekar's avatar
      Tegra194: SiP function ID to read SMMU_PER registers · 8f0e22d5
      Varun Wadekar authored
      
      
      This patch introduces SiP function ID, 0xC200FF00, to read SMMU_PER
      error records from all supported SMMU blocks.
      
      The register values are passed over to the client via CPU registers
      X1 - X3, where
      
      X1 = SMMU_PER[instance #1] | SMMU_PER[instance #0]
      X2 = SMMU_PER[instance #3] | SMMU_PER[instance #2]
      X3 = SMMU_PER[instance #5] | SMMU_PER[instance #4]
      
      Change-Id: Id56263f558838ad05f6021f8432e618e99e190fc
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      8f0e22d5
    • Ken Chang's avatar
      Tegra: memctrl: map video memory as uncached · 9b51aa87
      Ken Chang authored
      
      
      Memmap video memory as uncached normal memory by adding flag
      'MT_NON_CACHEABLE' in mmap_add_dynamic_region().
      This improves the time taken for clearing the non-overlapping video
      memory:
      
      test conditions: 32MB memory size, EMC running at 1866MHz, t186
      1) without MT_NON_CACHEABLE: 30ms ~ 40ms
      <3>[  133.852885]  vpr-heap: update vpr base to 0x00000000c6000000, size=e000000
      <3>[  133.860471] _tegra_set_vpr_params[120]: begin
      <3>[  133.896481] _tegra_set_vpr_params[123]: end
      <3>[  133.908944]  vpr-heap: update vpr base to 0x00000000c6000000, size=c000000
      <3>[  133.916397] _tegra_set_vpr_params[120]: begin
      <3>[  133.956369] _tegra_set_vpr_params[123]: end
      <3>[  133.970394]  vpr-heap: update vpr base to 0x00000000c6000000, size=a000000
      <3>[  133.977934] _tegra_set_vpr_params[120]: begin
      <3>[  134.013874] _tegra_set_vpr_params[123]: end
      <3>[  134.025666]  vpr-heap: update vpr base to 0x00000000c6000000, size=8000000
      <3>[  134.033512] _tegra_set_vpr_params[120]: begin
      <3>[  134.065996] _tegra_set_vpr_params[123]: end
      <3>[  134.075465]  vpr-heap: update vpr base to 0x00000000c6000000, size=6000000
      <3>[  134.082923] _tegra_set_vpr_params[120]: begin
      <3>[  134.113119] _tegra_set_vpr_params[123]: end
      <3>[  134.123448]  vpr-heap: update vpr base to 0x00000000c6000000, size=4000000
      <3>[  134.130790] _tegra_set_vpr_params[120]: begin
      <3>[  134.162523] _tegra_set_vpr_params[123]: end
      <3>[  134.172413]  vpr-heap: update vpr base to 0x00000000c6000000, size=2000000
      <3>[  134.179772] _tegra_set_vpr_params[120]: begin
      <3>[  134.209142] _tegra_set_vpr_params[123]: end
      
      2) with MT_NON_CACHEABLE: 10ms ~ 18ms
      <3>[  102.108702]  vpr-heap: update vpr base to 0x00000000c6000000, size=e000000
      <3>[  102.116296] _tegra_set_vpr_params[120]: begin
      <3>[  102.134272] _tegra_set_vpr_params[123]: end
      <3>[  102.145839]  vpr-heap: update vpr base to 0x00000000c6000000, size=c000000
      <3>[  102.153226] _tegra_set_vpr_params[120]: begin
      <3>[  102.164201] _tegra_set_vpr_params[123]: end
      <3>[  102.172275]  vpr-heap: update vpr base to 0x00000000c6000000, size=a000000
      <3>[  102.179638] _tegra_set_vpr_params[120]: begin
      <3>[  102.190342] _tegra_set_vpr_params[123]: end
      <3>[  102.197524]  vpr-heap: update vpr base to 0x00000000c6000000, size=8000000
      <3>[  102.205085] _tegra_set_vpr_params[120]: begin
      <3>[  102.216112] _tegra_set_vpr_params[123]: end
      <3>[  102.224080]  vpr-heap: update vpr base to 0x00000000c6000000, size=6000000
      <3>[  102.231387] _tegra_set_vpr_params[120]: begin
      <3>[  102.241775] _tegra_set_vpr_params[123]: end
      <3>[  102.248825]  vpr-heap: update vpr base to 0x00000000c6000000, size=4000000
      <3>[  102.256069] _tegra_set_vpr_params[120]: begin
      <3>[  102.266368] _tegra_set_vpr_params[123]: end
      <3>[  102.273400]  vpr-heap: update vpr base to 0x00000000c6000000, size=2000000
      <3>[  102.280672] _tegra_set_vpr_params[120]: begin
      <3>[  102.290929] _tegra_set_vpr_params[123]: end
      
      Change-Id: I5f604064ce7b8b73ea9ad5860156ae5e2c6cc42a
      Signed-off-by: default avatarKen Chang <kenc@nvidia.com>
      9b51aa87
    • Kalyani Chidambaram's avatar
      Tegra: remove support for USE_COHERENT_MEM · aba5dddc
      Kalyani Chidambaram authored
      
      
      This patch removes the support for 'USE_COHERENT_MEM' as
      Tegra platforms no longer support the feature.
      
      Change-Id: If1c80fc4e5974412572b3bc1fdf9e70b1ee5d4ec
      Signed-off-by: default avatarKalyani Chidambaram <kalyanic@nvidia.com>
      aba5dddc
    • Varun Wadekar's avatar
      Tegra: remove circular dependency with common_def.h · 42080d48
      Varun Wadekar authored
      
      
      This patch stops including common_def.h from platform_def.h to
      fix a circular depoendency between them.
      
      This means platform_def.h now has to define the linker macros:
      * PLATFORM_LINKER_FORMAT
      * PLATFORM_LINKER_ARCH
      
      Change-Id: Icd540b1bd32fb37e0e455e9146c8b7f4b314e012
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      42080d48
    • Varun Wadekar's avatar
      Tegra: include missing stdbool.h · a5bfcad8
      Varun Wadekar authored
      
      
      This patch includes the missing stdbool.h header from flowctrl.h
      and bpmp_ivc.c files.
      
      Change-Id: If60d19142b1cb8ae663fbdbdf1ffe45cbbdbc1b2
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      a5bfcad8
    • Kalyani Chidambaram's avatar
      Tegra: remove support for SEPARATE_CODE_AND_RODATA=0 · 2bf1085d
      Kalyani Chidambaram authored
      
      
      Tegra platforms will not be supporting SEPARATE_CODE_AND_RODATA=0.
      
      This patch uses the common macros provided by bl_common.h as a result
      and adds a check to assert if SEPARATE_CODE_AND_RODATA set is not set
      to '1'.
      
      Change-Id: I376ea60c00ad69cb855d89418bdb80623f14800e
      Signed-off-by: default avatarKalyani Chidambaram <kalyanic@nvidia.com>
      2bf1085d
  3. 20 Mar, 2020 5 commits
  4. 19 Mar, 2020 8 commits
    • Manish Pandey's avatar
    • Manish Pandey's avatar
      fvp: use two instances of Cactus at S-EL1 · 161dbc43
      Manish Pandey authored
      
      
      To demonstrate communication between SP's two instances of Cactus at
      S-EL1 has been used.
      This patch replaces Ivy SP with cactus-secondary SP which aligns with
      changes in tf-a-tests repository.
      Signed-off-by: default avatarManish Pandey <manish.pandey2@arm.com>
      Change-Id: Iee84f1f7f023b7c4f23fbc13682a42614a7f3707
      161dbc43
    • Olivier Deprez's avatar
      spmc: manifest changes to support two sample cactus secure partitions · 3d5ed6de
      Olivier Deprez authored
      
      
      When using the SPM Dispatcher, the SPMC sits as a BL32 component
      (BL32_IMAGE_ID). The SPMC manifest is passed as the TOS fw config
      component (TOS_FW_CONFIG_ID). It defines platform specific attributes
      (memory range and physical CPU layout) as well as the attributes for
      each secure partition (mostly load address). This manifest is passed
      to the SPMC on boot up. An SP package contains the SP dtb in the SPCI
      defined partition manifest format. As the SPMC manifest was enriched
      it needs an increase of tos_fw-config max-size in fvp_fw_config dts.
      Signed-off-by: default avatarOlivier Deprez <olivier.deprez@arm.com>
      Change-Id: Ia1dce00c6c4cbaa118fa56617980d32e2956a94e
      3d5ed6de
    • Sandrine Bailleux's avatar
      Merge changes from topic "tegra-downstream-03122020" into integration · f097fb70
      Sandrine Bailleux authored
      * changes:
        Tegra: assembly version of the 'plat_core_pos_by_mpidr' handler
        Tegra194: reset power state info for CPUs
        tlkd: remove system off/reset handlers
        Tegra186: system resume from TZSRAM memory
        Tegra186: disable PROGRAMMABLE_RESET_ADDRESS
        Tegra210: SE: switch SE clock source to CLK_M
        Tegra: increase platform assert logging level to VERBOSE
        spd: trusty: disable error messages seen during boot
        Tegra194: enable dual execution for EL2 and EL3
        Tegra: aarch64: calculate core position from one place
        Tegra194: Update t194_nvg.h to v6.7
      f097fb70
    • Varun Wadekar's avatar
      Tegra: assembly version of the 'plat_core_pos_by_mpidr' handler · 0ac1bf72
      Varun Wadekar authored
      
      
      The 'plat_core_pos_by_mpidr' handler gets called very early during boot
      and the compiler generated code overwrites the caller's registers.
      
      This patch converts the 'plat_core_pos_by_mpidr' handler into an assembly
      function and uses registers x0-x3, to fix this anomaly.
      
      Change-Id: I8d974e007a0bad039defaf77b11a180d899ead3c
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      0ac1bf72
    • Varun Wadekar's avatar
      Tegra194: reset power state info for CPUs · 89121c27
      Varun Wadekar authored
      
      
      We set deepest power state when offlining a core but that may not be
      requested by non-secure sw which controls idle states. It will re-init
      this info from non-secure software when the core come online.
      
      This patch resets the power state in the non-secure world context
      to allow it to start with a clean slate.
      
      Change-Id: Iafd92cb2a49571aa6eeb9580beaaff4ba55a87dc
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      89121c27
    • Varun Wadekar's avatar
      tlkd: remove system off/reset handlers · 0600cf63
      Varun Wadekar authored
      
      
      TLK does not participate in the system off/reset process and so
      has no use for the SYSTEM_OFF/RESET notifications.
      
      This patch removes the system off/reset handlers as a result.
      
      Change-Id: Icf1430b1400cea88000e6d54426eb604a43cbe6c
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      0600cf63
    • Varun Wadekar's avatar
      Tegra186: system resume from TZSRAM memory · 2139c9c8
      Varun Wadekar authored
      
      
      TZSRAM loses power during System suspend, so the entire contents
      are copied to TZDRAM before Sysem Suspend entry. The warmboot code
      verifies and restores the contents to TZSRAM during System Resume.
      
      This patch removes the code that sets up CPU vector to point to
      TZSRAM during System Resume as a result. The trampoline code can
      also be completely removed as a result.
      
      Change-Id: I2830eb1db16efef3dfd96c4e3afc41a307588ca1
      Signed-off-by: default avatarVarun Wadekar <vwadekar@nvidia.com>
      2139c9c8