mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20170907' into staging
target-arm: * cleanups converting to DEFINE_PROP_LINK * allwinner-a10: mark as not user-creatable * initial patches working towards ARMv8M support * implement generating aborts on memory transaction failures * make BXJ behave correctly (ie not UNDEF) on ARMv6-and-later # gpg: Signature made Thu 07 Sep 2017 14:26:07 BST # gpg: using RSA key 0x3C2525ED14360CDE # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" # gpg: aka "Peter Maydell <pmaydell@gmail.com>" # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * remotes/pmaydell/tags/pull-target-arm-20170907: (31 commits) target/arm: Add Jazelle feature target/arm: Implement new do_transaction_failed hook hw/arm: Set ignore_memory_transaction_failures for most ARM boards boards.h: Define new flag ignore_memory_transaction_failures target/arm: Implement BXNS, and banked stack pointers target/arm: Move regime_is_secure() to target/arm/internals.h target/arm: Make CFSR register banked for v8M target/arm: Make MMFAR banked for v8M target/arm: Make CCR register banked for v8M target/arm: Make MPU_CTRL register banked for v8M target/arm: Make MPU_RNR register banked for v8M target/arm: Make MPU_RBAR, MPU_RLAR banked for v8M target/arm: Make MPU_MAIR0, MPU_MAIR1 registers banked for v8M target/arm: Make VTOR register banked for v8M nvic: Add NS alias SCS region target/arm: Make CONTROL register banked for v8M target/arm: Make FAULTMASK register banked for v8M target/arm: Make PRIMASK register banked for v8M target/arm: Make BASEPRI register banked for v8M target/arm: Add MMU indexes for secure v8M ... # Conflicts: # target/arm/translate.c
This commit is contained in:
@@ -118,6 +118,8 @@ static void aw_a10_class_init(ObjectClass *oc, void *data)
|
||||
DeviceClass *dc = DEVICE_CLASS(oc);
|
||||
|
||||
dc->realize = aw_a10_realize;
|
||||
/* Reason: Uses serial_hds in realize and nd_table in instance_init */
|
||||
dc->user_creatable = false;
|
||||
}
|
||||
|
||||
static const TypeInfo aw_a10_type_info = {
|
||||
|
||||
+4
-12
@@ -97,12 +97,6 @@ static void bitband_init(Object *obj)
|
||||
BitBandState *s = BITBAND(obj);
|
||||
SysBusDevice *dev = SYS_BUS_DEVICE(obj);
|
||||
|
||||
object_property_add_link(obj, "source-memory",
|
||||
TYPE_MEMORY_REGION,
|
||||
(Object **)&s->source_memory,
|
||||
qdev_prop_allow_set_link_before_realize,
|
||||
OBJ_PROP_LINK_UNREF_ON_RELEASE,
|
||||
&error_abort);
|
||||
memory_region_init_io(&s->iomem, obj, &bitband_ops, s,
|
||||
"bitband", 0x02000000);
|
||||
sysbus_init_mmio(dev, &s->iomem);
|
||||
@@ -138,12 +132,6 @@ static void armv7m_instance_init(Object *obj)
|
||||
|
||||
/* Can't init the cpu here, we don't yet know which model to use */
|
||||
|
||||
object_property_add_link(obj, "memory",
|
||||
TYPE_MEMORY_REGION,
|
||||
(Object **)&s->board_memory,
|
||||
qdev_prop_allow_set_link_before_realize,
|
||||
OBJ_PROP_LINK_UNREF_ON_RELEASE,
|
||||
&error_abort);
|
||||
memory_region_init(&s->container, obj, "armv7m-container", UINT64_MAX);
|
||||
|
||||
object_initialize(&s->nvic, sizeof(s->nvic), TYPE_NVIC);
|
||||
@@ -254,6 +242,8 @@ static void armv7m_realize(DeviceState *dev, Error **errp)
|
||||
|
||||
static Property armv7m_properties[] = {
|
||||
DEFINE_PROP_STRING("cpu-model", ARMv7MState, cpu_model),
|
||||
DEFINE_PROP_LINK("memory", ARMv7MState, board_memory, TYPE_MEMORY_REGION,
|
||||
MemoryRegion *),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
@@ -349,6 +339,8 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size)
|
||||
|
||||
static Property bitband_properties[] = {
|
||||
DEFINE_PROP_UINT32("base", BitBandState, base, 0),
|
||||
DEFINE_PROP_LINK("source-memory", BitBandState, source_memory,
|
||||
TYPE_MEMORY_REGION, MemoryRegion *),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
|
||||
@@ -270,6 +270,7 @@ static void palmetto_bmc_class_init(ObjectClass *oc, void *data)
|
||||
mc->no_floppy = 1;
|
||||
mc->no_cdrom = 1;
|
||||
mc->no_parallel = 1;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo palmetto_bmc_type = {
|
||||
@@ -302,6 +303,7 @@ static void ast2500_evb_class_init(ObjectClass *oc, void *data)
|
||||
mc->no_floppy = 1;
|
||||
mc->no_cdrom = 1;
|
||||
mc->no_parallel = 1;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo ast2500_evb_type = {
|
||||
@@ -326,6 +328,7 @@ static void romulus_bmc_class_init(ObjectClass *oc, void *data)
|
||||
mc->no_floppy = 1;
|
||||
mc->no_cdrom = 1;
|
||||
mc->no_parallel = 1;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo romulus_bmc_type = {
|
||||
|
||||
@@ -64,6 +64,7 @@ static void collie_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "Sharp SL-5500 (Collie) PDA (SA-1110)";
|
||||
mc->init = collie_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("collie", collie_machine_init)
|
||||
|
||||
@@ -86,6 +86,7 @@ static void cubieboard_machine_init(MachineClass *mc)
|
||||
mc->init = cubieboard_init;
|
||||
mc->block_default_type = IF_IDE;
|
||||
mc->units_per_default_bus = 1;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("cubieboard", cubieboard_machine_init)
|
||||
|
||||
@@ -155,6 +155,7 @@ static void canon_a1100_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "Canon PowerShot A1100 IS";
|
||||
mc->init = &canon_a1100_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("canon-a1100", canon_a1100_machine_init)
|
||||
|
||||
@@ -189,6 +189,7 @@ static void nuri_class_init(ObjectClass *oc, void *data)
|
||||
mc->desc = "Samsung NURI board (Exynos4210)";
|
||||
mc->init = nuri_init;
|
||||
mc->max_cpus = EXYNOS4210_NCPUS;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo nuri_type = {
|
||||
@@ -204,6 +205,7 @@ static void smdkc210_class_init(ObjectClass *oc, void *data)
|
||||
mc->desc = "Samsung SMDKC210 board (Exynos4210)";
|
||||
mc->init = smdkc210_init;
|
||||
mc->max_cpus = EXYNOS4210_NCPUS;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo smdkc210_type = {
|
||||
|
||||
@@ -128,6 +128,7 @@ static void connex_class_init(ObjectClass *oc, void *data)
|
||||
|
||||
mc->desc = "Gumstix Connex (PXA255)";
|
||||
mc->init = connex_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo connex_type = {
|
||||
@@ -142,6 +143,7 @@ static void verdex_class_init(ObjectClass *oc, void *data)
|
||||
|
||||
mc->desc = "Gumstix Verdex (PXA270)";
|
||||
mc->init = verdex_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo verdex_type = {
|
||||
|
||||
@@ -413,6 +413,7 @@ static void highbank_class_init(ObjectClass *oc, void *data)
|
||||
mc->block_default_type = IF_IDE;
|
||||
mc->units_per_default_bus = 1;
|
||||
mc->max_cpus = 4;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo highbank_type = {
|
||||
@@ -430,6 +431,7 @@ static void midway_class_init(ObjectClass *oc, void *data)
|
||||
mc->block_default_type = IF_IDE;
|
||||
mc->units_per_default_bus = 1;
|
||||
mc->max_cpus = 4;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo midway_type = {
|
||||
|
||||
@@ -148,6 +148,7 @@ static void imx25_pdk_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "ARM i.MX25 PDK board (ARM926)";
|
||||
mc->init = imx25_pdk_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("imx25-pdk", imx25_pdk_machine_init)
|
||||
|
||||
@@ -681,6 +681,7 @@ static void integratorcp_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "ARM Integrator/CP (ARM926EJ-S)";
|
||||
mc->init = integratorcp_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("integratorcp", integratorcp_machine_init)
|
||||
|
||||
@@ -142,6 +142,7 @@ static void kzm_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "ARM KZM Emulation Baseboard (ARM1136)";
|
||||
mc->init = kzm_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("kzm", kzm_machine_init)
|
||||
|
||||
@@ -196,6 +196,7 @@ static void mainstone2_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "Mainstone II (PXA27x)";
|
||||
mc->init = mainstone_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("mainstone", mainstone2_machine_init)
|
||||
|
||||
@@ -1718,6 +1718,7 @@ static void musicpal_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "Marvell 88w8618 / MusicPal (ARM926EJ-S)";
|
||||
mc->init = musicpal_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("musicpal", musicpal_machine_init)
|
||||
|
||||
@@ -45,6 +45,7 @@ static void netduino2_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "Netduino 2 Machine";
|
||||
mc->init = netduino2_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("netduino2", netduino2_machine_init)
|
||||
|
||||
@@ -1425,6 +1425,7 @@ static void n800_class_init(ObjectClass *oc, void *data)
|
||||
mc->desc = "Nokia N800 tablet aka. RX-34 (OMAP2420)";
|
||||
mc->init = n800_init;
|
||||
mc->default_boot_order = "";
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo n800_type = {
|
||||
@@ -1440,6 +1441,7 @@ static void n810_class_init(ObjectClass *oc, void *data)
|
||||
mc->desc = "Nokia N810 tablet aka. RX-44 (OMAP2420)";
|
||||
mc->init = n810_init;
|
||||
mc->default_boot_order = "";
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo n810_type = {
|
||||
|
||||
@@ -223,6 +223,7 @@ static void sx1_machine_v2_class_init(ObjectClass *oc, void *data)
|
||||
|
||||
mc->desc = "Siemens SX1 (OMAP310) V2";
|
||||
mc->init = sx1_init_v2;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo sx1_machine_v2_type = {
|
||||
@@ -237,6 +238,7 @@ static void sx1_machine_v1_class_init(ObjectClass *oc, void *data)
|
||||
|
||||
mc->desc = "Siemens SX1 (OMAP310) V1";
|
||||
mc->init = sx1_init_v1;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo sx1_machine_v1_type = {
|
||||
|
||||
@@ -274,6 +274,7 @@ static void palmte_machine_init(MachineClass *mc)
|
||||
{
|
||||
mc->desc = "Palm Tungsten|E aka. Cheetah PDA (OMAP310)";
|
||||
mc->init = palmte_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
DEFINE_MACHINE("cheetah", palmte_machine_init)
|
||||
|
||||
@@ -168,5 +168,6 @@ static void raspi2_machine_init(MachineClass *mc)
|
||||
mc->no_cdrom = 1;
|
||||
mc->max_cpus = BCM2836_NCPUS;
|
||||
mc->default_ram_size = 1024 * 1024 * 1024;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
};
|
||||
DEFINE_MACHINE("raspi2", raspi2_machine_init)
|
||||
|
||||
@@ -398,6 +398,7 @@ static void realview_eb_class_init(ObjectClass *oc, void *data)
|
||||
mc->desc = "ARM RealView Emulation Baseboard (ARM926EJ-S)";
|
||||
mc->init = realview_eb_init;
|
||||
mc->block_default_type = IF_SCSI;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo realview_eb_type = {
|
||||
@@ -414,6 +415,7 @@ static void realview_eb_mpcore_class_init(ObjectClass *oc, void *data)
|
||||
mc->init = realview_eb_mpcore_init;
|
||||
mc->block_default_type = IF_SCSI;
|
||||
mc->max_cpus = 4;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo realview_eb_mpcore_type = {
|
||||
@@ -428,6 +430,7 @@ static void realview_pb_a8_class_init(ObjectClass *oc, void *data)
|
||||
|
||||
mc->desc = "ARM RealView Platform Baseboard for Cortex-A8";
|
||||
mc->init = realview_pb_a8_init;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo realview_pb_a8_type = {
|
||||
@@ -443,6 +446,7 @@ static void realview_pbx_a9_class_init(ObjectClass *oc, void *data)
|
||||
mc->desc = "ARM RealView Platform Baseboard Explore for Cortex-A9";
|
||||
mc->init = realview_pbx_a9_init;
|
||||
mc->max_cpus = 4;
|
||||
mc->ignore_memory_transaction_failures = true;
|
||||
}
|
||||
|
||||
static const TypeInfo realview_pbx_a9_type = {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user