freebsd-nq/sys/dev/dpaa
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
..
bman_fdt.c
bman_portals.c
bman.c
bman.h
dpaa.c
fman_fdt.c
fman.c
fman.h
if_dtsec_fdt.c
if_dtsec_im.c
if_dtsec_im.h
if_dtsec_rm.c Use the m_extadd() function instead of deprecated MEXTADD(). 2016-03-02 02:29:35 +00:00
if_dtsec_rm.h
if_dtsec.c
if_dtsec.h
portals_common.c Fix SMP booting for PowerPC Book-E 2016-04-19 01:48:18 +00:00
portals.h
qman_fdt.c
qman_portals.c
qman.c
qman.h