xemu/hw/misc
Peter Maydell 344f4b1581 hw/misc/tz-mpc.c: Implement the Arm TrustZone Memory Protection Controller
Implement the Arm TrustZone Memory Protection Controller, which sits
in front of RAM and allows secure software to configure it to either
pass through or reject transactions.

We implement the MPC as a QEMU IOMMU, which will direct transactions
either through to the devices and memory behind it or to a special
"never works" AddressSpace if they are blocked.

This initial commit implements the skeleton of the device:
 * it always permits accesses
 * it doesn't implement most of the registers
 * it doesn't implement the interrupt or other behaviour
   for blocked transactions

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Message-id: 20180620132032.28865-2-peter.maydell@linaro.org
2018-06-22 13:28:39 +01:00
..
macio mac_newworld: add PMU device 2018-06-16 16:32:33 +10:00
a9scu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
applesmc.c Convert single line fprintf(.../n) to warn_report() 2017-09-19 14:09:34 +02:00
arm11scu.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
arm_integrator_debug.c hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
arm_l2x0.c hw/misc: QOM'ify arm_l2x0.c 2016-06-14 15:59:14 +01:00
arm_sysctl.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
aspeed_scu.c aspeed_scu: Implement RNG register 2018-06-15 15:23:34 +01:00
aspeed_sdmc.c Fix ast2500 protection register emulation 2018-02-22 15:12:51 +00:00
auxbus.c maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
bcm2835_mbox.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
bcm2835_property.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
bcm2835_rng.c bcm2835_rng: Use qcrypto_random_bytes() rather than rand() 2017-02-28 12:08:14 +00:00
cbus.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
debugexit.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
eccmemctl.c hw/misc: QOM'ify eccmemctl.c 2017-06-02 05:54:43 +01:00
edu.c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
exynos4210_clk.c hw/arm/exynos: Fix Linux kernel division by zero for PLLs 2017-02-28 12:08:20 +00:00
exynos4210_pmu.c hw/misc/exynos4210_pmu: Add support for system poweroff 2017-06-13 14:56:58 +01:00
exynos4210_rng.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
hyperv_testdev.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
imx2_wdt.c i.MX: Add code to emulate i.MX2 watchdog IP block 2018-02-09 10:40:29 +00:00
imx6_ccm.c Remove empty statements 2017-12-18 17:07:02 +03:00
imx6_src.c hw/misc/imx6_src: Don't crash trying to reset missing CPUs 2017-03-14 16:13:22 +00:00
imx7_ccm.c i.MX: Add code to emulate i.MX7 CCM, PMU and ANALOG IP blocks 2018-02-09 10:40:29 +00:00
imx7_gpr.c i.MX: Add implementation of i.MX7 GPR IP block 2018-02-09 10:40:30 +00:00
imx7_snvs.c i.MX: Add code to emulate i.MX7 SNVS IP-block 2018-02-09 10:40:30 +00:00
imx25_ccm.c imx: Use 'const char', not 'char const' 2016-09-22 18:13:09 +01:00
imx31_ccm.c imx: Use 'const char', not 'char const' 2016-09-22 18:13:09 +01:00
imx_ccm.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
iotkit-secctl.c hw/misc/iotkit-secctl: Add remaining simple registers 2018-03-02 11:03:45 +00:00
ivshmem.c ivshmem: Disable irqfd on device reset 2018-02-07 14:09:24 +01:00
Makefile.objs hw/misc/tz-mpc.c: Implement the Arm TrustZone Memory Protection Controller 2018-06-22 13:28:39 +01:00
max111x.c vmstate: error hint for failed equal checks 2017-06-28 11:18:44 +02:00
milkymist-hpdmc.c milkymist: update specification URLs 2016-06-20 18:12:04 +02:00
milkymist-pfpu.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
mips_cmgcr.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
mips_cpc.c hw/mips_cpc: make VP correctly start from the reset vector 2016-07-12 09:10:15 +01:00
mips_itu.c hw/misc/mips_itu: Cleanup includes 2018-06-01 14:15:10 +02:00
mmio_interface.c maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
mos6522.c mos6522: expose mos6522_update_irq() through MOS6522DeviceClass 2018-06-16 16:32:33 +10:00
mps2-fpgaio.c hw/misc/mps2-fpgaio: FPGA control block for MPS2 AN505 2018-03-02 11:03:45 +00:00
mps2-scc.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
msf2-sysreg.c msf2: Microsemi Smartfusion2 System Register block 2017-09-21 16:36:56 +01:00
mst_fpga.c hw/misc: QOM'ify mst_fpga.c 2016-06-14 15:59:14 +01:00
omap_clk.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
omap_gpmc.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
omap_l4.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
omap_sdrc.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
omap_tap.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pc-testdev.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
pca9552.c misc: add pca9552 LED blinker model 2018-06-08 13:15:32 +01:00
pci-testdev.c pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
puv3_pm.c unicore: Clean up includes 2016-01-29 15:07:22 +00:00
pvpanic.c hw/misc/pvpanic: extract public API from i386/pc to "hw/misc/pvpanic.h" 2017-12-18 17:07:02 +03:00
sga.c hw/misc/sga: Use the correct ISA include 2018-06-01 14:15:10 +02:00
slavio_misc.c hw/misc: QOM'ify slavio_misc.c 2017-06-02 05:54:43 +01:00
stm32f2xx_syscfg.c maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
tmp105.c hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
tmp105.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
tmp421.c hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
trace-events hw/misc/tz-mpc.c: Implement the Arm TrustZone Memory Protection Controller 2018-06-22 13:28:39 +01:00
tz-mpc.c hw/misc/tz-mpc.c: Implement the Arm TrustZone Memory Protection Controller 2018-06-22 13:28:39 +01:00
tz-ppc.c hw/misc/tz-ppc: Model TrustZone peripheral protection controller 2018-03-02 11:03:45 +00:00
unimp.c hw/misc/unimp: Move struct to header file 2018-03-02 11:03:45 +00:00
vmcoreinfo.c dump-guest-memory.py: fix "You can't do that without a process to debug" 2018-01-02 14:49:54 +01:00
zynq_slcr.c maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
zynq-xadc.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00