35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From d61784e6410f3df2028e6eb91b06ffed37a660e0 Mon Sep 17 00:00:00 2001
 | |
| From: Patrick Delaunay <patrick.delaunay@foss.st.com>
 | |
| Date: Fri, 18 Nov 2022 06:39:21 +0000
 | |
| Subject: [PATCH] nvmem: stm32: add warning when upper OTPs are updated
 | |
| 
 | |
| As the upper OTPs are ECC protected, they support only one 32 bits word
 | |
| programming.
 | |
| For a second modification of this word, these ECC become invalid and
 | |
| this OTP will be no more accessible, the shadowed value is invalid.
 | |
| 
 | |
| This patch adds a warning to indicate an upper OTP update, because this
 | |
| operation is dangerous as OTP is not locked by the driver after the first
 | |
| update to avoid a second update.
 | |
| 
 | |
| Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
 | |
| Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 | |
| Link: https://lore.kernel.org/r/20221118063932.6418-3-srinivas.kandagatla@linaro.org
 | |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | |
| ---
 | |
|  drivers/nvmem/stm32-romem.c | 3 +++
 | |
|  1 file changed, 3 insertions(+)
 | |
| 
 | |
| --- a/drivers/nvmem/stm32-romem.c
 | |
| +++ b/drivers/nvmem/stm32-romem.c
 | |
| @@ -132,6 +132,9 @@ static int stm32_bsec_write(void *contex
 | |
|  		}
 | |
|  	}
 | |
|  
 | |
| +	if (offset + bytes >= priv->lower * 4)
 | |
| +		dev_warn(dev, "Update of upper OTPs with ECC protection (word programming, only once)\n");
 | |
| +
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | 
