[PATCH] nand: omap2: fix building with CONFIG_MTD_NAND_OMAP_BCH=m

Ezequiel Garcia ezequiel.garcia at free-electrons.com
Wed Oct 1 03:24:19 PDT 2014


On 01 Oct 11:56 AM, Arnd Bergmann wrote:
> On Wednesday 01 October 2014 12:32:09 Roger Quadros wrote:
> > 
> > With this patch NAND probe on DRA7xx fails like so
> > 
> > [    2.077313] omap-gpmc 50000000.gpmc: GPMC revision 6.0
> > [    2.083842] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xca
> > [    2.090524] nand: Micron MT29F2G16ABAEAWP
> > [    2.094728] nand: 256MiB, SLC, page size: 2048, OOB size: 64
> > [    2.100745] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
> > [    2.109764] omap2-nand: probe of omap2-nand.0 failed with error -38
> > 
> > OMAP NAND driver is the only user of the ELM module and we want it
> > to be usable in all possible configurations when enabled.
> 
> I don't understand. Is the BCH driver optional or not?
> 
> The help text says:
> 
>           This config enables the ELM hardware engine, which can be used to
>           locate and correct errors when using BCH ECC scheme. This offloads
>           the cpu from doing ECC error searching and correction. However some
>           legacy OMAP families like OMAP2xxx, OMAP3xxx do not have ELM engine
>           so they should not enable this config symbol.
> 
> which adds more to the confusion. The help text sounds like everything should
> work even if ELM is disabled (which contradicts your finding above) but you
> must not enable the driver if you are on an older machine (which would
> break multiplatform builds).
> 
> > Let's pick either one of the below patches instead
> > 
> > http://article.gmane.org/gmane.linux.ports.arm.omap/118488
> 
> This doesn't let you have the BCH driver as a module, which seems
> wrong.
> 
> > http://article.gmane.org/gmane.linux.ports.arm.omap/118847
> 
> Looks good, although I think you can simplify this to
> 
> config MTD_NAND_OMAP_BCH_BUILD
> 	def_tristate MTD_NAND_OMAP2 && MTD_NAND_OMAP_BCH
> 
> which makes it 'm' if MTD_NAND_OMAP_BCH is set to m.
> 

Just to clarify, you are talking about this one being the correct one,
right?

http://article.gmane.org/gmane.linux.ports.arm.omap/118488
"[PATCH 3/3] mtd: nand: Force omap_elm to be built as a module if omap2_nand is a module"

-- 
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com



More information about the linux-arm-kernel mailing list