sb/intel/ibexpeak/smihandler: Move finalizing to a common location
TODO: There is no reason to do this in SMM. Change-Id: I8bbb2f65bbe674bd1bc4ae8a4086bd1f5e9a79fa Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33139 Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
		
				
					committed by
					
						 Patrick Georgi
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							7c05d2a641
						
					
				
				
					commit
					04326aabcd
				
			| @@ -20,10 +20,7 @@ | ||||
| #include <cpu/x86/smm.h> | ||||
| #include <southbridge/intel/ibexpeak/nvs.h> | ||||
| #include <southbridge/intel/common/pmutil.h> | ||||
| #include <southbridge/intel/ibexpeak/me.h> | ||||
| #include <southbridge/intel/common/finalize.h> | ||||
| #include <northbridge/intel/nehalem/nehalem.h> | ||||
| #include <cpu/intel/model_2065x/model_2065x.h> | ||||
| #include <ec/acpi/ec.h> | ||||
| #include <ec/lenovo/h8/h8.h> | ||||
| #include <delay.h> | ||||
| @@ -135,25 +132,9 @@ void mainboard_smi_gpi(u32 gpi_sts) | ||||
| 		mainboard_smi_handle_ec_sci(); | ||||
| } | ||||
|  | ||||
| static int mainboard_finalized = 0; | ||||
|  | ||||
| int mainboard_smi_apmc(u8 data) | ||||
| { | ||||
| 	switch (data) { | ||||
| 	case APM_CNT_FINALIZE: | ||||
| 		printk(BIOS_DEBUG, "APMC: FINALIZE\n"); | ||||
| 		if (mainboard_finalized) { | ||||
| 			printk(BIOS_DEBUG, "APMC#: Already finalized\n"); | ||||
| 			return 0; | ||||
| 		} | ||||
|  | ||||
| 		intel_me_finalize_smm(); | ||||
| 		intel_pch_finalize_smm(); | ||||
| 		intel_nehalem_finalize_smm(); | ||||
| 		intel_model_2065x_finalize_smm(); | ||||
|  | ||||
| 		mainboard_finalized = 1; | ||||
| 		break; | ||||
| 	case APM_CNT_ACPI_ENABLE: | ||||
| 		/* use 0x1600/0x1604 to prevent races with userspace */ | ||||
| 		ec_set_ports(0x1604, 0x1600); | ||||
|   | ||||
| @@ -18,11 +18,8 @@ | ||||
| #include <cpu/x86/smm.h> | ||||
| #include <device/pci_ops.h> | ||||
| #include <southbridge/intel/ibexpeak/nvs.h> | ||||
| #include <southbridge/intel/ibexpeak/me.h> | ||||
| #include <southbridge/intel/common/finalize.h> | ||||
| #include <southbridge/intel/common/pmutil.h> | ||||
| #include <northbridge/intel/nehalem/nehalem.h> | ||||
| #include <cpu/intel/model_2065x/model_2065x.h> | ||||
| #include <ec/acpi/ec.h> | ||||
|  | ||||
| static void mainboard_smm_init(void) | ||||
| @@ -54,26 +51,10 @@ void mainboard_smi_gpi(u32 gpi_sts) | ||||
| { | ||||
| } | ||||
|  | ||||
| static int mainboard_finalized = 0; | ||||
|  | ||||
| int mainboard_smi_apmc(u8 data) | ||||
| { | ||||
| 	u8 tmp; | ||||
| 	switch (data) { | ||||
| 	case APM_CNT_FINALIZE: | ||||
| 		printk(BIOS_DEBUG, "APMC: FINALIZE\n"); | ||||
| 		if (mainboard_finalized) { | ||||
| 			printk(BIOS_DEBUG, "APMC#: Already finalized\n"); | ||||
| 			return 0; | ||||
| 		} | ||||
|  | ||||
| 		intel_me_finalize_smm(); | ||||
| 		intel_pch_finalize_smm(); | ||||
| 		intel_nehalem_finalize_smm(); | ||||
| 		intel_model_2065x_finalize_smm(); | ||||
|  | ||||
| 		mainboard_finalized = 1; | ||||
| 		break; | ||||
| 	case APM_CNT_ACPI_ENABLE: | ||||
| 		tmp = pci_read_config8(PCI_DEV(0, 0x1f, 0), 0xbb); | ||||
| 		tmp &= ~0x03; | ||||
|   | ||||
| @@ -24,7 +24,10 @@ | ||||
| #include <elog.h> | ||||
| #include <halt.h> | ||||
| #include <pc80/mc146818rtc.h> | ||||
| #include <cpu/intel/model_2065x/model_2065x.h> | ||||
| #include <southbridge/intel/common/finalize.h> | ||||
| #include <southbridge/intel/common/pmbase.h> | ||||
| #include <southbridge/intel/ibexpeak/me.h> | ||||
| #include "pch.h" | ||||
|  | ||||
| #include "nvs.h" | ||||
| @@ -182,4 +185,8 @@ void southbridge_update_gnvs(u8 apm_cnt, int *smm_done) | ||||
|  | ||||
| void southbridge_finalize_all(void) | ||||
| { | ||||
| 	intel_me_finalize_smm(); | ||||
| 	intel_pch_finalize_smm(); | ||||
| 	intel_nehalem_finalize_smm(); | ||||
| 	intel_model_2065x_finalize_smm(); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user