[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 reg
From: |
Auger Eric |
Subject: |
Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate |
Date: |
Fri, 17 Feb 2017 09:49:22 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
Hi,
On 17/02/2017 07:31, address@hidden wrote:
> From: Vijaya Kumar K <address@hidden>
>
> To Save and Restore ICC_SRE_EL1 register introduce vmstate
> subsection and load only if non-zero.
> Also initialize icc_sre_el1 with to 0x7 in pre_load
> function.
>
> Signed-off-by: Vijaya Kumar K <address@hidden>
> ---
> hw/intc/arm_gicv3_common.c | 32 ++++++++++++++++++++++++++++++++
> include/hw/intc/arm_gicv3_common.h | 1 +
> 2 files changed, 33 insertions(+)
>
> diff --git a/hw/intc/arm_gicv3_common.c b/hw/intc/arm_gicv3_common.c
> index 16b9b0f..e62480e 100644
> --- a/hw/intc/arm_gicv3_common.c
> +++ b/hw/intc/arm_gicv3_common.c
> @@ -70,6 +70,34 @@ static const VMStateDescription vmstate_gicv3_cpu_virt = {
> }
> };
>
> +static int icc_sre_el1_reg_pre_load(void *opaque)
> +{
> + GICv3CPUState *cs = opaque;
> +
> + /* By default enable SRE and disable IRQ & FIQ bypass. */
> + cs->icc_sre_el1 = 0x7;
> + return 0;
> +}
> +
> +static bool icc_sre_el1_reg_needed(void *opaque)
> +{
> + GICv3CPUState *cs = opaque;
> +
> + return cs->icc_sre_el1 != 0;
Don't you tell that the reset value is always != 0. In that case the
subsection will be always sent, right?
If we don't want to send it for TCG, shouldn't we compare against 0xf
(TCG reset value you mentioned in a previous email)
Thanks
Eric
> +}
> +
> +const VMStateDescription vmstate_gicv3_cpu_sre_el1 = {
> + .name = "arm_gicv3_cpu/sre_el1",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .pre_load = icc_sre_el1_reg_pre_load,
> + .needed = icc_sre_el1_reg_needed,
> + .fields = (VMStateField[]) {
> + VMSTATE_UINT64(icc_sre_el1, GICv3CPUState),
> + VMSTATE_END_OF_LIST()
> + }
> +};
> +
> static const VMStateDescription vmstate_gicv3_cpu = {
> .name = "arm_gicv3_cpu",
> .version_id = 1,
> @@ -100,6 +128,10 @@ static const VMStateDescription vmstate_gicv3_cpu = {
> .subsections = (const VMStateDescription * []) {
> &vmstate_gicv3_cpu_virt,
> NULL
> + },
> + .subsections = (const VMStateDescription * []) {
> + &vmstate_gicv3_cpu_sre_el1,
> + NULL
> }
> };
>
> diff --git a/include/hw/intc/arm_gicv3_common.h
> b/include/hw/intc/arm_gicv3_common.h
> index 4156051..bccdfe1 100644
> --- a/include/hw/intc/arm_gicv3_common.h
> +++ b/include/hw/intc/arm_gicv3_common.h
> @@ -172,6 +172,7 @@ struct GICv3CPUState {
> uint8_t gicr_ipriorityr[GIC_INTERNAL];
>
> /* CPU interface */
> + uint64_t icc_sre_el1;
> uint64_t icc_ctlr_el1[2];
> uint64_t icc_pmr_el1;
> uint64_t icc_bpr[3];
>
- [Qemu-arm] [PATCH v8 0/5] GICv3 live migration support, vijay . kilari, 2017/02/17
- [Qemu-arm] [PATCH v8 1/5] kernel: Add definitions for GICv3 attributes, vijay . kilari, 2017/02/17
- [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, vijay . kilari, 2017/02/17
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate,
Auger Eric <=
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, Peter Maydell, 2017/02/17
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, Vijay Kilari, 2017/02/20
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, Peter Maydell, 2017/02/20
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, Vijay Kilari, 2017/02/22
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, Peter Maydell, 2017/02/22
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, Marc Zyngier, 2017/02/22
- Re: [Qemu-arm] [PATCH v8 2/5] hw/intc/arm_gicv3_kvm: Add ICC_SRE_EL1 register to vmstate, Peter Maydell, 2017/02/22
[Qemu-arm] [PATCH v8 3/5] hw/intc/arm_gicv3_kvm: Implement get/put functions, vijay . kilari, 2017/02/17
[Qemu-arm] [PATCH v8 4/5] target-arm: Add GICv3CPUState in CPUARMState struct, vijay . kilari, 2017/02/17