qemu/hw/ppc
Suraj Jitindar Singh 5d62725b2f target/ppc: Implement the VTB for HV access
The virtual timebase register (VTB) is a 64-bit register which
increments at the same rate as the timebase register, present on POWER8
and later processors.

The register is able to be read/written by the hypervisor and read by
the supervisor. All other accesses are illegal.

Currently the VTB is just an alias for the timebase (TB) register.

Implement the VTB so that is can be read/written independent of the TB.
Make use of the existing method for accessing timebase facilities where
by the compensation is stored and used to compute the value on reads/is
updated on writes.

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
[ clg: rebased on current ppc tree ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20191128134700.16091-2-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-12-17 10:39:48 +11:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig spapr/xive: add KVM support 2019-05-29 11:39:45 +10:00
mac_newworld.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
mac_oldworld.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
mac.h ide: Include hw/ide/internal a bit less outside hw/ide/ 2019-08-16 13:31:52 +02:00
Makefile.objs ppc/pnv: Add a PNOR model 2019-12-17 10:39:47 +11:00
mpc8544_guts.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
mpc8544ds.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
pnv_bmc.c ppc/pnv: Create BMC devices at machine init 2019-12-17 10:39:47 +11:00
pnv_core.c ppc/pnv: Introduce a POWER10 PnvChip and a powernv10 machine 2019-12-17 10:39:48 +11:00
pnv_homer.c ppc/pnv: Link "chip" property to PnvHomer::chip pointer 2019-12-17 10:39:47 +11:00
pnv_lpc.c ppc/pnv: add a LPC Controller model for POWER10 2019-12-17 10:39:48 +11:00
pnv_occ.c ppc/pnv: Link "psi" property to PnvOCC::psi pointer 2019-12-17 10:39:47 +11:00
pnv_pnor.c ppc/pnv: Add a PNOR model 2019-12-17 10:39:47 +11:00
pnv_psi.c ppc/pnv: add a PSI bridge model for POWER10 2019-12-17 10:39:48 +11:00
pnv_xscom.c ppc/pnv: Introduce a POWER10 PnvChip and a powernv10 machine 2019-12-17 10:39:48 +11:00
pnv.c ppc/pnv: add a LPC Controller model for POWER10 2019-12-17 10:39:48 +11:00
ppc4xx_devs.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc4xx_pci.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc405_boards.c hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:20:45 +02:00
ppc405_uc.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc440_bamboo.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_pcix.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
ppc440_uc.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc_booke.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
ppc.c target/ppc: Implement the VTB for HV access 2019-12-17 10:39:48 +11:00
ppce500_spin.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
prep_systemio.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
prep.c hw: Move M48T59 device from hw/timer/ to hw/rtc/ subdirectory 2019-10-24 20:20:45 +02:00
rs6000_mc.c ppc: rs6000_mc: drop usage of memory_region_allocate_system_memory() 2019-10-23 23:37:42 -03:00
sam460ex.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
spapr_caps.c ppc: fix memory leak in spapr_caps_add_properties 2019-08-21 17:17:11 +10:00
spapr_cpu_core.c ppc: Add intc_destroy() handlers to SpaprInterruptController/PnvChip 2019-11-18 11:49:11 +01:00
spapr_drc.c ppc: fix memory leak in spapr_dt_drc() 2019-08-21 17:17:11 +10:00
spapr_events.c ppc/spapr_events: fix potential NULL pointer dereference in rtas_event_log_dequeue 2019-11-26 10:12:58 +11:00
spapr_hcall.c spapr: Simplify ovec diff 2019-12-17 10:39:48 +11:00
spapr_iommu.c memory: allow memory_region_register_iommu_notifier() to fail 2019-10-04 18:49:18 +02:00
spapr_irq.c spapr: Pass the maximum number of vCPUs to the KVM interrupt controller 2019-12-17 10:39:48 +11:00
spapr_ovec.c spapr: Simplify ovec diff 2019-12-17 10:39:48 +11:00
spapr_pci_nvlink2.c spapr/pci: Convert types to QEMU coding style 2019-08-29 09:46:07 +10:00
spapr_pci_vfio.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
spapr_pci.c core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
spapr_rng.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
spapr_rtas_ddw.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
spapr_rtas.c spapr: Stop providing RTAS blob 2019-10-04 10:25:23 +10:00
spapr_rtc.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
spapr_tpm_proxy.c spapr-tpm-proxy: Drop misleading check 2019-10-04 10:25:23 +10:00
spapr_vio.c spapr: Replace spapr_vio_qirq() helper with spapr_vio_irq_pulse() helper 2019-10-04 19:08:22 +10:00
spapr.c spapr: Simplify ovec diff 2019-12-17 10:39:48 +11:00
trace-events spapr: Remove unhelpful tracepoints from spapr_irq_free_xics() 2019-10-04 19:08:22 +10:00
virtex_ml507.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00