2020-11-04 10:28:25

by Markus Reichl

[permalink] [raw]
Subject: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Recently introduced async probe on mmc devices can shuffle block IDs.
Pin them to fixed values to ease booting in evironments where UUIDs ar not practical.
Use newly introduced aliases for mmcblk devices from [1].

[1]
https://patchwork.kernel.org/patch/11747669/

Signed-off-by: Markus Reichl <[email protected]>
---
arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index a5c1ce1e396c..aa10d5bc7e1c 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -13,6 +13,11 @@
#include "exynos-mfc-reserved-memory.dtsi"

/ {
+ aliases {
+ mmc0 = &sdhci_2;
+ mmc1 = &mshc_0;
+ };
+
chosen {
stdout-path = &serial_1;
};
--
2.20.1


2020-11-04 12:28:08

by Marek Szyprowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Hi Markus,

On 04.11.2020 11:25, Markus Reichl wrote:
> Recently introduced async probe on mmc devices can shuffle block IDs.
> Pin them to fixed values to ease booting in evironments where UUIDs ar not practical.
> Use newly introduced aliases for mmcblk devices from [1].
>
> [1]
> https://patchwork.kernel.org/patch/11747669/
>
> Signed-off-by: Markus Reichl <[email protected]>
> ---
> arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
> index a5c1ce1e396c..aa10d5bc7e1c 100644
> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
> @@ -13,6 +13,11 @@
> #include "exynos-mfc-reserved-memory.dtsi"
>
> / {
> + aliases {
> + mmc0 = &sdhci_2;
> + mmc1 = &mshc_0;

Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
and 2 for the SD-card (sdhci_2).

> + };
> +
> chosen {
> stdout-path = &serial_1;
> };

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland

2020-11-04 12:45:18

by Markus Reichl

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Hi Marek,

Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
> Hi Markus,
>
> On 04.11.2020 11:25, Markus Reichl wrote:
>> Recently introduced async probe on mmc devices can shuffle block IDs.
>> Pin them to fixed values to ease booting in evironments where UUIDs ar not practical.
>> Use newly introduced aliases for mmcblk devices from [1].
>>
>> [1]
>> https://patchwork.kernel.org/patch/11747669/
>>
>> Signed-off-by: Markus Reichl <[email protected]>
>> ---
>> arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>> index a5c1ce1e396c..aa10d5bc7e1c 100644
>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>> @@ -13,6 +13,11 @@
>> #include "exynos-mfc-reserved-memory.dtsi"
>>
>> / {
>> + aliases {
>> + mmc0 = &sdhci_2;
>> + mmc1 = &mshc_0;
>
> Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
> and 2 for the SD-card (sdhci_2).

This would break present and long standing boot ordering in mainline, which is
mmcblk0 = SD-card and
mmcblk1 = eMMC

Still desired?

>
>> + };
>> +
>> chosen {
>> stdout-path = &serial_1;
>> };
>
> Best regards
>

Gruß,
--
Markus Reichl

2020-11-04 13:08:25

by Markus Reichl

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Hi Marek,

Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
> Hi Markus,
>
> On 04.11.2020 11:25, Markus Reichl wrote:
>> Recently introduced async probe on mmc devices can shuffle block IDs.
>> Pin them to fixed values to ease booting in evironments where UUIDs ar not practical.
>> Use newly introduced aliases for mmcblk devices from [1].
>>
>> [1]
>> https://patchwork.kernel.org/patch/11747669/
>>
>> Signed-off-by: Markus Reichl <[email protected]>
>> ---
>> arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>> index a5c1ce1e396c..aa10d5bc7e1c 100644
>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>> @@ -13,6 +13,11 @@
>> #include "exynos-mfc-reserved-memory.dtsi"
>>
>> / {
>> + aliases {
>> + mmc0 = &sdhci_2;
>> + mmc1 = &mshc_0;
>
> Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
> and 2 for the SD-card (sdhci_2).

How to deal then with sdhci_0 (from exynos4.dtsi) vc. mshc_0 (from exynos4412.dts)?

>
>> + };
>> +
>> chosen {
>> stdout-path = &serial_1;
>> };
>
> Best regards
>

Gruß,
--
Markus Reichl

2020-11-04 13:16:33

by Marek Szyprowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Hi Markus,

On 04.11.2020 14:06, Markus Reichl wrote:
> Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
>> On 04.11.2020 11:25, Markus Reichl wrote:
>>> Recently introduced async probe on mmc devices can shuffle block IDs.
>>> Pin them to fixed values to ease booting in evironments where UUIDs
>>> ar not practical.
>>> Use newly introduced aliases for mmcblk devices from [1].
>>>
>>> [1]
>>> https://patchwork.kernel.org/patch/11747669/
>>>
>>> Signed-off-by: Markus Reichl <[email protected]>
>>> ---
>>>   arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
>>>   1 file changed, 5 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>> b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>> index a5c1ce1e396c..aa10d5bc7e1c 100644
>>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>> @@ -13,6 +13,11 @@
>>>   #include "exynos-mfc-reserved-memory.dtsi"
>>>     / {
>>> +    aliases {
>>> +        mmc0 = &sdhci_2;
>>> +        mmc1 = &mshc_0;
>>
>> Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
>> and 2 for the SD-card (sdhci_2).
>
> How to deal then with sdhci_0 (from exynos4.dtsi) vc. mshc_0 (from
> exynos4412.dts)?

sdhci_0 and mshc_0 both operate on the same physical MMC0 bus, so this
is not an issue. They cannot be used simultaneously. The latter is just
faster, the first one has been left there mainly for the software
compatibility.

Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland

2020-11-04 13:46:42

by Marek Szyprowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

On 04.11.2020 14:13, Marek Szyprowski wrote:
> On 04.11.2020 14:06, Markus Reichl wrote:
>> Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
>>> On 04.11.2020 11:25, Markus Reichl wrote:
>>>> Recently introduced async probe on mmc devices can shuffle block IDs.
>>>> Pin them to fixed values to ease booting in evironments where UUIDs
>>>> ar not practical.
>>>> Use newly introduced aliases for mmcblk devices from [1].
>>>>
>>>> [1]
>>>> https://patchwork.kernel.org/patch/11747669/
>>>>
>>>> Signed-off-by: Markus Reichl <[email protected]>
>>>> ---
>>>>   arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
>>>>   1 file changed, 5 insertions(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>> b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>> index a5c1ce1e396c..aa10d5bc7e1c 100644
>>>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>> @@ -13,6 +13,11 @@
>>>>   #include "exynos-mfc-reserved-memory.dtsi"
>>>>     / {
>>>> +    aliases {
>>>> +        mmc0 = &sdhci_2;
>>>> +        mmc1 = &mshc_0;
>>> Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
>>> and 2 for the SD-card (sdhci_2).
>> How to deal then with sdhci_0 (from exynos4.dtsi) vc. mshc_0 (from
>> exynos4412.dts)?
> sdhci_0 and mshc_0 both operate on the same physical MMC0 bus, so this
> is not an issue. They cannot be used simultaneously. The latter is just
> faster, the first one has been left there mainly for the software
> compatibility.

I've thought a bit more on this and I would simply prefer to add generic
MMC aliases to the top-level Exynos dtsi files (3250, 4210, 4412, 5250,
5410, 5420) to keep Linux logical MMC bus numbers in sync with the HW
bus numbers on all boards.

Best regards

--
Marek Szyprowski, PhD
Samsung R&D Institute Poland

2020-11-04 13:52:46

by Markus Reichl

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Hi Marek,

Am 04.11.20 um 14:44 schrieb Marek Szyprowski:
> On 04.11.2020 14:13, Marek Szyprowski wrote:
>> On 04.11.2020 14:06, Markus Reichl wrote:
>>> Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
>>>> On 04.11.2020 11:25, Markus Reichl wrote:
>>>>> Recently introduced async probe on mmc devices can shuffle block IDs.
>>>>> Pin them to fixed values to ease booting in evironments where UUIDs
>>>>> ar not practical.
>>>>> Use newly introduced aliases for mmcblk devices from [1].
>>>>>
>>>>> [1]
>>>>> https://patchwork.kernel.org/patch/11747669/
>>>>>
>>>>> Signed-off-by: Markus Reichl <[email protected]>
>>>>> ---
>>>>>   arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
>>>>>   1 file changed, 5 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> index a5c1ce1e396c..aa10d5bc7e1c 100644
>>>>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> @@ -13,6 +13,11 @@
>>>>>   #include "exynos-mfc-reserved-memory.dtsi"
>>>>>     / {
>>>>> +    aliases {
>>>>> +        mmc0 = &sdhci_2;
>>>>> +        mmc1 = &mshc_0;
>>>> Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
>>>> and 2 for the SD-card (sdhci_2).
>>> How to deal then with sdhci_0 (from exynos4.dtsi) vc. mshc_0 (from
>>> exynos4412.dts)?
>> sdhci_0 and mshc_0 both operate on the same physical MMC0 bus, so this
>> is not an issue. They cannot be used simultaneously. The latter is just
>> faster, the first one has been left there mainly for the software
>> compatibility.
>
> I've thought a bit more on this and I would simply prefer to add generic
> MMC aliases to the top-level Exynos dtsi files (3250, 4210, 4412, 5250,
> 5410, 5420) to keep Linux logical MMC bus numbers in sync with the HW
> bus numbers on all boards.

Ok, fine with me.
As this is beyond my knowledge I would like leave this task with you.

>
> Best regards
>

Gruß,
--
Markus Reichl

2020-11-05 08:26:32

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

On Wed, Nov 04, 2020 at 02:44:10PM +0100, Marek Szyprowski wrote:
> On 04.11.2020 14:13, Marek Szyprowski wrote:
> > On 04.11.2020 14:06, Markus Reichl wrote:
> >> Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
> >>> On 04.11.2020 11:25, Markus Reichl wrote:
> >>>> Recently introduced async probe on mmc devices can shuffle block IDs.
> >>>> Pin them to fixed values to ease booting in evironments where UUIDs
> >>>> ar not practical.
> >>>> Use newly introduced aliases for mmcblk devices from [1].
> >>>>
> >>>> [1]
> >>>> https://patchwork.kernel.org/patch/11747669/
> >>>>
> >>>> Signed-off-by: Markus Reichl <[email protected]>
> >>>> ---
> >>>>   arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
> >>>>   1 file changed, 5 insertions(+)
> >>>>
> >>>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
> >>>> b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
> >>>> index a5c1ce1e396c..aa10d5bc7e1c 100644
> >>>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
> >>>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
> >>>> @@ -13,6 +13,11 @@
> >>>>   #include "exynos-mfc-reserved-memory.dtsi"
> >>>>     / {
> >>>> +    aliases {
> >>>> +        mmc0 = &sdhci_2;
> >>>> +        mmc1 = &mshc_0;
> >>> Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
> >>> and 2 for the SD-card (sdhci_2).
> >> How to deal then with sdhci_0 (from exynos4.dtsi) vc. mshc_0 (from
> >> exynos4412.dts)?
> > sdhci_0 and mshc_0 both operate on the same physical MMC0 bus, so this
> > is not an issue. They cannot be used simultaneously. The latter is just
> > faster, the first one has been left there mainly for the software
> > compatibility.
>
> I've thought a bit more on this and I would simply prefer to add generic
> MMC aliases to the top-level Exynos dtsi files (3250, 4210, 4412, 5250,
> 5410, 5420) to keep Linux logical MMC bus numbers in sync with the HW
> bus numbers on all boards.

I like this approach - I don't see much benefit of having different
numbering between boards of the same SoC.

Let's match old U-Boot behavior (I assume that people switch to PARTUUID
around the v4.0 mixup, so they should not be affected).

Best regards,
Krzysztof

2020-11-05 08:34:36

by Markus Reichl

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Hi Marek,

on rk3399 the proposed ordering [1] is according to base address in DT.

[1]
https://patchwork.kernel.org/patch/11881427

Am 04.11.20 um 14:44 schrieb Marek Szyprowski:
> On 04.11.2020 14:13, Marek Szyprowski wrote:
>> On 04.11.2020 14:06, Markus Reichl wrote:
>>> Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
>>>> On 04.11.2020 11:25, Markus Reichl wrote:
>>>>> Recently introduced async probe on mmc devices can shuffle block IDs.
>>>>> Pin them to fixed values to ease booting in evironments where UUIDs
>>>>> ar not practical.
>>>>> Use newly introduced aliases for mmcblk devices from [1].
>>>>>
>>>>> [1]
>>>>> https://patchwork.kernel.org/patch/11747669/
>>>>>
>>>>> Signed-off-by: Markus Reichl <[email protected]>
>>>>> ---
>>>>>   arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
>>>>>   1 file changed, 5 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> index a5c1ce1e396c..aa10d5bc7e1c 100644
>>>>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>> @@ -13,6 +13,11 @@
>>>>>   #include "exynos-mfc-reserved-memory.dtsi"
>>>>>     / {
>>>>> +    aliases {
>>>>> +        mmc0 = &sdhci_2;
>>>>> +        mmc1 = &mshc_0;
>>>> Like in the OdroidXU3-family patch, I would use 0 for the eMMC (mshc_0)
>>>> and 2 for the SD-card (sdhci_2).
>>> How to deal then with sdhci_0 (from exynos4.dtsi) vc. mshc_0 (from
>>> exynos4412.dts)?
>> sdhci_0 and mshc_0 both operate on the same physical MMC0 bus, so this
>> is not an issue. They cannot be used simultaneously. The latter is just
>> faster, the first one has been left there mainly for the software
>> compatibility.
>
> I've thought a bit more on this and I would simply prefer to add generic
> MMC aliases to the top-level Exynos dtsi files (3250, 4210, 4412, 5250,
> 5410, 5420) to keep Linux logical MMC bus numbers in sync with the HW
> bus numbers on all boards.
>
> Best regards
>

Gruß,
--
Markus Reichl


Attachments:
OpenPGP_0x3A25DE0E6B1AFDB2.asc (2.98 kB)
OpenPGP_signature (677.00 B)
OpenPGP digital signature
Download all attachments

2020-11-05 11:28:15

by Robin Murphy

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

On 2020-11-05 08:31, Markus Reichl wrote:
> Hi Marek,
>
> on rk3399 the proposed ordering [1] is according to base address in DT.

FWIW, note that in RK3399's case the SoC itself provides no logical
numbering to follow - the pin groups are named "EMMC", "SDIO0" and
"SDMMC0" in the datasheet, while the TRM uses "emmc", "sdio" and "sdmmc"
in signal and register names.

If the SoC *does* have an inherent notion of numbered interfaces, I
would agree that following that numbering is the most logical thing to do.

Robin.

>
> [1]
> https://patchwork.kernel.org/patch/11881427
>
> Am 04.11.20 um 14:44 schrieb Marek Szyprowski:
>> On 04.11.2020 14:13, Marek Szyprowski wrote:
>>> On 04.11.2020 14:06, Markus Reichl wrote:
>>>> Am 04.11.20 um 13:25 schrieb Marek Szyprowski:
>>>>> On 04.11.2020 11:25, Markus Reichl wrote:
>>>>>> Recently introduced async probe on mmc devices can shuffle block IDs.
>>>>>> Pin them to fixed values to ease booting in evironments where UUIDs
>>>>>> ar not practical.
>>>>>> Use newly introduced aliases for mmcblk devices from [1].
>>>>>>
>>>>>> [1]
>>>>>> https://patchwork.kernel.org/patch/11747669/
>>>>>>
>>>>>> Signed-off-by: Markus Reichl <[email protected]>
>>>>>> ---
>>>>>>    arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
>>>>>>    1 file changed, 5 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>>> b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>>> index a5c1ce1e396c..aa10d5bc7e1c 100644
>>>>>> --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>>> +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
>>>>>> @@ -13,6 +13,11 @@
>>>>>>    #include "exynos-mfc-reserved-memory.dtsi"
>>>>>>      / {
>>>>>> +    aliases {
>>>>>> +        mmc0 = &sdhci_2;
>>>>>> +        mmc1 = &mshc_0;
>>>>> Like in the OdroidXU3-family patch, I would use 0 for the eMMC
>>>>> (mshc_0)
>>>>> and 2 for the SD-card (sdhci_2).
>>>> How to deal then with sdhci_0 (from exynos4.dtsi) vc. mshc_0 (from
>>>> exynos4412.dts)?
>>> sdhci_0 and mshc_0 both operate on the same physical MMC0 bus, so this
>>> is not an issue. They cannot be used simultaneously. The latter is just
>>> faster, the first one has been left there mainly for the software
>>> compatibility.
>>
>> I've thought a bit more on this and I would simply prefer to add generic
>> MMC aliases to the top-level Exynos dtsi files (3250, 4210, 4412, 5250,
>> 5410, 5420) to keep Linux logical MMC bus numbers in sync with the HW
>> bus numbers on all boards.
>>
>> Best regards
>>
>
> Gruß,
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>