qemu/hw/ppc
Gavin Shan ee954280da sPAPR: Implement EEH RTAS calls
The emulation for EEH RTAS requests from guest isn't covered
by QEMU yet and the patch implements them.

The patch defines constants used by EEH RTAS calls and adds
callbacks sPAPRPHBClass::{eeh_set_option, eeh_get_state, eeh_reset,
eeh_configure}, which are going to be used as follows:

  * RTAS calls are received in spapr_pci.c, sanity check is done
    there.
  * RTAS handlers handle what they can. If there is something it
    cannot handle and the corresponding sPAPRPHBClass callback is
    defined, it is called.
  * Those callbacks are only implemented for VFIO now. They do ioctl()
    to the IOMMU container fd to complete the calls. Error codes from
    that ioctl() are transferred back to the guest.

[aik: defined RTAS tokens for EEH RTAS calls]
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-03-09 15:00:08 +01:00
..
Makefile.objs pseries: Move sPAPR RTC code into its own file 2015-03-09 14:59:56 +01:00
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c PPC: Clean up misuse of qdev_init() in kvm-openpic creation 2015-03-09 15:00:01 +01:00
e500.h PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
e500plat.c PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
mac.h block: Rename BlockDriverAIOCB* to BlockAIOCB* 2014-10-20 13:41:27 +02:00
mac_newworld.c PPC: Don't use legacy -usbdevice support for setting up board 2015-02-18 10:53:10 +01:00
mac_oldworld.c hw/usb: simplified usb_enabled 2015-01-07 16:16:29 +01:00
mpc8544_guts.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
mpc8544ds.c PPC: e500 pci host: Add support for ATMUs 2015-01-07 16:16:24 +01:00
ppc.c ppc: do not use get_clock_realtime() 2015-01-07 16:16:26 +01:00
ppc4xx_devs.c SCSI changes that enable sending vendor-specific commands via virtio-scsi. 2014-08-19 13:00:57 +01:00
ppc4xx_pci.c hw/pci/ppc4xx_pci.c: Remove unused pci4xx_cfgaddr_read/write/ops 2014-11-04 23:26:12 +01:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc405_boards.c hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
ppc405_uc.c memory: add parameter errp to memory_region_init_ram 2014-09-09 13:41:43 +02:00
ppc440_bamboo.c hw/core/loader: implement address translation in uimage loader 2014-11-03 00:59:10 +03:00
ppc_booke.c hw/ppc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
ppce500_spin.c ppce500_spin: Initialize struct properly 2014-04-08 11:20:05 +02:00
prep.c hw/usb: simplified usb_enabled 2015-01-07 16:16:29 +01:00
spapr.c spapr: Clean up misuse of qdev_init() in xics-kvm creation 2015-03-09 15:00:02 +01:00
spapr_events.c pseries: Make the PAPR RTC a qdev device 2015-03-09 14:59:58 +01:00
spapr_hcall.c pseries: Switch VGA endian on H_SET_MODE 2015-03-09 15:00:03 +01:00
spapr_iommu.c spapr_vio/spapr_iommu: Move VIO bypass where it belongs 2015-03-09 14:59:52 +01:00
spapr_pci.c sPAPR: Implement EEH RTAS calls 2015-03-09 15:00:08 +01:00
spapr_pci_vfio.c vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00
spapr_rtas.c pseries: Move sPAPR RTC code into its own file 2015-03-09 14:59:56 +01:00
spapr_rtc.c pseries: Export RTC time via QOM 2015-03-09 15:00:00 +01:00
spapr_vio.c spapr_vio: Convert to realize() 2015-03-09 15:00:07 +01:00
virtex_ml507.c hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00