Hi Peter,
On 03/22/2018 03:29 PM, Peter Maydell wrote:
> On 22 March 2018 at 14:23, Andrew Jones <[email protected]> wrote:
>> On Thu, Mar 15, 2018 at 01:34:41PM +0000, Peter Maydell wrote:
>>> If the GIC has the security extension support enabled, then a
>>> non-secure access to ICC_PMR must take account of the non-secure
>>> view of interrupt priorities, where real priorities 0..0x7f
>>> are secure-only and not visible to the non-secure guest, and
>>> priorities 0x80..0xff are shown to the guest as if they were
>>> 0x00..0xff. We had the logic here wrong:
>>
>> 0x00..0x7f
>
> I think 0x00..0xff is correct.
I guess Andrew only suggested to correct the hex prefix in your comment:
- ... where real priorities 0..0x7f
+ ... where real priorities 0x00..0x7f
> The conversion from actual
> priority value to the NS-view is
> if (prio & 0x80 == 0) {
> nsview = 0;
> } else {
> nsview = (prio << 1) & 0xff;
> }
>
> so:
> real priority NS view
> 0x80 0x00
> 0x90 0x20
> 0xa0 0x40
> 0xb0 0x60
> 0xc0 0x80
> 0xd0 0xa0
> 0xe0 0xc0
> 0xf0 0xe0
>
> the NS view covers the whole 0x00..0xff range, but more sparsely.
> (OK, technically you can't ever read 0xff, only 0xfe.)