 a4b86b292a
			
		
	
	a4b86b292a
	
	
	
		
			
			This allows kobs-ng to flash the SPL successfully on the 4.4 kernel used by the Gateworks IMX boards supporting NAND. The previous version of kobs-ng worked with the 3.14 kernel but will brick a board making its SPL unbootable for the 4.4 kernel. See http://trac.gateworks.com/wiki/ventana/bootloader#nandspl for instructions on updating the SPL from Linux. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
		
			
				
	
	
		
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| The Freescale downstream vendor kernel has a patch that exports the bch
 | |
| flash geometry via a debugfs file. This is not available in mainline linux
 | |
| kernels so the fallback method calculates the geometry based on known info
 | |
| from the mtd partition. A bug exists in this funcion where it fails to
 | |
| assume that block0 ECC is the same as the other blocks by default.
 | |
| --- a/src/mtd.c
 | |
| +++ b/src/mtd.c
 | |
| @@ -610,7 +610,7 @@ static int cal_nfc_geometry(struct mtd_d
 | |
|  	/* The two are fixed, please change them when the driver changes. */
 | |
|  	geo->metadata_size_in_bytes = 10;
 | |
|  	geo->gf_len = 13;
 | |
| -	geo->ecc_chunkn_size_in_bytes = 512;
 | |
| +	geo->ecc_chunkn_size_in_bytes = geo->ecc_chunk0_size_in_bytes = 512;
 | |
|  
 | |
|  	if (mtd->oobsize > geo->ecc_chunkn_size_in_bytes) {
 | |
|  		geo->gf_len = 14;
 | |
| @@ -700,8 +700,9 @@ int parse_nfc_geometry(struct mtd_data *
 | |
|  	unsigned int       value;
 | |
|  
 | |
|  	if (!plat_config_data->m_u32UseNfcGeo) {
 | |
| +		/* fsl kernel patch provides bch_geometry via debugfs */
 | |
|  		if (!(node = fopen(dbg_geometry_node_path, "r"))) {
 | |
| -			fprintf(stderr, "Cannot open BCH geometry node: \"%s\"",
 | |
| +			fprintf(stderr, "Cannot open BCH geometry node: \"%s\"\n",
 | |
|  				dbg_geometry_node_path);
 | |
|  			return cal_nfc_geometry(md);
 | |
|  		}
 |