1. 25 Jan, 2018 4 commits
  2. 24 Jan, 2018 5 commits
  3. 22 Jan, 2018 5 commits
  4. 20 Jan, 2018 1 commit
  5. 19 Jan, 2018 11 commits
    • davidcunado-arm's avatar
      Merge pull request #1227 from geesun/qx/emmc_macros · b6df93dd
      davidcunado-arm authored
      emmc: add macros CMD21, BUS_WIDTH_DDR_4 and BUS_WIDTH_DDR_8
      b6df93dd
    • Julius Werner's avatar
      coreboot: Add support for CBMEM console · 1c5f5031
      Julius Werner authored
      
      
      coreboot supports an in-memory console to store firmware logs even when
      no serial console is available. It is widely supported by
      coreboot-compatible bootloaders (including SeaBIOS and GRUB) and can be
      read by the Linux kernel.
      
      This patch allows BL31 to add its own log messages to this console. The
      driver will be registered automatically if coreboot support is compiled
      in and detects the presence of a console buffer in the coreboot tables.
      
      Change-Id: I31254dfa0c2fdeb7454634134b5707b4b4154907
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      1c5f5031
    • 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
    • Julius Werner's avatar
      Add platform-independent coreboot support library · 3429c77a
      Julius Werner authored
      
      
      This patch adds the foundation for a platform-independent coreboot
      support library that can be shared by all platforms that boot BL31 from
      coreboot (acting as BL2). It adds code to parse the "coreboot table", a
      data structure that coreboot uses to communicate different kinds of
      information to later-stage firmware and certain OS drivers.
      
      As a first small use case for this information, allow platforms to
      access the serial console configuration used by coreboot, removing the
      need to hardcode base address and divisors and allowing Trusted Firmware
      to benefit from coreboot's user configuration (e.g. which UART to pick
      and which baud rate to use).
      
      Change-Id: I2bfb39cd2609ce6640b844ab68df6c9ae3f28e9e
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      3429c77a
    • Julius Werner's avatar
      drivers: cadence: cdns: Update CDNS driver to support MULTI_CONSOLE_API · 38ba8e93
      Julius Werner authored
      
      
      This patch updates the Cadence CDNS console driver to support the new
      console API. The driver will continue to support the old API as well by
      checking the MULTI_CONSOLE_API compile-time flag.
      
      Change-Id: I2ef8fb0d6ab72696997db1e0243a533499569d6b
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      38ba8e93
    • Julius Werner's avatar
      drivers: arm: pl011: Update PL011 driver to support MULTI_CONSOLE_API · 4a0c4571
      Julius Werner authored
      
      
      This patch updates the ARM PL011 console driver to support the new
      console API. The driver will continue to support the old API as well by
      checking the MULTI_CONSOLE_API compile-time flag.
      
      Change-Id: Ic34e4158addbb0c5fae500c9cff899c05a4f4206
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      4a0c4571
    • Julius Werner's avatar
      drivers: ti: uart: Update 16550 UART driver to support MULTI_CONSOLE_API · 36c42ca1
      Julius Werner authored
      
      
      This patch updates the TI 16550 console driver to support the new
      console API. The driver will continue to support the old API as well by
      checking the MULTI_CONSOLE_API compile-time flag.
      
      Change-Id: I60a44b7ba3c35c74561824c04b8dbe3e3039324c
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      36c42ca1
    • Julius Werner's avatar
      Add default crash console code to hook up to new console API · 17cd67d2
      Julius Werner authored
      
      
      This patch expands the weak stubs for the plat_crash_console_xxx
      functions in common platform code to use the new console API for crash
      output. This should make crash console output "just work" for most cases
      without the need for the platform to explicitly set up a crash console.
      For cases where the normal console framework doesn't work (e.g. very
      early crashes, before the platform can register any consoles), platforms
      are still able to override the functions just like before.
      
      This feature requires the MULTI_CONSOLE_API compile-time flag to work.
      For builds which don't have it set, this patch has no practical effect.
      
      Change-Id: I80dd161cb43f9db59a0bad2dae33c6560cfac584
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      17cd67d2
    • davidcunado-arm's avatar
      Merge pull request #1200 from robertovargas-arm/bl2-el3 · 0d3a27e7
      davidcunado-arm authored
      Add BL2_AT_EL3 build option
      0d3a27e7
    • Manoj Kumar's avatar
      lib/cpus: fix branching in reset function for cortex-a72 AARCH32 mode · 2dc80e49
      Manoj Kumar authored
      
      
      In AARCH32 mode, cortex_a72_reset_func branches to address in lr
      register instead of r5 register. This leads to linux boot failure
      of Cortex-A72 cores in AARCH32 mode on Juno-R2 board.
      
      This patch fixes the branching of cortex_a72_reset_func to r5
      register as in cortex_a57_reset_func implementation.
      Signed-off-by: default avatarManoj Kumar <manoj.kumar3@arm.com>
      2dc80e49
  6. 18 Jan, 2018 11 commits
    • Roberto Vargas's avatar
      bl2-el3: Don't compile BL1 when BL2_AT_EL3 is defined in FVP · 76d26733
      Roberto Vargas authored
      
      
      This patch modifies the makefiles to avoid the definition
      of BL1_SOURCES and BL2_SOURCES in the tbbr makefiles, and
      it lets to the platform makefiles to define them if they
      actually need these images. In the case of BL2_AT_EL3
      BL1 will not be needed usually because the Boot ROM will
      jump directly to BL2.
      
      Change-Id: Ib6845a260633a22a646088629bcd7387fe35dcf9
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      76d26733
    • Roberto Vargas's avatar
      bl2-el3: Don't include BL2 in fip for BL2 at EL3 · c9b31ae8
      Roberto Vargas authored
      
      
      It is better to not include BL2 in FIP when using `BL2 at EL3` as
      platforms using this config would not have the capability to parse the
      FIP format in Boot ROM and BL2 needs to be loaded independently. This
      patch does the required changes for the same.
      
      Change-Id: Iad285c247b3440e2d827fef97c3dd81f5c09cabc
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      c9b31ae8
    • Roberto Vargas's avatar
      bl2-el3: Add documentation for BL2 at EL3 · 4cd1769f
      Roberto Vargas authored
      
      
      Update firmware-design.rst, porting-guide.rst and user-guide.rst
      with the information about BL2 at EL3. Firmware-design.rst is
      also update to explain how to test this feauture with FVP.
      
      Change-Id: I86d64bc64594e13eb041cea9cefa3f7f3fa745bd
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      4cd1769f
    • Dimitris Papastamos's avatar
      Workaround for CVE-2017-5715 for Cortex A9, A15 and A17 · e4b34efa
      Dimitris Papastamos authored
      
      
      A per-cpu vbar is installed that implements the workaround by
      invalidating the branch target buffer (BTB) directly in the case of A9
      and A17 and indirectly by invalidating the icache in the case of A15.
      
      For Cortex A57 and A72 there is currently no workaround implemented
      when EL3 is in AArch32 mode so report it as missing.
      
      For other vulnerable CPUs (e.g. Cortex A73 and Cortex A75), there are
      no changes since there is currently no upstream AArch32 EL3 support
      for these CPUs.
      
      Change-Id: Ib42c6ef0b3c9ff2878a9e53839de497ff736258f
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      e4b34efa
    • Dimitris Papastamos's avatar
      sp_min: Implement workaround for CVE-2017-5715 · 7343505d
      Dimitris Papastamos authored
      
      
      This patch introduces two workarounds for ARMv7 systems.  The
      workarounds need to be applied prior to any `branch` instruction in
      secure world.  This is achieved using a custom vector table where each
      entry is an `add sp, sp, #1` instruction.
      
      On entry to monitor mode, once the sequence of `ADD` instructions is
      executed, the branch target buffer (BTB) is invalidated.  The bottom
      bits of `SP` are then used to decode the exception entry type.
      
      A side effect of this change is that the exception vectors are
      installed before the CPU specific reset function.  This is now
      consistent with how it is done on AArch64.
      
      Note, on AArch32 systems, the exception vectors are typically tightly
      integrated with the secure payload (e.g. the Trusted OS).  This
      workaround will need porting to each secure payload that requires it.
      
      The patch to modify the AArch32 per-cpu vbar to the corresponding
      workaround vector table according to the CPU type will be done in a
      later patch.
      
      Change-Id: I5786872497d359e496ebe0757e8017fa98f753fa
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      7343505d
    • Dimitris Papastamos's avatar
      Print erratum application report for CVE-2017-5715 · eec9e7d1
      Dimitris Papastamos authored
      
      
      Even though the workaround for CVE-2017-5715 is not a CPU erratum, the
      code is piggybacking on the errata framework to print whether the
      workaround was applied, missing or not needed.
      
      Change-Id: I821197a4b8560c73fd894cd7cd9ecf9503c72fa3
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      eec9e7d1
    • Dimitris Papastamos's avatar
      Change the default errata format string · c0ca14d6
      Dimitris Papastamos authored
      
      
      As we are using the errata framework to handle workarounds in a more
      general sense, change the default string to reflect that.
      
      Change-Id: I2e266af2392c9d95e18fe4e965f9a1d46fd0e95e
      Signed-off-by: default avatarDimitris Papastamos <dimitris.papastamos@arm.com>
      c0ca14d6
    • Roberto Vargas's avatar
      bl2-el3: Mark all the assembly functions in bl2 at el3 · 487d3bf2
      Roberto Vargas authored
      
      
      When BL2_AT_EL3 option is enabled some platforms are going to
      need a resident part in BL2 because the boot rom may jump to it
      after a reset. This patch introduces __TEXT_RESIDENT_START__ and
      __TEXT_RESIDENT_END__ linker symbols that mark the resident region.
      
      Change-Id: Ib20c1b8ee257831bcc0ca7d3df98d0cb617a04f8
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      487d3bf2
    • Roberto Vargas's avatar
      Mark functions defined in assembly files · d1f7292e
      Roberto Vargas authored
      
      
      This patch change the name of the section containing the functions
      defined in assembly files from text.* to text.asm.*. This change
      makes possible to select in the linker script the functions
      defined in those files.
      
      Change-Id: If35e44ef1b43ffd951dfac5e052db75d7198e2e0
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      d1f7292e
    • Roberto Vargas's avatar
      bl2-el3: Add BL2 at EL3 support in FVP · 81528dbc
      Roberto Vargas authored
      
      
      This patch add supports for the new API added for BL2 at EL3 for
      FVP. We don't have a non-TF Boot ROM for FVP, but this option can be
      tested setting specific parameters in the model.
      
      The bl2 image is loaded directly in memory instead of being loaded
      by a non-TF Boot ROM and the reset address is changed:
      
      	--data cluster0.cpu0=bl2.bin@0x4001000
      	-C cluster0.cpu0.RVBAR=0x4001000
      
      These parameters mean that in the cold boot path the processor will
      jump to BL2 again. For this reason, BL2 is loaded in dram in this
      case, to avoid other images reclaiming BL2 memory.
      
      Change-Id: Ieb2ff8535a9e67ccebcd8c2212cad366e7776422
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      81528dbc
    • Roberto Vargas's avatar
      bl2-el3: Add BL2_EL3 image · b1d27b48
      Roberto Vargas authored
      
      
      This patch enables BL2 to execute at the highest exception level
      without any dependancy on TF BL1. This enables platforms which already
      have a non-TF Boot ROM to directly load and execute BL2 and subsequent BL
      stages without need for BL1.  This is not currently possible because
      BL2 executes at S-EL1 and cannot jump straight to EL3.
      
      Change-Id: Ief1efca4598560b1b8c8e61fbe26d1f44e929d69
      Signed-off-by: default avatarRoberto Vargas <roberto.vargas@arm.com>
      b1d27b48
  7. 17 Jan, 2018 3 commits