~ubuntu-branches/ubuntu/trusty/qemu/trusty

« back to all changes in this revision

Viewing changes to debian/patches/arm64/0006-target-arm-Add-ARMCPU-field-for-Linux-device-tree-co.patch

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2014-02-04 12:13:08 UTC
  • mfrom: (10.1.45 sid)
  • Revision ID: package-import@ubuntu.com-20140204121308-1xq92lrfs75agw2g
Tags: 1.7.0+dfsg-3ubuntu1~ppa1
* Merge 1.7.0+dfsg-3 from debian.  Remaining changes:
  - debian/patches/ubuntu:
    * expose-vmx_qemu64cpu.patch
    * linaro (omap3) and arm64 patches
    * ubuntu/target-ppc-add-stubs-for-kvm-breakpoints: fix FTBFS
      on ppc
    * ubuntu/CVE-2013-4377.patch: fix denial of service via virtio
  - debian/qemu-system-x86.modprobe: set kvm_intel nested=1 options
  - debian/control:
    * add arm64 to Architectures
    * add qemu-common and qemu-system-aarch64 packages
  - debian/qemu-system-common.install: add debian/tmp/usr/lib
  - debian/qemu-system-common.preinst: add kvm group
  - debian/qemu-system-common.postinst: remove acl placed by udev,
    and add udevadm trigger.
  - qemu-system-x86.links: add eepro100.rom, remove pxe-virtio,
    pxe-e1000 and pxe-rtl8139.
  - add qemu-system-x86.qemu-kvm.upstart and .default
  - qemu-user-static.postinst-in: remove arm64 binfmt
  - debian/rules:
    * allow parallel build
    * add aarch64 to system_targets and sys_systems
    * add qemu-kvm-spice links
    * install qemu-system-x86.modprobe
  - add debian/qemu-system-common.links for OVMF.fd link
* Remove kvm-img, kvm-nbd, kvm-ifup and kvm-ifdown symlinks.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
From bb8ef158bceca3c63f701277b7c495312248d391 Mon Sep 17 00:00:00 2001
2
 
From: Peter Maydell <peter.maydell@linaro.org>
3
 
Date: Fri, 22 Nov 2013 17:17:12 +0000
4
 
Subject: [PATCH 06/49] target-arm: Add ARMCPU field for Linux device-tree
5
 
 'compatible' string
6
 
 
7
 
Linux requires device tree CPU nodes to include a 'compatible'
8
 
string describing the CPU. Add a field in the ARMCPU struct for
9
 
this so that boards which construct a device tree can insert
10
 
the correct CPU nodes.
11
 
 
12
 
Note that there is currently no officially specified 'compatible'
13
 
string for the TI925T, Cortex-M3 or SA1110 CPUs.
14
 
 
15
 
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
16
 
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
17
 
Message-id: 1385140638-10444-6-git-send-email-peter.maydell@linaro.org
18
 
---
19
 
 target-arm/cpu-qom.h |  3 +++
20
 
 target-arm/cpu.c     | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
21
 
 2 files changed, 53 insertions(+)
22
 
 
23
 
diff --git a/target-arm/cpu-qom.h b/target-arm/cpu-qom.h
24
 
index b55306a..cbb9eec 100644
25
 
--- a/target-arm/cpu-qom.h
26
 
+++ b/target-arm/cpu-qom.h
27
 
@@ -91,6 +91,9 @@ typedef struct ARMCPU {
28
 
     /* GPIO outputs for generic timer */
29
 
     qemu_irq gt_timer_outputs[NUM_GTIMERS];
30
 
 
31
 
+    /* 'compatible' string for this CPU for Linux device trees */
32
 
+    const char *dtb_compatible;
33
 
+
34
 
     /* The instance init functions for implementation-specific subclasses
35
 
      * set these fields to specify the implementation-dependent values of
36
 
      * various constant registers and reset values of non-constant
37
 
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
38
 
index d40f2a7..4c8d9c7 100644
39
 
--- a/target-arm/cpu.c
40
 
+++ b/target-arm/cpu.c
41
 
@@ -217,6 +217,12 @@ static void arm_cpu_initfn(Object *obj)
42
 
                        ARRAY_SIZE(cpu->gt_timer_outputs));
43
 
 #endif
44
 
 
45
 
+    /* DTB consumers generally don't in fact care what the 'compatible'
46
 
+     * string is, so always provide some string and trust that a hypothetical
47
 
+     * picky DTB consumer will also provide a helpful error message.
48
 
+     */
49
 
+    cpu->dtb_compatible = "qemu,unknown";
50
 
+
51
 
     if (tcg_enabled() && !inited) {
52
 
         inited = true;
53
 
         arm_translate_init();
54
 
@@ -318,6 +324,8 @@ static ObjectClass *arm_cpu_class_by_name(const char *cpu_model)
55
 
 static void arm926_initfn(Object *obj)
56
 
 {
57
 
     ARMCPU *cpu = ARM_CPU(obj);
58
 
+
59
 
+    cpu->dtb_compatible = "arm,arm926";
60
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
61
 
     set_feature(&cpu->env, ARM_FEATURE_VFP);
62
 
     set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS);
63
 
@@ -331,6 +339,8 @@ static void arm926_initfn(Object *obj)
64
 
 static void arm946_initfn(Object *obj)
65
 
 {
66
 
     ARMCPU *cpu = ARM_CPU(obj);
67
 
+
68
 
+    cpu->dtb_compatible = "arm,arm946";
69
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
70
 
     set_feature(&cpu->env, ARM_FEATURE_MPU);
71
 
     set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS);
72
 
@@ -342,6 +352,8 @@ static void arm946_initfn(Object *obj)
73
 
 static void arm1026_initfn(Object *obj)
74
 
 {
75
 
     ARMCPU *cpu = ARM_CPU(obj);
76
 
+
77
 
+    cpu->dtb_compatible = "arm,arm1026";
78
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
79
 
     set_feature(&cpu->env, ARM_FEATURE_VFP);
80
 
     set_feature(&cpu->env, ARM_FEATURE_AUXCR);
81
 
@@ -374,6 +386,8 @@ static void arm1136_r2_initfn(Object *obj)
82
 
      * for 1136_r2 (in particular r0p2 does not actually implement most
83
 
      * of the ID registers).
84
 
      */
85
 
+
86
 
+    cpu->dtb_compatible = "arm,arm1136";
87
 
     set_feature(&cpu->env, ARM_FEATURE_V6);
88
 
     set_feature(&cpu->env, ARM_FEATURE_VFP);
89
 
     set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS);
90
 
@@ -403,6 +417,8 @@ static void arm1136_r2_initfn(Object *obj)
91
 
 static void arm1136_initfn(Object *obj)
92
 
 {
93
 
     ARMCPU *cpu = ARM_CPU(obj);
94
 
+
95
 
+    cpu->dtb_compatible = "arm,arm1136";
96
 
     set_feature(&cpu->env, ARM_FEATURE_V6K);
97
 
     set_feature(&cpu->env, ARM_FEATURE_V6);
98
 
     set_feature(&cpu->env, ARM_FEATURE_VFP);
99
 
@@ -433,6 +449,8 @@ static void arm1136_initfn(Object *obj)
100
 
 static void arm1176_initfn(Object *obj)
101
 
 {
102
 
     ARMCPU *cpu = ARM_CPU(obj);
103
 
+
104
 
+    cpu->dtb_compatible = "arm,arm1176";
105
 
     set_feature(&cpu->env, ARM_FEATURE_V6K);
106
 
     set_feature(&cpu->env, ARM_FEATURE_VFP);
107
 
     set_feature(&cpu->env, ARM_FEATURE_VAPA);
108
 
@@ -463,6 +481,8 @@ static void arm1176_initfn(Object *obj)
109
 
 static void arm11mpcore_initfn(Object *obj)
110
 
 {
111
 
     ARMCPU *cpu = ARM_CPU(obj);
112
 
+
113
 
+    cpu->dtb_compatible = "arm,arm11mpcore";
114
 
     set_feature(&cpu->env, ARM_FEATURE_V6K);
115
 
     set_feature(&cpu->env, ARM_FEATURE_VFP);
116
 
     set_feature(&cpu->env, ARM_FEATURE_VAPA);
117
 
@@ -516,6 +536,8 @@ static const ARMCPRegInfo cortexa8_cp_reginfo[] = {
118
 
 static void cortex_a8_initfn(Object *obj)
119
 
 {
120
 
     ARMCPU *cpu = ARM_CPU(obj);
121
 
+
122
 
+    cpu->dtb_compatible = "arm,cortex-a8";
123
 
     set_feature(&cpu->env, ARM_FEATURE_V7);
124
 
     set_feature(&cpu->env, ARM_FEATURE_VFP3);
125
 
     set_feature(&cpu->env, ARM_FEATURE_NEON);
126
 
@@ -580,6 +602,8 @@ static const ARMCPRegInfo cortexa9_cp_reginfo[] = {
127
 
 static void cortex_a9_initfn(Object *obj)
128
 
 {
129
 
     ARMCPU *cpu = ARM_CPU(obj);
130
 
+
131
 
+    cpu->dtb_compatible = "arm,cortex-a9";
132
 
     set_feature(&cpu->env, ARM_FEATURE_V7);
133
 
     set_feature(&cpu->env, ARM_FEATURE_VFP3);
134
 
     set_feature(&cpu->env, ARM_FEATURE_VFP_FP16);
135
 
@@ -649,6 +673,8 @@ static const ARMCPRegInfo cortexa15_cp_reginfo[] = {
136
 
 static void cortex_a15_initfn(Object *obj)
137
 
 {
138
 
     ARMCPU *cpu = ARM_CPU(obj);
139
 
+
140
 
+    cpu->dtb_compatible = "arm,cortex-a15";
141
 
     set_feature(&cpu->env, ARM_FEATURE_V7);
142
 
     set_feature(&cpu->env, ARM_FEATURE_VFP4);
143
 
     set_feature(&cpu->env, ARM_FEATURE_VFP_FP16);
144
 
@@ -697,6 +723,8 @@ static void ti925t_initfn(Object *obj)
145
 
 static void sa1100_initfn(Object *obj)
146
 
 {
147
 
     ARMCPU *cpu = ARM_CPU(obj);
148
 
+
149
 
+    cpu->dtb_compatible = "intel,sa1100";
150
 
     set_feature(&cpu->env, ARM_FEATURE_STRONGARM);
151
 
     set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS);
152
 
     cpu->midr = 0x4401A11B;
153
 
@@ -715,6 +743,8 @@ static void sa1110_initfn(Object *obj)
154
 
 static void pxa250_initfn(Object *obj)
155
 
 {
156
 
     ARMCPU *cpu = ARM_CPU(obj);
157
 
+
158
 
+    cpu->dtb_compatible = "marvell,xscale";
159
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
160
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
161
 
     cpu->midr = 0x69052100;
162
 
@@ -725,6 +755,8 @@ static void pxa250_initfn(Object *obj)
163
 
 static void pxa255_initfn(Object *obj)
164
 
 {
165
 
     ARMCPU *cpu = ARM_CPU(obj);
166
 
+
167
 
+    cpu->dtb_compatible = "marvell,xscale";
168
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
169
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
170
 
     cpu->midr = 0x69052d00;
171
 
@@ -735,6 +767,8 @@ static void pxa255_initfn(Object *obj)
172
 
 static void pxa260_initfn(Object *obj)
173
 
 {
174
 
     ARMCPU *cpu = ARM_CPU(obj);
175
 
+
176
 
+    cpu->dtb_compatible = "marvell,xscale";
177
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
178
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
179
 
     cpu->midr = 0x69052903;
180
 
@@ -745,6 +779,8 @@ static void pxa260_initfn(Object *obj)
181
 
 static void pxa261_initfn(Object *obj)
182
 
 {
183
 
     ARMCPU *cpu = ARM_CPU(obj);
184
 
+
185
 
+    cpu->dtb_compatible = "marvell,xscale";
186
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
187
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
188
 
     cpu->midr = 0x69052d05;
189
 
@@ -755,6 +791,8 @@ static void pxa261_initfn(Object *obj)
190
 
 static void pxa262_initfn(Object *obj)
191
 
 {
192
 
     ARMCPU *cpu = ARM_CPU(obj);
193
 
+
194
 
+    cpu->dtb_compatible = "marvell,xscale";
195
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
196
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
197
 
     cpu->midr = 0x69052d06;
198
 
@@ -765,6 +803,8 @@ static void pxa262_initfn(Object *obj)
199
 
 static void pxa270a0_initfn(Object *obj)
200
 
 {
201
 
     ARMCPU *cpu = ARM_CPU(obj);
202
 
+
203
 
+    cpu->dtb_compatible = "marvell,xscale";
204
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
205
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
206
 
     set_feature(&cpu->env, ARM_FEATURE_IWMMXT);
207
 
@@ -776,6 +816,8 @@ static void pxa270a0_initfn(Object *obj)
208
 
 static void pxa270a1_initfn(Object *obj)
209
 
 {
210
 
     ARMCPU *cpu = ARM_CPU(obj);
211
 
+
212
 
+    cpu->dtb_compatible = "marvell,xscale";
213
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
214
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
215
 
     set_feature(&cpu->env, ARM_FEATURE_IWMMXT);
216
 
@@ -787,6 +829,8 @@ static void pxa270a1_initfn(Object *obj)
217
 
 static void pxa270b0_initfn(Object *obj)
218
 
 {
219
 
     ARMCPU *cpu = ARM_CPU(obj);
220
 
+
221
 
+    cpu->dtb_compatible = "marvell,xscale";
222
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
223
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
224
 
     set_feature(&cpu->env, ARM_FEATURE_IWMMXT);
225
 
@@ -798,6 +842,8 @@ static void pxa270b0_initfn(Object *obj)
226
 
 static void pxa270b1_initfn(Object *obj)
227
 
 {
228
 
     ARMCPU *cpu = ARM_CPU(obj);
229
 
+
230
 
+    cpu->dtb_compatible = "marvell,xscale";
231
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
232
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
233
 
     set_feature(&cpu->env, ARM_FEATURE_IWMMXT);
234
 
@@ -809,6 +855,8 @@ static void pxa270b1_initfn(Object *obj)
235
 
 static void pxa270c0_initfn(Object *obj)
236
 
 {
237
 
     ARMCPU *cpu = ARM_CPU(obj);
238
 
+
239
 
+    cpu->dtb_compatible = "marvell,xscale";
240
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
241
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
242
 
     set_feature(&cpu->env, ARM_FEATURE_IWMMXT);
243
 
@@ -820,6 +868,8 @@ static void pxa270c0_initfn(Object *obj)
244
 
 static void pxa270c5_initfn(Object *obj)
245
 
 {
246
 
     ARMCPU *cpu = ARM_CPU(obj);
247
 
+
248
 
+    cpu->dtb_compatible = "marvell,xscale";
249
 
     set_feature(&cpu->env, ARM_FEATURE_V5);
250
 
     set_feature(&cpu->env, ARM_FEATURE_XSCALE);
251
 
     set_feature(&cpu->env, ARM_FEATURE_IWMMXT);
252
 
1.8.5.2
253