ARM: dts: imx6qdl-sabre: Add mmc aliases

Message ID 20221028141811.101122-1-detlev.casanova@collabora.com
State New
Headers
Series ARM: dts: imx6qdl-sabre: Add mmc aliases |

Commit Message

Detlev Casanova Oct. 28, 2022, 2:18 p.m. UTC
  If not specified, the mmc0 and mmc1 devices will be the devices
mmc@2190000 and mmc@2194000, which are in disabled state on the iMX.6
Sabrelite devices.

The actual SD card reader devices are the ones at mmc@2198000 and
mmc@219c000.

Set aliases to use the correct mmc devices order.

Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
---
 arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Shawn Guo Nov. 11, 2022, 2:52 a.m. UTC | #1
On Fri, Oct 28, 2022 at 10:18:11AM -0400, Detlev Casanova wrote:
> If not specified, the mmc0 and mmc1 devices will be the devices
> mmc@2190000 and mmc@2194000, which are in disabled state on the iMX.6
> Sabrelite devices.
> 
> The actual SD card reader devices are the ones at mmc@2198000 and
> mmc@219c000.
> 
> Set aliases to use the correct mmc devices order.

Is this something never worked or a regression?  For the latter, we may
need a Fixes tag?

Shawn

> 
> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> ---
>  arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> index 22f8e2783cdf..12573e1f917c 100644
> --- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> @@ -14,6 +14,11 @@ chosen {
>  		stdout-path = &uart2;
>  	};
>  
> +	aliases {
> +		mmc0 = &usdhc3;
> +		mmc1 = &usdhc4;
> +	};
> +
>  	memory@10000000 {
>  		device_type = "memory";
>  		reg = <0x10000000 0x40000000>;
> -- 
> 2.38.1
>
  
Detlev Casanova Nov. 11, 2022, 7:35 p.m. UTC | #2
On Thursday, November 10, 2022 9:52:32 P.M. EST Shawn Guo wrote:
> On Fri, Oct 28, 2022 at 10:18:11AM -0400, Detlev Casanova wrote:
> > If not specified, the mmc0 and mmc1 devices will be the devices
> > mmc@2190000 and mmc@2194000, which are in disabled state on the iMX.6
> > Sabrelite devices.
> > 
> > The actual SD card reader devices are the ones at mmc@2198000 and
> > mmc@219c000.
> > 
> > Set aliases to use the correct mmc devices order.
> 
> Is this something never worked or a regression?  For the latter, we may
> need a Fixes tag?

These were apparently never set in the kernel device-tree and added manually 
in u-boot when dts are synced.

Because most distributions use UUIDs in fstab, it is not a big problem in 
Linux, just that the SD card is called /dev/mmcblk2. I would say that this has 
always been an issue in Linux.

> Shawn
> 
> > Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
> > ---
> > 
> >  arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> > b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi index
> > 22f8e2783cdf..12573e1f917c 100644
> > --- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> > +++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
> > @@ -14,6 +14,11 @@ chosen {
> > 
> >  		stdout-path = &uart2;
> >  	
> >  	};
> > 
> > +	aliases {
> > +		mmc0 = &usdhc3;
> > +		mmc1 = &usdhc4;
> > +	};
> > +
> > 
> >  	memory@10000000 {
> >  	
> >  		device_type = "memory";
> >  		reg = <0x10000000 0x40000000>;
  
Shawn Guo Nov. 14, 2022, 8:25 a.m. UTC | #3
On Fri, Oct 28, 2022 at 10:18:11AM -0400, Detlev Casanova wrote:
> If not specified, the mmc0 and mmc1 devices will be the devices
> mmc@2190000 and mmc@2194000, which are in disabled state on the iMX.6
> Sabrelite devices.
> 
> The actual SD card reader devices are the ones at mmc@2198000 and
> mmc@219c000.
> 
> Set aliases to use the correct mmc devices order.
> 
> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>

Applied, thanks!
  
Ahmad Fatoum Nov. 28, 2022, 8:42 a.m. UTC | #4
Hello Detlev,
Hello Shawn,

On 11.11.22 20:35, Detlev Casanova wrote:
> On Thursday, November 10, 2022 9:52:32 P.M. EST Shawn Guo wrote:
>> On Fri, Oct 28, 2022 at 10:18:11AM -0400, Detlev Casanova wrote:
>>> If not specified, the mmc0 and mmc1 devices will be the devices
>>> mmc@2190000 and mmc@2194000, which are in disabled state on the iMX.6
>>> Sabrelite devices.
>>>
>>> The actual SD card reader devices are the ones at mmc@2198000 and
>>> mmc@219c000.
>>>
>>> Set aliases to use the correct mmc devices order.
>>
>> Is this something never worked or a regression?  For the latter, we may
>> need a Fixes tag?
> 
> These were apparently never set in the kernel device-tree and added manually 
> in u-boot when dts are synced.
> 
> Because most distributions use UUIDs in fstab, it is not a big problem in 
> Linux, just that the SD card is called /dev/mmcblk2. I would say that this has 
> always been an issue in Linux.

We already have aliases in imx6qdl.dtsi. Existing Installations that hardcode
root=mmcblk2 _will_ be broken by this change. Installations that are fixed
by this change have never worked properly, because prior to commit fa2d0aa96941
("mmc: core: Allow setting slot index via device tree alias"), it depended
on probe order and/or whether a card was present.

Whether SD/eMMC comes first or if they start at 0 or 2 is just cosmetic.
The alias order corresponds with the order in the data sheet and that's a
good default and I see no reason to change this here and risk breakage.

I thus don't think this patch should go mainline.

Thanks,
Ahmad

> 
>> Shawn
>>
>>> Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>
>>> ---
>>>
>>>  arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
>>> b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi index
>>> 22f8e2783cdf..12573e1f917c 100644
>>> --- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
>>> +++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
>>> @@ -14,6 +14,11 @@ chosen {
>>>
>>>  		stdout-path = &uart2;
>>>  	
>>>  	};
>>>
>>> +	aliases {
>>> +		mmc0 = &usdhc3;
>>> +		mmc1 = &usdhc4;
>>> +	};
>>> +
>>>
>>>  	memory@10000000 {
>>>  	
>>>  		device_type = "memory";
>>>  		reg = <0x10000000 0x40000000>;
> 
> 
> 
> 
> 
>
  

Patch

diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
index 22f8e2783cdf..12573e1f917c 100644
--- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
@@ -14,6 +14,11 @@  chosen {
 		stdout-path = &uart2;
 	};
 
+	aliases {
+		mmc0 = &usdhc3;
+		mmc1 = &usdhc4;
+	};
+
 	memory@10000000 {
 		device_type = "memory";
 		reg = <0x10000000 0x40000000>;