* [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs
@ 2013-12-11 2:52 Peter Crosthwaite
2013-12-11 2:53 ` [Qemu-devel] [PATCH target-arm v4 01/12] qom: Make uintXX added properties writable Peter Crosthwaite
` (12 more replies)
0 siblings, 13 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:52 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
Hi All,
This patch series adds support for two board configuarable ARM CPU
properties - Configuration Base Address Register and the
hivecs-on-reset.
Adding some of the QOM crowd to CC this time as Patches 1-2 touch the
QOM core and need some discussion.
The CBAR is needed to fix Zynq and Highbank which both were broken for
linux boot. This series provides the fixes.
Regards,
Peter
changed since v3:
Rebased against target-arm patch queue (2013/12/11)
Added Antonys reset hivecs patches
changed since v2:
Fixed comment in p8 (PMM review)
Enabled CBAR for a15 (PMM review)
Typo sweep
Changed since v1:
Fix QOM to support writeable dynamic properties
Use dynamic props instead (PMM/AF discussion)
Use error_report (AF reivew)
Use reset- prefix on propname (AF review)
Fix machine model namings or the MPCore PERIPHBASE
Antony Pavlov (2):
ARM: cpu: add "reset_hivecs" property
ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc
Peter Crosthwaite (10):
qom: Make uintXX added properties writable
qom: Add object_property_add_bool_ptr()
target-arm/helper.c: Allow cp15.c15 dummy override
target-arm: Define and use ARM_FEATURE_CBAR
target-arm/cpu: Convert reset CBAR to a property
arm/highbank: Use object_new() rather than cpu_arm_init()
arm/highbank: Fix CBAR initialisation
arm/xilinx_zynq: Use object_new() rather than cpu_arm_init()
arm/xilinx_zynq: Implement CBAR initialisation
arm/highbank.c: Fix MPCore periphbase name
hw/arm/highbank.c | 33 +++++++++++++++----------
hw/arm/xilinx_zynq.c | 21 ++++++++++++----
include/qom/object.h | 13 ++++++++++
qom/object.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++----
target-arm/cpu-qom.h | 1 +
target-arm/cpu.c | 41 ++++++++++++++++++++++++-------
target-arm/cpu.h | 1 +
target-arm/helper.c | 12 +++++++++-
8 files changed, 160 insertions(+), 30 deletions(-)
--
1.8.5.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 01/12] qom: Make uintXX added properties writable
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
@ 2013-12-11 2:53 ` Peter Crosthwaite
2013-12-11 2:54 ` [Qemu-devel] [PATCH target-arm v4 02/12] qom: Add object_property_add_bool_ptr() Peter Crosthwaite
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:53 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
Currently the uintXX property adders make a read only property. This
is not useful for devices that want to create board (or container)
configurable dynamic device properties. Fix by trivially adding property
setters to object_property_add_uintXX.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
changed since v3:
Dropped "/object" in subject (AF review)
changed since v2:
msg typo: "trivially"
qom/object.c | 44 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 40 insertions(+), 4 deletions(-)
diff --git a/qom/object.c b/qom/object.c
index fc19cf6..07b454b 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1353,6 +1353,15 @@ static void property_get_uint8_ptr(Object *obj, Visitor *v,
visit_type_uint8(v, &value, name, errp);
}
+static void property_set_uint8_ptr(Object *obj, Visitor *v,
+ void *opaque, const char *name,
+ Error **errp)
+{
+ uint8_t value;
+ visit_type_uint8(v, &value, name, errp);
+ *(uint8_t *)opaque = value;
+}
+
static void property_get_uint16_ptr(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
@@ -1361,6 +1370,15 @@ static void property_get_uint16_ptr(Object *obj, Visitor *v,
visit_type_uint16(v, &value, name, errp);
}
+static void property_set_uint16_ptr(Object *obj, Visitor *v,
+ void *opaque, const char *name,
+ Error **errp)
+{
+ uint16_t value;
+ visit_type_uint16(v, &value, name, errp);
+ *(uint16_t *)opaque = value;
+}
+
static void property_get_uint32_ptr(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
@@ -1369,6 +1387,15 @@ static void property_get_uint32_ptr(Object *obj, Visitor *v,
visit_type_uint32(v, &value, name, errp);
}
+static void property_set_uint32_ptr(Object *obj, Visitor *v,
+ void *opaque, const char *name,
+ Error **errp)
+{
+ uint32_t value;
+ visit_type_uint32(v, &value, name, errp);
+ *(uint32_t *)opaque = value;
+}
+
static void property_get_uint64_ptr(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
@@ -1377,32 +1404,41 @@ static void property_get_uint64_ptr(Object *obj, Visitor *v,
visit_type_uint64(v, &value, name, errp);
}
+static void property_set_uint64_ptr(Object *obj, Visitor *v,
+ void *opaque, const char *name,
+ Error **errp)
+{
+ uint64_t value;
+ visit_type_uint64(v, &value, name, errp);
+ *(uint64_t *)opaque = value;
+}
+
void object_property_add_uint8_ptr(Object *obj, const char *name,
const uint8_t *v, Error **errp)
{
object_property_add(obj, name, "uint8", property_get_uint8_ptr,
- NULL, NULL, (void *)v, errp);
+ property_set_uint8_ptr, NULL, (void *)v, errp);
}
void object_property_add_uint16_ptr(Object *obj, const char *name,
const uint16_t *v, Error **errp)
{
object_property_add(obj, name, "uint16", property_get_uint16_ptr,
- NULL, NULL, (void *)v, errp);
+ property_set_uint16_ptr, NULL, (void *)v, errp);
}
void object_property_add_uint32_ptr(Object *obj, const char *name,
const uint32_t *v, Error **errp)
{
object_property_add(obj, name, "uint32", property_get_uint32_ptr,
- NULL, NULL, (void *)v, errp);
+ property_set_uint32_ptr, NULL, (void *)v, errp);
}
void object_property_add_uint64_ptr(Object *obj, const char *name,
const uint64_t *v, Error **errp)
{
object_property_add(obj, name, "uint64", property_get_uint64_ptr,
- NULL, NULL, (void *)v, errp);
+ property_set_uint64_ptr, NULL, (void *)v, errp);
}
static void object_instance_init(Object *obj)
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 02/12] qom: Add object_property_add_bool_ptr()
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
2013-12-11 2:53 ` [Qemu-devel] [PATCH target-arm v4 01/12] qom: Make uintXX added properties writable Peter Crosthwaite
@ 2013-12-11 2:54 ` Peter Crosthwaite
2013-12-11 2:54 ` [Qemu-devel] [PATCH target-arm v4 03/12] target-arm/helper.c: Allow cp15.c15 dummy override Peter Crosthwaite
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:54 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
Integers have an API to add a property via a pointer to storage -
object_property_add_uintXX_ptr(). This is convenient for defining
dynamic properties without having to define local setters and getters.
This patch does the same for the boolean type - object can now easily
define boolean properties with the trivial setters and getters.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
include/qom/object.h | 13 +++++++++++++
qom/object.c | 24 ++++++++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/include/qom/object.h b/include/qom/object.h
index a275db2..c68aba3 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -1113,6 +1113,19 @@ void object_property_add_bool(Object *obj, const char *name,
Error **errp);
/**
+ * object_property_add_bool_ptr:
+ * @obj: the object to add a property to
+ * @name: the name of the property
+ * @v: pointer to value
+ * @errp: if an error occurs, a pointer to an area to store the error
+ *
+ * Add a bool property in memory. This function will add a
+ * property of type 'bool'.
+ */
+void object_property_add_bool_ptr(Object *obj, const char *name,
+ const bool *v, Error **errp);
+
+/**
* object_property_add_uint8_ptr:
* @obj: the object to add a property to
* @name: the name of the property
diff --git a/qom/object.c b/qom/object.c
index 07b454b..6c9cef9 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1345,6 +1345,23 @@ static char *qdev_get_type(Object *obj, Error **errp)
return g_strdup(object_get_typename(obj));
}
+static void property_get_bool_ptr(Object *obj, Visitor *v,
+ void *opaque, const char *name,
+ Error **errp)
+{
+ bool value = *(bool *)opaque;
+ visit_type_bool(v, &value, name, errp);
+}
+
+static void property_set_bool_ptr(Object *obj, Visitor *v,
+ void *opaque, const char *name,
+ Error **errp)
+{
+ bool value;
+ visit_type_bool(v, &value, name, errp);
+ *(bool *)opaque = value;
+}
+
static void property_get_uint8_ptr(Object *obj, Visitor *v,
void *opaque, const char *name,
Error **errp)
@@ -1413,6 +1430,13 @@ static void property_set_uint64_ptr(Object *obj, Visitor *v,
*(uint64_t *)opaque = value;
}
+void object_property_add_bool_ptr(Object *obj, const char *name,
+ const bool *v, Error **errp)
+{
+ object_property_add(obj, name, "bool", property_get_bool_ptr,
+ property_set_bool_ptr, NULL, (void *)v, errp);
+}
+
void object_property_add_uint8_ptr(Object *obj, const char *name,
const uint8_t *v, Error **errp)
{
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 03/12] target-arm/helper.c: Allow cp15.c15 dummy override
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
2013-12-11 2:53 ` [Qemu-devel] [PATCH target-arm v4 01/12] qom: Make uintXX added properties writable Peter Crosthwaite
2013-12-11 2:54 ` [Qemu-devel] [PATCH target-arm v4 02/12] qom: Add object_property_add_bool_ptr() Peter Crosthwaite
@ 2013-12-11 2:54 ` Peter Crosthwaite
2013-12-11 2:55 ` [Qemu-devel] [PATCH target-arm v4 04/12] target-arm: Define and use ARM_FEATURE_CBAR Peter Crosthwaite
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:54 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
The cp15.c15 space is implementation defined. Currently there is a
dummy placeholder register RAZing it. Allow overriding of this RAZ
so implementations of specific registers can take precedence.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
target-arm/helper.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 5e5e5aa..71d6be3 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -1338,7 +1338,8 @@ static const ARMCPRegInfo dummy_c15_cp_reginfo[] = {
*/
{ .name = "C15_IMPDEF", .cp = 15, .crn = 15,
.crm = CP_ANY, .opc1 = CP_ANY, .opc2 = CP_ANY,
- .access = PL1_RW, .type = ARM_CP_CONST | ARM_CP_NO_MIGRATE,
+ .access = PL1_RW,
+ .type = ARM_CP_CONST | ARM_CP_NO_MIGRATE | ARM_CP_OVERRIDE,
.resetvalue = 0 },
REGINFO_SENTINEL
};
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 04/12] target-arm: Define and use ARM_FEATURE_CBAR
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (2 preceding siblings ...)
2013-12-11 2:54 ` [Qemu-devel] [PATCH target-arm v4 03/12] target-arm/helper.c: Allow cp15.c15 dummy override Peter Crosthwaite
@ 2013-12-11 2:55 ` Peter Crosthwaite
2013-12-11 2:55 ` [Qemu-devel] [PATCH target-arm v4 05/12] target-arm/cpu: Convert reset CBAR to a property Peter Crosthwaite
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:55 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
Some processors (notably A9 within Highbank) define and use the
CP15 configuration base address (CBAR). This is vendor specific
so its best implemented as a CPU property (otherwise we would need
vendor specific child classes for every ARM implementation).
This patch prepares support for converting CBAR reset value to
a CPU property by moving the CP registration out of the CPU
init fn, as registration will need to happen at realize time
to pick up any property updates. The easiest way to do this
is via definition of a new ARM_FEATURE to flag the existence
of the register.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
changed since v3:
Move new feature to end of list
changed since v2:
msg typo: existence
Enable CBAR for a15 as well
target-arm/cpu.c | 12 +++---------
target-arm/cpu.h | 1 +
target-arm/helper.c | 9 +++++++++
3 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 0635e78..4725892 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -616,6 +616,7 @@ static void cortex_a9_initfn(Object *obj)
* and valid configurations; we don't model A9UP).
*/
set_feature(&cpu->env, ARM_FEATURE_V7MP);
+ set_feature(&cpu->env, ARM_FEATURE_CBAR);
cpu->midr = 0x410fc090;
cpu->reset_fpsid = 0x41033090;
cpu->mvfr0 = 0x11110222;
@@ -638,15 +639,7 @@ static void cortex_a9_initfn(Object *obj)
cpu->clidr = (1 << 27) | (1 << 24) | 3;
cpu->ccsidr[0] = 0xe00fe015; /* 16k L1 dcache. */
cpu->ccsidr[1] = 0x200fe015; /* 16k L1 icache. */
- {
- ARMCPRegInfo cbar = {
- .name = "CBAR", .cp = 15, .crn = 15, .crm = 0, .opc1 = 4,
- .opc2 = 0, .access = PL1_R|PL3_W, .resetvalue = cpu->reset_cbar,
- .fieldoffset = offsetof(CPUARMState, cp15.c15_config_base_address)
- };
- define_one_arm_cp_reg(cpu, &cbar);
- define_arm_cp_regs(cpu, cortexa9_cp_reginfo);
- }
+ define_arm_cp_regs(cpu, cortexa9_cp_reginfo);
}
#ifndef CONFIG_USER_ONLY
@@ -685,6 +678,7 @@ static void cortex_a15_initfn(Object *obj)
set_feature(&cpu->env, ARM_FEATURE_ARM_DIV);
set_feature(&cpu->env, ARM_FEATURE_GENERIC_TIMER);
set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS);
+ set_feature(&cpu->env, ARM_FEATURE_CBAR);
set_feature(&cpu->env, ARM_FEATURE_LPAE);
cpu->kvm_target = QEMU_KVM_ARM_TARGET_CORTEX_A15;
cpu->midr = 0x412fc0f1;
diff --git a/target-arm/cpu.h b/target-arm/cpu.h
index c3f007f..947a1e7 100644
--- a/target-arm/cpu.h
+++ b/target-arm/cpu.h
@@ -467,6 +467,7 @@ enum arm_features {
ARM_FEATURE_LPAE, /* has Large Physical Address Extension */
ARM_FEATURE_V8,
ARM_FEATURE_AARCH64, /* supports 64 bit mode */
+ ARM_FEATURE_CBAR, /* has cp15 CBAR */
};
static inline int arm_feature(CPUARMState *env, int feature)
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 71d6be3..cfbb14c 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -1745,6 +1745,15 @@ void register_cp_regs_for_features(ARMCPU *cpu)
define_one_arm_cp_reg(cpu, &auxcr);
}
+ if (arm_feature(env, ARM_FEATURE_CBAR)) {
+ ARMCPRegInfo cbar = {
+ .name = "CBAR", .cp = 15, .crn = 15, .crm = 0, .opc1 = 4, .opc2 = 0,
+ .access = PL1_R|PL3_W, .resetvalue = cpu->reset_cbar,
+ .fieldoffset = offsetof(CPUARMState, cp15.c15_config_base_address)
+ };
+ define_one_arm_cp_reg(cpu, &cbar);
+ }
+
/* Generic registers whose values depend on the implementation */
{
ARMCPRegInfo sctlr = {
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 05/12] target-arm/cpu: Convert reset CBAR to a property
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (3 preceding siblings ...)
2013-12-11 2:55 ` [Qemu-devel] [PATCH target-arm v4 04/12] target-arm: Define and use ARM_FEATURE_CBAR Peter Crosthwaite
@ 2013-12-11 2:55 ` Peter Crosthwaite
2013-12-11 2:56 ` [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:55 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
The reset value of the CP15 CBAR is a vendor (machine) configurable
property. If ARM_FEATURE_CBAR is set, add it as a property at
post_init time.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
Changed since v3:
typo s/Value/value (PMM review)
Change since v1:
Re-implement as dynamic property
target-arm/cpu.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 4725892..44a6c28 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -21,6 +21,7 @@
#include "cpu.h"
#include "qemu-common.h"
#include "hw/qdev-properties.h"
+#include "qapi/qmp/qerror.h"
#if !defined(CONFIG_USER_ONLY)
#include "hw/loader.h"
#endif
@@ -231,6 +232,18 @@ static void arm_cpu_initfn(Object *obj)
}
}
+static void arm_cpu_post_init(Object *obj)
+{
+ ARMCPU *cpu = ARM_CPU(obj);
+ Error *err = NULL;
+
+ if (arm_feature(&cpu->env, ARM_FEATURE_CBAR)) {
+ object_property_add_uint32_ptr(obj, "reset-cbar", &cpu->reset_cbar,
+ &err);
+ assert_no_error(err);
+ }
+}
+
static void arm_cpu_finalizefn(Object *obj)
{
ARMCPU *cpu = ARM_CPU(obj);
@@ -993,6 +1006,7 @@ static const TypeInfo arm_cpu_type_info = {
.parent = TYPE_CPU,
.instance_size = sizeof(ARMCPU),
.instance_init = arm_cpu_initfn,
+ .instance_post_init = arm_cpu_post_init,
.instance_finalize = arm_cpu_finalizefn,
.abstract = true,
.class_size = sizeof(ARMCPUClass),
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (4 preceding siblings ...)
2013-12-11 2:55 ` [Qemu-devel] [PATCH target-arm v4 05/12] target-arm/cpu: Convert reset CBAR to a property Peter Crosthwaite
@ 2013-12-11 2:56 ` Peter Crosthwaite
2013-12-11 2:56 ` [Qemu-devel] [PATCH target-arm v4 06/12] arm/highbank: Use object_new() rather than cpu_arm_init() Peter Crosthwaite
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:56 UTC (permalink / raw)
To: qemu-devel@nongnu.org Developers, Peter Maydell
Cc: Peter Crosthwaite, Mark Langsdorf, Michael S. Tsirkin,
Antony Pavlov, Igor Mammedov, Paolo Bonzini, Andreas Färber
Forgot to CC Antony
On Wed, Dec 11, 2013 at 12:52 PM, Peter Crosthwaite
<peter.crosthwaite@xilinx.com> wrote:
> Hi All,
>
> This patch series adds support for two board configuarable ARM CPU
> properties - Configuration Base Address Register and the
> hivecs-on-reset.
>
> Adding some of the QOM crowd to CC this time as Patches 1-2 touch the
> QOM core and need some discussion.
>
> The CBAR is needed to fix Zynq and Highbank which both were broken for
> linux boot. This series provides the fixes.
>
> Regards,
> Peter
>
> changed since v3:
> Rebased against target-arm patch queue (2013/12/11)
> Added Antonys reset hivecs patches
> changed since v2:
> Fixed comment in p8 (PMM review)
> Enabled CBAR for a15 (PMM review)
> Typo sweep
> Changed since v1:
> Fix QOM to support writeable dynamic properties
> Use dynamic props instead (PMM/AF discussion)
> Use error_report (AF reivew)
> Use reset- prefix on propname (AF review)
> Fix machine model namings or the MPCore PERIPHBASE
>
>
> Antony Pavlov (2):
> ARM: cpu: add "reset_hivecs" property
> ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc
>
> Peter Crosthwaite (10):
> qom: Make uintXX added properties writable
> qom: Add object_property_add_bool_ptr()
> target-arm/helper.c: Allow cp15.c15 dummy override
> target-arm: Define and use ARM_FEATURE_CBAR
> target-arm/cpu: Convert reset CBAR to a property
> arm/highbank: Use object_new() rather than cpu_arm_init()
> arm/highbank: Fix CBAR initialisation
> arm/xilinx_zynq: Use object_new() rather than cpu_arm_init()
> arm/xilinx_zynq: Implement CBAR initialisation
> arm/highbank.c: Fix MPCore periphbase name
>
> hw/arm/highbank.c | 33 +++++++++++++++----------
> hw/arm/xilinx_zynq.c | 21 ++++++++++++----
> include/qom/object.h | 13 ++++++++++
> qom/object.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++----
> target-arm/cpu-qom.h | 1 +
> target-arm/cpu.c | 41 ++++++++++++++++++++++++-------
> target-arm/cpu.h | 1 +
> target-arm/helper.c | 12 +++++++++-
> 8 files changed, 160 insertions(+), 30 deletions(-)
>
> --
> 1.8.5.1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 06/12] arm/highbank: Use object_new() rather than cpu_arm_init()
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (5 preceding siblings ...)
2013-12-11 2:56 ` [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
@ 2013-12-11 2:56 ` Peter Crosthwaite
2013-12-11 2:57 ` [Qemu-devel] [PATCH target-arm v4 07/12] arm/highbank: Fix CBAR initialisation Peter Crosthwaite
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:56 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
To allow the machine model to set device properties before CPU
realization.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
changed since v1:
use error_report rather than fprintf(stderr
hw/arm/highbank.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index fe98ef1..1d19d8f 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -26,6 +26,7 @@
#include "hw/boards.h"
#include "sysemu/blockdev.h"
#include "exec/address-spaces.h"
+#include "qemu/error-report.h"
#define SMP_BOOT_ADDR 0x100
#define SMP_BOOT_REG 0x40
@@ -229,10 +230,15 @@ static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
}
for (n = 0; n < smp_cpus; n++) {
+ ObjectClass *oc = cpu_class_by_name(TYPE_ARM_CPU, cpu_model);
ARMCPU *cpu;
- cpu = cpu_arm_init(cpu_model);
- if (cpu == NULL) {
- fprintf(stderr, "Unable to find CPU definition\n");
+ Error *err = NULL;
+
+ cpu = ARM_CPU(object_new(object_class_get_name(oc)));
+
+ object_property_set_bool(OBJECT(cpu), true, "realized", &err);
+ if (err) {
+ error_report("%s", error_get_pretty(err));
exit(1);
}
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 07/12] arm/highbank: Fix CBAR initialisation
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (6 preceding siblings ...)
2013-12-11 2:56 ` [Qemu-devel] [PATCH target-arm v4 06/12] arm/highbank: Use object_new() rather than cpu_arm_init() Peter Crosthwaite
@ 2013-12-11 2:57 ` Peter Crosthwaite
2013-12-11 2:57 ` [Qemu-devel] [PATCH target-arm v4 08/12] arm/xilinx_zynq: Use object_new() rather than cpu_arm_init() Peter Crosthwaite
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:57 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
Fix the CBAR initialisation by using the newly defined static property.
CBAR is now set before realization, so the intended value is now
actually used.
So I have kind of tested this. I booted an ARM kernel on Highbank with
the stock Highbank DTB. It doesn't boot (and I will be doing something
wrong), but before this patch I got this:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 0 at /workspaces/pcrost/public/linux2.git/arch/arm/mm/ioremap.c:301 __arm_ioremap_pfn_caller+0x180/0x198()
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.13.0-rc1-next-20131126-dirty #2
[<c0015164>] (unwind_backtrace) from [<c00118c0>] (show_stack+0x10/0x14)
[<c00118c0>] (show_stack) from [<c02bd5fc>] (dump_stack+0x78/0x90)
[<c02bd5fc>] (dump_stack) from [<c001f110>] (warn_slowpath_common+0x68/0x84)
[<c001f110>] (warn_slowpath_common) from [<c001f1f4>] (warn_slowpath_null+0x1c/0x24)
[<c001f1f4>] (warn_slowpath_null) from [<c0017c6c>] (__arm_ioremap_pfn_caller+0x180/0x198)
[<c0017c6c>] (__arm_ioremap_pfn_caller) from [<c0017cd8>] (__arm_ioremap_caller+0x54/0x5c)
[<c0017cd8>] (__arm_ioremap_caller) from [<c0017d10>] (__arm_ioremap+0x18/0x1c)
[<c0017d10>] (__arm_ioremap) from [<c03913c0>] (highbank_init_irq+0x34/0x8c)
[<c03913c0>] (highbank_init_irq) from [<c038c228>] (init_IRQ+0x28/0x2c)
[<c038c228>] (init_IRQ) from [<c03899ec>] (start_kernel+0x234/0x398)
[<c03899ec>] (start_kernel) from [<00008074>] (0x8074)
---[ end trace 3406ff24bd97382f ]---
Which disappears with this patch.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
changed since v2:
Fix msg typos
changed since v1:
use error report rather than fprintf(stderr
hw/arm/highbank.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index 1d19d8f..cb32325 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -236,14 +236,16 @@ static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
cpu = ARM_CPU(object_new(object_class_get_name(oc)));
+ object_property_set_int(OBJECT(cpu), GIC_BASE_ADDR, "reset-cbar", &err);
+ if (err) {
+ error_report("%s", error_get_pretty(err));
+ exit(1);
+ }
object_property_set_bool(OBJECT(cpu), true, "realized", &err);
if (err) {
error_report("%s", error_get_pretty(err));
exit(1);
}
-
- /* This will become a QOM property eventually */
- cpu->reset_cbar = GIC_BASE_ADDR;
cpu_irq[n] = qdev_get_gpio_in(DEVICE(cpu), ARM_CPU_IRQ);
}
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 08/12] arm/xilinx_zynq: Use object_new() rather than cpu_arm_init()
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (7 preceding siblings ...)
2013-12-11 2:57 ` [Qemu-devel] [PATCH target-arm v4 07/12] arm/highbank: Fix CBAR initialisation Peter Crosthwaite
@ 2013-12-11 2:57 ` Peter Crosthwaite
2013-12-11 2:58 ` [Qemu-devel] [PATCH target-arm v4 09/12] arm/xilinx_zynq: Implement CBAR initialisation Peter Crosthwaite
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:57 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
To allow the machine model to set device properties before CPU
realization.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
changed since v1:
use error report rather than fprintf(stderr
hw/arm/xilinx_zynq.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c
index 46924a0..1c954a3 100644
--- a/hw/arm/xilinx_zynq.c
+++ b/hw/arm/xilinx_zynq.c
@@ -25,6 +25,7 @@
#include "sysemu/blockdev.h"
#include "hw/loader.h"
#include "hw/ssi.h"
+#include "qemu/error-report.h"
#define NUM_SPI_FLASHES 4
#define NUM_QSPI_FLASHES 2
@@ -102,6 +103,7 @@ static void zynq_init(QEMUMachineInitArgs *args)
const char *kernel_filename = args->kernel_filename;
const char *kernel_cmdline = args->kernel_cmdline;
const char *initrd_filename = args->initrd_filename;
+ ObjectClass *cpu_oc;
ARMCPU *cpu;
MemoryRegion *address_space_mem = get_system_memory();
MemoryRegion *ext_ram = g_new(MemoryRegion, 1);
@@ -110,15 +112,19 @@ static void zynq_init(QEMUMachineInitArgs *args)
SysBusDevice *busdev;
qemu_irq pic[64];
NICInfo *nd;
+ Error *err = NULL;
int n;
if (!cpu_model) {
cpu_model = "cortex-a9";
}
+ cpu_oc = cpu_class_by_name(TYPE_ARM_CPU, cpu_model);
- cpu = cpu_arm_init(cpu_model);
- if (!cpu) {
- fprintf(stderr, "Unable to find CPU definition\n");
+ cpu = ARM_CPU(object_new(object_class_get_name(cpu_oc)));
+
+ object_property_set_bool(OBJECT(cpu), true, "realized", &err);
+ if (err) {
+ error_report("%s", error_get_pretty(err));
exit(1);
}
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 09/12] arm/xilinx_zynq: Implement CBAR initialisation
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (8 preceding siblings ...)
2013-12-11 2:57 ` [Qemu-devel] [PATCH target-arm v4 08/12] arm/xilinx_zynq: Use object_new() rather than cpu_arm_init() Peter Crosthwaite
@ 2013-12-11 2:58 ` Peter Crosthwaite
2013-12-11 2:58 ` [Qemu-devel] [PATCH target-arm v4 10/12] arm/highbank.c: Fix MPCore periphbase name Peter Crosthwaite
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:58 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
Fix the CBAR initialisation by using the newly defined static property.
Zynq will now correctly init the CBAR to the SCU base address.
Needed to boot Linux on the xilinx_zynq machine model.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
changed since v1:
use error report rather than fprintf(stderr
rename SCU_BASE_ADDR to MPCORE_PERIPHBASE
hw/arm/xilinx_zynq.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c
index 1c954a3..17251c7 100644
--- a/hw/arm/xilinx_zynq.c
+++ b/hw/arm/xilinx_zynq.c
@@ -36,6 +36,8 @@
#define IRQ_OFFSET 32 /* pic interrupts start from index 32 */
+#define MPCORE_PERIPHBASE 0xF8F00000
+
static const int dma_irqs[8] = {
46, 47, 48, 49, 72, 73, 74, 75
};
@@ -122,6 +124,11 @@ static void zynq_init(QEMUMachineInitArgs *args)
cpu = ARM_CPU(object_new(object_class_get_name(cpu_oc)));
+ object_property_set_int(OBJECT(cpu), MPCORE_PERIPHBASE, "reset-cbar", &err);
+ if (err) {
+ error_report("%s", error_get_pretty(err));
+ exit(1);
+ }
object_property_set_bool(OBJECT(cpu), true, "realized", &err);
if (err) {
error_report("%s", error_get_pretty(err));
@@ -160,7 +167,7 @@ static void zynq_init(QEMUMachineInitArgs *args)
qdev_prop_set_uint32(dev, "num-cpu", 1);
qdev_init_nofail(dev);
busdev = SYS_BUS_DEVICE(dev);
- sysbus_mmio_map(busdev, 0, 0xF8F00000);
+ sysbus_mmio_map(busdev, 0, MPCORE_PERIPHBASE);
sysbus_connect_irq(busdev, 0,
qdev_get_gpio_in(DEVICE(cpu), ARM_CPU_IRQ));
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 10/12] arm/highbank.c: Fix MPCore periphbase name
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (9 preceding siblings ...)
2013-12-11 2:58 ` [Qemu-devel] [PATCH target-arm v4 09/12] arm/xilinx_zynq: Implement CBAR initialisation Peter Crosthwaite
@ 2013-12-11 2:58 ` Peter Crosthwaite
2013-12-11 2:59 ` [Qemu-devel] [PATCH target-arm v4 11/12] ARM: cpu: add "reset_hivecs" property Peter Crosthwaite
2013-12-11 3:00 ` [Qemu-devel] [PATCH target-arm v4 12/12] ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc Peter Crosthwaite
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:58 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
GIC_BASE_ADDR is not the base address of the GIC. Its clear from the
code that this is the base address of the MPCore. Rename to
MPCORE_PERIPHBASE accordingly.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
changed since v2: Fixed broken comment (PMM review)
hw/arm/highbank.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index cb32325..c75b425 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -28,11 +28,11 @@
#include "exec/address-spaces.h"
#include "qemu/error-report.h"
-#define SMP_BOOT_ADDR 0x100
-#define SMP_BOOT_REG 0x40
-#define GIC_BASE_ADDR 0xfff10000
+#define SMP_BOOT_ADDR 0x100
+#define SMP_BOOT_REG 0x40
+#define MPCORE_PERIPHBASE 0xfff10000
-#define NIRQ_GIC 160
+#define NIRQ_GIC 160
/* Board init. */
@@ -55,7 +55,7 @@ static void hb_write_secondary(ARMCPU *cpu, const struct arm_boot_info *info)
0xe1110001, /* tst r1, r1 */
0x0afffffb, /* beq <wfi> */
0xe12fff11, /* bx r1 */
- GIC_BASE_ADDR /* privbase: gic address. */
+ MPCORE_PERIPHBASE /* privbase: MPCore peripheral base address. */
};
for (n = 0; n < ARRAY_SIZE(smpboot); n++) {
smpboot[n] = tswap32(smpboot[n]);
@@ -236,7 +236,8 @@ static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
cpu = ARM_CPU(object_new(object_class_get_name(oc)));
- object_property_set_int(OBJECT(cpu), GIC_BASE_ADDR, "reset-cbar", &err);
+ object_property_set_int(OBJECT(cpu), MPCORE_PERIPHBASE, "reset-cbar",
+ &err);
if (err) {
error_report("%s", error_get_pretty(err));
exit(1);
@@ -287,7 +288,7 @@ static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
qdev_prop_set_uint32(dev, "num-irq", NIRQ_GIC);
qdev_init_nofail(dev);
busdev = SYS_BUS_DEVICE(dev);
- sysbus_mmio_map(busdev, 0, GIC_BASE_ADDR);
+ sysbus_mmio_map(busdev, 0, MPCORE_PERIPHBASE);
for (n = 0; n < smp_cpus; n++) {
sysbus_connect_irq(busdev, n, cpu_irq[n]);
}
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 11/12] ARM: cpu: add "reset_hivecs" property
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (10 preceding siblings ...)
2013-12-11 2:58 ` [Qemu-devel] [PATCH target-arm v4 10/12] arm/highbank.c: Fix MPCore periphbase name Peter Crosthwaite
@ 2013-12-11 2:59 ` Peter Crosthwaite
2013-12-11 3:00 ` [Qemu-devel] [PATCH target-arm v4 12/12] ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc Peter Crosthwaite
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 2:59 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
From: Antony Pavlov <antonynpavlov@gmail.com>
Add an ARM CPU property for the reset value of hivecs as it is a
board/SoC configurable setting.
The existence of the property is conditional on the ARM CPU not being M
class.
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
[ PC Changes:
* Elaborated commit message
* refactored to use object_property_add_bool_ptr
]
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
target-arm/cpu-qom.h | 1 +
target-arm/cpu.c | 10 ++++++++++
2 files changed, 11 insertions(+)
diff --git a/target-arm/cpu-qom.h b/target-arm/cpu-qom.h
index f32178a..afbd422 100644
--- a/target-arm/cpu-qom.h
+++ b/target-arm/cpu-qom.h
@@ -139,6 +139,7 @@ typedef struct ARMCPU {
uint32_t ccsidr[16];
uint32_t reset_cbar;
uint32_t reset_auxcr;
+ bool reset_hivecs;
} ARMCPU;
#define TYPE_AARCH64_CPU "aarch64-cpu"
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index 44a6c28..f461abc 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -242,6 +242,12 @@ static void arm_cpu_post_init(Object *obj)
&err);
assert_no_error(err);
}
+
+ if (!arm_feature(&cpu->env, ARM_FEATURE_M)) {
+ object_property_add_bool_ptr(obj, "reset-hivecs", &cpu->reset_hivecs,
+ &err);
+ assert_no_error(err);
+ }
}
static void arm_cpu_finalizefn(Object *obj)
@@ -303,6 +309,10 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp)
set_feature(env, ARM_FEATURE_PXN);
}
+ if (cpu->reset_hivecs) {
+ cpu->reset_sctlr |= (1 << 13);
+ }
+
register_cp_regs_for_features(cpu);
arm_cpu_register_gdb_regs_for_features(cpu);
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH target-arm v4 12/12] ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
` (11 preceding siblings ...)
2013-12-11 2:59 ` [Qemu-devel] [PATCH target-arm v4 11/12] ARM: cpu: add "reset_hivecs" property Peter Crosthwaite
@ 2013-12-11 3:00 ` Peter Crosthwaite
12 siblings, 0 replies; 14+ messages in thread
From: Peter Crosthwaite @ 2013-12-11 3:00 UTC (permalink / raw)
To: qemu-devel, peter.maydell
Cc: peter.crosthwaite, mark.langsdorf, mst, imammedo, pbonzini,
afaerber
From: Antony Pavlov <antonynpavlov@gmail.com>
If hivecs are being used on reset, the CPU should come out of reset at
the hivecs reset vector (0xFFFF0000)
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
[ PC Changes:
* Fixed Grammar error in commit message
* Elaborated commit message.
]
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
target-arm/cpu.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index f461abc..df818f9 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -121,6 +121,11 @@ static void arm_cpu_reset(CPUState *s)
env->regs[15] = pc & ~1;
}
}
+
+ if (env->cp15.c1_sys & (1 << 13)) {
+ env->regs[15] = 0xFFFF0000;
+ }
+
env->vfp.xregs[ARM_VFP_FPEXC] = 0;
#endif
set_flush_to_zero(1, &env->vfp.standard_fp_status);
--
1.8.5.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-12-11 3:00 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-11 2:52 [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
2013-12-11 2:53 ` [Qemu-devel] [PATCH target-arm v4 01/12] qom: Make uintXX added properties writable Peter Crosthwaite
2013-12-11 2:54 ` [Qemu-devel] [PATCH target-arm v4 02/12] qom: Add object_property_add_bool_ptr() Peter Crosthwaite
2013-12-11 2:54 ` [Qemu-devel] [PATCH target-arm v4 03/12] target-arm/helper.c: Allow cp15.c15 dummy override Peter Crosthwaite
2013-12-11 2:55 ` [Qemu-devel] [PATCH target-arm v4 04/12] target-arm: Define and use ARM_FEATURE_CBAR Peter Crosthwaite
2013-12-11 2:55 ` [Qemu-devel] [PATCH target-arm v4 05/12] target-arm/cpu: Convert reset CBAR to a property Peter Crosthwaite
2013-12-11 2:56 ` [Qemu-devel] [PATCH target-arm v4 00/12] Fix Support for ARM CBAR and reset-hivecs Peter Crosthwaite
2013-12-11 2:56 ` [Qemu-devel] [PATCH target-arm v4 06/12] arm/highbank: Use object_new() rather than cpu_arm_init() Peter Crosthwaite
2013-12-11 2:57 ` [Qemu-devel] [PATCH target-arm v4 07/12] arm/highbank: Fix CBAR initialisation Peter Crosthwaite
2013-12-11 2:57 ` [Qemu-devel] [PATCH target-arm v4 08/12] arm/xilinx_zynq: Use object_new() rather than cpu_arm_init() Peter Crosthwaite
2013-12-11 2:58 ` [Qemu-devel] [PATCH target-arm v4 09/12] arm/xilinx_zynq: Implement CBAR initialisation Peter Crosthwaite
2013-12-11 2:58 ` [Qemu-devel] [PATCH target-arm v4 10/12] arm/highbank.c: Fix MPCore periphbase name Peter Crosthwaite
2013-12-11 2:59 ` [Qemu-devel] [PATCH target-arm v4 11/12] ARM: cpu: add "reset_hivecs" property Peter Crosthwaite
2013-12-11 3:00 ` [Qemu-devel] [PATCH target-arm v4 12/12] ARM: arm_cpu_reset: make it possible to use high vectors for reset_exc Peter Crosthwaite
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.