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 | " | ||