* [PULL 0/7] target-arm queue
@ 2019-11-19 13:31 Peter Maydell
2019-11-19 15:55 ` Peter Maydell
0 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2019-11-19 13:31 UTC (permalink / raw)
To: qemu-devel
Target-arm queue for rc2 -- just some minor bugfixes.
thanks
-- PMM
The following changes since commit 6e5d4999c761ffa082f60d72a14e5c953515b417:
Merge remote-tracking branch 'remotes/armbru/tags/pull-monitor-2019-11-19' into staging (2019-11-19 11:29:01 +0000)
are available in the Git repository at:
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20191119
for you to fetch changes up to 04c9c81b8fa2ee33f59a26265700fae6fc646062:
target/arm: Support EL0 v7m msr/mrs for CONFIG_USER_ONLY (2019-11-19 13:20:28 +0000)
----------------------------------------------------------------
target-arm queue:
* Support EL0 v7m msr/mrs for CONFIG_USER_ONLY
* Relax r13 restriction for ldrex/strex for v8.0
* Do not reject rt == rt2 for strexd
* net/cadence_gem: Set PHY autonegotiation restart status
* ssi: xilinx_spips: Skip spi bus update for a few register writes
* pl031: Expose RTCICR as proper WC register
----------------------------------------------------------------
Alexander Graf (1):
pl031: Expose RTCICR as proper WC register
Linus Ziegert (1):
net/cadence_gem: Set PHY autonegotiation restart status
Richard Henderson (4):
target/arm: Merge arm_cpu_vq_map_next_smaller into sole caller
target/arm: Do not reject rt == rt2 for strexd
target/arm: Relax r13 restriction for ldrex/strex for v8.0
target/arm: Support EL0 v7m msr/mrs for CONFIG_USER_ONLY
Sai Pavan Boddu (1):
ssi: xilinx_spips: Skip spi bus update for a few register writes
target/arm/cpu.h | 5 +--
hw/net/cadence_gem.c | 9 ++--
hw/rtc/pl031.c | 6 +--
hw/ssi/xilinx_spips.c | 22 ++++++++--
target/arm/cpu64.c | 15 -------
target/arm/helper.c | 9 +++-
target/arm/m_helper.c | 114 ++++++++++++++++++++++++++++++-------------------
target/arm/translate.c | 14 +++---
8 files changed, 113 insertions(+), 81 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PULL 0/7] target-arm queue
2019-11-19 13:31 Peter Maydell
@ 2019-11-19 15:55 ` Peter Maydell
0 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2019-11-19 15:55 UTC (permalink / raw)
To: QEMU Developers
On Tue, 19 Nov 2019 at 13:31, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> Target-arm queue for rc2 -- just some minor bugfixes.
>
> thanks
> -- PMM
>
> The following changes since commit 6e5d4999c761ffa082f60d72a14e5c953515b417:
>
> Merge remote-tracking branch 'remotes/armbru/tags/pull-monitor-2019-11-19' into staging (2019-11-19 11:29:01 +0000)
>
> are available in the Git repository at:
>
> https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20191119
>
> for you to fetch changes up to 04c9c81b8fa2ee33f59a26265700fae6fc646062:
>
> target/arm: Support EL0 v7m msr/mrs for CONFIG_USER_ONLY (2019-11-19 13:20:28 +0000)
>
> ----------------------------------------------------------------
> target-arm queue:
> * Support EL0 v7m msr/mrs for CONFIG_USER_ONLY
> * Relax r13 restriction for ldrex/strex for v8.0
> * Do not reject rt == rt2 for strexd
> * net/cadence_gem: Set PHY autonegotiation restart status
> * ssi: xilinx_spips: Skip spi bus update for a few register writes
> * pl031: Expose RTCICR as proper WC register
>
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/4.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 0/7] target-arm queue
@ 2020-07-27 15:19 Peter Maydell
2020-07-27 15:19 ` [PULL 1/7] ACPI: Assert that we don't run out of the preallocated memory Peter Maydell
` (7 more replies)
0 siblings, 8 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
Just some bugfixes this time around.
-- PMM
The following changes since commit 4215d3413272ad6d1c6c9d0234450b602e46a74c:
Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-5.1-20200727' into staging (2020-07-27 09:33:04 +0100)
are available in the Git repository at:
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20200727
for you to fetch changes up to d4f6dda182e19afa75706936805e18397cb95f07:
target/arm: Improve IMPDEF algorithm for IRG (2020-07-27 16:12:11 +0100)
----------------------------------------------------------------
target-arm queue:
* ACPI: Assert that we don't run out of the preallocated memory
* hw/misc/aspeed_sdmc: Fix incorrect memory size
* target/arm: Always pass cacheattr in S1_ptw_translate
* docs/system/arm/virt: Document 'mte' machine option
* hw/arm/boot: Fix PAUTH, MTE for EL3 direct kernel boot
* target/arm: Improve IMPDEF algorithm for IRG
----------------------------------------------------------------
Dongjiu Geng (1):
ACPI: Assert that we don't run out of the preallocated memory
Peter Maydell (1):
docs/system/arm/virt: Document 'mte' machine option
Philippe Mathieu-Daudé (1):
hw/misc/aspeed_sdmc: Fix incorrect memory size
Richard Henderson (4):
target/arm: Always pass cacheattr in S1_ptw_translate
hw/arm/boot: Fix PAUTH for EL3 direct kernel boot
hw/arm/boot: Fix MTE for EL3 direct kernel boot
target/arm: Improve IMPDEF algorithm for IRG
docs/system/arm/virt.rst | 4 ++++
hw/acpi/ghes.c | 12 ++++--------
hw/arm/boot.c | 6 ++++++
hw/misc/aspeed_sdmc.c | 7 ++++---
target/arm/helper.c | 19 ++++++-------------
target/arm/mte_helper.c | 37 ++++++++++++++++++++++++++++++-------
6 files changed, 54 insertions(+), 31 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 1/7] ACPI: Assert that we don't run out of the preallocated memory
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
@ 2020-07-27 15:19 ` Peter Maydell
2020-07-27 15:19 ` [PULL 2/7] hw/misc/aspeed_sdmc: Fix incorrect memory size Peter Maydell
` (6 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
From: Dongjiu Geng <gengdongjiu@huawei.com>
data_length is a constant value, so we use assert instead of
condition check.
Signed-off-by: Dongjiu Geng <gengdongjiu@huawei.com>
Message-id: 20200622113146.33421-1-gengdongjiu@huawei.com
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/acpi/ghes.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/hw/acpi/ghes.c b/hw/acpi/ghes.c
index b363bc331d0..f0ee9f51caa 100644
--- a/hw/acpi/ghes.c
+++ b/hw/acpi/ghes.c
@@ -204,16 +204,12 @@ static int acpi_ghes_record_mem_error(uint64_t error_block_address,
/* This is the length if adding a new generic error data entry*/
data_length = ACPI_GHES_DATA_LENGTH + ACPI_GHES_MEM_CPER_LENGTH;
-
/*
- * Check whether it will run out of the preallocated memory if adding a new
- * generic error data entry
+ * It should not run out of the preallocated memory if adding a new generic
+ * error data entry
*/
- if ((data_length + ACPI_GHES_GESB_SIZE) > ACPI_GHES_MAX_RAW_DATA_LENGTH) {
- error_report("Not enough memory to record new CPER!!!");
- g_array_free(block, true);
- return -1;
- }
+ assert((data_length + ACPI_GHES_GESB_SIZE) <=
+ ACPI_GHES_MAX_RAW_DATA_LENGTH);
/* Build the new generic error status block header */
acpi_ghes_generic_error_status(block, ACPI_GEBS_UNCORRECTABLE,
--
2.20.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 2/7] hw/misc/aspeed_sdmc: Fix incorrect memory size
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
2020-07-27 15:19 ` [PULL 1/7] ACPI: Assert that we don't run out of the preallocated memory Peter Maydell
@ 2020-07-27 15:19 ` Peter Maydell
2020-07-27 15:19 ` [PULL 3/7] target/arm: Always pass cacheattr in S1_ptw_translate Peter Maydell
` (5 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
From: Philippe Mathieu-Daudé <f4bug@amsat.org>
The SDRAM Memory Controller has a 32-bit address bus, thus
supports up to 4 GiB of DRAM. There is a signed to unsigned
conversion error with the AST2600 maximum memory size:
(uint64_t)(2048 << 20) = (uint64_t)(-2147483648)
= 0xffffffff40000000
= 16 EiB - 2 GiB
Fix by using the IEC suffixes which are usually safer, and add
an assertion check to verify the memory is valid. This would have
caught this bug:
$ qemu-system-arm -M ast2600-evb
qemu-system-arm: hw/misc/aspeed_sdmc.c:258: aspeed_sdmc_realize: Assertion `asc->max_ram_size < 4 * GiB' failed.
Aborted (core dumped)
Fixes: 1550d72679 ("aspeed/sdmc: Add AST2600 support")
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/misc/aspeed_sdmc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/misc/aspeed_sdmc.c b/hw/misc/aspeed_sdmc.c
index 0737d8de81d..855848b7d23 100644
--- a/hw/misc/aspeed_sdmc.c
+++ b/hw/misc/aspeed_sdmc.c
@@ -255,6 +255,7 @@ static void aspeed_sdmc_realize(DeviceState *dev, Error **errp)
AspeedSDMCState *s = ASPEED_SDMC(dev);
AspeedSDMCClass *asc = ASPEED_SDMC_GET_CLASS(s);
+ assert(asc->max_ram_size < 4 * GiB); /* 32-bit address bus */
s->max_ram_size = asc->max_ram_size;
memory_region_init_io(&s->iomem, OBJECT(s), &aspeed_sdmc_ops, s,
@@ -341,7 +342,7 @@ static void aspeed_2400_sdmc_class_init(ObjectClass *klass, void *data)
AspeedSDMCClass *asc = ASPEED_SDMC_CLASS(klass);
dc->desc = "ASPEED 2400 SDRAM Memory Controller";
- asc->max_ram_size = 512 << 20;
+ asc->max_ram_size = 512 * MiB;
asc->compute_conf = aspeed_2400_sdmc_compute_conf;
asc->write = aspeed_2400_sdmc_write;
asc->valid_ram_sizes = aspeed_2400_ram_sizes;
@@ -408,7 +409,7 @@ static void aspeed_2500_sdmc_class_init(ObjectClass *klass, void *data)
AspeedSDMCClass *asc = ASPEED_SDMC_CLASS(klass);
dc->desc = "ASPEED 2500 SDRAM Memory Controller";
- asc->max_ram_size = 1024 << 20;
+ asc->max_ram_size = 1 * GiB;
asc->compute_conf = aspeed_2500_sdmc_compute_conf;
asc->write = aspeed_2500_sdmc_write;
asc->valid_ram_sizes = aspeed_2500_ram_sizes;
@@ -485,7 +486,7 @@ static void aspeed_2600_sdmc_class_init(ObjectClass *klass, void *data)
AspeedSDMCClass *asc = ASPEED_SDMC_CLASS(klass);
dc->desc = "ASPEED 2600 SDRAM Memory Controller";
- asc->max_ram_size = 2048 << 20;
+ asc->max_ram_size = 2 * GiB;
asc->compute_conf = aspeed_2600_sdmc_compute_conf;
asc->write = aspeed_2600_sdmc_write;
asc->valid_ram_sizes = aspeed_2600_ram_sizes;
--
2.20.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 3/7] target/arm: Always pass cacheattr in S1_ptw_translate
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
2020-07-27 15:19 ` [PULL 1/7] ACPI: Assert that we don't run out of the preallocated memory Peter Maydell
2020-07-27 15:19 ` [PULL 2/7] hw/misc/aspeed_sdmc: Fix incorrect memory size Peter Maydell
@ 2020-07-27 15:19 ` Peter Maydell
2020-07-27 15:19 ` [PULL 4/7] docs/system/arm/virt: Document 'mte' machine option Peter Maydell
` (4 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
From: Richard Henderson <richard.henderson@linaro.org>
When we changed the interface of get_phys_addr_lpae to require
the cacheattr parameter, this spot was missed. The compiler is
unable to detect the use of NULL vs the nonnull attribute here.
Fixes: 7e98e21c098
Reported-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Jan Kiszka <jan.kiskza@siemens.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target/arm/helper.c | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/target/arm/helper.c b/target/arm/helper.c
index c69a2baf1d3..8ef0fb478f4 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -10204,21 +10204,11 @@ static hwaddr S1_ptw_translate(CPUARMState *env, ARMMMUIdx mmu_idx,
int s2prot;
int ret;
ARMCacheAttrs cacheattrs = {};
- ARMCacheAttrs *pcacheattrs = NULL;
-
- if (env->cp15.hcr_el2 & HCR_PTW) {
- /*
- * PTW means we must fault if this S1 walk touches S2 Device
- * memory; otherwise we don't care about the attributes and can
- * save the S2 translation the effort of computing them.
- */
- pcacheattrs = &cacheattrs;
- }
ret = get_phys_addr_lpae(env, addr, MMU_DATA_LOAD, ARMMMUIdx_Stage2,
false,
&s2pa, &txattrs, &s2prot, &s2size, fi,
- pcacheattrs);
+ &cacheattrs);
if (ret) {
assert(fi->type != ARMFault_None);
fi->s2addr = addr;
@@ -10226,8 +10216,11 @@ static hwaddr S1_ptw_translate(CPUARMState *env, ARMMMUIdx mmu_idx,
fi->s1ptw = true;
return ~0;
}
- if (pcacheattrs && (pcacheattrs->attrs & 0xf0) == 0) {
- /* Access was to Device memory: generate Permission fault */
+ if ((env->cp15.hcr_el2 & HCR_PTW) && (cacheattrs.attrs & 0xf0) == 0) {
+ /*
+ * PTW set and S1 walk touched S2 Device memory:
+ * generate Permission fault.
+ */
fi->type = ARMFault_Permission;
fi->s2addr = addr;
fi->stage2 = true;
--
2.20.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 4/7] docs/system/arm/virt: Document 'mte' machine option
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
` (2 preceding siblings ...)
2020-07-27 15:19 ` [PULL 3/7] target/arm: Always pass cacheattr in S1_ptw_translate Peter Maydell
@ 2020-07-27 15:19 ` Peter Maydell
2020-07-27 15:19 ` [PULL 5/7] hw/arm/boot: Fix PAUTH for EL3 direct kernel boot Peter Maydell
` (3 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
Commit 6a0b7505f1fd6769c which added documentation of the virt board
crossed in the post with commit 6f4e1405b91da0d0 which added a new
'mte' machine option. Update the docs to include the new option.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
docs/system/arm/virt.rst | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst
index 6621ab7205d..32dc5eb22ee 100644
--- a/docs/system/arm/virt.rst
+++ b/docs/system/arm/virt.rst
@@ -79,6 +79,10 @@ virtualization
Set ``on``/``off`` to enable/disable emulating a guest CPU which implements the
Arm Virtualization Extensions. The default is ``off``.
+mte
+ Set ``on``/``off`` to enable/disable emulating a guest CPU which implements the
+ Arm Memory Tagging Extensions. The default is ``off``.
+
highmem
Set ``on``/``off`` to enable/disable placing devices and RAM in physical
address space above 32 bits. The default is ``on`` for machine types
--
2.20.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 5/7] hw/arm/boot: Fix PAUTH for EL3 direct kernel boot
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
` (3 preceding siblings ...)
2020-07-27 15:19 ` [PULL 4/7] docs/system/arm/virt: Document 'mte' machine option Peter Maydell
@ 2020-07-27 15:19 ` Peter Maydell
2020-07-27 15:19 ` [PULL 6/7] hw/arm/boot: Fix MTE " Peter Maydell
` (2 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
From: Richard Henderson <richard.henderson@linaro.org>
When booting an EL3 cpu with -kernel, we set up EL3 and then
drop down to EL2. We need to enable access to v8.3-PAuth
keys and instructions at EL3 before doing so.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200724163853.504655-2-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/arm/boot.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index fef4072db16..c44fd3382dd 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -736,6 +736,9 @@ static void do_cpu_reset(void *opaque)
} else {
env->pstate = PSTATE_MODE_EL1h;
}
+ if (cpu_isar_feature(aa64_pauth, cpu)) {
+ env->cp15.scr_el3 |= SCR_API | SCR_APK;
+ }
/* AArch64 kernels never boot in secure mode */
assert(!info->secure_boot);
/* This hook is only supported for AArch32 currently:
--
2.20.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 6/7] hw/arm/boot: Fix MTE for EL3 direct kernel boot
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
` (4 preceding siblings ...)
2020-07-27 15:19 ` [PULL 5/7] hw/arm/boot: Fix PAUTH for EL3 direct kernel boot Peter Maydell
@ 2020-07-27 15:19 ` Peter Maydell
2020-07-27 15:19 ` [PULL 7/7] target/arm: Improve IMPDEF algorithm for IRG Peter Maydell
2020-07-28 18:43 ` [PULL 0/7] target-arm queue Peter Maydell
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
From: Richard Henderson <richard.henderson@linaro.org>
When booting an EL3 cpu with -kernel, we set up EL3 and then
drop down to EL2. We need to enable access to v8.5-MemTag
tag allocation at EL3 before doing so.
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200724163853.504655-3-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/arm/boot.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index c44fd3382dd..3e9816af803 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -739,6 +739,9 @@ static void do_cpu_reset(void *opaque)
if (cpu_isar_feature(aa64_pauth, cpu)) {
env->cp15.scr_el3 |= SCR_API | SCR_APK;
}
+ if (cpu_isar_feature(aa64_mte, cpu)) {
+ env->cp15.scr_el3 |= SCR_ATA;
+ }
/* AArch64 kernels never boot in secure mode */
assert(!info->secure_boot);
/* This hook is only supported for AArch32 currently:
--
2.20.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 7/7] target/arm: Improve IMPDEF algorithm for IRG
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
` (5 preceding siblings ...)
2020-07-27 15:19 ` [PULL 6/7] hw/arm/boot: Fix MTE " Peter Maydell
@ 2020-07-27 15:19 ` Peter Maydell
2020-07-28 18:43 ` [PULL 0/7] target-arm queue Peter Maydell
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-27 15:19 UTC (permalink / raw)
To: qemu-devel
From: Richard Henderson <richard.henderson@linaro.org>
When GCR_EL1.RRND==1, the choosing of the random value is IMPDEF,
and the kernel is not expected to have set RGSR_EL1. Force a
non-zero value into SEED, so that we do not continually return
the same tag.
Reported-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20200724163853.504655-4-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
target/arm/mte_helper.c | 37 ++++++++++++++++++++++++++++++-------
1 file changed, 30 insertions(+), 7 deletions(-)
diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c
index 5ea57d487a4..104752041f7 100644
--- a/target/arm/mte_helper.c
+++ b/target/arm/mte_helper.c
@@ -24,6 +24,8 @@
#include "exec/ram_addr.h"
#include "exec/cpu_ldst.h"
#include "exec/helper-proto.h"
+#include "qapi/error.h"
+#include "qemu/guest-random.h"
static int choose_nonexcluded_tag(int tag, int offset, uint16_t exclude)
@@ -211,16 +213,37 @@ static uint8_t *allocation_tag_mem(CPUARMState *env, int ptr_mmu_idx,
uint64_t HELPER(irg)(CPUARMState *env, uint64_t rn, uint64_t rm)
{
- int rtag;
-
- /*
- * Our IMPDEF choice for GCR_EL1.RRND==1 is to behave as if
- * GCR_EL1.RRND==0, always producing deterministic results.
- */
uint16_t exclude = extract32(rm | env->cp15.gcr_el1, 0, 16);
+ int rrnd = extract32(env->cp15.gcr_el1, 16, 1);
int start = extract32(env->cp15.rgsr_el1, 0, 4);
int seed = extract32(env->cp15.rgsr_el1, 8, 16);
- int offset, i;
+ int offset, i, rtag;
+
+ /*
+ * Our IMPDEF choice for GCR_EL1.RRND==1 is to continue to use the
+ * deterministic algorithm. Except that with RRND==1 the kernel is
+ * not required to have set RGSR_EL1.SEED != 0, which is required for
+ * the deterministic algorithm to function. So we force a non-zero
+ * SEED for that case.
+ */
+ if (unlikely(seed == 0) && rrnd) {
+ do {
+ Error *err = NULL;
+ uint16_t two;
+
+ if (qemu_guest_getrandom(&two, sizeof(two), &err) < 0) {
+ /*
+ * Failed, for unknown reasons in the crypto subsystem.
+ * Best we can do is log the reason and use a constant seed.
+ */
+ qemu_log_mask(LOG_UNIMP, "IRG: Crypto failure: %s\n",
+ error_get_pretty(err));
+ error_free(err);
+ two = 1;
+ }
+ seed = two;
+ } while (seed == 0);
+ }
/* RandomTag */
for (i = offset = 0; i < 4; ++i) {
--
2.20.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PULL 0/7] target-arm queue
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
` (6 preceding siblings ...)
2020-07-27 15:19 ` [PULL 7/7] target/arm: Improve IMPDEF algorithm for IRG Peter Maydell
@ 2020-07-28 18:43 ` Peter Maydell
7 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2020-07-28 18:43 UTC (permalink / raw)
To: QEMU Developers
On Mon, 27 Jul 2020 at 16:19, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> Just some bugfixes this time around.
>
> -- PMM
>
> The following changes since commit 4215d3413272ad6d1c6c9d0234450b602e46a74c:
>
> Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-5.1-20200727' into staging (2020-07-27 09:33:04 +0100)
>
> are available in the Git repository at:
>
> https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20200727
>
> for you to fetch changes up to d4f6dda182e19afa75706936805e18397cb95f07:
>
> target/arm: Improve IMPDEF algorithm for IRG (2020-07-27 16:12:11 +0100)
>
> ----------------------------------------------------------------
> target-arm queue:
> * ACPI: Assert that we don't run out of the preallocated memory
> * hw/misc/aspeed_sdmc: Fix incorrect memory size
> * target/arm: Always pass cacheattr in S1_ptw_translate
> * docs/system/arm/virt: Document 'mte' machine option
> * hw/arm/boot: Fix PAUTH, MTE for EL3 direct kernel boot
> * target/arm: Improve IMPDEF algorithm for IRG
>
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 0/7] target-arm queue
@ 2021-03-23 14:26 Peter Maydell
2021-03-23 22:28 ` Peter Maydell
0 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2021-03-23 14:26 UTC (permalink / raw)
To: qemu-devel
Small pullreq with some bug fixes to go into rc1.
-- PMM
The following changes since commit 5ca634afcf83215a9a54ca6e66032325b5ffb5f6:
Merge remote-tracking branch 'remotes/philmd/tags/sdmmc-20210322' into staging (2021-03-22 18:50:25 +0000)
are available in the Git repository at:
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210323
for you to fetch changes up to dad90de78e9e9d47cefcbcd30115706b98e6ec87:
target/arm: Set ARMMMUFaultInfo.level in user-only arm_cpu_tlb_fill (2021-03-23 14:07:55 +0000)
----------------------------------------------------------------
target-arm queue:
* hw/arm/virt: Disable pl011 clock migration if needed
* target/arm: Make M-profile VTOR loads on reset handle memory aliasing
* target/arm: Set ARMMMUFaultInfo.level in user-only arm_cpu_tlb_fill
----------------------------------------------------------------
Gavin Shan (1):
hw/arm/virt: Disable pl011 clock migration if needed
Peter Maydell (5):
memory: Make flatview_cb return bool, not int
memory: Document flatview_for_each_range()
memory: Add offset_in_region to flatview_cb arguments
hw/core/loader: Add new function rom_ptr_for_as()
target/arm: Make M-profile VTOR loads on reset handle memory aliasing
Richard Henderson (1):
target/arm: Set ARMMMUFaultInfo.level in user-only arm_cpu_tlb_fill
include/exec/memory.h | 32 +++++++++++++++---
include/hw/char/pl011.h | 1 +
include/hw/loader.h | 31 +++++++++++++++++
hw/char/pl011.c | 9 +++++
hw/core/loader.c | 75 +++++++++++++++++++++++++++++++++++++++++
hw/core/machine.c | 1 +
softmmu/memory.c | 4 ++-
target/arm/cpu.c | 2 +-
target/arm/tlb_helper.c | 1 +
tests/qtest/fuzz/generic_fuzz.c | 11 +++---
10 files changed, 157 insertions(+), 10 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PULL 0/7] target-arm queue
2021-03-23 14:26 Peter Maydell
@ 2021-03-23 22:28 ` Peter Maydell
0 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2021-03-23 22:28 UTC (permalink / raw)
To: QEMU Developers
On Tue, 23 Mar 2021 at 14:26, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> Small pullreq with some bug fixes to go into rc1.
>
> -- PMM
>
> The following changes since commit 5ca634afcf83215a9a54ca6e66032325b5ffb5f6:
>
> Merge remote-tracking branch 'remotes/philmd/tags/sdmmc-20210322' into staging (2021-03-22 18:50:25 +0000)
>
> are available in the Git repository at:
>
> https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20210323
>
> for you to fetch changes up to dad90de78e9e9d47cefcbcd30115706b98e6ec87:
>
> target/arm: Set ARMMMUFaultInfo.level in user-only arm_cpu_tlb_fill (2021-03-23 14:07:55 +0000)
>
> ----------------------------------------------------------------
> target-arm queue:
> * hw/arm/virt: Disable pl011 clock migration if needed
> * target/arm: Make M-profile VTOR loads on reset handle memory aliasing
> * target/arm: Set ARMMMUFaultInfo.level in user-only arm_cpu_tlb_fill
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 0/7] target-arm queue
@ 2022-11-04 11:35 Peter Maydell
2022-11-05 12:34 ` Stefan Hajnoczi
0 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2022-11-04 11:35 UTC (permalink / raw)
To: qemu-devel
Hi; this pull request has a collection of bug fixes for rc0.
The big one is the trusted firmware boot regression fix.
thanks
-- PMM
The following changes since commit ece5f8374d0416a339f0c0a9399faa2c42d4ad6f:
Merge tag 'linux-user-for-7.2-pull-request' of https://gitlab.com/laurent_vivier/qemu into staging (2022-11-03 10:55:05 -0400)
are available in the Git repository at:
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20221104
for you to fetch changes up to cead7fa4c06087c86c67c5ce815cc1ff0bfeac3a:
target/arm: Two fixes for secure ptw (2022-11-04 10:58:58 +0000)
----------------------------------------------------------------
target-arm queue:
* Fix regression booting Trusted Firmware
* Honor HCR_E2H and HCR_TGE in ats_write64()
* Copy the entire vector in DO_ZIP
* Fix Privileged Access Never (PAN) for aarch32
* Make TLBIOS and TLBIRANGE ops trap on HCR_EL2.TTLB
* Set SCR_EL3.HXEn when direct booting kernel
* Set SME and SVE EL3 vector lengths when direct booting kernel
----------------------------------------------------------------
Ake Koomsin (1):
target/arm: Honor HCR_E2H and HCR_TGE in ats_write64()
Peter Maydell (3):
hw/arm/boot: Set SME and SVE EL3 vector lengths when booting kernel
hw/arm/boot: Set SCR_EL3.HXEn when booting kernel
target/arm: Make TLBIOS and TLBIRANGE ops trap on HCR_EL2.TTLB
Richard Henderson (2):
target/arm: Copy the entire vector in DO_ZIP
target/arm: Two fixes for secure ptw
Timofey Kutergin (1):
target/arm: Fix Privileged Access Never (PAN) for aarch32
hw/arm/boot.c | 5 ++++
target/arm/helper.c | 64 +++++++++++++++++++++++++++++--------------------
target/arm/ptw.c | 50 ++++++++++++++++++++++++++++----------
target/arm/sve_helper.c | 4 ++--
4 files changed, 83 insertions(+), 40 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PULL 0/7] target-arm queue
2022-11-04 11:35 Peter Maydell
@ 2022-11-05 12:34 ` Stefan Hajnoczi
0 siblings, 0 replies; 18+ messages in thread
From: Stefan Hajnoczi @ 2022-11-05 12:34 UTC (permalink / raw)
To: Peter Maydell; +Cc: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 115 bytes --]
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/7.2 for any user-visible changes.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 0/7] target-arm queue
@ 2023-07-17 12:47 Peter Maydell
2023-07-17 19:12 ` Richard Henderson
0 siblings, 1 reply; 18+ messages in thread
From: Peter Maydell @ 2023-07-17 12:47 UTC (permalink / raw)
To: qemu-devel
A last small test of bug fixes before rc1.
thanks
-- PMM
The following changes since commit ed8ad9728a9c0eec34db9dff61dfa2f1dd625637:
Merge tag 'pull-tpm-2023-07-14-1' of https://github.com/stefanberger/qemu-tpm into staging (2023-07-15 14:54:04 +0100)
are available in the Git repository at:
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20230717
for you to fetch changes up to c2c1c4a35c7c2b1a4140b0942b9797c857e476a4:
hw/nvram: Avoid unnecessary Xilinx eFuse backstore write (2023-07-17 11:05:52 +0100)
----------------------------------------------------------------
target-arm queue:
* hw/arm/sbsa-ref: set 'slots' property of xhci
* linux-user: Remove pointless NULL check in clock_adjtime handling
* ptw: Fix S1_ptw_translate() debug path
* ptw: Account for FEAT_RME when applying {N}SW, SA bits
* accel/tcg: Zero-pad PC in TCG CPU exec trace lines
* hw/nvram: Avoid unnecessary Xilinx eFuse backstore write
----------------------------------------------------------------
Peter Maydell (5):
linux-user: Remove pointless NULL check in clock_adjtime handling
target/arm/ptw.c: Add comments to S1Translate struct fields
target/arm: Fix S1_ptw_translate() debug path
target/arm/ptw.c: Account for FEAT_RME when applying {N}SW, SA bits
accel/tcg: Zero-pad PC in TCG CPU exec trace lines
Tong Ho (1):
hw/nvram: Avoid unnecessary Xilinx eFuse backstore write
Yuquan Wang (1):
hw/arm/sbsa-ref: set 'slots' property of xhci
accel/tcg/cpu-exec.c | 4 +--
accel/tcg/translate-all.c | 2 +-
hw/arm/sbsa-ref.c | 1 +
hw/nvram/xlnx-efuse.c | 11 ++++--
linux-user/syscall.c | 12 +++----
target/arm/ptw.c | 90 +++++++++++++++++++++++++++++++++++++++++------
6 files changed, 98 insertions(+), 22 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PULL 0/7] target-arm queue
2023-07-17 12:47 Peter Maydell
@ 2023-07-17 19:12 ` Richard Henderson
0 siblings, 0 replies; 18+ messages in thread
From: Richard Henderson @ 2023-07-17 19:12 UTC (permalink / raw)
To: Peter Maydell, qemu-devel
On 7/17/23 13:47, Peter Maydell wrote:
> A last small test of bug fixes before rc1.
>
> thanks
> -- PMM
>
> The following changes since commit ed8ad9728a9c0eec34db9dff61dfa2f1dd625637:
>
> Merge tag 'pull-tpm-2023-07-14-1' ofhttps://github.com/stefanberger/qemu-tpm into staging (2023-07-15 14:54:04 +0100)
>
> are available in the Git repository at:
>
> https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20230717
>
> for you to fetch changes up to c2c1c4a35c7c2b1a4140b0942b9797c857e476a4:
>
> hw/nvram: Avoid unnecessary Xilinx eFuse backstore write (2023-07-17 11:05:52 +0100)
>
> ----------------------------------------------------------------
> target-arm queue:
> * hw/arm/sbsa-ref: set 'slots' property of xhci
> * linux-user: Remove pointless NULL check in clock_adjtime handling
> * ptw: Fix S1_ptw_translate() debug path
> * ptw: Account for FEAT_RME when applying {N}SW, SA bits
> * accel/tcg: Zero-pad PC in TCG CPU exec trace lines
> * hw/nvram: Avoid unnecessary Xilinx eFuse backstore write
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/8.1 as appropriate.
r~
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 0/7] target-arm queue
@ 2024-03-25 12:35 Peter Maydell
0 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2024-03-25 12:35 UTC (permalink / raw)
To: qemu-devel
It's been quiet on the arm front this week, so all I have is
these coverity fixes I posted a while back...
-- PMM
The following changes since commit 853546f8128476eefb701d4a55b2781bb3a46faa:
Merge tag 'pull-loongarch-20240322' of https://gitlab.com/gaosong/qemu into staging (2024-03-22 10:59:57 +0000)
are available in the Git repository at:
https://git.linaro.org/people/pmaydell/qemu-arm.git tags/pull-target-arm-20240325
for you to fetch changes up to 55c79639d553c1b7a82b4cde781ad5f316f45b0e:
tests/qtest/libqtest.c: Check for g_setenv() failure (2024-03-25 10:41:01 +0000)
----------------------------------------------------------------
target-arm queue:
* Fixes for seven minor coverity issues
----------------------------------------------------------------
Peter Maydell (7):
tests/qtest/npcm7xx_emc_test: Don't leak cmd_line
tests/unit/socket-helpers: Don't close(-1)
net/af-xdp.c: Don't leak sock_fds array in net_init_af_xdp()
hw/misc/pca9554: Correct error check bounds in get/set pin functions
hw/nvram/mac_nvram: Report failure to write data
tests/unit/test-throttle: Avoid unintended integer division
tests/qtest/libqtest.c: Check for g_setenv() failure
hw/misc/pca9554.c | 4 ++--
hw/nvram/mac_nvram.c | 5 ++++-
net/af-xdp.c | 3 +--
tests/qtest/libqtest.c | 6 +++++-
tests/qtest/npcm7xx_emc-test.c | 4 ++--
tests/unit/socket-helpers.c | 4 +++-
tests/unit/test-throttle.c | 4 ++--
7 files changed, 19 insertions(+), 11 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2024-03-25 12:36 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-27 15:19 [PULL 0/7] target-arm queue Peter Maydell
2020-07-27 15:19 ` [PULL 1/7] ACPI: Assert that we don't run out of the preallocated memory Peter Maydell
2020-07-27 15:19 ` [PULL 2/7] hw/misc/aspeed_sdmc: Fix incorrect memory size Peter Maydell
2020-07-27 15:19 ` [PULL 3/7] target/arm: Always pass cacheattr in S1_ptw_translate Peter Maydell
2020-07-27 15:19 ` [PULL 4/7] docs/system/arm/virt: Document 'mte' machine option Peter Maydell
2020-07-27 15:19 ` [PULL 5/7] hw/arm/boot: Fix PAUTH for EL3 direct kernel boot Peter Maydell
2020-07-27 15:19 ` [PULL 6/7] hw/arm/boot: Fix MTE " Peter Maydell
2020-07-27 15:19 ` [PULL 7/7] target/arm: Improve IMPDEF algorithm for IRG Peter Maydell
2020-07-28 18:43 ` [PULL 0/7] target-arm queue Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2024-03-25 12:35 Peter Maydell
2023-07-17 12:47 Peter Maydell
2023-07-17 19:12 ` Richard Henderson
2022-11-04 11:35 Peter Maydell
2022-11-05 12:34 ` Stefan Hajnoczi
2021-03-23 14:26 Peter Maydell
2021-03-23 22:28 ` Peter Maydell
2019-11-19 13:31 Peter Maydell
2019-11-19 15:55 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).