cpu/intel/model_206ax: Lock MSR_PP_CURRENT_CONFIG
Now that those registers are only written once set the lock bit to protect it from runtime changes. TEST: Lenovo X220 still boots. Change-Id: I4c56a3cb322a0e75eb3dd366808068093928e10c Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/78608 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
		
				
					committed by
					
						 Felix Held
						Felix Held
					
				
			
			
				
	
			
			
			
						parent
						
							ea04a53e69
						
					
				
				
					commit
					8685205ad1
				
			| @@ -73,8 +73,10 @@ | ||||
| #define  PKG_POWER_LIMIT_TIME_MASK	0x7f | ||||
|  | ||||
| #define MSR_PP0_CURRENT_CONFIG		0x601 | ||||
| #define  PP0_CURRENT_LIMIT_LOCK		(1U << 31) | ||||
| #define  PP0_CURRENT_LIMIT		(112 << 3) /* 112 A */ | ||||
| #define MSR_PP1_CURRENT_CONFIG		0x602 | ||||
| #define  PP1_CURRENT_LIMIT_LOCK		(1U << 31) | ||||
| #define  PP1_CURRENT_LIMIT_SNB		(35 << 3) /* 35 A */ | ||||
| #define  PP1_CURRENT_LIMIT_IVB		(50 << 3) /* 50 A */ | ||||
| #define MSR_PKG_POWER_SKU_UNIT		0x606 | ||||
|   | ||||
| @@ -206,6 +206,7 @@ static void configure_c_states(void) | ||||
| 		msr = rdmsr(MSR_PP0_CURRENT_CONFIG); | ||||
| 		msr.lo &= ~0x1fff; | ||||
| 		msr.lo |= PP0_CURRENT_LIMIT; | ||||
| 		msr.lo |= PP0_CURRENT_LIMIT_LOCK; | ||||
| 		wrmsr(MSR_PP0_CURRENT_CONFIG, msr); | ||||
|  | ||||
| 		/* Secondary Plane Current Limit */ | ||||
| @@ -215,6 +216,7 @@ static void configure_c_states(void) | ||||
| 			msr.lo |= PP1_CURRENT_LIMIT_IVB; | ||||
| 		else | ||||
| 			msr.lo |= PP1_CURRENT_LIMIT_SNB; | ||||
| 		msr.lo |= PP1_CURRENT_LIMIT_LOCK; | ||||
| 		wrmsr(MSR_PP1_CURRENT_CONFIG, msr); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user