On 11 March 2015 at 17:42, Andrew Jones <drjo...@redhat.com> wrote:
> On Wed, Mar 11, 2015 at 05:02:00PM +0000, Peter Maydell wrote:

>> > +    if (is_aa64) {
>> > +        switch (regime_el(env, mmu_idx)) {
>> > +        case 1:
>> > +            if (is_user && !user_rw) {
>> > +                wxn = 0;
>>
>> I don't understand this. We ignore the WXN bit if this is
>> a user access and the page is not readable ?
>
> Yup. If the page is not readable or writeable, AP[1]=0. I almost
> submitted an errata to the ARM ARM when I saw this on the 2nd line
> of table D4-32. I thought it must be a typo. However I tested it
> on hardware, and it works this way. So at least the weirdness has
> been implemented consistently...

Still confused. If the page isn't readable or writable
then WXN isn't going to kick in anyway because WXN only
affects writable pages. I don't see what the case is
where this bit of code will make a difference.

-- PMM

Reply via email to