16 #include <linux/stddef.h>
17 #include <linux/kernel.h>
19 #include <linux/errno.h>
28 static u32 dcrbase_l2c;
51 u32 addr = l2c_diag(0x42000000);
57 u32 addr = l2c_diag(0x82000000) >> 16;
63 if (sr & (L2C_SR_CPE | L2C_SR_TPE)){
73 static int __init ppc4xx_l2c_probe(
void)
100 if (!dcrreg || (len != 4 *
sizeof(
u32))) {
106 dcrbase_isram = dcrreg[0];
107 dcrbase_l2c = dcrreg[2];
118 if (
request_irq(irq, l2c_error_handler, 0,
"L2C", 0) < 0) {
120 ", cache is not enabled\n");
126 asm volatile (
"sync" :::
"memory");
167 asm volatile (
"sync" :::
"memory");
183 asm volatile (
"sync; isync" :::
"memory");
213 if ((prop) && ((prop[0] >= 1) && (prop[0] <= 3)))
214 reset_type = prop[0] << 28;
217 mtspr(SPRN_DBCR0,
mfspr(SPRN_DBCR0) | reset_type);