419a7f8075
We model Arm "Subsystems for Embedded" SoC subsystems using generic code which is split into various sub-devices which are configurable by QOM properties to handle the behaviour differences between the SSE subsystems we implement. Currently the only sub-device which needs to change is the IOTKIT_SYSCTL device, and we do this with a mix of properties that directly specify divergent behaviours (eg CPUWAIT_RST) and passing it the SYS_VERSION register value as a way for it to distinguish IoTKit from SSE-200. The "pass SYS_VERSION" approach is already a bit hacky, since the IOTKIT_SYSCTL device has to know that the different part of the register value happens to be bits [31:28]. For SSE-300 this register is renamed SOC_IDENTITY and has a different format entirely, all of whose fields can be configured by the SoC integrator when they integrate the SSE into their SoC, and so "pass SYS_VERSION" breaks down completely. Switch to using a simple integer property representing an internal-to-QEMU enumeration of the SSE flavour. For the moment we only need this in IOTKIT_SYSCTL, but as we add SSE-300 support a few of the other devices will also need to know. We define and permit a value for the SSE-300 so we can start using it in subsequent commits which add SSE-300 support. The now-redundant is_sse200 flag in IoTKitSysCtl will be removed in the following commit. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210219144617.4782-6-peter.maydell@linaro.org |
||
---|---|---|
.. | ||
allwinner-a10.h | ||
allwinner-h3.h | ||
armsse-version.h | ||
armsse.h | ||
armv7m.h | ||
aspeed_soc.h | ||
aspeed.h | ||
bcm2835_peripherals.h | ||
bcm2836.h | ||
boot.h | ||
digic.h | ||
exynos4210.h | ||
fdt.h | ||
fsl-imx6.h | ||
fsl-imx6ul.h | ||
fsl-imx7.h | ||
fsl-imx25.h | ||
fsl-imx31.h | ||
linux-boot-if.h | ||
msf2-soc.h | ||
npcm7xx.h | ||
nrf51_soc.h | ||
nrf51.h | ||
omap.h | ||
primecell.h | ||
pxa.h | ||
raspi_platform.h | ||
sharpsl.h | ||
smmu-common.h | ||
smmuv3.h | ||
soc_dma.h | ||
stm32f205_soc.h | ||
stm32f405_soc.h | ||
sysbus-fdt.h | ||
virt.h | ||
xlnx-versal.h | ||
xlnx-zynqmp.h |