1. 10 Dec, 2020 1 commit
  2. 10 May, 2020 1 commit
    • Peng Fan's avatar
      imx: imx8qm/qxp: Recover SPL data section for partition reboot · 6aead233
      Peng Fan authored
      
      
      When doing partition reboot, the boot image won't be reloaded by ROM,
      it is just CPU reset to boot entry. The SW has to keep the boot image
      inside the RAM unchanged. It includes both the TEXT section and DATA
      section.
      
      For SPL, the problem is DATA section will be updated at runtime, so in
      next partition reboot the data is not same as the initial value from
      cold boot. If any code depends on the initial value, then it will have
      problem.
      
      This patch introduces a mechanism to recover the data section
      for partition reboot. It adds a new section in image for saving
      data section. When from cold boot, the data section will be saved
      to that new section at SPL early phase. When from partition reboot,
      the data section will be restored from the new section.
      Signed-off-by: default avatarYe Li <ye.li@nxp.com>
      Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
      6aead233
  3. 05 Dec, 2019 1 commit
  4. 19 Jun, 2019 1 commit
  5. 22 May, 2019 2 commits
  6. 22 Mar, 2019 1 commit
  7. 19 Feb, 2019 2 commits
  8. 02 Dec, 2018 1 commit
    • Heinrich Schuchardt's avatar
      efi_loader: PSCI reset and shutdown · 81ea0083
      Heinrich Schuchardt authored
      
      
      When an operating system started via bootefi tries to reset or power off
      this is done by calling the EFI runtime ResetSystem(). On most ARMv8 system
      the actual reset relies on PSCI. Depending on whether the PSCI firmware
      resides the hypervisor (EL2) or in the secure monitor (EL3) either an HVC
      or an SMC command has to be issued.
      
      The current implementation always uses SMC. This results in crashes on
      systems where the PSCI firmware is implemented in the hypervisor, e.g.
      qemu-arm64_defconfig.
      
      The logic to decide which call is needed based on the device tree is
      already implemented in the PSCI firmware driver. During the EFI runtime
      the device driver model is not available. But we can minimize code
      duplication by merging the EFI runtime reset and poweroff code with
      the PSCI firmware driver.
      
      As the same HVC/SMC problem is also evident for the ARMv8 do_poweroff
      and reset_misc routines let's move them into the same code module.
      Signed-off-by: default avatarHeinrich Schuchardt <xypron.glpk@gmx.de>
      Reviewed-by: default avatarSumit Garg <sumit.garg@linaro.org>
      Tested-by: default avatarSumit Garg <sumit.garg@linaro.org>
      Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
      81ea0083
  9. 16 Nov, 2018 1 commit
  10. 03 Aug, 2018 1 commit
    • Andre Przywara's avatar
      armv8: make SPL exception vectors optional · 1416e2d2
      Andre Przywara authored
      
      
      Even though the exception vector table is a fundamental part of the ARM
      architecture, U-Boot mostly does not make real use of it, except when
      crash dumping. But having it in takes up quite some space, partly due to
      the architectural alignment requirement of 2KB. Since we don't take special
      care of that, the compiler adds a more or less random amount of padding
      space, which increases the image size quite a bit, especially for the SPL.
      
      On a typical Allwinner build this is around 1.5KB of padding, plus 1KB
      for the vector table (mostly padding space again), then some extra code
      to do the actual handling. This amounts to almost 10% of the maximum image
      size, which is quite a lot for a pure debugging feature.
      
      Add a Kconfig symbol to allow the exception vector table to be left out
      of the build for the SPL.
      For now this is "default y" for everyone, but specific defconfigs,
      platforms or .config files can opt out here at will, to mitigate the code
      size pressure we see for some SPLs.
      Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
      1416e2d2
  11. 30 Jul, 2018 1 commit
  12. 11 Jun, 2018 1 commit
  13. 15 Jan, 2018 2 commits
  14. 11 Sep, 2017 2 commits
  15. 06 Jul, 2017 1 commit
  16. 23 May, 2017 1 commit
  17. 28 Jan, 2017 1 commit
    • Masahiro Yamada's avatar
      arm64: spin-table: add more information in Kconfig help · 65f32196
      Masahiro Yamada authored
      
      
      This feature seems to be sometimes misunderstood.  The intention is:
      
      [1] Bring the slaves into the U-Boot proper image, not SPL (unless
          you have a special reason to do otherwise).
      
      [2] The operation must be done in a board (SoC) specific manner
          since how to wake the slaves from the Boot ROM is SoC specific.
      
      [3] The slaves must enter U-Boot proper after U-Boot relocates
          itself because the "cpu-release-addr" property points to the
          relocated memory area.
      
      [2] is already explained in the help.  We can make [1] even clearer
      by mentioning "U-Boot proper" instead of "U-Boot".  [3] is missing,
      so I am adding it to the list.  Instead, "before the master CPU
      jumps to the kernel" is a matter of course, so removed.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      65f32196
  18. 18 Jan, 2017 3 commits
  19. 15 Dec, 2016 2 commits
  20. 17 Nov, 2016 1 commit
  21. 19 Oct, 2016 1 commit
    • Alexander Graf's avatar
      arm: Provide common PSCI based reset handler · 8069821f
      Alexander Graf authored
      
      
      Most armv8 systems have PSCI support enabled in EL3, either through
      ARM Trusted Firmware or other firmware.
      
      On these systems, we do not need to implement system reset manually,
      but can instead rely on higher level firmware to deal with it.
      
      The exclude list seems excessive right now, but NXP is working on
      providing an in-tree PSCI implementation, so that all NXP systems
      can eventually use PSCI as well.
      Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
      [agraf: fix meson]
      Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
      8069821f
  22. 12 Aug, 2016 1 commit
  23. 14 Jul, 2016 1 commit
    • Masahiro Yamada's avatar
      arm64: add better and more generic spin-table support · 6b6024ea
      Masahiro Yamada authored
      
      
      There are two enable methods supported by ARM64 Linux; psci and
      spin-table.  The latter is simpler and helpful for quick SoC bring
      up.  My main motivation for this patch is to improve the spin-table
      support, which allows us to boot an ARMv8 system without the ARM
      Trusted Firmware.
      
      Currently, we have multi-entry code in arch/arm/cpu/armv8/start.S
      and the spin-table is supported in a really ad-hoc way, and I see
      some problems:
      
        - We must hard-code CPU_RELEASE_ADDR so that it matches the
          "cpu-release-addr" property in the DT that comes from the
          kernel tree.
      
        - The Documentation/arm64/booting.txt in Linux requires that
          the release address must be zero-initialized, but it is not
          cared by the common code in U-Boot.  We must do it in a board
          function.
      
        - There is no systematic way to protect the spin-table code from
          the kernel.  We are supposed to do it in a board specific manner,
          but it is difficult to predict where the spin-table code will be
          located after the relocation.  So, it also makes difficult to
          hard-code /memreserve/ in the DT of the kernel.
      
      So, here is a patch to solve those problems; the DT is run-time
      modified to reserve the spin-table code (+ cpu-release-addr).
      Also, the "cpu-release-addr" property is set to an appropriate
      address after the relocation, which means we no longer need the
      hard-coded CPU_RELEASE_ADDR.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      6b6024ea
  24. 06 Feb, 2016 1 commit
  25. 09 Mar, 2015 1 commit
    • Linus Walleij's avatar
      armv8/vexpress64: make multientry conditional · 23b5877c
      Linus Walleij authored
      
      
      While the Freescale ARMv8 board LS2085A will enter U-Boot both
      on a master and a secondary (slave) CPU, this is not the common
      behaviour on ARMv8 platforms. The norm is that U-Boot is entered
      from the master CPU only, while the other CPUs are kept in
      WFI (wait for interrupt) state.
      
      The code determining which CPU we are running on is using the
      MPIDR register, but the definition of that register varies with
      platform to some extent, and handling multi-cluster platforms
      (such as the Juno) will become cumbersome. It is better to only
      enable the multiple entry code on machines that actually need
      it and disable it by default.
      
      Make the single entry default and add a special
      ARMV8_MULTIENTRY KConfig option to be used by the
      platforms that need multientry and set it for the LS2085A.
      Delete all use of the CPU_RELEASE_ADDR from the Vexpress64
      boards as it is just totally unused and misleading, and
      make it conditional in the generic start.S code.
      
      This makes the Juno platform start U-Boot properly.
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      23b5877c
  26. 13 Nov, 2014 1 commit
  27. 16 Sep, 2014 1 commit