1. 02 9月, 2021 1 次提交
    • C
      armv7: Add Position Independent Execution support · cd82f199
      Chia-Wei Wang 提交于
      A U-Boot image could be loaded and executed at a different
      location than it was linked at.
      
      For example, Aspeed takes a stable release version of U-Boot image
      as the golden one for recovery purposes. When the primary storage
      such as flash is corrupted, the golden image would be loaded to any
      SRAM/DRAM address on demands through ethernet/UART/etc and run for
      rescue.
      
      To deal with this condition, the PIE is needed as there is only one
      signed, golden image, which could be however executed at different
      places.
      
      This patch adds the PIE support for ARMv7 platform.
      Signed-off-by: NChia-Wei Wang <chiawei_wang@aspeedtech.com>
      cd82f199
  2. 01 9月, 2021 1 次提交
    • T
      Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig · a2ac2b96
      Tom Rini 提交于
      This converts the following to Kconfig:
         CONFIG_SKIP_LOWLEVEL_INIT
         CONFIG_SKIP_LOWLEVEL_INIT_ONLY
      
      In order to do this, we need to introduce SPL and TPL variants of these
      options so that we can clearly disable these options only in SPL in some
      cases, and both instances in other cases.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      a2ac2b96
  3. 18 5月, 2019 1 次提交
  4. 27 11月, 2018 1 次提交
  5. 29 6月, 2018 2 次提交
    • N
      ARM: Introduce ability to enable invalidate of BTB with ICIALLU on Cortex-A15 for CVE-2017-5715 · c2ca3fdf
      Nishanth Menon 提交于
      As recommended by Arm in [1], ACTLR[0] (Enable invalidates of BTB)
      needs to be set[2] for BTB to be invalidated on ICIALLU. This needs to
      be done unconditionally for Cortex-A15 processors. Provide a config
      option for platforms to enable this option based on impact analysis
      for products.
      
      NOTE: This patch in itself is NOT the final solution, this requires:
      a) Implementation of v7_arch_cp15_set_acr on SoCs which may not
         provide direct access to ACR register.
      b) Operating Systems such as Linux to provide adequate workaround in the
         right locations.
      c) This workaround applies to only the boot processor. It is important
         to apply workaround as necessary (context-save-restore) around low
         power context loss OR additional processors as necessary in either
         firmware support OR elsewhere in OS.
      
      [1] https://developer.arm.com/support/security-update
      [2] http://infocenter.arm.com/help/topic/com.arm.doc.ddi0438c/BABGHIBG.html
      
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Christoffer Dall <christoffer.dall@linaro.org>
      Cc: Andre Przywara <Andre.Przywara@arm.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Tom Rini <trini@konsulko.com>
      Cc: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Tested-by: NFabio Estevam <fabio.estevam@nxp.com>
      c2ca3fdf
    • N
      ARM: Introduce ability to enable ACR::IBE on Cortex-A8 for CVE-2017-5715 · 7b37a9c7
      Nishanth Menon 提交于
      As recommended by Arm in [1], IBE[2] has to be enabled unconditionally
      for BPIALL to be functional on Cortex-A8 processors. Provide a config
      option for platforms to enable this option based on impact analysis
      for products.
      
      NOTE: This patch in itself is NOT the final solution, this requires:
      a) Implementation of v7_arch_cp15_set_acr on SoCs which may not
         provide direct access to ACR register.
      b) Operating Systems such as Linux to provide adequate workaround in the right
         locations.
      c) This workaround applies to only the boot processor. It is important
         to apply workaround as necessary (context-save-restore) around low
         power context loss OR additional processors as necessary in either
         firmware support OR elsewhere in OS.
      
      [1] https://developer.arm.com/support/security-update
      [2] http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344k/Bgbffjhh.html
      
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Christoffer Dall <christoffer.dall@linaro.org>
      Cc: Andre Przywara <Andre.Przywara@arm.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Tom Rini <trini@konsulko.com>
      Cc: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Tested-by: NFabio Estevam <fabio.estevam@nxp.com>
      7b37a9c7
  6. 08 5月, 2018 2 次提交
  7. 07 5月, 2018 1 次提交
    • T
      SPDX: Convert all of our single license tags to Linux Kernel style · 83d290c5
      Tom Rini 提交于
      When U-Boot started using SPDX tags we were among the early adopters and
      there weren't a lot of other examples to borrow from.  So we picked the
      area of the file that usually had a full license text and replaced it
      with an appropriate SPDX-License-Identifier: entry.  Since then, the
      Linux Kernel has adopted SPDX tags and they place it as the very first
      line in a file (except where shebangs are used, then it's second line)
      and with slightly different comment styles than us.
      
      In part due to community overlap, in part due to better tag visibility
      and in part for other minor reasons, switch over to that style.
      
      This commit changes all instances where we have a single declared
      license in the tag as both the before and after are identical in tag
      contents.  There's also a few places where I found we did not have a tag
      and have introduced one.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      83d290c5
  8. 10 1月, 2018 1 次提交
    • S
      arm: Exercise v7_arch_cp15_set_acr even without errata fixups · d852600e
      Siarhei Siamashka 提交于
      By applying this patch, we are ensuring that the code paths
      responsible for applying errata workarounds are also exercised
      on CPU revisions, which actually don't need these workarounds.
      
      Only CONFIG_ARM_ERRATA_621766, CONFIG_ARM_ERRATA_454179,
      CONFIG_ARM_ERRATA_725233 and CONFIG_ARM_ERRATA_430973 are
      covered by this patch (Cortex-A8).
      
      This improves code coverage when testing U-Boot builds
      on newer hardware. In particular, the problematic commit
      00bbe96e ("arm: omap: Unify get_device_type() function")
      would break both BeageBoard and BeagleBoard XM rather than
      just older BeagleBoard.
      
      As an additional bonus, we need fewer instructins and the SPL
      size is reduced.
      Signed-off-by: NSiarhei Siamashka <siarhei.siamashka@gmail.com>
      Reviewed-by: NTom Rini <trini@konsulko.com>
      d852600e
  9. 22 11月, 2017 1 次提交
  10. 16 8月, 2017 1 次提交
    • P
      arm: Implement workaround for Cortex-A9 errata 845369 · 11d94319
      Peng Fan 提交于
      Under very rare timing circumstances, transitioning into streaming
      mode might create a data corruption. Present on Two or more processors
      or 1 core with ACP, all revisions. This erratum can be worked round
      by setting bit[22] of the undocumented Diagnostic Control Register to 1.
      Signed-off-by: NPeng Fan <peng.fan@nxp.com>
      Cc: Albert Aribaud <albert.u.boot@aribaud.net>
      Cc: Tom Rini <trini@konsulko.com>
      Cc: Stefano Babic <sbabic@denx.de>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Reviewed-by: NStefano Babic <sbabic@denx.de>
      11d94319
  11. 08 5月, 2017 1 次提交
  12. 15 3月, 2017 1 次提交
  13. 07 10月, 2016 1 次提交
  14. 13 6月, 2016 1 次提交
  15. 13 8月, 2015 1 次提交
    • N
      ARM: Introduce erratum workaround for 801819 · a615d0be
      Nishanth Menon 提交于
      Add workaround for Cortex-A15 ARM erratum 801819 which says in summary
      that "A livelock can occur in the L2 cache arbitration that might
      prevent a snoop from completing. Under certain conditions this can
      cause the system to deadlock. "
      
      Recommended workaround is as follows:
      Do both of the following:
      
      1) Do not use the write-back no-allocate memory type.
      2) Do not issue write-back cacheable stores at any time when the cache
      is disabled (SCTLR.C=0) and the MMU is enabled (SCTLR.M=1). Because it
      is implementation defined whether cacheable stores update the cache when
      the cache is disabled it is not expected that any portable code will
      execute cacheable stores when the cache is disabled.
      
      For implementations of Cortex-A15 configured without the “L2 arbitration
      register slice” option (typically one or two core systems), you must
      also do the following:
      
      3) Disable write-streaming in each CPU by setting ACTLR[28:25] = 0b1111
      
      So, we provide an option to disable write streaming on OMAP5 and DRA7.
      It is a rare condition to occur and may be enabled selectively based
      on platform acceptance of risk.
      
      Applies to: A15 revisions r2p0, r2p1, r2p2, r2p3 or r2p4 and REVIDR[3]
      is set to 0.
      
      Note: certain unicore SoCs *might* not have REVIDR[3] not set, but
      might not meet the condition for the erratum to occur when they donot
      have ACP (Accelerator Coherency Port) hooked to ACE (AXI Coherency
      Extensions). Such SoCs will need the work around handled in the SoC
      specific manner, since there is no ARM generic manner to detect such
      configurations.
      
      Based on ARM errata Document revision 18.0 (22 Nov 2013)
      Suggested-by: NRichard Woodruff <r-woodruff2@ti.com>
      Suggested-by: NBrad Griffis <bgriffis@ti.com>
      Reviewed-by: NBrad Griffis <bgriffis@ti.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      a615d0be
  16. 07 7月, 2015 1 次提交
  17. 24 3月, 2015 1 次提交
    • R
      remove unnecessary version.h includes · 7682a998
      Rob Herring 提交于
      Various files are needlessly rebuilt every time due to the version and
      build time changing. As version.h is not actually needed, remove the
      include.
      Signed-off-by: NRob Herring <robh@kernel.org>
      Cc: Albert Aribaud <albert.u.boot@aribaud.net>
      Cc: Stefano Babic <sbabic@denx.de>
      Cc: Minkyu Kang <mk7.kang@samsung.com>
      Cc: Marek Vasut <marex@denx.de>
      Cc: Tom Warren <twarren@nvidia.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Macpaul Lin <macpaul@andestech.com>
      Cc: Wolfgang Denk <wd@denx.de>
      Cc: York Sun <yorksun@freescale.com>
      Cc: Stefan Roese <sr@denx.de>
      Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Philippe Reynes <tremyfr@yahoo.fr>
      Cc: Eric Jarrige <eric.jarrige@armadeus.org>
      Cc: "David Müller" <d.mueller@elsoft.ch>
      Cc: Phil Edworthy <phil.edworthy@renesas.com>
      Cc: Robert Baldyga <r.baldyga@samsung.com>
      Cc: Torsten Koschorrek <koschorrek@synertronixx.de>
      Cc: Anatolij Gustschin <agust@denx.de>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Reviewed-by: NŁukasz Majewski <l.majewski@samsung.com>
      7682a998
  18. 13 3月, 2015 4 次提交
  19. 17 2月, 2015 3 次提交
  20. 30 1月, 2015 1 次提交
  21. 29 10月, 2014 1 次提交
  22. 15 5月, 2014 2 次提交
  23. 08 4月, 2014 2 次提交
  24. 27 2月, 2014 1 次提交
  25. 26 1月, 2014 1 次提交
    • M
      ARM: armv7: Make indirect vector addresses globl · 7cbe638e
      Marek Vasut 提交于
      Make indirect vectors addresses global, so they can be replaced by
      various code that needs to do so. For example the MX6 PCI express
      driver needs to temporarily replace data abort handler when reading
      the config space.
      Signed-off-by: NMarek Vasut <marex@denx.de>
      Cc: Albert Aribaud <albert.u.boot@aribaud.net>
      Cc: Eric Nelson <eric.nelson@boundarydevices.com>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Stefano Babic <sbabic@denx.de>
      7cbe638e
  26. 15 10月, 2013 1 次提交
  27. 24 7月, 2013 1 次提交
  28. 31 5月, 2013 2 次提交
  29. 16 4月, 2013 2 次提交
    • T
      Tegra: Restore cp15 VBAR _start vector write for ARMv7 · 3ebbbfe4
      Tom Warren 提交于
      A start vector fix was added by AneeshV for OMAP4 (commit 0d479b53),
      and caused the old monilithic Tegra builds to hang due to an undefined
      instruction trap. Previously, the code needed to run on both the
      AVP (ARM7TDI) and A9, and the AVP doesn't have a CP15 register.
      I corrected this in commit 6d6c0bae w/#ifndef CONFIG_TEGRA, but
      now that we use SPL, and boot the AVP w/o any ARMv7 code, I can
      revert my change, and make Aneesh's change apply to Tegra.
      Signed-off-by: NTom Warren <twarren@nvidia.com>
      3ebbbfe4
    • A
      ARMv7: start.S: stay in HYP mode if u-boot is entered in it · c4a4e2e2
      Andre Przywara 提交于
      The KVM and Xen hypervisors for the Cortex-A15 virtualization
      implementation need to be entered in HYP mode. Should the primary
      board firmware already enter HYP mode (Calxeda firmware does that),
      we should not deliberately drop back to SVC mode.
      Since U-boot does not use the MMU, running in HYP mode is just fine.
      Signed-off-by: NAndre Przywara <andre.przywara@linaro.org>
      c4a4e2e2