qemu/hw/arm
Cédric Le Goater 924ed16386 ast2400: add SPI flash slaves
Each controller on the ast2400 has a memory range on which it maps its
flash module slaves. Each slave is assigned a memory segment for its
mapping that can be changed at bootime with the Segment Address
Register. This is not supported in the current implementation so we
are using the defaults provided by the specs.

Each SPI flash slave can then be accessed in two modes: Command and
User. When in User mode, accesses to the memory segment of the slaves
are translated in SPI transfers. When in Command mode, the HW
generates the SPI commands automatically and the memory segment is
accessed as if doing a MMIO. Other SPI controllers call that mode
linear addressing mode.

For this purpose, we are adding below each crontoller an array of
structs gathering for each SPI flash module, a segment rank, a
MemoryRegion to handle the memory accesses and the associated SPI
slave device, which should be a m25p80.

Only the User mode is supported for now but we are preparing ground
for the Command mode. The framework is sufficient to support Linux.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-id: 1467138270-32481-8-git-send-email-clg@kaod.org
[PMM: Use g_new0() rather than g_malloc0()]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
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 SPI flash slaves 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_boards.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
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_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
pxa2xx.c pxa2xx: Unconditionally enable USB controller 2016-06-13 13:24:41 +02: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