| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- # SPDX-License-Identifier: BSD-2-Clause
- # Copyright 2022 Google LLC
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/bootph.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Boot-phase-specific device nodes
- maintainers:
- - Simon Glass <sjg@chromium.org>
- description: |
- Some programs run in memory-constrained environments yet want to make use
- of device tree.
- The full device tree is often quite large relative to the available memory
- of a boot phase, so cannot fit into every phase of the boot process. Even
- when memory is not a problem, some phases may wish to limit which device
- nodes are present, so as to reduce execution time.
- This binding supports adding tags to device tree nodes to allow them to be
- marked according to the phases where they should be included.
- Without any tags, nodes are included only in the final phase, where all
- memory is available. Any untagged nodes are dropped from previous phases
- and are ignored before the final phase is reached.
- The build process produces a separate executable for each phase. It can
- use fdtgrep to drop any nodes which are not needed for a particular build.
- For example, the pre-sram build will drop any nodes which are not marked
- with bootph-pre-sram or bootph-all tags.
- Note that phase builds may drop the tags, since they have served their
- purpose by that point. So when looking at phase-specific device tree files
- you may not see these tags.
- Multiple tags can be used in the same node.
- Tags in a child node are implied to be present in all parent nodes as well.
- This is important, since some missing properties (such as "ranges", or
- "compatible") can cause the child node to be ignored or incorrectly
- parsed.
- That said, at present, fdtgrep applies tags only to the node they are
- added to, not to any parents. This means U-Boot device tree files often
- add the same tag to parent nodes, rather than relying on tooling to do
- this. This is a limitation of fdtgrep and it will be addressed so that
- 'Linux DTs' do not need to do this.
- The available tags are described as properties below, in order of phase
- execution.
- select: true
- properties:
- bootph-pre-sram:
- type: boolean
- description:
- Enable this node when SRAM is not available. This phase must set up
- some SRAM or cache-as-RAM so it can obtain data/BSS space to use
- during execution.
- bootph-verify:
- type: boolean
- description:
- Enable this node in the verification step, which decides which of the
- available images should be run next.
- bootph-pre-ram:
- type: boolean
- description:
- Enable this node in the phase that sets up SDRAM.
- bootph-some-ram:
- type: boolean
- description:
- Enable this node in the phase that is run after SDRAM is working but
- before all of it is available. Some RAM is available but it is limited
- (e.g. it may be split into two pieces by the location of the running
- program) because the program code is not yet relocated out of the way.
- bootph-all:
- type: boolean
- description:
- Include this node in all phases (for U-Boot see enum u_boot_phase).
- additionalProperties: true
|