mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01:00 
			
		
		
		
	If no softreset save registers are found on the hardware "bootcount" is stored in the environment. To prevent a saveenv on all reboots, the environment variable "upgrade_available" is introduced. If "upgrade_available" is 0, "bootcount" is always 0 therefore no need to save the environment on u-boot boot, if "upgrade_available" is 1 "bootcount" is incremented in the environment and environment gets written on u-boot start. So the Userspace Applikation must set the "upgrade_available" and "bootcount" variable to 0 (for example with fw_setenv), if a boot was successfully. Signed-off-by: Heiko Schocher <hs@denx.de>
		
			
				
	
	
		
			30 lines
		
	
	
		
			521 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			521 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * (C) Copyright 2013
 | |
|  * Heiko Schocher, DENX Software Engineering, hs@denx.de.
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #include <common.h>
 | |
| 
 | |
| void bootcount_store(ulong a)
 | |
| {
 | |
| 	int upgrade_available = getenv_ulong("upgrade_available", 10, 0);
 | |
| 
 | |
| 	if (upgrade_available) {
 | |
| 		setenv_ulong("bootcount", a);
 | |
| 		saveenv();
 | |
| 	}
 | |
| }
 | |
| 
 | |
| ulong bootcount_load(void)
 | |
| {
 | |
| 	int upgrade_available = getenv_ulong("upgrade_available", 10, 0);
 | |
| 	ulong val = 0;
 | |
| 
 | |
| 	if (upgrade_available)
 | |
| 		val = getenv_ulong("bootcount", 10, 0);
 | |
| 
 | |
| 	return val;
 | |
| }
 |