freebsd-skq/sys/powerpc
Justin Hibbits f60708c9f7 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
..
aim Add VM_MEMATTR_CACHEABLE support for AIM, for parity with Book-E. 2016-03-01 00:50:39 +00:00
booke Fix SMP booting for PowerPC Book-E 2016-04-19 01:48:18 +00:00
conf Add support for the Freescale dTSEC DPAA-based ethernet controller. 2016-02-29 03:38:00 +00:00
cpufreq
fpu Fix build of powerpc FPU emulator after changes in r295132 to restore the 2016-02-04 17:43:56 +00:00
include Fix SMP booting for PowerPC Book-E 2016-04-19 01:48:18 +00:00
mambo
mikrotik
mpc85xx Fix SMP booting for PowerPC Book-E 2016-04-19 01:48:18 +00:00
ofw Add a new PCI bus interface method to alloc the ivars (dinfo) for a device. 2016-04-15 03:42:12 +00:00
powermac Cleanup unnecessary semicolons from the kernel. 2016-04-10 23:07:00 +00:00
powerpc Fix SMP booting for PowerPC Book-E 2016-04-19 01:48:18 +00:00
ps3 Fix the resource_list_print_type() calls to use uintmax_t. 2016-03-22 22:25:08 +00:00
pseries Reduce OFW PCI code duplication - involves ARM, PPC and SPARC64 2016-03-29 15:19:56 +00:00
psim powerpc: for pointers replace 0 with NULL. 2016-04-15 14:25:13 +00:00