1. 24 Feb, 2017 30 commits
  2. 06 Feb, 2017 1 commit
    • Douglas Raillard's avatar
      Replace some memset call by zeromem · 32f0d3c6
      Douglas Raillard authored
      
      
      Replace all use of memset by zeromem when zeroing moderately-sized
      structure by applying the following transformation:
      memset(x, 0, sizeof(x)) => zeromem(x, sizeof(x))
      
      As the Trusted Firmware is compiled with -ffreestanding, it forbids the
      compiler from using __builtin_memset and forces it to generate calls to
      the slow memset implementation. Zeromem is a near drop in replacement
      for this use case, with a more efficient implementation on both AArch32
      and AArch64.
      
      Change-Id: Ia7f3a90e888b96d056881be09f0b4d65b41aa79e
      Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
      32f0d3c6
  3. 23 Jan, 2017 1 commit
    • Masahiro Yamada's avatar
      Use #ifdef for IMAGE_BL* instead of #if · 3d8256b2
      Masahiro Yamada authored
      
      
      One nasty part of ATF is some of boolean macros are always defined
      as 1 or 0, and the rest of them are only defined under certain
      conditions.
      
      For the former group, "#if FOO" or "#if !FOO" must be used because
      "#ifdef FOO" is always true.  (Options passed by $(call add_define,)
      are the cases.)
      
      For the latter, "#ifdef FOO" or "#ifndef FOO" should be used because
      checking the value of an undefined macro is strange.
      
      Here, IMAGE_BL* is handled by make_helpers/build_macro.mk like
      follows:
      
        $(eval IMAGE := IMAGE_BL$(call uppercase,$(3)))
      
        $(OBJ): $(2)
                @echo "  CC      $$<"
                $$(Q)$$(CC) $$(TF_CFLAGS) $$(CFLAGS) -D$(IMAGE) -c $$< -o $$@
      
      This means, IMAGE_BL* is defined when building the corresponding
      image, but *undefined* for the other images.
      
      So, IMAGE_BL* belongs to the latter group where we should use #ifdef
      or #ifndef.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      3d8256b2
  4. 18 Jan, 2017 1 commit
  5. 12 Jan, 2017 1 commit
  6. 04 Jan, 2017 1 commit
  7. 14 Dec, 2016 1 commit
  8. 24 Nov, 2016 1 commit
    • Soren Brinkmann's avatar
      rk3399: Add CFI debug information to SRAM functions · aa2345e9
      Soren Brinkmann authored
      Commit b91d935f
      ("Add CFI debug frame information for ASM functions") modifies the
      assembly macros 'func' and 'endfunc' to include CFI debug frame
      information.
      
      The rockchip platform uses a custom version of the 'func' macro with the
      common 'endfunc' macro. The custom macro wasn't updated in
      b91d935f resulting in the following
      build error:
        plat/rockchip/rk3399/drivers/pmu/plat_pmu_macros.S: Assembler messages:
        plat/rockchip/rk3399/drivers/pmu/plat_pmu_macros.S:155: Error: .cfi_endproc without corresponding .cfi_startproc
        Makefile:532: recipe for target 'build/rk3399/release/bl31/plat_helpers.o' failed
        make: *** [build/rk3399/release/bl31/plat_helpers.o] Error 1
      
      Fixing this by updating the sram_func macro in the rk3399 port.
      
      Fixes: b91d935f
      
       ("Add CFI debug frame information for ASM functions")
      Signed-off-by: default avatarSoren Brinkmann <soren.brinkmann@xilinx.com>
      aa2345e9
  9. 07 Nov, 2016 2 commits
    • Caesar Wang's avatar
      rockchip: remove no needed code for rk3399 · 06077161
      Caesar Wang authored
      
      
      We have do something for clocks gate.
      
      Fox example as the below:
      susped:
      clk_gate_con_save();
      clk_gate_con_disable();
      
      resume:
      clk_gate_con_restore();
      --
      
      SO, add the plls_suspend_prepare() and plls_resume_finish() are not
      necessary to S2R, that will save S2R time if remove them.
      
      BRANCH=none
      BUG=chrome-os-partner:58870,chrome-os-partner:55934
      TEST=build kevin, two dogfooders with suspend_stress_test
      passing 3000 cycles and still going on.
      
      Change-Id: Icfbabc0b3ea8d2b5108d4f3de99a803b6d459669
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      06077161
    • Caesar Wang's avatar
      rockchip: disable watchdog during suspend · a14e0916
      Caesar Wang authored
      
      
      The CA53 and CM0 WDT clock gating in rk3399 SGRF, and ATF is in charge of
      it because the kernel can't touch SGRF.
      
      Basically the WDT didn't stop at suspend time, it just switched from the
      24M to the 32k clock. That meant that the WDT would fire if you slept for
      long enough. In other word, the watchdog timer over count will increase to
      750 (24*1000/32) times.
      The RK3399 HW watchdog interval is 21 seconds. When machine enters the
      suspend, the watchdog will reset the system after 35.7 (750/21) hours.
      
      BUG=chrome-os-partner:59257
      TEST=daisydog checked and set value, powerd_dbus_suspend to verify.
      
      Change-Id: I88bb2a05b7d67d5ffd292f9d05d033ae9a6a3593
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      a14e0916
  10. 03 Nov, 2016 1 commit