[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