Re: [PATCH 1/3] arm64: dts: ti: iot2050: Flip mmc device ordering on Advanced devices

From: Aswath Govindraju
Date: Tue Sep 07 2021 - 13:01:57 EST


Hi Nishanth,

On 07/09/21 10:23 pm, Nishanth Menon wrote:
> On 22:17-20210907, Aswath Govindraju wrote:
>> Hi Nishanth,
>>
>> On 07/09/21 9:05 pm, Nishanth Menon wrote:
>>> On 17:30-20210907, Jan Kiszka wrote:
>>>> On 07.09.21 17:27, Nishanth Menon wrote:
>>>>> On 17:20-20210907, Jan Kiszka wrote:
>>>>>> On 07.09.21 17:13, Nishanth Menon wrote:
>>>>>>> On 16:22-20210907, Jan Kiszka wrote:
>>>>>>>> From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
>>>>>>>>
>>>>>>>> This ensures that the SD card will remain mmc0 across Basic and Advanced
>>>>>>>> devices, also avoiding surprises for users coming from the downstream
>>>>>>>> kernels.
>>>>>>>>
>>>>>>>> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
>>>>>>>> ---
>>>>>>>> arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts | 5 +++++
>>>>>>>> 1 file changed, 5 insertions(+)
>>>>>>>>
>>>>>>>> diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
>>>>>>>> index ec9617c13cdb..d1d5278e0b94 100644
>>>>>>>> --- a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
>>>>>>>> +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced.dts
>>>>>>>> @@ -18,6 +18,11 @@ / {
>>>>>>>> compatible = "siemens,iot2050-advanced", "ti,am654";
>>>>>>>> model = "SIMATIC IOT2050 Advanced";
>>>>>>>>
>>>>>>>> + aliases {
>>>>>>>> + mmc0 = &sdhci1;
>>>>>>>> + mmc1 = &sdhci0;
>>>>>>>> + };
>>>>>>>
>>>>>>>
>>>>>>> Should we do this at SoC level?
>>>>>>>
>>>>>>
>>>>>> Well, I wouldn't mind - but that would also impact your EVMs. For us,
>>>>>> this is fine as we are coming from that ordering above with our
>>>>>> downstream kernel/dts.
>>>>>>
>>>>>
>>>>> I think it'd probably be a welcome change. overall we've standardized on
>>>>> partuuid.
>>>>>
>>>>
>>>> Yeah, it's more about "dd if=emmc.img of=/dev/mmcblk1 - damn, the wrong
>>>> one again."
>>>>
>>>> Let me know what you prefer, and I'll update my patch.
>>>
>>>
>>> Lets do it at SoC level. I will follow it up with a patch for other K3
>>> SoCs as well.
>>>
>>>
>>> Unless someone has a strong opinion on this approach - if so, speak up
>>> with reasons.
>>>
>>
>> Making this change in SoC level for all K3 devices would force changes
>> to be made in U-Boot too, for consistency. In U-Boot, a major change
>> would be required in the environment variables to support this. As I
>> don't see any functional advantage by making this change, I feel that
>> this change would make things more confusing for users already using the
>> K3 devices. At present, the ordering is consistent across all the K3
>> devices, I feel that keeping it the same way would be better.
>>
>> As for making changes only on IoT boards, if it is okay to have the
>> ordering changed between U-Boot and kernel, I don't see any problem
>> making this change in kernel alone.
>
>
> arch/arm64/boot/dts/ti/k3-am65.dtsi has no ordering. u-boot is supposed
> to copy from kernel the dtsi files as is. I think having mmc aliases in
> kernel is a good thing as we do regard kernel as the canonical dts
> source.
>

Yes, you are correct. Aliases are not added for mmc in U-Boot too, but
due to the ordering in the device tree, mmc0 is always sdhci0 and mmc1
is always sdhci1 in U-Boot. I agree that, in kernel as the probe order
is not guaranteed, fixing the order would be better by adding aliases
explicitly.

> If you are suggesting we flip things so that mmc0 is sdhci0 and mmc1 is
> sdhci1 - that might be a valid suggestion - Jan, do you see a problem
> in having consistency here (flip the aliases)?
>
>

Yes, I am suggesting a flip in the order and this order can be applied
across all the K3 SoC's

Thanks,
Aswath