qemu/include/hw/arm
Peter Delevoryas 55c57023b7 hw/misc/aspeed: Add PECI controller
This introduces a really basic PECI controller that responses to
commands by always setting the response code to success and then raising
an interrupt to indicate the command is done. This helps avoid getting
hit with constant errors if the driver continuously attempts to send a
command and keeps timing out.

The AST2400 and AST2500 only included registers up to 0x5C, not 0xFC.
They supported PECI 1.1, 2.0, and 3.0. The AST2600 and AST1030 support
PECI 4.0, which includes more read/write buffer registers from 0x80 to
0xFC to support 64-byte mode.

This patch doesn't attempt to handle that, or to create a different
version of the controller for the different generations, since it's only
implementing functionality that is common to all generations.

The basic sequence of events is that the firmware will read and write to
various registers and then trigger a command by setting the FIRE bit in
the command register (similar to the I2C controller).

Then the firmware waits for an interrupt from the PECI controller,
expecting the interrupt status register to be filled in with info on
what happened. If the command was transmitted and received successfully,
then response codes from the host CPU will be found in the data buffer
registers.

Signed-off-by: Peter Delevoryas <pdel@fb.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20220630045133.32251-12-me@pjd.dev>
[ clg: s/sysbus_mmio_map/aspeed_mmio_map/ ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-06-30 09:21:14 +02:00
..
allwinner-a10.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
allwinner-h3.h arm: Consistently use "Cortex-Axx", not "Cortex Axx" 2021-06-03 16:43:25 +01:00
armsse-version.h hw/arm/armsse: Introduce SSE subsystem version property 2021-03-08 17:20:01 +00:00
armsse.h hw/arm: Model TCMs in the SSE-300, not the AN547 2021-05-25 16:01:43 +01:00
armv7m.h hw/arm/armv7m: Create input clocks 2021-09-01 11:08:19 +01:00
aspeed.h hw/arm/aspeed: Allow machine to set UART default 2021-09-20 08:50:59 +02:00
aspeed_soc.h hw/misc/aspeed: Add PECI controller 2022-06-30 09:21:14 +02:00
bcm2835_peripherals.h hw/arm: Add basic power management to raspi. 2021-07-02 11:48:36 +01:00
bcm2836.h hw/arm/bcm2836: Introduce the BCM2835 SoC 2020-10-27 11:10:44 +00:00
boot.h hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
digic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
exynos4210.h hw/arm/exynos4210: Drop Exynos4210Irq struct 2022-04-21 11:37:04 +01:00
fdt.h
fsl-imx6.h hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
fsl-imx6ul.h hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
fsl-imx7.h fsl-imx7: Instantiate SAI1/2/3 as unimplemented devices 2021-08-25 10:48:51 +01:00
fsl-imx25.h hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
fsl-imx31.h hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
linux-boot-if.h
msf2-soc.h hw/arm/msf2-soc: Wire up refclk 2021-09-01 11:08:20 +01:00
npcm7xx.h hw/arm: Add Nuvoton SD module to board 2021-11-02 14:14:55 -04:00
nrf51.h
nrf51_soc.h hw/arm/nrf51: Wire up sysclk 2021-09-01 11:08:20 +01:00
omap.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
primecell.h
pxa.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
raspi_platform.h hw/arm/raspi: fix CPRMAN base address 2020-10-27 11:10:44 +00:00
sharpsl.h
smmu-common.h hw/arm/smmuv3: Cache event fault record 2022-04-28 13:57:33 +01:00
smmuv3.h Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
soc_dma.h
stm32f100_soc.h hw/arm/stm32f100: Wire up sysclk and refclk 2021-09-01 11:08:19 +01:00
stm32f205_soc.h hw/arm/stm32f205: Wire up sysclk and refclk 2021-09-01 11:08:19 +01:00
stm32f405_soc.h hw/arm/stm32f405: Wire up sysclk and refclk 2021-09-01 11:08:19 +01:00
virt.h hw/arm/virt: Support TCG GICv4 2022-04-22 14:44:53 +01:00
xlnx-versal.h hw/arm: versal: Connect the CRL 2022-04-21 11:37:03 +01:00
xlnx-zynqmp.h hw/arm/xlnx-zynqmp: Connect 4 TTC timers 2022-04-21 11:37:03 +01:00