1. 28 Sep, 2018 1 commit
    • Antonio Nino Diaz's avatar
      rockchip: Migrate to new interfaces · 2d6f1f01
      Antonio Nino Diaz authored
      
      
      - Migrate to new GIC interfaces.
      - Migrate to bl31_early_platform_setup2().
      - Use bl31_warm_entrypoint() instead of psci_entrypoint().
      - Use PLAT_VIRT_ADDR_SPACE_SIZE and PLAT_PHY_ADDR_SPACE_SIZE.
      - Update Makefile paths.
      - Remove references to removed build options.
      - Use private definition of bl31_params_t.
      
      Change-Id: I860341594b5c868b2fcaa59d23957ee718472ef1
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      2d6f1f01
  2. 22 Aug, 2018 1 commit
  3. 20 Jul, 2018 1 commit
  4. 11 Jul, 2018 1 commit
  5. 13 Jun, 2018 1 commit
    • Paul Kocialkowski's avatar
      rockchip: Move stdint header to the offending header file · fb83888b
      Paul Kocialkowski authored
      
      
      The stdint header was introduced to rk3399's plat_sip_calls.c in order
      to fix missing stdint definitions. However, ordering headers
      alphabetically caused the fix to be ineffective, as stint was then
      included after the offending header file (dfs.h).
      
      Move the stdint include to that header to properly fix the issue.
      
      Change-Id: Ieaad37a7932786971488ab58fc5b169bfa79e197
      Signed-off-by: default avatarPaul Kocialkowski <contact@paulk.fr>
      fb83888b
  6. 15 May, 2018 3 commits
    • Derek Basehore's avatar
      rockchip/rk3399: Add watchdog support in pmusram · 5b886432
      Derek Basehore authored
      
      
      To catch early hangs in resume, this sets up the watchdog before
      anything else in the pmusram code (ignoring setting up the stack...).
      This uses hard coded settings for the watchdog until the proper
      watchdog restore later on in the firmware/kernel.
      
      This also restores the old watchdog register values before the PLLs
      are restored to make sure we don't temporarily switch over to a 1/3s
      timeout on the watchdog when the pclk_wdt goes from 4MHz to 100MHz.
      
      Change-Id: I8f7652089a88783271b17482117b4609330abe80
      Signed-off-by: default avatarDerek Basehore <dbasehore@chromium.org>
      5b886432
    • Lin Huang's avatar
      rockchip/rk3399: Split M0 binary into two · ff4735cf
      Lin Huang authored
      
      
      All the m0 code run in SRAM before, but we need to watch PMU_POWER_ST
      when SOC enter into FSM, and SRAM will shutdown during this time, so
      this code need run in PMUSRAM. But PMUSRAM only 8K space, we can not
      put all the m0 binary into PMUSRAM, Split the M0 binary into two, dram
      part still run in SRAM, and suspend part run in PMUSRAM.
      
      Change-Id: Ie08bdf3e2b8838f12b9297fe60ab0aad219684b1
      Signed-off-by: default avatarLin Huang <hl@rock-chips.com>
      ff4735cf
    • Lin Huang's avatar
      rockchip/rk3399: improve pmu powermode configure when suspend · 133598cb
      Lin Huang authored
      
      
      we need to enable PMU_WKUP_RST_EN for pmu powermode configure, since
      enable wakeup reset will hold the soc status, so the SOC will not affect
      by some power or other single glitch when resume, and keep the soc in the
      right status. And it not need to enable DDRIO_RET_HW_DE_REQ, the ddr resume
      will do it manual.
      
      Change-Id: Ib4af897ffb3cb63dc2aa9a6002e5d9ef86ee4a49
      Signed-off-by: default avatarLin Huang <hl@rock-chips.com>
      133598cb
  7. 27 Apr, 2018 1 commit
  8. 07 Apr, 2018 1 commit
  9. 26 Mar, 2018 1 commit
  10. 21 Mar, 2018 1 commit
    • Antonio Nino Diaz's avatar
      Rename 'smcc' to 'smccc' · 085e80ec
      Antonio Nino Diaz authored
      
      
      When the source code says 'SMCC' it is talking about the SMC Calling
      Convention. The correct acronym is SMCCC. This affects a few definitions
      and file names.
      
      Some files have been renamed (smcc.h, smcc_helpers.h and smcc_macros.S)
      but the old files have been kept for compatibility, they include the
      new ones with an ERROR_DEPRECATED guard.
      
      Change-Id: I78f94052a502436fdd97ca32c0fe86bd58173f2f
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      085e80ec
  11. 20 Mar, 2018 1 commit
    • Lin Huang's avatar
      rockchip/rk3399: save/restore watchdog register correctly · 56bf9407
      Lin Huang authored
      
      
      there are two fix for save/restore watchdog register:
      1. watchdog plck will shutdown after secure_watchdog_disable(), so need
         to save register before it and restore after secure_watchdog_enable().
      2. need write 0x76 to cnt_restart to keep watchdog alive when restore
         watchdog register.
      
      Change-Id: I1f6fbceae22186e3b72a87df6332a110adf37479
      Signed-off-by: default avatarLin Huang <hl@rock-chips.com>
      56bf9407
  12. 27 Feb, 2018 1 commit
  13. 30 Jan, 2018 1 commit
    • Caesar Wang's avatar
      rockchip/rk3399: Fix memory corruptions or illegal memory access · de3c3007
      Caesar Wang authored
      
      
      Coverity scan done for the coreboot project found the issue:
      Coverity (*** CID 1385418: Memory - illegal accesses (OVERRUN))
      Coverity (*** CID 1385419: Memory - corruptions  (OVERRUN))
      
      Fix the Converity error issue with store_cru[] loop needs to be one
      element bigger.
      
      Fixes: ARM-software/tf-issues#544
      
      Change-Id: I420f0a660b24baaa5fc5e78fca242cf750c9bbc7
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      de3c3007
  14. 24 Jan, 2018 4 commits
  15. 19 Jan, 2018 2 commits
    • Julius Werner's avatar
      rockchip: Move to MULTI_CONSOLE_API · 890abc33
      Julius Werner authored
      
      
      This patch changes all Rockchip platforms to use the new
      MULTI_CONSOLE_API. The platform-specific plat_crash_console
      implementations are removed so that the platform can use the ones from
      the common platform code instead.
      
      Also change the registers used in plat_crash_print_regs. The existing
      use of x16 and x17 has always been illegal, since those registers are
      reserved for use by the linker as a temporary scratch registers in
      intra-procedure-call veneers and can never be expected to maintain their
      values across a function call.
      
      Change-Id: I8249424150be8d5543ed4af93b56756795a5288f
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      890abc33
    • Julius Werner's avatar
      rockchip: Use coreboot-supplied serial console on coreboot systems · 3c250b9a
      Julius Werner authored
      
      
      This patch changes all Rockchip platforms to initialize the serial
      console with information supplied by coreboot rather than hardcoded
      base address and divisor values if BL31 is run on top of coreboot.
      Moving the BL2-to-BL31 parameter parsing as early as possible to ensure
      that the console is available for all following code.
      
      Also update the Rockchip platform to use MULTI_CONSOLE_API.
      
      Change-Id: I670d350fa2f8b8133539f91ac14977ab47db60d9
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      3c250b9a
  16. 02 Dec, 2017 1 commit
  17. 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
  18. 29 Nov, 2017 1 commit
    • Antonio Nino Diaz's avatar
      Replace magic numbers in linkerscripts by PAGE_SIZE · a2aedac2
      Antonio Nino Diaz authored
      
      
      When defining different sections in linker scripts it is needed to align
      them to multiples of the page size. In most linker scripts this is done
      by aligning to the hardcoded value 4096 instead of PAGE_SIZE.
      
      This may be confusing when taking a look at all the codebase, as 4096
      is used in some parts that aren't meant to be a multiple of the page
      size.
      
      Change-Id: I36c6f461c7782437a58d13d37ec8b822a1663ec1
      Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
      a2aedac2
  19. 06 Nov, 2017 1 commit
  20. 29 Aug, 2017 7 commits
  21. 14 Jul, 2017 1 commit
  22. 05 Jul, 2017 1 commit
  23. 30 Jun, 2017 1 commit
    • Caesar Wang's avatar
      rockchip/rk3399: fixes the typo and the WARNINGS during suspend/resume · c3710ee7
      Caesar Wang authored
      
      
      This patch fixes the two things as follows:
      
      1) rk3399_flash_l2_b" seems to be a typo. That's "flush", not "flash".
      
      2) fixes the warnings log.
      We always hit the warnings thing during the suspend, as below log:
      ..
      [   51.022334] CPU5: shutdown
      [   51.025069] psci: CPU5 killed.
      INFO:    sdram_params->ddr_freq = 928000000
      WARNING: rk3399_flash_l2_b:reg 28830380,wait
      
      When the L2 completes the clean and invalidate sequence, it asserts the
      L2FLUSHDONE signal. The SoC can now deassert L2FLUSHREQ signal and then
      the L2 deasserts L2FLUSHDONE.
      
      Then, a loop without a delay isn't really great to measure time. We should
      probably add a udelay(10) or so in there and then maybe replace the WARN()
      after the loop. In the actual tests, the L2 cache will take ~4ms by
      default for big cluster.
      
      In the real world that give 10ms for the enough margin, like the
      ddr/cpu/cci frequency and other factors that will affect it.
      
      Change-Id: I55788c897be232bf72e8c7b0e10cf9b06f7aa50d
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      c3710ee7
  24. 28 Jun, 2017 1 commit
    • Caesar Wang's avatar
      rockchip: enable A53's erratum 855873 for rk3399 · dea1e8ee
      Caesar Wang authored
      
      
      For rk3399, the L2ACTLR[14] is 0 by default, as ACE CCI-500 doesn't
      support WriteEvict. and you will hit the condition L2ACTLR[3] with 0,
      as the Evict transactions should propagate to CCI-500 since it has
      snoop filters.
      
      Maybe this erratum applies to all Cortex-A53 cores so far, especially
      if RK3399's A53 is a r0p4. we should enable it to avoid data corruption,
      
      Change-Id: Ib86933f1fc84f8919c8e43dac41af60fd0c3ce2f
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      dea1e8ee
  25. 26 Jun, 2017 1 commit
  26. 08 Jun, 2017 3 commits