qemu/hw/ppc
Nicholas Piggin b9a0f1194a hw/ppc: Round up the decrementer interval when converting to ns
The rule of timers is typically that they should never expire before the
timeout, but some time afterward. Rounding timer intervals up when doing
conversion is the right thing to do.

Under most circumstances it is impossible observe the decrementer
interrupt before the dec register has triggered. However with icount
timing, problems can arise. For example setting DEC to 0 can schedule
the timer for now, causing it to fire before any more instructions
have been executed and DEC is still 0.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
(cherry picked from commit eab0888418)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2023-09-25 23:43:49 +03:00
..
e500-ccsr.h
e500.c hw/ppc/e500: fix broken snapshot replay 2023-09-11 10:53:50 +03:00
e500.h hw/ppc/e500: Remove if statement which is now always true 2022-10-17 16:15:09 -03:00
e500plat.c hw/ppc/e500: Remove if statement which is now always true 2022-10-17 16:15:09 -03:00
fdt.c
fw_cfg.c
Kconfig MIPS patches queue 2022-10-31 06:36:15 -04:00
mac_newworld.c mac_newworld: Turn CORE99_VIA_CONFIG defines into an enum 2022-10-31 18:48:23 +00:00
mac_oldworld.c mac_{old|new}world: Code style fix adding missing braces to if-s 2022-10-31 18:48:23 +00:00
meson.build ppc440_uc.c: Move DDR2 SDRAM controller model to ppc4xx_sdram.c 2022-10-28 13:15:22 -03:00
mpc8544_guts.c
mpc8544ds.c hw/ppc/e500: Remove if statement which is now always true 2022-10-17 16:15:09 -03:00
pef.c
pegasos2.c hw/isa/vt82c686: Create rtc-time alias in boards instead 2022-10-31 11:32:07 +01:00
pnv_bmc.c
pnv_core.c target/ppc: introduce ppc_maybe_interrupt 2022-10-28 13:15:22 -03:00
pnv_homer.c
pnv_lpc.c pnv_lpc: disable reentrancy detection for lpc-hc 2023-09-11 10:53:50 +03:00
pnv_occ.c
pnv_pnor.c
pnv_psi.c
pnv_sbe.c
pnv_xscom.c
pnv.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
ppc4xx_devs.c ppc4xx_sdram: Move ppc4xx_sdram_banks() to ppc4xx_sdram.c 2022-10-28 13:15:23 -03:00
ppc4xx_pci.c
ppc4xx_sdram.c ppc4xx_sdram: Add errp parameter to ppc4xx_sdram_banks() 2022-10-28 13:15:23 -03:00
ppc405_boards.c ppc4xx_sdram: Rename functions to prevent name clashes 2022-10-17 16:15:09 -03:00
ppc405_uc.c ppc4xx_sdram: QOM'ify 2022-10-17 16:15:09 -03:00
ppc405.h ppc4xx_sdram: QOM'ify 2022-10-17 16:15:09 -03:00
ppc440_bamboo.c hw/ppc: set machine->fdt in bamboo_load_device_tree() 2022-10-17 16:15:10 -03:00
ppc440_pcix.c
ppc440_uc.c ppc440_uc.c: Move DDR2 SDRAM controller model to ppc4xx_sdram.c 2022-10-28 13:15:22 -03:00
ppc440.h ppc440_sdram: QOM'ify 2022-10-17 16:15:09 -03:00
ppc_booke.c
ppc.c hw/ppc: Round up the decrementer interval when converting to ns 2023-09-25 23:43:49 +03:00
ppce500_spin.c
prep_systemio.c
prep.c hw/ppc/prep: Fix wiring of PIC -> CPU interrupt 2023-05-31 09:43:56 +03:00
rs6000_mc.c
sam460ex.c hw/ppc: set machine->fdt in sam460ex_load_device_tree() 2022-10-17 16:15:10 -03:00
spapr_caps.c
spapr_cpu_core.c
spapr_drc.c
spapr_events.c
spapr_hcall.c target/ppc: introduce ppc_maybe_interrupt 2022-10-28 13:15:22 -03:00
spapr_iommu.c
spapr_irq.c
spapr_numa.c
spapr_nvdimm.c
spapr_ovec.c
spapr_pci_nvlink2.c
spapr_pci_vfio.c
spapr_pci.c hw/ppc/spapr_pci.c: Use device_cold_reset() rather than device_legacy_reset() 2022-10-17 16:15:10 -03:00
spapr_rng.c
spapr_rtas_ddw.c
spapr_rtas.c target/ppc: introduce ppc_maybe_interrupt 2022-10-28 13:15:22 -03:00
spapr_rtc.c
spapr_softmmu.c
spapr_tpm_proxy.c
spapr_vio.c
spapr_vof.c
spapr.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
trace-events ppc4xx_sdram: Generalise bank setup 2022-10-28 13:15:23 -03:00
trace.h
virtex_ml507.c hw/ppc: set machine->fdt in xilinx_load_device_tree() 2022-10-17 16:15:10 -03:00
vof.c ppc/vof: Fix missed fields in VOF cleanup 2023-09-11 10:53:50 +03:00