soc/intel/{skl,cnl}: Move smm_lock() to cpu.c
Looks like smmrelocate.c is nearly identical across multiple platforms. This is done to be able to deduplicate smmrelocate.c in the follow-ups. Change-Id: I2edc64c9eabc3815b12a2e3cffb03cba2228eea0 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/50933 Reviewed-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
		
				
					committed by
					
						
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							9a1853a98c
						
					
				
				
					commit
					1b8e65dee1
				
			@@ -134,6 +134,18 @@ static void per_cpu_smm_trigger(void)
 | 
				
			|||||||
	smm_relocate();
 | 
						smm_relocate();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void smm_lock(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct device *sa_dev = pcidev_path_on_root(SA_DEVFN_ROOT);
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * LOCK the SMM memory window and enable normal SMM.
 | 
				
			||||||
 | 
						 * After running this function, only a full reset can
 | 
				
			||||||
 | 
						 * make the SMM registers writable again.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						printk(BIOS_DEBUG, "Locking SMM.\n");
 | 
				
			||||||
 | 
						pci_write_config8(sa_dev, SMRAM, D_LCK | G_SMRAME | C_BASE_SEG);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void post_mp_init(void)
 | 
					static void post_mp_init(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/* Set Max Ratio */
 | 
						/* Set Max Ratio */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,6 @@
 | 
				
			|||||||
#include <soc/cpu.h>
 | 
					#include <soc/cpu.h>
 | 
				
			||||||
#include <soc/msr.h>
 | 
					#include <soc/msr.h>
 | 
				
			||||||
#include <soc/pci_devs.h>
 | 
					#include <soc/pci_devs.h>
 | 
				
			||||||
#include <soc/systemagent.h>
 | 
					 | 
				
			||||||
#include "chip.h"
 | 
					#include "chip.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void update_save_state(int cpu, uintptr_t curr_smbase,
 | 
					static void update_save_state(int cpu, uintptr_t curr_smbase,
 | 
				
			||||||
@@ -232,15 +231,3 @@ void smm_relocate(void)
 | 
				
			|||||||
	else if (!boot_cpu())
 | 
						else if (!boot_cpu())
 | 
				
			||||||
		smm_initiate_relocation();
 | 
							smm_initiate_relocation();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
void smm_lock(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct device *sa_dev = pcidev_path_on_root(SA_DEVFN_ROOT);
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * LOCK the SMM memory window and enable normal SMM.
 | 
					 | 
				
			||||||
	 * After running this function, only a full reset can
 | 
					 | 
				
			||||||
	 * make the SMM registers writable again.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	printk(BIOS_DEBUG, "Locking SMM.\n");
 | 
					 | 
				
			||||||
	pci_write_config8(sa_dev, SMRAM, D_LCK | G_SMRAME | C_BASE_SEG);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -138,6 +138,18 @@ static void per_cpu_smm_trigger(void)
 | 
				
			|||||||
	smm_relocate();
 | 
						smm_relocate();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void smm_lock(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct device *sa_dev = pcidev_path_on_root(SA_DEVFN_ROOT);
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * LOCK the SMM memory window and enable normal SMM.
 | 
				
			||||||
 | 
						 * After running this function, only a full reset can
 | 
				
			||||||
 | 
						 * make the SMM registers writable again.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						printk(BIOS_DEBUG, "Locking SMM.\n");
 | 
				
			||||||
 | 
						pci_write_config8(sa_dev, SMRAM, D_LCK | G_SMRAME | C_BASE_SEG);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void vmx_configure(void *unused)
 | 
					static void vmx_configure(void *unused)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	set_feature_ctrl_vmx();
 | 
						set_feature_ctrl_vmx();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,6 @@
 | 
				
			|||||||
#include <soc/cpu.h>
 | 
					#include <soc/cpu.h>
 | 
				
			||||||
#include <soc/msr.h>
 | 
					#include <soc/msr.h>
 | 
				
			||||||
#include <soc/pci_devs.h>
 | 
					#include <soc/pci_devs.h>
 | 
				
			||||||
#include <soc/systemagent.h>
 | 
					 | 
				
			||||||
#include "chip.h"
 | 
					#include "chip.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void update_save_state(int cpu, uintptr_t curr_smbase,
 | 
					static void update_save_state(int cpu, uintptr_t curr_smbase,
 | 
				
			||||||
@@ -232,15 +231,3 @@ void smm_relocate(void)
 | 
				
			|||||||
	else if (!boot_cpu())
 | 
						else if (!boot_cpu())
 | 
				
			||||||
		smm_initiate_relocation();
 | 
							smm_initiate_relocation();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
void smm_lock(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct device *sa_dev = pcidev_path_on_root(SA_DEVFN_ROOT);
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * LOCK the SMM memory window and enable normal SMM.
 | 
					 | 
				
			||||||
	 * After running this function, only a full reset can
 | 
					 | 
				
			||||||
	 * make the SMM registers writable again.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	printk(BIOS_DEBUG, "Locking SMM.\n");
 | 
					 | 
				
			||||||
	pci_write_config8(sa_dev, SMRAM, D_LCK | G_SMRAME | C_BASE_SEG);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user