freebsd-skq/sys/powerpc/booke
jhibbits 01ad9aa4bf Fix SMP booting for PowerPC Book-E
Summary:
PowerPC Book-E SMP is currently broken for unknown reasons.  Pull in
Semihalf changes made c2012 for e500mc/e5500, which enables booting SMP.

This eliminates the shared software TLB1 table, replacing it with
tlb1_read_entry() function.

This does not yet support ePAPR SMP booting, and doesn't handle resetting CPUs
already released (ePAPR boot releases APs to a spin loop waiting on a specific
address).  This will be addressed in the near future by using the MPIC to reset
the AP into our own alternate boot address.

This does include a change to the dpaa/dtsec(4) driver, to mark the portals as
CPU-private.

Test Plan:
Tested on Amiga X5000/20 (P5020).  Boots, prints the following
messages:

 Adding CPU 0, pir=0, awake=1
 Waking up CPU 1 (dev=1)
 Adding CPU 1, pir=20, awake=1
 SMP: AP CPU #1 launched

top(1) shows CPU1 active.

Obtained from:	Semihalf
Relnotes:	Yes
Differential Revision: https://reviews.freebsd.org/D5945
2016-04-19 01:48:18 +00:00
..
booke_machdep.c Remove dead code and dead comments, most notably the implemenation of the 2016-01-10 18:00:01 +00:00
locore.S Fix SMP booting for PowerPC Book-E 2016-04-19 01:48:18 +00:00
machdep_e500.c Add platform support for QorIQ SoCs. 2015-12-30 03:43:25 +00:00
machdep_ppc4xx.c Extract vendor specific Book-E pieces into separate files and have a common 2012-05-30 17:34:40 +00:00
mp_cpudep.c Follow up r223485, which made AIM use the ABI thread pointer instead of 2013-11-11 17:37:50 +00:00
platform_bare.c Rearchitect platform memory map parsing to make it less 2013-12-01 19:43:15 +00:00
pmap.c Fix SMP booting for PowerPC Book-E 2016-04-19 01:48:18 +00:00
trap_subr.S Migrate the PTE format for book-e to standardize on the 'indirect PTE' format 2016-02-11 13:15:37 +00:00