1
Patches for rc1: nothing major, just some minor bugfixes and
1
Last few changes before rc0: a few bug fixes, but mostly
2
code cleanups.
2
docs stuff.
3
3
4
-- PMM
4
-- PMM
5
5
6
The following changes since commit f7e1914adad8885a5d4c70239ab90d901ed97e9f:
6
The following changes since commit a97fca4ceb9d9b10aa8b582e817a5ee6c42ffbaf:
7
7
8
Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20201109' into staging (2020-11-10 09:24:56 +0000)
8
Merge remote-tracking branch 'remotes/mst/tags/for_upstream3' into staging (2021-07-16 16:34:42 +0100)
9
9
10
are available in the Git repository at:
10
are available in the Git repository at:
11
11
12
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20201110
12
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210718
13
13
14
for you to fetch changes up to b6c56c8a9a4064ea783f352f43c5df6231a110fa:
14
for you to fetch changes up to 8fe612a183dec4c63afdc57537079bc742d024ca:
15
15
16
target/arm/translate-neon.c: Handle VTBL UNDEF case before VFP access check (2020-11-10 11:03:48 +0000)
16
target/arm: Remove duplicate 'plus1' function from Neon and SVE decode (2021-07-18 10:59:47 +0100)
17
17
18
----------------------------------------------------------------
18
----------------------------------------------------------------
19
target-arm queue:
19
target-arm queue:
20
* hw/arm/Kconfig: ARM_V7M depends on PTIMER
20
* Remove duplicate 'plus1' function from Neon and SVE decode
21
* Minor coding style fixes
21
* Fix offsets for TTBCR for big-endian hosts
22
* docs: add some notes on the sbsa-ref machine
22
* docs: fix copyright date
23
* hw/arm/virt: Remove dependency on Cortex-A15 MPCore peripherals
23
* docs: add license/version info to HTML footers
24
* target/arm: Fix neon VTBL/VTBX for len > 1
24
* docs: add an About section
25
* hw/arm/armsse: Correct expansion MPC interrupt lines
25
* docs: document some more arm boards
26
* hw/misc/stm32f2xx_syscfg: Remove extraneous IRQ
27
* hw/arm/nseries: Remove invalid/unnecessary n8x0_uart_setup()
28
* hw/arm/musicpal: Don't connect two qemu_irqs directly to the same input
29
* hw/arm/musicpal: Only use qdev_get_gpio_in() when necessary
30
* hw/arm/nseries: Check return value from load_image_targphys()
31
* tests/qtest/npcm7xx_rng-test: count runs properly
32
* target/arm/translate-neon.c: Handle VTBL UNDEF case before VFP access check
33
26
34
----------------------------------------------------------------
27
----------------------------------------------------------------
35
Alex Bennée (1):
28
Peter Maydell (11):
36
docs: add some notes on the sbsa-ref machine
29
docs: Fix documentation Copyright date
37
30
docs: Stop calling the top level subsections of our manual 'manuals'
38
AlexChen (1):
31
docs: Remove "Contents:" lines from top-level subsections
39
ssi: Fix bad printf format specifiers
32
docs: Move deprecation, build and license info out of system/
40
33
docs: Add some actual About text to about/index.rst
41
Andrew Jones (1):
34
docs: Add license note to the HTML page footer
42
hw/arm/Kconfig: ARM_V7M depends on PTIMER
35
docs: Add QEMU version information to HTML footer
43
36
docs: Add skeletal documentation of cubieboard
44
Havard Skinnemoen (1):
37
docs: Add skeletal documentation of the emcraft-sf2
45
tests/qtest/npcm7xx_rng-test: count runs properly
38
docs: Add skeletal documentation of highbank and midway
46
39
target/arm: Remove duplicate 'plus1' function from Neon and SVE decode
47
Peter Maydell (2):
48
hw/arm/nseries: Check return value from load_image_targphys()
49
target/arm/translate-neon.c: Handle VTBL UNDEF case before VFP access check
50
51
Philippe Mathieu-Daudé (6):
52
hw/arm/virt: Remove dependency on Cortex-A15 MPCore peripherals
53
hw/arm/armsse: Correct expansion MPC interrupt lines
54
hw/misc/stm32f2xx_syscfg: Remove extraneous IRQ
55
hw/arm/nseries: Remove invalid/unnecessary n8x0_uart_setup()
56
hw/arm/musicpal: Don't connect two qemu_irqs directly to the same input
57
hw/arm/musicpal: Only use qdev_get_gpio_in() when necessary
58
40
59
Richard Henderson (1):
41
Richard Henderson (1):
60
target/arm: Fix neon VTBL/VTBX for len > 1
42
target/arm: Fix offsets for TTBCR
61
43
62
Xinhao Zhang (3):
44
docs/_templates/footer.html | 14 ++++++++++++++
63
target/arm: add spaces around operator
45
docs/{system => about}/build-platforms.rst | 0
64
target/arm: Don't use '#' flag of printf format
46
docs/{system => about}/deprecated.rst | 0
65
target/arm: add space before the open parenthesis '('
47
docs/about/index.rst | 27 +++++++++++++++++++++++++++
48
docs/{system => about}/license.rst | 0
49
docs/{system => about}/removed-features.rst | 0
50
docs/conf.py | 2 +-
51
docs/devel/index.rst | 7 +------
52
docs/index.rst | 1 +
53
docs/interop/index.rst | 9 ++-------
54
docs/meson.build | 3 ++-
55
docs/specs/index.rst | 7 ++-----
56
docs/system/arm/cubieboard.rst | 16 ++++++++++++++++
57
docs/system/arm/emcraft-sf2.rst | 15 +++++++++++++++
58
docs/system/arm/highbank.rst | 19 +++++++++++++++++++
59
docs/system/index.rst | 11 +----------
60
docs/system/target-arm.rst | 3 +++
61
docs/tools/index.rst | 7 ++-----
62
docs/user/index.rst | 7 +------
63
target/arm/neon-ls.decode | 4 ++--
64
target/arm/neon-shared.decode | 2 +-
65
target/arm/sve.decode | 2 +-
66
target/arm/helper.c | 11 +++++++----
67
target/arm/translate-neon.c | 5 -----
68
target/arm/translate-sve.c | 5 -----
69
MAINTAINERS | 4 ++++
70
26 files changed, 122 insertions(+), 59 deletions(-)
71
create mode 100644 docs/_templates/footer.html
72
rename docs/{system => about}/build-platforms.rst (100%)
73
rename docs/{system => about}/deprecated.rst (100%)
74
create mode 100644 docs/about/index.rst
75
rename docs/{system => about}/license.rst (100%)
76
rename docs/{system => about}/removed-features.rst (100%)
77
create mode 100644 docs/system/arm/cubieboard.rst
78
create mode 100644 docs/system/arm/emcraft-sf2.rst
79
create mode 100644 docs/system/arm/highbank.rst
66
80
67
docs/system/arm/sbsa.rst | 32 ++++++++++++++++++++++
68
docs/system/target-arm.rst | 1 +
69
include/hw/misc/stm32f2xx_syscfg.h | 2 --
70
target/arm/helper.h | 2 +-
71
hw/arm/armsse.c | 3 +-
72
hw/arm/musicpal.c | 40 +++++++++++++++++----------
73
hw/arm/nseries.c | 26 ++++++++----------
74
hw/arm/stm32f205_soc.c | 1 -
75
hw/misc/stm32f2xx_syscfg.c | 2 --
76
hw/ssi/imx_spi.c | 2 +-
77
hw/ssi/xilinx_spi.c | 2 +-
78
target/arm/arch_dump.c | 8 +++---
79
target/arm/arm-semi.c | 8 +++---
80
target/arm/helper.c | 2 +-
81
target/arm/op_helper.c | 23 +++++++++-------
82
target/arm/translate-a64.c | 4 +--
83
target/arm/translate.c | 2 +-
84
tests/qtest/npcm7xx_rng-test.c | 2 +-
85
hw/arm/Kconfig | 3 +-
86
target/arm/translate-neon.c.inc | 56 ++++++++++++++------------------------
87
20 files changed, 123 insertions(+), 98 deletions(-)
88
create mode 100644 docs/system/arm/sbsa.rst
89
diff view generated by jsdifflib
Deleted patch
1
From: Andrew Jones <drjones@redhat.com>
2
1
3
commit 32bd322a0134 ("hw/timer/armv7m_systick: Rewrite to use ptimers")
4
changed armv7m_systick to build on ptimers. Make sure we have ptimers
5
in the build when building armv7m_systick.
6
7
Signed-off-by: Andrew Jones <drjones@redhat.com>
8
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
9
Message-id: 20201104103343.30392-1-drjones@redhat.com
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
11
---
12
hw/arm/Kconfig | 1 +
13
1 file changed, 1 insertion(+)
14
15
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
16
index XXXXXXX..XXXXXXX 100644
17
--- a/hw/arm/Kconfig
18
+++ b/hw/arm/Kconfig
19
@@ -XXX,XX +XXX,XX @@ config ZYNQ
20
21
config ARM_V7M
22
bool
23
+ select PTIMER
24
25
config ALLWINNER_A10
26
bool
27
--
28
2.20.1
29
30
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 "%d" 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
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
9
Message-id: 5FA280F5.8060902@huawei.com
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
11
---
12
hw/ssi/imx_spi.c | 2 +-
13
hw/ssi/xilinx_spi.c | 2 +-
14
2 files changed, 2 insertions(+), 2 deletions(-)
15
16
diff --git a/hw/ssi/imx_spi.c b/hw/ssi/imx_spi.c
17
index XXXXXXX..XXXXXXX 100644
18
--- a/hw/ssi/imx_spi.c
19
+++ b/hw/ssi/imx_spi.c
20
@@ -XXX,XX +XXX,XX @@ static const char *imx_spi_reg_name(uint32_t reg)
21
case ECSPI_MSGDATA:
22
return "ECSPI_MSGDATA";
23
default:
24
- sprintf(unknown, "%d ?", reg);
25
+ sprintf(unknown, "%u ?", reg);
26
return unknown;
27
}
28
}
29
diff --git a/hw/ssi/xilinx_spi.c b/hw/ssi/xilinx_spi.c
30
index XXXXXXX..XXXXXXX 100644
31
--- a/hw/ssi/xilinx_spi.c
32
+++ b/hw/ssi/xilinx_spi.c
33
@@ -XXX,XX +XXX,XX @@ static void xlx_spi_update_irq(XilinxSPI *s)
34
irq chain unless things really changed. */
35
if (pending != s->irqline) {
36
s->irqline = pending;
37
- DB_PRINT("irq_change of state %d ISR:%x IER:%X\n",
38
+ DB_PRINT("irq_change of state %u ISR:%x IER:%X\n",
39
pending, s->regs[R_IPISR], s->regs[R_IPIER]);
40
qemu_set_irq(s->irq, pending);
41
}
42
--
43
2.20.1
44
45
diff view generated by jsdifflib
1
From: Xinhao Zhang <zhangxinhao1@huawei.com>
1
From: Richard Henderson <richard.henderson@linaro.org>
2
2
3
Fix code style. Operator needs spaces both sides.
3
The functions vmsa_ttbcr_write and vmsa_ttbcr_raw_write expect
4
the offset to be for the complete TCR structure, not the offset
5
to the low 32-bits of a uint64_t. Using offsetoflow32 in this
6
case breaks big-endian hosts.
4
7
5
Signed-off-by: Xinhao Zhang <zhangxinhao1@huawei.com>
8
For TTBCR2, we do want the high 32-bits of a uint64_t.
6
Signed-off-by: Kai Deng <dengkai1@huawei.com>
9
Use cp15.tcr_el[*].raw_tcr as the offsetofhigh32 argument to
7
Message-id: 20201103114529.638233-1-zhangxinhao1@huawei.com
10
clarify this.
11
12
Buglink: https://gitlab.com/qemu-project/qemu/-/issues/187
13
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
14
Message-id: 20210709230621.938821-2-richard.henderson@linaro.org
8
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
15
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
16
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10
---
17
---
11
target/arm/arch_dump.c | 8 ++++----
18
target/arm/helper.c | 11 +++++++----
12
target/arm/arm-semi.c | 8 ++++----
19
1 file changed, 7 insertions(+), 4 deletions(-)
13
target/arm/helper.c | 2 +-
14
3 files changed, 9 insertions(+), 9 deletions(-)
15
20
16
diff --git a/target/arm/arch_dump.c b/target/arm/arch_dump.c
17
index XXXXXXX..XXXXXXX 100644
18
--- a/target/arm/arch_dump.c
19
+++ b/target/arm/arch_dump.c
20
@@ -XXX,XX +XXX,XX @@ static int aarch64_write_elf64_prfpreg(WriteCoreDumpFunction f,
21
22
for (i = 0; i < 32; ++i) {
23
uint64_t *q = aa64_vfp_qreg(env, i);
24
- note.vfp.vregs[2*i + 0] = cpu_to_dump64(s, q[0]);
25
- note.vfp.vregs[2*i + 1] = cpu_to_dump64(s, q[1]);
26
+ note.vfp.vregs[2 * i + 0] = cpu_to_dump64(s, q[0]);
27
+ note.vfp.vregs[2 * i + 1] = cpu_to_dump64(s, q[1]);
28
}
29
30
if (s->dump_info.d_endian == ELFDATA2MSB) {
31
@@ -XXX,XX +XXX,XX @@ static int aarch64_write_elf64_prfpreg(WriteCoreDumpFunction f,
32
*/
33
for (i = 0; i < 32; ++i) {
34
uint64_t tmp = note.vfp.vregs[2*i];
35
- note.vfp.vregs[2*i] = note.vfp.vregs[2*i+1];
36
- note.vfp.vregs[2*i+1] = tmp;
37
+ note.vfp.vregs[2 * i] = note.vfp.vregs[2 * i + 1];
38
+ note.vfp.vregs[2 * i + 1] = tmp;
39
}
40
}
41
42
diff --git a/target/arm/arm-semi.c b/target/arm/arm-semi.c
43
index XXXXXXX..XXXXXXX 100644
44
--- a/target/arm/arm-semi.c
45
+++ b/target/arm/arm-semi.c
46
@@ -XXX,XX +XXX,XX @@ target_ulong do_arm_semihosting(CPUARMState *env)
47
if (use_gdb_syscalls()) {
48
arm_semi_open_guestfd = guestfd;
49
ret = arm_gdb_syscall(cpu, arm_semi_open_cb, "open,%s,%x,1a4", arg0,
50
- (int)arg2+1, gdb_open_modeflags[arg1]);
51
+ (int)arg2 + 1, gdb_open_modeflags[arg1]);
52
} else {
53
ret = set_swi_errno(env, open(s, open_modeflags[arg1], 0644));
54
if (ret == (uint32_t)-1) {
55
@@ -XXX,XX +XXX,XX @@ target_ulong do_arm_semihosting(CPUARMState *env)
56
GET_ARG(1);
57
if (use_gdb_syscalls()) {
58
ret = arm_gdb_syscall(cpu, arm_semi_cb, "unlink,%s",
59
- arg0, (int)arg1+1);
60
+ arg0, (int)arg1 + 1);
61
} else {
62
s = lock_user_string(arg0);
63
if (!s) {
64
@@ -XXX,XX +XXX,XX @@ target_ulong do_arm_semihosting(CPUARMState *env)
65
GET_ARG(3);
66
if (use_gdb_syscalls()) {
67
return arm_gdb_syscall(cpu, arm_semi_cb, "rename,%s,%s",
68
- arg0, (int)arg1+1, arg2, (int)arg3+1);
69
+ arg0, (int)arg1 + 1, arg2, (int)arg3 + 1);
70
} else {
71
char *s2;
72
s = lock_user_string(arg0);
73
@@ -XXX,XX +XXX,XX @@ target_ulong do_arm_semihosting(CPUARMState *env)
74
GET_ARG(1);
75
if (use_gdb_syscalls()) {
76
return arm_gdb_syscall(cpu, arm_semi_cb, "system,%s",
77
- arg0, (int)arg1+1);
78
+ arg0, (int)arg1 + 1);
79
} else {
80
s = lock_user_string(arg0);
81
if (!s) {
82
diff --git a/target/arm/helper.c b/target/arm/helper.c
21
diff --git a/target/arm/helper.c b/target/arm/helper.c
83
index XXXXXXX..XXXXXXX 100644
22
index XXXXXXX..XXXXXXX 100644
84
--- a/target/arm/helper.c
23
--- a/target/arm/helper.c
85
+++ b/target/arm/helper.c
24
+++ b/target/arm/helper.c
86
@@ -XXX,XX +XXX,XX @@ uint32_t HELPER(usad8)(uint32_t a, uint32_t b)
25
@@ -XXX,XX +XXX,XX @@ static const ARMCPRegInfo vmsa_cp_reginfo[] = {
87
uint32_t sum;
26
.access = PL1_RW, .accessfn = access_tvm_trvm,
88
sum = do_usad(a, b);
27
.type = ARM_CP_ALIAS, .writefn = vmsa_ttbcr_write,
89
sum += do_usad(a >> 8, b >> 8);
28
.raw_writefn = vmsa_ttbcr_raw_write,
90
- sum += do_usad(a >> 16, b >>16);
29
- .bank_fieldoffsets = { offsetoflow32(CPUARMState, cp15.tcr_el[3]),
91
+ sum += do_usad(a >> 16, b >> 16);
30
- offsetoflow32(CPUARMState, cp15.tcr_el[1])} },
92
sum += do_usad(a >> 24, b >> 24);
31
+ /* No offsetoflow32 -- pass the entire TCR to writefn/raw_writefn. */
93
return sum;
32
+ .bank_fieldoffsets = { offsetof(CPUARMState, cp15.tcr_el[3]),
94
}
33
+ offsetof(CPUARMState, cp15.tcr_el[1])} },
34
REGINFO_SENTINEL
35
};
36
37
@@ -XXX,XX +XXX,XX @@ static const ARMCPRegInfo ttbcr2_reginfo = {
38
.name = "TTBCR2", .cp = 15, .opc1 = 0, .crn = 2, .crm = 0, .opc2 = 3,
39
.access = PL1_RW, .accessfn = access_tvm_trvm,
40
.type = ARM_CP_ALIAS,
41
- .bank_fieldoffsets = { offsetofhigh32(CPUARMState, cp15.tcr_el[3]),
42
- offsetofhigh32(CPUARMState, cp15.tcr_el[1]) },
43
+ .bank_fieldoffsets = {
44
+ offsetofhigh32(CPUARMState, cp15.tcr_el[3].raw_tcr),
45
+ offsetofhigh32(CPUARMState, cp15.tcr_el[1].raw_tcr),
46
+ },
47
};
48
49
static void omap_ticonfig_write(CPUARMState *env, const ARMCPRegInfo *ri,
95
--
50
--
96
2.20.1
51
2.20.1
97
52
98
53
diff view generated by jsdifflib
1
From: Xinhao Zhang <zhangxinhao1@huawei.com>
1
In commit 6d8980a38fa we updated the copyright string we present to
2
the user in -version output, About dialogs, etc, but we forgot that
3
the Sphinx manuals have a separate copyright string setting. Update
4
that one too.
2
5
3
Fix code style. Space required before the open parenthesis '('.
4
5
Signed-off-by: Xinhao Zhang <zhangxinhao1@huawei.com>
6
Signed-off-by: Kai Deng <dengkai1@huawei.com>
7
Message-id: 20201103114529.638233-3-zhangxinhao1@huawei.com
8
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
9
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
7
Acked-by: Markus Armbruster <armbru@redhat.com>
8
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
9
Message-id: 20210705095547.15790-2-peter.maydell@linaro.org
10
---
10
---
11
target/arm/translate.c | 2 +-
11
docs/conf.py | 2 +-
12
1 file changed, 1 insertion(+), 1 deletion(-)
12
1 file changed, 1 insertion(+), 1 deletion(-)
13
13
14
diff --git a/target/arm/translate.c b/target/arm/translate.c
14
diff --git a/docs/conf.py b/docs/conf.py
15
index XXXXXXX..XXXXXXX 100644
15
index XXXXXXX..XXXXXXX 100644
16
--- a/target/arm/translate.c
16
--- a/docs/conf.py
17
+++ b/target/arm/translate.c
17
+++ b/docs/conf.py
18
@@ -XXX,XX +XXX,XX @@ static void arm_tr_tb_stop(DisasContextBase *dcbase, CPUState *cpu)
18
@@ -XXX,XX +XXX,XX @@
19
- Hardware watchpoints.
19
20
Hardware breakpoints have already been handled and skip this code.
20
# General information about the project.
21
*/
21
project = u'QEMU'
22
- switch(dc->base.is_jmp) {
22
-copyright = u'2020, The QEMU Project Developers'
23
+ switch (dc->base.is_jmp) {
23
+copyright = u'2021, The QEMU Project Developers'
24
case DISAS_NEXT:
24
author = u'The QEMU Project Developers'
25
case DISAS_TOO_MANY:
25
26
gen_goto_tb(dc, 1, dc->base.pc_next);
26
# The version info for the project you're documenting, acts as replacement for
27
--
27
--
28
2.20.1
28
2.20.1
29
29
30
30
diff view generated by jsdifflib
1
From: Havard Skinnemoen <hskinnemoen@google.com>
1
We merged our previous multiple-manual setup into a single Sphinx
2
manual, but we left some text in the various index.rst lines that
3
still calls the top level subsections separate 'manuals'. Update
4
them to talk about "this section of the manual" instead, and remove
5
now-obsolete comments about how the index.rst files are the "top
6
level page for the 'foo' manual".
2
7
3
The number of runs is equal to the number of 0-1 and 1-0 transitions,
8
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
plus one. Currently, it's counting the number of times these transitions
9
Acked-by: Markus Armbruster <armbru@redhat.com>
5
do _not_ happen, plus one.
10
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
11
Message-id: 20210705095547.15790-3-peter.maydell@linaro.org
12
---
13
docs/devel/index.rst | 5 +----
14
docs/interop/index.rst | 7 ++-----
15
docs/specs/index.rst | 5 ++---
16
docs/system/index.rst | 5 +----
17
docs/tools/index.rst | 5 ++---
18
docs/user/index.rst | 5 +----
19
6 files changed, 9 insertions(+), 23 deletions(-)
6
20
7
Source:
21
diff --git a/docs/devel/index.rst b/docs/devel/index.rst
8
https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-22r1a.pdf
9
section 2.3.4 point (3).
10
11
Signed-off-by: Havard Skinnemoen <hskinnemoen@google.com>
12
Message-id: 20201103011457.2959989-2-hskinnemoen@google.com
13
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
14
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
15
---
16
tests/qtest/npcm7xx_rng-test.c | 2 +-
17
1 file changed, 1 insertion(+), 1 deletion(-)
18
19
diff --git a/tests/qtest/npcm7xx_rng-test.c b/tests/qtest/npcm7xx_rng-test.c
20
index XXXXXXX..XXXXXXX 100644
22
index XXXXXXX..XXXXXXX 100644
21
--- a/tests/qtest/npcm7xx_rng-test.c
23
--- a/docs/devel/index.rst
22
+++ b/tests/qtest/npcm7xx_rng-test.c
24
+++ b/docs/devel/index.rst
23
@@ -XXX,XX +XXX,XX @@ static double calc_runs_p(const unsigned long *buf, unsigned int nr_bits)
25
@@ -XXX,XX +XXX,XX @@
24
pi = (double)nr_ones / nr_bits;
26
-.. This is the top level page for the 'devel' manual.
25
27
-
26
for (k = 0; k < nr_bits - 1; k++) {
28
-
27
- vn_obs += !(test_bit(k, buf) ^ test_bit(k + 1, buf));
29
Developer Information
28
+ vn_obs += (test_bit(k, buf) ^ test_bit(k + 1, buf));
30
=====================
29
}
31
30
vn_obs += 1;
32
-This manual documents various parts of the internals of QEMU.
33
+This section of the manual documents various parts of the internals of QEMU.
34
You only need to read it if you are interested in reading or
35
modifying QEMU's source code.
36
37
diff --git a/docs/interop/index.rst b/docs/interop/index.rst
38
index XXXXXXX..XXXXXXX 100644
39
--- a/docs/interop/index.rst
40
+++ b/docs/interop/index.rst
41
@@ -XXX,XX +XXX,XX @@
42
-.. This is the top level page for the 'interop' manual.
43
-
44
-
45
System Emulation Management and Interoperability
46
================================================
47
48
-This manual contains documents and specifications that are useful
49
-for making QEMU interoperate with other software.
50
+This section of the manual contains documents and specifications that
51
+are useful for making QEMU interoperate with other software.
52
53
Contents:
54
55
diff --git a/docs/specs/index.rst b/docs/specs/index.rst
56
index XXXXXXX..XXXXXXX 100644
57
--- a/docs/specs/index.rst
58
+++ b/docs/specs/index.rst
59
@@ -XXX,XX +XXX,XX @@
60
-.. This is the top level page for the 'specs' manual
61
-
62
-
63
System Emulation Guest Hardware Specifications
64
==============================================
65
66
+This section of the manual contains specifications of
67
+guest hardware that is specific to QEMU.
68
69
Contents:
70
71
diff --git a/docs/system/index.rst b/docs/system/index.rst
72
index XXXXXXX..XXXXXXX 100644
73
--- a/docs/system/index.rst
74
+++ b/docs/system/index.rst
75
@@ -XXX,XX +XXX,XX @@
76
-.. This is the top level page for the 'system' manual.
77
-
78
-
79
System Emulation
80
================
81
82
-This manual is the overall guide for users using QEMU
83
+This section of the manual is the overall guide for users using QEMU
84
for full system emulation (as opposed to user-mode emulation).
85
This includes working with hypervisors such as KVM, Xen, Hax
86
or Hypervisor.Framework.
87
diff --git a/docs/tools/index.rst b/docs/tools/index.rst
88
index XXXXXXX..XXXXXXX 100644
89
--- a/docs/tools/index.rst
90
+++ b/docs/tools/index.rst
91
@@ -XXX,XX +XXX,XX @@
92
-.. This is the top level page for the 'tools' manual
93
-
94
-
95
Tools
96
=====
97
98
+This section of the manual documents QEMU's "tools": its
99
+command line utilities and other standalone programs.
100
101
Contents:
102
103
diff --git a/docs/user/index.rst b/docs/user/index.rst
104
index XXXXXXX..XXXXXXX 100644
105
--- a/docs/user/index.rst
106
+++ b/docs/user/index.rst
107
@@ -XXX,XX +XXX,XX @@
108
-.. This is the top level page for the 'user' manual.
109
-
110
-
111
User Mode Emulation
112
===================
113
114
-This manual is the overall guide for users using QEMU
115
+This section of the manual is the overall guide for users using QEMU
116
for user-mode emulation. In this mode, QEMU can launch
117
processes compiled for one CPU on another CPU.
31
118
32
--
119
--
33
2.20.1
120
2.20.1
34
121
35
122
diff view generated by jsdifflib
1
From: Richard Henderson <richard.henderson@linaro.org>
1
Since the top-level subsections aren't self-contained manuals
2
any more, the "Contents:" lines at the top of each of their
3
index pages look a bit odd; remove them.
2
4
3
The helper function did not get updated when we reorganized
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
the vector register file for SVE. Since then, the neon dregs
6
Acked-by: Markus Armbruster <armbru@redhat.com>
5
are non-sequential and cannot be simply indexed.
7
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
8
Message-id: 20210705095547.15790-4-peter.maydell@linaro.org
9
---
10
docs/devel/index.rst | 2 --
11
docs/interop/index.rst | 2 --
12
docs/specs/index.rst | 2 --
13
docs/system/index.rst | 2 --
14
docs/tools/index.rst | 2 --
15
docs/user/index.rst | 2 --
16
6 files changed, 12 deletions(-)
6
17
7
At the same time, make the helper function operate on 64-bit
18
diff --git a/docs/devel/index.rst b/docs/devel/index.rst
8
quantities so that we do not have to call it twice.
9
10
Fixes: c39c2b9043e
11
Reported-by: Ard Biesheuvel <ardb@kernel.org>
12
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
13
[PMM: use aa32_vfp_dreg() rather than opencoding]
14
Message-id: 20201105171126.88014-1-richard.henderson@linaro.org
15
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
16
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
17
---
18
target/arm/helper.h | 2 +-
19
target/arm/op_helper.c | 23 +++++++++--------
20
target/arm/translate-neon.c.inc | 44 +++++++++++----------------------
21
3 files changed, 29 insertions(+), 40 deletions(-)
22
23
diff --git a/target/arm/helper.h b/target/arm/helper.h
24
index XXXXXXX..XXXXXXX 100644
19
index XXXXXXX..XXXXXXX 100644
25
--- a/target/arm/helper.h
20
--- a/docs/devel/index.rst
26
+++ b/target/arm/helper.h
21
+++ b/docs/devel/index.rst
27
@@ -XXX,XX +XXX,XX @@ DEF_HELPER_FLAGS_2(rsqrte_f32, TCG_CALL_NO_RWG, f32, f32, ptr)
22
@@ -XXX,XX +XXX,XX @@ This section of the manual documents various parts of the internals of QEMU.
28
DEF_HELPER_FLAGS_2(rsqrte_f64, TCG_CALL_NO_RWG, f64, f64, ptr)
23
You only need to read it if you are interested in reading or
29
DEF_HELPER_FLAGS_1(recpe_u32, TCG_CALL_NO_RWG, i32, i32)
24
modifying QEMU's source code.
30
DEF_HELPER_FLAGS_1(rsqrte_u32, TCG_CALL_NO_RWG, i32, i32)
25
31
-DEF_HELPER_FLAGS_4(neon_tbl, TCG_CALL_NO_RWG, i32, i32, i32, ptr, i32)
26
-Contents:
32
+DEF_HELPER_FLAGS_4(neon_tbl, TCG_CALL_NO_RWG, i64, env, i32, i64, i64)
27
-
33
28
.. toctree::
34
DEF_HELPER_3(shl_cc, i32, env, i32, i32)
29
:maxdepth: 2
35
DEF_HELPER_3(shr_cc, i32, env, i32, i32)
30
:includehidden:
36
diff --git a/target/arm/op_helper.c b/target/arm/op_helper.c
31
diff --git a/docs/interop/index.rst b/docs/interop/index.rst
37
index XXXXXXX..XXXXXXX 100644
32
index XXXXXXX..XXXXXXX 100644
38
--- a/target/arm/op_helper.c
33
--- a/docs/interop/index.rst
39
+++ b/target/arm/op_helper.c
34
+++ b/docs/interop/index.rst
40
@@ -XXX,XX +XXX,XX @@ void raise_exception_ra(CPUARMState *env, uint32_t excp, uint32_t syndrome,
35
@@ -XXX,XX +XXX,XX @@ System Emulation Management and Interoperability
41
cpu_loop_exit_restore(cs, ra);
36
This section of the manual contains documents and specifications that
42
}
37
are useful for making QEMU interoperate with other software.
43
38
44
-uint32_t HELPER(neon_tbl)(uint32_t ireg, uint32_t def, void *vn,
39
-Contents:
45
- uint32_t maxindex)
40
-
46
+uint64_t HELPER(neon_tbl)(CPUARMState *env, uint32_t desc,
41
.. toctree::
47
+ uint64_t ireg, uint64_t def)
42
:maxdepth: 2
48
{
43
49
- uint32_t val, shift;
44
diff --git a/docs/specs/index.rst b/docs/specs/index.rst
50
- uint64_t *table = vn;
51
+ uint64_t tmp, val = 0;
52
+ uint32_t maxindex = ((desc & 3) + 1) * 8;
53
+ uint32_t base_reg = desc >> 2;
54
+ uint32_t shift, index, reg;
55
56
- val = 0;
57
- for (shift = 0; shift < 32; shift += 8) {
58
- uint32_t index = (ireg >> shift) & 0xff;
59
+ for (shift = 0; shift < 64; shift += 8) {
60
+ index = (ireg >> shift) & 0xff;
61
if (index < maxindex) {
62
- uint32_t tmp = (table[index >> 3] >> ((index & 7) << 3)) & 0xff;
63
- val |= tmp << shift;
64
+ reg = base_reg + (index >> 3);
65
+ tmp = *aa32_vfp_dreg(env, reg);
66
+ tmp = ((tmp >> ((index & 7) << 3)) & 0xff) << shift;
67
} else {
68
- val |= def & (0xff << shift);
69
+ tmp = def & (0xffull << shift);
70
}
71
+ val |= tmp;
72
}
73
return val;
74
}
75
diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.inc
76
index XXXXXXX..XXXXXXX 100644
45
index XXXXXXX..XXXXXXX 100644
77
--- a/target/arm/translate-neon.c.inc
46
--- a/docs/specs/index.rst
78
+++ b/target/arm/translate-neon.c.inc
47
+++ b/docs/specs/index.rst
79
@@ -XXX,XX +XXX,XX @@ static bool trans_VEXT(DisasContext *s, arg_VEXT *a)
48
@@ -XXX,XX +XXX,XX @@ System Emulation Guest Hardware Specifications
80
49
This section of the manual contains specifications of
81
static bool trans_VTBL(DisasContext *s, arg_VTBL *a)
50
guest hardware that is specific to QEMU.
82
{
51
83
- int n;
52
-Contents:
84
- TCGv_i32 tmp, tmp2, tmp3, tmp4;
53
-
85
- TCGv_ptr ptr1;
54
.. toctree::
86
+ TCGv_i64 val, def;
55
:maxdepth: 2
87
+ TCGv_i32 desc;
56
88
57
diff --git a/docs/system/index.rst b/docs/system/index.rst
89
if (!arm_dc_feature(s, ARM_FEATURE_NEON)) {
58
index XXXXXXX..XXXXXXX 100644
90
return false;
59
--- a/docs/system/index.rst
91
@@ -XXX,XX +XXX,XX @@ static bool trans_VTBL(DisasContext *s, arg_VTBL *a)
60
+++ b/docs/system/index.rst
92
return true;
61
@@ -XXX,XX +XXX,XX @@ for full system emulation (as opposed to user-mode emulation).
93
}
62
This includes working with hypervisors such as KVM, Xen, Hax
94
63
or Hypervisor.Framework.
95
- n = a->len + 1;
64
96
- if ((a->vn + n) > 32) {
65
-Contents:
97
+ if ((a->vn + a->len + 1) > 32) {
66
-
98
/*
67
.. toctree::
99
* This is UNPREDICTABLE; we choose to UNDEF to avoid the
68
:maxdepth: 3
100
* helper function running off the end of the register file.
69
101
*/
70
diff --git a/docs/tools/index.rst b/docs/tools/index.rst
102
return false;
71
index XXXXXXX..XXXXXXX 100644
103
}
72
--- a/docs/tools/index.rst
104
- n <<= 3;
73
+++ b/docs/tools/index.rst
105
- tmp = tcg_temp_new_i32();
74
@@ -XXX,XX +XXX,XX @@ Tools
106
- if (a->op) {
75
This section of the manual documents QEMU's "tools": its
107
- read_neon_element32(tmp, a->vd, 0, MO_32);
76
command line utilities and other standalone programs.
108
- } else {
77
109
- tcg_gen_movi_i32(tmp, 0);
78
-Contents:
110
- }
79
-
111
- tmp2 = tcg_temp_new_i32();
80
.. toctree::
112
- read_neon_element32(tmp2, a->vm, 0, MO_32);
81
:maxdepth: 2
113
- ptr1 = vfp_reg_ptr(true, a->vn);
82
114
- tmp4 = tcg_const_i32(n);
83
diff --git a/docs/user/index.rst b/docs/user/index.rst
115
- gen_helper_neon_tbl(tmp2, tmp2, tmp, ptr1, tmp4);
84
index XXXXXXX..XXXXXXX 100644
116
85
--- a/docs/user/index.rst
117
+ desc = tcg_const_i32((a->vn << 2) | a->len);
86
+++ b/docs/user/index.rst
118
+ def = tcg_temp_new_i64();
87
@@ -XXX,XX +XXX,XX @@ This section of the manual is the overall guide for users using QEMU
119
if (a->op) {
88
for user-mode emulation. In this mode, QEMU can launch
120
- read_neon_element32(tmp, a->vd, 1, MO_32);
89
processes compiled for one CPU on another CPU.
121
+ read_neon_element64(def, a->vd, 0, MO_64);
90
122
} else {
91
-Contents:
123
- tcg_gen_movi_i32(tmp, 0);
92
-
124
+ tcg_gen_movi_i64(def, 0);
93
.. toctree::
125
}
94
:maxdepth: 2
126
- tmp3 = tcg_temp_new_i32();
127
- read_neon_element32(tmp3, a->vm, 1, MO_32);
128
- gen_helper_neon_tbl(tmp3, tmp3, tmp, ptr1, tmp4);
129
- tcg_temp_free_i32(tmp);
130
- tcg_temp_free_i32(tmp4);
131
- tcg_temp_free_ptr(ptr1);
132
+ val = tcg_temp_new_i64();
133
+ read_neon_element64(val, a->vm, 0, MO_64);
134
135
- write_neon_element32(tmp2, a->vd, 0, MO_32);
136
- write_neon_element32(tmp3, a->vd, 1, MO_32);
137
- tcg_temp_free_i32(tmp2);
138
- tcg_temp_free_i32(tmp3);
139
+ gen_helper_neon_tbl(val, cpu_env, desc, val, def);
140
+ write_neon_element64(val, a->vd, 0, MO_64);
141
+
142
+ tcg_temp_free_i64(def);
143
+ tcg_temp_free_i64(val);
144
+ tcg_temp_free_i32(desc);
145
return true;
146
}
147
95
148
--
96
--
149
2.20.1
97
2.20.1
150
98
151
99
diff view generated by jsdifflib
1
The nseries machines have a codepath that allows them to load a
1
Now that we have a single Sphinx manual rather than multiple manuals,
2
secondary bootloader. This code wasn't checking that the
2
we can provide a better place for "common to all of QEMU" information
3
load_image_targphys() succeeded. Check the return value and report
3
like the deprecation notices, build platforms, license information,
4
the error to the user.
4
which we currently have in the system/ manual even though it applies
5
to all of QEMU.
5
6
6
While we're in the vicinity, fix the comment style of the
7
Create a new directory about/ on the same level as system/, user/,
7
comment documenting what this image load is doing.
8
etc, and move these documents there.
8
9
9
Fixes: Coverity CID 1192904
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
11
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
11
Acked-by: Markus Armbruster <armbru@redhat.com>
12
Message-id: 20201103114918.11807-1-peter.maydell@linaro.org
12
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
13
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
14
Message-id: 20210705095547.15790-5-peter.maydell@linaro.org
13
---
15
---
14
hw/arm/nseries.c | 15 +++++++++++----
16
docs/{system => about}/build-platforms.rst | 0
15
1 file changed, 11 insertions(+), 4 deletions(-)
17
docs/{system => about}/deprecated.rst | 0
18
docs/about/index.rst | 10 ++++++++++
19
docs/{system => about}/license.rst | 0
20
docs/{system => about}/removed-features.rst | 0
21
docs/index.rst | 1 +
22
docs/system/index.rst | 4 ----
23
7 files changed, 11 insertions(+), 4 deletions(-)
24
rename docs/{system => about}/build-platforms.rst (100%)
25
rename docs/{system => about}/deprecated.rst (100%)
26
create mode 100644 docs/about/index.rst
27
rename docs/{system => about}/license.rst (100%)
28
rename docs/{system => about}/removed-features.rst (100%)
16
29
17
diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c
30
diff --git a/docs/system/build-platforms.rst b/docs/about/build-platforms.rst
31
similarity index 100%
32
rename from docs/system/build-platforms.rst
33
rename to docs/about/build-platforms.rst
34
diff --git a/docs/system/deprecated.rst b/docs/about/deprecated.rst
35
similarity index 100%
36
rename from docs/system/deprecated.rst
37
rename to docs/about/deprecated.rst
38
diff --git a/docs/about/index.rst b/docs/about/index.rst
39
new file mode 100644
40
index XXXXXXX..XXXXXXX
41
--- /dev/null
42
+++ b/docs/about/index.rst
43
@@ -XXX,XX +XXX,XX @@
44
+About QEMU
45
+==========
46
+
47
+.. toctree::
48
+ :maxdepth: 2
49
+
50
+ build-platforms
51
+ deprecated
52
+ removed-features
53
+ license
54
diff --git a/docs/system/license.rst b/docs/about/license.rst
55
similarity index 100%
56
rename from docs/system/license.rst
57
rename to docs/about/license.rst
58
diff --git a/docs/system/removed-features.rst b/docs/about/removed-features.rst
59
similarity index 100%
60
rename from docs/system/removed-features.rst
61
rename to docs/about/removed-features.rst
62
diff --git a/docs/index.rst b/docs/index.rst
18
index XXXXXXX..XXXXXXX 100644
63
index XXXXXXX..XXXXXXX 100644
19
--- a/hw/arm/nseries.c
64
--- a/docs/index.rst
20
+++ b/hw/arm/nseries.c
65
+++ b/docs/index.rst
21
@@ -XXX,XX +XXX,XX @@ static void n8x0_init(MachineState *machine,
66
@@ -XXX,XX +XXX,XX @@ Welcome to QEMU's documentation!
22
/* No, wait, better start at the ROM. */
67
:maxdepth: 2
23
s->mpu->cpu->env.regs[15] = OMAP2_Q2_BASE + 0x400000;
68
:caption: Contents:
24
69
25
- /* This is intended for loading the `secondary.bin' program from
70
+ about/index
26
+ /*
71
system/index
27
+ * This is intended for loading the `secondary.bin' program from
72
user/index
28
* Nokia images (the NOLO bootloader). The entry point seems
73
tools/index
29
* to be at OMAP2_Q2_BASE + 0x400000.
74
diff --git a/docs/system/index.rst b/docs/system/index.rst
30
*
75
index XXXXXXX..XXXXXXX 100644
31
@@ -XXX,XX +XXX,XX @@ static void n8x0_init(MachineState *machine,
76
--- a/docs/system/index.rst
32
* for them the entry point needs to be set to OMAP2_SRAM_BASE.
77
+++ b/docs/system/index.rst
33
*
78
@@ -XXX,XX +XXX,XX @@ or Hypervisor.Framework.
34
* The code above is for loading the `zImage' file from Nokia
79
targets
35
- * images. */
80
security
36
- load_image_targphys(option_rom[0].name, OMAP2_Q2_BASE + 0x400000,
81
multi-process
37
- machine->ram_size - 0x400000);
82
- deprecated
38
+ * images.
83
- removed-features
39
+ */
84
- build-platforms
40
+ if (load_image_targphys(option_rom[0].name,
85
- license
41
+ OMAP2_Q2_BASE + 0x400000,
42
+ machine->ram_size - 0x400000) < 0) {
43
+ error_report("Failed to load secondary bootloader %s",
44
+ option_rom[0].name);
45
+ exit(EXIT_FAILURE);
46
+ }
47
48
n800_setup_nolo_tags(nolo_tags);
49
cpu_physical_memory_write(OMAP2_SRAM_BASE, nolo_tags, 0x10000);
50
--
86
--
51
2.20.1
87
2.20.1
52
88
53
89
diff view generated by jsdifflib
1
From: Xinhao Zhang <zhangxinhao1@huawei.com>
1
Add some text to About to act as a brief introduction to the QEMU
2
manual and to make the about page a bit less of an abrupt start to
3
it.
2
4
3
Fix code style. Don't use '#' flag of printf format ('%#') in
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
format strings, use '0x' prefix instead
6
Acked-by: Markus Armbruster <armbru@redhat.com>
7
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
8
Message-id: 20210705095547.15790-6-peter.maydell@linaro.org
9
---
10
docs/about/index.rst | 17 +++++++++++++++++
11
1 file changed, 17 insertions(+)
5
12
6
Signed-off-by: Xinhao Zhang <zhangxinhao1@huawei.com>
13
diff --git a/docs/about/index.rst b/docs/about/index.rst
7
Signed-off-by: Kai Deng <dengkai1@huawei.com>
8
Message-id: 20201103114529.638233-2-zhangxinhao1@huawei.com
9
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
11
---
12
target/arm/translate-a64.c | 4 ++--
13
1 file changed, 2 insertions(+), 2 deletions(-)
14
15
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
16
index XXXXXXX..XXXXXXX 100644
14
index XXXXXXX..XXXXXXX 100644
17
--- a/target/arm/translate-a64.c
15
--- a/docs/about/index.rst
18
+++ b/target/arm/translate-a64.c
16
+++ b/docs/about/index.rst
19
@@ -XXX,XX +XXX,XX @@ static void disas_simd_three_reg_same_fp16(DisasContext *s, uint32_t insn)
17
@@ -XXX,XX +XXX,XX @@
20
gen_helper_advsimd_acgt_f16(tcg_res, tcg_op1, tcg_op2, fpst);
18
About QEMU
21
break;
19
==========
22
default:
20
23
- fprintf(stderr, "%s: insn %#04x, fpop %#2x @ %#" PRIx64 "\n",
21
+QEMU is a generic and open source machine emulator and virtualizer.
24
+ fprintf(stderr, "%s: insn 0x%04x, fpop 0x%2x @ 0x%" PRIx64 "\n",
22
+
25
__func__, insn, fpopcode, s->pc_curr);
23
+QEMU can be used in several different ways. The most common is for
26
g_assert_not_reached();
24
+"system emulation", where it provides a virtual model of an
27
}
25
+entire machine (CPU, memory and emulated devices) to run a guest OS.
28
@@ -XXX,XX +XXX,XX @@ static void disas_simd_two_reg_misc_fp16(DisasContext *s, uint32_t insn)
26
+In this mode the CPU may be fully emulated, or it may work with
29
case 0x7f: /* FSQRT (vector) */
27
+a hypervisor such as KVM, Xen, Hax or Hypervisor.Framework to
30
break;
28
+allow the guest to run directly on the host CPU.
31
default:
29
+
32
- fprintf(stderr, "%s: insn %#04x fpop %#2x\n", __func__, insn, fpop);
30
+The second supported way to use QEMU is "user mode emulation",
33
+ fprintf(stderr, "%s: insn 0x%04x fpop 0x%2x\n", __func__, insn, fpop);
31
+where QEMU can launch processes compiled for one CPU on another CPU.
34
g_assert_not_reached();
32
+In this mode the CPU is always emulated.
35
}
33
+
34
+QEMU also provides a number of standalone commandline utilities,
35
+such as the `qemu-img` disk image utility that allows you to create,
36
+convert and modify disk images.
37
+
38
.. toctree::
39
:maxdepth: 2
36
40
37
--
41
--
38
2.20.1
42
2.20.1
39
43
40
44
diff view generated by jsdifflib
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
1
The standard Sphinx/RTD HTML page footer gives a copyright line
2
(based on the 'copyright' variable set in conf.py) and a line "Built
3
with Sphinx using a theme provided by Read the Docs" (which can be
4
disabled via the html_show_sphinx variable, but we leave it enabled).
5
As a free software project, we'd like to also mention the license
6
QEMU and its manual are released under.
2
7
3
We don't need to fill the full pic[] array if we only use
8
Add a template footer.html which defines the 'extrafooter' block that
4
few of the interrupt lines. Directly call qdev_get_gpio_in()
9
the RtD theme provides for this purpose. The new line of text will
5
when necessary.
10
go below the existing copyright and sphinx-acknowledgement lines.
11
(Unfortunately the RTD footer template does not permit putting it
12
after the copyright but before the sphinx-acknowledgement.)
6
13
7
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
14
We use the templating functionality to make the new text also be a
8
Message-id: 20201107193403.436146-6-f4bug@amsat.org
15
hyperlink to the about/license.html page of the manual.
9
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
16
17
Unlike rst files, HTML template files are not reported to our depfile
18
plugin, so we maintain a manual list in meson.build. New template
19
files should be rare, so not being able to auto-generate the
20
dependency info is not too awkward.
21
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
22
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
23
Acked-by: Markus Armbruster <armbru@redhat.com>
24
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
25
Message-id: 20210705095547.15790-7-peter.maydell@linaro.org
11
---
26
---
12
hw/arm/musicpal.c | 25 +++++++++++++------------
27
docs/_templates/footer.html | 12 ++++++++++++
13
1 file changed, 13 insertions(+), 12 deletions(-)
28
docs/meson.build | 3 ++-
29
MAINTAINERS | 1 +
30
3 files changed, 15 insertions(+), 1 deletion(-)
31
create mode 100644 docs/_templates/footer.html
14
32
15
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
33
diff --git a/docs/_templates/footer.html b/docs/_templates/footer.html
34
new file mode 100644
35
index XXXXXXX..XXXXXXX
36
--- /dev/null
37
+++ b/docs/_templates/footer.html
38
@@ -XXX,XX +XXX,XX @@
39
+{% extends "!footer.html" %}
40
+{% block extrafooter %}
41
+
42
+<!-- Empty para to force a blank line after "Built with Sphinx ..." -->
43
+<p></p>
44
+
45
+{% trans path=pathto('about/license') %}
46
+<p><a href="{{ path }}">QEMU and this manual are released under the
47
+GNU General Public License, version 2.</a></p>
48
+{% endtrans %}
49
+{{ super() }}
50
+{% endblock %}
51
diff --git a/docs/meson.build b/docs/meson.build
16
index XXXXXXX..XXXXXXX 100644
52
index XXXXXXX..XXXXXXX 100644
17
--- a/hw/arm/musicpal.c
53
--- a/docs/meson.build
18
+++ b/hw/arm/musicpal.c
54
+++ b/docs/meson.build
19
@@ -XXX,XX +XXX,XX @@ static struct arm_boot_info musicpal_binfo = {
55
@@ -XXX,XX +XXX,XX @@ if build_docs
20
static void musicpal_init(MachineState *machine)
56
meson.source_root() / 'docs/sphinx/qapidoc.py',
21
{
57
meson.source_root() / 'docs/sphinx/qmp_lexer.py',
22
ARMCPU *cpu;
58
qapi_gen_depends ]
23
- qemu_irq pic[32];
59
+ sphinx_template_files = [ meson.source_root() / 'docs/_templates/footer.html' ]
24
DeviceState *dev;
60
25
+ DeviceState *pic;
61
have_ga = have_tools and config_host.has_key('CONFIG_GUEST_AGENT')
26
DeviceState *uart_orgate;
62
27
DeviceState *i2c_dev;
63
@@ -XXX,XX +XXX,XX @@ if build_docs
28
DeviceState *lcd_dev;
64
output: 'docs.stamp',
29
@@ -XXX,XX +XXX,XX @@ static void musicpal_init(MachineState *machine)
65
input: files('conf.py'),
30
&error_fatal);
66
depfile: 'docs.d',
31
memory_region_add_subregion(address_space_mem, MP_SRAM_BASE, sram);
67
- depend_files: sphinx_extn_depends,
32
68
+ depend_files: [ sphinx_extn_depends, sphinx_template_files ],
33
- dev = sysbus_create_simple(TYPE_MV88W8618_PIC, MP_PIC_BASE,
69
command: [SPHINX_ARGS, '-Ddepfile=@DEPFILE@',
34
+ pic = sysbus_create_simple(TYPE_MV88W8618_PIC, MP_PIC_BASE,
70
'-Ddepfile_stamp=@OUTPUT0@',
35
qdev_get_gpio_in(DEVICE(cpu), ARM_CPU_IRQ));
71
'-b', 'html', '-d', private_dir,
36
- for (i = 0; i < 32; i++) {
72
diff --git a/MAINTAINERS b/MAINTAINERS
37
- pic[i] = qdev_get_gpio_in(dev, i);
73
index XXXXXXX..XXXXXXX 100644
38
- }
74
--- a/MAINTAINERS
39
- sysbus_create_varargs(TYPE_MV88W8618_PIT, MP_PIT_BASE, pic[MP_TIMER1_IRQ],
75
+++ b/MAINTAINERS
40
- pic[MP_TIMER2_IRQ], pic[MP_TIMER3_IRQ],
76
@@ -XXX,XX +XXX,XX @@ S: Maintained
41
- pic[MP_TIMER4_IRQ], NULL);
77
F: docs/conf.py
42
+ sysbus_create_varargs(TYPE_MV88W8618_PIT, MP_PIT_BASE,
78
F: docs/*/conf.py
43
+ qdev_get_gpio_in(pic, MP_TIMER1_IRQ),
79
F: docs/sphinx/
44
+ qdev_get_gpio_in(pic, MP_TIMER2_IRQ),
80
+F: docs/_templates/
45
+ qdev_get_gpio_in(pic, MP_TIMER3_IRQ),
81
46
+ qdev_get_gpio_in(pic, MP_TIMER4_IRQ), NULL);
82
Miscellaneous
47
83
-------------
48
/* Logically OR both UART IRQs together */
49
uart_orgate = DEVICE(object_new(TYPE_OR_IRQ));
50
object_property_set_int(OBJECT(uart_orgate), "num-lines", 2, &error_fatal);
51
qdev_realize_and_unref(uart_orgate, NULL, &error_fatal);
52
- qdev_connect_gpio_out(DEVICE(uart_orgate), 0, pic[MP_UART_SHARED_IRQ]);
53
+ qdev_connect_gpio_out(DEVICE(uart_orgate), 0,
54
+ qdev_get_gpio_in(pic, MP_UART_SHARED_IRQ));
55
56
serial_mm_init(address_space_mem, MP_UART1_BASE, 2,
57
qdev_get_gpio_in(uart_orgate, 0),
58
@@ -XXX,XX +XXX,XX @@ static void musicpal_init(MachineState *machine)
59
OBJECT(get_system_memory()), &error_fatal);
60
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
61
sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, MP_ETH_BASE);
62
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, pic[MP_ETH_IRQ]);
63
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0,
64
+ qdev_get_gpio_in(pic, MP_ETH_IRQ));
65
66
sysbus_create_simple("mv88w8618_wlan", MP_WLAN_BASE, NULL);
67
68
sysbus_create_simple(TYPE_MUSICPAL_MISC, MP_MISC_BASE, NULL);
69
70
dev = sysbus_create_simple(TYPE_MUSICPAL_GPIO, MP_GPIO_BASE,
71
- pic[MP_GPIO_IRQ]);
72
+ qdev_get_gpio_in(pic, MP_GPIO_IRQ));
73
i2c_dev = sysbus_create_simple("gpio_i2c", -1, NULL);
74
i2c = (I2CBus *)qdev_get_child_bus(i2c_dev, "i2c");
75
76
@@ -XXX,XX +XXX,XX @@ static void musicpal_init(MachineState *machine)
77
NULL);
78
sysbus_realize_and_unref(s, &error_fatal);
79
sysbus_mmio_map(s, 0, MP_AUDIO_BASE);
80
- sysbus_connect_irq(s, 0, pic[MP_AUDIO_IRQ]);
81
+ sysbus_connect_irq(s, 0, qdev_get_gpio_in(pic, MP_AUDIO_IRQ));
82
83
musicpal_binfo.ram_size = MP_RAM_DEFAULT_SIZE;
84
arm_load_kernel(cpu, machine, &musicpal_binfo);
85
--
84
--
86
2.20.1
85
2.20.1
87
86
88
87
diff view generated by jsdifflib
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
1
Add a line to the HTML document footer mentioning the QEMU version.
2
The version information is already provided in very faint text below
3
the QEMU logo in the sidebar, but that is rather inconspicious, so
4
repeating it in the footer seems useful.
2
5
3
The MusicPal board code connects both of the IRQ outputs of the UART
6
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
to the same INTC qemu_irq. Connecting two qemu_irqs outputs directly
7
Acked-by: Markus Armbruster <armbru@redhat.com>
5
to the same input is not valid as it produces subtly wrong behaviour
8
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
6
(for instance if both the IRQ lines are high, and then one goes
9
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
7
low, the INTC input will see this as a high-to-low transition
10
Message-id: 20210705095547.15790-8-peter.maydell@linaro.org
8
even though the second IRQ line should still be holding it high).
11
---
12
docs/_templates/footer.html | 2 ++
13
1 file changed, 2 insertions(+)
9
14
10
This kind of wiring needs an explicitly created OR gate; add one.
15
diff --git a/docs/_templates/footer.html b/docs/_templates/footer.html
11
12
Inspired-by: Peter Maydell <peter.maydell@linaro.org>
13
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
14
Message-id: 20201107193403.436146-5-f4bug@amsat.org
15
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
16
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
17
---
18
hw/arm/musicpal.c | 17 +++++++++++++----
19
hw/arm/Kconfig | 1 +
20
2 files changed, 14 insertions(+), 4 deletions(-)
21
22
diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c
23
index XXXXXXX..XXXXXXX 100644
16
index XXXXXXX..XXXXXXX 100644
24
--- a/hw/arm/musicpal.c
17
--- a/docs/_templates/footer.html
25
+++ b/hw/arm/musicpal.c
18
+++ b/docs/_templates/footer.html
26
@@ -XXX,XX +XXX,XX @@
19
@@ -XXX,XX +XXX,XX @@
27
#include "ui/console.h"
20
<!-- Empty para to force a blank line after "Built with Sphinx ..." -->
28
#include "hw/i2c/i2c.h"
21
<p></p>
29
#include "hw/irq.h"
22
30
+#include "hw/or-irq.h"
23
+<p>This documentation is for QEMU version {{ version }}.</p>
31
#include "hw/audio/wm8750.h"
32
#include "sysemu/block-backend.h"
33
#include "sysemu/runstate.h"
34
@@ -XXX,XX +XXX,XX @@
35
#define MP_TIMER4_IRQ 7
36
#define MP_EHCI_IRQ 8
37
#define MP_ETH_IRQ 9
38
-#define MP_UART1_IRQ 11
39
-#define MP_UART2_IRQ 11
40
+#define MP_UART_SHARED_IRQ 11
41
#define MP_GPIO_IRQ 12
42
#define MP_RTC_IRQ 28
43
#define MP_AUDIO_IRQ 30
44
@@ -XXX,XX +XXX,XX @@ static void musicpal_init(MachineState *machine)
45
ARMCPU *cpu;
46
qemu_irq pic[32];
47
DeviceState *dev;
48
+ DeviceState *uart_orgate;
49
DeviceState *i2c_dev;
50
DeviceState *lcd_dev;
51
DeviceState *key_dev;
52
@@ -XXX,XX +XXX,XX @@ static void musicpal_init(MachineState *machine)
53
pic[MP_TIMER2_IRQ], pic[MP_TIMER3_IRQ],
54
pic[MP_TIMER4_IRQ], NULL);
55
56
- serial_mm_init(address_space_mem, MP_UART1_BASE, 2, pic[MP_UART1_IRQ],
57
+ /* Logically OR both UART IRQs together */
58
+ uart_orgate = DEVICE(object_new(TYPE_OR_IRQ));
59
+ object_property_set_int(OBJECT(uart_orgate), "num-lines", 2, &error_fatal);
60
+ qdev_realize_and_unref(uart_orgate, NULL, &error_fatal);
61
+ qdev_connect_gpio_out(DEVICE(uart_orgate), 0, pic[MP_UART_SHARED_IRQ]);
62
+
24
+
63
+ serial_mm_init(address_space_mem, MP_UART1_BASE, 2,
25
{% trans path=pathto('about/license') %}
64
+ qdev_get_gpio_in(uart_orgate, 0),
26
<p><a href="{{ path }}">QEMU and this manual are released under the
65
1825000, serial_hd(0), DEVICE_NATIVE_ENDIAN);
27
GNU General Public License, version 2.</a></p>
66
- serial_mm_init(address_space_mem, MP_UART2_BASE, 2, pic[MP_UART2_IRQ],
67
+ serial_mm_init(address_space_mem, MP_UART2_BASE, 2,
68
+ qdev_get_gpio_in(uart_orgate, 1),
69
1825000, serial_hd(1), DEVICE_NATIVE_ENDIAN);
70
71
/* Register flash */
72
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
73
index XXXXXXX..XXXXXXX 100644
74
--- a/hw/arm/Kconfig
75
+++ b/hw/arm/Kconfig
76
@@ -XXX,XX +XXX,XX @@ config MUSCA
77
78
config MUSICPAL
79
bool
80
+ select OR_IRQ
81
select BITBANG_I2C
82
select MARVELL_88W8618
83
select PTIMER
84
--
28
--
85
2.20.1
29
2.20.1
86
30
87
31
diff view generated by jsdifflib
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
1
Add skeletal documentation of the cubieboard machine.
2
2
3
The system configuration controller (SYSCFG) doesn't have
3
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
any output IRQ (and the INTC input #71 belongs to the UART6).
4
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
5
Remove the invalid code.
5
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
6
Message-id: 20210713142226.19155-2-peter.maydell@linaro.org
7
---
8
docs/system/arm/cubieboard.rst | 16 ++++++++++++++++
9
docs/system/target-arm.rst | 1 +
10
MAINTAINERS | 1 +
11
3 files changed, 18 insertions(+)
12
create mode 100644 docs/system/arm/cubieboard.rst
6
13
7
Fixes: db635521a02 ("stm32f205: Add the stm32f205 SoC")
14
diff --git a/docs/system/arm/cubieboard.rst b/docs/system/arm/cubieboard.rst
8
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
15
new file mode 100644
9
Message-id: 20201107193403.436146-3-f4bug@amsat.org
16
index XXXXXXX..XXXXXXX
10
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
17
--- /dev/null
11
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
18
+++ b/docs/system/arm/cubieboard.rst
12
---
19
@@ -XXX,XX +XXX,XX @@
13
include/hw/misc/stm32f2xx_syscfg.h | 2 --
20
+Cubietech Cubieboard (``cubieboard``)
14
hw/arm/stm32f205_soc.c | 1 -
21
+=====================================
15
hw/misc/stm32f2xx_syscfg.c | 2 --
22
+
16
3 files changed, 5 deletions(-)
23
+The ``cubieboard`` model emulates the Cubietech Cubieboard,
17
24
+which is a Cortex-A8 based single-board computer using
18
diff --git a/include/hw/misc/stm32f2xx_syscfg.h b/include/hw/misc/stm32f2xx_syscfg.h
25
+the AllWinner A10 SoC.
26
+
27
+Emulated devices:
28
+
29
+- Timer
30
+- UART
31
+- RTC
32
+- EMAC
33
+- SDHCI
34
+- USB controller
35
+- SATA controller
36
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
19
index XXXXXXX..XXXXXXX 100644
37
index XXXXXXX..XXXXXXX 100644
20
--- a/include/hw/misc/stm32f2xx_syscfg.h
38
--- a/docs/system/target-arm.rst
21
+++ b/include/hw/misc/stm32f2xx_syscfg.h
39
+++ b/docs/system/target-arm.rst
22
@@ -XXX,XX +XXX,XX @@ struct STM32F2XXSyscfgState {
40
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
23
uint32_t syscfg_exticr3;
41
arm/aspeed
24
uint32_t syscfg_exticr4;
42
arm/sabrelite
25
uint32_t syscfg_cmpcr;
43
arm/digic
26
-
44
+ arm/cubieboard
27
- qemu_irq irq;
45
arm/musicpal
28
};
46
arm/gumstix
29
47
arm/nrf
30
#endif /* HW_STM32F2XX_SYSCFG_H */
48
diff --git a/MAINTAINERS b/MAINTAINERS
31
diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c
32
index XXXXXXX..XXXXXXX 100644
49
index XXXXXXX..XXXXXXX 100644
33
--- a/hw/arm/stm32f205_soc.c
50
--- a/MAINTAINERS
34
+++ b/hw/arm/stm32f205_soc.c
51
+++ b/MAINTAINERS
35
@@ -XXX,XX +XXX,XX @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
52
@@ -XXX,XX +XXX,XX @@ S: Odd Fixes
36
}
53
F: hw/*/allwinner*
37
busdev = SYS_BUS_DEVICE(dev);
54
F: include/hw/*/allwinner*
38
sysbus_mmio_map(busdev, 0, 0x40013800);
55
F: hw/arm/cubieboard.c
39
- sysbus_connect_irq(busdev, 0, qdev_get_gpio_in(armv7m, 71));
56
+F: docs/system/arm/cubieboard.rst
40
57
41
/* Attach UART (uses USART registers) and USART controllers */
58
Allwinner-h3
42
for (i = 0; i < STM_NUM_USARTS; i++) {
59
M: Niek Linnenbank <nieklinnenbank@gmail.com>
43
diff --git a/hw/misc/stm32f2xx_syscfg.c b/hw/misc/stm32f2xx_syscfg.c
44
index XXXXXXX..XXXXXXX 100644
45
--- a/hw/misc/stm32f2xx_syscfg.c
46
+++ b/hw/misc/stm32f2xx_syscfg.c
47
@@ -XXX,XX +XXX,XX @@ static void stm32f2xx_syscfg_init(Object *obj)
48
{
49
STM32F2XXSyscfgState *s = STM32F2XX_SYSCFG(obj);
50
51
- sysbus_init_irq(SYS_BUS_DEVICE(obj), &s->irq);
52
-
53
memory_region_init_io(&s->mmio, obj, &stm32f2xx_syscfg_ops, s,
54
TYPE_STM32F2XX_SYSCFG, 0x400);
55
sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->mmio);
56
--
60
--
57
2.20.1
61
2.20.1
58
62
59
63
diff view generated by jsdifflib
1
Checks for UNDEF cases should go before the "is VFP enabled?" access
1
Add skeletal documentation of the emcraft-sf2 machine.
2
check, except in special cases. Move a stray UNDEF check in the VTBL
3
trans function up above the access check.
4
2
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
3
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
6
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
4
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
7
Message-id: 20201109145324.2859-1-peter.maydell@linaro.org
5
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
6
Message-id: 20210713142226.19155-3-peter.maydell@linaro.org
8
---
7
---
9
target/arm/translate-neon.c.inc | 8 ++++----
8
docs/system/arm/emcraft-sf2.rst | 15 +++++++++++++++
10
1 file changed, 4 insertions(+), 4 deletions(-)
9
docs/system/target-arm.rst | 1 +
10
MAINTAINERS | 1 +
11
3 files changed, 17 insertions(+)
12
create mode 100644 docs/system/arm/emcraft-sf2.rst
11
13
12
diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.inc
14
diff --git a/docs/system/arm/emcraft-sf2.rst b/docs/system/arm/emcraft-sf2.rst
15
new file mode 100644
16
index XXXXXXX..XXXXXXX
17
--- /dev/null
18
+++ b/docs/system/arm/emcraft-sf2.rst
19
@@ -XXX,XX +XXX,XX @@
20
+Emcraft SmartFusion2 SOM kit (``emcraft-sf2``)
21
+==============================================
22
+
23
+The ``emcraft-sf2`` board emulates the SmartFusion2 SOM kit from
24
+Emcraft (M2S010). This is a System-on-Module from EmCraft systems,
25
+based on the SmartFusion2 SoC FPGA from Microsemi Corporation.
26
+The SoC is based on a Cortex-M4 processor.
27
+
28
+Emulated devices:
29
+
30
+- System timer
31
+- System registers
32
+- SPI controller
33
+- UART
34
+- EMAC
35
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
13
index XXXXXXX..XXXXXXX 100644
36
index XXXXXXX..XXXXXXX 100644
14
--- a/target/arm/translate-neon.c.inc
37
--- a/docs/system/target-arm.rst
15
+++ b/target/arm/translate-neon.c.inc
38
+++ b/docs/system/target-arm.rst
16
@@ -XXX,XX +XXX,XX @@ static bool trans_VTBL(DisasContext *s, arg_VTBL *a)
39
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
17
return false;
40
arm/sabrelite
18
}
41
arm/digic
19
42
arm/cubieboard
20
- if (!vfp_access_check(s)) {
43
+ arm/emcraft-sf2
21
- return true;
44
arm/musicpal
22
- }
45
arm/gumstix
23
-
46
arm/nrf
24
if ((a->vn + a->len + 1) > 32) {
47
diff --git a/MAINTAINERS b/MAINTAINERS
25
/*
48
index XXXXXXX..XXXXXXX 100644
26
* This is UNPREDICTABLE; we choose to UNDEF to avoid the
49
--- a/MAINTAINERS
27
@@ -XXX,XX +XXX,XX @@ static bool trans_VTBL(DisasContext *s, arg_VTBL *a)
50
+++ b/MAINTAINERS
28
return false;
51
@@ -XXX,XX +XXX,XX @@ M: Peter Maydell <peter.maydell@linaro.org>
29
}
52
L: qemu-arm@nongnu.org
30
53
S: Maintained
31
+ if (!vfp_access_check(s)) {
54
F: hw/arm/msf2-som.c
32
+ return true;
55
+F: docs/system/arm/emcraft-sf2.rst
33
+ }
56
34
+
57
ASPEED BMCs
35
desc = tcg_const_i32((a->vn << 2) | a->len);
58
M: Cédric Le Goater <clg@kaod.org>
36
def = tcg_temp_new_i64();
37
if (a->op) {
38
--
59
--
39
2.20.1
60
2.20.1
40
61
41
62
diff view generated by jsdifflib
1
From: Alex Bennée <alex.bennee@linaro.org>
1
Add skeletal documentation for the highbank and midway machines.
2
2
3
We should at least document what this machine is about.
3
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
5
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
6
Message-id: 20210713142226.19155-4-peter.maydell@linaro.org
7
---
8
docs/system/arm/highbank.rst | 19 +++++++++++++++++++
9
docs/system/target-arm.rst | 1 +
10
MAINTAINERS | 1 +
11
3 files changed, 21 insertions(+)
12
create mode 100644 docs/system/arm/highbank.rst
4
13
5
Reviewed-by: Graeme Gregory <graeme@nuviainc.com>
14
diff --git a/docs/system/arm/highbank.rst b/docs/system/arm/highbank.rst
6
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
7
Message-id: 20201104165254.24822-1-alex.bennee@linaro.org
8
Cc: Leif Lindholm <leif@nuviainc.com>
9
Cc: Shashi Mallela <shashi.mallela@linaro.org>
10
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
11
[PMM: fixed filename mismatch]
12
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
13
---
14
docs/system/arm/sbsa.rst | 32 ++++++++++++++++++++++++++++++++
15
docs/system/target-arm.rst | 1 +
16
2 files changed, 33 insertions(+)
17
create mode 100644 docs/system/arm/sbsa.rst
18
19
diff --git a/docs/system/arm/sbsa.rst b/docs/system/arm/sbsa.rst
20
new file mode 100644
15
new file mode 100644
21
index XXXXXXX..XXXXXXX
16
index XXXXXXX..XXXXXXX
22
--- /dev/null
17
--- /dev/null
23
+++ b/docs/system/arm/sbsa.rst
18
+++ b/docs/system/arm/highbank.rst
24
@@ -XXX,XX +XXX,XX @@
19
@@ -XXX,XX +XXX,XX @@
25
+Arm Server Base System Architecture Reference board (``sbsa-ref``)
20
+Calxeda Highbank and Midway (``highbank``, ``midway``)
26
+==================================================================
21
+======================================================
27
+
22
+
28
+While the `virt` board is a generic board platform that doesn't match
23
+``highbank`` is a model of the Calxeda Highbank (ECX-1000) system,
29
+any real hardware the `sbsa-ref` board intends to look like real
24
+which has four Cortex-A9 cores.
30
+hardware. The `Server Base System Architecture
31
+<https://developer.arm.com/documentation/den0029/latest>` defines a
32
+minimum base line of hardware support and importantly how the firmware
33
+reports that to any operating system. It is a static system that
34
+reports a very minimal DT to the firmware for non-discoverable
35
+information about components affected by the qemu command line (i.e.
36
+cpus and memory). As a result it must have a firmware specifically
37
+built to expect a certain hardware layout (as you would in a real
38
+machine).
39
+
25
+
40
+It is intended to be a machine for developing firmware and testing
26
+``midway`` is a model of the Calxeda Midway (ECX-2000) system,
41
+standards compliance with operating systems.
27
+which has four Cortex-A15 cores.
42
+
28
+
43
+Supported devices
29
+Emulated devices:
44
+"""""""""""""""""
45
+
30
+
46
+The sbsa-ref board supports:
31
+- L2x0 cache controller
47
+
32
+- SP804 dual timer
48
+ - A configurable number of AArch64 CPUs
33
+- PL011 UART
49
+ - GIC version 3
34
+- PL061 GPIOs
50
+ - System bus AHCI controller
35
+- PL031 RTC
51
+ - System bus EHCI controller
36
+- PL022 synchronous serial port controller
52
+ - CDROM and hard disc on AHCI bus
37
+- AHCI
53
+ - E1000E ethernet card on PCIe bus
38
+- XGMAC ethernet controllers
54
+ - VGA display adaptor on PCIe bus
55
+ - A generic SBSA watchdog device
56
+
57
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
39
diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst
58
index XXXXXXX..XXXXXXX 100644
40
index XXXXXXX..XXXXXXX 100644
59
--- a/docs/system/target-arm.rst
41
--- a/docs/system/target-arm.rst
60
+++ b/docs/system/target-arm.rst
42
+++ b/docs/system/target-arm.rst
61
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
43
@@ -XXX,XX +XXX,XX @@ undocumented; you can get a complete list by running
62
arm/mps2
44
arm/digic
63
arm/musca
45
arm/cubieboard
64
arm/realview
46
arm/emcraft-sf2
65
+ arm/sbsa
47
+ arm/highbank
66
arm/versatile
48
arm/musicpal
67
arm/vexpress
49
arm/gumstix
68
arm/aspeed
50
arm/nrf
51
diff --git a/MAINTAINERS b/MAINTAINERS
52
index XXXXXXX..XXXXXXX 100644
53
--- a/MAINTAINERS
54
+++ b/MAINTAINERS
55
@@ -XXX,XX +XXX,XX @@ L: qemu-arm@nongnu.org
56
S: Odd Fixes
57
F: hw/arm/highbank.c
58
F: hw/net/xgmac.c
59
+F: docs/system/arm/highbank.rst
60
61
Canon DIGIC
62
M: Antony Pavlov <antonynpavlov@gmail.com>
69
--
63
--
70
2.20.1
64
2.20.1
71
65
72
66
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <philmd@redhat.com>
2
1
3
When using a Cortex-A15, the Virt machine does not use any
4
MPCore peripherals. Remove the dependency.
5
6
Fixes: 7951c7b7c05 ("hw/arm: Express dependencies of the virt machine with Kconfig")
7
Reported-by: Miroslav Rezanina <mrezanin@redhat.com>
8
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
9
Message-id: 20201107114852.271922-1-philmd@redhat.com
10
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
11
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
12
---
13
hw/arm/Kconfig | 1 -
14
1 file changed, 1 deletion(-)
15
16
diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
17
index XXXXXXX..XXXXXXX 100644
18
--- a/hw/arm/Kconfig
19
+++ b/hw/arm/Kconfig
20
@@ -XXX,XX +XXX,XX @@ config ARM_VIRT
21
imply VFIO_PLATFORM
22
imply VFIO_XGMAC
23
imply TPM_TIS_SYSBUS
24
- select A15MPCORE
25
select ACPI
26
select ARM_SMMUV3
27
select GPIO_KEY
28
--
29
2.20.1
30
31
diff view generated by jsdifflib
Deleted patch
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
2
1
3
We can use one MPC per SRAM bank, but we currently only wire the
4
IRQ from the first expansion MPC to the IRQ splitter. Fix that.
5
6
Fixes: bb75e16d5e6 ("hw/arm/iotkit: Wire up MPC interrupt lines")
7
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
8
Message-id: 20201107193403.436146-2-f4bug@amsat.org
9
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
10
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
11
---
12
hw/arm/armsse.c | 3 ++-
13
1 file changed, 2 insertions(+), 1 deletion(-)
14
15
diff --git a/hw/arm/armsse.c b/hw/arm/armsse.c
16
index XXXXXXX..XXXXXXX 100644
17
--- a/hw/arm/armsse.c
18
+++ b/hw/arm/armsse.c
19
@@ -XXX,XX +XXX,XX @@ static void armsse_realize(DeviceState *dev, Error **errp)
20
qdev_get_gpio_in(dev_splitter, 0));
21
qdev_connect_gpio_out(dev_splitter, 0,
22
qdev_get_gpio_in_named(dev_secctl,
23
- "mpc_status", 0));
24
+ "mpc_status",
25
+ i - IOTS_NUM_EXP_MPC));
26
}
27
28
qdev_connect_gpio_out(dev_splitter, 1,
29
--
30
2.20.1
31
32
diff view generated by jsdifflib
1
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
1
The Neon and SVE decoders use private 'plus1' functions to implement
2
"add one" for the !function decoder syntax. We have a generic
3
"plus_1" function in translate.h, so use that instead.
2
4
3
omap2420_mpu_init() introduced in commit 827df9f3c5f ("Add basic
5
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
4
OMAP2 chip support") takes care of creating the 3 UARTs.
6
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
7
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
8
Message-id: 20210715095341.701-1-peter.maydell@linaro.org
9
---
10
target/arm/neon-ls.decode | 4 ++--
11
target/arm/neon-shared.decode | 2 +-
12
target/arm/sve.decode | 2 +-
13
target/arm/translate-neon.c | 5 -----
14
target/arm/translate-sve.c | 5 -----
15
5 files changed, 4 insertions(+), 14 deletions(-)
5
16
6
Then commit 58a26b477e9 ("Emulate a serial bluetooth HCI with H4+
17
diff --git a/target/arm/neon-ls.decode b/target/arm/neon-ls.decode
7
extensions and attach to n8x0's UART") added n8x0_uart_setup()
8
which create the UART and connects it to an IRQ output,
9
overwritting the existing peripheral and its IRQ connection.
10
This is incorrect.
11
12
Fortunately we don't need to fix this, because commit 6da68df7f9b
13
("hw/arm/nseries: Replace the bluetooth chardev with a "null"
14
chardev") removed the use of this peripheral. We can simply
15
remove the code.
16
17
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
18
Message-id: 20201107193403.436146-4-f4bug@amsat.org
19
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
20
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
21
---
22
hw/arm/nseries.c | 11 -----------
23
1 file changed, 11 deletions(-)
24
25
diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c
26
index XXXXXXX..XXXXXXX 100644
18
index XXXXXXX..XXXXXXX 100644
27
--- a/hw/arm/nseries.c
19
--- a/target/arm/neon-ls.decode
28
+++ b/hw/arm/nseries.c
20
+++ b/target/arm/neon-ls.decode
29
@@ -XXX,XX +XXX,XX @@ static void n8x0_cbus_setup(struct n800_s *s)
21
@@ -XXX,XX +XXX,XX @@ VLD_all_lanes 1111 0100 1 . 1 0 rn:4 .... 11 n:2 size:2 t:1 a:1 rm:4 \
30
cbus_attach(cbus, s->tahvo = tahvo_init(tahvo_irq, 1));
22
vd=%vd_dp
31
}
23
32
24
# Neon load/store single structure to one lane
33
-static void n8x0_uart_setup(struct n800_s *s)
25
-%imm1_5_p1 5:1 !function=plus1
26
-%imm1_6_p1 6:1 !function=plus1
27
+%imm1_5_p1 5:1 !function=plus_1
28
+%imm1_6_p1 6:1 !function=plus_1
29
30
VLDST_single 1111 0100 1 . l:1 0 rn:4 .... 00 n:2 reg_idx:3 align:1 rm:4 \
31
vd=%vd_dp size=0 stride=1
32
diff --git a/target/arm/neon-shared.decode b/target/arm/neon-shared.decode
33
index XXXXXXX..XXXXXXX 100644
34
--- a/target/arm/neon-shared.decode
35
+++ b/target/arm/neon-shared.decode
36
@@ -XXX,XX +XXX,XX @@
37
# which is 0 for fp16 and 1 for fp32 into a MO_* constant.
38
# (Note that this is the reverse of the sense of the 1-bit size
39
# field in the 3same_fp Neon insns.)
40
-%vcadd_size 20:1 !function=plus1
41
+%vcadd_size 20:1 !function=plus_1
42
43
VCMLA 1111 110 rot:2 . 1 . .... .... 1000 . q:1 . 0 .... \
44
vm=%vm_dp vn=%vn_dp vd=%vd_dp size=%vcadd_size
45
diff --git a/target/arm/sve.decode b/target/arm/sve.decode
46
index XXXXXXX..XXXXXXX 100644
47
--- a/target/arm/sve.decode
48
+++ b/target/arm/sve.decode
49
@@ -XXX,XX +XXX,XX @@
50
###########################################################################
51
# Named fields. These are primarily for disjoint fields.
52
53
-%imm4_16_p1 16:4 !function=plus1
54
+%imm4_16_p1 16:4 !function=plus_1
55
%imm6_22_5 22:1 5:5
56
%imm7_22_16 22:2 16:5
57
%imm8_16_10 16:5 10:3
58
diff --git a/target/arm/translate-neon.c b/target/arm/translate-neon.c
59
index XXXXXXX..XXXXXXX 100644
60
--- a/target/arm/translate-neon.c
61
+++ b/target/arm/translate-neon.c
62
@@ -XXX,XX +XXX,XX @@
63
#include "translate.h"
64
#include "translate-a32.h"
65
66
-static inline int plus1(DisasContext *s, int x)
34
-{
67
-{
35
- Chardev *radio = qemu_chr_new("bt-dummy-uart", "null", NULL);
68
- return x + 1;
36
- /*
37
- * Note: We used to connect N8X0_BT_RESET_GPIO and N8X0_BT_WKUP_GPIO
38
- * here, but this code has been removed with the bluetooth backend.
39
- */
40
- omap_uart_attach(s->mpu->uart[BT_UART], radio);
41
-}
69
-}
42
-
70
-
43
static void n8x0_usb_setup(struct n800_s *s)
71
static inline int neon_3same_fp_size(DisasContext *s, int x)
44
{
72
{
45
SysBusDevice *dev;
73
/* Convert 0==fp32, 1==fp16 into a MO_* value */
46
@@ -XXX,XX +XXX,XX @@ static void n8x0_init(MachineState *machine,
74
diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c
47
n8x0_spi_setup(s);
75
index XXXXXXX..XXXXXXX 100644
48
n8x0_dss_setup(s);
76
--- a/target/arm/translate-sve.c
49
n8x0_cbus_setup(s);
77
+++ b/target/arm/translate-sve.c
50
- n8x0_uart_setup(s);
78
@@ -XXX,XX +XXX,XX @@ static int tszimm_shl(DisasContext *s, int x)
51
if (machine_usb(machine)) {
79
return x - (8 << tszimm_esz(s, x));
52
n8x0_usb_setup(s);
80
}
53
}
81
82
-static inline int plus1(DisasContext *s, int x)
83
-{
84
- return x + 1;
85
-}
86
-
87
/* The SH bit is in bit 8. Extract the low 8 and shift. */
88
static inline int expand_imm_sh8s(DisasContext *s, int x)
89
{
54
--
90
--
55
2.20.1
91
2.20.1
56
92
57
93
diff view generated by jsdifflib