mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-17 02:15:02 +00:00

This name fits better with the new naming scheme, so update it. Signed-off-by: Simon Glass <sjg@chromium.org>
88 lines
3.1 KiB
YAML
88 lines
3.1 KiB
YAML
# 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 xpl_phase_t).
|
|
|
|
additionalProperties: true
|