coreboot-kgpe-d16/src/southbridge/intel/common/me.c
Angel Pons 20a609f0f7 sb/intel: Extract set_global_reset function
To avoid duplicating this function in ramstage, factor it out.

Change-Id: I64c59a01ca153770481c28ae404a5dfe8c5382d2
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50362
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Evgeny Zinoviev <me@ch1p.io>
Reviewed-by: Nico Huber <nico.h@gmx.de>
2021-02-07 23:06:06 +00:00

31 lines
617 B
C

/* SPDX-License-Identifier: GPL-2.0-only */
#define __SIMPLE_DEVICE__
#include <device/pci_ops.h>
#include <types.h>
#include "me.h"
#define PCH_LPC_DEV PCI_DEV(0, 0x1f, 0)
#define ETR3 0xac
#define ETR3_CWORWRE (1 << 18)
#define ETR3_CF9GR (1 << 20)
#define ETR3_CF9LOCK (1 << 31)
void set_global_reset(const bool enable)
{
u32 etr3 = pci_read_config32(PCH_LPC_DEV, ETR3);
/* Clear CF9 Without Resume Well Reset Enable */
etr3 &= ~ETR3_CWORWRE;
/* CF9GR indicates a Global Reset */
if (enable)
etr3 |= ETR3_CF9GR;
else
etr3 &= ~ETR3_CF9GR;
pci_write_config32(PCH_LPC_DEV, ETR3, etr3);
}