Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
Hi Marek, > -Original Message- > From: Marek Vasut [mailto:marek.va...@gmail.com] > Sent: 2018年8月9日 15:32 > To: Peng Fan ; Faiz Abbas ; > jh80.ch...@samsung.com > Cc: u-boot@lists.denx.de; Kishon Vijay Abraham I > Subject: Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support > > On 07/24/2018 10:59 AM, Peng Fan wrote: > [...] > >>>> Please add SPL_MMC_HS400_SUPPORT also. > >>> > >>> What issue do you see? I did not test SPL MMC with HS400 support. > >>> You mean only add a Kconfig entry SPL_MMC_HS400_SUPPORT? > >> > >> Yes only a Kconfig. It helps people who want to include/exclude it > >> from SPL. You are implicitly checking for the config in > >> CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) below. > >> > >> I was just using your patch for some out of tree development and > >> figured it would be useful to have the CONFIG. > > > > Ok. I'll add it and post out V4 patchset. > > Any news on that V4 , are you planning to post it ? Just posted out V4. Please help review. Thanks, Peng. > > -- > Best regards, > Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
On 07/24/2018 10:59 AM, Peng Fan wrote: [...] Please add SPL_MMC_HS400_SUPPORT also. >>> >>> What issue do you see? I did not test SPL MMC with HS400 support. You >>> mean only add a Kconfig entry SPL_MMC_HS400_SUPPORT? >> >> Yes only a Kconfig. It helps people who want to include/exclude it from SPL. >> You >> are implicitly checking for the config in >> CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) below. >> >> I was just using your patch for some out of tree development and figured it >> would be useful to have the CONFIG. > > Ok. I'll add it and post out V4 patchset. Any news on that V4 , are you planning to post it ? -- Best regards, Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
> > On Tuesday 24 July 2018 02:14 PM, Peng Fan wrote: > > Hi Faiz, > > > > It's 2 months since this patchset out (: > > Has it already been accepted? No. I did not receive response from Jaehoon. > > > drivers/mmc/Kconfig > >> > >> On Saturday 19 May 2018 06:24 PM, Peng Fan wrote: > >>> Add HS400 support. > >>> Selecting HS400 needs first select HS199 according to spec, so use a > >>> dedicated function for HS400. > >>> Add HS400 related macros. > >>> Remove the restriction of only using the low 6 bits of > >>> EXT_CSD_CARD_TYPE, using all the 8 bits. > >>> > >>> Signed-off-by: Peng Fan > >>> Cc: Jaehoon Chung > >>> Cc: Jean-Jacques Hiblot > >>> Cc: Stefano Babic > >>> Cc: Simon Glass > >>> Cc: Kishon Vijay Abraham I > >>> Cc: Bin Meng > >>> --- > >>> > >>> V3: > >>> Simplify code > >>> add error msg > >>> > >>> V2: > >>> remove 4bits support from HS400, as HS400 does not support 4bits per > spec. > >>> > >>> drivers/mmc/Kconfig | 7 +++ > >>> drivers/mmc/mmc.c | 137 > >> +--- > >>> include/mmc.h | 11 + > >>> 3 files changed, 128 insertions(+), 27 deletions(-) > >>> > >>> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index > >>> 3f15f85efd..a535a87a8e 100644 > >>> --- a/drivers/mmc/Kconfig > >>> +++ b/drivers/mmc/Kconfig > >>> @@ -104,6 +104,13 @@ config SPL_MMC_UHS_SUPPORT > >>> cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus > >>> frequency can go up to 208MHz (SDR104) > >>> > >>> +config MMC_HS400_SUPPORT > >>> + bool "enable HS400 support" > >>> + select MMC_HS200_SUPPORT > >>> + help > >>> + The HS400 mode is support by some eMMC. The bus frequency is up > to > >>> + 200MHz. This mode requires tuning the IO. > >>> + > >> > >> Please add SPL_MMC_HS400_SUPPORT also. > > > > What issue do you see? I did not test SPL MMC with HS400 support. You > > mean only add a Kconfig entry SPL_MMC_HS400_SUPPORT? > > Yes only a Kconfig. It helps people who want to include/exclude it from SPL. > You > are implicitly checking for the config in > CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) below. > > I was just using your patch for some out of tree development and figured it > would be useful to have the CONFIG. Ok. I'll add it and post out V4 patchset. Thanks, Peng > > Thanks, > Faiz ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
Hi Peng, On Tuesday 24 July 2018 02:14 PM, Peng Fan wrote: > Hi Faiz, > > It's 2 months since this patchset out (: Has it already been accepted? > drivers/mmc/Kconfig >> >> On Saturday 19 May 2018 06:24 PM, Peng Fan wrote: >>> Add HS400 support. >>> Selecting HS400 needs first select HS199 according to spec, so use a >>> dedicated function for HS400. >>> Add HS400 related macros. >>> Remove the restriction of only using the low 6 bits of >>> EXT_CSD_CARD_TYPE, using all the 8 bits. >>> >>> Signed-off-by: Peng Fan >>> Cc: Jaehoon Chung >>> Cc: Jean-Jacques Hiblot >>> Cc: Stefano Babic >>> Cc: Simon Glass >>> Cc: Kishon Vijay Abraham I >>> Cc: Bin Meng >>> --- >>> >>> V3: >>> Simplify code >>> add error msg >>> >>> V2: >>> remove 4bits support from HS400, as HS400 does not support 4bits per spec. >>> >>> drivers/mmc/Kconfig | 7 +++ >>> drivers/mmc/mmc.c | 137 >> +--- >>> include/mmc.h | 11 + >>> 3 files changed, 128 insertions(+), 27 deletions(-) >>> >>> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index >>> 3f15f85efd..a535a87a8e 100644 >>> --- a/drivers/mmc/Kconfig >>> +++ b/drivers/mmc/Kconfig >>> @@ -104,6 +104,13 @@ config SPL_MMC_UHS_SUPPORT >>> cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus >>> frequency can go up to 208MHz (SDR104) >>> >>> +config MMC_HS400_SUPPORT >>> + bool "enable HS400 support" >>> + select MMC_HS200_SUPPORT >>> + help >>> + The HS400 mode is support by some eMMC. The bus frequency is up to >>> + 200MHz. This mode requires tuning the IO. >>> + >> >> Please add SPL_MMC_HS400_SUPPORT also. > > What issue do you see? I did not test SPL MMC with HS400 support. You mean > only add a Kconfig > entry SPL_MMC_HS400_SUPPORT? Yes only a Kconfig. It helps people who want to include/exclude it from SPL. You are implicitly checking for the config in CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) below. I was just using your patch for some out of tree development and figured it would be useful to have the CONFIG. Thanks, Faiz ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
Hi Faiz, It's 2 months since this patchset out (: > > On Saturday 19 May 2018 06:24 PM, Peng Fan wrote: > > Add HS400 support. > > Selecting HS400 needs first select HS199 according to spec, so use a > > dedicated function for HS400. > > Add HS400 related macros. > > Remove the restriction of only using the low 6 bits of > > EXT_CSD_CARD_TYPE, using all the 8 bits. > > > > Signed-off-by: Peng Fan > > Cc: Jaehoon Chung > > Cc: Jean-Jacques Hiblot > > Cc: Stefano Babic > > Cc: Simon Glass > > Cc: Kishon Vijay Abraham I > > Cc: Bin Meng > > --- > > > > V3: > > Simplify code > > add error msg > > > > V2: > > remove 4bits support from HS400, as HS400 does not support 4bits per spec. > > > > drivers/mmc/Kconfig | 7 +++ > > drivers/mmc/mmc.c | 137 > +--- > > include/mmc.h | 11 + > > 3 files changed, 128 insertions(+), 27 deletions(-) > > > > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index > > 3f15f85efd..a535a87a8e 100644 > > --- a/drivers/mmc/Kconfig > > +++ b/drivers/mmc/Kconfig > > @@ -104,6 +104,13 @@ config SPL_MMC_UHS_SUPPORT > > cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus > > frequency can go up to 208MHz (SDR104) > > > > +config MMC_HS400_SUPPORT > > + bool "enable HS400 support" > > + select MMC_HS200_SUPPORT > > + help > > + The HS400 mode is support by some eMMC. The bus frequency is up to > > + 200MHz. This mode requires tuning the IO. > > + > > Please add SPL_MMC_HS400_SUPPORT also. What issue do you see? I did not test SPL MMC with HS400 support. You mean only add a Kconfig entry SPL_MMC_HS400_SUPPORT? Regards, Peng. > > Thanks, > Faiz ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
Hi, On Saturday 19 May 2018 06:24 PM, Peng Fan wrote: > Add HS400 support. > Selecting HS400 needs first select HS199 according to spec, so use > a dedicated function for HS400. > Add HS400 related macros. > Remove the restriction of only using the low 6 bits of > EXT_CSD_CARD_TYPE, using all the 8 bits. > > Signed-off-by: Peng Fan > Cc: Jaehoon Chung > Cc: Jean-Jacques Hiblot > Cc: Stefano Babic > Cc: Simon Glass > Cc: Kishon Vijay Abraham I > Cc: Bin Meng > --- > > V3: > Simplify code > add error msg > > V2: > remove 4bits support from HS400, as HS400 does not support 4bits per spec. > > drivers/mmc/Kconfig | 7 +++ > drivers/mmc/mmc.c | 137 > +--- > include/mmc.h | 11 + > 3 files changed, 128 insertions(+), 27 deletions(-) > > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig > index 3f15f85efd..a535a87a8e 100644 > --- a/drivers/mmc/Kconfig > +++ b/drivers/mmc/Kconfig > @@ -104,6 +104,13 @@ config SPL_MMC_UHS_SUPPORT > cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus > frequency can go up to 208MHz (SDR104) > > +config MMC_HS400_SUPPORT > + bool "enable HS400 support" > + select MMC_HS200_SUPPORT > + help > + The HS400 mode is support by some eMMC. The bus frequency is up to > + 200MHz. This mode requires tuning the IO. > + Please add SPL_MMC_HS400_SUPPORT also. Thanks, Faiz ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
On 06/13/2018 06:38 AM, Peng Fan wrote: > Hi Marek, > >> -Original Message- >> From: Marek Vasut [mailto:marek.va...@gmail.com] >> Sent: 2018年6月13日 12:35 >> To: Peng Fan ; jh80.ch...@samsung.com >> Cc: Kishon Vijay Abraham I ; u-boot@lists.denx.de >> Subject: Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support >> >> On 05/19/2018 02:54 PM, Peng Fan wrote: >>> Add HS400 support. >>> Selecting HS400 needs first select HS199 according to spec, so use a >>> dedicated function for HS400. >>> Add HS400 related macros. >>> Remove the restriction of only using the low 6 bits of >>> EXT_CSD_CARD_TYPE, using all the 8 bits. >>> >>> Signed-off-by: Peng Fan >>> Cc: Jaehoon Chung >>> Cc: Jean-Jacques Hiblot >>> Cc: Stefano Babic >>> Cc: Simon Glass >>> Cc: Kishon Vijay Abraham I >>> Cc: Bin Meng >> >> Which controller do you use to test the HS400 ? > > It is i.MX8QXP/QM. The QXP support is in patch reviewing process. I see. I'll try this on the Renesas Gen3 SDHI controller. -- Best regards, Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
Hi Marek, > -Original Message- > From: Marek Vasut [mailto:marek.va...@gmail.com] > Sent: 2018年6月13日 12:35 > To: Peng Fan ; jh80.ch...@samsung.com > Cc: Kishon Vijay Abraham I ; u-boot@lists.denx.de > Subject: Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support > > On 05/19/2018 02:54 PM, Peng Fan wrote: > > Add HS400 support. > > Selecting HS400 needs first select HS199 according to spec, so use a > > dedicated function for HS400. > > Add HS400 related macros. > > Remove the restriction of only using the low 6 bits of > > EXT_CSD_CARD_TYPE, using all the 8 bits. > > > > Signed-off-by: Peng Fan > > Cc: Jaehoon Chung > > Cc: Jean-Jacques Hiblot > > Cc: Stefano Babic > > Cc: Simon Glass > > Cc: Kishon Vijay Abraham I > > Cc: Bin Meng > > Which controller do you use to test the HS400 ? It is i.MX8QXP/QM. The QXP support is in patch reviewing process. -Peng. > > -- > Best regards, > Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
On 05/19/2018 02:54 PM, Peng Fan wrote: > Add HS400 support. > Selecting HS400 needs first select HS199 according to spec, so use > a dedicated function for HS400. > Add HS400 related macros. > Remove the restriction of only using the low 6 bits of > EXT_CSD_CARD_TYPE, using all the 8 bits. > > Signed-off-by: Peng Fan > Cc: Jaehoon Chung > Cc: Jean-Jacques Hiblot > Cc: Stefano Babic > Cc: Simon Glass > Cc: Kishon Vijay Abraham I > Cc: Bin Meng Which controller do you use to test the HS400 ? -- Best regards, Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
On 05/24/2018 02:23 PM, Peng Fan wrote: > Hi Fabio, > >> -Original Message- >> From: Fabio Estevam [mailto:feste...@gmail.com] >> Sent: 2018年5月19日 22:39 >> To: Peng Fan >> Cc: Jaehoon Chung ; Kishon Vijay Abraham I >> ; U-Boot-Denx >> Subject: Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support >> >> On Sat, May 19, 2018 at 9:54 AM, Peng Fan wrote: >>> Add HS400 support. >>> Selecting HS400 needs first select HS199 according to spec, so use >> >> I think you meant HS200 instead? > Yes HS200, thanks. > > Jaehoon, would you mind help fix the typo if no more comments? Bump ? This patch would be useful upstream, IMO it looks OK too. Jaehoon, what is going on ? -- Best regards, Marek Vasut ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
Hi Fabio, > -Original Message- > From: Fabio Estevam [mailto:feste...@gmail.com] > Sent: 2018年5月19日 22:39 > To: Peng Fan <peng@nxp.com> > Cc: Jaehoon Chung <jh80.ch...@samsung.com>; Kishon Vijay Abraham I > <kis...@ti.com>; U-Boot-Denx <u-boot@lists.denx.de> > Subject: Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support > > On Sat, May 19, 2018 at 9:54 AM, Peng Fan <peng@nxp.com> wrote: > > Add HS400 support. > > Selecting HS400 needs first select HS199 according to spec, so use > > I think you meant HS200 instead? Yes HS200, thanks. Jaehoon, would you mind help fix the typo if no more comments? Thanks, Peng. ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH V3 1/2] mmc: add HS400 support
On Sat, May 19, 2018 at 9:54 AM, Peng Fanwrote: > Add HS400 support. > Selecting HS400 needs first select HS199 according to spec, so use I think you meant HS200 instead? ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] [PATCH V3 1/2] mmc: add HS400 support
Add HS400 support. Selecting HS400 needs first select HS199 according to spec, so use a dedicated function for HS400. Add HS400 related macros. Remove the restriction of only using the low 6 bits of EXT_CSD_CARD_TYPE, using all the 8 bits. Signed-off-by: Peng FanCc: Jaehoon Chung Cc: Jean-Jacques Hiblot Cc: Stefano Babic Cc: Simon Glass Cc: Kishon Vijay Abraham I Cc: Bin Meng --- V3: Simplify code add error msg V2: remove 4bits support from HS400, as HS400 does not support 4bits per spec. drivers/mmc/Kconfig | 7 +++ drivers/mmc/mmc.c | 137 +--- include/mmc.h | 11 + 3 files changed, 128 insertions(+), 27 deletions(-) diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index 3f15f85efd..a535a87a8e 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -104,6 +104,13 @@ config SPL_MMC_UHS_SUPPORT cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus frequency can go up to 208MHz (SDR104) +config MMC_HS400_SUPPORT + bool "enable HS400 support" + select MMC_HS200_SUPPORT + help + The HS400 mode is support by some eMMC. The bus frequency is up to + 200MHz. This mode requires tuning the IO. + config MMC_HS200_SUPPORT bool "enable HS200 support" help diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index f7827f527a..3bb6a68513 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -147,6 +147,7 @@ const char *mmc_mode_name(enum bus_mode mode) [MMC_HS_52] = "MMC High Speed (52MHz)", [MMC_DDR_52] = "MMC DDR52 (52MHz)", [MMC_HS_200] = "HS200 (200MHz)", + [MMC_HS_400] = "HS400 (200MHz)", }; if (mode >= MMC_MODES_END) @@ -171,6 +172,7 @@ static uint mmc_mode2freq(struct mmc *mmc, enum bus_mode mode) [UHS_DDR50] = 5000, [UHS_SDR104] = 20800, [MMC_HS_200] = 2, + [MMC_HS_400] = 2, }; if (mode == MMC_LEGACY) @@ -769,6 +771,11 @@ static int mmc_set_card_speed(struct mmc *mmc, enum bus_mode mode) case MMC_HS_200: speed_bits = EXT_CSD_TIMING_HS200; break; +#endif +#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) + case MMC_HS_400: + speed_bits = EXT_CSD_TIMING_HS400; + break; #endif case MMC_LEGACY: speed_bits = EXT_CSD_TIMING_LEGACY; @@ -816,7 +823,7 @@ static int mmc_get_capabilities(struct mmc *mmc) mmc->card_caps |= MMC_MODE_4BIT | MMC_MODE_8BIT; - cardtype = ext_csd[EXT_CSD_CARD_TYPE] & 0x3f; + cardtype = ext_csd[EXT_CSD_CARD_TYPE]; mmc->cardtype = cardtype; #if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) @@ -824,6 +831,12 @@ static int mmc_get_capabilities(struct mmc *mmc) EXT_CSD_CARD_TYPE_HS200_1_8V)) { mmc->card_caps |= MMC_MODE_HS200; } +#endif +#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) + if (cardtype & (EXT_CSD_CARD_TYPE_HS400_1_2V | + EXT_CSD_CARD_TYPE_HS400_1_8V)) { + mmc->card_caps |= MMC_MODE_HS400; + } #endif if (cardtype & EXT_CSD_CARD_TYPE_52) { if (cardtype & EXT_CSD_CARD_TYPE_DDR_52) @@ -1734,10 +1747,13 @@ static int mmc_set_lowest_voltage(struct mmc *mmc, enum bus_mode mode, u32 card_mask = 0; switch (mode) { + case MMC_HS_400: case MMC_HS_200: - if (mmc->cardtype & EXT_CSD_CARD_TYPE_HS200_1_8V) + if (mmc->cardtype & (EXT_CSD_CARD_TYPE_HS200_1_8V | + EXT_CSD_CARD_TYPE_HS400_1_8V)) card_mask |= MMC_SIGNAL_VOLTAGE_180; - if (mmc->cardtype & EXT_CSD_CARD_TYPE_HS200_1_2V) + if (mmc->cardtype & (EXT_CSD_CARD_TYPE_HS200_1_2V | + EXT_CSD_CARD_TYPE_HS400_1_2V)) card_mask |= MMC_SIGNAL_VOLTAGE_120; break; case MMC_DDR_52: @@ -1773,6 +1789,13 @@ static inline int mmc_set_lowest_voltage(struct mmc *mmc, enum bus_mode mode, #endif static const struct mode_width_tuning mmc_modes_by_pref[] = { +#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) + { + .mode = MMC_HS_400, + .widths = MMC_MODE_8BIT, + .tuning = MMC_CMD_SEND_TUNING_BLOCK_HS200 + }, +#endif #if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) { .mode = MMC_HS_200, @@ -1816,6 +1839,54 @@ static const struct ext_csd_bus_width { {MMC_MODE_1BIT, false, EXT_CSD_BUS_WIDTH_1}, }; +#if CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) +static int mmc_select_hs400(struct mmc *mmc) +{ + int err; + + /* Set timing to HS200 for tuning */ + err =