qemu/hw/arm
Cédric Le Goater 7c1c69bca4 ast2400: add SMC controllers (FMC and SPI)
The Aspeed AST2400 soc includes a static memory controller for the BMC
which supports NOR, NAND and SPI flash memory modules. This controller
has two modes : the SMC for the legacy interface which supports only
one module and the FMC for the new interface which supports up to five
modules. The AST2400 also includes a SPI only controller used for the
host firmware, commonly called BIOS on Intel. It can be used in three
mode : a SPI master, SPI slave and SPI pass-through

Below is the initial framework for the SMC controller (FMC mode only)
and the SPI controller: the sysbus object, MMIO for registers
configuration and controls. Each controller has a SPI bus and a
configurable number of CS lines for SPI flash slaves.

The differences between the controllers are small, so they are
abstracted using indirections on the register numbers.

Only SPI flash modules are supported.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-id: 1467138270-32481-7-git-send-email-clg@kaod.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: added one missing error_propagate]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-07-04 13:15:22 +01:00
..
allwinner-a10.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
armv7m.c hw/arm: QOM'ify armv7m.c 2016-05-12 13:40:48 +01:00
ast2400.c ast2400: add SMC controllers (FMC and SPI) 2016-07-04 13:15:22 +01:00
bcm2835_peripherals.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
bcm2836.c hw/arm/bcm2836: Wire up CPU timer interrupts correctly 2016-04-04 17:33:51 +01:00
boot.c ARM: Virt: Set numa-node-id for cpu and memory nodes 2016-05-12 13:22:27 +01:00
collie.c explicitly include qom/cpu.h 2016-05-19 16:42:27 +02:00
cubieboard.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
digic.c hw/char: QOM'ify digic-uart model 2016-06-06 16:59:31 +01:00
digic_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
exynos4_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
exynos4210.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
fsl-imx6.c imx: Use memory_region_init_rom() for ROMs 2016-07-04 13:06:35 +01:00
fsl-imx25.c imx: Use memory_region_init_rom() for ROMs 2016-07-04 13:06:35 +01:00
fsl-imx31.c imx: Use memory_region_init_rom() for ROMs 2016-07-04 13:06:35 +01:00
gumstix.c machine: Use type_init() to register machine classes 2016-03-16 15:34:05 -03:00
highbank.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
imx25_pdk.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
integratorcp.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
kzm.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mainstone.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
Makefile.objs i.MX: Add sabrelite i.MX6 emulation. 2016-05-12 13:22:29 +01:00
musicpal.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
netduino2.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
nseries.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
omap1.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
omap2.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
omap_sx1.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
palm.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
palmetto-bmc.c palmetto-bmc: Configure the SCU's hardware strapping register 2016-06-27 15:37:33 +01:00
pxa2xx.c pxa2xx: Unconditionally enable USB controller 2016-06-13 13:24:41 +02:00
pxa2xx_gpio.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
pxa2xx_pic.c hw/arm: QOM'ify pxa2xx_pic.c 2016-05-12 13:42:08 +01:00
raspi.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
realview.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
sabrelite.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
spitz.c ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00
stellaris.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
stm32f205_soc.c hw/char: QOM'ify stm32f2xx_usart model 2016-06-06 16:59:32 +01:00
strongarm.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
strongarm.h arm: include cpu-qom.h in files that require ARMCPU 2016-05-19 16:42:27 +02:00
sysbus-fdt.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tosa.c ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00
trace-events trace: split out trace events for hw/arm/ directory 2016-06-20 17:22:16 +01:00
versatilepb.c vl: Eliminate usb_enabled() 2016-06-13 13:24:41 +02:00
vexpress.c hw/char: QOM'ify pl011 model 2016-06-06 16:59:31 +01:00
virt-acpi-build.c ACPI: ARM: Present GIC version in MADT table 2016-06-17 15:23:51 +01:00
virt.c hw/arm/virt: mark the PCIe host controller as DMA coherent in the DT 2016-07-04 13:15:22 +01:00
xilinx_zynq.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
xlnx-ep108.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
xlnx-zynqmp.c arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma 2016-06-14 16:01:03 +01:00
z2.c ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00