PPC: fix hreset_vector for 60x, 7x0, 7x5, G2, MPC8xx, MPC5xx, 7400 and 7450
According to the different user's manuals, the vector offset for system reset (both /HRESET and /SRESET) is 0x00100. This patch may break support of some executables, as the power-on start address may change. For a specific board, if the power-on start address is different than HRESET vector (i.e. 0x00000100 or 0xfff00100), this should be fixed in board's initialization code. Signed-off-by: Fabien Chouteau <chouteau@adacore.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
		
							parent
							
								
									8e7a6db965
								
							
						
					
					
						commit
						09d9828ace
					
				| @ -2645,7 +2645,7 @@ static void init_excp_MPC5xx (CPUPPCState *env) | |||||||
|     env->ivor_mask = 0x0000FFF0UL; |     env->ivor_mask = 0x0000FFF0UL; | ||||||
|     env->ivpr_mask = 0xFFFF0000UL; |     env->ivpr_mask = 0xFFFF0000UL; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2676,7 +2676,7 @@ static void init_excp_MPC8xx (CPUPPCState *env) | |||||||
|     env->ivor_mask = 0x0000FFF0UL; |     env->ivor_mask = 0x0000FFF0UL; | ||||||
|     env->ivpr_mask = 0xFFFF0000UL; |     env->ivpr_mask = 0xFFFF0000UL; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2701,7 +2701,7 @@ static void init_excp_G2 (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; |     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; | ||||||
|     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; |     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2804,7 +2804,7 @@ static void init_excp_602 (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_WDT]      = 0x00001500; |     env->excp_vectors[POWERPC_EXCP_WDT]      = 0x00001500; | ||||||
|     env->excp_vectors[POWERPC_EXCP_EMUL]     = 0x00001600; |     env->excp_vectors[POWERPC_EXCP_EMUL]     = 0x00001600; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2828,7 +2828,7 @@ static void init_excp_603 (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; |     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; | ||||||
|     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; |     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2873,7 +2873,7 @@ static void init_excp_7x0 (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; |     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; | ||||||
|     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; |     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2895,7 +2895,7 @@ static void init_excp_750cl (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; |     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; | ||||||
|     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; |     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2917,7 +2917,7 @@ static void init_excp_750cx (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; |     env->excp_vectors[POWERPC_EXCP_IABR]     = 0x00001300; | ||||||
|     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; |     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2944,7 +2944,7 @@ static void init_excp_7x5 (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; |     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; | ||||||
|     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; |     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2969,7 +2969,7 @@ static void init_excp_7400 (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_VPUA]     = 0x00001600; |     env->excp_vectors[POWERPC_EXCP_VPUA]     = 0x00001600; | ||||||
|     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; |     env->excp_vectors[POWERPC_EXCP_THERM]    = 0x00001700; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -2996,7 +2996,7 @@ static void init_excp_7450 (CPUPPCState *env) | |||||||
|     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; |     env->excp_vectors[POWERPC_EXCP_SMI]      = 0x00001400; | ||||||
|     env->excp_vectors[POWERPC_EXCP_VPUA]     = 0x00001600; |     env->excp_vectors[POWERPC_EXCP_VPUA]     = 0x00001600; | ||||||
|     /* Hardware reset vector */ |     /* Hardware reset vector */ | ||||||
|     env->hreset_vector = 0xFFFFFFFCUL; |     env->hreset_vector = 0x00000100UL; | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Fabien Chouteau
						Fabien Chouteau