hw/intc/arm_gicv3_cpuif: Mark up VNCR offsets for GIC CPU registers
Mark up the cpreginfo structs for the GIC CPU registers to indicate the offsets from VNCR_EL2, as defined in table D8-66 in rule R_CSRPQ in the Arm ARM. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Miguel Luis <miguel.luis@oracle.com>
This commit is contained in:
parent
f5bd261a61
commit
b1b7a2b555
@ -2684,6 +2684,7 @@ static const ARMCPRegInfo gicv3_cpuif_hcr_reginfo[] = {
|
||||
{ .name = "ICH_AP0R0_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 8, .opc2 = 0,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x480,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2691,6 +2692,7 @@ static const ARMCPRegInfo gicv3_cpuif_hcr_reginfo[] = {
|
||||
{ .name = "ICH_AP1R0_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 9, .opc2 = 0,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x4a0,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2698,6 +2700,7 @@ static const ARMCPRegInfo gicv3_cpuif_hcr_reginfo[] = {
|
||||
{ .name = "ICH_HCR_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 11, .opc2 = 0,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x4c0,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_hcr_read,
|
||||
.writefn = ich_hcr_write,
|
||||
@ -2729,6 +2732,7 @@ static const ARMCPRegInfo gicv3_cpuif_hcr_reginfo[] = {
|
||||
{ .name = "ICH_VMCR_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 11, .opc2 = 7,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x4c8,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_vmcr_read,
|
||||
.writefn = ich_vmcr_write,
|
||||
@ -2739,6 +2743,7 @@ static const ARMCPRegInfo gicv3_cpuif_ich_apxr1_reginfo[] = {
|
||||
{ .name = "ICH_AP0R1_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 8, .opc2 = 1,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x488,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2746,6 +2751,7 @@ static const ARMCPRegInfo gicv3_cpuif_ich_apxr1_reginfo[] = {
|
||||
{ .name = "ICH_AP1R1_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 9, .opc2 = 1,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x4a8,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2756,6 +2762,7 @@ static const ARMCPRegInfo gicv3_cpuif_ich_apxr23_reginfo[] = {
|
||||
{ .name = "ICH_AP0R2_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 8, .opc2 = 2,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x490,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2763,6 +2770,7 @@ static const ARMCPRegInfo gicv3_cpuif_ich_apxr23_reginfo[] = {
|
||||
{ .name = "ICH_AP0R3_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 8, .opc2 = 3,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x498,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2770,6 +2778,7 @@ static const ARMCPRegInfo gicv3_cpuif_ich_apxr23_reginfo[] = {
|
||||
{ .name = "ICH_AP1R2_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 9, .opc2 = 2,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x4b0,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2777,6 +2786,7 @@ static const ARMCPRegInfo gicv3_cpuif_ich_apxr23_reginfo[] = {
|
||||
{ .name = "ICH_AP1R3_EL2", .state = ARM_CP_STATE_BOTH,
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12, .crm = 9, .opc2 = 3,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x4b8,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_ap_read,
|
||||
.writefn = ich_ap_write,
|
||||
@ -2898,6 +2908,7 @@ void gicv3_init_cpuif(GICv3State *s)
|
||||
.opc0 = 3, .opc1 = 4, .crn = 12,
|
||||
.crm = 12 + (j >> 3), .opc2 = j & 7,
|
||||
.type = ARM_CP_IO | ARM_CP_NO_RAW,
|
||||
.nv2_redirect_offset = 0x400 + 8 * j,
|
||||
.access = PL2_RW,
|
||||
.readfn = ich_lr_read,
|
||||
.writefn = ich_lr_write,
|
||||
|
Loading…
Reference in New Issue
Block a user