Date: Thu, 19 Mar 2009 14:11:03 +0000 (UTC) From: Marius Strobl <marius@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/boot/sparc64/loader main.c src/sys/sparc64/include vmparam.h src/sys/sparc64/sparc64 exception.S mp_exception.S pmap.c support.S swtch.S tlb.c src/sys/sun4v/include vmparam.h Message-ID: <200903191414.n2JEEbtc067124@repoman.freebsd.org>
index | next in thread | raw e-mail
marius 2009-03-19 14:11:03 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_7)
sys/boot/sparc64/loader main.c
sys/sparc64/include vmparam.h
sys/sparc64/sparc64 exception.S mp_exception.S pmap.c
support.S swtch.S tlb.c
sys/sun4v/include vmparam.h
Log:
SVN rev 190051 on 2009-03-19 14:11:03Z by marius
MFC: r182877, r188455, r188477
USIII and beyond CPUs have stricter requirements when it comes
to synchronization needed after stores to internal ASIs in order
to make side-effects visible. This mainly requires the MEMBAR #Sync
after such stores to be replaced with a FLUSH. We use KERNBASE in
the kernel and the newly introduced PROMBASE for the loader as the
addresses to FLUSH as these are guaranteed to not trap. Actually,
the USII synchronization rules also already require a FLUSH in
pretty much all of the cases changed.
We're also hitting an additional USIII synchronization rule which
requires stores to AA_IMMU_SFSR to be immediately followed by a DONE,
FLUSH or RETRY. Doing so triggers a RED state exception though so
leave the MEMBAR #Sync. Linux apparently also has gotten away with
doing the same for quite some time now, apart from the fact that
it's not clear to me why we need to clear the valid bit from the
SFSR in the first place.
Reviewed by: nwhitehorn
Revision Changes Path
1.32.2.5 +4 -3 src/sys/boot/sparc64/loader/main.c
1.18.2.3 +1 -1 src/sys/sparc64/include/vmparam.h
1.75.2.4 +12 -1 src/sys/sparc64/sparc64/exception.S
1.13.2.2 +7 -5 src/sys/sparc64/sparc64/mp_exception.S
1.166.2.7 +2 -2 src/sys/sparc64/sparc64/pmap.c
1.32.2.2 +2 -1 src/sys/sparc64/sparc64/support.S
1.34.2.2 +2 -1 src/sys/sparc64/sparc64/swtch.S
1.8.20.3 +4 -3 src/sys/sparc64/sparc64/tlb.c
1.5.2.2 +1 -1 src/sys/sun4v/include/vmparam.h
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903191414.n2JEEbtc067124>
