qemu-arm
[Top][All Lists]
Advanced

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

Re: [Qemu-arm] [Qemu-devel] [PATCH for-3.0] target/arm: Correctly handle


From: Peter Maydell
Subject: Re: [Qemu-arm] [Qemu-devel] [PATCH for-3.0] target/arm: Correctly handle overlapping small MPU regions
Date: Thu, 19 Jul 2018 17:30:34 +0100

On 18 July 2018 at 05:02, Richard Henderson
<address@hidden> wrote:
> On 07/17/2018 12:40 PM, Peter Maydell wrote:
>> On 17 July 2018 at 18:29, Richard Henderson
>> <address@hidden> wrote:
>>> I don't understand why this is necessary in the v8m case.
>>>
>>>                AP                 APL
>>>     <----B1----|----L1-B2-A-------|---L2--->
>>>
>>>
>>> Your comment posits two regions [B1,L1] and [B2,L2], that A is not within
>>> [B1,L1] but is within [B2,L2] (otherwise we would not report a hit at all).
>>> Further, that [B1,L1] intersects [AP,APL] but does not intersect [B2,L2]
>>> (otherwise we would report a fault for overlapping regions).
>>>
>>> Surely this combination of ranges implies that [B2,L2] must itself set
>>> IS_SUBPAGE (otherwise the first region would not overlap the page of A, or
>>> would not overlap the second region).
>>
>> (a) the overlap fault is only for addresses which are actually in the
>> overlap (ie "you asked about address X and it hits in R1 and R2"); it
>> doesn't imply that other addresses which are only in R1 fault just
>> because some part of R1 overlaps with R2.
>
> Ah, that wasn't clear from the manual.

R_DCHP is the text rule that defines this bit of behaviour
(generate fault for "an access to an address that matches in more
than one region"); MPUCheck() is the pseudocode function.

thanks
-- PMM



reply via email to

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