From 5da4f805d88824201276be13f5e1539020ed1684 Mon Sep 17 00:00:00 2001 From: Dmitry Ermakov Date: Sat, 15 Jan 2022 23:22:51 +0300 Subject: [PATCH] Add NAND support for Hi3516Av100 --- .../kernel/hi3516av100.generic.config | 44 ++++++++++++++++++- .../kernel/hi3516dv100.generic.config | 44 ++++++++++++++++++- .../kernel/patches/12_add_tc58bvg_nand.patch | 28 ++++++++++++ 3 files changed, 112 insertions(+), 4 deletions(-) create mode 100644 br-ext-chip-hisilicon/board/hi3516av100/kernel/patches/12_add_tc58bvg_nand.patch diff --git a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config index eabadf1b..7e8835dd 100644 --- a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config +++ b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config @@ -875,7 +875,35 @@ CONFIG_MTD_CFI_I2=y # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set -# CONFIG_MTD_NAND is not set +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI_DT is not set +# CONFIG_MTD_NAND_GPIO is not set +# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_BRCMNAND is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_NAND_HISI504 is not set +# CONFIG_MTD_NAND_MTK is not set +# CONFIG_MTD_SPI_NAND_HISI_BVT is not set +# CONFIG_HISI_NAND_ECC_STATUS_REPORT is not set +# CONFIG_HISI_NAND_FS_MAY_NO_YAFFS2 is not set +CONFIG_MTD_NAND_HINFC610=y +CONFIG_HINFC610_MAX_CHIP=1 +CONFIG_HINFC610_DBG_NAND_DEBUG=y +CONFIG_HINFC610_DBG_NAND_DUMP=y +CONFIG_HINFC610_DBG_NAND_ERASE_COUNT=y +CONFIG_HINFC610_DBG_NAND_ECC_COUNT=y +CONFIG_HINFC610_DBG_NAND_READ_RETRY=y +CONFIG_HINFC610_AUTO_PAGESIZE_ECC=y +# CONFIG_HINFC610_PAGESIZE_AUTO_ECC_NONE is not set +# CONFIG_MTD_NAND_HIFMC100 is not set # CONFIG_MTD_ONENAND is not set # @@ -2207,7 +2235,19 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_YAFFS_FS is not set +CONFIG_YAFFS_FS=y +CONFIG_YAFFS_YAFFS1=y +# CONFIG_YAFFS_9BYTE_TAGS is not set +# CONFIG_YAFFS_DOES_ECC is not set +CONFIG_YAFFS_YAFFS2=y +CONFIG_YAFFS_AUTO_YAFFS2=y +# CONFIG_YAFFS_DISABLE_TAGS_ECC is not set +# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set +# CONFIG_YAFFS_EMPTY_LOST_AND_FOUND is not set +# CONFIG_YAFFS_DISABLE_BLOCK_REFRESHING is not set +# CONFIG_YAFFS_DISABLE_BACKGROUND is not set +# CONFIG_YAFFS_DISABLE_BAD_BLOCK_MARKING is not set +CONFIG_YAFFS_XATTR=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y diff --git a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config index eabadf1b..7e8835dd 100644 --- a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config +++ b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config @@ -875,7 +875,35 @@ CONFIG_MTD_CFI_I2=y # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set -# CONFIG_MTD_NAND is not set +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI_DT is not set +# CONFIG_MTD_NAND_GPIO is not set +# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_BRCMNAND is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_NAND_HISI504 is not set +# CONFIG_MTD_NAND_MTK is not set +# CONFIG_MTD_SPI_NAND_HISI_BVT is not set +# CONFIG_HISI_NAND_ECC_STATUS_REPORT is not set +# CONFIG_HISI_NAND_FS_MAY_NO_YAFFS2 is not set +CONFIG_MTD_NAND_HINFC610=y +CONFIG_HINFC610_MAX_CHIP=1 +CONFIG_HINFC610_DBG_NAND_DEBUG=y +CONFIG_HINFC610_DBG_NAND_DUMP=y +CONFIG_HINFC610_DBG_NAND_ERASE_COUNT=y +CONFIG_HINFC610_DBG_NAND_ECC_COUNT=y +CONFIG_HINFC610_DBG_NAND_READ_RETRY=y +CONFIG_HINFC610_AUTO_PAGESIZE_ECC=y +# CONFIG_HINFC610_PAGESIZE_AUTO_ECC_NONE is not set +# CONFIG_MTD_NAND_HIFMC100 is not set # CONFIG_MTD_ONENAND is not set # @@ -2207,7 +2235,19 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_YAFFS_FS is not set +CONFIG_YAFFS_FS=y +CONFIG_YAFFS_YAFFS1=y +# CONFIG_YAFFS_9BYTE_TAGS is not set +# CONFIG_YAFFS_DOES_ECC is not set +CONFIG_YAFFS_YAFFS2=y +CONFIG_YAFFS_AUTO_YAFFS2=y +# CONFIG_YAFFS_DISABLE_TAGS_ECC is not set +# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set +# CONFIG_YAFFS_EMPTY_LOST_AND_FOUND is not set +# CONFIG_YAFFS_DISABLE_BLOCK_REFRESHING is not set +# CONFIG_YAFFS_DISABLE_BACKGROUND is not set +# CONFIG_YAFFS_DISABLE_BAD_BLOCK_MARKING is not set +CONFIG_YAFFS_XATTR=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y diff --git a/br-ext-chip-hisilicon/board/hi3516av100/kernel/patches/12_add_tc58bvg_nand.patch b/br-ext-chip-hisilicon/board/hi3516av100/kernel/patches/12_add_tc58bvg_nand.patch new file mode 100644 index 00000000..5c84dce1 --- /dev/null +++ b/br-ext-chip-hisilicon/board/hi3516av100/kernel/patches/12_add_tc58bvg_nand.patch @@ -0,0 +1,28 @@ +--- a/drivers/mtd/nand/hinfc_spl_ids.c ++++ b/drivers/mtd/nand/hinfc_spl_ids.c +@@ -493,6 +493,25 @@ + .flags = 0, + }, + { /* SLC 8bit/512 */ ++ .name = "TC58BVG0S3HTA00", ++ .id = {0x98, 0xF1, 0x80, 0x15, 0xF2, 0x16, 0x08, 0x00}, ++ .length = 7, ++ .chipsize = SZ_128M, ++ .probe = NULL, ++ .pagesize = SZ_2K, ++ .erasesize = SZ_128K, ++ .oobsize = 64, ++ .options = 0, ++ .read_retry_type = NAND_RR_NONE, ++ /* ++ * Datasheet: read one column of any page in each block. If the ++ * data of the column is 00 (Hex), define the block as a bad ++ * block. ++ */ ++ .badblock_pos = BBP_FIRST_PAGE, ++ .flags = 0, ++ }, ++ { /* SLC 8bit/512 */ + .name = "TC58NVG1S3HTA00", + .id = {0x98, 0xDA, 0x90, 0x15, 0x76, 0x16, 0x08, 0x00}, + .length = 7,