diff mbox series

imx8mm_beacon: Enable HS400 on MMC controller

Message ID 20201205005943.231398-1-aford173@gmail.com
State Accepted
Commit 1a5d9c84b47239ea527f5d8eaa19f35b7fdacb8f
Delegated to: Stefano Babic
Headers show
Series imx8mm_beacon: Enable HS400 on MMC controller | expand

Commit Message

Adam Ford Dec. 5, 2020, 12:59 a.m. UTC
The i.MX8MM is capable of HS400.  Enable it in both
U-Boot and SPL for faster throughput.

Signed-off-by: Adam Ford <aford173@gmail.com>

Comments

ZHIZHIKIN Andrey Dec. 5, 2020, 2:54 p.m. UTC | #1
Hello Adam,

> -----Original Message-----
> From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Adam Ford
> Sent: Saturday, December 5, 2020 2:00 AM
> To: u-boot@lists.denx.de
> Cc: aford@beaconembedded.com; Adam Ford <aford173@gmail.com>
> Subject: [PATCH] imx8mm_beacon: Enable HS400 on MMC controller
> 
> 
> The i.MX8MM is capable of HS400.  Enable it in both U-Boot and SPL for faster
> throughput.

I'm not quite sure if those high-speed modes would be required to be enabled for
SPL...

Even though the support for those modes is provided in SPL build, there might be
a little benefit of having it enabled as the only thing SPL would need to fetch from 
storage medias would be U-Boot itself, and the difference in access time between
high speed modes enabled or disabled for this task is quite negligible. The downside
there would rather be an increase in SPL size to accommodate enabled code paths.

I was contemplating myself to have those included, but decided to op-out from it
as I could not justify the benefit of it.

Do you see any particular use-case where it would be beneficial to enable those modes
in SPL? If so - can you please share them, as if it would turn out to be beneficial - I might
also turn them on in EVK configs.

> 
> Signed-off-by: Adam Ford <aford173@gmail.com>
> 
> diff --git a/configs/imx8mm_beacon_defconfig
> b/configs/imx8mm_beacon_defconfig index c5d331f617..49d5453078 100644
> --- a/configs/imx8mm_beacon_defconfig
> +++ b/configs/imx8mm_beacon_defconfig
> @@ -70,6 +70,13 @@ CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_DM_MMC=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
> +CONFIG_MMC_IO_VOLTAGE=y
> +CONFIG_SPL_MMC_IO_VOLTAGE=y
> +CONFIG_MMC_UHS_SUPPORT=y
> +CONFIG_SPL_MMC_UHS_SUPPORT=y
> +CONFIG_MMC_HS400_ES_SUPPORT=y
> +CONFIG_MMC_HS400_SUPPORT=y
> +CONFIG_SPL_MMC_HS400_SUPPORT=y
>  CONFIG_FSL_USDHC=y
>  CONFIG_PHYLIB=y
>  CONFIG_PHY_ATHEROS=y
> --
> 2.25.1

-- andrey
Adam Ford Dec. 5, 2020, 3 p.m. UTC | #2
On Sat, Dec 5, 2020 at 8:54 AM ZHIZHIKIN Andrey
<andrey.zhizhikin@leica-geosystems.com> wrote:
>
> Hello Adam,
>
> > -----Original Message-----
> > From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Adam Ford
> > Sent: Saturday, December 5, 2020 2:00 AM
> > To: u-boot@lists.denx.de
> > Cc: aford@beaconembedded.com; Adam Ford <aford173@gmail.com>
> > Subject: [PATCH] imx8mm_beacon: Enable HS400 on MMC controller
> >
> >
> > The i.MX8MM is capable of HS400.  Enable it in both U-Boot and SPL for faster
> > throughput.
>
> I'm not quite sure if those high-speed modes would be required to be enabled for
> SPL...
There are separate SPL flags, so we could leave them off.

>
> Even though the support for those modes is provided in SPL build, there might be
> a little benefit of having it enabled as the only thing SPL would need to fetch from
> storage medias would be U-Boot itself, and the difference in access time between
> high speed modes enabled or disabled for this task is quite negligible. The downside
> there would rather be an increase in SPL size to accommodate enabled code paths.
>
> I was contemplating myself to have those included, but decided to op-out from it
> as I could not justify the benefit of it.
>
> Do you see any particular use-case where it would be beneficial to enable those modes
> in SPL? If so - can you please share them, as if it would turn out to be beneficial - I might
> also turn them on in EVK configs.

I turned them on because I could and it fit into SPL.  In theory the
impy could be deactivated for people who don't have the room.  I
didn't do any time measurements so I don't know of the higher speed
made it load u-boot any faster since it takes a little more time to do
the extra initialization, I can see the argument to leave them off.

Maybe it's best to default the configs to leave them off in SPL, and
let people decide on what's best for their boards.  For the Beacon
board, I'll probably leave it on, but if SPL size constraints become
an issue, I might turn them off later.

adam
>
> >
> > Signed-off-by: Adam Ford <aford173@gmail.com>
> >
> > diff --git a/configs/imx8mm_beacon_defconfig
> > b/configs/imx8mm_beacon_defconfig index c5d331f617..49d5453078 100644
> > --- a/configs/imx8mm_beacon_defconfig
> > +++ b/configs/imx8mm_beacon_defconfig
> > @@ -70,6 +70,13 @@ CONFIG_DM_I2C=y
> >  CONFIG_SYS_I2C_MXC=y
> >  CONFIG_DM_MMC=y
> >  CONFIG_SUPPORT_EMMC_BOOT=y
> > +CONFIG_MMC_IO_VOLTAGE=y
> > +CONFIG_SPL_MMC_IO_VOLTAGE=y
> > +CONFIG_MMC_UHS_SUPPORT=y
> > +CONFIG_SPL_MMC_UHS_SUPPORT=y
> > +CONFIG_MMC_HS400_ES_SUPPORT=y
> > +CONFIG_MMC_HS400_SUPPORT=y
> > +CONFIG_SPL_MMC_HS400_SUPPORT=y
> >  CONFIG_FSL_USDHC=y
> >  CONFIG_PHYLIB=y
> >  CONFIG_PHY_ATHEROS=y
> > --
> > 2.25.1
>
> -- andrey
ZHIZHIKIN Andrey Dec. 5, 2020, 3:11 p.m. UTC | #3
> -----Original Message-----
> From: Adam Ford <aford173@gmail.com>
> Sent: Saturday, December 5, 2020 4:01 PM
> To: ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>
> Cc: u-boot@lists.denx.de; aford@beaconembedded.com
> Subject: Re: [PATCH] imx8mm_beacon: Enable HS400 on MMC controller
> 
> On Sat, Dec 5, 2020 at 8:54 AM ZHIZHIKIN Andrey <andrey.zhizhikin@leica-
> geosystems.com> wrote:
> >
> > Hello Adam,
> >
> > > -----Original Message-----
> > > From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Adam Ford
> > > Sent: Saturday, December 5, 2020 2:00 AM
> > > To: u-boot@lists.denx.de
> > > Cc: aford@beaconembedded.com; Adam Ford <aford173@gmail.com>
> > > Subject: [PATCH] imx8mm_beacon: Enable HS400 on MMC controller
> > >
> > >
> > > The i.MX8MM is capable of HS400.  Enable it in both U-Boot and SPL
> > > for faster throughput.
> >
> > I'm not quite sure if those high-speed modes would be required to be
> > enabled for SPL...
> There are separate SPL flags, so we could leave them off.
> 
> >
> > Even though the support for those modes is provided in SPL build,
> > there might be a little benefit of having it enabled as the only thing
> > SPL would need to fetch from storage medias would be U-Boot itself,
> > and the difference in access time between high speed modes enabled or
> > disabled for this task is quite negligible. The downside there would rather be an
> increase in SPL size to accommodate enabled code paths.
> >
> > I was contemplating myself to have those included, but decided to
> > op-out from it as I could not justify the benefit of it.
> >
> > Do you see any particular use-case where it would be beneficial to
> > enable those modes in SPL? If so - can you please share them, as if it
> > would turn out to be beneficial - I might also turn them on in EVK configs.
> 
> I turned them on because I could and it fit into SPL.  In theory the impy could be
> deactivated for people who don't have the room.  I didn't do any time
> measurements so I don't know of the higher speed made it load u-boot any
> faster since it takes a little more time to do the extra initialization, I can see the
> argument to leave them off.

OK, got it! Since you've introduced it for a specific derivative and you know that
from the size perspective it fits - then I believe it is OK to have them enabled. 

> 
> Maybe it's best to default the configs to leave them off in SPL, and let people
> decide on what's best for their boards.  For the Beacon board, I'll probably leave it
> on, but if SPL size constraints become an issue, I might turn them off later.

For EVK configs I would leave SPL configs OFF.

> 
> adam
> >
> > >
> > > Signed-off-by: Adam Ford <aford173@gmail.com>
> > >
> > > diff --git a/configs/imx8mm_beacon_defconfig
> > > b/configs/imx8mm_beacon_defconfig index c5d331f617..49d5453078
> > > 100644
> > > --- a/configs/imx8mm_beacon_defconfig
> > > +++ b/configs/imx8mm_beacon_defconfig
> > > @@ -70,6 +70,13 @@ CONFIG_DM_I2C=y
> > >  CONFIG_SYS_I2C_MXC=y
> > >  CONFIG_DM_MMC=y
> > >  CONFIG_SUPPORT_EMMC_BOOT=y
> > > +CONFIG_MMC_IO_VOLTAGE=y
> > > +CONFIG_SPL_MMC_IO_VOLTAGE=y
> > > +CONFIG_MMC_UHS_SUPPORT=y
> > > +CONFIG_SPL_MMC_UHS_SUPPORT=y
> > > +CONFIG_MMC_HS400_ES_SUPPORT=y
> > > +CONFIG_MMC_HS400_SUPPORT=y
> > > +CONFIG_SPL_MMC_HS400_SUPPORT=y
> > >  CONFIG_FSL_USDHC=y
> > >  CONFIG_PHYLIB=y
> > >  CONFIG_PHY_ATHEROS=y
> > > --
> > > 2.25.1
> >
> > -- andrey

-- andrey
Stefano Babic Dec. 26, 2020, 3:54 p.m. UTC | #4
> The i.MX8MM is capable of HS400.  Enable it in both
> U-Boot and SPL for faster throughput.
> Signed-off-by: Adam Ford <aford173@gmail.com>
> diff --git a/configs/imx8mm_beacon_defconfig b/configs/imx8mm_beacon_defconfig
> index c5d331f617..49d5453078 100644
> --- a/configs/imx8mm_beacon_defconfig
> +++ b/configs/imx8mm_beacon_defconfig
> @@ -70,6 +70,13 @@ CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_MXC=y
>  CONFIG_DM_MMC=y
>  CONFIG_SUPPORT_EMMC_BOOT=y
> +CONFIG_MMC_IO_VOLTAGE=y
> +CONFIG_SPL_MMC_IO_VOLTAGE=y
> +CONFIG_MMC_UHS_SUPPORT=y
> +CONFIG_SPL_MMC_UHS_SUPPORT=y
> +CONFIG_MMC_HS400_ES_SUPPORT=y
> +CONFIG_MMC_HS400_SUPPORT=y
> +CONFIG_SPL_MMC_HS400_SUPPORT=y
>  CONFIG_FSL_USDHC=y
>  CONFIG_PHYLIB=y
>  CONFIG_PHY_ATHEROS=y
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/configs/imx8mm_beacon_defconfig b/configs/imx8mm_beacon_defconfig
index c5d331f617..49d5453078 100644
--- a/configs/imx8mm_beacon_defconfig
+++ b/configs/imx8mm_beacon_defconfig
@@ -70,6 +70,13 @@  CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_MXC=y
 CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_BOOT=y
+CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_SPL_MMC_IO_VOLTAGE=y
+CONFIG_MMC_UHS_SUPPORT=y
+CONFIG_SPL_MMC_UHS_SUPPORT=y
+CONFIG_MMC_HS400_ES_SUPPORT=y
+CONFIG_MMC_HS400_SUPPORT=y
+CONFIG_SPL_MMC_HS400_SUPPORT=y
 CONFIG_FSL_USDHC=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_ATHEROS=y