Skip to content
Snippets Groups Projects
  1. Mar 01, 2024
    • Caleb Connolly's avatar
      arm: init: export prev_bl_fdt_addr · ca84ba63
      Caleb Connolly authored
      
      When booting U-Boot on board with a locked down first-stage bootloader,
      we emulate the Linux boot header. By passing the U-Boot FDT through this
      first-stage bootloader and retrieving it afterwards we can pre-populate
      the memory nodes and other info like the KASLR address.
      
      Add a function to export the FDT addr so that boards can use it over the
      built-in FDT.
      
      Don't check is_addr_accessible() here because we might not yet have a
      valid mem_map if it's going to be populated from the FDT, let the board
      do their own validation instead.
      
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: default avatarSumit Garg <sumit.garg@linaro.org>
      Tested-by: Sumit Garg <sumit.garg@linaro.org> #qcs404
      Signed-off-by: default avatarCaleb Connolly <caleb.connolly@linaro.org>
      ca84ba63
    • Tom Rini's avatar
      Merge patch series "An effort to bring DT bindings compliance within U-Boot" · 5b825032
      Tom Rini authored
      Sumit Garg <sumit.garg@linaro.org> says:
      
      Prerequisite
      ------------
      
      This patch series requires devicetree-rebasing git repo to be added as a
      subtree to the main U-Boot repo via:
      
      $ git subtree add --prefix dts/upstream \
            https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git \
            v6.7-dts --squash
      
      Background
      ----------
      
      This effort started while I was reviewing patch series corresponding to
      Qcom platforms [1] which was about to import modified devicetree source
      files from Linux kernel. I suppose keeping devicetree files sync with
      Linux kernel without any DT bindings schema validation has been a pain
      for U-Boot SoC/platform maintainers. There has been past discussions
      about a single DT repo but that hasn't come up and Linux kernel remained
      the place where DT source files as well as bindings are placed and
      maintained.
      
      However, Linux kernel DT maintainers proposed [2] for U-Boot to rather
      use devicetree-rebasing repo [3] which is a forked copy from Linux
      kernel for DT source files as well as bindings. It is tagged at every
      Linux kernel major release or intermideate release candidates. So here I
      have tried to reuse that to bring DT bingings compliance as well as a
      standard way to maintain a regular sync of DT source files with Linux
      kernel.
      
      In order to maintain devicetree files sync, U-Boot will maintains a Git
      subtree for devicetee-rebasing repo as `dts/upstream` sub-directory.
      U-Boot will regularly sync `dts/upstream/` subtree whenever the next window
      opens with the next available kernel major release.
      `dts/update-dts-subtree.sh` script provides a wrapper around git subtree
      pull command, usage from the top level U-Boot source tree, run:
      
      $ ./dts/update-dts-subtree.sh pull <devicetree-rebasing-release-tag>
      
      If required it is also possible to cherry-pick fixes from
      devicetree-rebasing tree prior to next sync, usage:
      
      $ ./dts/update-dts-subtree.sh pick <devicetree-rebasing-commit-id>
      
      The RFC/prototype for this series has been discussed with Linux DT
      maintainers as well as U-Boot maintainers here [4]. Now we would like to
      reach out to wider U-Boot community to seek feedback.
      
      [1] https://lore.kernel.org/all/CAFA6WYMLUD9cnkr=R0Uur+1UeTMkKjM2zDdMJtXb3nmrLk+pDg@mail.gmail.com/
      [2] https://lore.kernel.org/all/CAL_JsqKEjv2tSGmT+0ZiO7_qbBfhTycbGnhJhYpKDFzfO9jzDg@mail.gmail.com/
      [3] https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/
      [4] https://github.com/u-boot/u-boot/pull/451
      
      Changes
      -------
      
      Traditionally, U-Boot placed copies of devicetree source files from Linux
      kernel into `arch/<arch>/dts/<name>.dts` which can be selected via setting
      "<name>" when prompted for `DEFAULT_DEVICE_TREE` by Kconfig.
      
      SoC/board maintainers are encouraged to migrate to use synced copies from
      `dts/upstream/src/<arch>/<vendor>`. To do that enable `OF_UPSTREAM` for the
      SoC being used via Kconfig and set up "<vendor>/<name>" when prompted for
      `DEFAULT_DEVICE_TREE` by Kconfig.
      
      An example have been shown for Amlogic meson-gxbb SoC and corresponding
      derived boards via patch #10 and #11.
      
      Devicetree bindings schema checks
      ---------------------------------
      
      With devicetee-rebasing Git subtree, the devicetree bindings are also
      regularly synced with Linux kernel as `dts/upstream/Bindings/`
      sub-directory. This allows U-Boot to run devicetree bindings schema checks
      which will bring compliance to U-Boot core/drivers regarding usage of
      devicetree.
      
      Dependencies
      ------------
      
      The DT schema project must be installed in order to validate the DT schema
      binding documents and validate DTS files using the DT schema. The DT schema
      project can be installed with pip:
      
      $ pip3 install dtschema
      
      Note that 'dtschema' installation requires 'swig' and Python development
      files installed first. On Debian/Ubuntu systems:
      
      $ apt install swig python3-dev
      
      Several executables (dt-doc-validate, dt-mk-schema, dt-validate) will be
      installed. Ensure they are in your PATH (~/.local/bin by default).
      
      Recommended is also to install yamllint (used by dtschema when present).
      
      $ apt install yamllint
      
      Running checks
      --------------
      
      In order to perform validation of DTB files, use the ``dtbs_check`` target:
      
      $ make dtbs_check
      
      It is also possible to run checks with a subset of matching schema files by
      setting the ``DT_SCHEMA_FILES`` variable to 1 or more specific schema files
      or patterns (partial match of a fixed string). Each file or pattern should
      be separated by ':'.
      
      $ make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml:rtc.yaml
      $ make dtbs_check DT_SCHEMA_FILES=/gpio/
      $ make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml
      5b825032
    • Sumit Garg's avatar
      dts: meson-gxbb: Drop redundant devicetree files · 932600f3
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Since meson-gxbb based boards switched to using upstream DT, so drop
      redundant files from arch/arm/dts directory. Only *-u-boot.dtsi files
      kept in arch/arm/dts directory for these boards.
      
      Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      932600f3
    • Sumit Garg's avatar
      dts: meson-gxbb: Switch to using upstream DT · b5fb3653
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Although there were still some variations in board DTS files based on
      meson-gxbb SoC but I think those were minor differences from upstream
      and shouldn't impact boot on these devices.
      
      So enable OF_UPSTREAM to use upstream DT and add amlogic/ prefix to the
      DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/
      including *-u-boot.dtsi files from arch/$(ARCH)/dts/ directory.
      
      Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      b5fb3653
    • Sumit Garg's avatar
      MAINTAINERS: Add myself as devicetree-rebasing maintainer · 3109a9cb
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Add myself as devicetree-rebasing maintainer.
      
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarIlias Apalodimas <ilias.apalodimas@linaro.org>
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      3109a9cb
    • Sumit Garg's avatar
      doc: devicetree: Updates for devicetree-rebasing subtree · 44d66098
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Encourage SoC/board maintainers to migrate to using devicetree-rebasing
      subtree and maintain a regular sync with Linux kernel devicetree files
      and bindings.
      
      Along with that add documentation regarding how to run DT bindings
      schema checks.
      
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      44d66098
    • Sumit Garg's avatar
      doc: devicetree: Align documentation to use Kconfig options · 0bd96eea
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Since U-Boot switched away from manual CONFIG_* defines to Kconfig
      options, align devicetree documentation accordingly.
      
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      0bd96eea
    • Sumit Garg's avatar
      dts: Add script to uprev dts/upstream subtree · b841ca6a
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      dts/update-dts-subtree.sh is just a wrapper around git subtree commands.
      Usage from the top level U-Boot source tree, run:
      
      $ ./dts/update-dts-subtree.sh pull <release-tag>
      $ ./dts/update-dts-subtree.sh pick <commit-id>
      
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      b841ca6a
    • Sumit Garg's avatar
      dts: Add alternative location for upstream DTB builds · e3a9829c
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Allow platform owners to mirror devicetree files from devitree-rebasing
      directory into dts/upstream/src/$(ARCH) (special case for arm64). Then
      build then along with any *-u-boot.dtsi file present in arch/$(ARCH)/dts
      directory. Also add a new Makefile for arm64.
      
      This will help easy migration for platforms which currently are compliant
      with upstream Linux kernel devicetree files.
      
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      e3a9829c
    • Sumit Garg's avatar
      Makefile: Allow upstream DT subtree to provide DT includes · 3a4e5944
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Allow platforms to reuse DT headers and dtsi includes directly form
      upstream DT subtree which will be frequently synced with Linux kernel.
      This will further allow us to drop corresponding DT includes copy from
      U-Boot tree.
      
      Also, since the DT includes from upstream DT subtree are done after DT
      includes from U-Boot tree, so it shouldn't cause any conflicts.
      
      Tested-by: Bryan Brattlof's avatarBryan Brattlof <bb@ti.com>
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      3a4e5944
    • Sumit Garg's avatar
      scripts/Makefile.lib: Statically define *-u-boot.dtsi files location · df6fb77c
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Allow u-boot to build DTB from a different directory tree such that
      *-u-boot.dtsi files can be included from a common location. Currently
      that location is arch/$(ARCH)/dts/, so statically define that common
      location.
      
      This is needed for platform owners to start building DTB files from
      devicetree-rebasing directory but still being able to include
      *-u-boot.dtsi files.
      
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarIlias Apalodimas <ilias.apalodimas@linaro.org>
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      df6fb77c
    • Sumit Garg's avatar
      Makefile: Add support for DT bindings schema checks · 4be3fe9d
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      This adds the build infrastructure for checking DT binding schema
      documents and validating dtb files using the binding schema. Here we use
      devicetree-rebasing subtree to provide the DT bindings. Along with that
      adapt dts/upstream/Bindings/Makefile to align with old U-Boot Kbuild
      infrastructure.
      
      Dependency:
      -----------
      
      The DT schema project must be installed in order to validate the DT schema
      binding documents and validate DTS files using the DT schema. The DT schema
      project can be installed with pip::
      
          pip3 install dtschema
      
      Note that 'dtschema' installation requires 'swig' and Python development
      files installed first. On Debian/Ubuntu systems::
      
          apt install swig python3-dev
      
      Testing:
      --------
      
      Build dts files and check using DT binding schema:
      $ make dtbs_check
      
      Optionally, DT_SCHEMA_FILES can be passed in with a schema file(s) to
      use for validation. This makes it easier to find and fix errors
      generated by a specific schema.
      
      Note, at this point dtbs_check is an optional build target as there are
      many warnings generated due to custom DT properties used by many
      platforms in u-boot. It is expected with these checks that compliance
      with DT bindings to take place. Once that's done it can be added to CI
      builds to remain compliant with DT bindings.
      
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Tested-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      4be3fe9d
    • Sumit Garg's avatar
      CI: Exclude devicetree-rebasing subtree for CONFIG checks · 8f31c85c
      Sumit Garg authored and Tom Rini's avatar Tom Rini committed
      
      Since devicetree-rebasing is an external repo with its own coding style,
      exclude it from Azure and gitlab CI CONFIG checks.
      
      Reviewed-by: default avatarTom Rini <trini@konsulko.com>
      Reviewed-by: default avatarIlias Apalodimas <ilias.apalodimas@linaro.org>
      Reviewed-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
      Signed-off-by: default avatarSumit Garg <sumit.garg@linaro.org>
      8f31c85c
  2. Feb 29, 2024
  3. Feb 28, 2024
  4. Feb 27, 2024
Loading