1. 03 9月, 2021 1 次提交
    • T
      Revert most of the series for adding vexpress_aemv8r support · 00179319
      Tom Rini 提交于
      Per a request from Andre Przywara and agreed with by Peter Hoyes, the
      vexpress aemv8r support wasn't quite ready to be merged, but the
      discussion had moved off list.  We should keep the first patch in the
      series for now, but revert the rest.  This reverts the following
      commits:
      
      e0bd6f31 doc: Add documentation for the Arm vexpress board configs
      30e5a449 arm: Use armv8_switch_to_el1 env to switch to EL1
      b53bbca6 vexpress64: Add BASER_FVP vexpress board variant
      2f5b7b74 armv8: Add ARMv8 MPU configuration logic
      37a757e2 armv8: Ensure EL1&0 VMSA is enabled
      Signed-off-by: NTom Rini <trini@konsulko.com>
      00179319
  2. 02 9月, 2021 2 次提交
    • P
      arm: Use armv8_switch_to_el1 env to switch to EL1 · 30e5a449
      Peter Hoyes 提交于
      Use the environment variable armv8_switch_to_el1 to determine whether
      to switch to EL1 at runtime. This is an alternative to the
      CONFIG_ARMV8_SWITCH_TO_EL1 compile-time option.
      
      The environment variable will be ineffective if the ARMV8_MULTIENTRY
      config is used.
      
      This is required by the Armv8r64 architecture, which must be able to
      boot at S-EL1 for Linux but may need to boot at other ELs for other
      systems.
      Signed-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
      30e5a449
    • 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
  3. 08 8月, 2021 1 次提交
    • J
      Revert "arm: bootm: Disable LMB reservation for command line and board info on arm64" · 3823315c
      Jan Kiszka 提交于
      This reverts commit 2359fa7a.
      
      While the goal is valid and there is surely unused memory in that area,
      we also have a lot of crucial things still located at the top-of-memory
      while running lmb_alloc_base. Such things are the page table (tlb_addr),
      relocated U-Boot and the active stack. Possibly more. So this patch was
      premature, we will need relocations of those things first if we want to
      use the range.
      
      Fixes booting on the IOT2050, but likely also on other boards. It got
      stuck on relocating the FDT - over the relocated U-Boot code.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      3823315c
  4. 03 8月, 2021 1 次提交
  5. 10 7月, 2021 1 次提交
    • M
      arm: bootm: Disable LMB reservation for command line and board info on arm64 · 2359fa7a
      Marek Vasut 提交于
      On arm64, board info is not applicable and kernel command line patched into
      the DT, so the LMB reservation here makes no sense anymore. On legacy arm32,
      this might still be necessary on systems which do not use DT or use legacy
      ATAGS. Disable this LMB reservation on arm64.
      
      This also permits Linux DT to specify reserved memory node at address close
      to the end of DRAM bank, i.e. overlaping with U-Boot location. Since after
      boot, U-Boot will be no more, this is OK.
      Signed-off-by: NMarek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Hai Pham <hai.pham.ud@renesas.com>
      Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
      Cc: Stephen Warren <swarren@nvidia.com>
      Cc: Tom Rini <trini@konsulko.com>
      2359fa7a
  6. 09 7月, 2021 1 次提交
  7. 29 6月, 2021 1 次提交
    • K
      arm64: Fix relocation of env_addr if POSITION_INDEPENDENT=y · 534f0fbd
      Kunihiko Hayashi 提交于
      If both POSITION_INDEPENDENT and SYS_RELOC_GD_ENV_ADDR are enabled,
      wherever original env is placed anywhere, it should be relocated to
      the right address.
      
      Relocation offset gd->reloc_off is calculated with SYS_TEXT_BASE in
      setup_reloc() and env address gd->env_addr is relocated by the offset in
      initr_reloc_global_data().
      
      gd->env_addr
        = (orig env) + gd->reloc_off
        = (orig env) + (gd->relocaddr - SYS_TEXT_BASE)
      
      However, SYS_TEXT_BASE isn't always runtime base address when
      POSITION_INDEPENDENT is enabled. So the relocated env_addr might point to
      wrong address. For example, if SYS_TEXT_BASE is zero, gd->env_addr is
      out of memory location and memory exception will occur.
      
      There is a difference between linked address such as SYS_TEXT_BASE and
      runtime base address. In _main, the difference is calculated as
      "run-vs-link" offset. The env_addr should also be added to the offset
      to fix the address.
      
      gd->env_addr
        = (orig env) + ("run-vs-link" offset)   + gd->reloc_off
        = (orig env) + (SYS_TEXT_BASE - _start) + (gd->relocaddr - SYS_TEXT_BASE)
        = (orig env) + (gd->relocaddr - _start)
      
      Cc: Marek Vasut <marex@denx.de>
      Signed-off-by: NKunihiko Hayashi <hayashi.kunihiko@socionext.com>
      Acked-by: NMarek Vasut <marex@denx.de>
      Tested-by: NMarek Vasut <marex@denx.de>
      534f0fbd
  8. 25 5月, 2021 3 次提交
  9. 28 4月, 2021 1 次提交
  10. 27 4月, 2021 1 次提交
  11. 20 4月, 2021 1 次提交
    • H
      arm64: gic-v3-its: Clear the Pending table before enabling LPIs · 6f6876a0
      Hou Zhiqiang 提交于
      The GICv3 RM requires "The first 1KB of memory for the LPI Pending tables
      must contain only zeros on initial allocation, and this must be visible
      to the Redistributors, or else the effect is UNPREDICTABLE".
      
      And as the following statement, we here clear the whole Pending tables
      instead of the first 1KB.
      "An LPI Pending table that contains only zeros, including in the first 1KB,
      indicates that there are no pending LPIs.
      The first 1KB of the LPI Pending table is IMPLEMENTATION DEFINED. However,
      if the first 1KB of the LPI Pending table and the rest of the table contain
      only zeros, this must indicate that there are no pending LPIs."
      
      And there isn't any pending LPI under U-Boot, so it's unnecessary to
      load the contents of the Pending table during the enablement, then set
      the GICR_PENDBASER.PTZ flag.
      Signed-off-by: NHou Zhiqiang <Zhiqiang.Hou@nxp.com>
      Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com> # NXP LS1028A
      Reviewed-by: NWasim Khan <wasim.khan@nxp.com>
      Reviewed-by: NPriyanka Jain <priyanka.jain@nxp.com>
      6f6876a0
  12. 13 4月, 2021 1 次提交
    • H
      bootm: do not hang on failure · 0ca7c4d9
      Heinrich Schuchardt 提交于
      On ARMv8 systems
      
          load mmc 0:1 $loadaddr  vmlinuz-5.10.0-3-arm64
          booti
      
      leads to a hanging system requiring to physically reset the system:
      
          FDT and ATAGS support not compiled in - hanging
          ### ERROR ### Please RESET the board ###
      
      For systems where physical access is difficult hanging is a poor choice.
      It is preferable to reset the system when U-Boot reaches a state that is
      not recoverable.
      Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      0ca7c4d9
  13. 03 3月, 2021 3 次提交
  14. 03 2月, 2021 4 次提交
  15. 30 1月, 2021 1 次提交
  16. 16 1月, 2021 1 次提交
  17. 06 1月, 2021 1 次提交
  18. 05 12月, 2020 1 次提交
  19. 22 9月, 2020 1 次提交
  20. 05 8月, 2020 1 次提交
  21. 29 7月, 2020 2 次提交
  22. 17 7月, 2020 1 次提交
    • M
      treewide: convert bd_t to struct bd_info by coccinelle · b75d8dc5
      Masahiro Yamada 提交于
      The Linux coding style guide (Documentation/process/coding-style.rst)
      clearly says:
      
        It's a **mistake** to use typedef for structures and pointers.
      
      Besides, using typedef for structures is annoying when you try to make
      headers self-contained.
      
      Let's say you have the following function declaration in a header:
      
        void foo(bd_t *bd);
      
      This is not self-contained since bd_t is not defined.
      
      To tell the compiler what 'bd_t' is, you need to include <asm/u-boot.h>
      
        #include <asm/u-boot.h>
        void foo(bd_t *bd);
      
      Then, the include direcective pulls in more bloat needlessly.
      
      If you use 'struct bd_info' instead, it is enough to put a forward
      declaration as follows:
      
        struct bd_info;
        void foo(struct bd_info *bd);
      
      Right, typedef'ing bd_t is a mistake.
      
      I used coccinelle to generate this commit.
      
      The semantic patch that makes this change is as follows:
      
        <smpl>
        @@
        typedef bd_t;
        @@
        -bd_t
        +struct bd_info
        </smpl>
      Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
      b75d8dc5
  23. 11 7月, 2020 1 次提交
  24. 26 6月, 2020 1 次提交
  25. 19 5月, 2020 7 次提交