Re: [PATCH v6 11/11] arm64: dts: mt7986: add BPI-R3 nand/nor overlays

From: Frank Wunderlich
Date: Fri Nov 18 2022 - 17:05:59 EST


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