This patch series adds a "pseries" machine to qemu, allowing it to emulate IBM pSeries logical partitions. More specifically it implements the interface defined by the "PowerPC Architecture Platform Requirements" document (PAPR, or sPAPR for short).
Along the way we add a bunch of support for more modern ppc CPUs than are currently supported. It also makes some significant cleanups to the translation code for hash page table based ppc MMUs. Please apply. --- Note that I haven't implemented (yet) a min_ram field in the machine structure. There are a number of places where the pseries platform would benefit from more participation of the machine description in command line validation. In want to think a bit more about these before sending some patches. For now I've taken the simpler approach of just adding a meaningful error message to the machine init function if ram_size is too small. Changes since v4 of this series: * Fix build breakages for powerpc targets other than ppc64 full system. * Since the pseries platform requires libfdt, only compile it when configured with --enable-fdt * Give an informative error if invoked with insufficient guest RAM to run the partition firmware. Without this, giving insufficient RAM - such as qemu's default 64M - would lead to the firmware failing cryptically partway through boot. Changes since v3 of this series: * Many, many checkpatch fixups * Integrated feedback from qemu-devel list * Added in-partition SLOF firmware Changes since v2 of this series: * Assorted bugfixes and cleanups. Changes since v1 of this series: * numerous coding style fixups * incorporated most review comments from initial version * moved to a wholly dynamic hypercall registration scheme * assorted other cleanups * many more patches implementing VIO devices