SMM: rename tseg_fixup to tseg_relocate and export
This function is exported so it can be used in other places that need similar relocation due to TSEG. Change-Id: I68b78ca32d58d1a414965404e38d71977c3da347 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/1310 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
0aa5b0923a
commit
ace7a6aadd
|
@ -376,9 +376,12 @@ void __attribute__((weak)) mainboard_smi_sleep(u8 slp_typ);
|
||||||
|
|
||||||
#if !CONFIG_SMM_TSEG
|
#if !CONFIG_SMM_TSEG
|
||||||
void smi_release_lock(void);
|
void smi_release_lock(void);
|
||||||
|
#define tseg_relocate(ptr)
|
||||||
#else
|
#else
|
||||||
/* Return address of TSEG base */
|
/* Return address of TSEG base */
|
||||||
u32 smi_get_tseg_base(void);
|
u32 smi_get_tseg_base(void);
|
||||||
|
/* Adjust pointer with TSEG base */
|
||||||
|
void tseg_relocate(void **ptr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -60,14 +60,12 @@ u32 smi_get_tseg_base(void)
|
||||||
tseg_base = pcie_read_config32(PCI_DEV(0, 0, 0), TSEG) & ~1;
|
tseg_base = pcie_read_config32(PCI_DEV(0, 0, 0), TSEG) & ~1;
|
||||||
return tseg_base;
|
return tseg_base;
|
||||||
}
|
}
|
||||||
static inline void tseg_fixup(void **ptr)
|
void tseg_relocate(void **ptr)
|
||||||
{
|
{
|
||||||
/* Adjust pointer with TSEG base */
|
/* Adjust pointer with TSEG base */
|
||||||
if (*ptr)
|
if (*ptr)
|
||||||
*ptr = (void *)(((u8*)*ptr) + tseg_base);
|
*ptr = (void *)(((u8*)*ptr) + smi_get_tseg_base());
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
#define tseg_fixup(x) do {} while(0)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -343,7 +341,7 @@ static void southbridge_smi_sleep(unsigned int node, smm_state_save_area_t *stat
|
||||||
slp_typ = (reg32 >> 10) & 7;
|
slp_typ = (reg32 >> 10) & 7;
|
||||||
|
|
||||||
/* Do any mainboard sleep handling */
|
/* Do any mainboard sleep handling */
|
||||||
tseg_fixup((void **)&mainboard_sleep);
|
tseg_relocate((void **)&mainboard_sleep);
|
||||||
if (mainboard_sleep)
|
if (mainboard_sleep)
|
||||||
mainboard_sleep(slp_typ);
|
mainboard_sleep(slp_typ);
|
||||||
|
|
||||||
|
@ -456,7 +454,7 @@ static void southbridge_smi_apmc(unsigned int node, smm_state_save_area_t *state
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
tseg_fixup((void **)&mainboard_apmc);
|
tseg_relocate((void **)&mainboard_apmc);
|
||||||
if (mainboard_apmc)
|
if (mainboard_apmc)
|
||||||
mainboard_apmc(reg8);
|
mainboard_apmc(reg8);
|
||||||
}
|
}
|
||||||
|
@ -496,7 +494,7 @@ static void southbridge_smi_gpi(unsigned int node, smm_state_save_area_t *state_
|
||||||
|
|
||||||
reg16 &= inw(pmbase + ALT_GP_SMI_EN);
|
reg16 &= inw(pmbase + ALT_GP_SMI_EN);
|
||||||
|
|
||||||
tseg_fixup((void **)&mainboard_gpi);
|
tseg_relocate((void **)&mainboard_gpi);
|
||||||
if (mainboard_gpi) {
|
if (mainboard_gpi) {
|
||||||
mainboard_gpi(reg16);
|
mainboard_gpi(reg16);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue