+extern unsigned int extPatchMCK;
+extern unsigned int extPatch32;
+extern unsigned int hwulckPatch_isync;
+extern unsigned int hwulckPatch_eieio;
+extern unsigned int hwulckbPatch_isync;
+extern unsigned int hwulckbPatch_eieio;
+extern unsigned int mulckPatch_isync;
+extern unsigned int mulckPatch_eieio;
+extern unsigned int mulckePatch_isync;
+extern unsigned int mulckePatch_eieio;
+extern unsigned int sulckPatch_isync;
+extern unsigned int sulckPatch_eieio;
+extern unsigned int rwlesPatch_isync;
+extern unsigned int rwlesPatch_eieio;
+extern unsigned int rwldPatch_isync;
+extern unsigned int rwldPatch_eieio;
+extern unsigned int retfsectPatch_eieio;
+extern unsigned int retfsectPatch_isync;
+extern unsigned int bcopy_nop_if_32bit;
+extern unsigned int bcopy_nc_nop_if_32bit;
+extern unsigned int memcpy_nop_if_32bit;
+extern unsigned int xsum_nop_if_32bit;
+extern unsigned int uft_nop_if_32bit;
+extern unsigned int uft_uaw_nop_if_32bit;
+extern unsigned int uft_cuttrace;
+
+int forcenap = 0;
+int wcte = 0; /* Non-cache gather timer disabled */
+
+patch_entry_t patch_table[] = {
+ {&extPatch32, 0x60000000, PATCH_FEATURE, PatchExt32},
+ {&extPatchMCK, 0x60000000, PATCH_PROCESSOR, CPU_SUBTYPE_POWERPC_970},
+ {&hwulckPatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&hwulckPatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+ {&hwulckbPatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&hwulckbPatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+ {&mulckPatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&mulckPatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+ {&mulckePatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&mulckePatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+ {&sulckPatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&sulckPatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+ {&rwlesPatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&rwlesPatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+ {&rwldPatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&rwldPatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+ {&bcopy_nop_if_32bit, 0x60000000, PATCH_FEATURE, PatchExt32},
+ {&bcopy_nc_nop_if_32bit,0x60000000, PATCH_FEATURE, PatchExt32},
+ {&memcpy_nop_if_32bit, 0x60000000, PATCH_FEATURE, PatchExt32},
+#if !MACH_LDEBUG
+ {&retfsectPatch_isync, 0x60000000, PATCH_FEATURE, PatchLwsync},
+ {&retfsectPatch_eieio, 0x7c2004ac, PATCH_FEATURE, PatchLwsync},
+#endif
+ {&xsum_nop_if_32bit, 0x60000000, PATCH_FEATURE, PatchExt32},
+ {&uft_nop_if_32bit, 0x60000000, PATCH_FEATURE, PatchExt32},
+ {&uft_uaw_nop_if_32bit, 0x60000000, PATCH_FEATURE, PatchExt32},
+ {&uft_cuttrace, 0x60000000, PATCH_FEATURE, PatchExt32},
+ {NULL, 0x00000000, PATCH_END_OF_TABLE, 0}
+ };
+
+
+/*
+ * Forward definition
+ */
+void ppc_init(
+ boot_args *args);
+
+void ppc_init_cpu(
+ struct per_proc_info *proc_info);
+
+/*
+ * Routine: ppc_init
+ * Function:
+ */
+void
+ppc_init(
+ boot_args *args)