diff options
| author | Nathan Rossi <nathan.rossi@xilinx.com> | 2014-06-06 12:18:23 +1000 |
|---|---|---|
| committer | Nathan Rossi <nathan.rossi@xilinx.com> | 2014-06-06 12:18:23 +1000 |
| commit | 237fc5318f5e589dd036152ac583d58868019104 (patch) | |
| tree | 34037b131e532dee888ff29de8bd1326a2825e4e /recipes-devtools | |
| parent | 17d55a1acd9391a3c4f4abf2803289ef801445bd (diff) | |
| download | meta-xilinx-237fc5318f5e589dd036152ac583d58868019104.tar.gz | |
qemu: Update qemu to version 2.0.0
* Up version from 1.7.0 -> 2,0.0
* Remove up-streamed patches
Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Diffstat (limited to 'recipes-devtools')
5 files changed, 6 insertions, 161 deletions
diff --git a/recipes-devtools/qemu/files/HACK_target-arm_Harcode_the_SCU_offset.patch b/recipes-devtools/qemu/files/HACK_target-arm_Harcode_the_SCU_offset.patch deleted file mode 100644 index 68c8dfaa..00000000 --- a/recipes-devtools/qemu/files/HACK_target-arm_Harcode_the_SCU_offset.patch +++ /dev/null | |||
| @@ -1,22 +0,0 @@ | |||
| 1 | From: Peter Crosthwaite <peter.crosthwaite@xilinx.com> | ||
| 2 | Date: Fri, 15 Feb 2013 07:08:24 +0000 | ||
| 3 | Subject: HACK: target-arm: Harcode the SCU offset | ||
| 4 | |||
| 5 | Becuase the QOM framework to drive this from a property isnt there yet. | ||
| 6 | |||
| 7 | Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> | ||
| 8 | --- | ||
| 9 | diff --git a/target-arm/cpu.c b/target-arm/cpu.c | ||
| 10 | index 496a59f..705688b 100644 | ||
| 11 | --- a/target-arm/cpu.c | ||
| 12 | +++ b/target-arm/cpu.c | ||
| 13 | @@ -531,7 +531,7 @@ static void cortex_a9_initfn(Object *obj) | ||
| 14 | { | ||
| 15 | ARMCPRegInfo cbar = { | ||
| 16 | .name = "CBAR", .cp = 15, .crn = 15, .crm = 0, .opc1 = 4, | ||
| 17 | - .opc2 = 0, .access = PL1_R|PL3_W, .resetvalue = cpu->reset_cbar, | ||
| 18 | + .opc2 = 0, .access = PL1_R|PL3_W, .resetvalue = 0xf8f00000, | ||
| 19 | .fieldoffset = offsetof(CPUARMState, cp15.c15_config_base_address) | ||
| 20 | }; | ||
| 21 | define_one_arm_cp_reg(cpu, &cbar); | ||
| 22 | -- | ||
diff --git a/recipes-devtools/qemu/files/hw-net-xilinx_axienet.c-Add-phy-soft-reset-bit-clear.patch b/recipes-devtools/qemu/files/hw-net-xilinx_axienet.c-Add-phy-soft-reset-bit-clear.patch deleted file mode 100644 index 9bc7a564..00000000 --- a/recipes-devtools/qemu/files/hw-net-xilinx_axienet.c-Add-phy-soft-reset-bit-clear.patch +++ /dev/null | |||
| @@ -1,29 +0,0 @@ | |||
| 1 | From 425580f9241098c9ef554a33b80153624b1e0318 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Nathan Rossi <nathan.rossi@xilinx.com> | ||
| 3 | Date: Wed, 9 Apr 2014 11:15:25 +1000 | ||
| 4 | Subject: [PATCH] hw/net/xilinx_axienet.c: Add phy soft reset bit clearing | ||
| 5 | |||
| 6 | * Clear the BMCR Reset when writing to registers. | ||
| 7 | |||
| 8 | Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com> | ||
| 9 | --- | ||
| 10 | hw/net/xilinx_axienet.c | 3 +++ | ||
| 11 | 1 file changed, 3 insertions(+) | ||
| 12 | |||
| 13 | diff --git a/hw/net/xilinx_axienet.c b/hw/net/xilinx_axienet.c | ||
| 14 | index 3eb7715..d9c15df 100644 | ||
| 15 | --- a/hw/net/xilinx_axienet.c | ||
| 16 | +++ b/hw/net/xilinx_axienet.c | ||
| 17 | @@ -142,6 +142,9 @@ tdk_write(struct PHY *phy, unsigned int req, unsigned int data) | ||
| 18 | phy->regs[regnum] = data; | ||
| 19 | break; | ||
| 20 | } | ||
| 21 | + | ||
| 22 | + /* Unconditionally clear regs[BMCR][BMCR_RESET] */ | ||
| 23 | + phy->regs[0] &= ~0x8000; | ||
| 24 | } | ||
| 25 | |||
| 26 | static void | ||
| 27 | -- | ||
| 28 | 1.9.0 | ||
| 29 | |||
diff --git a/recipes-devtools/qemu/files/qom_object_c_Split_out_object_and_class_caches.patch b/recipes-devtools/qemu/files/qom_object_c_Split_out_object_and_class_caches.patch deleted file mode 100644 index b64a8391..00000000 --- a/recipes-devtools/qemu/files/qom_object_c_Split_out_object_and_class_caches.patch +++ /dev/null | |||
| @@ -1,101 +0,0 @@ | |||
| 1 | Subject: [qom,v1,1/1] qom/object.c: Split out object and class caches. | ||
| 2 | From: Peter Crosthwaite <peter.crosthwaite@xilinx.com> | ||
| 3 | Message-Id: <23ad4a5a9283ffcf4fc384832f369df46db18ef6.1385612379.git.peter.crosthwaite@xilinx.com> | ||
| 4 | To: qemu-devel@nongnu.org, | ||
| 5 | aliguori@us.ibm.com, | ||
| 6 | pbonzini@redhat.com | ||
| 7 | Cc: afaerber@suse.de | ||
| 8 | Date: Wed, 27 Nov 2013 20:27:33 -0800 | ||
| 9 | |||
| 10 | The object-cast and class-cast caches cannot be shared because class | ||
| 11 | caching is conditional on the target type not being an interface and | ||
| 12 | object caching is unconditional. Leads to a bug when a class cast | ||
| 13 | to an interface follows an object cast to the same interface type: | ||
| 14 | |||
| 15 | FooObject = FOO(obj); | ||
| 16 | FooClass = FOO_GET_CLASS(obj); | ||
| 17 | |||
| 18 | Where TYPE_FOO is an interface. The first (object) cast will be | ||
| 19 | successful and cache the casting result (i.e. TYPE_FOO will be cached). | ||
| 20 | The second (class) cast will then check the shared cast cache | ||
| 21 | and register a hit. The issue is, when a class cast hits in the cache | ||
| 22 | it just returns a pointer cast of the input class (i.e. the concrete | ||
| 23 | class). | ||
| 24 | |||
| 25 | When casting to an interface, the cast itself must return the | ||
| 26 | interface class, not the concrete class. The implementation of class | ||
| 27 | cast caching already ensures that the returned cast result is only | ||
| 28 | a pointer cast before caching. The object cast logic however does | ||
| 29 | not have this check. | ||
| 30 | |||
| 31 | Resolve by just splitting the object and class caches. | ||
| 32 | |||
| 33 | Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> | ||
| 34 | Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> | ||
| 35 | Upstream-Status: Pending [Pulled from upstream mailing list] | ||
| 36 | --- | ||
| 37 | include/qom/object.h | 3 ++- | ||
| 38 | qom/object.c | 13 +++++++------ | ||
| 39 | 2 files changed, 9 insertions(+), 7 deletions(-) | ||
| 40 | |||
| 41 | diff --git a/include/qom/object.h b/include/qom/object.h | ||
| 42 | index a275db2..5f78847 100644 | ||
| 43 | --- a/include/qom/object.h | ||
| 44 | +++ b/include/qom/object.h | ||
| 45 | @@ -358,7 +358,8 @@ struct ObjectClass | ||
| 46 | Type type; | ||
| 47 | GSList *interfaces; | ||
| 48 | |||
| 49 | - const char *cast_cache[OBJECT_CLASS_CAST_CACHE]; | ||
| 50 | + const char *object_cast_cache[OBJECT_CLASS_CAST_CACHE]; | ||
| 51 | + const char *class_cast_cache[OBJECT_CLASS_CAST_CACHE]; | ||
| 52 | |||
| 53 | ObjectUnparent *unparent; | ||
| 54 | }; | ||
| 55 | diff --git a/qom/object.c b/qom/object.c | ||
| 56 | index fc19cf6..21b5a0b 100644 | ||
| 57 | --- a/qom/object.c | ||
| 58 | +++ b/qom/object.c | ||
| 59 | @@ -458,7 +458,7 @@ Object *object_dynamic_cast_assert(Object *obj, const char *typename, | ||
| 60 | Object *inst; | ||
| 61 | |||
| 62 | for (i = 0; obj && i < OBJECT_CLASS_CAST_CACHE; i++) { | ||
| 63 | - if (obj->class->cast_cache[i] == typename) { | ||
| 64 | + if (obj->class->object_cast_cache[i] == typename) { | ||
| 65 | goto out; | ||
| 66 | } | ||
| 67 | } | ||
| 68 | @@ -475,9 +475,10 @@ Object *object_dynamic_cast_assert(Object *obj, const char *typename, | ||
| 69 | |||
| 70 | if (obj && obj == inst) { | ||
| 71 | for (i = 1; i < OBJECT_CLASS_CAST_CACHE; i++) { | ||
| 72 | - obj->class->cast_cache[i - 1] = obj->class->cast_cache[i]; | ||
| 73 | + obj->class->object_cast_cache[i - 1] = | ||
| 74 | + obj->class->object_cast_cache[i]; | ||
| 75 | } | ||
| 76 | - obj->class->cast_cache[i - 1] = typename; | ||
| 77 | + obj->class->object_cast_cache[i - 1] = typename; | ||
| 78 | } | ||
| 79 | |||
| 80 | out: | ||
| 81 | @@ -547,7 +548,7 @@ ObjectClass *object_class_dynamic_cast_assert(ObjectClass *class, | ||
| 82 | int i; | ||
| 83 | |||
| 84 | for (i = 0; class && i < OBJECT_CLASS_CAST_CACHE; i++) { | ||
| 85 | - if (class->cast_cache[i] == typename) { | ||
| 86 | + if (class->class_cast_cache[i] == typename) { | ||
| 87 | ret = class; | ||
| 88 | goto out; | ||
| 89 | } | ||
| 90 | @@ -568,9 +569,9 @@ ObjectClass *object_class_dynamic_cast_assert(ObjectClass *class, | ||
| 91 | #ifdef CONFIG_QOM_CAST_DEBUG | ||
| 92 | if (class && ret == class) { | ||
| 93 | for (i = 1; i < OBJECT_CLASS_CAST_CACHE; i++) { | ||
| 94 | - class->cast_cache[i - 1] = class->cast_cache[i]; | ||
| 95 | + class->class_cast_cache[i - 1] = class->class_cast_cache[i]; | ||
| 96 | } | ||
| 97 | - class->cast_cache[i - 1] = typename; | ||
| 98 | + class->class_cast_cache[i - 1] = typename; | ||
| 99 | } | ||
| 100 | out: | ||
| 101 | #endif | ||
diff --git a/recipes-devtools/qemu/qemu_1.7.0.bbappend b/recipes-devtools/qemu/qemu_1.7.0.bbappend deleted file mode 100644 index a06eefef..00000000 --- a/recipes-devtools/qemu/qemu_1.7.0.bbappend +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | QEMU_TARGETS += "microblazeel" | ||
| 2 | |||
| 3 | FILESEXTRAPATHS_append := "${THISDIR}/files:" | ||
| 4 | SRC_URI_append += " \ | ||
| 5 | file://HACK_target-arm_Harcode_the_SCU_offset.patch \ | ||
| 6 | file://HACK_zynq_slcr_Bring_SLCR_out_of_reset_in_kernel_state.patch \ | ||
| 7 | file://qom_object_c_Split_out_object_and_class_caches.patch \ | ||
| 8 | file://hw-net-xilinx_axienet.c-Add-phy-soft-reset-bit-clear.patch \ | ||
| 9 | " | ||
diff --git a/recipes-devtools/qemu/qemu_2.0.0.bbappend b/recipes-devtools/qemu/qemu_2.0.0.bbappend new file mode 100644 index 00000000..94296457 --- /dev/null +++ b/recipes-devtools/qemu/qemu_2.0.0.bbappend | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | QEMU_TARGETS += "microblazeel" | ||
| 2 | |||
| 3 | FILESEXTRAPATHS_append := "${THISDIR}/files:" | ||
| 4 | SRC_URI_append += " \ | ||
| 5 | file://HACK_zynq_slcr_Bring_SLCR_out_of_reset_in_kernel_state.patch \ | ||
| 6 | " | ||
