diff options
-rw-r--r-- | src/flash/nand/mxc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/flash/nand/mxc.c b/src/flash/nand/mxc.c index b6694ca0..30170190 100644 --- a/src/flash/nand/mxc.c +++ b/src/flash/nand/mxc.c @@ -39,6 +39,7 @@ * !! all function only tested with 2k page nand device; mxc_write_page * writes the 4 MAIN_BUFFER's and is not compatible with < 2k page * !! oob must be be used due to NFS bug + * !! oob must be 64 bytes per 2KiB page */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -48,6 +49,8 @@ #include "mxc.h" #include <target/target.h> +#define OOB_SIZE 64 + #define nfc_is_v1() (mxc_nf_info->mxc_version == MXC_VERSION_MX27 || \ mxc_nf_info->mxc_version == MXC_VERSION_MX31) #define nfc_is_v2() (mxc_nf_info->mxc_version == MXC_VERSION_MX25 || \ @@ -732,6 +735,7 @@ static int initialize_nf_controller(struct nand_device *nand) LOG_DEBUG("MXC_NF : work without ECC mode"); } if (nfc_is_v2()) { + target_write_u16(target, MXC_NF_V2_SPAS, OOB_SIZE / 2); if (nand->page_size) { uint16_t pages_per_block = nand->erase_size / nand->page_size; work_mode |= MXC_NF_V2_CFG1_PPB(ffs(pages_per_block) - 6); |