freebsd-skq/sys/mips/include
Adrian Chadd 4cfbfdd4b3 Add "better" MIPS24k and MIPS74k barriers.
* the mips74k cores only need EHB (which is 'sll $0, $0, 3')
  here; NOPs don't actually work.

* add EHB as the last NOP for the default barriers/hazards;
  that is "better" behaviour and should work on a wider
  variety of processors.

This allows the existing (icky) TLB code to work, allowing
the AR9344 SoC (mips74k) to actually get through kernel startup.

Tested:

* AR9344 SoC - (mips74k)
* AR9331 SoC - (mips24k)

TODO:

* test on mips4k CPUs, just to be sure.

* document that sll $0, $0, 3 is actually "EHB" and that it
  falls back to being a NOP for pre-mips32r1.

* mips24k has an errata that we currently don't correctly explicitly
  state - ie, that after DERET/ERET, the only valid instruction is
  a NOP.

Reviewed by:	imp@
Approved by:	re@ (gjb)
2013-10-09 00:27:12 +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 Newer versions of gcc define __INT64_C and __UINT64_C, so avoid 2013-09-03 22:04:55 +00:00
_types.h Make the wchar_t type machine dependent. 2012-06-24 04:15:58 +00:00
asm.h Add "better" MIPS24k and MIPS74k barriers. 2013-10-09 00:27:12 +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
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 Revert r253748,253749 2013-07-28 18:44:17 +00:00
cpufunc.h MFP4 223084, 227821: 2013-04-22 19:02:37 +00:00
cpuinfo.h
cpuregs.h Add "better" MIPS24k and MIPS74k barriers. 2013-10-09 00:27:12 +00:00
db_machdep.h Fix backtrace for MIPS64: 2012-01-13 23:31:36 +00:00
elf.h Nearly a complete rewrite of elf.h. 2013-07-09 19:01:38 +00:00
endian.h
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
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
sc_machdep.h Add MD syscons header file for MIPS. 2012-08-25 17:57:50 +00:00
setjmp.h
sf_buf.h Fix build with gcc. Move sf_buf_alloc()/sf_buf_free() declarations 2013-09-06 17:44:13 +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