|
@@ -246,7 +246,7 @@ static void spapr_dt_pa_features(SpaprMachineState *spapr,
|
|
0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 48 - 53 */
|
|
0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 48 - 53 */
|
|
/* 54: DecFP, 56: DecI, 58: SHA */
|
|
/* 54: DecFP, 56: DecI, 58: SHA */
|
|
0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 54 - 59 */
|
|
0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 54 - 59 */
|
|
- /* 60: NM atomic, 62: RNG */
|
|
|
|
|
|
+ /* 60: NM atomic, 62: RNG, 64: DAWR1 (ISA 3.1) */
|
|
0x80, 0x00, 0x80, 0x00, 0x00, 0x00, /* 60 - 65 */
|
|
0x80, 0x00, 0x80, 0x00, 0x00, 0x00, /* 60 - 65 */
|
|
/* 68: DEXCR[SBHE|IBRTPDUS|SRAPD|NPHIE|PHIE] */
|
|
/* 68: DEXCR[SBHE|IBRTPDUS|SRAPD|NPHIE|PHIE] */
|
|
0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 66 - 71 */
|
|
0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 66 - 71 */
|
|
@@ -295,6 +295,9 @@ static void spapr_dt_pa_features(SpaprMachineState *spapr,
|
|
* in pa-features. So hide it from them. */
|
|
* in pa-features. So hide it from them. */
|
|
pa_features[40 + 2] &= ~0x80; /* Radix MMU */
|
|
pa_features[40 + 2] &= ~0x80; /* Radix MMU */
|
|
}
|
|
}
|
|
|
|
+ if (spapr_get_cap(spapr, SPAPR_CAP_DAWR1)) {
|
|
|
|
+ pa_features[66] |= 0x80;
|
|
|
|
+ }
|
|
|
|
|
|
_FDT((fdt_setprop(fdt, offset, "ibm,pa-features", pa_features, pa_size)));
|
|
_FDT((fdt_setprop(fdt, offset, "ibm,pa-features", pa_features, pa_size)));
|
|
}
|
|
}
|
|
@@ -2163,6 +2166,7 @@ static const VMStateDescription vmstate_spapr = {
|
|
&vmstate_spapr_cap_rpt_invalidate,
|
|
&vmstate_spapr_cap_rpt_invalidate,
|
|
&vmstate_spapr_cap_ail_mode_3,
|
|
&vmstate_spapr_cap_ail_mode_3,
|
|
&vmstate_spapr_cap_nested_papr,
|
|
&vmstate_spapr_cap_nested_papr,
|
|
|
|
+ &vmstate_spapr_cap_dawr1,
|
|
NULL
|
|
NULL
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -4680,6 +4684,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data)
|
|
smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_ON;
|
|
smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_ON;
|
|
smc->default_caps.caps[SPAPR_CAP_FWNMI] = SPAPR_CAP_ON;
|
|
smc->default_caps.caps[SPAPR_CAP_FWNMI] = SPAPR_CAP_ON;
|
|
smc->default_caps.caps[SPAPR_CAP_RPT_INVALIDATE] = SPAPR_CAP_OFF;
|
|
smc->default_caps.caps[SPAPR_CAP_RPT_INVALIDATE] = SPAPR_CAP_OFF;
|
|
|
|
+ smc->default_caps.caps[SPAPR_CAP_DAWR1] = SPAPR_CAP_ON;
|
|
|
|
|
|
/*
|
|
/*
|
|
* This cap specifies whether the AIL 3 mode for
|
|
* This cap specifies whether the AIL 3 mode for
|