Fix priority handling. The interrupt priority registers expose the full range
authorkettenis <kettenis@openbsd.org>
Sun, 30 Apr 2017 21:52:40 +0000 (21:52 +0000)
committerkettenis <kettenis@openbsd.org>
Sun, 30 Apr 2017 21:52:40 +0000 (21:52 +0000)
commit9a716617e1f7111208db0e2e4e76e1d1b3f99585
tree5cc93a56e561fe528cda13a8726e58ba3c79f707
parent5e7b72498377080bb5a66ab633129ea70ffca9b2
Fix priority handling.  The interrupt priority registers expose the full range
of priorities available in secure mode (minimally 32).  For non-secure
interrupts we need to make sure the top bit is set and shift our interrupt
priority level into the remaining bits.  The priority mask register on the
other hand only exposes the priority levels available to the mode from which
it is accessed.  So when accessed from non-secure mode, we need to shift our
interrupt priority level by a different amount.

Also set the binary point register to zero to make sure the maximum number of
available bits are used for the priority group and priority masking actually
works as expected.

This makes the FireFly-RK3399 boot multi-user with the root filesystem on USB.

ok drahn@
sys/arch/arm64/dev/agintc.c