[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 26/37] target-arm: Implement ISR_EL1 register
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH v6 26/37] target-arm: Implement ISR_EL1 register |
Date: |
Mon, 14 Apr 2014 16:20:55 +1000 |
On Fri, Apr 11, 2014 at 2:15 AM, Peter Maydell <address@hidden> wrote:
> Implement the ISR_EL1 register. This is actually present in
> ARMv7 as well but was previously unimplemented. It is a
> read-only register that indicates whether interrupts are
> currently pending.
>
> Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
> ---
> target-arm/helper.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/target-arm/helper.c b/target-arm/helper.c
> index f2e6f17..398c8f5 100644
> --- a/target-arm/helper.c
> +++ b/target-arm/helper.c
> @@ -665,6 +665,21 @@ static void csselr_write(CPUARMState *env, const
> ARMCPRegInfo *ri,
> env->cp15.c0_cssel = value & 0xf;
> }
>
> +static uint64_t isr_read(CPUARMState *env, const ARMCPRegInfo *ri)
> +{
> + CPUState *cs = ENV_GET_CPU(env);
> + uint64_t ret = 0;
> +
> + if (cs->interrupt_request & CPU_INTERRUPT_HARD) {
> + ret |= CPSR_I;
> + }
> + if (cs->interrupt_request & CPU_INTERRUPT_FIQ) {
> + ret |= CPSR_F;
> + }
> + /* External aborts are not possible in QEMU so A bit is always clear */
> + return ret;
> +}
> +
> static const ARMCPRegInfo v7_cp_reginfo[] = {
> /* DBGDRAR, DBGDSAR: always RAZ since we don't implement memory mapped
> * debug components
> @@ -782,6 +797,9 @@ static const ARMCPRegInfo v7_cp_reginfo[] = {
> .cp = 15, .opc1 = 0, .crn = 10, .crm = 2, .opc2 = 1, .access = PL1_RW,
> .fieldoffset = offsetofhigh32(CPUARMState, cp15.mair_el1),
> .resetfn = arm_cp_reset_ignore },
> + { .name = "ISR_EL1", .state = ARM_CP_STATE_BOTH,
> + .opc0 = 3, .opc1 = 0, .crn = 12, .crm = 1, .opc2 = 0,
> + .type = ARM_CP_NO_MIGRATE, .access = PL1_R, .readfn = isr_read },
> REGINFO_SENTINEL
> };
>
> --
> 1.9.1
>
>
- [Qemu-devel] [PATCH v6 32/37] target-arm: Implement RVBAR register, (continued)
- [Qemu-devel] [PATCH v6 32/37] target-arm: Implement RVBAR register, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 34/37] target-arm: Implement CBAR for Cortex-A57, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 19/37] target-arm: Implement AArch64 EL1 exception handling, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 20/37] target-arm: Implement ARMv8 MVFR registers, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 12/37] target-arm: A64: Implement DC ZVA, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 27/37] target-arm: Remove THUMB2EE feature from AArch64 'any' CPU, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 26/37] target-arm: Implement ISR_EL1 register, Peter Maydell, 2014/04/10
- Re: [Qemu-devel] [PATCH v6 26/37] target-arm: Implement ISR_EL1 register,
Peter Crosthwaite <=
- [Qemu-devel] [PATCH v6 09/37] target-arm: Fix VFP enables for AArch32 EL0 under AArch64 EL1, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 01/37] target-arm: Split out private-to-target functions into internals.h, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 11/37] target-arm: Don't mention PMU in debug feature register, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 37/37] target-arm: Dump 32-bit CPU state if 64 bit CPU is in AArch32, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 13/37] target-arm: Use dedicated CPU state fields for ARM946 access bit registers, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 29/37] target-arm: Replace wildcarded cpreg definitions with precise ones for ARMv8, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 10/37] target-arm: Add v8 mmu translation support, Peter Maydell, 2014/04/10
- [Qemu-devel] [PATCH v6 18/37] target-arm: Move arm_log_exception() into internals.h, Peter Maydell, 2014/04/10