patch-2.2.4 linux/arch/ppc/kernel/pmac_setup.c
Next file: linux/arch/ppc/kernel/ppc_defs.h
Previous file: linux/arch/ppc/kernel/pmac_pci.c
Back to the patch index
Back to the overall index
- Lines: 54
- Date:
Wed Mar 10 21:30:32 1999
- Orig file:
v2.2.3/linux/arch/ppc/kernel/pmac_setup.c
- Orig date:
Thu Nov 19 09:56:27 1998
diff -u --recursive --new-file v2.2.3/linux/arch/ppc/kernel/pmac_setup.c linux/arch/ppc/kernel/pmac_setup.c
@@ -56,6 +56,9 @@
unsigned char drive_info;
+int ppc_override_l2cr = 0;
+int ppc_override_l2cr_value;
+
extern char saved_command_line[];
#define DEFAULT_ROOT_DEVICE 0x0801 /* sda1 - slightly silly choice */
@@ -132,6 +135,16 @@
}
}
+ /* Checks "l2cr-value" property in the registry */
+ np = find_devices("cpus");
+ if (np != 0) {
+ unsigned int *l2cr = (unsigned int *)
+ get_property(np, "l2cr-value", NULL);
+ if (l2cr != 0) {
+ len += sprintf(buffer+len, "l2cr override\t: 0x%x\n", *l2cr);
+ }
+ }
+
return len;
}
@@ -209,6 +222,26 @@
ohare_init();
*memory_start_p = pmac_find_bridges(*memory_start_p, *memory_end_p);
+
+ /* Checks "l2cr-value" property in the registry */
+ if ( (_get_PVR() >> 16) == 8) {
+ struct device_node *np = find_devices("cpus");
+ if (np != 0) {
+ unsigned int *l2cr = (unsigned int *)
+ get_property(np, "l2cr-value", NULL);
+ if (l2cr != 0) {
+ ppc_override_l2cr = 1;
+ ppc_override_l2cr_value = *l2cr;
+ _set_L2CR(0);
+ _set_L2CR(ppc_override_l2cr_value);
+ }
+ }
+ }
+
+ if (ppc_override_l2cr)
+ printk(KERN_INFO "L2CR overriden (0x%x), backside cache is %s\n",
+ ppc_override_l2cr_value, (ppc_override_l2cr_value & 0x80000000)
+ ? "enabled" : "disabled");
feature_init();
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)