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 1 次提交
  3. 03 3月, 2021 1 次提交
    • H
      reset: Remove addr parameter from reset_cpu() · 35b65dd8
      Harald Seiler 提交于
      Historically, the reset_cpu() function had an `addr` parameter which was
      meant to pass in an address of the reset vector location, where the CPU
      should reset to.  This feature is no longer used anywhere in U-Boot as
      all reset_cpu() implementations now ignore the passed value.  Generic
      code has been added which always calls reset_cpu() with `0` which means
      this feature can no longer be used easily anyway.
      
      Over time, many implementations seem to have "misunderstood" the
      existence of this parameter as a way to customize/parameterize the reset
      (e.g.  COLD vs WARM resets).  As this is not properly supported, the
      code will almost always not do what it is intended to (because all
      call-sites just call reset_cpu() with 0).
      
      To avoid confusion and to clean up the codebase from unused left-overs
      of the past, remove the `addr` parameter entirely.  Code which intends
      to support different kinds of resets should be rewritten as a sysreset
      driver instead.
      
      This transformation was done with the following coccinelle patch:
      
          @@
          expression argvalue;
          @@
          - reset_cpu(argvalue)
          + reset_cpu()
      
          @@
          identifier argname;
          type argtype;
          @@
          - reset_cpu(argtype argname)
          + reset_cpu(void)
          { ... }
      Signed-off-by: NHarald Seiler <hws@denx.de>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      35b65dd8
  4. 03 2月, 2021 1 次提交
    • S
      common: Drop asm/global_data.h from common header · 401d1c4f
      Simon Glass 提交于
      Move this out of the common header and include it only where needed.  In
      a number of cases this requires adding "struct udevice;" to avoid adding
      another large header or in other cases replacing / adding missing header
      files that had been pulled in, very indirectly.   Finally, we have a few
      cases where we did not need to include <asm/global_data.h> at all, so
      remove that include.
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      Signed-off-by: NTom Rini <trini@konsulko.com>
      401d1c4f
  5. 06 1月, 2021 1 次提交
    • S
      dm: Rename U_BOOT_DEVICE() to U_BOOT_DRVINFO() · 20e442ab
      Simon Glass 提交于
      The current macro is a misnomer since it does not declare a device
      directly. Instead, it declares driver_info record which U-Boot uses at
      runtime to create a device.
      
      The distinction seems somewhat minor most of the time, but is becomes
      quite confusing when we actually want to declare a device, with
      of-platdata. We are left trying to distinguish between a device which
      isn't actually device, and a device that is (perhaps an 'instance'?)
      
      It seems better to rename this macro to describe what it actually is. The
      macros is not widely used, since boards should use devicetree to declare
      devices.
      
      Rename it to U_BOOT_DRVINFO(), which indicates clearly that this is
      declaring a new driver_info record, not a device.
      Signed-off-by: NSimon Glass <sjg@chromium.org>
      20e442ab
  6. 14 12月, 2020 2 次提交
  7. 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
  8. 08 7月, 2020 1 次提交
  9. 19 5月, 2020 2 次提交
  10. 07 5月, 2020 2 次提交
    • A
      arm: juno: Use PSCI based reset · be0d0969
      Andre Przywara 提交于
      So far the Juno board wasn't implementing reset. Let's just use the
      already existing PSCI_RESET based method to avoid any extra code.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      Acked-by: NLiviu Dudau <liviu.dudau@arm.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      be0d0969
    • A
      arm: juno: Enable OF_CONTROL · b3270e91
      Andre Przywara 提交于
      The Arm Juno board was still somewhat stuck in "hardcoded land", even
      though there are stable DTs around, and one happens to actually be on
      the memory mapped NOR flash.
      
      Enable the configuration options to let the board use OF_CONTROL, and
      add a routine to find the address of the DTB partition in NOR
      flash, to use that for U-Boot's own purposes.
      This can also passed on via $fdtcontroladdr to any kernel or EFI
      application, removing the need to actually load a device tree.
      
      Since the existing "afs" command and its flash routines require
      flash_init() to be called before being usable, and this is done much
      later in the boot process, we introduce a stripped-down partition finder
      routine in vexpress64.c, to scan the NOR flash partitions for the
      DT partition. This location is then used for U-Boot to find and probe
      devices.
      
      The name of the partition can be configured, if needed, but defaults
      to "board.dtb", which is used by Linaro's firmware image provided.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      b3270e91
  11. 25 1月, 2020 1 次提交
  12. 18 1月, 2020 1 次提交
  13. 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
  14. 01 6月, 2017 1 次提交
  15. 06 4月, 2017 1 次提交
  16. 16 7月, 2016 1 次提交
  17. 16 3月, 2016 1 次提交
  18. 22 11月, 2015 2 次提交
  19. 20 10月, 2015 2 次提交
  20. 23 4月, 2015 1 次提交
    • L
      vexpress64: use DM for all vexpress64 boards · d280ea00
      Linus Walleij 提交于
      Commit d8bafe13
      "ARMv8: enable DM in vexpress64 board" only enabled DM
      for the simulated vexpress64 board (FVP) with the
      hardcoded clock value for the simulated board, causing
      a console regression on the Juno board which was using
      a different clock setting.
      
      Fix this by enabling DM for all vexpress64 boards,
      defining the clock frequency per-board, deleting the
      static array of PL01x ports from the config file and
      relying solely on the port defined in the boardfile
      using platform data.
      
      Cc: David Feng <fenghua@phytium.com.cn>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      d280ea00
  21. 29 3月, 2015 1 次提交
  22. 27 3月, 2015 1 次提交
  23. 09 3月, 2015 1 次提交
    • L
      armv8/vexpress64: make multientry conditional · 23b5877c
      Linus Walleij 提交于
      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: NLinus Walleij <linus.walleij@linaro.org>
      23b5877c
  24. 06 3月, 2015 1 次提交
  25. 03 7月, 2014 1 次提交
    • D
      arm: Add support for semihosting for armv8 fastmodel targets. · 261d2760
      Darwin Rambo 提交于
      The armv8 ARM Trusted Firmware (ATF) can be used to load various ATF
      images and u-boot, and does this for virtual platforms by using
      semihosting. This commit extends this idea by allowing u-boot to also
      use semihosting to load the kernel/ramdisk/dtb. This eliminates the need
      for a bootwrapper and produces a more realistic boot sequence with
      virtual models.
      
      Though the semihosting code is quite generic, support for armv7 in
      fastmodel is less useful due to the wide range of available silicon
      and the lack of a free armv7 fastmodel, so this change contains an
      untested armv7 placeholder for the service trap opcode.
      
      Please refer to doc/README.semihosting for a more detailed description
      of semihosting and how it is used with the armv8 virtual platforms.
      Signed-off-by: NDarwin Rambo <drambo@broadcom.com>
      Cc: trini@ti.com
      Cc: fenghua@phytium.com.cn
      Cc: bhupesh.sharma@freescale.com
      261d2760
  26. 09 1月, 2014 1 次提交