#
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
|