1. 03 4月, 2022 2 次提交
    • T
      Revert "global: Remove CONFIG_SYS_EXTRA_OPTIONS support" · 25b8acee
      Tom Rini 提交于
      Unfortunately, we require additional logic to buildman to support this
      removal and still use SYS_SOC, etc, for build targets.
      
      This reverts commit eeec0007.
      Signed-off-by: NTom Rini <trini@konsulko.com>
      25b8acee
    • T
      Merge branch '2022-04-01-arm-semihosting-cleanups-and-new-features' into next · 10d615f2
      Tom Rini 提交于
      This brings in two related series.  The first from Andre:
      
      This series is the continuation of last year's effort to support the new
      Armv8-R64 application profile. This led to a significant rework of the
      existing fastmodel (FVP) support, to both upgrade it to newest U-Boot
      standards (OF_CONTROL and distro_boot support), but also to generalise
      the code, so that plugging in the v8-R64 support in the last patch gets
      much easier. This is because apart from the twisted memory map between
      the two profiles there is actually little difference, when it comes to
      U-Boot relevant parts of the hardware.
      
      I kept the legacy semihosting support (which picks up magic files from
      the current directory), but if that fails, we go and try virtio-blk
      (.iso installer images work), then virtio-net.
      
      Please have a look, and give it a try, if possible. Both the v8-R and
      v8-A FVP models are available for free on the Arm website[1].
      
      Patch 01/11 fixes a regression introduced in December, it should be
      applied now. The rest of the patches are for the next merge window.
      
      [1]
      https://developer.arm.com/tools-and-software/simulation-models/fast-models
      
      And the second from Sean (where we exclude 27, 28 and 29 for now):
      This cleans up the semihosting code and adds the following new features:
      
      - hostfs support (like sandbox)
      - support for being used as a SPL boot device
      - serial device support
      - falling back to normal drivers if semihosting is disabled
      
      The main device affected by these changes is vexpress64, so I'd
      appreciate
      if Andre (or anyone else) could try booting.
      
      These changes are motivated by bringup for ls1046a. When forcing JTAG
      boot, this device disables most communication peripherals, including
      serial and ethernet devices. This appears to be fixed in later
      generation devices, but we are stuck with it for now. Semihosting
      provides an easy way to run a few console commands.
      
      The patches in this series are organized as follows:
      
      0-4: rST conversions and other documentation updates
      5-9: Semihosting cleanups
      10-14: Filesystem support (including SPL boot device)
      15-16: Serial support
      16: Documentation update
      17: JTAG boot support for LS1046A
      19-25: Semihosting fallback
      26-29: DM puts support
      
      The last two groups of patches are "bonus;" the first 17 patches stand
      on their own. The last two groups could be broken out as separate
      series, but I have kept them in this one to help with my sanity (and not
      have to deal with too many outstanding series).
      
      Patch 14 depends on [1] to apply cleanly. Patch 17 depends on [2] for
      correctness. This series should be applied to u-boot/next (in
      particular, the EROFS series must have been applied).
      
      [1]
      https://lore.kernel.org/u-boot/CACRpkdZ+9fmNjC_mvrbPa9-iuTQVd8UkJ7Zpe7cL0c5vZygsVw@mail.gmail.com/T/
      [2]
      https://lore.kernel.org/u-boot/20220222183840.1355337-2-sean.anderson@seco.com/
      10d615f2
  2. 02 4月, 2022 36 次提交
    • S
      serial: dm: Add support for puts · 7a763471
      Sean Anderson 提交于
      Some serial drivers can be vastly more efficient when printing multiple
      characters at once. Non-DM serial has had a puts option for these sorts
      of drivers; implement it for DM serial as well.
      
      Because we have to add carriage returns, we can't just pass the whole
      string directly to the serial driver. Instead, we print up to the
      newline, then print a carriage return, and then continue on. This is
      less efficient, but it is better than printing each character
      individually. It also avoids having to allocate memory just to add a few
      characters.
      
      Drivers may perform short writes (such as filling a FIFO) and return the
      number of characters written in len. We loop over them in the same way
      that _serial_putc loops over putc.
      
      This results in around sizeof(void *) growth for all boards with
      DM_SERIAL. The full implementation takes around 140 bytes.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      7a763471
    • S
      arm64: ls1046a: Support semihosting fallback · 53b953f2
      Sean Anderson 提交于
      Use the semihosting_enabled function to determine whether or not to
      enable semihosting devices. This allows for graceful fallback in the
      event a debugger is not attached.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      53b953f2
    • S
      serial: smh: Initialize serial only if semihosting is enabled · 2332590c
      Sean Anderson 提交于
      If semihosting is disabled, then the user has no debugger attached, and
      will not see any messages. Don't create a serial device in this
      instance, to (hopefully) fall back on another working serial device.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      2332590c
    • S
      arm64: Catch non-emulated semihosting calls · bbe310cd
      Sean Anderson 提交于
      If a debugger is not attached to U-Boot, semihosting calls will raise a
      synchronous abort exception. Try to catch this and disable semihosting
      so we can e.g. use another uart if one is available. In the immediate
      case, we return an error, since it is not always possible to check for
      semihosting beforehand (debug uart, user-initiated load command, etc.)
      
      We handle all possible semihosting instructions, which is probably
      overkill. However, we do need to keep track of what instruction set
      we're using so that we don't suppress an actual error.
      
      A future enhancement could try to determine semihosting capability by
      inspecting the processor state.  There's an example of this at [1] for
      RISC-V. The equivalent for ARM would inspect the monitor modei
      enable/select bits of the DSCR. However, as the article notes, an
      exception handler is still helpful in order to catch disconnected
      debuggers.
      
      [1] https://tomverbeure.github.io/2021/12/30/Semihosting-on-RISCV.html#avoiding-hangs-when-a-debugger-is-not-connectedSigned-off-by: NSean Anderson <sean.anderson@seco.com>
      bbe310cd
    • S
      arm: smh: Add option to detect semihosting · 385d69d7
      Sean Anderson 提交于
      These functions are intended to support detecting semihosting and
      falling back gracefully to alternative implementations. The test starts
      by making semihosting call. SYS_ERRNO is chosen because it should not
      mutate any state. If this semihosting call results in an exception
      (rather than being caught by the debugger), then the exception handler
      should call disable_semihosting() and resume execution after the call.
      
      Ideally, this would just be part of semihosting by default, and not a
      separate config. However, to reduce space ARM SPL doesn't include
      exception vectors by default. This means we can't detect if a
      semihosting call failed unless we enable them. To avoid forcing them to
      be enabled, we use a separate config option. It might also be possible
      to try and detect whether a debugger has enabled (by reading HDE from
      DSCR), but I wasn't able to figure out a way to do this from all ELs.
      
      This patch just introduces the generic code to handle detection. The
      next patch will implement it for arm64 (but not arm32).
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      385d69d7
    • S
      arm64: Import some ESR and SPSR defines from Linux · 6d161574
      Sean Anderson 提交于
      This imports some defines for esr and spsr from Linux v5.16. I have
      modified the includes and fixed some indentation nits but otherwise it
      is the same. There are a lot more defines than we need, but it doesn't
      hurt.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      6d161574
    • S
      arm64: Save spsr in pt_regs · e75d791c
      Sean Anderson 提交于
      This register holds "pstate" which includes (among other things) the
      instruction mode the CPU was in when the exception was taken. This is
      necessary to correctly interpret instructions at elr.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      e75d791c
    • S
      arm64: Save esr in pt_regs · e97ac478
      Sean Anderson 提交于
      To avoid passing around an extra register everywhere, save esr in
      pt_regs like the rest. For proper alignment we need to have a second
      (unused) register. All the printfs have to be adjusted, since
      it's now an unsigned long and not an int.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      e97ac478
    • S
      ls1046ardb: Add support for JTAG boot · 93c3d329
      Sean Anderson 提交于
      This adds support for booting entirely from JTAG while using a
      hard-coded RCW. With these steps, it is not necessary to program a
      "good" RCW using CodeWarrior. The method here can be performed with any
      JTAG adapter supported by OpenOCD, including the on-board CMSIS-DAP
      (albeit very slowly).
      
      These steps require LS1046A support in OpenOCD, which was added in [1].
      
      [1] https://sourceforge.net/p/openocd/code/ci/5b70c1f679755677c925b4e6dd2c3d8be4715717/Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      [trini: Add reference to doc/board/nxp/ls1046ardb.rst]
      93c3d329
    • S
      doc: smh: Update semihosting documentation · eeb54e81
      Sean Anderson 提交于
      This documents how to use semihosting, the new semihosting features, and
      how to migrate from smhload.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      eeb54e81
    • S
      serial: Add semihosting driver · 74d11d37
      Sean Anderson 提交于
      This adds a serial driver which uses semihosting calls to read and write
      to the host's console. For convenience, if CONFIG_DM_SERIAL is enabled,
      we will instantiate a serial driver. This allows users to enable this
      driver (which has no physical device) without modifying their device
      trees or board files. We also implement a non-DM driver for SPL, or for
      much faster output in U-Boot proper.
      
      There are three ways to print to the console:
      
      Method              Baud
      ================== =====
      smh_putc in a loop   170
      smh_puts            1600
      smh_write with :tt 20000
      ================== =====
      
      These speeds were measured using a 175 character message with a J-Link
      adapter. For reference, U-Boot typically prints around 2700 characters
      during boot on this board. There are two major factors affecting the
      speed of these functions. First, each breakpoint incurs a delay. Second,
      each debugger memory transaction incurs a delay. smh_putc has a
      breakpoint and memory transaction for every character. smh_puts has one
      breakpoint, but still has to use a transaction for every character. This
      is because we don't know the length up front, so OpenOCD has to check if
      each character is nul. smh_write has only one breakpoint and one memory
      transfer.
      
      DM serial drivers can only implement a putc interface, so we are stuck
      with the slowest API. Non-DM drivers can implement puts, which is vastly
      more efficient. When the driver starts up, we try to open :tt. Since
      this is an extension, this may fail. If it does, we fall back to
      smh_puts. We don't check :semihosting-features, since there are
      nonconforming implementations (OpenOCD) which don't implement it (but
      *do* implement :tt).
      
      Some semihosting implementations (QEMU) don't handle READC properly. To
      work around this, we try to use open/read (much like for stdin) if
      possible.
      
      There is no non-blocking I/O available, so we don't implement pending.
      This will cause __serial_tstc to always return true. If
      CONFIG_SERIAL_RX_BUFFER is enabled, _serial_tstc will try and read
      characters forever. To avoid this, we depend on this config being
      disabled.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      Reviewed-by: NSimon Glass <sjg@chromium.org>
      74d11d37
    • S
      arm: smh: Add some functions for working with the host console · 3ea744e8
      Sean Anderson 提交于
      This adds three wrappers around the semihosting commands for reading and
      writing to the host console. We use the more standard getc/putc/puts
      names instead of readc/writec/write0 for familiarity.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      3ea744e8
    • S
      arm: smh: Remove smhload command · dcc4f962
      Sean Anderson 提交于
      This command's functionality is now completely implemented by the
      standard fs load command. Convert the vexpress64 boot command (which is
      the only user) and remove the implementation.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      dcc4f962
    • S
      cmd: fdt: Use start/size for chosen instead of start/end · dbf6f7c9
      Sean Anderson 提交于
      Most U-Boot command deal with start/size instead of start/end. Convert
      the "fdt chosen" command to use these semantics as well. The only user
      of this subcommand is vexpress, so convert the smhload command to use
      this as well. We don't bother renaming the variable in vexpress64's
      bootcommand, since it will be rewritten in the next commit.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      dbf6f7c9
    • S
      fs: Add semihosting filesystem · f676b451
      Sean Anderson 提交于
      This adds a filesystem which is backed by the host's filesystem. It is
      modeled off of sandboxfs, which has very similar aims. Semihosting
      doesn't support listing directories (except with SYS_SYSTEM), so neither
      do we. it's possible to optimize a bit for the common case of reading a
      whole file by omitting a call to smh_seek, but this is left as a future
      optimization.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      f676b451
    • S
      spl: Add semihosting boot method · 8e1c9fe2
      Sean Anderson 提交于
      This adds a boot method for loading the next stage from the host. It is
      mostly modeled off of spl_load_image_ext. I am not really sure why/how
      spl_load_image_fat uses three different methods to load the image, but
      the simple case seems to work OK for now.
      
      To control the presence of this boot method, we add a config symbol.
      While we're at it, we update the original semihosting config symbol.
      
      I think semihosting has some advantages of other forms of JTAG boot.
      Common other ways to boot from JTAG include:
      
      - Implementing DDR initialization through JTAG (typically with dozens of
        lines of TCL) and then loading U-Boot. The DDR initialization
        typically uses hard-coded register writes, and is not easily adapted
        to different boards. BOOT_DEVICE_SMH allows booting with SPL,
        leveraging U-Boot's existing DDR initialization code. This is the
        method used by NXP's CodeWarrior IDE on Layerscape processors (see
        AN12270).
      - Loading a bootloader into SDRAM, waiting for it to initialize DDR, and
        then loading U-Boot. This is tricky, because the debugger must stop the
        boot after the bootloader has completed its work. Trying to load
        U-Boot too early can cause failure to boot. This is the method used by
        Xilinx with its Zynq(MP) processors.
      - Loading SPL with BOOT_DEVICE_RAM and breaking before SPL loads the
        image to load U-Boot at the appropriate place. This can be a bit
        tricky, because the load address is dependent on the header size. An
        elf with symbols must also be used in order to stop at the appropriate
        point. BOOT_DEVICE_SMH can be viewed as an extension of this process,
        where SPL automatically stops and tells the host where to place the
        image.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      8e1c9fe2
    • S
      arm: smh: Add some file manipulation commands · 12a05b3b
      Sean Anderson 提交于
      In order to add filesystem support, we will need to be able to seek and
      write files. Add the appropriate helper functions.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      12a05b3b
    • S
      arm: smh: Document functions in header · 79f6ad6a
      Sean Anderson 提交于
      This adds some documentation for semihosting functions in the header.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      79f6ad6a
    • S
      arm: smh: Return errno on error · 80e62ccf
      Sean Anderson 提交于
      Instead of printing in what are now library functions, try to return a
      numeric error code. This also adjust some functions (such as read) to
      behave more similarly to read(2). For example, we now return the number
      of bytes read instead of failing immediately on a short read.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      80e62ccf
    • S
      arm: smh: Use numeric modes for smh_open · eff77c3a
      Sean Anderson 提交于
      There's no point in using string constants for smh_open if we are just
      going to have to parse them. Instead, use numeric modes. The user needs
      to be a bit careful with these, since they are much closer semantically
      to string modes used by fopen(3) than the numeric modes used with
      open(2).
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      eff77c3a
    • S
      arm: smh: Export semihosting functions · b10f7248
      Sean Anderson 提交于
      This exports semihosting functions for use in other files. The header is
      in include/ and not arm/include/asm because I anticipate that RISC-V may
      want to add their own implementation at some point.
      
      smh_len_fd has been renamed to smh_flen to more closely match the
      semihosting spec.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      b10f7248
    • S
      arm: smh: Add semihosting entry to MAINTAINERS · c8f4cc95
      Sean Anderson 提交于
      These files are spread all over the tree, so just use a regex. Orphaned
      for now, since this is more of a "one-off" series. Though I'll be happy
      to review patches.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      c8f4cc95
    • S
      doc: ls1046ardb: Document debug uart · e5e982c6
      Sean Anderson 提交于
      This adds some instructions for enabling the debug uart, including the
      correct address and clock rate.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      e5e982c6
    • S
      doc: ls1046ardb: Expand boot mode section · b5ec417b
      Sean Anderson 提交于
      This adds some additional info about booting from different sources,
      including the correct switch positions.
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      b5ec417b
    • S
      nxp: ls1046ardb: Convert README to rST · 71230cda
      Sean Anderson 提交于
      This converts the readme for this board to rST. I have tried not to
      change any semantics from the original (though I did convert MB to M).
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      71230cda
    • S
      doc: Convert semihosting readme to rST · d0ed9b10
      Sean Anderson 提交于
      This converts the semihosting readme to rST. I have tried to make only
      cosmetic changes, but I did fix up the first link (which was broken).
      Signed-off-by: NSean Anderson <sean.anderson@seco.com>
      d0ed9b10
    • P
      vexpress64: Add ARMv8R-64 board variant · 8d78a6b6
      Peter Hoyes 提交于
      The ARMv8-R64 architecture introduces optional VMSA (paging based MMU)
      support in the EL1/0 translation regime, which makes that part mostly
      compatible to ARMv8-A.
      
      Add a new board variant to describe the "BASE-R64" FVP model, which
      inherits a lot from the existing v8-A FVP support. One major difference
      is that the memory map in "inverted": DRAM starts at 0x0, MMIO is at
      2GB [1].
      
       * Create new TARGET_VEXPRESS64_BASER_FVP target, sharing most of the
         exising configuration.
       * Implement inverted memory map in vexpress_aemv8.h
       * Create vexpress_aemv8r defconfig
       * Provide an MMU memory map for the BASER_FVP
       * Update vexpress64 documentation
      
      At the moment the boot-wrapper is the only supported secure firmware. As
      there is no official DT for the board yet, we rely on it being supplied
      by the boot-wrapper into U-Boot, so use OF_HAS_PRIOR_STAGE, and go with
      a dummy DT for now.
      
      [1] https://developer.arm.com/documentation/100964/1114/Base-Platform/Base---memory/BaseR-Platform-memory-mapSigned-off-by: NPeter Hoyes <Peter.Hoyes@arm.com>
      [Andre: rebase and add Linux kernel header]
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      [trini: Add MAINTAINERS entry for Peter]
      8d78a6b6
    • A
      vexpress64: pick DRAM size from DT · 1a1143a4
      Andre Przywara 提交于
      So far the DRAM size for both the Juno and the FVP model were hardcoded
      in our config header file. For the Juno this is fine, as all models have
      8 GiB of DRAM, but the DRAM size can be configured on the model command
      line.
      
      Drop the fixed DRAM size setup, instead look up the size in the device
      tree, that we now have for every board. This allows a user to inject
      a DT with the proper size, and be able to use the full amount of DRAM.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      1a1143a4
    • A
      vexpress64: generalise page table generation · 30cacb81
      Andre Przywara 提交于
      In preparation for the ARMv8-R64 FVP support, which has DRAM mapped at
      0x0, generalise the page table generation, by using symbolic names for
      the address ranges instead of fixed numbers.
      
      We already define the base of the DRAM and MMIO regions, so just use
      those symbols in the page table description. Rename V2M_BASE to the more
      speaking V2M_DRAM_BASE on the way.
      
      On the VExpress memory map, the address space right after 4GB is of no
      particular interest to software, as the whole of DRAM is mapped at 32GB
      instead. The first 2 GB alias to the lower 2GB of DRAM mapped below 4GB,
      so we skip this part and map some more of the high DRAM, should anyone
      need it.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      30cacb81
    • A
      vexpress64: defconfigs: allow default commands · 168e815d
      Andre Przywara 提交于
      Right now the defconfig the Arm VExpress64 boards disables quite some
      standard commands, for apparently no good reasons (as image size is
      hardly a concern here).
      
      Remove the lines explicitly disabling those features, leaving it to
      the U-Boot default settings to set them.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      168e815d
    • A
      vexpress64: fvp: add distro_boot support · 8a0a8ff5
      Andre Przywara 提交于
      So far the FVP model just supports booting through semihosting, so by
      loading files from the host the model is running on. This allows for
      quick booting of new kernels (or replacing DTBs), but prevents more
      featureful boots like using UEFI.
      
      Enable the distro_boot feature, and provide a list of possible boot
      sources that U-Boot should check:
      - For backwards compatibility we start with semihosting, which gets its
        commands migrated from CONFIG_BOOTCOMMAND into the distro_boot
        infrastructure. This is also slightly tweaked to fail graceful in case
        the required files could not be found.
      - Next we try to use a user provided script, that could be easily
        placed into memory using the model command line.
      - Since we gained virtio support with the enablement of OF_CONTROL,
        let's check virtio block devices next. This is where UEFI boot can
        be easily used, for instance by providing a distro installer .iso
        file through virtio-blk.
      - Networking is now provided by virtio as well, so enable the default
        PXE and DHCP boot flows, mostly because we can.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      8a0a8ff5
    • A
      vexpress64: move hardware setting from defconfig to Kconfig · 58650382
      Andre Przywara 提交于
      The defconfigs for the Arm Juno board and the FVP model are quite large,
      setting a lot of platform-fixed variables like SYS_TEXT_BASE.
      As those values are not really a user choice, let's provide default
      values for them in our Kconfig file, so a lot of cruft can be removed
      from the defconfig files.
      This also moves the driver selection out of there, since this is again
      not something a user should really decide on. Instead we allow users to
      enable or disable subsystems, and select the appropriate drivers based
      on that in the Kconfig file.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      58650382
    • A
      vexpress64: config header: unify environment definition · e09ec8e3
      Andre Przywara 提交于
      The definition of the standard environment variables (kernel_addr_r and
      friends) has been improved lately for the FVP model, but the Juno board
      is still using some custom scheme.
      Since we need to extend this to a third board soon, let's unify the
      definition:
      - Define the Juno addresses in the same generic way we do for the FVP
        model, and move the actual variable setting out of the board #ifdef's.
      - Add the missing addresses for a PXE file and a boot script.
      - Cleanup some stale comments on the way.
      
      As the FVP model doesn't have support for distro_boot quite yet, add
      a dummy definition for now, to be replaced with the real thing later.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      e09ec8e3
    • A
      vexpress64: fvp: enable OF_CONTROL · c0fce929
      Andre Przywara 提交于
      The FVP base model is relying on a DT for Linux operation, so there is
      no reason we would need to rely on hardcoded information for U-Boot.
      Letting U-Boot use a DT will open up the usage of actual peripherals,
      beyond the support for semihosting only.
      
      Enable OF_CONTROL in the Kconfig, and use the latest dts files from
      Linux. Depending on whether we use the boot-wrapper or TF-A, there is
      already a DTB provided or not, respectively.
      
      To cover the boot-wrapper, we add an arm64 Linux kernel header, which
      allows the boot-wrapper to treat U-Boot like a Linux kernel. U-Boot will
      find the pointer to the DTB in x0, and will use it.
      
      Even though TF-A carries a DT, at the moment this is not made available
      to non-secure world, so to not break users, we use the U-Boot provided
      DTB copy in that case. For some reason TF-A puts some DT like structure
      at the address x0 is pointing at, but that is very small and doesn't
      carry any hardware information. Make the code to ignore those small DTBs.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      c0fce929
    • A
      arm: dts: Add Arm FVP Fastmodel RevC .dts files from Linux · 71fa41eb
      Andre Przywara 提交于
      The Arm Fixed Virtual Platform (FVP) is a software model for an
      artificial ARM platform, it is available for free on the Arm website[1].
      
      Add the devicetree files for the latest RevC version, as we will need
      them to enable OF_CONTROL for the vexpress_aemv8a_semi board.
      
      This is a verbatim copy of the respective files from Linux v5.17-rc6,
      which is unchanged from the v5.16 release.
      
      [1] https://developer.arm.com/tools-and-software/simulation-models/fast-modelsSigned-off-by: NAndre Przywara <andre.przywara@arm.com>
      71fa41eb
    • A
      vexpress64: Kconfig: move board definitions out of arch/arm · fac7fc43
      Andre Przywara 提交于
      At the moment we define three "VExpress64" boards in arch/arm/Kconfig,
      plus have a second Kconfig file in board/armltd/Kconfig.
      One of those three boards is actually bogus (TARGET_VEXPRESS64_AEMV8A),
      that stanza looks like being forgotten in a previous cleanup.
      
      To remove the clutter from the generic Kconfig file, just define some
      ARCH_VEXPRESS64 symbol there, enable some common options, and do the
      board/model specific configuration in the board/armltd Kconfig file.
      
      That allows to streamline and fine tune the configuration later, and
      to also pull a lot of "non user choices" out of the defconfigs.
      Signed-off-by: NAndre Przywara <andre.przywara@arm.com>
      fac7fc43
  3. 01 4月, 2022 2 次提交