Am 18. November 2022 22:39:52 MEZ schrieb Rob Herring <robh+dt@xxxxxxxxxx>: >On Fri, Nov 18, 2022 at 1:01 PM Frank Wunderlich <linux@xxxxxxxxx> wrote: >> >> From: Frank Wunderlich <frank-w@xxxxxxxxxxxxxxx> >> >> Add devicetree overlays for using nand and nor on BPI-R3. > >Can you not tell at runtime which one you booted from? If not, how >does one choose which overlay to apply? If you can, why not populate >both nodes and enable the right one? IMO, if all h/w is present, it >should all be in the DT. Selecting what h/w to use is a separate >problem and overlays aren't a great solution for that. It is not the decision about bootdevice,more available devices. Only 1 spi device (nand OR nor) is available at boottime as they share same spi bus and chipselect is set via hw jumper. Both nodes have reg 0,which is imho not supported in linux. I choosed overlays to add the right spi device on the right mmc device where similar selection happens (see patch 10). Either sd OR emmc can be used (1 mmc controller,first 4bits from bus switched by hardware jumper).But for mmc i use it as base fdt because i see mmc as primary device which holds rootfs too. Nand/nor is imho helping device for accessing emmc or like rescue system (only uboot). I probe in uboot if emmc is available (mmc partconf) and choose emmc else sd. For spi i try with sf command to check for nor,if this does not work i apply nand overlay. >> Signed-off-by: Frank Wunderlich <frank-w@xxxxxxxxxxxxxxx> >> --- >> maybe rename to dtso? >> >> "kbuild: Allow DTB overlays to built from .dtso named source files" >> https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git/commit/?h=dt/next&id=363547d2191cbc32ca954ba75d72908712398ff2 Should i do this? >> more comments about the dt overlay-support: >> >> https://patchwork.kernel.org/comment/25092116/ >> https://patchwork.kernel.org/comment/25085681/ Daniel suggest define sd/emmc as overlay too...with way you mention below we could create 4 full fdt without applying overlays in uboot. >> --- a/arch/arm64/boot/dts/mediatek/Makefile >> +++ b/arch/arm64/boot/dts/mediatek/Makefile >> @@ -8,6 +8,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb >> dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-emmc.dtb >> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nand.dtbo >> +dtb-$(CONFIG_ARCH_MEDIATEK) += mt7986a-bananapi-bpi-r3-nor.dtbo > >These need rules to apply them to the base dtb(s). You just need: > >full.dtb := base.dtb overlay.dtb >dtb-y += full.dtb I would prefer to do this in bootloader to allow all 4 possible configurations: Sd+nand Sd+nor Emmc+nand Emmc+nor >Rob Hi, regards Frank