u-boot/arch/arm/include/asm
Peng Fan 63b29d8082 mtd: nand: mxs support oobsize bigger than 512
If ecc chunk data size is 512 and oobsize is bigger than 512, there is
a chance that block_mark_bit_offset conflicts with bch ecc area.

The following graph is modified from kernel gpmi-nand.c driver with
each data block 512 bytes. We can see that Block Mark conflicts with
ecc area from bch view. We can enlarge the ecc chunk size to avoid
this problem to those oobsize which is larger than 512.

   |                          P                                        |
   |<----------------------------------------------------------------->|
   |                                                                   |
   |                                                (Block Mark)       |
   |                      P'                             |           | |   |
   |<--------------------------------------------------->|     D     | | O'|
   |                                                     |<--------->| |<->|
   V                                                     V           V V   V
   +---+--------------+-+--------------+-+--------------+-+----------+-+---+
   | M |   data       |E|   data       |E|   data       |E|   data   |E|   |
   +---+--------------+-+--------------+-+--------------+-+----------+-+---+
                                                        ^                  ^
                                                        |         O        |
                                                        |<---------------->|

       P : the page size for BCH module.
       E : The ECC strength.
       G : the length of Galois Field.
       N : The chunk count of per page.
       M : the metasize of per page.
       C : the ecc chunk size, aka the "data" above.
       P': the nand chip's page size.
       O : the nand chip's oob size.
       O': the free oob.

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Tested-By: Tim Harvey <tharvey@gateworks.com>
2015-08-25 22:53:58 -05:00
..
arch-am33xx ARM: AM43xx: Add support for disabling clocks in uboot 2015-08-17 23:29:14 +05:30
arch-armada100 ARM: remove CONFIG_ARM926EJS defines 2014-11-20 11:28:25 -05:00
arch-armv7 ARMv7: Factor out reusable timer_wait from sunxi/psci_sun7i.S 2015-07-20 11:44:38 -07:00
arch-bcm281xx usb: gadget: bcm_udc_otg files 2015-07-22 08:57:54 +02:00
arch-bcmcygnus arm: bcmcygnus: Enable Ethernet support 2015-08-12 20:47:28 -04:00
arch-bcmnsp arm: add Cygnus and NSP boards 2014-08-30 07:46:40 -04:00
arch-ep93xx arm: ep9315: Return back Cirrus Logic EDB9315A board support 2014-07-04 23:45:48 +02:00
arch-fsl-lsch3 armv8/lsch3/config: Define USB XHCI controller base address for LS2085A 2015-08-03 12:06:39 -07:00
arch-hi6220 mmc: hi6220_dw_mmc: Add hi6220 glue code for dw_mmc controller. 2015-08-12 20:48:01 -04:00
arch-imx imx: mx6ul: Add i.MX6UL CPU type 2015-08-02 11:05:06 +02:00
arch-lpc32xx lpc32xx: add common USB OHCI defines for all LPC32xx boards 2015-08-18 13:45:58 -04:00
arch-ls102xa Correct License and Copyright information on few files 2015-08-12 20:47:46 -04:00
arch-mvebu arm: marvell: Move arch-kirkwood/spi.h to arch-mvebu/spi.h 2014-10-23 09:59:20 -04:00
arch-mx5 patch - arm - define SYS_CACHELINE_SIZE for mx5 2015-06-09 12:00:42 +02:00
arch-mx6 imx:mx6ul add dram spl configuration and header file 2015-08-02 11:05:09 +02:00
arch-mx25 i2c, mxc: rework i2c base address names for different SoCs 2015-05-26 14:17:00 +02:00
arch-mx27 i2c, mxc: rework i2c base address names for different SoCs 2015-05-26 14:17:00 +02:00
arch-mx31 arm: mx31: use common timer functions 2014-09-16 12:51:46 +02:00
arch-mx35 arm: mx35: use common timer functions 2014-09-16 12:53:09 +02:00
arch-mxs arm: mxs: Add 'Wait for JTAG user' if booted in JTAG mode 2015-02-10 12:48:50 +01:00
arch-omap3 omap3: Reboot mode support 2015-08-12 20:47:36 -04:00
arch-omap4 omap: SPL boot devices cleanup and completion 2015-07-27 15:02:04 -04:00
arch-omap5 ARM: dra7xx_evm: Enable EDMA3 in SPL to support DMA on qspi 2015-08-17 23:29:15 +05:30
arch-orion5x edminiv2: switch to SPL 2015-02-25 07:59:50 +01:00
arch-pxa include: delete include/linux/config.h 2013-11-08 15:25:13 -05:00
arch-rmobile arm: rmobile: alt: Update to QoS revision 0.31 and 0.321 2015-06-01 08:56:34 +09:00
arch-s3c24x0 mtd: nand: s3c: Unify the register definition and naming 2014-11-26 23:21:43 -06:00
arch-s5pc1xx dm: exynos: gpio: Convert to driver model 2014-10-22 10:36:36 -06:00
arch-sa1100 Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
arch-spear usb: spear: Add support for both SPEAr600 EHCI controllers 2015-08-19 22:30:20 +02:00
arch-stm32f1 ARMv7M: add STM32F1 support 2015-05-28 08:18:24 -04:00
arch-stm32f4 stm32f429: pass the device unique ID in DTB 2015-07-27 15:02:14 -04:00
arch-stv0991 stv0991: configure clock & pad muxing for qspi 2015-07-03 13:50:53 +05:30
arch-sunxi sun6i: clock: Add support for the mipi pll 2015-08-14 08:37:39 +02:00
arch-tegra ARM: tegra: Make pinmux.h standalone includible 2015-08-13 13:06:03 -07:00
arch-tegra20 tegra: Move display controller header into common 2015-05-13 09:24:10 -07:00
arch-tegra30 ARM: ARM720t: remove empty asm/arch/hardware.h 2015-04-23 08:52:27 -04:00
arch-tegra114 ARM: ARM720t: remove empty asm/arch/hardware.h 2015-04-23 08:52:27 -04:00
arch-tegra124 tegra: Add missing tegra124 peripherals 2015-06-09 09:56:14 -07:00
arch-tegra210 Tegra: PLL: use per-SoC pllinfo table instead of PLL_DIVM/N/P, etc. 2015-08-05 15:22:51 -07:00
arch-u8500 Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
arch-vf610 i2c: fix vf610 support 2015-07-10 10:10:48 +02:00
arch-zynqmp zynqmp: usb: Add usb dwc3 driver support for zynqmp 2015-08-19 11:27:30 +02:00
armv8 armv8: Fix TCR macros for shareability attribute 2015-07-20 11:44:40 -07:00
imx-common mtd: nand: mxs support oobsize bigger than 512 2015-08-25 22:53:58 -05:00
iproc-common arm: add Cygnus and NSP boards 2014-08-30 07:46:40 -04:00
kona-common bcm281xx: add support for "USB OTG clock" 2014-12-29 16:31:23 -05:00
proc-armv ARM: add missing HYP mode constant 2014-07-28 17:06:35 +02:00
ti-common dma: ti-edma3: Add helper function to support edma3 transfer 2015-08-17 23:29:15 +05:30
armv7.h virt-dt: Allow reservation of secure region when in a RAM carveout 2015-05-13 09:24:14 -07:00
armv7m.h ARM: Add ARMv7-M support 2015-04-22 12:14:55 -04:00
assembler.h arm: build arch memset/memcpy in Thumb2 mode 2015-01-09 10:20:22 -05:00
atomic.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
bitops.h arm: implement find_next_zero_bit function 2015-04-16 09:31:14 +02:00
bootm.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
byteorder.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
cache.h ARM: cache_v7: use __weak 2014-07-04 19:57:22 +02:00
config.h ARMv8: enable pre-allocation malloc 2015-03-27 16:28:58 +01:00
davinci_rtc.h am33xx, davinci: Create and use <asm/davinci_rtc.h> 2013-11-01 15:30:22 -04:00
dma-mapping.h arm: asm: dma-mapping: added dma_free_coherent API 2015-04-14 05:48:09 +02:00
ehci-omap.h usb: new board-specific USB init interface 2013-10-20 23:42:40 +02:00
emif.h am33xx: Re-enable SW levelling for DDR2 2015-06-15 10:57:26 -04:00
errno.h Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
fsl_secure_boot.h Add bootscript support to esbc_validate. 2015-04-21 10:19:19 -07:00
gic.h arm64 patch: gicv3 support 2014-04-08 00:15:12 +02:00
global_data.h omap-common: Common boot code OMAP3 support and cleanup 2015-07-27 15:02:03 -04:00
gpio.h gpio: Replace ARM gpio.h with the common API in include/asm-generic 2012-01-09 20:10:32 -06:00
hardware.h Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
io.h arm: ls102xa: Add Freescale LS102xA SoC support 2014-09-08 10:30:32 -07:00
linkage.h arm: adapt asm/linkage.h from Linux 2012-05-15 08:31:26 +02:00
mach-types.h arm: at91: add support for mini-box picosam9g45 board 2015-08-21 15:47:04 +02:00
macro.h Armv8: Initializing CNTVOFF_EL2 2015-04-16 11:27:15 +02:00
memory.h include: delete include/linux/config.h 2013-11-08 15:25:13 -05:00
omap_common.h ARM: OMAP5: Add functions to enable and disable EDMA3 clocks 2015-08-17 23:29:14 +05:30
omap_gpio.h gpio: omap: Drop 'method' parameter 2015-08-12 20:48:06 -04:00
omap_mmc.h omap_hsmmc: add driver check for write protection 2013-03-08 16:41:13 -05:00
omap_musb.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
pl310.h mx6: Set shared override bit in PL310 AUX_CTRL register 2015-05-15 19:21:24 +02:00
posix_types.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
processor.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
psci.h ARM: Add board-specific initialization hook for PSCI 2015-05-13 09:24:15 -07:00
ptrace.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
sections.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
secure.h ARM: HYP/non-sec: allow relocation to secure RAM 2014-07-28 17:19:09 +02:00
setup.h arm bootm: Allow to pass board specified atags 2012-10-30 15:28:05 -07:00
spl.h arm: spl: Avoid setting up a duplicate global data structure 2015-03-04 14:55:04 -05:00
string.h arm: Use optimized memcpy and memset from linux 2011-04-27 19:38:07 +02:00
system.h armv8: caches: Added routine to set non cacheable region 2015-07-31 01:38:12 +02:00
types.h include: asm: types: add resource_size_t type 2015-04-14 05:48:09 +02:00
u-boot-arm.h common: Move dram_init() declaration to common location 2015-02-09 15:08:48 +01:00
u-boot.h Revert "break build if it would produce broken binary" 2015-07-07 11:39:36 +02:00
unaligned.h arm64: core support 2014-01-09 16:08:44 +01:00
utils.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00