[parisc-linux-cvs] linux grundler

Grant Grundler parisc-linux@lists.parisc-linux.org
Sat, 8 Feb 2003 15:22:42 -0700 (MST)

CVSROOT:	/var/cvs
Module name:	linux
Changes by:	grundler	03/02/08 15:22:42

Modified files:
	.              : Makefile 
	arch/parisc    : Makefile 
	arch/parisc/kernel: cache.c processor.c smp.c 
	include/asm-parisc: io.h spinlock_t.h 

Log message:
2.4.20-pa24 PA20 memory ordering
Kudos to John David Anglin and Carlos O'Donnell for realizing
PA 2.0 is not strongly ordered like PA1.x is.
Read appendix G or PA-RISC 2.0 Architecture (Gerry Kane) for
details on "Memory Ordering Model".

o use ldwc,co and stw,co to enforcing memory transaction ordering.
(Could also use ",o" but ",co" can operate on cached data and
that's all we need for spinlocks) Ie make sure all protected
data is visible to other CPU before releasing spinlocks.

o recently released PA20 errata clarifies that using "ldcw,co"
also relaxes the alignment requirement to the "native size"
(ie 4 bytes for word operations). "ldcw" otherwise needs
to 16 byte aligned data.

o moved disable_sr_hash() from SMP to common code path so all
CPU's (including monarch) have this disabled.

o We don't strictly need ",o" for readl/writel on current machines.
But I don't want to debug problems on N-class/L3000 and similar machines
should we someday get a chance to work on those. Unfortunately,
"as" (binutils) doesn't recognize "ldwa,o". It's been added
upstream but we don't have a debian package with this change.
I've uploaded palinux-20030208.tgz to dsl2 and will try to build
a binutils.deb with this change as well.