diff mbox series

ARM: dts: exynos: Assign a fixed index to mmc devices on ODROID XU3/4 boards

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

Commit Message

Markus Reichl Nov. 4, 2020, 10:08 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
are 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/exynos5422-odroidxu3-common.dtsi | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Marek Szyprowski Nov. 4, 2020, 12:24 p.m. UTC | #1
Hi Markus,

On 04.11.2020 11:08, 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
> are not practical. Use newly introduced aliases for mmcblk devices from [1].
>
> [1]
> https://patchwork.kernel.org/patch/11747669/

Wow, this is a long standing issue, called by others 'a feature'. Good 
that this has been finally solved.

> Signed-off-by: Markus Reichl <m.reichl@fivetechno.de>
> ---
>   arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> index e35af40a55cb..91d2840ac8ca 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> @@ -13,6 +13,11 @@
>   #include "exynos5422-odroid-core.dtsi"
>   
>   / {
> +	aliases {
> +		mmc0 = &mmc_2;
> +		mmc1 = &mmc_0;

Frankly, I would keep the MMC numbers the same as in u-boot and 
datasheets. 0 for the build-in eMMC and 2 for the SD-card. This would be 
much more natural. On the other hand, I would agree to do it differently 
only on Odroid HC1/HD2/MC1, which don't have build-in eMMC - just use 0 
there for the SD-card.

> +	};
> +
>   	gpio-keys {
>   		compatible = "gpio-keys";
>   		pinctrl-names = "default";

Best regards
Markus Reichl Nov. 4, 2020, 12:42 p.m. UTC | #2
Hi Marek,

Am 04.11.20 um 13:24 schrieb Marek Szyprowski:
> Hi Markus,
> 
> On 04.11.2020 11:08, 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
>> are not practical. Use newly introduced aliases for mmcblk devices from [1].
>>
>> [1]
>> https://patchwork.kernel.org/patch/11747669/
> 
> Wow, this is a long standing issue, called by others 'a feature'. Good
> that this has been finally solved.
> 
>> Signed-off-by: Markus Reichl <m.reichl@fivetechno.de>
>> ---
>>   arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>> index e35af40a55cb..91d2840ac8ca 100644
>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>> @@ -13,6 +13,11 @@
>>   #include "exynos5422-odroid-core.dtsi"
>>   
>>   / {
>> +	aliases {
>> +		mmc0 = &mmc_2;
>> +		mmc1 = &mmc_0;
> 
> Frankly, I would keep the MMC numbers the same as in u-boot and
> datasheets. 0 for the build-in eMMC and 2 for the SD-card. This would be
> much more natural. On the other hand, I would agree to do it differently
> only on Odroid HC1/HD2/MC1, which don't have build-in eMMC - just use 0
> there for the SD-card.

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

Still desired?
> 
>> +	};
>> +
>>   	gpio-keys {
>>   		compatible = "gpio-keys";
>>   		pinctrl-names = "default";
> 
> Best regards
> 

Gruß,
Marek Szyprowski Nov. 4, 2020, 12:56 p.m. UTC | #3
Hi Markus,

On 04.11.2020 13:42, Markus Reichl wrote:
> Am 04.11.20 um 13:24 schrieb Marek Szyprowski:
>> On 04.11.2020 11:08, 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
>>> are not practical. Use newly introduced aliases for mmcblk devices 
>>> from [1].
>>>
>>> [1]
>>> https://patchwork.kernel.org/patch/11747669/
>>
>> Wow, this is a long standing issue, called by others 'a feature'. Good
>> that this has been finally solved.
>>
>>> Signed-off-by: Markus Reichl <m.reichl@fivetechno.de>
>>> ---
>>>   arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 5 +++++
>>>   1 file changed, 5 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi 
>>> b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>> index e35af40a55cb..91d2840ac8ca 100644
>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>> @@ -13,6 +13,11 @@
>>>   #include "exynos5422-odroid-core.dtsi"
>>>     / {
>>> +    aliases {
>>> +        mmc0 = &mmc_2;
>>> +        mmc1 = &mmc_0;
>>
>> Frankly, I would keep the MMC numbers the same as in u-boot and
>> datasheets. 0 for the build-in eMMC and 2 for the SD-card. This would be
>> much more natural. On the other hand, I would agree to do it differently
>> only on Odroid HC1/HD2/MC1, which don't have build-in eMMC - just use 0
>> there for the SD-card.
>
> This would break present and long standing  boot ordering in mainline, 
> which is
> mmcblk0 = SD-card and
> mmcblk1 = eMMC
>
> Still desired?

Well, previously (before v4.0? I don't remember exactly when there was a 
first change), the order was exactly opposite. I think that going for 
the MMC bus numbers from the datasheet/schematic is the most appropriate 
approach.

Best regards
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index e35af40a55cb..91d2840ac8ca 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -13,6 +13,11 @@ 
 #include "exynos5422-odroid-core.dtsi"
 
 / {
+	aliases {
+		mmc0 = &mmc_2;
+		mmc1 = &mmc_0;
+	};
+
 	gpio-keys {
 		compatible = "gpio-keys";
 		pinctrl-names = "default";