diff mbox series

[U-Boot] rpi: Set the default mmc max device to 2

Message ID 20180704070806.5759-1-manu@freebsd.org
State Changes Requested, archived
Delegated to: Alexander Graf
Headers show
Series [U-Boot] rpi: Set the default mmc max device to 2 | expand

Commit Message

Emmanuel Vadot July 4, 2018, 7:08 a.m. UTC
When running with special configuration (OF_BOARD and mmc overlay)
RPI have the SD card as id 1.
This make device enumeration fails when using the API.

Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
---
 include/configs/rpi.h | 2 ++
 1 file changed, 2 insertions(+)

Comments

Alexander Graf July 4, 2018, 7:25 a.m. UTC | #1
On 07/04/2018 09:08 AM, Emmanuel Vadot wrote:
> When running with special configuration (OF_BOARD and mmc overlay)
> RPI have the SD card as id 1.
> This make device enumeration fails when using the API.
>
> Signed-off-by: Emmanuel Vadot <manu@freebsd.org>

Could you please elaborate a bit? From the commit message I don't fully 
understand which problem you're trying to solve.


Thanks,

Alex

> ---
>   include/configs/rpi.h | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> index a97550b732..26fc9b9d95 100644
> --- a/include/configs/rpi.h
> +++ b/include/configs/rpi.h
> @@ -69,6 +69,8 @@
>   #define CONFIG_MISC_INIT_R
>   #endif
>   
> +#define CONFIG_SYS_MMC_MAX_DEVICE	2
> +
>   /* Console configuration */
>   #define CONFIG_SYS_CBSIZE		1024
>
Emmanuel Vadot July 4, 2018, 7:34 a.m. UTC | #2
On Wed, 4 Jul 2018 09:25:16 +0200
Alexander Graf <agraf@suse.de> wrote:

> On 07/04/2018 09:08 AM, Emmanuel Vadot wrote:
> > When running with special configuration (OF_BOARD and mmc overlay)
> > RPI have the SD card as id 1.
> > This make device enumeration fails when using the API.
> >
> > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> 
> Could you please elaborate a bit? From the commit message I don't fully 
> understand which problem you're trying to solve.
> 
> 
> Thanks,
> 
> Alex

 Sure,

 When using the dtb from the rpi fundation and the mmc overlay (which
switch back the sd card to use the SDHCI controller and not the SDHOST
one) and using OF_BOARD so u-boot uses it/pass it to the OS the device
id for the sd is 1 :
U-Boot> mmc list
mmc@7e300000: 1

 This cause the API (see api/api_storage.c) code to never expose this
device to the consumer as the default value for
CONFIG_SYS_MMC_MAX_DEVICE is 1.

 If it's more clear I'll send a v2 with those words.

 Cheers,

> > ---
> >   include/configs/rpi.h | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> > index a97550b732..26fc9b9d95 100644
> > --- a/include/configs/rpi.h
> > +++ b/include/configs/rpi.h
> > @@ -69,6 +69,8 @@
> >   #define CONFIG_MISC_INIT_R
> >   #endif
> >   
> > +#define CONFIG_SYS_MMC_MAX_DEVICE	2
> > +
> >   /* Console configuration */
> >   #define CONFIG_SYS_CBSIZE		1024
> >
Alexander Graf July 4, 2018, 7:48 a.m. UTC | #3
On 07/04/2018 09:34 AM, Emmanuel Vadot wrote:
> On Wed, 4 Jul 2018 09:25:16 +0200
> Alexander Graf <agraf@suse.de> wrote:
>
>> On 07/04/2018 09:08 AM, Emmanuel Vadot wrote:
>>> When running with special configuration (OF_BOARD and mmc overlay)
>>> RPI have the SD card as id 1.
>>> This make device enumeration fails when using the API.
>>>
>>> Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
>> Could you please elaborate a bit? From the commit message I don't fully
>> understand which problem you're trying to solve.
>>
>>
>> Thanks,
>>
>> Alex
>   Sure,
>
>   When using the dtb from the rpi fundation and the mmc overlay (which
> switch back the sd card to use the SDHCI controller and not the SDHOST
> one) and using OF_BOARD so u-boot uses it/pass it to the OS the device
> id for the sd is 1 :
> U-Boot> mmc list
> mmc@7e300000: 1
>
>   This cause the API (see api/api_storage.c) code to never expose this
> device to the consumer as the default value for
> CONFIG_SYS_MMC_MAX_DEVICE is 1.

Ouch, that whole file assumes that you know the number of devices 
present in your system. That's terrible.

I think the real fix would be to convert api_storage.c to instead use dm 
native routines to loop through all available devices and not explicitly 
depend on any maximum number of possible devices.

Simon, do you potentially have a patch lying around for that in a branch 
already?


Alex
Simon Glass July 9, 2018, 2:39 a.m. UTC | #4
Hi Alex,

On 4 July 2018 at 00:48, Alexander Graf <agraf@suse.de> wrote:
> On 07/04/2018 09:34 AM, Emmanuel Vadot wrote:
>>
>> On Wed, 4 Jul 2018 09:25:16 +0200
>> Alexander Graf <agraf@suse.de> wrote:
>>
>>> On 07/04/2018 09:08 AM, Emmanuel Vadot wrote:
>>>>
>>>> When running with special configuration (OF_BOARD and mmc overlay)
>>>> RPI have the SD card as id 1.
>>>> This make device enumeration fails when using the API.
>>>>
>>>> Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
>>>
>>> Could you please elaborate a bit? From the commit message I don't fully
>>> understand which problem you're trying to solve.
>>>
>>>
>>> Thanks,
>>>
>>> Alex
>>
>>   Sure,
>>
>>   When using the dtb from the rpi fundation and the mmc overlay (which
>> switch back the sd card to use the SDHCI controller and not the SDHOST
>> one) and using OF_BOARD so u-boot uses it/pass it to the OS the device
>> id for the sd is 1 :
>> U-Boot> mmc list
>> mmc@7e300000: 1
>>
>>   This cause the API (see api/api_storage.c) code to never expose this
>> device to the consumer as the default value for
>> CONFIG_SYS_MMC_MAX_DEVICE is 1.
>
>
> Ouch, that whole file assumes that you know the number of devices present in
> your system. That's terrible.
>
> I think the real fix would be to convert api_storage.c to instead use dm
> native routines to loop through all available devices and not explicitly
> depend on any maximum number of possible devices.
>
> Simon, do you potentially have a patch lying around for that in a branch
> already?

No sorry I don't.

The API could use another look for DM.

Regards,
Simon
Alexander Graf Dec. 2, 2018, 9:54 p.m. UTC | #5
On 04.07.18 09:34, Emmanuel Vadot wrote:
> On Wed, 4 Jul 2018 09:25:16 +0200
> Alexander Graf <agraf@suse.de> wrote:
> 
>> On 07/04/2018 09:08 AM, Emmanuel Vadot wrote:
>>> When running with special configuration (OF_BOARD and mmc overlay)
>>> RPI have the SD card as id 1.
>>> This make device enumeration fails when using the API.
>>>
>>> Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
>>
>> Could you please elaborate a bit? From the commit message I don't fully 
>> understand which problem you're trying to solve.
>>
>>
>> Thanks,
>>
>> Alex
> 
>  Sure,
> 
>  When using the dtb from the rpi fundation and the mmc overlay (which
> switch back the sd card to use the SDHCI controller and not the SDHOST
> one) and using OF_BOARD so u-boot uses it/pass it to the OS the device
> id for the sd is 1 :
> U-Boot> mmc list
> mmc@7e300000: 1
> 
>  This cause the API (see api/api_storage.c) code to never expose this
> device to the consumer as the default value for
> CONFIG_SYS_MMC_MAX_DEVICE is 1.
> 
>  If it's more clear I'll send a v2 with those words.

Please send a v2 with reworked wording or - if you have the time -
rework the storage api to no require this change at all with DM :).


Alex
diff mbox series

Patch

diff --git a/include/configs/rpi.h b/include/configs/rpi.h
index a97550b732..26fc9b9d95 100644
--- a/include/configs/rpi.h
+++ b/include/configs/rpi.h
@@ -69,6 +69,8 @@ 
 #define CONFIG_MISC_INIT_R
 #endif
 
+#define CONFIG_SYS_MMC_MAX_DEVICE	2
+
 /* Console configuration */
 #define CONFIG_SYS_CBSIZE		1024