x86: sysreset: Set up LPC only after relocation

Probing LPC can cause PCI enumeration to take place, which significantly
increases pre-relocation memory usage. Also, LPC is somtimes enabled
directly by SPL.

Adjust the logic to probe the LPC only after relocation. This allows
chromebook_link64 to start up without a much larger
CONFIG_SYS_MALLOC_F_LEN value.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
Simon Glass 2023-05-09 18:13:47 +08:00 committed by Bin Meng
parent 3d0f885a2a
commit 6624392d3b

View file

@ -129,8 +129,13 @@ static int x86_sysreset_probe(struct udevice *dev)
{
struct x86_sysreset_plat *plat = dev_get_plat(dev);
/* Locate the PCH if there is one. It isn't essential */
uclass_first_device(UCLASS_PCH, &plat->pch);
/*
* Locate the PCH if there is one. It isn't essential. Avoid this before
* relocation as we shouldn't need reset then and it needs a lot of
* memory for PCI enumeration.
*/
if (gd->flags & GD_FLG_RELOC)
uclass_first_device(UCLASS_PCH, &plat->pch);
return 0;
}