diff mbox

[U-Boot] mxsboot : Support of 224-bytes OOB area length

Message ID 1420733682-6555-1-git-send-email-acoffignal@geral.com
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Commit Message

Alexandre Coffignal Jan. 8, 2015, 4:14 p.m. UTC
Add support for the NAND Flash chip with page size of 4096+224-bytes OOB area length 

For example Micron MT29F4G08 NAND flash device defines a OOB area which is
224 bytes long (oobsize).

Signed-off-by: Alexandre Coffignal <acoffignal@geral.com>
---
 tools/mxsboot.c |    6 ++++++
 1 file changed, 6 insertions(+)

Comments

Stefano Babic Jan. 19, 2015, 8:10 a.m. UTC | #1
Hi Alexandre,

On 08/01/2015 17:14, Alexandre Coffignal wrote:
> Add support for the NAND Flash chip with page size of 4096+224-bytes OOB area length 
> 
> For example Micron MT29F4G08 NAND flash device defines a OOB area which is
> 224 bytes long (oobsize).
> 
> Signed-off-by: Alexandre Coffignal <acoffignal@geral.com>
> ---
>  tools/mxsboot.c |    6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/tools/mxsboot.c b/tools/mxsboot.c
> index 90b2173..6d48cfb 100644
> --- a/tools/mxsboot.c
> +++ b/tools/mxsboot.c
> @@ -142,6 +142,9 @@ static inline uint32_t mx28_nand_get_ecc_strength(uint32_t page_data_size,
>  
>  		if (page_oob_size == 218)
>  			return 16;
> +
> +		if (page_oob_size == 224)
> +			return 16;
>  	}
>  
>  	return 0;
> @@ -269,6 +272,9 @@ static struct mx28_nand_fcb *mx28_nand_get_fcb(uint32_t size)
>  		} else if (nand_oobsize == 218) {
>  			fcb->ecc_block_n_ecc_type =	8;
>  			fcb->ecc_block_0_ecc_type =	8;
> +		} else if (nand_oobsize == 224) {
> +			fcb->ecc_block_n_ecc_type =	8;
> +			fcb->ecc_block_0_ecc_type =	8;
>  		}
>  	}

I have not your use case, but it looks ok for me and I merge it.

Applied to -u-boot-imx, thanks !

Best regards,
Stefano Babic
diff mbox

Patch

diff --git a/tools/mxsboot.c b/tools/mxsboot.c
index 90b2173..6d48cfb 100644
--- a/tools/mxsboot.c
+++ b/tools/mxsboot.c
@@ -142,6 +142,9 @@  static inline uint32_t mx28_nand_get_ecc_strength(uint32_t page_data_size,
 
 		if (page_oob_size == 218)
 			return 16;
+
+		if (page_oob_size == 224)
+			return 16;
 	}
 
 	return 0;
@@ -269,6 +272,9 @@  static struct mx28_nand_fcb *mx28_nand_get_fcb(uint32_t size)
 		} else if (nand_oobsize == 218) {
 			fcb->ecc_block_n_ecc_type =	8;
 			fcb->ecc_block_0_ecc_type =	8;
+		} else if (nand_oobsize == 224) {
+			fcb->ecc_block_n_ecc_type =	8;
+			fcb->ecc_block_0_ecc_type =	8;
 		}
 	}