break;
case 0b1111: /* all access */
return true;
+ case 0b0100: /* system agent only */
+ if (FIELD_EX64(gpccr, GPCCR, SA) == 0) {
+ goto fault_walk;
+ }
+ break;
+ case 0b0101: /* non-secure protected */
+ if (FIELD_EX64(gpccr, GPCCR, NSP) == 0) {
+ goto fault_walk;
+ }
+ break;
+ case 0b0110: /* reserved if NA6==0, otherwise no access */
+ if (FIELD_EX64(gpccr, GPCCR, NA6) == 0) {
+ goto fault_walk;
+ }
+ break;
+ case 0b0111: /* reserved if NA7==0, otherwise no access */
+ if (FIELD_EX64(gpccr, GPCCR, NA7) == 0) {
+ goto fault_walk;
+ }
+ break;
case 0b1000: /* secure */
if (!config.support_sel2) {
goto fault_walk;