[PATCH v5 088/101] x86: apl: Add systemagent driver
Simon Glass
sjg at chromium.org
Fri Dec 6 05:59:01 CET 2019
Hi BIn,
On Sun, 1 Dec 2019 at 23:31, Bin Meng <bmeng.cn at gmail.com> wrote:
>
> Hi Simon,
>
> On Mon, Nov 25, 2019 at 12:12 PM Simon Glass <sjg at chromium.org> wrote:
> >
> > This driver handles communication with the systemagent which needs to be
> > told when U-Boot has completed its init.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> >
> > ---
> >
> > Changes in v5: None
> > Changes in v4:
> > - Add a comment for enable_bios_reset_cpl()
> > - Tidy up header guards
> > - use GENMASK() for VTBAR_MASK
> >
> > Changes in v3: None
> > Changes in v2: None
> >
> > arch/x86/cpu/apollolake/Makefile | 2 +
> > arch/x86/cpu/apollolake/systemagent.c | 19 ++++++++++
> > .../include/asm/arch-apollolake/systemagent.h | 37 +++++++++++++++++++
> > 3 files changed, 58 insertions(+)
> > create mode 100644 arch/x86/cpu/apollolake/systemagent.c
> > create mode 100644 arch/x86/include/asm/arch-apollolake/systemagent.h
> >
> > diff --git a/arch/x86/cpu/apollolake/Makefile b/arch/x86/cpu/apollolake/Makefile
> > index fdda748ea3..3a8c2f66a3 100644
> > --- a/arch/x86/cpu/apollolake/Makefile
> > +++ b/arch/x86/cpu/apollolake/Makefile
> > @@ -2,5 +2,7 @@
> > #
> > # Copyright 2019 Google LLC
> >
> > +obj-$(CONFIG_SPL_BUILD) += systemagent.o
> > +
> > obj-y += pmc.o
> > obj-y += uart.o
> > diff --git a/arch/x86/cpu/apollolake/systemagent.c b/arch/x86/cpu/apollolake/systemagent.c
> > new file mode 100644
> > index 0000000000..3a41b329c3
> > --- /dev/null
> > +++ b/arch/x86/cpu/apollolake/systemagent.c
> > @@ -0,0 +1,19 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (C) 2017 Intel Corporation.
> > + * Take from coreboot project file of the same name
> > + */
> > +
> > +#include <common.h>
> > +#include <asm/intel_regs.h>
> > +#include <asm/io.h>
> > +#include <asm/arch/systemagent.h>
> > +
> > +void enable_bios_reset_cpl(void)
> > +{
> > + /*
> > + * Set bits 0+1 of BIOS_RESET_CPL to indicate to the CPU
> > + * that BIOS has initialised memory and power management
> > + */
>
> Is this absolutely necessary? What happens if we don't do this? Or
> does FSP-S do such for us?
The FSP-S does not do it.
If we leave this as zero then I believe the power-aware interrupts
don't work in Linux, and cpu 0 always gets the interrupt.
Regards,
Simon
More information about the U-Boot
mailing list