1 | A last collection of patches to squeeze in before rc0. | 1 | A big pullreq by number of patches, but most of them are just docs |
---|---|---|---|
2 | The patches from me are all bugfixes. Philippe's are just | 2 | updates or MAINTAINERS file fixes. The actual code changes are pretty |
3 | code-movement, but I wanted to get these into 4.1 because | 3 | minimal bugfixes. |
4 | that kind of patch is so painful to have to rebase. | ||
5 | (The diffstat is huge but it's just code moving from file to file.) | ||
6 | |||
7 | v2: fix up for clash with the qapi refactor which only | ||
8 | showed up in a build-from-clean. | ||
9 | 4 | ||
10 | thanks | 5 | thanks |
11 | -- PMM | 6 | -- PMM |
12 | 7 | ||
8 | The following changes since commit 8cc30eb1400fc01f2b139cdd3dc524f8b84dbe07: | ||
13 | 9 | ||
14 | The following changes since commit c3e1d838cfa5aac1a6210c8ddf182d0ef7d95dd8: | 10 | Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-20201122' into staging (2020-11-22 15:02:52 +0000) |
15 | |||
16 | Merge remote-tracking branch 'remotes/kraxel/tags/ui-20190704-pull-request' into staging (2019-07-04 16:43:13 +0100) | ||
17 | 11 | ||
18 | are available in the Git repository at: | 12 | are available in the Git repository at: |
19 | 13 | ||
20 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20190704-1 | 14 | https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20201123 |
21 | 15 | ||
22 | for you to fetch changes up to 89a11ff756410aecb87d2c774df6e45dbf4105c1: | 16 | for you to fetch changes up to c6ff78563ad2971f289168c7cae6ecb0b4359516: |
23 | 17 | ||
24 | target/arm: Correct VMOV_imm_dp handling of short vectors (2019-07-04 17:25:30 +0100) | 18 | docs/system/pr-manager.rst: Fix minor docs nits (2020-11-23 11:10:04 +0000) |
25 | 19 | ||
26 | ---------------------------------------------------------------- | 20 | ---------------------------------------------------------------- |
27 | target-arm queue: | 21 | target-arm queue: |
28 | * more code-movement to separate TCG-only functions into their own files | 22 | * incorporate 'orphan' rST docs into manuals |
29 | * Correct VMOV_imm_dp handling of short vectors | 23 | * linux-user/arm: Deliver SIGTRAP for UDF patterns used as breakpoints |
30 | * Execute Thumb instructions when their condbits are 0xf | 24 | * target/arm: Make SYS_HEAPINFO work with RAM that doesn't start at 0 |
31 | * armv7m_systick: Forbid non-privileged accesses | 25 | * document raspi boards and tosa |
32 | * Use _ra versions of cpu_stl_data() in v7M helpers | 26 | * docs/system: Deprecate raspi2/raspi3 machine aliases |
33 | * v8M: Check state of exception being returned from | 27 | * docs/system/arm: Document OpenPOWER Witherspoon BMC model Front LEDs |
34 | * v8M: Forcibly clear negative-priority exceptions on deactivate | 28 | * MAINTAINERS: add lines for docs files for Arm boards |
29 | * hw/intc: fix heap-buffer-overflow in rxicu_realize() | ||
30 | * hw/arm: Fix bad print format specifiers | ||
31 | * target/arm: fix stage 2 page-walks in 32-bit emulation | ||
35 | 32 | ||
36 | ---------------------------------------------------------------- | 33 | ---------------------------------------------------------------- |
37 | Peter Maydell (6): | 34 | AlexChen (1): |
38 | arm v8M: Forcibly clear negative-priority exceptions on deactivate | 35 | hw/arm: Fix bad print format specifiers |
39 | target/arm: v8M: Check state of exception being returned from | ||
40 | target/arm: Use _ra versions of cpu_stl_data() in v7M helpers | ||
41 | hw/timer/armv7m_systick: Forbid non-privileged accesses | ||
42 | target/arm: Execute Thumb instructions when their condbits are 0xf | ||
43 | target/arm: Correct VMOV_imm_dp handling of short vectors | ||
44 | 36 | ||
45 | Philippe Mathieu-Daudé (3): | 37 | Chen Qun (1): |
46 | target/arm: Move debug routines to debug_helper.c | 38 | hw/intc: fix heap-buffer-overflow in rxicu_realize() |
47 | target/arm: Restrict semi-hosting to TCG | ||
48 | target/arm/helper: Move M profile routines to m_helper.c | ||
49 | 39 | ||
50 | target/arm/Makefile.objs | 5 +- | 40 | Peter Maydell (11): |
51 | target/arm/cpu.h | 7 + | 41 | target/arm: Make SYS_HEAPINFO work with RAM that doesn't start at 0 |
52 | hw/intc/armv7m_nvic.c | 54 +- | 42 | linux-user/arm: Deliver SIGTRAP for UDF patterns used as breakpoints |
53 | hw/timer/armv7m_systick.c | 26 +- | 43 | docs: Move virtio-net-failover.rst into the system manual |
54 | target/arm/cpu.c | 9 +- | 44 | docs: Move cpu-hotplug.rst into the system manual |
55 | target/arm/debug_helper.c | 311 +++++ | 45 | docs: Move virtio-pmem.rst into the system manual |
56 | target/arm/helper.c | 2646 +-------------------------------------- | 46 | docs/system/virtio-pmem.rst: Fix minor style issues |
57 | target/arm/m_helper.c | 2679 ++++++++++++++++++++++++++++++++++++++++ | 47 | docs: Split out 'pc' machine model docs into their own file |
58 | target/arm/op_helper.c | 295 ----- | 48 | docs: Move microvm.rst into the system manual |
59 | target/arm/translate-vfp.inc.c | 2 +- | 49 | docs: Move pr-manager.rst into the system manual |
60 | target/arm/translate.c | 15 +- | 50 | docs: Split qemu-pr-helper documentation into tools manual |
61 | 11 files changed, 3096 insertions(+), 2953 deletions(-) | 51 | docs/system/pr-manager.rst: Fix minor docs nits |
62 | create mode 100644 target/arm/debug_helper.c | ||
63 | create mode 100644 target/arm/m_helper.c | ||
64 | 52 | ||
53 | Philippe Mathieu-Daudé (10): | ||
54 | MAINTAINERS: Cover system/arm/cpu-features.rst with ARM TCG CPUs | ||
55 | MAINTAINERS: Cover system/arm/aspeed.rst with ASPEED BMC machines | ||
56 | MAINTAINERS: Cover system/arm/nuvoton.rst with Nuvoton NPCM7xx | ||
57 | MAINTAINERS: Fix system/arm/orangepi.rst path | ||
58 | MAINTAINERS: Cover system/arm/sbsa.rst with SBSA-REF machine | ||
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 | |||
65 | Rémi Denis-Courmont (1): | ||
66 | target/arm: fix stage 2 page-walks in 32-bit emulation | ||
67 | |||
68 | docs/meson.build | 1 + | ||
69 | docs/system/arm/aspeed.rst | 1 + | ||
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 | diff view generated by jsdifflib |
New patch | |||
---|---|---|---|
1 | From: Rémi Denis-Courmont <remi.denis.courmont@huawei.com> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: AlexChen <alex.chen@huawei.com> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Chen Qun <kuhn.chenqun@huawei.com> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New patch | |||
---|---|---|---|
1 | From: Philippe Mathieu-Daudé <f4bug@amsat.org> | ||
1 | 2 | ||
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 |
New 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 | ||
1 | 7 | ||
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 |
New 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: | ||
1 | 5 | ||
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 |
New 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. | ||
1 | 4 | ||
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 |
New patch | |||
---|---|---|---|
1 | The cpu-hotplug.rst documentation is currently orphan and not | ||
2 | included in any manual; move it into the system manual. | ||
1 | 3 | ||
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 |
New 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%) | ||
1 | 8 | ||
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 |
New 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: | ||
1 | 3 | ||
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 |
New 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'. | ||
1 | 5 | ||
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 |
New 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. | ||
1 | 4 | ||
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 |
New 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. | ||
1 | 4 | ||
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 |
New patch | |||
---|---|---|---|
1 | 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 | |||
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 |
New 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 | ||
1 | 4 | ||
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 |