arm: socfpga: soc64: Show reset state in SPL
Print reset state (warm/cold) together with the source (watchdog/MPU) which has triggered the warm reset on S10 & Agilex. Signed-off-by: Chee Hong Ang <chee.hong.ang@intel.com> Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
This commit is contained in:
		
							parent
							
								
									d7a1ff40d6
								
							
						
					
					
						commit
						b3e2d9fccb
					
				|  | @ -8,6 +8,7 @@ | ||||||
| 
 | 
 | ||||||
| void reset_deassert_peripherals_handoff(void); | void reset_deassert_peripherals_handoff(void); | ||||||
| int cpu_has_been_warmreset(void); | int cpu_has_been_warmreset(void); | ||||||
|  | void print_reset_info(void); | ||||||
| void socfpga_bridges_reset(int enable); | void socfpga_bridges_reset(int enable); | ||||||
| 
 | 
 | ||||||
| #define RSTMGR_SOC64_STATUS	0x00 | #define RSTMGR_SOC64_STATUS	0x00 | ||||||
|  |  | ||||||
|  | @ -104,3 +104,25 @@ int cpu_has_been_warmreset(void) | ||||||
| 	return readl(socfpga_get_rstmgr_addr() + RSTMGR_SOC64_STATUS) & | 	return readl(socfpga_get_rstmgr_addr() + RSTMGR_SOC64_STATUS) & | ||||||
| 			RSTMGR_L4WD_MPU_WARMRESET_MASK; | 			RSTMGR_L4WD_MPU_WARMRESET_MASK; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | void print_reset_info(void) | ||||||
|  | { | ||||||
|  | 	bool iswd; | ||||||
|  | 	int n; | ||||||
|  | 	u32 stat = cpu_has_been_warmreset(); | ||||||
|  | 
 | ||||||
|  | 	printf("Reset state: %s%s", stat ? "Warm " : "Cold", | ||||||
|  | 	       (stat & RSTMGR_STAT_SDMWARMRST) ? "[from SDM] " : ""); | ||||||
|  | 
 | ||||||
|  | 	stat &= ~RSTMGR_STAT_SDMWARMRST; | ||||||
|  | 	if (!stat) { | ||||||
|  | 		puts("\n"); | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	n = generic_ffs(stat) - 1; | ||||||
|  | 	iswd = (n >= RSTMGR_STAT_L4WD0RST_BITPOS); | ||||||
|  | 	printf("(Triggered by %s %d)\n", iswd ? "Watchdog" : "MPU", | ||||||
|  | 	       iswd ? (n - RSTMGR_STAT_L4WD0RST_BITPOS) : | ||||||
|  | 	       (n - RSTMGR_STAT_MPU0RST_BITPOS)); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -76,6 +76,7 @@ void board_init_f(ulong dummy) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	preloader_console_init(); | 	preloader_console_init(); | ||||||
|  | 	print_reset_info(); | ||||||
| 	cm_print_clock_quick_summary(); | 	cm_print_clock_quick_summary(); | ||||||
| 
 | 
 | ||||||
| 	firewall_setup(); | 	firewall_setup(); | ||||||
|  |  | ||||||
|  | @ -81,6 +81,7 @@ void board_init_f(ulong dummy) | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| 	preloader_console_init(); | 	preloader_console_init(); | ||||||
|  | 	print_reset_info(); | ||||||
| 	cm_print_clock_quick_summary(); | 	cm_print_clock_quick_summary(); | ||||||
| 
 | 
 | ||||||
| 	firewall_setup(); | 	firewall_setup(); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue