History log of /src/common/lib/libc/arch/powerpc/atomic/atomic_op_asm.h |
Revision | | Date | Author | Comments |
1.8 |
| 06-Apr-2022 |
riastradh | Nix trailing whitespace in files of membars, atomics, and lock stubs.
Will be touching many of these files soon for functional changes.
No functional change intended.
|
1.7 |
| 01-Mar-2020 |
rin | Implement workaround for IBM405 Errata 77 (aka CPU_210), where interrupted stwcx. may errantly write data to memory:
https://elinux.org/images/1/1d/Ppc405gp-errata.pdf
This is because stwcx. is split into two pieces in the pipeline.
We need to (1) insert dcbt before every stwcx. instruction, as well as (2) insert sync before every rfi/rfci instruction.
It is unclear which processors are affected, but according to Linux, all 405-based cores up until 405GPR and 405EP are affected:
https://github.com/torvalds/linux/blob/master/arch/powerpc/platforms/40x/Kconfig#L140
For kernel, this workaround can be restricted to affected processors. However, for kernel modules and userland, we have to enable it for all 32bit powerpc archs in order to share common binaries as before.
Proposed on port-powerpc:
http://mail-index.netbsd.org/port-powerpc/2020/02/21/msg003583.html
|
1.6 |
| 07-Mar-2014 |
matt | branches: 1.6.26; 1.6.28; Reduce duplication. Use beqlr to quicken returns
|
1.5 |
| 15-Jan-2011 |
matt | branches: 1.5.6; 1.5.12; Use END(foo) everywhere. Make __cerror hidden. Use non-PLT calls to __cerror. Use assym.h when appropriate. Use addi to adjust stack instead of loading it. Add __RCSIDs Force -D_NOREGNAMES for all .S files. [this is all in preperation for secure plt support]
|
1.4 |
| 28-Apr-2008 |
martin | Remove clause 3 and 4 from TNF licenses
|
1.3 |
| 12-Feb-2008 |
matt | branches: 1.3.4; Use %rN as all new code is supposed to.
|
1.2 |
| 28-Nov-2007 |
ad | branches: 1.2.4; Atomic ops for powerpc. Please review.
|
1.1 |
| 26-Apr-2007 |
thorpej | branches: 1.1.2; file atomic_op_asm.h was initially added on branch thorpej-atomic.
|
1.1.2.1 |
| 26-Apr-2007 |
thorpej | W-I-P atomic ops for powerpc. No memory barrier ops yet.
|
1.2.4.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.2.4.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.2.4.1 |
| 28-Nov-2007 |
matt | file atomic_op_asm.h was added on branch matt-armv6 on 2008-01-09 01:21:01 +0000
|
1.3.4.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.5.12.1 |
| 19-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.5.6.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.6.28.1 |
| 03-Mar-2020 |
martin | Pull up following revision(s) (requested by rin in ticket #755):
sys/arch/evbppc/conf/std.virtex: revision 1.4 sys/arch/powerpc/powerpc/trap_subr.S: revision 1.81 sys/arch/powerpc/ibm4xx/4xx_trap_subr.S: revision 1.8 sys/arch/evbppc/conf/std.walnut: revision 1.9 common/lib/libc/arch/powerpc/atomic/atomic_op_asm.h: revision 1.7 sys/arch/powerpc/include/asm.h: revision 1.49 common/lib/libc/arch/powerpc/atomic/atomic_cas.S: revision 1.9 sys/arch/powerpc/ibm4xx/trap_subr.S: revision 1.28 sys/arch/powerpc/include/lock.h: revision 1.15 sys/arch/evbppc/conf/std.obs266: revision 1.3 common/lib/libc/arch/powerpc/atomic/atomic_swap.S: revision 1.8 sys/arch/powerpc/powerpc/locore_subr.S: revision 1.61 sys/arch/powerpc/powerpc/lock_stubs.S: revision 1.12 sys/arch/evbppc/conf/std.obs200: revision 1.5
Implement workaround for IBM405 Errata 77 (aka CPU_210), where interrupted stwcx. may errantly write data to memory:
https://elinux.org/images/1/1d/Ppc405gp-errata.pdf
This is because stwcx. is split into two pieces in the pipeline.
We need to (1) insert dcbt before every stwcx. instruction, as well as (2) insert sync before every rfi/rfci instruction.
It is unclear which processors are affected, but according to Linux, all 405-based cores up until 405GPR and 405EP are affected:
https://github.com/torvalds/linux/blob/master/arch/powerpc/platforms/40x/Kconfig#L140
For kernel, this workaround can be restricted to affected processors.
However, for kernel modules and userland, we have to enable it for all 32bit powerpc archs in order to share common binaries as before. Proposed on port-powerpc:
http://mail-index.netbsd.org/port-powerpc/2020/02/21/msg003583.html
|
1.6.26.2 |
| 21-Apr-2020 |
martin | Sync with HEAD
|
1.6.26.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|