Page MenuHomeFreeBSD

Add ePAPR boot support for PowerPC book-E (MPC85xx) hardware
ClosedPublic

Authored by jhibbits on Aug 13 2016, 3:41 PM.

Details

Summary

u-boot, following the ePAPR specification, puts secondary cores into a
spinloop at boot, rather than leaving them shut off. It then relies on the host
OS to write the correct values to a special spin table, located in coherent
memory (on newer implementations), or noncoherent memory (older
implementations).

This supports both implementations of ePAPR, as well as continuing to support
non-ePAPR booting, by first attempting to use the spintable, and falling back to
expecting non-started CPUs.

Test Plan

Booted on a P5020 board. Tested before and after the changes.
Before the changes, prints the error "SMP: CPU 1 already out of hold-off state!"
and panics shortly thereafter. After the changes, same boot method lets it
complete boot.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

jhibbits retitled this revision from to Add ePAPR boot support for PowerPC book-E (MPC85xx) hardware.
jhibbits updated this object.
jhibbits edited the test plan for this revision. (Show Details)
jhibbits added reviewers: PowerPC, nwhitehorn.
nwhitehorn edited edge metadata.

Looks good! Nice work

This revision is now accepted and ready to land.Aug 13 2016, 3:43 PM
This revision was automatically updated to reflect the committed changes.