History log of /netbsd/sys/arch/ofppc/include/cpu.h (Results 1 – 24 of 24)
Revision Date Author Comments
# 30c573db 20-Jun-2011 matt <matt@NetBSD.org>

Don't expose port-specific if _MODULE is defined.
Don't _MACHINE_CPU_H_, _<PORT>_CPU_H_


# 97922837 08-Apr-2008 garbled <garbled@NetBSD.org>

SMP support for ofppc. (finally) Much thanks to Matt Thomas for help in
figuring out all the crazy nuances of getting this working, and to
Michael Lorenz for testing/fixing my changes on macppc. T

SMP support for ofppc. (finally) Much thanks to Matt Thomas for help in
figuring out all the crazy nuances of getting this working, and to
Michael Lorenz for testing/fixing my changes on macppc. Tested with a
quad-proc 7044-270.
Summary of changes:

Bumped CPU_MAXNUM to 16 on ofppc.
Added md_* routines to ofppc/cpu.c, to sync the timebase, and awaken the CPUs.
Fixed a bug in the test for a 64bit bridge cpu early in locore.S
Added code to set the interrupt priority for all CPUs with an openpic.
Change rtas to probe before cpus, to allow use of the rtas freeze/thaw
timebase code routines.
Fix CPU_INFO_FOREACH macro to iterate through detected cpus, not CPU_MAXNUM.
Change most uses of ci_cpuid to ci_index, to deal with CPUs that do not allow
writing to SPR_PIR. Don't write SPR_PIR unless the secondary cpu identifies
itself as 0.
Change the hatchstack/interrupt stack allocations to allocate a 8192byte
interrupt stack, and a 4096 byte hatch stack, align them to 16 bytes, and
allocate them no lower than 0x10000. Allocate them separately to prevent the
hatch stack corrupting the interrupt stack later on.
If the CPU is a 64bit cpu, copy SPR_ASR in cpu_hatch()
Set the idle stack to ci->ci_data.cpu_idlelwp->l_addr->u_pcb.pcb_sp.
Add OF_start_cpu(). Add a routine to ofwoea_initppc to spin up secondary
procs early, and place them into a spinloop waiting for the hatch routines
to be ready.
Modify the ipi routines to deal with openpics that reverse byte order on read
from an ipi register. (such as on the 7044)
Change the rtas setup to allocate the rtas physical base address above
the kernel, to avoid mucking up the hatch/interrupt stacks.

show more ...


# 23c45947 07-Feb-2008 garbled <garbled@NetBSD.org>

Add some simple code to print out what the OFW thinks the cache
configuration of the machine is. Amusingly, the OFW on the pegasos is
dead wrong.

Bump CPU_MAXNUM to 8, because, thats probably a rea

Add some simple code to print out what the OFW thinks the cache
configuration of the machine is. Amusingly, the OFW on the pegasos is
dead wrong.

Bump CPU_MAXNUM to 8, because, thats probably a reasonable number for now.

show more ...


# d974db0a 17-Oct-2007 garbled <garbled@NetBSD.org>

Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the v

Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.

show more ...


# ce71996a 01-Sep-2007 pavel <pavel@NetBSD.org>

Put the declaration of cpu_softc and #include of sys/device.h inside
#ifdef _KERNEL to reduce the namespace pollution from proplib which
causes build failure in libexec/ld.elf_so.


# b5e02d56 18-Sep-2002 chs <chs@NetBSD.org>

implement device_register() for ofppc.
use ofcons_cnprobe().


# 624e1693 22-Oct-2001 thorpej <thorpej@NetBSD.org>

Begin the task of splitting up the ofppc port into common code
and platform-specific code, similar to how the Alpha port is
split up.


# 550ffff4 26-Aug-2001 matt <matt@NetBSD.org>

Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports.

Make all powerpc ports use a common Makefile.powerpc (except walnut)
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.

show more ...


# 67afbd62 30-May-2001 mrg <mrg@NetBSD.org>

use _KERNEL_OPT


# bf2dcec4 13-Apr-2001 thorpej <thorpej@NetBSD.org>

Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.


# 0d8e6fae 12-Apr-2001 thorpej <thorpej@NetBSD.org>

splimp -> splvm


# d85a75f5 14-Jan-2001 thorpej <thorpej@NetBSD.org>

Make sure everybody has an splvm() and equate it with splimp() (splimp()
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).


# 3418812d 14-Dec-2000 mycroft <mycroft@NetBSD.org>

Partial syscall cleanup, as per other ports.


# 40460ae8 16-Nov-2000 thorpej <thorpej@NetBSD.org>

Need to provide CACHELINESIZE in _STANDALONE environments, too.


# 4db6fc75 25-Aug-2000 thorpej <thorpej@NetBSD.org>

Make need_resched() take a "struct cpu_info *" argument. This
causes gives a primitive form of processor affinity. Its use in
roundrobin() still needs some work.


# 58e7a695 22-Aug-2000 thorpej <thorpej@NetBSD.org>

Add spllock(). See spl(9) for details.


# 23a7f255 21-Aug-2000 thorpej <thorpej@NetBSD.org>

Make sure we provide splsched() as described in spl(9).


# a7d0570e 26-May-2000 thorpej <thorpej@NetBSD.org>

First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues)

First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues), sched_slpque (sleep queues).
NOTE: These may collectively move into a struct schedstate
at some point in the future.

- Per-CPU state, struct schedstate_percpu: spc_runtime
(time process on this CPU started running), spc_flags
(replaces struct proc's p_schedflags), and
spc_curpriority (usrpri of processes on this CPU).

- Every platform must now supply a struct cpu_info and
a curcpu() macro. Simplify existing cpu_info declarations
where appropriate.

- All references to per-CPU scheduler state now made through
curcpu(). NOTE: this will likely be adjusted in the future
after further changes to struct proc are made.

Tested on i386 and Alpha. Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.

show more ...


# 28fb7c1e 10-Aug-1999 thorpej <thorpej@NetBSD.org>

Define cpu_number() as discussed on tech-smp.


# eb20bbc7 05-Aug-1999 thorpej <thorpej@NetBSD.org>

Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied. Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old spl

Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied. Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX. This platforms still have this bug until their
XXX spl*() functions are fixed.

show more ...


# 54230938 17-Apr-1999 ws <ws@NetBSD.org>

Modify syncicache on PowerPC from an inline to a real function.
Support different cache line sizes with the same object code in userland.
While here, move the function to implementation name space.


# aefc208b 05-Nov-1997 thorpej <thorpej@NetBSD.org>

asm -> __asm__, volatile -> __volatile


# ab473e98 16-Apr-1997 thorpej <thorpej@NetBSD.org>

Definitions for machine_vec interface, from Wolfgang Solfrank.


# 5804d3f6 30-Sep-1996 ws <ws@NetBSD.org>

PowerPC port