freebsd-skq/sys/mips/include
Warner Losh 8d77cd5069 Remove all the NOPs after SYNC. They aren't needed.
They originated in the original Octeon port. They weren't present, as
far as I can tell, on the projects/mips branch until after this
point. They were in the original Octeon port in code picked up from
the vendor, who I've been able to find out trolling old email put them
there to get around an SMP problem that most likely was fixed in other
ways.

NetBSD and Linux don't have these, except for some specific uses of
SYNC on the alchemy parts (which we don't support, but even if we did
it is only a specific case and would be specifically coded
anyway). This is true of the current Linux code, as well as one old
version I polled.

I looked back at the old R12000, R8000, R6000, R4000, R4400 errata
that I have, and could find no mention of SYNC needing NOPs for
silicon bugs (although plenty of other cases where NOPs and other
contortions were needed).

An Google search turned up no old mailing list discussions on this on
Linux, NetBSD or FreeBSD (except the disussion that kicked off these
studies).

I've test booted this on my Octeon Plus eval board and survived a
buildworld. Adrian Chadd reports that this patch has no ill effects on
the Ahteros platforms he tested it on.

I conclude it is safe to just remove the NOPs. But added
__MIPS_PLATFORM_SYNC_NOPS as a failsafe in case we find some platform
where these are, in fact, required.

Reviewed by:	adrian@
2013-07-07 16:12:22 +00:00
..
_align.h
_bus.h o) Use ABI, not ISA_* options, to determine whether to compile bits if libkern 2012-03-12 21:25:32 +00:00
_inttypes.h Replace __LP64__ with __mips_n64. This partly reverts r217147. 2011-02-04 13:09:46 +00:00
_limits.h Replace __LP64__ with __mips_n64. This partly reverts r217147. 2011-02-04 13:09:46 +00:00
_stdint.h Make the wchar_t type machine dependent. 2012-06-24 04:15:58 +00:00
_types.h Make the wchar_t type machine dependent. 2012-06-24 04:15:58 +00:00
asm.h Don't include asm.h in non-asm files. 2013-05-01 06:57:46 +00:00
atomic.h Remove all the NOPs after SYNC. They aren't needed. 2013-07-07 16:12:22 +00:00
bootinfo.h
bus_dma.h
bus.h Merge Perforce changeset 219925 to head: 2013-01-12 15:58:20 +00:00
cache_mipsNN.h Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
cache_r4k.h
cache.h Remove more unused code and declarations, and add dire warnings to the 64-bit 2012-03-12 08:13:04 +00:00
cdefs.h
clock.h
counter.h Fix issues with zeroing and fetching the counters, on x86 and ppc64. 2013-07-01 02:48:27 +00:00
cpu.h Get rid of duplicated versions of the KSU bits. 2012-03-06 23:08:02 +00:00
cpufunc.h MFP4 223084, 227821: 2013-04-22 19:02:37 +00:00
cpuinfo.h
cpuregs.h Move MIPS_MAX_TLB_ENTRIES definition from cpuregs.h to tlb.c 2013-04-12 17:22:12 +00:00
db_machdep.h Fix backtrace for MIPS64: 2012-01-13 23:31:36 +00:00
elf.h Reserve AT_TIMEKEEP auxv entry for providing usermode the pointer to 2012-06-22 06:38:31 +00:00
endian.h Add parentheses around the argument 'x' used in the __bswapXX(x) macros. Revert 2010-08-11 02:28:39 +00:00
exec.h
fdt.h Merge Perforce changeset 219925 to head: 2013-01-12 15:58:20 +00:00
float.h Add C11 macros describing subnormal numbers to float.h. 2012-01-23 06:36:41 +00:00
floatingpoint.h
fls64.h
fpu.h
frame.h Update trapframe to be consistent with the changes made to regnum.h. This 2013-04-23 09:38:18 +00:00
gdb_machdep.h
hwfunc.h Remove platform APIs which are not used by any code and which had only stub 2012-03-12 07:34:15 +00:00
ieee.h
ieeefp.h People porting FreeBSD to new architectures ought not have to 2011-10-21 06:41:46 +00:00
in_cksum.h MFp4 bz_ipv6_fast: 2012-05-24 22:00:48 +00:00
intr_machdep.h Remove trailing white-space. 2011-12-30 03:54:22 +00:00
kdb.h
limits.h
locore.h At the risk of reducing source compatibility with old NetBSD and Sprite: 2012-03-06 19:01:32 +00:00
md_var.h Remove more unused code and declarations, and add dire warnings to the 64-bit 2012-03-12 08:13:04 +00:00
memdev.h Add reader/writer lock around mem_range_attr_get() and mem_range_attr_set(). 2011-01-17 22:58:28 +00:00
metadata.h Merge Perforce change @219948 to head: 2013-01-12 13:20:21 +00:00
minidump.h
mips_opcode.h - Emulate RDHWR instruction for TLS support 2012-02-09 22:17:13 +00:00
octeon_cop2.h - Add better COP2 (crypto coprocessor) context handler for Octeon. Keep 2012-01-06 01:23:26 +00:00
ofw_machdep.h FDT support for MIPS. 2011-10-18 07:29:21 +00:00
param.h Rename VM_NDOMAIN into MAXMEMDOM and move it into machine/param.h in 2013-05-07 22:46:24 +00:00
pcb.h Make it possible to include this file in assembler .S sources. 2013-04-25 06:29:23 +00:00
pcpu.h Merge from projects/counters: 2013-04-08 19:19:10 +00:00
pmap.h The function pmap_alloc_direct_page() unconditionally zeroes the returned 2012-11-14 17:33:00 +00:00
pmc_mdep.h Add software PMC support. 2012-03-28 20:58:30 +00:00
proc.h Remove more unused code and declarations, and add dire warnings to the 64-bit 2012-03-12 08:13:04 +00:00
profile.h Update MIPS _stdint.h for 64 bit. Initial 64 bit changes for profile.h. 2010-07-29 14:04:29 +00:00
pte.h Introduce a new software PTE flag that indicates whether the mapping is 2012-09-01 03:46:28 +00:00
ptrace.h
reg.h o) Add COMPAT_FREEBSD32 support for MIPS kernels using the n64 ABI with userlands 2012-03-03 08:19:18 +00:00
regdef.h Don't include asm.h in non-asm files. 2013-05-01 06:57:46 +00:00
regnum.h Use the offsets from pcb.h rather than regnum.h to store the registers 2013-04-25 17:23:54 +00:00
reloc.h
resource.h
runq.h Fix RQB_FFS for 64 bit, we need to use ffsl() for 64bit. 2010-07-29 13:52:46 +00:00
sc_machdep.h Add MD syscons header file for MIPS. 2012-08-25 17:57:50 +00:00
setjmp.h
sf_buf.h Implement sf_buf using direct map (XKPHYS) in MIPS n64. 2011-01-27 14:49:22 +00:00
sigframe.h o) Add COMPAT_FREEBSD32 support for MIPS kernels using the n64 ABI with userlands 2012-03-03 08:19:18 +00:00
signal.h
smp.h Add the cpuset_t conversion for mips. 2011-05-13 16:42:05 +00:00
stdarg.h
sysarch.h
tlb.h Introduce a new TLB invalidation function for efficiently invalidating 2012-10-02 07:14:22 +00:00
tls.h When emulating rdhwr for TLS, use the 32-bit offset under COMPAT_FREEBSD32. 2012-03-06 07:47:28 +00:00
trap.h Remove platform APIs which are not used by any code and which had only stub 2012-03-12 07:34:15 +00:00
ucontext.h Fix two and a half oversights in COMPAT_FREEBSD32 related to contexts and 2012-03-06 07:50:45 +00:00
varargs.h
vdso.h Implement mechanism to export some kernel timekeeping data to 2012-06-22 07:06:40 +00:00
vm.h Use VM_MEMATTR_UNCACHEABLE for the constant for UC memory rather than 2012-03-29 16:48:36 +00:00
vmparam.h Rename VM_NDOMAIN into MAXMEMDOM and move it into machine/param.h in 2013-05-07 22:46:24 +00:00