hw/misc: Add a model for the ASPEED System Control Unit
commit1c8a2388aa20029dc75f95c072fb98880e447ffe
authorAndrew Jeffery <andrew@aj.id.au>
Mon, 27 Jun 2016 14:37:33 +0000 (27 15:37 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 27 Jun 2016 14:37:33 +0000 (27 15:37 +0100)
tree93ddc51f79f9c5294332c2ad294edd3abdff1fcf
parent1f5c1cfbaec0792cd2e5daae082e017b3543c2c9
hw/misc: Add a model for the ASPEED System Control Unit

The SCU is a collection of chip-level control registers that manage the
various functions supported by ASPEED SoCs. Typically the bits control
interactions with clocks, external hardware or reset behaviour, and we
can largly take a hands-off approach to reads and writes.

Firmware makes heavy use of the state to determine how to boot, but the
reset values vary from SoC to SoC (eg AST2400 vs AST2500). A qdev
property is exposed so that the integrating SoC model can configure the
silicon revision, which in-turn selects the appropriate reset values.
Further qdev properties are exposed so the board model can configure the
board-dependent hardware strapping.

Almost all provided AST2400 reset values are specified by the datasheet.
The notable exception is SOC_SCRATCH1, where we mark the DRAM as
successfully initialised to avoid unnecessary dark corners in the SoC's
u-boot support.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Message-id: 1466744305-23163-2-git-send-email-andrew@aj.id.au
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: drop unnecessary inttypes.h include]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/misc/Makefile.objs
hw/misc/aspeed_scu.c [new file with mode: 0644]
hw/misc/trace-events
include/hw/misc/aspeed_scu.h [new file with mode: 0644]