diff mbox series

ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards

Message ID 20201104102558.11070-1-m.reichl@fivetechno.de
State New
Headers show
Series ARM: dts: exynos: Assign a fixed index to mmc devices on exynos4412 based ODROID boards | expand

Commit Message

Markus Reichl Nov. 4, 2020, 10:25 a.m. UTC
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 <m.reichl@fivetechno.de>
---
 arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Marek Szyprowski Nov. 4, 2020, 12:25 p.m. UTC | #1
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 <m.reichl@fivetechno.de>

> ---

>   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
Markus Reichl Nov. 4, 2020, 1:06 p.m. UTC | #2
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 <m.reichl@fivetechno.de>

>> ---

>>   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
Marek Szyprowski Nov. 4, 2020, 1:13 p.m. UTC | #3
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 <m.reichl@fivetechno.de>

>>> ---

>>>   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
Marek Szyprowski Nov. 4, 2020, 1:44 p.m. UTC | #4
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 <m.reichl@fivetechno.de>

>>>> ---

>>>>    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
Krzysztof Kozlowski Nov. 5, 2020, 8:22 a.m. UTC | #5
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 <m.reichl@fivetechno.de>
> >>>> ---
> >>>>    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
Markus Reichl Nov. 5, 2020, 8:31 a.m. UTC | #6
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 <m.reichl@fivetechno.de>

>>>>> ---

>>>>>    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
Robin Murphy Nov. 5, 2020, 11:26 a.m. UTC | #7
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 <m.reichl@fivetechno.de>
>>>>>> ---
>>>>>>    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
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
diff mbox series

Patch

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;
 	};