mb/emulation/qemu: Configure TSEG size
Configure TSEG size by reading CONFIG_SMM_TSEG_SIZE in romstage. The remaining Qemu code can already handle the bigger TSEG region. TEST: Increased TSEG to 8MiB. Change-Id: I1ae5ac93ecca83ae9c319c666aac844bbd5b259f Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/83114 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
parent
f40f5b6dd5
commit
0395b4b5f2
@@ -31,6 +31,11 @@ config CPU_QEMU_X86_TSEG_SMM
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config SMM_TSEG_SIZE
|
||||||
|
hex
|
||||||
|
depends on SMM_TSEG
|
||||||
|
default 0x100000
|
||||||
|
|
||||||
config MAX_CPUS
|
config MAX_CPUS
|
||||||
int
|
int
|
||||||
default 32 if SMM_TSEG
|
default 32 if SMM_TSEG
|
||||||
|
@@ -7,6 +7,8 @@
|
|||||||
|
|
||||||
#include "q35.h"
|
#include "q35.h"
|
||||||
|
|
||||||
|
#define TSEG_SZ_MASK (3 << 1)
|
||||||
|
|
||||||
void mainboard_romstage_entry(void)
|
void mainboard_romstage_entry(void)
|
||||||
{
|
{
|
||||||
i82801ix_early_init();
|
i82801ix_early_init();
|
||||||
@@ -14,5 +16,20 @@ void mainboard_romstage_entry(void)
|
|||||||
if (!CONFIG(BOOTBLOCK_CONSOLE))
|
if (!CONFIG(BOOTBLOCK_CONSOLE))
|
||||||
mainboard_machine_check();
|
mainboard_machine_check();
|
||||||
|
|
||||||
|
/* Configure requested TSEG size */
|
||||||
|
switch (CONFIG_SMM_TSEG_SIZE) {
|
||||||
|
case 1 * MiB:
|
||||||
|
pci_update_config8(HOST_BRIDGE, ESMRAMC, ~TSEG_SZ_MASK, 0 << 1);
|
||||||
|
break;
|
||||||
|
case 2 * MiB:
|
||||||
|
pci_update_config8(HOST_BRIDGE, ESMRAMC, ~TSEG_SZ_MASK, 1 << 1);
|
||||||
|
break;
|
||||||
|
case 8 * MiB:
|
||||||
|
pci_update_config8(HOST_BRIDGE, ESMRAMC, ~TSEG_SZ_MASK, 2 << 1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
printk(BIOS_WARNING, "%s: Unsupported TSEG size: 0x%x\n", __func__, CONFIG_SMM_TSEG_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
cbmem_recovery(0);
|
cbmem_recovery(0);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user