1
A big pullreq by number of patches, but most of them are just docs
1
v2: drop a couple of RTH's patches that he wants to rework.
2
updates or MAINTAINERS file fixes. The actual code changes are pretty
3
minimal bugfixes.
4
2
5
thanks
3
The following changes since commit 0266c739abbed804deabb4ccde2aa449466ac3b4:
6
-- PMM
7
4
8
The following changes since commit 8cc30eb1400fc01f2b139cdd3dc524f8b84dbe07:
5
Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-feb-14-2019' into staging (2019-02-14 18:33:00 +0000)
9
10
Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-20201122' into staging (2020-11-22 15:02:52 +0000)
11
6
12
are available in the Git repository at:
7
are available in the Git repository at:
13
8
14
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20201123
9
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20190215
15
10
16
for you to fetch changes up to c6ff78563ad2971f289168c7cae6ecb0b4359516:
11
for you to fetch changes up to 0f8b09b22234460cb5b8766a25066cf6b5f06842:
17
12
18
docs/system/pr-manager.rst: Fix minor docs nits (2020-11-23 11:10:04 +0000)
13
gdbstub: Send a reply to the vKill packet. (2019-02-15 09:56:41 +0000)
19
14
20
----------------------------------------------------------------
15
----------------------------------------------------------------
21
target-arm queue:
16
target-arm queue:
22
* incorporate 'orphan' rST docs into manuals
17
* gdbstub: Send a reply to the vKill packet
23
* linux-user/arm: Deliver SIGTRAP for UDF patterns used as breakpoints
18
* Improve codegen for neon min/max and saturating arithmetic
24
* target/arm: Make SYS_HEAPINFO work with RAM that doesn't start at 0
19
* Fix a bug in clearing FPSCR exception status bits
25
* document raspi boards and tosa
20
* hw/arm/armsse: Fix miswiring of expansion IRQs
26
* docs/system: Deprecate raspi2/raspi3 machine aliases
21
* hw/intc/armv7m_nvic: Allow byte accesses to SHPR1
27
* docs/system/arm: Document OpenPOWER Witherspoon BMC model Front LEDs
22
* MAINTAINERS: Remove Peter Crosthwaite from various entries
28
* MAINTAINERS: add lines for docs files for Arm boards
23
* arm: Allow system registers for KVM guests to be changed by QEMU code
29
* hw/intc: fix heap-buffer-overflow in rxicu_realize()
24
* linux-user: support HWCAP_CPUID which exposes ID registers to user code
30
* hw/arm: Fix bad print format specifiers
25
* Fix bug in 128-bit cmpxchg for BE Arm guests
31
* target/arm: fix stage 2 page-walks in 32-bit emulation
26
* Implement (no-op) HACR_EL2
27
* Fix CRn to be 14 for PMEVTYPER/PMEVCNTR
32
28
33
----------------------------------------------------------------
29
----------------------------------------------------------------
34
AlexChen (1):
30
Aaron Lindsay OS (1):
35
hw/arm: Fix bad print format specifiers
31
target/arm: Fix CRn to be 14 for PMEVTYPER/PMEVCNTR
36
32
37
Chen Qun (1):
33
Alex Bennée (5):
38
hw/intc: fix heap-buffer-overflow in rxicu_realize()
34
target/arm: relax permission checks for HWCAP_CPUID registers
35
target/arm: expose CPUID registers to userspace
36
target/arm: expose MPIDR_EL1 to userspace
37
target/arm: expose remaining CPUID registers as RAZ
38
linux-user/elfload: enable HWCAP_CPUID for AArch64
39
39
40
Peter Maydell (11):
40
Catherine Ho (1):
41
target/arm: Make SYS_HEAPINFO work with RAM that doesn't start at 0
41
target/arm: Fix int128_make128 lo, hi order in paired_cmpxchg64_be
42
linux-user/arm: Deliver SIGTRAP for UDF patterns used as breakpoints
43
docs: Move virtio-net-failover.rst into the system manual
44
docs: Move cpu-hotplug.rst into the system manual
45
docs: Move virtio-pmem.rst into the system manual
46
docs/system/virtio-pmem.rst: Fix minor style issues
47
docs: Split out 'pc' machine model docs into their own file
48
docs: Move microvm.rst into the system manual
49
docs: Move pr-manager.rst into the system manual
50
docs: Split qemu-pr-helper documentation into tools manual
51
docs/system/pr-manager.rst: Fix minor docs nits
52
42
53
Philippe Mathieu-Daudé (10):
43
Peter Maydell (5):
54
MAINTAINERS: Cover system/arm/cpu-features.rst with ARM TCG CPUs
44
target/arm: Implement HACR_EL2
55
MAINTAINERS: Cover system/arm/aspeed.rst with ASPEED BMC machines
45
arm: Allow system registers for KVM guests to be changed by QEMU code
56
MAINTAINERS: Cover system/arm/nuvoton.rst with Nuvoton NPCM7xx
46
MAINTAINERS: Remove Peter Crosthwaite from various entries
57
MAINTAINERS: Fix system/arm/orangepi.rst path
47
hw/intc/armv7m_nvic: Allow byte accesses to SHPR1
58
MAINTAINERS: Cover system/arm/sbsa.rst with SBSA-REF machine
48
hw/arm/armsse: Fix miswiring of expansion IRQs
59
MAINTAINERS: Cover system/arm/sx1.rst with OMAP machines
60
docs/system: Deprecate raspi2/raspi3 machine aliases
61
docs/system/arm: Document the various raspi boards
62
docs/system/arm: Document OpenPOWER Witherspoon BMC model Front LEDs
63
docs/system/arm: Document the Sharp Zaurus SL-6000
64
49
65
Rémi Denis-Courmont (1):
50
Richard Henderson (12):
66
target/arm: fix stage 2 page-walks in 32-bit emulation
51
target/arm: Rely on optimization within tcg_gen_gvec_or
52
target/arm: Use vector minmax expanders for aarch64
53
target/arm: Use vector minmax expanders for aarch32
54
target/arm: Use tcg integer min/max primitives for neon
55
target/arm: Remove neon min/max helpers
56
target/arm: Fix vfp_gdb_get/set_reg vs FPSCR
57
target/arm: Fix arm_cpu_dump_state vs FPSCR
58
target/arm: Split out flags setting from vfp compares
59
target/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR]
60
target/arm: Split out FPSCR.QC to a vector field
61
target/arm: Use vector operations for saturation
62
target/arm: Add missing clear_tail calls
67
63
68
docs/meson.build | 1 +
64
Sandra Loosemore (1):
69
docs/system/arm/aspeed.rst | 1 +
65
gdbstub: Send a reply to the vKill packet.
70
docs/system/arm/raspi.rst | 43 +++++++++++++++
71
docs/system/arm/xscale.rst | 20 ++++---
72
docs/{ => system}/cpu-hotplug.rst | 0
73
docs/system/deprecated.rst | 7 +++
74
docs/{ => system/i386}/microvm.rst | 5 +-
75
docs/system/i386/pc.rst | 7 +++
76
docs/system/index.rst | 4 ++
77
docs/{ => system}/pr-manager.rst | 44 +++------------
78
docs/system/target-arm.rst | 1 +
79
docs/system/target-i386.rst | 19 +++++--
80
docs/{ => system}/virtio-net-failover.rst | 0
81
docs/system/virtio-pmem.rst | 76 ++++++++++++++++++++++++++
82
docs/tools/conf.py | 2 +
83
docs/tools/index.rst | 1 +
84
docs/tools/qemu-pr-helper.rst | 90 +++++++++++++++++++++++++++++++
85
docs/virtio-pmem.rst | 76 --------------------------
86
hw/arm/pxa2xx.c | 2 +-
87
hw/arm/spitz.c | 2 +-
88
hw/arm/tosa.c | 2 +-
89
hw/intc/rx_icu.c | 18 +++----
90
linux-user/arm/cpu_loop.c | 28 ++++++++++
91
target/arm/arm-semi.c | 12 +++--
92
target/arm/helper.c | 4 +-
93
MAINTAINERS | 8 ++-
94
26 files changed, 326 insertions(+), 147 deletions(-)
95
create mode 100644 docs/system/arm/raspi.rst
96
rename docs/{ => system}/cpu-hotplug.rst (100%)
97
rename docs/{ => system/i386}/microvm.rst (98%)
98
create mode 100644 docs/system/i386/pc.rst
99
rename docs/{ => system}/pr-manager.rst (68%)
100
rename docs/{ => system}/virtio-net-failover.rst (100%)
101
create mode 100644 docs/system/virtio-pmem.rst
102
create mode 100644 docs/tools/qemu-pr-helper.rst
103
delete mode 100644 docs/virtio-pmem.rst
104
66
67
target/arm/cpu.h | 50 +++++++++-
68
target/arm/helper.h | 45 ++++++---
69
target/arm/translate.h | 4 +
70
gdbstub.c | 1 +
71
hw/arm/armsse.c | 2 +-
72
hw/intc/armv7m_nvic.c | 4 +-
73
linux-user/elfload.c | 1 +
74
target/arm/helper-a64.c | 4 +-
75
target/arm/helper.c | 228 ++++++++++++++++++++++++++++++++++++---------
76
target/arm/kvm32.c | 20 +---
77
target/arm/kvm64.c | 2 +
78
target/arm/machine.c | 2 +-
79
target/arm/neon_helper.c | 14 +--
80
target/arm/translate-a64.c | 77 ++++++---------
81
target/arm/translate-sve.c | 6 +-
82
target/arm/translate.c | 219 ++++++++++++++++++++++++++++++++++---------
83
target/arm/vec_helper.c | 134 +++++++++++++++++++++++++-
84
MAINTAINERS | 4 -
85
18 files changed, 622 insertions(+), 195 deletions(-)
86
diff view generated by jsdifflib
Deleted patch
1
From: Rémi Denis-Courmont <remi.denis.courmont@huawei.com>
2
1
3
Using a target unsigned long would limit the Input Address to a LPAE
4
page-walk to 32 bits on AArch32 and 64 bits on AArch64. This is okay
5
for stage 1 or on AArch64, but it is insufficient for stage 2 on
6
AArch32. In that later case, the Input Address can have up to 40 bits.
7
8
Signed-off-by: Rémi Denis-Courmont <remi.denis.courmont@huawei.com>
9
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
10
Message-id: 20201118150414.18360-1-remi@remlab.net
11
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12
---
13
target/arm/helper.c | 4 ++--
14
1 file changed, 2 insertions(+), 2 deletions(-)
15
16
diff --git a/target/arm/helper.c b/target/arm/helper.c
17
index XXXXXXX..XXXXXXX 100644
18
--- a/target/arm/helper.c
19
+++ b/target/arm/helper.c
20
@@ -XXX,XX +XXX,XX @@
21
22
#ifndef CONFIG_USER_ONLY
23
24
-static bool get_phys_addr_lpae(CPUARMState *env, target_ulong address,
25
+static bool get_phys_addr_lpae(CPUARMState *env, uint64_t address,
26
MMUAccessType access_type, ARMMMUIdx mmu_idx,
27
bool s1_is_el0,
28
hwaddr *phys_ptr, MemTxAttrs *txattrs, int *prot,
29
@@ -XXX,XX +XXX,XX @@ static ARMVAParameters aa32_va_parameters(CPUARMState *env, uint32_t va,
30
* @fi: set to fault info if the translation fails
31
* @cacheattrs: (if non-NULL) set to the cacheability/shareability attributes
32
*/
33
-static bool get_phys_addr_lpae(CPUARMState *env, target_ulong address,
34
+static bool get_phys_addr_lpae(CPUARMState *env, uint64_t address,
35
MMUAccessType access_type, ARMMMUIdx mmu_idx,
36
bool s1_is_el0,
37
hwaddr *phys_ptr, MemTxAttrs *txattrs, int *prot,
38
--
39
2.20.1
40
41
diff view generated by jsdifflib
Deleted patch
1
From: AlexChen <alex.chen@huawei.com>
2
1
3
We should use printf format specifier "%u" instead of "%i" for
4
argument of type "unsigned int".
5
6
Reported-by: Euler Robot <euler.robot@huawei.com>
7
Signed-off-by: Alex Chen <alex.chen@huawei.com>
8
Message-id: 5F9FD78B.8000300@huawei.com
9
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
11
---
12
hw/arm/pxa2xx.c | 2 +-
13
hw/arm/spitz.c | 2 +-
14
hw/arm/tosa.c | 2 +-
15
3 files changed, 3 insertions(+), 3 deletions(-)
16
17
diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
18
index XXXXXXX..XXXXXXX 100644
19
--- a/hw/arm/pxa2xx.c
20
+++ b/hw/arm/pxa2xx.c
21
@@ -XXX,XX +XXX,XX @@ static void pxa2xx_ssp_write(void *opaque, hwaddr addr,
22
if (value & SSCR0_MOD)
23
printf("%s: Attempt to use network mode\n", __func__);
24
if (s->enable && SSCR0_DSS(value) < 4)
25
- printf("%s: Wrong data size: %i bits\n", __func__,
26
+ printf("%s: Wrong data size: %u bits\n", __func__,
27
SSCR0_DSS(value));
28
if (!(value & SSCR0_SSE)) {
29
s->sssr = 0;
30
diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c
31
index XXXXXXX..XXXXXXX 100644
32
--- a/hw/arm/spitz.c
33
+++ b/hw/arm/spitz.c
34
@@ -XXX,XX +XXX,XX @@ struct SpitzLCDTG {
35
static void spitz_bl_update(SpitzLCDTG *s)
36
{
37
if (s->bl_power && s->bl_intensity)
38
- zaurus_printf("LCD Backlight now at %i/63\n", s->bl_intensity);
39
+ zaurus_printf("LCD Backlight now at %u/63\n", s->bl_intensity);
40
else
41
zaurus_printf("LCD Backlight now off\n");
42
}
43
diff --git a/hw/arm/tosa.c b/hw/arm/tosa.c
44
index XXXXXXX..XXXXXXX 100644
45
--- a/hw/arm/tosa.c
46
+++ b/hw/arm/tosa.c
47
@@ -XXX,XX +XXX,XX @@ static void tosa_gpio_setup(PXA2xxState *cpu,
48
49
static uint32_t tosa_ssp_tansfer(SSISlave *dev, uint32_t value)
50
{
51
- fprintf(stderr, "TG: %d %02x\n", value >> 5, value & 0x1f);
52
+ fprintf(stderr, "TG: %u %02x\n", value >> 5, value & 0x1f);
53
return 0;
54
}
55
56
--
57
2.20.1
58
59
diff view generated by jsdifflib
Deleted patch
1
From: Chen Qun <kuhn.chenqun@huawei.com>
2
1
3
When 'j = icu->nr_sense – 1', the 'j < icu->nr_sense' condition is true,
4
then 'j = icu->nr_sense', the'icu->init_sense[j]' has out-of-bounds access.
5
6
The asan showed stack:
7
ERROR: AddressSanitizer: heap-buffer-overflow on address 0x604000004d7d at pc 0x55852cd26a76 bp 0x7ffe39f26200 sp 0x7ffe39f261f0
8
READ of size 1 at 0x604000004d7d thread T0
9
#0 0x55852cd26a75 in rxicu_realize ../hw/intc/rx_icu.c:311
10
#1 0x55852cf075f7 in device_set_realized ../hw/core/qdev.c:886
11
#2 0x55852cd4a32f in property_set_bool ../qom/object.c:2251
12
#3 0x55852cd4f9bb in object_property_set ../qom/object.c:1398
13
#4 0x55852cd54f3f in object_property_set_qobject ../qom/qom-qobject.c:28
14
#5 0x55852cd4fc3f in object_property_set_bool ../qom/object.c:1465
15
#6 0x55852cbf0b27 in register_icu ../hw/rx/rx62n.c:156
16
#7 0x55852cbf12a6 in rx62n_realize ../hw/rx/rx62n.c:261
17
#8 0x55852cf075f7 in device_set_realized ../hw/core/qdev.c:886
18
#9 0x55852cd4a32f in property_set_bool ../qom/object.c:2251
19
#10 0x55852cd4f9bb in object_property_set ../qom/object.c:1398
20
#11 0x55852cd54f3f in object_property_set_qobject ../qom/qom-qobject.c:28
21
#12 0x55852cd4fc3f in object_property_set_bool ../qom/object.c:1465
22
#13 0x55852cbf1a85 in rx_gdbsim_init ../hw/rx/rx-gdbsim.c:109
23
#14 0x55852cd22de0 in qemu_init ../softmmu/vl.c:4380
24
#15 0x55852ca57088 in main ../softmmu/main.c:49
25
#16 0x7feefafa5d42 in __libc_start_main (/lib64/libc.so.6+0x26d42)
26
27
Add the 'ice->src[i].sense' initialize to the default value, and then
28
process init_sense array to identify which irqs should be level-triggered.
29
30
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
31
Reported-by: Euler Robot <euler.robot@huawei.com>
32
Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
33
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
34
Message-id: 20201111141733.2358800-1-kuhn.chenqun@huawei.com
35
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
36
---
37
hw/intc/rx_icu.c | 18 ++++++++----------
38
1 file changed, 8 insertions(+), 10 deletions(-)
39
40
diff --git a/hw/intc/rx_icu.c b/hw/intc/rx_icu.c
41
index XXXXXXX..XXXXXXX 100644
42
--- a/hw/intc/rx_icu.c
43
+++ b/hw/intc/rx_icu.c
44
@@ -XXX,XX +XXX,XX @@ static const MemoryRegionOps icu_ops = {
45
static void rxicu_realize(DeviceState *dev, Error **errp)
46
{
47
RXICUState *icu = RX_ICU(dev);
48
- int i, j;
49
+ int i;
50
51
if (icu->init_sense == NULL) {
52
qemu_log_mask(LOG_GUEST_ERROR,
53
"rx_icu: trigger-level property must be set.");
54
return;
55
}
56
- for (i = j = 0; i < NR_IRQS; i++) {
57
- if (icu->init_sense[j] == i) {
58
- icu->src[i].sense = TRG_LEVEL;
59
- if (j < icu->nr_sense) {
60
- j++;
61
- }
62
- } else {
63
- icu->src[i].sense = TRG_PEDGE;
64
- }
65
+
66
+ for (i = 0; i < NR_IRQS; i++) {
67
+ icu->src[i].sense = TRG_PEDGE;
68
+ }
69
+ for (i = 0; i < icu->nr_sense; i++) {
70
+ uint8_t irqno = icu->init_sense[i];
71
+ icu->src[irqno].sense = TRG_LEVEL;
72
}
73
icu->req_irq = -1;
74
}
75
--
76
2.20.1
77
78
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
4
Message-id: 20201120154545.2504625-2-f4bug@amsat.org
5
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
---
8
MAINTAINERS | 1 +
9
1 file changed, 1 insertion(+)
10
11
diff --git a/MAINTAINERS b/MAINTAINERS
12
index XXXXXXX..XXXXXXX 100644
13
--- a/MAINTAINERS
14
+++ b/MAINTAINERS
15
@@ -XXX,XX +XXX,XX @@ F: disas/arm.c
16
F: disas/arm-a64.cc
17
F: disas/libvixl/
18
F: docs/system/target-arm.rst
19
+F: docs/system/arm/cpu-features.rst
20
21
ARM SMMU
22
M: Eric Auger <eric.auger@redhat.com>
23
--
24
2.20.1
25
26
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
4
Reviewed-by: Cédric Le Goater <clg@kaod.org>
5
Message-id: 20201120154545.2504625-3-f4bug@amsat.org
6
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
7
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
8
---
9
MAINTAINERS | 1 +
10
1 file changed, 1 insertion(+)
11
12
diff --git a/MAINTAINERS b/MAINTAINERS
13
index XXXXXXX..XXXXXXX 100644
14
--- a/MAINTAINERS
15
+++ b/MAINTAINERS
16
@@ -XXX,XX +XXX,XX @@ F: include/hw/*/*aspeed*
17
F: include/hw/misc/pca9552*.h
18
F: hw/net/ftgmac100.c
19
F: include/hw/net/ftgmac100.h
20
+F: docs/system/arm/aspeed.rst
21
22
NRF51
23
M: Joel Stanley <joel@jms.id.au>
24
--
25
2.20.1
26
27
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
4
Message-id: 20201120154545.2504625-4-f4bug@amsat.org
5
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
---
8
MAINTAINERS | 1 +
9
1 file changed, 1 insertion(+)
10
11
diff --git a/MAINTAINERS b/MAINTAINERS
12
index XXXXXXX..XXXXXXX 100644
13
--- a/MAINTAINERS
14
+++ b/MAINTAINERS
15
@@ -XXX,XX +XXX,XX @@ F: include/hw/*/npcm7xx*
16
F: tests/qtest/npcm7xx*
17
F: pc-bios/npcm7xx_bootrom.bin
18
F: roms/vbootrom
19
+F: docs/system/arm/nuvoton.rst
20
21
nSeries
22
M: Andrzej Zaborowski <balrogg@gmail.com>
23
--
24
2.20.1
25
26
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Fixes: 0553ef42571 ("docs: add Orange Pi PC document")
4
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
5
Reviewed-by: Niek Linnenbank <nieklinnenbank@gmail.com>
6
Message-id: 20201120154545.2504625-5-f4bug@amsat.org
7
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
8
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
9
---
10
MAINTAINERS | 2 +-
11
1 file changed, 1 insertion(+), 1 deletion(-)
12
13
diff --git a/MAINTAINERS b/MAINTAINERS
14
index XXXXXXX..XXXXXXX 100644
15
--- a/MAINTAINERS
16
+++ b/MAINTAINERS
17
@@ -XXX,XX +XXX,XX @@ S: Maintained
18
F: hw/*/allwinner-h3*
19
F: include/hw/*/allwinner-h3*
20
F: hw/arm/orangepi.c
21
-F: docs/system/orangepi.rst
22
+F: docs/system/arm/orangepi.rst
23
24
ARM PrimeCell and CMSDK devices
25
M: Peter Maydell <peter.maydell@linaro.org>
26
--
27
2.20.1
28
29
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
4
Message-id: 20201120154545.2504625-6-f4bug@amsat.org
5
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
---
8
MAINTAINERS | 1 +
9
1 file changed, 1 insertion(+)
10
11
diff --git a/MAINTAINERS b/MAINTAINERS
12
index XXXXXXX..XXXXXXX 100644
13
--- a/MAINTAINERS
14
+++ b/MAINTAINERS
15
@@ -XXX,XX +XXX,XX @@ R: Leif Lindholm <leif@nuviainc.com>
16
L: qemu-arm@nongnu.org
17
S: Maintained
18
F: hw/arm/sbsa-ref.c
19
+F: docs/system/arm/sbsa.rst
20
21
Sharp SL-5500 (Collie) PDA
22
M: Peter Maydell <peter.maydell@linaro.org>
23
--
24
2.20.1
25
26
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
4
Message-id: 20201120154545.2504625-7-f4bug@amsat.org
5
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
---
8
MAINTAINERS | 1 +
9
1 file changed, 1 insertion(+)
10
11
diff --git a/MAINTAINERS b/MAINTAINERS
12
index XXXXXXX..XXXXXXX 100644
13
--- a/MAINTAINERS
14
+++ b/MAINTAINERS
15
@@ -XXX,XX +XXX,XX @@ L: qemu-arm@nongnu.org
16
S: Maintained
17
F: hw/*/omap*
18
F: include/hw/arm/omap.h
19
+F: docs/system/arm/sx1.rst
20
21
IPack
22
M: Alberto Garcia <berto@igalia.com>
23
--
24
2.20.1
25
26
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Since commit aa35ec2213b ("hw/arm/raspi: Use more specific
4
machine names") the raspi2/raspi3 machines have been renamed
5
as raspi2b/raspi3b.
6
7
Note, rather than the raspi3b, the raspi3ap introduced in
8
commit 5be94252d34 ("hw/arm/raspi: Add the Raspberry Pi 3
9
model A+") is a closer match to what QEMU models, but only
10
provides 512 MB of RAM.
11
12
As more Raspberry Pi 2/3 models are emulated, in order
13
to avoid confusion, deprecate the raspi2/raspi3 machine
14
aliases.
15
16
ACKed-by: Peter Krempa <pkrempa@redhat.com>
17
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
18
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
19
Message-id: 20201120173953.2539469-2-f4bug@amsat.org
20
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
21
---
22
docs/system/deprecated.rst | 7 +++++++
23
1 file changed, 7 insertions(+)
24
25
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
26
index XXXXXXX..XXXXXXX 100644
27
--- a/docs/system/deprecated.rst
28
+++ b/docs/system/deprecated.rst
29
@@ -XXX,XX +XXX,XX @@ This machine has been renamed ``fuloong2e``.
30
These machine types are very old and likely can not be used for live migration
31
from old QEMU versions anymore. A newer machine type should be used instead.
32
33
+Raspberry Pi ``raspi2`` and ``raspi3`` machines (since 5.2)
34
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
35
+
36
+The Raspberry Pi machines come in various models (A, A+, B, B+). To be able
37
+to distinguish which model QEMU is implementing, the ``raspi2`` and ``raspi3``
38
+machines have been renamed ``raspi2b`` and ``raspi3b``.
39
+
40
Device options
41
--------------
42
43
--
44
2.20.1
45
46
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Document the following Raspberry Pi models:
4
5
- raspi0 Raspberry Pi Zero (revision 1.2)
6
- raspi1ap Raspberry Pi A+ (revision 1.1)
7
- raspi2b Raspberry Pi 2B (revision 1.1)
8
- raspi3ap Raspberry Pi 3A+ (revision 1.0)
9
- raspi3b Raspberry Pi 3B (revision 1.2)
10
11
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
12
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
13
Message-id: 20201120173953.2539469-3-f4bug@amsat.org
14
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
15
---
16
docs/system/arm/raspi.rst | 43 ++++++++++++++++++++++++++++++++++++++
17
docs/system/target-arm.rst | 1 +
18
MAINTAINERS | 1 +
19
3 files changed, 45 insertions(+)
20
create mode 100644 docs/system/arm/raspi.rst
21
22
diff --git a/docs/system/arm/raspi.rst b/docs/system/arm/raspi.rst
23
new file mode 100644
24
index XXXXXXX..XXXXXXX
25
--- /dev/null
26
+++ b/docs/system/arm/raspi.rst
27
@@ -XXX,XX +XXX,XX @@
28
+Raspberry Pi boards (``raspi0``, ``raspi1ap``, ``raspi2b``, ``raspi3ap``, ``raspi3b``)
29
+======================================================================================
30
+
31
+
32
+QEMU provides models of the following Raspberry Pi boards:
33
+
34
+``raspi0`` and ``raspi1ap``
35
+ ARM1176JZF-S core, 512 MiB of RAM
36
+``raspi2b``
37
+ Cortex-A7 (4 cores), 1 GiB of RAM
38
+``raspi3ap``
39
+ Cortex-A53 (4 cores), 512 MiB of RAM
40
+``raspi3b``
41
+ Cortex-A53 (4 cores), 1 GiB of RAM
42
+
43
+
44
+Implemented devices
45
+-------------------
46
+
47
+ * ARM1176JZF-S, Cortex-A7 or Cortex-A53 CPU
48
+ * Interrupt controller
49
+ * DMA controller
50
+ * Clock and reset controller (CPRMAN)
51
+ * System Timer
52
+ * GPIO controller
53
+ * Serial ports (BCM2835 AUX - 16550 based - and PL011)
54
+ * Random Number Generator (RNG)
55
+ * Frame Buffer
56
+ * USB host (USBH)
57
+ * GPIO controller
58
+ * SD/MMC host controller
59
+ * SoC thermal sensor
60
+ * USB2 host controller (DWC2 and MPHI)
61
+ * MailBox controller (MBOX)
62
+ * VideoCore firmware (property)
63
+
64
+
65
+Missing devices
66
+---------------
67
+
68
+ * Peripheral SPI controller (SPI)
69
+ * Analog to Digital Converter (ADC)
70
+ * Pulse Width Modulation (PWM)
71
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
72
index XXXXXXX..XXXXXXX 100644
73
--- a/docs/system/target-arm.rst
74
+++ b/docs/system/target-arm.rst
75
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
76
arm/nuvoton
77
arm/orangepi
78
arm/palm
79
+ arm/raspi
80
arm/xscale
81
arm/collie
82
arm/sx1
83
diff --git a/MAINTAINERS b/MAINTAINERS
84
index XXXXXXX..XXXXXXX 100644
85
--- a/MAINTAINERS
86
+++ b/MAINTAINERS
87
@@ -XXX,XX +XXX,XX @@ F: hw/arm/raspi_platform.h
88
F: hw/*/bcm283*
89
F: include/hw/arm/raspi*
90
F: include/hw/*/bcm283*
91
+F: docs/system/arm/raspi.rst
92
93
Real View
94
M: Peter Maydell <peter.maydell@linaro.org>
95
--
96
2.20.1
97
98
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
Document the 3 front LEDs modeled on the OpenPOWER Witherspoon BMC
4
(see commit 7cfbde5ea1c "hw/arm/aspeed: Add the 3 front LEDs drived
5
by the PCA9552 #1").
6
7
Reviewed-by: Cédric Le Goater <clg@kaod.org>
8
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
9
Message-id: 20201120173953.2539469-4-f4bug@amsat.org
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
11
---
12
docs/system/arm/aspeed.rst | 1 +
13
1 file changed, 1 insertion(+)
14
15
diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst
16
index XXXXXXX..XXXXXXX 100644
17
--- a/docs/system/arm/aspeed.rst
18
+++ b/docs/system/arm/aspeed.rst
19
@@ -XXX,XX +XXX,XX @@ Supported devices
20
* GPIO Controller (Master only)
21
* UART
22
* Ethernet controllers
23
+ * Front LEDs (PCA9552 on I2C bus)
24
25
26
Missing devices
27
--
28
2.20.1
29
30
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
List the 'tosa' machine with the XScale-based PDAs models.
4
5
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
6
Message-id: 20201120173953.2539469-5-f4bug@amsat.org
7
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
8
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
9
---
10
docs/system/arm/xscale.rst | 20 +++++++++++++-------
11
1 file changed, 13 insertions(+), 7 deletions(-)
12
13
diff --git a/docs/system/arm/xscale.rst b/docs/system/arm/xscale.rst
14
index XXXXXXX..XXXXXXX 100644
15
--- a/docs/system/arm/xscale.rst
16
+++ b/docs/system/arm/xscale.rst
17
@@ -XXX,XX +XXX,XX @@
18
-Sharp XScale-based PDA models (``akita``, ``borzoi``, ``spitz``, ``terrier``)
19
-=============================================================================
20
+Sharp XScale-based PDA models (``akita``, ``borzoi``, ``spitz``, ``terrier``, ``tosa``)
21
+=======================================================================================
22
23
-The XScale-based clamshell PDA models (\"Spitz\", \"Akita\", \"Borzoi\"
24
-and \"Terrier\") emulation includes the following peripherals:
25
+The Sharp Zaurus are PDAs based on XScale, able to run Linux ('SL series').
26
27
-- Intel PXA270 System-on-chip (ARMv5TE core)
28
+The SL-6000 (\"Tosa\"), released in 2005, uses a PXA255 System-on-chip.
29
30
-- NAND Flash memory
31
+The SL-C3000 (\"Spitz\"), SL-C1000 (\"Akita\"), SL-C3100 (\"Borzoi\") and
32
+SL-C3200 (\"Terrier\") use a PXA270.
33
+
34
+The clamshell PDA models emulation includes the following peripherals:
35
+
36
+- Intel PXA255/PXA270 System-on-chip (ARMv5TE core)
37
+
38
+- NAND Flash memory - not in \"Tosa\"
39
40
- IBM/Hitachi DSCM microdrive in a PXA PCMCIA slot - not in \"Akita\"
41
42
-- On-chip OHCI USB controller
43
+- On-chip OHCI USB controller - not in \"Tosa\"
44
45
- On-chip LCD controller
46
47
--
48
2.20.1
49
50
diff view generated by jsdifflib
Deleted patch
1
The semihosting SYS_HEAPINFO call is supposed to return an array
2
of four guest addresses:
3
* base of heap memory
4
* limit of heap memory
5
* base of stack memory
6
* limit of stack memory
7
1
8
Some semihosting programs (including those compiled to use the
9
'newlib' embedded C library) use this call to work out where they
10
should initialize themselves to.
11
12
QEMU's implementation when in system emulation mode is very
13
simplistic: we say that the heap starts halfway into RAM and
14
continues to the end of RAM, and the stack starts at the top of RAM
15
and works down to the bottom. Unfortunately the code assumes that
16
the base address of RAM is at address 0, so on boards like 'virt'
17
where this is not true the addresses returned will all be wrong and
18
the guest application will usually crash.
19
20
Conveniently since all Arm boards call arm_load_kernel() we have the
21
base address of the main RAM block in the arm_boot_info struct which
22
is accessible via the CPU object. Use this to return sensible values
23
from SYS_HEAPINFO.
24
25
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
26
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
27
Message-id: 20201119092346.32356-1-peter.maydell@linaro.org
28
---
29
target/arm/arm-semi.c | 12 ++++++++----
30
1 file changed, 8 insertions(+), 4 deletions(-)
31
32
diff --git a/target/arm/arm-semi.c b/target/arm/arm-semi.c
33
index XXXXXXX..XXXXXXX 100644
34
--- a/target/arm/arm-semi.c
35
+++ b/target/arm/arm-semi.c
36
@@ -XXX,XX +XXX,XX @@
37
#else
38
#include "exec/gdbstub.h"
39
#include "qemu/cutils.h"
40
+#include "hw/arm/boot.h"
41
#endif
42
43
#define TARGET_SYS_OPEN 0x01
44
@@ -XXX,XX +XXX,XX @@ target_ulong do_arm_semihosting(CPUARMState *env)
45
int i;
46
#ifdef CONFIG_USER_ONLY
47
TaskState *ts = cs->opaque;
48
+#else
49
+ const struct arm_boot_info *info = env->boot_info;
50
+ target_ulong rambase = info->loader_start;
51
#endif
52
53
GET_ARG(0);
54
@@ -XXX,XX +XXX,XX @@ target_ulong do_arm_semihosting(CPUARMState *env)
55
#else
56
limit = ram_size;
57
/* TODO: Make this use the limit of the loaded application. */
58
- retvals[0] = limit / 2;
59
- retvals[1] = limit;
60
- retvals[2] = limit; /* Stack base */
61
- retvals[3] = 0; /* Stack limit. */
62
+ retvals[0] = rambase + limit / 2;
63
+ retvals[1] = rambase + limit;
64
+ retvals[2] = rambase + limit; /* Stack base */
65
+ retvals[3] = rambase; /* Stack limit. */
66
#endif
67
68
for (i = 0; i < ARRAY_SIZE(retvals); i++) {
69
--
70
2.20.1
71
72
diff view generated by jsdifflib
Deleted patch
1
The Linux kernel doesn't use the official bkpt insn for breakpoints;
2
instead it uses three instructions in the guaranteed-to-UNDEF space,
3
and generates SIGTRAP for these rather than the SIGILL that most
4
UNDEF insns generate:
5
1
6
https://elixir.bootlin.com/linux/v5.9.8/source/arch/arm/kernel/ptrace.c#L197
7
8
Make QEMU treat these insns specially too. The main benefit of this
9
is that if you're running a debugger on a guest program that runs
10
into a GCC __builtin_trap() or LLVM "trap because execution should
11
never reach here" then you'll get the expected signal rather than a
12
SIGILL.
13
14
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
15
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
16
Message-id: 20201117155634.6924-1-peter.maydell@linaro.org
17
---
18
linux-user/arm/cpu_loop.c | 28 ++++++++++++++++++++++++++++
19
1 file changed, 28 insertions(+)
20
21
diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c
22
index XXXXXXX..XXXXXXX 100644
23
--- a/linux-user/arm/cpu_loop.c
24
+++ b/linux-user/arm/cpu_loop.c
25
@@ -XXX,XX +XXX,XX @@ do_kernel_trap(CPUARMState *env)
26
return 0;
27
}
28
29
+static bool insn_is_linux_bkpt(uint32_t opcode, bool is_thumb)
30
+{
31
+ /*
32
+ * Return true if this insn is one of the three magic UDF insns
33
+ * which the kernel treats as breakpoint insns.
34
+ */
35
+ if (!is_thumb) {
36
+ return (opcode & 0x0fffffff) == 0x07f001f0;
37
+ } else {
38
+ /*
39
+ * Note that we get the two halves of the 32-bit T32 insn
40
+ * in the opposite order to the value the kernel uses in
41
+ * its undef_hook struct.
42
+ */
43
+ return ((opcode & 0xffff) == 0xde01) || (opcode == 0xa000f7f0);
44
+ }
45
+}
46
+
47
void cpu_loop(CPUARMState *env)
48
{
49
CPUState *cs = env_cpu(env);
50
@@ -XXX,XX +XXX,XX @@ void cpu_loop(CPUARMState *env)
51
/* FIXME - what to do if get_user() fails? */
52
get_user_code_u32(opcode, env->regs[15], env);
53
54
+ /*
55
+ * The Linux kernel treats some UDF patterns specially
56
+ * to use as breakpoints (instead of the architectural
57
+ * bkpt insn). These should trigger a SIGTRAP rather
58
+ * than SIGILL.
59
+ */
60
+ if (insn_is_linux_bkpt(opcode, env->thumb)) {
61
+ goto excp_debug;
62
+ }
63
+
64
rc = EmulateAll(opcode, &ts->fpa, env);
65
if (rc == 0) { /* illegal instruction */
66
info.si_signo = TARGET_SIGILL;
67
--
68
2.20.1
69
70
diff view generated by jsdifflib
Deleted patch
1
The virtio-net-failover documentation is currently orphan and
2
not included in any manual; move it into the system manual,
3
immediately following the general network emulation section.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
7
---
8
docs/system/index.rst | 1 +
9
docs/{ => system}/virtio-net-failover.rst | 0
10
2 files changed, 1 insertion(+)
11
rename docs/{ => system}/virtio-net-failover.rst (100%)
12
13
diff --git a/docs/system/index.rst b/docs/system/index.rst
14
index XXXXXXX..XXXXXXX 100644
15
--- a/docs/system/index.rst
16
+++ b/docs/system/index.rst
17
@@ -XXX,XX +XXX,XX @@ Contents:
18
monitor
19
images
20
net
21
+ virtio-net-failover
22
usb
23
ivshmem
24
linuxboot
25
diff --git a/docs/virtio-net-failover.rst b/docs/system/virtio-net-failover.rst
26
similarity index 100%
27
rename from docs/virtio-net-failover.rst
28
rename to docs/system/virtio-net-failover.rst
29
--
30
2.20.1
31
32
diff view generated by jsdifflib
Deleted patch
1
The cpu-hotplug.rst documentation is currently orphan and not
2
included in any manual; move it into the system manual.
3
1
4
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
6
---
7
docs/{ => system}/cpu-hotplug.rst | 0
8
docs/system/index.rst | 1 +
9
2 files changed, 1 insertion(+)
10
rename docs/{ => system}/cpu-hotplug.rst (100%)
11
12
diff --git a/docs/cpu-hotplug.rst b/docs/system/cpu-hotplug.rst
13
similarity index 100%
14
rename from docs/cpu-hotplug.rst
15
rename to docs/system/cpu-hotplug.rst
16
diff --git a/docs/system/index.rst b/docs/system/index.rst
17
index XXXXXXX..XXXXXXX 100644
18
--- a/docs/system/index.rst
19
+++ b/docs/system/index.rst
20
@@ -XXX,XX +XXX,XX @@ Contents:
21
tls
22
gdb
23
managed-startup
24
+ cpu-hotplug
25
targets
26
security
27
deprecated
28
--
29
2.20.1
30
31
diff view generated by jsdifflib
Deleted patch
1
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
3
---
4
docs/system/index.rst | 1 +
5
docs/{ => system}/virtio-pmem.rst | 0
6
2 files changed, 1 insertion(+)
7
rename docs/{ => system}/virtio-pmem.rst (100%)
8
1
9
diff --git a/docs/system/index.rst b/docs/system/index.rst
10
index XXXXXXX..XXXXXXX 100644
11
--- a/docs/system/index.rst
12
+++ b/docs/system/index.rst
13
@@ -XXX,XX +XXX,XX @@ Contents:
14
gdb
15
managed-startup
16
cpu-hotplug
17
+ virtio-pmem
18
targets
19
security
20
deprecated
21
diff --git a/docs/virtio-pmem.rst b/docs/system/virtio-pmem.rst
22
similarity index 100%
23
rename from docs/virtio-pmem.rst
24
rename to docs/system/virtio-pmem.rst
25
--
26
2.20.1
27
28
diff view generated by jsdifflib
Deleted patch
1
The virtio-pmem documentation has some minor style issues we hadn't
2
noticed since we weren't rendering it in our docs:
3
1
4
* Sphinx doesn't complain about overlong title-underlining the
5
way it complains about too-short underlining, but it looks odd;
6
make the underlines of section headers the right length
7
8
* Indent of paragraphs makes them render as blockquotes;
9
remove the indent so they just render as normal text
10
11
* Leading 'o' isn't rst markup, so it just renders as a literal
12
"o"; reformat as a subsection heading instead
13
14
* "QEMU" in the document title and section headings are a bit
15
odd and unnecessary since this is the QEMU manual; delete
16
or rephrase them
17
18
* There's no need to specify what QEMU version the device first
19
appeared in.
20
21
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
22
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
23
Reviewed-by: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
24
---
25
docs/system/virtio-pmem.rst | 60 ++++++++++++++++++-------------------
26
1 file changed, 30 insertions(+), 30 deletions(-)
27
28
diff --git a/docs/system/virtio-pmem.rst b/docs/system/virtio-pmem.rst
29
index XXXXXXX..XXXXXXX 100644
30
--- a/docs/system/virtio-pmem.rst
31
+++ b/docs/system/virtio-pmem.rst
32
@@ -XXX,XX +XXX,XX @@
33
34
-========================
35
-QEMU virtio pmem
36
-========================
37
+===========
38
+virtio pmem
39
+===========
40
41
- This document explains the setup and usage of the virtio pmem device
42
- which is available since QEMU v4.1.0.
43
-
44
- The virtio pmem device is a paravirtualized persistent memory device
45
- on regular (i.e non-NVDIMM) storage.
46
+This document explains the setup and usage of the virtio pmem device.
47
+The virtio pmem device is a paravirtualized persistent memory device
48
+on regular (i.e non-NVDIMM) storage.
49
50
Usecase
51
---------
52
+-------
53
54
- Virtio pmem allows to bypass the guest page cache and directly use
55
- host page cache. This reduces guest memory footprint as the host can
56
- make efficient memory reclaim decisions under memory pressure.
57
+Virtio pmem allows to bypass the guest page cache and directly use
58
+host page cache. This reduces guest memory footprint as the host can
59
+make efficient memory reclaim decisions under memory pressure.
60
61
-o How does virtio-pmem compare to the nvdimm emulation supported by QEMU?
62
+How does virtio-pmem compare to the nvdimm emulation?
63
+-----------------------------------------------------
64
65
- NVDIMM emulation on regular (i.e. non-NVDIMM) host storage does not
66
- persist the guest writes as there are no defined semantics in the device
67
- specification. The virtio pmem device provides guest write persistence
68
- on non-NVDIMM host storage.
69
+NVDIMM emulation on regular (i.e. non-NVDIMM) host storage does not
70
+persist the guest writes as there are no defined semantics in the device
71
+specification. The virtio pmem device provides guest write persistence
72
+on non-NVDIMM host storage.
73
74
virtio pmem usage
75
-----------------
76
77
- A virtio pmem device backed by a memory-backend-file can be created on
78
- the QEMU command line as in the following example::
79
+A virtio pmem device backed by a memory-backend-file can be created on
80
+the QEMU command line as in the following example::
81
82
-object memory-backend-file,id=mem1,share,mem-path=./virtio_pmem.img,size=4G
83
-device virtio-pmem-pci,memdev=mem1,id=nv1
84
85
- where:
86
+where:
87
88
- "object memory-backend-file,id=mem1,share,mem-path=<image>, size=<image size>"
89
creates a backend file with the specified size.
90
@@ -XXX,XX +XXX,XX @@ virtio pmem usage
91
- "device virtio-pmem-pci,id=nvdimm1,memdev=mem1" creates a virtio pmem
92
pci device whose storage is provided by above memory backend device.
93
94
- Multiple virtio pmem devices can be created if multiple pairs of "-object"
95
- and "-device" are provided.
96
+Multiple virtio pmem devices can be created if multiple pairs of "-object"
97
+and "-device" are provided.
98
99
Hotplug
100
-------
101
@@ -XXX,XX +XXX,XX @@ the guest::
102
Guest Data Persistence
103
----------------------
104
105
- Guest data persistence on non-NVDIMM requires guest userspace applications
106
- to perform fsync/msync. This is different from a real nvdimm backend where
107
- no additional fsync/msync is required. This is to persist guest writes in
108
- host backing file which otherwise remains in host page cache and there is
109
- risk of losing the data in case of power failure.
110
+Guest data persistence on non-NVDIMM requires guest userspace applications
111
+to perform fsync/msync. This is different from a real nvdimm backend where
112
+no additional fsync/msync is required. This is to persist guest writes in
113
+host backing file which otherwise remains in host page cache and there is
114
+risk of losing the data in case of power failure.
115
116
- With virtio pmem device, MAP_SYNC mmap flag is not supported. This provides
117
- a hint to application to perform fsync for write persistence.
118
+With virtio pmem device, MAP_SYNC mmap flag is not supported. This provides
119
+a hint to application to perform fsync for write persistence.
120
121
Limitations
122
-------------
123
+-----------
124
+
125
- Real nvdimm device backend is not supported.
126
- virtio pmem hotunplug is not supported.
127
- ACPI NVDIMM features like regions/namespaces are not supported.
128
--
129
2.20.1
130
131
diff view generated by jsdifflib
Deleted patch
1
Currently target-i386.rst includes the documentation of the 'pc'
2
machine model inline. Split it out into its own file, in a
3
similar way to target-i386.rst; this gives us a place to put
4
documentation of other i386 machine models, such as 'microvm'.
5
1
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
8
---
9
docs/system/i386/pc.rst | 7 +++++++
10
docs/system/target-i386.rst | 18 +++++++++++++-----
11
2 files changed, 20 insertions(+), 5 deletions(-)
12
create mode 100644 docs/system/i386/pc.rst
13
14
diff --git a/docs/system/i386/pc.rst b/docs/system/i386/pc.rst
15
new file mode 100644
16
index XXXXXXX..XXXXXXX
17
--- /dev/null
18
+++ b/docs/system/i386/pc.rst
19
@@ -XXX,XX +XXX,XX @@
20
+i440fx PC (``pc-i440fx``, ``pc``)
21
+=================================
22
+
23
+Peripherals
24
+~~~~~~~~~~~
25
+
26
+.. include:: ../target-i386-desc.rst.inc
27
diff --git a/docs/system/target-i386.rst b/docs/system/target-i386.rst
28
index XXXXXXX..XXXXXXX 100644
29
--- a/docs/system/target-i386.rst
30
+++ b/docs/system/target-i386.rst
31
@@ -XXX,XX +XXX,XX @@
32
.. _QEMU-PC-System-emulator:
33
34
-x86 (PC) System emulator
35
-------------------------
36
+x86 System emulator
37
+-------------------
38
39
.. _pcsys_005fdevices:
40
41
-Peripherals
42
-~~~~~~~~~~~
43
+Board-specific documentation
44
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
46
-.. include:: target-i386-desc.rst.inc
47
+..
48
+ This table of contents should be kept sorted alphabetically
49
+ by the title text of each file, which isn't the same ordering
50
+ as an alphabetical sort by filename.
51
+
52
+.. toctree::
53
+ :maxdepth: 1
54
+
55
+ i386/pc
56
57
.. include:: cpu-models-x86.rst.inc
58
59
--
60
2.20.1
61
62
diff view generated by jsdifflib
Deleted patch
1
Now that target-i386.rst has a place to list documentation of
2
machines other than the 'pc' machine, we have a place we can
3
move the microvm documentation to.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
7
---
8
docs/{ => system/i386}/microvm.rst | 5 ++---
9
docs/system/target-i386.rst | 1 +
10
2 files changed, 3 insertions(+), 3 deletions(-)
11
rename docs/{ => system/i386}/microvm.rst (98%)
12
13
diff --git a/docs/microvm.rst b/docs/system/i386/microvm.rst
14
similarity index 98%
15
rename from docs/microvm.rst
16
rename to docs/system/i386/microvm.rst
17
index XXXXXXX..XXXXXXX 100644
18
--- a/docs/microvm.rst
19
+++ b/docs/system/i386/microvm.rst
20
@@ -XXX,XX +XXX,XX @@
21
-====================
22
-microvm Machine Type
23
-====================
24
+'microvm' virtual platform (``microvm``)
25
+========================================
26
27
``microvm`` is a machine type inspired by ``Firecracker`` and
28
constructed after its machine model.
29
diff --git a/docs/system/target-i386.rst b/docs/system/target-i386.rst
30
index XXXXXXX..XXXXXXX 100644
31
--- a/docs/system/target-i386.rst
32
+++ b/docs/system/target-i386.rst
33
@@ -XXX,XX +XXX,XX @@ Board-specific documentation
34
.. toctree::
35
:maxdepth: 1
36
37
+ i386/microvm
38
i386/pc
39
40
.. include:: cpu-models-x86.rst.inc
41
--
42
2.20.1
43
44
diff view generated by jsdifflib
Deleted patch
1
Move the pr-manager documentation into the system manual.
2
Some of it (the documentation of the pr-manager-helper tool)
3
should be in tools, but we will split it up after moving it.
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
7
---
8
docs/system/index.rst | 1 +
9
docs/{ => system}/pr-manager.rst | 0
10
2 files changed, 1 insertion(+)
11
rename docs/{ => system}/pr-manager.rst (100%)
12
13
diff --git a/docs/system/index.rst b/docs/system/index.rst
14
index XXXXXXX..XXXXXXX 100644
15
--- a/docs/system/index.rst
16
+++ b/docs/system/index.rst
17
@@ -XXX,XX +XXX,XX @@ Contents:
18
managed-startup
19
cpu-hotplug
20
virtio-pmem
21
+ pr-manager
22
targets
23
security
24
deprecated
25
diff --git a/docs/pr-manager.rst b/docs/system/pr-manager.rst
26
similarity index 100%
27
rename from docs/pr-manager.rst
28
rename to docs/system/pr-manager.rst
29
--
30
2.20.1
31
32
diff view generated by jsdifflib
Deleted patch
1
Split the documentation of the qemu-pr-helper binary into the tools
2
manual, and give it a manpage like our other standalone executables.
3
1
4
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
6
---
7
docs/meson.build | 1 +
8
docs/system/pr-manager.rst | 38 ++-------------
9
docs/tools/conf.py | 2 +
10
docs/tools/index.rst | 1 +
11
docs/tools/qemu-pr-helper.rst | 90 +++++++++++++++++++++++++++++++++++
12
5 files changed, 99 insertions(+), 33 deletions(-)
13
create mode 100644 docs/tools/qemu-pr-helper.rst
14
15
diff --git a/docs/meson.build b/docs/meson.build
16
index XXXXXXX..XXXXXXX 100644
17
--- a/docs/meson.build
18
+++ b/docs/meson.build
19
@@ -XXX,XX +XXX,XX @@ if build_docs
20
'tools': {
21
'qemu-img.1': (have_tools ? 'man1' : ''),
22
'qemu-nbd.8': (have_tools ? 'man8' : ''),
23
+ 'qemu-pr-helper.8': (have_tools ? 'man8' : ''),
24
'qemu-trace-stap.1': (config_host.has_key('CONFIG_TRACE_SYSTEMTAP') ? 'man1' : ''),
25
'virtfs-proxy-helper.1': (have_virtfs_proxy_helper ? 'man1' : ''),
26
'virtiofsd.1': (have_virtiofsd ? 'man1' : ''),
27
diff --git a/docs/system/pr-manager.rst b/docs/system/pr-manager.rst
28
index XXXXXXX..XXXXXXX 100644
29
--- a/docs/system/pr-manager.rst
30
+++ b/docs/system/pr-manager.rst
31
@@ -XXX,XX +XXX,XX @@ Alternatively, using ``-blockdev``::
32
-blockdev node-name=hd,driver=raw,file.driver=host_device,file.filename=/dev/sdb,file.pr-manager=helper0
33
-device scsi-block,drive=hd
34
35
-----------------------------------
36
-Invoking :program:`qemu-pr-helper`
37
-----------------------------------
38
-
39
-QEMU provides an implementation of the persistent reservation helper,
40
-called :program:`qemu-pr-helper`. The helper should be started as a
41
-system service and supports the following option:
42
-
43
--d, --daemon run in the background
44
--q, --quiet decrease verbosity
45
--v, --verbose increase verbosity
46
--f, --pidfile=path PID file when running as a daemon
47
--k, --socket=path path to the socket
48
--T, --trace=trace-opts tracing options
49
-
50
-By default, the socket and PID file are placed in the runtime state
51
-directory, for example :file:`/var/run/qemu-pr-helper.sock` and
52
-:file:`/var/run/qemu-pr-helper.pid`. The PID file is not created
53
-unless :option:`-d` is passed too.
54
-
55
-:program:`qemu-pr-helper` can also use the systemd socket activation
56
-protocol. In this case, the systemd socket unit should specify a
57
-Unix stream socket, like this::
58
-
59
- [Socket]
60
- ListenStream=/var/run/qemu-pr-helper.sock
61
-
62
-After connecting to the socket, :program:`qemu-pr-helper`` can optionally drop
63
-root privileges, except for those capabilities that are needed for
64
-its operation. To do this, add the following options:
65
-
66
--u, --user=user user to drop privileges to
67
--g, --group=group group to drop privileges to
68
+You will also need to ensure that the helper program
69
+:command:`qemu-pr-helper` is running, and that it has been
70
+set up to use the same socket filename as your QEMU commandline
71
+specifies. See the qemu-pr-helper documentation or manpage for
72
+further details.
73
74
---------------------------------------------
75
Multipath devices and persistent reservations
76
diff --git a/docs/tools/conf.py b/docs/tools/conf.py
77
index XXXXXXX..XXXXXXX 100644
78
--- a/docs/tools/conf.py
79
+++ b/docs/tools/conf.py
80
@@ -XXX,XX +XXX,XX @@ man_pages = [
81
['Fabrice Bellard'], 1),
82
('qemu-nbd', 'qemu-nbd', u'QEMU Disk Network Block Device Server',
83
['Anthony Liguori <anthony@codemonkey.ws>'], 8),
84
+ ('qemu-pr-helper', 'qemu-pr-helper', 'QEMU persistent reservation helper',
85
+ [], 8),
86
('qemu-trace-stap', 'qemu-trace-stap', u'QEMU SystemTap trace tool',
87
[], 1),
88
('virtfs-proxy-helper', 'virtfs-proxy-helper',
89
diff --git a/docs/tools/index.rst b/docs/tools/index.rst
90
index XXXXXXX..XXXXXXX 100644
91
--- a/docs/tools/index.rst
92
+++ b/docs/tools/index.rst
93
@@ -XXX,XX +XXX,XX @@ Contents:
94
95
qemu-img
96
qemu-nbd
97
+ qemu-pr-helper
98
qemu-trace-stap
99
virtfs-proxy-helper
100
virtiofsd
101
diff --git a/docs/tools/qemu-pr-helper.rst b/docs/tools/qemu-pr-helper.rst
102
new file mode 100644
103
index XXXXXXX..XXXXXXX
104
--- /dev/null
105
+++ b/docs/tools/qemu-pr-helper.rst
106
@@ -XXX,XX +XXX,XX @@
107
+QEMU persistent reservation helper
108
+==================================
109
+
110
+Synopsis
111
+--------
112
+
113
+**qemu-pr-helper** [*OPTION*]
114
+
115
+Description
116
+-----------
117
+
118
+Implements the persistent reservation helper for QEMU.
119
+
120
+SCSI persistent reservations allow restricting access to block devices
121
+to specific initiators in a shared storage setup. When implementing
122
+clustering of virtual machines, it is a common requirement for virtual
123
+machines to send persistent reservation SCSI commands. However,
124
+the operating system restricts sending these commands to unprivileged
125
+programs because incorrect usage can disrupt regular operation of the
126
+storage fabric. QEMU's SCSI passthrough devices ``scsi-block``
127
+and ``scsi-generic`` support passing guest persistent reservation
128
+requests to a privileged external helper program. :program:`qemu-pr-helper`
129
+is that external helper; it creates a socket which QEMU can
130
+connect to to communicate with it.
131
+
132
+If you want to run VMs in a setup like this, this helper should be
133
+started as a system service, and you should read the QEMU manual
134
+section on "persistent reservation managers" to find out how to
135
+configure QEMU to connect to the socket created by
136
+:program:`qemu-pr-helper`.
137
+
138
+After connecting to the socket, :program:`qemu-pr-helper` can
139
+optionally drop root privileges, except for those capabilities that
140
+are needed for its operation.
141
+
142
+:program:`qemu-pr-helper` can also use the systemd socket activation
143
+protocol. In this case, the systemd socket unit should specify a
144
+Unix stream socket, like this::
145
+
146
+ [Socket]
147
+ ListenStream=/var/run/qemu-pr-helper.sock
148
+
149
+Options
150
+-------
151
+
152
+.. program:: qemu-pr-helper
153
+
154
+.. option:: -d, --daemon
155
+
156
+ run in the background (and create a PID file)
157
+
158
+.. option:: -q, --quiet
159
+
160
+ decrease verbosity
161
+
162
+.. option:: -v, --verbose
163
+
164
+ increase verbosity
165
+
166
+.. option:: -f, --pidfile=PATH
167
+
168
+ PID file when running as a daemon. By default the PID file
169
+ is created in the system runtime state directory, for example
170
+ :file:`/var/run/qemu-pr-helper.pid`.
171
+
172
+.. option:: -k, --socket=PATH
173
+
174
+ path to the socket. By default the socket is created in
175
+ the system runtime state directory, for example
176
+ :file:`/var/run/qemu-pr-helper.sock`.
177
+
178
+.. option:: -T, --trace [[enable=]PATTERN][,events=FILE][,file=FILE]
179
+
180
+ .. include:: ../qemu-option-trace.rst.inc
181
+
182
+.. option:: -u, --user=USER
183
+
184
+ user to drop privileges to
185
+
186
+.. option:: -g, --group=GROUP
187
+
188
+ group to drop privileges to
189
+
190
+.. option:: -h, --help
191
+
192
+ Display a help message and exit.
193
+
194
+.. option:: -V, --version
195
+
196
+ Display version information and exit.
197
--
198
2.20.1
199
200
diff view generated by jsdifflib
Deleted patch
1
Fix a couple of nits in pr-manager.rst:
2
* the title marker for the top level heading is overlength
3
* stray capital 'R' in the middle of a sentence
4
1
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
7
---
8
docs/system/pr-manager.rst | 6 +++---
9
1 file changed, 3 insertions(+), 3 deletions(-)
10
11
diff --git a/docs/system/pr-manager.rst b/docs/system/pr-manager.rst
12
index XXXXXXX..XXXXXXX 100644
13
--- a/docs/system/pr-manager.rst
14
+++ b/docs/system/pr-manager.rst
15
@@ -XXX,XX +XXX,XX @@
16
-======================================
17
+===============================
18
Persistent reservation managers
19
-======================================
20
+===============================
21
22
-SCSI persistent Reservations allow restricting access to block devices
23
+SCSI persistent reservations allow restricting access to block devices
24
to specific initiators in a shared storage setup. When implementing
25
clustering of virtual machines, it is a common requirement for virtual
26
machines to send persistent reservation SCSI commands. However,
27
--
28
2.20.1
29
30
diff view generated by jsdifflib