Hi François,

On Thu, 2 Dec 2021 at 09:34, François Ozog <francois.o...@linaro.org> wrote:
>
> Hi Simon
>
> Le jeu. 2 déc. 2021 à 17:00, Simon Glass <s...@chromium.org> a écrit :
>>
>> With Ilias' efforts we have dropped OF_PRIOR_STAGE and OF_HOSTFILE so
>> there are only three ways to obtain a devicetree:
>>
>>    - OF_SEPARATE - the normal way, where the devicetree is built and
>>       appended to U-Boot
>>    - OF_EMBED - for development purposes, the devicetree is embedded in
>>       the ELF file (also used for EFI)
>>    - OF_BOARD - the board figures it out on its own
>>
>> The last one is currently set up so that no devicetree is needed at all
>> in the U-Boot tree. Most boards do provide one, but some don't. Some
>> don't even provide instructions on how to boot on the board.
>>
>> The problems with this approach are documented in another patch in this
>> series: "doc: Add documentation about devicetree usage"
>>
>> In practice, OF_BOARD is not really distinct from OF_SEPARATE. Any board
>> can obtain its devicetree at runtime, even it is has a devicetree built
>> in U-Boot. This is because U-Boot may be a second-stage bootloader and its
>> caller may have a better idea about the hardware available in the machine.
>> This is the case with a few QEMU boards, for example.
>>
>> So it makes no sense to have OF_BOARD as a 'choice'. It should be an
>> option, available with either OF_SEPARATE or OF_EMBED.
>>
>> This series makes this change, adding various missing devicetree files
>> (and placeholders) to make the build work.
>>
>> Note: If board maintainers are able to add their own patch to add the
>> files, some patches in this series can be dropped.
>>
>> It also provides a few qemu clean-ups discovered along the way. The
>> qemu-riscv64_spl problem is fixed.
>>
>> [1] 
>> https://patchwork.ozlabs.org/project/uboot/patch/20210919215111.3830278-3-...@chromium.org/
>>
>> Changes in v6:
>> - Fix description of OF_BOARD so it refers just to the current state
>> - Explain that the 'two devicetrees' refers to two *control* devicetrees
>> - Expand the commit message based on comments
>> - Expand the commit message based on comments
>
> You haven’t addressed any concerns expressed on the mailing list.so I am not 
> in favor of this new version either.

Please see the change log. I have addressed everything except the
fundamental disagreement we have.

> If you make a version without « fake DTs » as you name them, there are good 
> advances in the documentation and other areas that would be better in 
> mainline….
> If I am the only one thinking this way and the patch can be accepted, I would 
> love there is a warning in capital letters at the top of the DTS fake files 
> that explains the intent of this fake DT, the possible outcomes of not using 
> the one provided by the platform and the right way of dealing with DTs for 
> the platform.

The word 'fake' applies to only three of the boards (highbank, bcm7xxx
and octeontx), where I could not even figure out where to get a
devicetree. One might think this would be a significant problem!

Anyway yes I can add a comment to all the files, but please try to ask
for everything at once as there is a cost to continually reworking
this series.

Regards,
Simon

>>
>>
>> Changes in v5:
>> - Bring into the OF_BOARD series
>> - Rebase to master and drop mention of OF_PRIOR_STAGE, since removed
>> - Refer to the 'control' DTB in the first paragraph
>> - Use QEMU instead of qemu
>> - Merge RISC-V and ARM patches since they are similar
>> - Add new patches to clean up fdtdec_setup() and surrounds
>>
>> Changes in v3:
>> - Clarify the 'bug' refered to at the top
>> - Reword 'This means that there' paragraph to explain U-Boot-specific things
>> - Move to doc/develop/devicetree now that OF_CONTROL is in the docs
>>
>> Changes in v2:
>> - Fix typos per Sean (thank you!) and a few others
>> - Add a 'Use of U-Boot /config node' section
>> - Drop mention of dm-verity since that actually uses the kernel cmdline
>> - Explain that OF_BOARD will still work after these changes (in
>>   'Once this bug is fixed...' paragraph)
>> - Expand a bit on the reason why the 'Current situation' is bad
>> - Clarify in a second place that Linux and U-Boot use the same devicetree
>>   in 'To be clear, while U-Boot...'
>> - Expand on why we should have rules for other projects in
>>   'Devicetree in another project'
>> - Add a comment as to why devicetree in U-Boot is not 'bad design'
>> - Reword 'in-tree U-Boot devicetree' to 'devicetree source in U-Boot'
>> - Rewrite 'Devicetree generated on-the-fly in another project' to cover
>>   points raised on v1
>> - Add 'Why does U-Boot have its nodes and properties?'
>> - Add 'Why not have two devicetrees?'
>>
>> Simon Glass (25):
>>   doc: Add documentation about devicetree usage
>>   arm: qemu: Mention -nographic in the docs
>>   arm: riscv: qemu: Explain how to extract the generated dt
>>   arm: qemu: Add a devicetree file for qemu_arm
>>   arm: qemu: Add a devicetree file for qemu_arm64
>>   riscv: qemu: Add devicetree files for qemu_riscv32/64
>>   arm: rpi: Add a devicetree file for rpi_4
>>   arm: vexpress: Add a devicetree file for juno
>>   arm: xenguest_arm64: Add a fake devicetree file
>>   arm: octeontx: Add a fake devicetree file
>>   arm: xilinx_versal_virt: Add a devicetree file
>>   arm: bcm7xxx: Add a devicetree file
>>   arm: qemu-ppce500: Add a devicetree file
>>   arm: highbank: Add a fake devicetree file
>>   fdt: Make OF_BOARD a bool option
>>   Drop CONFIG_BINMAN_STANDALONE_FDT
>>   doc: Update info on devicetree update
>>   fdt: Move MULTI_DTB_FIT handling out of fdtdec_setup()
>>   fdt: Drop #ifdefs with MULTI_DTB_FIT
>>   fdt: Drop CONFIG_SPL_BUILD check in fdtdec_setup()
>>   fdt: Drop #ifdef around board_fdt_blob_setup()
>>   fdt: Use if() for fdtcontroladdr check
>>   fdt: Drop OF_CONTROL check in fdtdec_setup()
>>   fdt: Drop remaining preprocessor macros in fdtdec_setup()
>>   fdt: Don't call board_fdt_blob_setup() without OF_BOARD
>>
>>  Makefile                               |    3 +-
>>  arch/arm/dts/Makefile                  |   20 +-
>>  arch/arm/dts/bcm2711-rpi-4-b.dts       | 1958 ++++++++++++++++++++++++
>>  arch/arm/dts/bcm7xxx.dts               |   15 +
>>  arch/arm/dts/highbank.dts              |   14 +
>>  arch/arm/dts/juno-r2.dts               | 1038 +++++++++++++
>>  arch/arm/dts/octeontx.dts              |   14 +
>>  arch/arm/dts/qemu-arm.dts              |  402 +++++
>>  arch/arm/dts/qemu-arm64.dts            |  381 +++++
>>  arch/arm/dts/xenguest-arm64.dts        |   15 +
>>  arch/arm/dts/xilinx-versal-virt.dts    |  307 ++++
>>  arch/powerpc/dts/Makefile              |    1 +
>>  arch/powerpc/dts/qemu-ppce500.dts      |  264 ++++
>>  arch/riscv/dts/Makefile                |    2 +-
>>  arch/riscv/dts/qemu-virt.dts           |    8 -
>>  arch/riscv/dts/qemu-virt32.dts         |  217 +++
>>  arch/riscv/dts/qemu-virt64.dts         |  217 +++
>>  configs/bcm7260_defconfig              |    1 +
>>  configs/bcm7445_defconfig              |    1 +
>>  configs/highbank_defconfig             |    2 +-
>>  configs/octeontx2_95xx_defconfig       |    1 +
>>  configs/octeontx2_96xx_defconfig       |    1 +
>>  configs/octeontx_81xx_defconfig        |    1 +
>>  configs/octeontx_83xx_defconfig        |    1 +
>>  configs/qemu-ppce500_defconfig         |    2 +
>>  configs/qemu-riscv32_defconfig         |    1 +
>>  configs/qemu-riscv32_smode_defconfig   |    1 +
>>  configs/qemu-riscv32_spl_defconfig     |    4 +-
>>  configs/qemu-riscv64_defconfig         |    1 +
>>  configs/qemu-riscv64_smode_defconfig   |    1 +
>>  configs/qemu-riscv64_spl_defconfig     |    3 +-
>>  configs/qemu_arm64_defconfig           |    1 +
>>  configs/qemu_arm_defconfig             |    1 +
>>  configs/rpi_4_32b_defconfig            |    1 +
>>  configs/rpi_4_defconfig                |    1 +
>>  configs/rpi_arm64_defconfig            |    1 +
>>  configs/vexpress_aemv8a_juno_defconfig |    1 +
>>  configs/xenguest_arm64_defconfig       |    2 +-
>>  configs/xilinx_versal_virt_defconfig   |    1 +
>>  doc/board/emulation/qemu-arm.rst       |   10 +-
>>  doc/board/emulation/qemu-riscv.rst     |    3 +
>>  doc/develop/devicetree/dt_qemu.rst     |   48 +
>>  doc/develop/devicetree/dt_update.rst   |  497 ++++++
>>  doc/develop/devicetree/index.rst       |    2 +
>>  dts/Kconfig                            |   30 +-
>>  include/asm-generic/global_data.h      |    8 +
>>  include/fdtdec.h                       |   21 +-
>>  lib/fdtdec.c                           |  117 +-
>>  tools/binman/binman.rst                |   20 -
>>  49 files changed, 5538 insertions(+), 124 deletions(-)
>>  create mode 100644 arch/arm/dts/bcm2711-rpi-4-b.dts
>>  create mode 100644 arch/arm/dts/bcm7xxx.dts
>>  create mode 100644 arch/arm/dts/highbank.dts
>>  create mode 100644 arch/arm/dts/juno-r2.dts
>>  create mode 100644 arch/arm/dts/octeontx.dts
>>  create mode 100644 arch/arm/dts/qemu-arm.dts
>>  create mode 100644 arch/arm/dts/qemu-arm64.dts
>>  create mode 100644 arch/arm/dts/xenguest-arm64.dts
>>  create mode 100644 arch/arm/dts/xilinx-versal-virt.dts
>>  create mode 100644 arch/powerpc/dts/qemu-ppce500.dts
>>  delete mode 100644 arch/riscv/dts/qemu-virt.dts
>>  create mode 100644 arch/riscv/dts/qemu-virt32.dts
>>  create mode 100644 arch/riscv/dts/qemu-virt64.dts
>>  create mode 100644 doc/develop/devicetree/dt_qemu.rst
>>  create mode 100644 doc/develop/devicetree/dt_update.rst
>>
>> --
>> 2.34.0.rc2.393.gf8c9666880-goog
>>
> --
> François-Frédéric Ozog | Director Business Development
> T: +33.67221.6485
> francois.o...@linaro.org | Skype: ffozog
>

Reply via email to