The problem, at this point, is that a change this broad must also be
tested across all platforms to make sure it's not breaking.

This looks like it was done for a hardware problem. We had a lot of
x86 implementations in tree at that time, and they had lots of bugs.

On Mon, Oct 4, 2021 at 8:11 AM Julian Stecklina
<julian.steckl...@cyberus-technology.de> wrote:
>
> On Mon, 2021-10-04 at 07:32 -0700, ron minnich wrote:
> > that was pre-git but is there any useful comment in git anyway? I only
> > have the vaguest memory of why it went in.
>
> It was introduced in c84c1906b7 and fcd5ace00b3 without explanation. I
> particularly don't understand the lapic_write_around and lapic_read_around
> functions that pop up. From my perspective, none of this is needed and you can
> just use the usual lapic_read and lapic_write functions.
>
> Julian
>
> >
> > On Mon, Oct 4, 2021 at 7:14 AM Julian Stecklina
> > <julian.steckl...@cyberus-technology.de> wrote:
> > >
> > > Hello,
> > >
> > > I was looking at the Local APIC code in coreboot and was wondering about
> > > `lapic_write_atomic` in src/include/cpu/x86/lapic.h. This uses an atomic
> > > XCHG to
> > > write to Local APIC registers. I would like to understand why this would 
> > > be
> > > necessary, because none of the OSes I've seen or worked on do anything
> > > similar.
> > > ALso the Intel SDM discourages acceses that are not plain loads/stores.
> > >
> > > In the coreboot code, this function seems to exist for a really long time.
> > > I've
> > > found this from 2004:
> > >
> > > #ifdef CONFIG_X86_GOOD_APIC
> > > # define FORCE_READ_AROUND_WRITE 0
> > > # define lapic_read_around(x) lapic_read(x)
> > > # define lapic_write_around(x,y) lapic_write((x),(y))
> > > #else
> > > # define FORCE_READ_AROUND_WRITE 1
> > > # define lapic_read_around(x) lapic_read(x)
> > > # define lapic_write_around(x,y) lapic_write_atomic((x),(y))
> > > #endif
> > >
> > > This seems to indicate that using atomic writes was a workaround of some
> > > kind.
> > > Does anyone know more?
> > >
> > > Thanks!
> > > Julian
>
>
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to