|
@@ -693,3 +693,30 @@ static void __init aurora_broadcast_l2_commands(void)
|
|
|
|
|
|
static void __init aurora_of_setup(const struct device_node *np,
|
|
|
u32 *aux_val, u32 *aux_mask)
|
|
|
+{
|
|
|
+ u32 val = AURORA_ACR_REPLACEMENT_TYPE_SEMIPLRU;
|
|
|
+ u32 mask = AURORA_ACR_REPLACEMENT_MASK;
|
|
|
+
|
|
|
+ of_property_read_u32(np, "cache-id-part",
|
|
|
+ &cache_id_part_number_from_dt);
|
|
|
+
|
|
|
+ /* Determine and save the write policy */
|
|
|
+ l2_wt_override = of_property_read_bool(np, "wt-override");
|
|
|
+
|
|
|
+ if (l2_wt_override) {
|
|
|
+ val |= AURORA_ACR_FORCE_WRITE_THRO_POLICY;
|
|
|
+ mask |= AURORA_ACR_FORCE_WRITE_POLICY_MASK;
|
|
|
+ }
|
|
|
+
|
|
|
+ *aux_val &= ~mask;
|
|
|
+ *aux_val |= val;
|
|
|
+ *aux_mask &= ~mask;
|
|
|
+}
|
|
|
+
|
|
|
+static const struct l2x0_of_data pl310_data = {
|
|
|
+ .setup = pl310_of_setup,
|
|
|
+ .save = pl310_save,
|
|
|
+ .outer_cache = {
|
|
|
+ .resume = pl310_resume,
|
|
|
+ .inv_range = l2x0_inv_range,
|
|
|
+ .clean_range = l2x0_clean_range,
|