freebsd-dev/sys/mips/include
Neel Natu 9dd3fbb0f2 Provide access to pcpu structures for SMP kernels.
The basic idea is to use a the same virtual address as a window onto
distinct physical memory locations - one per processor. The physical
address that you access through this mapping depends on which cpu you
are currently executing on. We can now use the same virtual address
on any processor to access its per-cpu area.

The details are:

- The virtual address for 'struct pcpu *pcpup' is obtained by
  stealing 2 pages worth of KVA in pmap_bootstrap().

- The mapping from the constant virtual address to a distinct
  physical page is done in cpu_pcpu_init() through a wired TLB entry.

- A side-effect of this is that we reserve 2 pages worth of memory
  for the pcpu but in reality it needs much less than that. The unused
  memory is now used as the boot stack for the BSP and APs.

Remove SMP-specific bits from locore.S. The plan is to use a separate
mpboot.S for AP bootstrap.

Discussed on: freebsd-mips

Approved by: imp (mentor)
2010-01-30 01:54:29 +00:00
..
_align.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
_bus_octeon.h
_bus.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
_inttypes.h
_limits.h
_stdint.h
_types.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
archtype.h
asm.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
asmacros.h
atomic.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
bootinfo.h
bswap.h
bus_dma.h
bus.h Fix mis-merge from projects/mips... the diff didn't apply correctly 2010-01-10 20:22:05 +00:00
cache_mipsNN.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
cache_r4k.h
cache.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
cdefs.h Bring in cdefs.h from NetBSD to define ABI goo. 2009-07-05 08:14:00 +00:00
clock.h
clockvar.h
cpu.h Provide access to pcpu structures for SMP kernels. 2010-01-30 01:54:29 +00:00
cpufunc.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
cpuinfo.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
cpuregs.h Fix a problem seen when a new process was returning to userland 2010-01-26 02:26:04 +00:00
cputypes.h
db_machdep.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
defs.h
elf.h - Copy symbol-related tables (.symtab and .strtab) to the end of 2010-01-24 02:59:22 +00:00
endian.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
exec.h
float.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
floatingpoint.h
fls64.h With this commit our friend RMI will now compile. I have 2009-10-30 08:53:11 +00:00
fpu.h
frame.h
gdb_machdep.h
hwfunc.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
ieee.h
ieeefp.h
in_cksum.h
intr_machdep.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
iodev.h
kdb.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
limits.h
locore.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
md_var.h - Introduce kernel_kseg0_end variable that marks first address in KSEG0 2010-01-24 03:10:48 +00:00
memdev.h
metadata.h
minidump.h
mips_opcode.h
mp_watchdog.h
mutex.h
param.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
pcb.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
pci_cfgreg.h
pcpu.h Provide access to pcpu structures for SMP kernels. 2010-01-30 01:54:29 +00:00
pmap.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
pmc_mdep.h
ppireg.h
proc.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
profile.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
psl.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
pte.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
ptrace.h
queue.h
reg.h
regdef.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
regnum.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
reloc.h
resource.h
rm7000.h
runq.h
segments.h
setjmp.h
sf_buf.h
sigframe.h
signal.h
smp.h * Completely Remove the option STOP_NMI from the kernel. This option 2009-08-13 17:09:45 +00:00
stdarg.h
sysarch.h Merge r195128 from project/mips to head. 2010-01-09 04:59:57 +00:00
timerreg.h
trap.h Get rid of unused function MipsTLBInvalidException(). 2010-01-20 14:21:28 +00:00
ucontext.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
varargs.h
vm.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vmparam.h