cpc_node = of_find_compatible_node(of_root, NULL, "mti,mips-cpc"); if (cpc_node) {
err = of_address_to_resource(cpc_node, 0, &res);
of_node_put(cpc_node); if (!err) return res.start;
}
return 0;
}
/** * mips_cpc_phys_base - retrieve the physical base address of the CPC * * This function returns the physical base address of the Cluster Power * Controller memory mapped registers, or 0 if no Cluster Power Controller * is present.
*/ static phys_addr_t mips_cpc_phys_base(void)
{ unsignedlong cpc_base;
if (!mips_cm_present()) return 0;
if (!(read_gcr_cpc_status() & CM_GCR_CPC_STATUS_EX)) return 0;
/* If the CPC is already enabled, leave it so */
cpc_base = read_gcr_cpc_base(); if (cpc_base & CM_GCR_CPC_BASE_CPCEN) return cpc_base & CM_GCR_CPC_BASE_CPCBASE;
/* Otherwise, use the default address */
cpc_base = mips_cpc_default_phys_base(); if (!cpc_base) return cpc_base;
/* Enable the CPC, mapped at the default address */
write_gcr_cpc_base(cpc_base | CM_GCR_CPC_BASE_CPCEN); return cpc_base;
}
int mips_cpc_probe(void)
{
phys_addr_t addr; unsignedint cpu;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.