Message ID | 1431104833-9731-7-git-send-email-stefan@agner.ch |
---|---|
State | Accepted |
Delegated to: | Scott Wood |
Headers | show |
Hi Stefan, On 08/05/2015 19:07, Stefan Agner wrote: > This commit allows users to enable/disable the Freescale NFC > controller found in systems like Vybrid (VF610), MPC5125, MCF54418 > or Kinetis K70 via Kconfig with more detailed help docs. > > Signed-off-by: Stefan Agner <stefan@agner.ch> > --- > configs/colibri_vf_defconfig | 2 ++ > configs/vf610twr_defconfig | 2 ++ > doc/README.nand | 18 ------------------ > drivers/mtd/nand/Kconfig | 30 ++++++++++++++++++++++++++++++ > include/configs/colibri_vf.h | 2 -- > include/configs/vf610twr.h | 3 --- > 6 files changed, 34 insertions(+), 23 deletions(-) > > diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig > index cef5a9e..cdee835 100644 > --- a/configs/colibri_vf_defconfig > +++ b/configs/colibri_vf_defconfig > @@ -1,3 +1,5 @@ > CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,ENV_IS_IN_NAND,IMX_NAND" > CONFIG_ARM=y > CONFIG_TARGET_COLIBRI_VF=y > +CONFIG_NAND_VF610_NFC=y > +CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y > \ No newline at end of file > diff --git a/configs/vf610twr_defconfig b/configs/vf610twr_defconfig > index 7de374a..5e0ac9f 100644 > --- a/configs/vf610twr_defconfig > +++ b/configs/vf610twr_defconfig > @@ -1,3 +1,5 @@ > CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/vf610twr/imximage.cfg,ENV_IS_IN_MMC" > CONFIG_ARM=y > CONFIG_TARGET_VF610TWR=y > +CONFIG_NAND_VF610_NFC=y > +CONFIG_SYS_NAND_BUSWIDTH_16BIT=y > diff --git a/doc/README.nand b/doc/README.nand > index 46d7edd..0ff5633 100644 > --- a/doc/README.nand > +++ b/doc/README.nand > @@ -188,24 +188,6 @@ Configuration Options: > This is used by SoC platforms which do not have built-in ELM > hardware engine required for BCH ECC correction. > > - CONFIG_SYS_NAND_BUSWIDTH_16BIT > - Indicates that NAND device has 16-bit wide data-bus. In absence of this > - config, bus-width of NAND device is assumed to be either 8-bit and later > - determined by reading ONFI params. > - Above config is useful when NAND device's bus-width information cannot > - be determined from on-chip ONFI params, like in following scenarios: > - - SPL boot does not support reading of ONFI parameters. This is done to > - keep SPL code foot-print small. > - - In current U-Boot flow using nand_init(), driver initialization > - happens in board_nand_init() which is called before any device probe > - (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are > - not available while configuring controller. So a static CONFIG_NAND_xx > - is needed to know the device's bus-width in advance. > - Some drivers using above config are: > - drivers/mtd/nand/mxc_nand.c > - drivers/mtd/nand/ndfc.c > - drivers/mtd/nand/omap_gpmc.c > - > > Platform specific options > ========================= > diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig > index 72825c3..0a9e96f 100644 > --- a/drivers/mtd/nand/Kconfig > +++ b/drivers/mtd/nand/Kconfig > @@ -32,6 +32,36 @@ config NAND_DENALI_SPARE_AREA_SKIP_BYTES > of OOB area before last ECC sector data starts. This is potentially > used to preserve the bad block marker in the OOB area. > > +config NAND_VF610_NFC > + bool "Support for Freescale NFC for VF610/MPC5125" > + select SYS_NAND_SELF_INIT > + help > + Enables support for NAND Flash Controller on some Freescale > + processors like the VF610, MPC5125, MCF54418 or Kinetis K70. > + The driver supports a maximum 2k page size. The driver > + currently does not support hardware ECC. > + > +comment "Generic NAND options" > + > +# Enhance depends when converting drivers to Kconfig which use this config > +# option (mxc_nand, ndfc, omap_gpmc). > +config SYS_NAND_BUSWIDTH_16BIT > + bool "Use 16-bit NAND interface" > + depends on NAND_VF610_NFC > + help > + Indicates that NAND device has 16-bit wide data-bus. In absence of this > + config, bus-width of NAND device is assumed to be either 8-bit and later > + determined by reading ONFI params. > + Above config is useful when NAND device's bus-width information cannot > + be determined from on-chip ONFI params, like in following scenarios: > + - SPL boot does not support reading of ONFI parameters. This is done to > + keep SPL code foot-print small. > + - In current U-Boot flow using nand_init(), driver initialization > + happens in board_nand_init() which is called before any device probe > + (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are > + not available while configuring controller. So a static CONFIG_NAND_xx > + is needed to know the device's bus-width in advance. > + > if SPL > > config SPL_NAND_DENALI > diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h > index 414600a..b3c73bb 100644 > --- a/include/configs/colibri_vf.h > +++ b/include/configs/colibri_vf.h > @@ -50,8 +50,6 @@ > > /* NAND support */ > #define CONFIG_CMD_NAND > -#define CONFIG_NAND_VF610_NFC > -#define CONFIG_SYS_NAND_SELF_INIT > #define CONFIG_SYS_MAX_NAND_DEVICE 1 > #define CONFIG_SYS_NAND_BASE NFC_BASE_ADDR > > diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h > index 05bc7d0..621aa13 100644 > --- a/include/configs/vf610twr.h > +++ b/include/configs/vf610twr.h > @@ -50,10 +50,7 @@ > #define CONFIG_CMD_NAND_TRIMFFS > > #ifdef CONFIG_CMD_NAND > -#define CONFIG_NAND_VF610_NFC > -#define CONFIG_SYS_NAND_SELF_INIT > #define CONFIG_USE_ARCH_MEMCPY > -#define CONFIG_SYS_NAND_BUSWIDTH_16BIT > #define CONFIG_SYS_MAX_NAND_DEVICE 1 > #define CONFIG_SYS_NAND_BASE NFC_BASE_ADDR > ok from my side - I guess the whole patchset will be merged through Scott's tree and not iMX. Acked-by: Stefano Babic <sbabic@denx.de> Best regards, Stefano Babic
On Fri, May 08, 2015 at 07:07:11PM +0200, Stefan Agner wrote: > This commit allows users to enable/disable the Freescale NFC > controller found in systems like Vybrid (VF610), MPC5125, MCF54418 > or Kinetis K70 via Kconfig with more detailed help docs. > > Signed-off-by: Stefan Agner <stefan@agner.ch> > Acked-by: Stefano Babic <sbabic@denx.de> > --- > configs/colibri_vf_defconfig | 2 ++ > configs/vf610twr_defconfig | 2 ++ > doc/README.nand | 18 ------------------ > drivers/mtd/nand/Kconfig | 30 ++++++++++++++++++++++++++++++ > include/configs/colibri_vf.h | 2 -- > include/configs/vf610twr.h | 3 --- > 6 files changed, 34 insertions(+), 23 deletions(-) vf610twr_nand: drivers/mtd/nand/built-in.o: In function `nand_init_chip': build/../drivers/mtd/nand/nand.c:91: undefined reference to `board_nand_init' arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils) 2.23.1.20121113 assertion fail /opt/eldk/build/eldk-rel-v5.4-2013-08-02-9a46fd5-armv7a/tmp/work/i686-nativesdk-eldk-linux/binutils-cross-canadian-arm/2.23.1-r3/binutils-2.23.1/bfd/elf32-arm.c:7680 arm-linux-gnueabi-ld.bfd: error: required section '.rel.plt' not found in the linker script arm-linux-gnueabi-ld.bfd: final link failed: Invalid operation make[1]: *** [u-boot] Error 1 make: *** [sub-make] Error 2 To (hopefully; buildman running now) fix this I've updated vf610twr_nand_defconfig with the same changes as vf610twr_defconfig. Let me know if that's not what you want me to do. -Scott
On 2015-05-24 21:39, Scott Wood wrote: > On Fri, May 08, 2015 at 07:07:11PM +0200, Stefan Agner wrote: >> This commit allows users to enable/disable the Freescale NFC >> controller found in systems like Vybrid (VF610), MPC5125, MCF54418 >> or Kinetis K70 via Kconfig with more detailed help docs. >> >> Signed-off-by: Stefan Agner <stefan@agner.ch> >> Acked-by: Stefano Babic <sbabic@denx.de> >> --- >> configs/colibri_vf_defconfig | 2 ++ >> configs/vf610twr_defconfig | 2 ++ >> doc/README.nand | 18 ------------------ >> drivers/mtd/nand/Kconfig | 30 ++++++++++++++++++++++++++++++ >> include/configs/colibri_vf.h | 2 -- >> include/configs/vf610twr.h | 3 --- >> 6 files changed, 34 insertions(+), 23 deletions(-) > > vf610twr_nand: > > drivers/mtd/nand/built-in.o: In function `nand_init_chip': > build/../drivers/mtd/nand/nand.c:91: undefined reference to `board_nand_init' > arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils) 2.23.1.20121113 assertion > fail > /opt/eldk/build/eldk-rel-v5.4-2013-08-02-9a46fd5-armv7a/tmp/work/i686-nativesdk-eldk-linux/binutils-cross-canadian-arm/2.23.1-r3/binutils-2.23.1/bfd/elf32-arm.c:7680 > arm-linux-gnueabi-ld.bfd: error: required section '.rel.plt' not found > in the linker script > arm-linux-gnueabi-ld.bfd: final link failed: Invalid operation > make[1]: *** [u-boot] Error 1 > make: *** [sub-make] Error 2 > > To (hopefully; buildman running now) fix this I've updated > vf610twr_nand_defconfig with the same changes as vf610twr_defconfig. Let > me know if that's not what you want me to do. Sorry about that. Your change makes sense, thx! -- Stefan
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig index cef5a9e..cdee835 100644 --- a/configs/colibri_vf_defconfig +++ b/configs/colibri_vf_defconfig @@ -1,3 +1,5 @@ CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,ENV_IS_IN_NAND,IMX_NAND" CONFIG_ARM=y CONFIG_TARGET_COLIBRI_VF=y +CONFIG_NAND_VF610_NFC=y +CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y \ No newline at end of file diff --git a/configs/vf610twr_defconfig b/configs/vf610twr_defconfig index 7de374a..5e0ac9f 100644 --- a/configs/vf610twr_defconfig +++ b/configs/vf610twr_defconfig @@ -1,3 +1,5 @@ CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/vf610twr/imximage.cfg,ENV_IS_IN_MMC" CONFIG_ARM=y CONFIG_TARGET_VF610TWR=y +CONFIG_NAND_VF610_NFC=y +CONFIG_SYS_NAND_BUSWIDTH_16BIT=y diff --git a/doc/README.nand b/doc/README.nand index 46d7edd..0ff5633 100644 --- a/doc/README.nand +++ b/doc/README.nand @@ -188,24 +188,6 @@ Configuration Options: This is used by SoC platforms which do not have built-in ELM hardware engine required for BCH ECC correction. - CONFIG_SYS_NAND_BUSWIDTH_16BIT - Indicates that NAND device has 16-bit wide data-bus. In absence of this - config, bus-width of NAND device is assumed to be either 8-bit and later - determined by reading ONFI params. - Above config is useful when NAND device's bus-width information cannot - be determined from on-chip ONFI params, like in following scenarios: - - SPL boot does not support reading of ONFI parameters. This is done to - keep SPL code foot-print small. - - In current U-Boot flow using nand_init(), driver initialization - happens in board_nand_init() which is called before any device probe - (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are - not available while configuring controller. So a static CONFIG_NAND_xx - is needed to know the device's bus-width in advance. - Some drivers using above config are: - drivers/mtd/nand/mxc_nand.c - drivers/mtd/nand/ndfc.c - drivers/mtd/nand/omap_gpmc.c - Platform specific options ========================= diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig index 72825c3..0a9e96f 100644 --- a/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig @@ -32,6 +32,36 @@ config NAND_DENALI_SPARE_AREA_SKIP_BYTES of OOB area before last ECC sector data starts. This is potentially used to preserve the bad block marker in the OOB area. +config NAND_VF610_NFC + bool "Support for Freescale NFC for VF610/MPC5125" + select SYS_NAND_SELF_INIT + help + Enables support for NAND Flash Controller on some Freescale + processors like the VF610, MPC5125, MCF54418 or Kinetis K70. + The driver supports a maximum 2k page size. The driver + currently does not support hardware ECC. + +comment "Generic NAND options" + +# Enhance depends when converting drivers to Kconfig which use this config +# option (mxc_nand, ndfc, omap_gpmc). +config SYS_NAND_BUSWIDTH_16BIT + bool "Use 16-bit NAND interface" + depends on NAND_VF610_NFC + help + Indicates that NAND device has 16-bit wide data-bus. In absence of this + config, bus-width of NAND device is assumed to be either 8-bit and later + determined by reading ONFI params. + Above config is useful when NAND device's bus-width information cannot + be determined from on-chip ONFI params, like in following scenarios: + - SPL boot does not support reading of ONFI parameters. This is done to + keep SPL code foot-print small. + - In current U-Boot flow using nand_init(), driver initialization + happens in board_nand_init() which is called before any device probe + (nand_scan_ident + nand_scan_tail), thus device's ONFI parameters are + not available while configuring controller. So a static CONFIG_NAND_xx + is needed to know the device's bus-width in advance. + if SPL config SPL_NAND_DENALI diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h index 414600a..b3c73bb 100644 --- a/include/configs/colibri_vf.h +++ b/include/configs/colibri_vf.h @@ -50,8 +50,6 @@ /* NAND support */ #define CONFIG_CMD_NAND -#define CONFIG_NAND_VF610_NFC -#define CONFIG_SYS_NAND_SELF_INIT #define CONFIG_SYS_MAX_NAND_DEVICE 1 #define CONFIG_SYS_NAND_BASE NFC_BASE_ADDR diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h index 05bc7d0..621aa13 100644 --- a/include/configs/vf610twr.h +++ b/include/configs/vf610twr.h @@ -50,10 +50,7 @@ #define CONFIG_CMD_NAND_TRIMFFS #ifdef CONFIG_CMD_NAND -#define CONFIG_NAND_VF610_NFC -#define CONFIG_SYS_NAND_SELF_INIT #define CONFIG_USE_ARCH_MEMCPY -#define CONFIG_SYS_NAND_BUSWIDTH_16BIT #define CONFIG_SYS_MAX_NAND_DEVICE 1 #define CONFIG_SYS_NAND_BASE NFC_BASE_ADDR
This commit allows users to enable/disable the Freescale NFC controller found in systems like Vybrid (VF610), MPC5125, MCF54418 or Kinetis K70 via Kconfig with more detailed help docs. Signed-off-by: Stefan Agner <stefan@agner.ch> --- configs/colibri_vf_defconfig | 2 ++ configs/vf610twr_defconfig | 2 ++ doc/README.nand | 18 ------------------ drivers/mtd/nand/Kconfig | 30 ++++++++++++++++++++++++++++++ include/configs/colibri_vf.h | 2 -- include/configs/vf610twr.h | 3 --- 6 files changed, 34 insertions(+), 23 deletions(-)