/* SPDX-License-Identifier: GPL-2.0-or-later */1/*2* This file contains low level CPU setup functions.3* Valentine Barshak <[email protected]>4* MontaVista Software, Inc (c) 20075*6* Based on cpu_setup_6xx code by7* Benjamin Herrenschmidt <[email protected]>8*/910#include <asm/processor.h>11#include <asm/cputable.h>12#include <asm/ppc_asm.h>1314_GLOBAL(__setup_cpu_440ep)15b __init_fpu_44x16_GLOBAL(__setup_cpu_440epx)17mflr r418bl __init_fpu_44x19bl __plb_disable_wrp20bl __fixup_440A_mcheck21mtlr r422blr23_GLOBAL(__setup_cpu_440grx)24mflr r425bl __plb_disable_wrp26bl __fixup_440A_mcheck27mtlr r428blr29_GLOBAL(__setup_cpu_460ex)30_GLOBAL(__setup_cpu_460gt)31_GLOBAL(__setup_cpu_460sx)32_GLOBAL(__setup_cpu_apm821xx)33mflr r434bl __init_fpu_44x35bl __fixup_440A_mcheck36mtlr r437blr3839_GLOBAL(__setup_cpu_440x5)40_GLOBAL(__setup_cpu_440gx)41_GLOBAL(__setup_cpu_440spe)42b __fixup_440A_mcheck4344/* enable APU between CPU and FPU */45_GLOBAL(__init_fpu_44x)46mfspr r3,SPRN_CCR047/* Clear DAPUIB flag in CCR0 */48rlwinm r3,r3,0,12,1049mtspr SPRN_CCR0,r350isync51blr5253/*54* Workaround for the incorrect write to DDR SDRAM errata.55* The write address can be corrupted during writes to56* DDR SDRAM when write pipelining is enabled on PLB0.57* Disable write pipelining here.58*/59#define DCRN_PLB4A0_ACR 0x816061_GLOBAL(__plb_disable_wrp)62mfdcr r3,DCRN_PLB4A0_ACR63/* clear WRP bit in PLB4A0_ACR */64rlwinm r3,r3,0,8,665mtdcr DCRN_PLB4A0_ACR,r366isync67blr68697071