[U-Boot] [v3, 2/5] mmc: split fsl_esdhc driver for i.MX

Y.b. Lu yangbo.lu at nxp.com
Wed May 29 12:22:08 UTC 2019


> -----Original Message-----
> From: Y.b. Lu
> Sent: 2019年5月29日 15:10
> To: Lukasz Majewski <lukma at denx.de>
> Cc: u-boot at lists.denx.de; Stefano Babic <sbabic at denx.de>; Fabio Estevam
> <festevam at gmail.com>; dl-uboot-imx <uboot-imx at nxp.com>; Albert Aribaud
> <albert.u.boot at aribaud.net>; Eddy Petrișor <eddy.petrisor at gmail.com>;
> Akshay Bhat <akshaybhat at timesys.com>; Ken Lin
> <Ken.Lin at advantech.com.tw>; Heiko Schocher <hs at denx.de>; Christian
> Gmeiner <christian.gmeiner at gmail.com>; Stefan Roese <sr at denx.de>; Patrick
> Bruenn <p.bruenn at beckhoff.com>; Troy Kisky
> <troy.kisky at boundarydevices.com>; Uri Mashiach
> <uri.mashiach at compulab.co.il>; Nikita Kiryanov <nikita at compulab.co.il>;
> Otavio Salvador <otavio at ossystems.com.br>; Andreas Geisreiter
> <ageisreiter at dh-electronics.de>; Ludwig Zenz <lzenz at dh-electronics.de>;
> Peng Fan <peng.fan at nxp.com>; Jason Liu <jason.hui.liu at nxp.com>; Ye Li
> <ye.li at nxp.com>; Adrian Alonso <adrian.alonso at nxp.com>; Alison Wang
> <alison.wang at nxp.com>; tharvey at gateworks.com; Ian Ray
> <ian.ray at ge.com>; Marcin Niestroj <m.niestroj at grinn-global.com>; Andrej
> Rosano <andrej at inversepath.com>; Marek Vasut <marex at denx.de>; Adam
> Ford <aford173 at gmail.com>; Olaf Mandel <o.mandel at menlosystems.com>;
> Martyn Welch <martyn.welch at collabora.com>; Ingo Schroeck
> <open-source at samtec.de>; Soeren Moch <smoch at web.de>; Richard Hu
> <richard.hu at technexion.com>; Vanessa Maegima
> <vanessa.maegima at nxp.com>; Max Krummenacher
> <max.krummenacher at toradex.com>; Stefan Agner
> <stefan.agner at toradex.com>; Markus Niebel <Markus.Niebel at tq-group.com>;
> Breno Matheus Lima <breno.lima at nxp.com>; Francesco Montefoschi
> <francesco.montefoschi at udoo.org>; Parthiban Nallathambi
> <parthitce at gmail.com>; Albert ARIBAUD <albert.aribaud at 3adev.fr>; Jagan
> Teki <jagan at amarulasolutions.com>; Raffaele RECALCATI
> <raffaele.recalcati at bticino.it>; Simone CIANNI <simone.cianni at bticino.it>;
> Bhaskar Upadhaya <bhaskar.upadhaya at nxp.com>; Prabhakar Kushwaha
> <prabhakar.kushwaha at nxp.com>; Rajesh Bhagat <rajesh.bhagat at nxp.com>;
> Antti Mäentausta <antti.maentausta at ge.com>; Sébastien Szymanski
> <sebastien.szymanski at armadeus.com>; Lucile Quirion
> <lucile.quirion at savoirfairelinux.com>; Alexey Brodkin
> <abrodkin at synopsys.com>; Trevor Woerner <trevor at toganlabs.com>;
> Anatolij Gustschin <agust at denx.de>; Denis Zalevskiy
> <denis.zalevskiy at ge.com>; Fabien Lahoudere
> <fabien.lahoudere at collabora.com>; Joe Hershberger
> <joe.hershberger at ni.com>; Simon Goldschmidt
> <simon.k.r.goldschmidt at gmail.com>; James Byrne
> <james.byrne at origamienergy.com>; Angelo Dureghello <angelo at sysam.it>
> Subject: RE: [v3, 2/5] mmc: split fsl_esdhc driver for i.MX
> 
> > -----Original Message-----
> > From: Lukasz Majewski <lukma at denx.de>
> > Sent: 2019年5月29日 14:30
> > To: Y.b. Lu <yangbo.lu at nxp.com>
> > Cc: u-boot at lists.denx.de; Stefano Babic <sbabic at denx.de>; Fabio
> > Estevam <festevam at gmail.com>; dl-uboot-imx <uboot-imx at nxp.com>;
> Albert
> > Aribaud <albert.u.boot at aribaud.net>; Eddy Petrișor
> > <eddy.petrisor at gmail.com>; Akshay Bhat <akshaybhat at timesys.com>; Ken
> > Lin <Ken.Lin at advantech.com.tw>; Heiko Schocher <hs at denx.de>; Christian
> > Gmeiner <christian.gmeiner at gmail.com>; Stefan Roese <sr at denx.de>;
> > Patrick Bruenn <p.bruenn at beckhoff.com>; Troy Kisky
> > <troy.kisky at boundarydevices.com>; Uri Mashiach
> > <uri.mashiach at compulab.co.il>; Nikita Kiryanov
> > <nikita at compulab.co.il>; Otavio Salvador <otavio at ossystems.com.br>;
> > Andreas Geisreiter <ageisreiter at dh-electronics.de>; Ludwig Zenz
> > <lzenz at dh-electronics.de>; Eric Bénard <eric at eukrea.com>; Peng Fan
> > <peng.fan at nxp.com>; Jason Liu <jason.hui.liu at nxp.com>; Ye Li
> > <ye.li at nxp.com>; Adrian Alonso <adrian.alonso at nxp.com>; Alison Wang
> > <alison.wang at nxp.com>; tharvey at gateworks.com; Ian Ray
> > <ian.ray at ge.com>; Marcin Niestroj <m.niestroj at grinn-global.com>;
> > Andrej Rosano <andrej at inversepath.com>; Marek Vasut <marex at denx.de>;
> > Adam Ford <aford173 at gmail.com>; Olaf Mandel
> > <o.mandel at menlosystems.com>; Martyn Welch
> > <martyn.welch at collabora.com>; Ingo Schroeck <open-source at samtec.de>;
> > Boris Brezillon <boris.brezillon at free-electrons.com>; Soeren Moch
> > <smoch at web.de>; Richard Hu <richard.hu at technexion.com>; Vanessa
> > Maegima <vanessa.maegima at nxp.com>; Max Krummenacher
> > <max.krummenacher at toradex.com>; Stefan Agner
> > <stefan.agner at toradex.com>; Markus Niebel
> > <Markus.Niebel at tq-group.com>; Breno Matheus Lima
> <breno.lima at nxp.com>;
> > Francesco Montefoschi <francesco.montefoschi at udoo.org>; Parthiban
> > Nallathambi <parthitce at gmail.com>; Albert ARIBAUD
> > <albert.aribaud at 3adev.fr>; Jagan Teki <jagan at amarulasolutions.com>;
> > Raffaele RECALCATI <raffaele.recalcati at bticino.it>; Simone CIANNI
> > <simone.cianni at bticino.it>; Bhaskar Upadhaya
> > <bhaskar.upadhaya at nxp.com>; Vinitha V Pillai <vinitha.pillai at nxp.com>;
> > Prabhakar Kushwaha <prabhakar.kushwaha at nxp.com>; Rajesh Bhagat
> > <rajesh.bhagat at nxp.com>; Antti Mäentausta <antti.maentausta at ge.com>;
> > Sébastien Szymanski <sebastien.szymanski at armadeus.com>; Lucile Quirion
> > <lucile.quirion at savoirfairelinux.com>; Alexey Brodkin
> > <abrodkin at synopsys.com>; Trevor Woerner <trevor at toganlabs.com>;
> > Anatolij Gustschin <agust at denx.de>; Denis Zalevskiy
> > <denis.zalevskiy at ge.com>; Fabien Lahoudere
> > <fabien.lahoudere at collabora.com>; Joe Hershberger
> > <joe.hershberger at ni.com>; Simon Goldschmidt
> > <simon.k.r.goldschmidt at gmail.com>; James Byrne
> > <james.byrne at origamienergy.com>; Angelo Dureghello <angelo at sysam.it>
> > Subject: Re: [v3, 2/5] mmc: split fsl_esdhc driver for i.MX
> >
> > Hi Y.b. Lu,
> >
> > > The fsl_esdhc driver was for Freescale eSDHC on MPC83XX/MPC85XX
> > > initially. The later QoriQ series PowerPC processors (which were
> > > evolutions of MPC83XX/MPC85XX), QorIQ series ARM processors, and
> > > i.MX series processors were using this driver for their eSDHCs too.
> > >
> > > For the two series processors, the eSDHCs are becoming more and more
> > > different. We should have split it into two drivers, like them
> > > (sdhci-of-esdhc.c/sdhci-esdhc-imx.c) in linux kernel.
> > >
> > > This patch is just to create a fsl_esdhc_imx driver which is a copy
> > > of fsl_esdhc driver for i.MX processors. We will convert i.MX
> > > processors to use fsl_esdhc_imx, and clean up the two drivers
> > > separately in the future patches.
> > >
> > > Signed-off-by: Yangbo Lu <yangbo.lu at nxp.com>
> > > ---
> > > Changes for v2:
> > > 	- None.
> > > Changes for v3:
> > > 	- None.
> > > ---
> > >  drivers/mmc/Kconfig                          |  6 ++++++
> > >  drivers/mmc/Makefile                         |  1 +
> > >  drivers/mmc/{fsl_esdhc.c => fsl_esdhc_imx.c} |  5 +++--
> > >  include/{fsl_esdhc.h => fsl_esdhc_imx.h}     | 11 ++++++-----
> > >  4 files changed, 16 insertions(+), 7 deletions(-)  copy
> > > drivers/mmc/{fsl_esdhc.c => fsl_esdhc_imx.c} (99%)  copy
> > > include/{fsl_esdhc.h => fsl_esdhc_imx.h} (97%)
> > >
> > > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index
> > > c23299ea96..4e33fa1b2d 100644
> > > --- a/drivers/mmc/Kconfig
> > > +++ b/drivers/mmc/Kconfig
> > > @@ -671,6 +671,12 @@ config FSL_ESDHC
> > >  	  This selects support for the eSDHC (enhanced secure digital host
> > > controller) found on numerous Freescale/NXP SoCs.
> > >
> > > +config FSL_ESDHC_IMX
> > > +	bool "Freescale/NXP i.MX eSDHC controller support"
> > > +	help
> > > +	  This selects support for the i.MX eSDHC (enhanced secure
> > > digital host
> > > +	  controller) found on numerous Freescale/NXP SoCs.
> > > +
> >
> > You shall use capital letters for "Enhanced Secure Digital Host"
> 
> [Y.b. Lu] Get it. Will fix that.
> 
> >
> > >  endmenu
> > >
> > >  config SYS_FSL_ERRATUM_ESDHC111
> > > diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index
> > > 0076fc393b..3c8c53a9e1 100644
> > > --- a/drivers/mmc/Makefile
> > > +++ b/drivers/mmc/Makefile
> > > @@ -26,6 +26,7 @@ obj-$(CONFIG_MMC_DW_ROCKCHIP)		+=
> > > rockchip_dw_mmc.o obj-$(CONFIG_MMC_DW_SOCFPGA)		+=
> > > socfpga_dw_mmc.o obj-$(CONFIG_MMC_DW_SNPS)		+=
> > > snps_dw_mmc.o obj-$(CONFIG_FSL_ESDHC) += fsl_esdhc.o
> > > +obj-$(CONFIG_FSL_ESDHC_IMX) += fsl_esdhc_imx.o
> > >  obj-$(CONFIG_FTSDC010) += ftsdc010_mci.o
> > >  obj-$(CONFIG_GENERIC_ATMEL_MCI) += gen_atmel_mci.o
> > >  obj-$(CONFIG_MMC_MESON_GX) += meson_gx_mmc.o diff --git
> > > a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc_imx.c similarity
> > > index 99% copy from drivers/mmc/fsl_esdhc.c copy to
> > > drivers/mmc/fsl_esdhc_imx.c index 1b7de74a72..faf133390f 100644
> > > --- a/drivers/mmc/fsl_esdhc.c
> > > +++ b/drivers/mmc/fsl_esdhc_imx.c
> > > @@ -2,6 +2,7 @@
> > >  /*
> > >   * Copyright 2007, 2010-2011 Freescale Semiconductor, Inc
> > >   * Andy Fleming
> > > + * Copyright 2019 NXP
> >
> > This line shall be on top of the comment. Also you shall state your
> > name and e-mail.
> >
> 
> [Y.b. Lu] Ok. Will do that.
> 
> > >   *
> > >   * Based vaguely on the pxa mmc code:
> > >   * (C) Copyright 2003
> > > @@ -18,7 +19,7 @@
> > >  #include <part.h>
> > >  #include <power/regulator.h>
> > >  #include <malloc.h>
> > > -#include <fsl_esdhc.h>
> > > +#include <fsl_esdhc_imx.h>
> > >  #include <fdt_support.h>
> > >  #include <asm/io.h>
> > >  #include <dm.h>
> > > @@ -110,7 +111,7 @@ struct esdhc_soc_data {
> > >   * @non_removable: 0: removable; 1: non-removable
> > >   * @wp_enable: 1: enable checking wp; 0: no check
> > >   * @vs18_enable: 1: use 1.8V voltage; 0: use 3.3V
> > > - * @flags: ESDHC_FLAG_xx in include/fsl_esdhc.h
> > > + * @flags: ESDHC_FLAG_xx in include/fsl_esdhc_imx.h
> > >   * @caps: controller capabilities
> > >   * @tuning_step: tuning step setting in tuning_ctrl register
> > >   * @start_tuning_tap: the start point for tuning in tuning_ctrl
> > > register diff --git a/include/fsl_esdhc.h b/include/fsl_esdhc_imx.h
> > > similarity index 97% copy from include/fsl_esdhc.h copy to
> > > include/fsl_esdhc_imx.h index 8dbd5249a7..e05b24e7e8 100644
> > > --- a/include/fsl_esdhc.h
> > > +++ b/include/fsl_esdhc_imx.h
> > > @@ -4,10 +4,11 @@
> > >   *-------------------------------------------------------------------
> > >   *
> > >   * Copyright 2007-2008,2010-2011 Freescale Semiconductor, Inc
> > > + * Copyright 2019 NXP
> >
> > The same comment as above applies.
> 
> [Y.b. Lu] Ok. Will do that.
> 
> >
> > >   */
> > >
> > > -#ifndef  __FSL_ESDHC_H__
> > > -#define	__FSL_ESDHC_H__
> > > +#ifndef __FSL_ESDHC_IMX_H__
> > > +#define __FSL_ESDHC_IMX_H__
> > >
> > >  #include <linux/bitops.h>
> > >  #include <linux/errno.h>
> > > @@ -258,15 +259,15 @@ struct fsl_esdhc_cfg {  #error "Endianess is
> > > not
> > > defined: please fix to continue"
> > >  #endif
> > >
> > > -#ifdef CONFIG_FSL_ESDHC
> > > +#ifdef CONFIG_FSL_ESDHC_IMX
> > >  int fsl_esdhc_mmc_init(bd_t *bis);
> > >  int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg);
> > > void fdt_fixup_esdhc(void *blob, bd_t *bd);  #else  static inline
> > > int fsl_esdhc_mmc_init(bd_t *bis) { return -ENOSYS; }  static inline
> > > void fdt_fixup_esdhc(void *blob, bd_t *bd) {} -#endif /*
> > > CONFIG_FSL_ESDHC */
> > > +#endif /* CONFIG_FSL_ESDHC_IMX */
> > >  void __noreturn mmc_boot(void);
> > >  void mmc_spl_load_image(uint32_t offs, unsigned int size, void
> > > *vdst); -#endif  /* __FSL_ESDHC_H__ */
> > > +#endif  /* __FSL_ESDHC_IMX_H__ */
> >
> > Please also use buildman to check if your changes (separate commits)
> > can be build (so in the future one can still use bisect).
> >
> > You may want to use "buildman" tool - e.g.:
> >
> > ./tools/buildman/buildman.py --branch=HEAD mx5 mx6 mx7 --show_errors
> > --force-build --count=5 --output-dir=../BUILD
> >
> 
> [Y.b. Lu] Sure. Will verify building with buildman before sending out the new
> version.

[Y.b. Lu] Sent out v4 based on latest u-boot.

$ buildman --branch=HEAD mx5 mx6 mx7 --show_errors --force-build --count=5 --output-dir=../BUILD
boards.cfg is up to date. Nothing to do.
Building 5 commits for 119 boards (4 threads, 1 job per thread)
  140  455    0 /595    imx6q_icore_nand


> 
> >
> > Best regards,
> >
> > Lukasz Majewski
> >
> > --
> >
> > DENX Software Engineering GmbH,      Managing Director: Wolfgang
> Denk
> > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> > Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email:
> > lukma at denx.de


More information about the U-Boot mailing list