Home | History | Annotate | Download | only in pic
History log of /src/sys/arch/powerpc/pic/ipi_openpic.c
RevisionDateAuthorComments
 1.10  05-Mar-2021  rin Convert to intr_establish_xname().
 1.9  06-Jul-2020  rin branches: 1.9.2;
Style and cosmetic changes. No binary changes intended.
 1.8  26-May-2016  macallan treat IPIs like regular interrupts at IPL_HIGH
should fix port-powerpc/44387
tested by chuq
 1.7  01-Feb-2012  matt branches: 1.7.6; 1.7.24;
Use kmem instead of malloc. Remove unneeded <sys/malloc.h> includes.
 1.6  20-Jun-2011  matt branches: 1.6.2; 1.6.6;
<arch/powerpc/... -> <powerpc/...
 1.5  05-Jun-2011  matt Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.
 1.4  28-Apr-2008  martin branches: 1.4.22; 1.4.28; 1.4.32;
Remove clause 3 and 4 from TNF licenses
 1.3  08-Apr-2008  garbled branches: 1.3.2; 1.3.4;
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.
 1.2  17-Oct-2007  garbled branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.12; 1.2.26;
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.
 1.1  10-Oct-2007  garbled branches: 1.1.2;
file ipi_openpic.c was initially added on branch ppcoea-renovation.
 1.1.2.2  10-Oct-2007  macallan - move IPI setup to ipi_openpic
- some cleanup
 1.1.2.1  10-Oct-2007  garbled New ppcoea-MI IPI infrastructure. This is similar to the PIC
infrastructure, but simplified greatly.

Also, convert macppc (the only port currently using IPI's) over to this new
infrastructure. Still some minor work left to do here.
 1.2.26.1  02-Jun-2008  mjf Sync with HEAD.
 1.2.12.2  06-Nov-2007  matt sync with HEAD
 1.2.12.1  17-Oct-2007  matt file ipi_openpic.c was added on branch matt-armv6 on 2007-11-06 23:20:54 +0000
 1.2.8.2  02-Nov-2007  joerg More diff reduce to HEAD due to botched up merging.
 1.2.8.1  17-Oct-2007  joerg file ipi_openpic.c was added on branch jmcneill-pm on 2007-11-02 13:34:46 +0000
 1.2.6.2  27-Oct-2007  yamt sync with head.
 1.2.6.1  17-Oct-2007  yamt file ipi_openpic.c was added on branch yamt-lazymbuf on 2007-10-27 11:27:59 +0000
 1.2.4.2  23-Oct-2007  ad Sync with head.
 1.2.4.1  17-Oct-2007  ad file ipi_openpic.c was added on branch vmlocking on 2007-10-23 20:36:19 +0000
 1.2.2.2  18-Oct-2007  yamt sync with head.
 1.2.2.1  17-Oct-2007  yamt file ipi_openpic.c was added on branch yamt-x86pmap on 2007-10-18 08:32:46 +0000
 1.3.4.1  16-May-2008  yamt sync with head.
 1.3.2.1  18-May-2008  yamt sync with head.
 1.4.32.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.4.28.1  06-Jun-2011  jruoho Sync with HEAD.
 1.4.22.1  12-Jun-2011  rmind sync with head
 1.6.6.1  18-Feb-2012  mrg merge to -current.
 1.6.2.1  17-Apr-2012  yamt sync with head
 1.7.24.1  29-May-2016  skrll Sync with HEAD
 1.7.6.1  03-Dec-2017  jdolecek update from HEAD
 1.9.2.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed