![Kumar Gala](/assets/img/avatar_default.png)
We currently have a few variants of fsl-booke processors (e500v1, e500v2, e500mc, and e200). They all have minor differences that we had previously been handling via ifdefs. To move towards having this support the following changes have been made: * PID1, PID2 only exist on e500v1 & e500v2 and should not be accessed on e500mc or e200. We use MMUCFG[NPIDS] to determine which case we are since we only touch PID1/2 in extremely early init code. * Not all IVORs exist on all the processors so introduce cpu_setup functions for each variant to setup the proper IVORs that are either unique or exist but have some variations between the processors Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
32 lines
893 B
ArmAsm
32 lines
893 B
ArmAsm
/*
|
|
* This file contains low level CPU setup functions.
|
|
* Kumar Gala <galak@kernel.crashing.org>
|
|
* Copyright 2009 Freescale Semiconductor, Inc.
|
|
*
|
|
* Based on cpu_setup_6xx code by
|
|
* Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the License, or (at your option) any later version.
|
|
*
|
|
*/
|
|
|
|
#include <asm/processor.h>
|
|
#include <asm/cputable.h>
|
|
#include <asm/ppc_asm.h>
|
|
|
|
_GLOBAL(__setup_cpu_e200)
|
|
/* enable dedicated debug exception handling resources (Debug APU) */
|
|
mfspr r3,SPRN_HID0
|
|
ori r3,r3,HID0_DAPUEN@l
|
|
mtspr SPRN_HID0,r3
|
|
b __setup_e200_ivors
|
|
_GLOBAL(__setup_cpu_e500v1)
|
|
_GLOBAL(__setup_cpu_e500v2)
|
|
b __setup_e500_ivors
|
|
_GLOBAL(__setup_cpu_e500mc)
|
|
b __setup_e500mc_ivors
|
|
|