diff --git a/configs/am3517_evm_defconfig b/configs/am3517_evm_defconfig index d03850ba9aa8480137a4c1d4f5ca3787e056a6c5..27ea7a44df94eab230186e32b739a977011d5215 100644 --- a/configs/am3517_evm_defconfig +++ b/configs/am3517_evm_defconfig @@ -41,4 +41,5 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_MUSB_HOST=y CONFIG_USB_STORAGE=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/igep0032_defconfig b/configs/igep0032_defconfig index 990b749c6372957afd002975834f62952cd34ab2..6e3dcb08cac73becbdbf321b62c679c632157abf 100644 --- a/configs/igep0032_defconfig +++ b/configs/igep0032_defconfig @@ -34,5 +34,6 @@ CONFIG_NAND=y CONFIG_SYS_NS16550=y CONFIG_OMAP3_SPI=y CONFIG_FAT_WRITE=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/igep00x0_defconfig b/configs/igep00x0_defconfig index 6b71b3be37517466af8138b0ecdd727786195158..c504e75ad83100d0a4a899aae28e8ff9170f0bbb 100644 --- a/configs/igep00x0_defconfig +++ b/configs/igep00x0_defconfig @@ -35,5 +35,6 @@ CONFIG_MTD_UBI_FASTMAP=y CONFIG_SYS_NS16550=y CONFIG_OMAP3_SPI=y CONFIG_FAT_WRITE=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/km_kirkwood_128m16_defconfig b/configs/km_kirkwood_128m16_defconfig index 886a5dfbb170ca3c1b1b6f019b167331ea6f7f63..dd67dcd492a46e94b7d29c4c935e5f1d91a20a87 100644 --- a/configs/km_kirkwood_128m16_defconfig +++ b/configs/km_kirkwood_128m16_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_EEPROM=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/km_kirkwood_defconfig b/configs/km_kirkwood_defconfig index 4197c8a4694c7be5e676b9300aaaffc1001f115d..223479cbf8d112b905d96a2d43ea4957bc60c207 100644 --- a/configs/km_kirkwood_defconfig +++ b/configs/km_kirkwood_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_EEPROM=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/km_kirkwood_pci_defconfig b/configs/km_kirkwood_pci_defconfig index 93fc00d1e2af6ed939f2973c395480a3c882ab96..f9d04d0ce903e373d98715242c3a3cd7ba6007f5 100644 --- a/configs/km_kirkwood_pci_defconfig +++ b/configs/km_kirkwood_pci_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_EEPROM=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmcoge4_defconfig b/configs/kmcoge4_defconfig index b8faced0cd96c31404cf7244e210e02903e30a25..2c0d7a0951797b2f70c1ae67938cac654a234a60 100644 --- a/configs/kmcoge4_defconfig +++ b/configs/kmcoge4_defconfig @@ -39,4 +39,5 @@ CONFIG_PHY_GIGE=y CONFIG_E1000=y CONFIG_SYS_NS16550=y CONFIG_FSL_ESPI=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmcoge5ne_defconfig b/configs/kmcoge5ne_defconfig index 4f38ea1b2ffc14848148a5c1f226c6668838353f..5165496f5485e3e99dc4edb9a96596784eb08ba6 100644 --- a/configs/kmcoge5ne_defconfig +++ b/configs/kmcoge5ne_defconfig @@ -24,4 +24,5 @@ CONFIG_CMD_UBI=y CONFIG_MTD_NOR_FLASH=y # CONFIG_PCI is not set CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmcoge5un_defconfig b/configs/kmcoge5un_defconfig index aed373b6c1ffbb1fe7cf9f2aa7719637b05501ff..31c571890b3818ebee9869b40b96ab0b5a60edc1 100644 --- a/configs/kmcoge5un_defconfig +++ b/configs/kmcoge5un_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmlion1_defconfig b/configs/kmlion1_defconfig index d5470a5ab203afea53ab66ee4e73dd4f26e5e656..d7150537b092b77b8ee5c6dc7954568ebbd28dac 100644 --- a/configs/kmlion1_defconfig +++ b/configs/kmlion1_defconfig @@ -39,4 +39,5 @@ CONFIG_PHY_GIGE=y CONFIG_E1000=y CONFIG_SYS_NS16550=y CONFIG_FSL_ESPI=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmnusa_defconfig b/configs/kmnusa_defconfig index 303d3df54a9e4c7db932286744d8d17cb06ce58d..42becd939fd8a5ddde1b58ea2693175617e85747 100644 --- a/configs/kmnusa_defconfig +++ b/configs/kmnusa_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmsugp1_defconfig b/configs/kmsugp1_defconfig index 5bd889fb8fcf375f05ee0397a84cbf243447f8e6..c6924d536e5c9e3483579aee73bb0a7bc6d842f8 100644 --- a/configs/kmsugp1_defconfig +++ b/configs/kmsugp1_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmsuv31_defconfig b/configs/kmsuv31_defconfig index 87b69876bd4563941028ef791939580c6b020cc7..aad7b4d893fe5cadac3f28e6b2d1feb3a5b0687c 100644 --- a/configs/kmsuv31_defconfig +++ b/configs/kmsuv31_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/kmtegr1_defconfig b/configs/kmtegr1_defconfig index 650c96fd83c9c12f5521300f2c0cb9b6e8b266fc..5547920717af12059c903c3fe29bea0152aa762a 100644 --- a/configs/kmtegr1_defconfig +++ b/configs/kmtegr1_defconfig @@ -25,4 +25,5 @@ CONFIG_CMD_UBI=y CONFIG_MTD_NOR_FLASH=y # CONFIG_PCI is not set CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/mgcoge3un_defconfig b/configs/mgcoge3un_defconfig index 4a9feee0d5fcc1c828ac717e6d14e4eda546ab42..910d09e969027642e1a89f8e2d6ef5186684a7c3 100644 --- a/configs/mgcoge3un_defconfig +++ b/configs/mgcoge3un_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_EEPROM=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/omap3_evm_defconfig b/configs/omap3_evm_defconfig index d9e636afea25bc23f0b304c51f5bfc46923a3c49..9977e8e10f1c49266e170f3d87a68e6439ab7ff2 100644 --- a/configs/omap3_evm_defconfig +++ b/configs/omap3_evm_defconfig @@ -57,6 +57,7 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments" CONFIG_G_DNL_VENDOR_NUM=0x0451 CONFIG_G_DNL_PRODUCT_NUM=0x5678 CONFIG_FAT_WRITE=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_SPL_OF_LIBFDT=y diff --git a/configs/omap3_logic_defconfig b/configs/omap3_logic_defconfig index dd4e23770fbb19c4925fe49409820527c21ca9e9..ffb325eb4468015407d25b80bc45e72ae607aef6 100644 --- a/configs/omap3_logic_defconfig +++ b/configs/omap3_logic_defconfig @@ -47,3 +47,4 @@ CONFIG_USB_GADGET_DOWNLOAD=y CONFIG_G_DNL_MANUFACTURER="TI" CONFIG_G_DNL_VENDOR_NUM=0x0451 CONFIG_G_DNL_PRODUCT_NUM=0xd022 +CONFIG_BCH=y diff --git a/configs/omap3_overo_defconfig b/configs/omap3_overo_defconfig index 20542e9c56c921165bb167fd11df0c0134054f31..5d1cbe993aaa81442b1edfda9251f1359d6a7ebe 100644 --- a/configs/omap3_overo_defconfig +++ b/configs/omap3_overo_defconfig @@ -50,4 +50,5 @@ CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y CONFIG_FAT_WRITE=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/portl2_defconfig b/configs/portl2_defconfig index e272232a5e3452a9aa9bb549f8503ebc22d331e7..351f16b151e204ffd77d9c80d91e4c8c693e4a59 100644 --- a/configs/portl2_defconfig +++ b/configs/portl2_defconfig @@ -28,4 +28,5 @@ CONFIG_ENV_IS_IN_EEPROM=y CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/tricorder_defconfig b/configs/tricorder_defconfig index 16e301129447e68884b86d1ccd0eb1f7dd7a526f..1a0748913adb1732def453d464d5bbb4cf043183 100644 --- a/configs/tricorder_defconfig +++ b/configs/tricorder_defconfig @@ -36,4 +36,5 @@ CONFIG_LED_STATUS_STATE2=2 CONFIG_LED_STATUS_CMD=y CONFIG_MMC_OMAP_HS=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/tricorder_flash_defconfig b/configs/tricorder_flash_defconfig index 43f18601801cce99a947aefb234c74ddf9081c70..dba3b1d74342cc8f078e27f7247698cf25a294e2 100644 --- a/configs/tricorder_flash_defconfig +++ b/configs/tricorder_flash_defconfig @@ -35,4 +35,5 @@ CONFIG_LED_STATUS_STATE2=2 CONFIG_LED_STATUS_CMD=y CONFIG_MMC_OMAP_HS=y CONFIG_SYS_NS16550=y +CONFIG_BCH=y CONFIG_OF_LIBFDT=y diff --git a/configs/x600_defconfig b/configs/x600_defconfig index 91cf93f1c5423455f0f54625fed0d4eb8e5446f9..bcb20facd4556df27068c03299051f4aea28edc6 100644 --- a/configs/x600_defconfig +++ b/configs/x600_defconfig @@ -44,6 +44,7 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_BCH=y CONFIG_USE_TINY_PRINTF=y CONFIG_OF_LIBFDT=y # CONFIG_EFI_LOADER is not set diff --git a/doc/README.nand b/doc/README.nand index 2295bb2d962a18e6c57ef415058cfb331ba1db59..362b8d8c9f4d08c89c4ddfd5a394642a918e0666 100644 --- a/doc/README.nand +++ b/doc/README.nand @@ -180,12 +180,6 @@ Configuration Options: And fetching device parameters flashed on device, by parsing ONFI parameter page. - CONFIG_BCH - Enables software based BCH ECC algorithm present in lib/bch.c - This is used by SoC platforms which do not have built-in ELM - hardware engine required for BCH ECC correction. - - Platform specific options ========================= CONFIG_NAND_OMAP_GPMC diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h index 0dd6ceacaefd6f544cbf215b0e45773ac50ea297..e7ef3dde8f09f346f25fe2639a33335e028a6f13 100644 --- a/include/configs/am3517_evm.h +++ b/include/configs/am3517_evm.h @@ -105,7 +105,6 @@ #ifdef CONFIG_NAND #define CONFIG_NAND_OMAP_GPMC #define CONFIG_NAND_OMAP_GPMC_PREFETCH -#define CONFIG_BCH #define CONFIG_SYS_NAND_ADDR NAND_BASE /* physical address */ /* to access nand */ #define CONFIG_SYS_NAND_BASE NAND_BASE /* physical address */ diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h index 42a6032f49dc3da01275b16be57829822c4d352b..8866658b00c89bc9084fc20968285a10393abd1b 100644 --- a/include/configs/km/km_arm.h +++ b/include/configs/km/km_arm.h @@ -31,7 +31,6 @@ #define CONFIG_MACH_TYPE MACH_TYPE_KM_KIRKWOOD #define CONFIG_NAND_ECC_BCH -#define CONFIG_BCH /* include common defines/options for all Keymile boards */ #include "keymile-common.h" diff --git a/include/configs/km/kmp204x-common.h b/include/configs/km/kmp204x-common.h index 0727106f267b18c8d19af1a063f202ba7eb88235..ff3bce8eeacfb4fcb60cafa7ec3af118942579da 100644 --- a/include/configs/km/kmp204x-common.h +++ b/include/configs/km/kmp204x-common.h @@ -154,8 +154,6 @@ unsigned long get_board_sys_clk(unsigned long dummy); #define CONFIG_SYS_MAX_NAND_DEVICE 1 #define CONFIG_SYS_NAND_BLOCK_SIZE (128 * 1024) -#define CONFIG_BCH - /* NAND flash config */ #define CONFIG_SYS_NAND_BR_PRELIM (BR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \ | BR_PS_8 /* Port Size = 8 bit */ \ diff --git a/include/configs/km8360.h b/include/configs/km8360.h index 9c1c158ec8254976c488165368f5b56cecbe0fbc..f482e2ce037ad14d22b0b7b7e0f06a471a128cc1 100644 --- a/include/configs/km8360.h +++ b/include/configs/km8360.h @@ -22,7 +22,6 @@ #define CONFIG_KM_BOARD_NAME "kmcoge5ne" #define CONFIG_KM_DEF_NETDEV "netdev=eth1\0" #define CONFIG_NAND_ECC_BCH -#define CONFIG_BCH #define CONFIG_NAND_KMETER1 #define CONFIG_SYS_MAX_NAND_DEVICE 1 #define NAND_MAX_CHIPS 1 diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index 3f4824259cbc78522818a28098c9e46b37420dc4..dd7ea5c8a65123603c5b3221be95346b1fe41070 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -52,7 +52,6 @@ #define CONFIG_NAND_OMAP_GPMC #define CONFIG_SYS_FLASH_BASE NAND_BASE #define CONFIG_SYS_MAX_NAND_DEVICE 1 -#define CONFIG_BCH #define CONFIG_SYS_NAND_BUSWIDTH_16BIT #define CONFIG_SYS_NAND_5_ADDR_CYCLE #define CONFIG_SYS_NAND_PAGE_COUNT 64 diff --git a/include/configs/omap3_igep00x0.h b/include/configs/omap3_igep00x0.h index c75027b411e67f5351a4861169f496e3fab2eca0..5118b9344674029b1501a1310528063e7bffc472 100644 --- a/include/configs/omap3_igep00x0.h +++ b/include/configs/omap3_igep00x0.h @@ -137,7 +137,6 @@ #define CONFIG_SYS_NAND_ECCBYTES 14 #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW_DETECTION_SW #define CONFIG_NAND_OMAP_GPMC -#define CONFIG_BCH /* UBI configuration */ #define CONFIG_SPL_UBI 1 diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h index bdd4bb6c1967376d8acda1d2dcaa9a952874938a..b8821d1f7856cb1fc21710df2f969ef67e71f7ef 100644 --- a/include/configs/omap3_logic.h +++ b/include/configs/omap3_logic.h @@ -88,7 +88,6 @@ #define CONFIG_SYS_NAND_ECCSIZE 512 #define CONFIG_SYS_NAND_ECCBYTES 13 #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW_DETECTION_SW -#define CONFIG_BCH #define CONFIG_SYS_NAND_MAX_OOBFREE 2 #define CONFIG_SYS_NAND_MAX_ECCPOS 56 #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x80000 diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h index f7dda87ab12369752ae26a0782580127b4c46f83..d53657f91623ad2bd549b4c4d7720540ccf52f78 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h @@ -17,8 +17,6 @@ #undef CONFIG_SPL_TEXT_BASE #define CONFIG_SPL_TEXT_BASE 0x40200000 -#define CONFIG_BCH - /* call misc_init_r */ #define CONFIG_MISC_INIT_R diff --git a/include/configs/suvd3.h b/include/configs/suvd3.h index 7b3b050ad9d30d98a57bde2b6c5fea175891b855..00deed6a6621fa4fb3d14ed74507bfc2142abac6 100644 --- a/include/configs/suvd3.h +++ b/include/configs/suvd3.h @@ -58,7 +58,6 @@ #define CONFIG_ENV_OFFSET 0x100000 #define CONFIG_NAND_ECC_BCH -#define CONFIG_BCH #define CONFIG_NAND_KMETER1 #define CONFIG_SYS_MAX_NAND_DEVICE 1 #define NAND_MAX_CHIPS 1 diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index 77f8cbde27fb12baa561fd92a8b3f565ebafefa7..3820096d78a695a557ab374b7c5d456f36ba26a7 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -92,7 +92,6 @@ /* CS0 */ #define CONFIG_SYS_MAX_NAND_DEVICE 1 /* Max number of NAND */ /* devices */ -#define CONFIG_BCH #define CONFIG_SYS_NAND_MAX_OOBFREE 2 #define CONFIG_SYS_NAND_MAX_ECCPOS 56 diff --git a/include/configs/x600.h b/include/configs/x600.h index 1255edd5bd6974d16b9c99759806809afb1e32dd..93c36374ad48d068e3c7e8d0ba415e4105508169 100644 --- a/include/configs/x600.h +++ b/include/configs/x600.h @@ -64,7 +64,6 @@ #define CONFIG_SYS_FSMC_NAND_8BIT #define CONFIG_SYS_NAND_ONFI_DETECTION #define CONFIG_NAND_ECC_BCH -#define CONFIG_BCH /* UBI/UBI config options */ #define CONFIG_MTD_DEVICE diff --git a/lib/Kconfig b/lib/Kconfig index d73052db687626450208c1072622267292e5bf62..fe337acaeb0bc15d6b762ca7722aa3c66879b9ad 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -1,5 +1,12 @@ menu "Library routines" +config BCH + bool "Enable Software based BCH ECC" + help + Enables software based BCH ECC algorithm present in lib/bch.c + This is used by SoC platforms which do not have built-in ELM + hardware engine required for BCH ECC correction. + config CC_OPTIMIZE_LIBS_FOR_SPEED bool "Optimize libraries for speed" help diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 648f83c6fb12d66fed871295b107b21df256b8f9..84dc5c99c64f8df6b8bc29de24594078a02b09d9 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -150,7 +150,6 @@ CONFIG_BARIX_IPAM390 CONFIG_BAT_CMD CONFIG_BAT_PAIR CONFIG_BAT_RW -CONFIG_BCH CONFIG_BCH_CONST_M CONFIG_BCH_CONST_PARAMS CONFIG_BCH_CONST_T