qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-arm] [PATCH] target-arm: Add missed AArch32 TLBI sytem registe


From: Peter Maydell
Subject: Re: [Qemu-arm] [PATCH] target-arm: Add missed AArch32 TLBI sytem registers
Date: Mon, 11 Jul 2016 19:35:56 +0100

On 11 July 2016 at 19:23, Sergey Sorokin <address@hidden> wrote:
> 11.07.2016, 20:39, "Peter Maydell" <address@hidden>:
>>>  +
>>>  + CPU_FOREACH(other_cs) {
>>>  + tlb_flush_page_by_mmuidx(other_cs, pageaddr, ARMMMUIdx_S1E2, -1);
>>>  + }
>>>  +}
>>>  +
>>>   static const ARMCPRegInfo cp_reginfo[] = {
>>>       /* Define the secure and non-secure FCSE identifier CP registers
>>>        * separately because there is no secure bank in V8 (no _EL3). This 
>>> allows
>>>  @@ -1238,6 +1343,14 @@ static const ARMCPRegInfo v7_cp_reginfo[] = {
>>>         .type = ARM_CP_NO_RAW, .access = PL1_W, .writefn = tlbiasid_write },
>>>       { .name = "TLBIMVAA", .cp = 15, .opc1 = 0, .crn = 8, .crm = 7, .opc2 
>>> = 3,
>>>         .type = ARM_CP_NO_RAW, .access = PL1_W, .writefn = tlbimvaa_write },
>>>  + { .name = "TLBIALLNSNH",
>>>  + .cp = 15, .opc1 = 4, .crn = 8, .crm = 7, .opc2 = 4,
>>>  + .type = ARM_CP_NO_RAW, .access = PL2_W,
>>>  + .writefn = tlbiall_nsnh_write },
>>>  + { .name = "TLBIALLNSNHIS",
>>>  + .cp = 15, .opc1 = 4, .crn = 8, .crm = 3, .opc2 = 4,
>>>  + .type = ARM_CP_NO_RAW, .access = PL2_W,
>>>  + .writefn = tlbiall_nsnh_is_write },
>>
>> These don't exist on v7 unless the virtualization extensions are present
>> (though they do exist on v8 without EL3).
>
> So I should check arm_feature(env, ARM_FEATURE_EL2) to add these registers,
> e.g. by moving them to el2_cp_reginfo, right?

That would make them incorrectly not exist for v8-without-EL3, I think.
If there isn't a suitable reginfo array for this case, you might need
to either list them in two arrays or add a new array.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]