2009-07-31 06:37:45 +00:00
|
|
|
/*
|
powerpc/mpc85xx:Add BSC9131/BSC9130/BSC9231 Processor Support
- BSC9131 is integrated device that targets Femto base station market.
It combines Power Architecture e500v2 and DSP StarCore SC3850 core
technologies with MAPLE-B2F baseband acceleration processing elements.
- BSC9130 is exactly same as BSC9131 except that the max e500v2
core and DSP core frequencies are 800M(these are 1G in case of 9131).
- BSC9231 is similar to BSC9131 except no MAPLE
The BSC9131 SoC includes the following function and features:
. Power Architecture subsystem including a e500 processor with 256-Kbyte shared
L2 cache
. StarCore SC3850 DSP subsystem with a 512-Kbyte private L2 cache
. The Multi Accelerator Platform Engine for Femto BaseStation Baseband
Processing (MAPLE-B2F)
. A multi-standard baseband algorithm accelerator for Channel Decoding/Encoding,
Fourier Transforms, UMTS chip rate processing, LTE UP/DL Channel processing,
and CRC algorithms
. Consists of accelerators for Convolution, Filtering, Turbo Encoding,
Turbo Decoding, Viterbi decoding, Chiprate processing, and Matrix Inversion
operations
. DDR3/3L memory interface with 32-bit data width without ECC and 16-bit with
ECC, up to 400-MHz clock/800 MHz data rate
. Dedicated security engine featuring trusted boot
. DMA controller
. OCNDMA with four bidirectional channels
. Interfaces
. Two triple-speed Gigabit Ethernet controllers featuring network acceleration
including IEEE 1588. v2 hardware support and virtualization (eTSEC)
. eTSEC 1 supports RGMII/RMII
. eTSEC 2 supports RGMII
. High-speed USB 2.0 host and device controller with ULPI interface
. Enhanced secure digital (SD/MMC) host controller (eSDHC)
. Antenna interface controller (AIC), supporting three industry standard
JESD207/three custom ADI RF interfaces (two dual port and one single port)
and three MAXIM's MaxPHY serial interfaces
. ADI lanes support both full duplex FDD support and half duplex TDD support
. Universal Subscriber Identity Module (USIM) interface that facilitates
communication to SIM cards or Eurochip pre-paid phone cards
. TDM with one TDM port
. Two DUART, four eSPI, and two I2C controllers
. Integrated Flash memory controller (IFC)
. TDM with 256 channels
. GPIO
. Sixteen 32-bit timers
The DSP portion of the SoC consists of DSP core (SC3850) and various
accelerators pertaining to DSP operations.
This patch takes care of code pertaining to power side functionality only.
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com>
Signed-off-by: Akhil Goyal <Akhil.Goyal@freescale.com>
Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com>
Signed-off-by: Rajan Srivastava <rajan.srivastava@freescale.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
2012-04-24 20:16:49 +00:00
|
|
|
* Copyright 2009-2012 Freescale Semiconductor, Inc.
|
2009-07-31 06:37:45 +00:00
|
|
|
*
|
2010-04-15 14:07:28 +00:00
|
|
|
* This file is derived from arch/powerpc/cpu/mpc85xx/cpu.c and
|
|
|
|
* arch/powerpc/cpu/mpc86xx/cpu.c. Basically this file contains
|
2010-04-13 03:28:09 +00:00
|
|
|
* cpu specific common code for 85xx/86xx processors.
|
2009-07-31 06:37:45 +00:00
|
|
|
* See file CREDITS for list of people who contributed to this
|
|
|
|
* project.
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
|
|
* MA 02111-1307 USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <config.h>
|
|
|
|
#include <common.h>
|
|
|
|
#include <command.h>
|
|
|
|
#include <tsec.h>
|
2011-04-13 13:37:44 +00:00
|
|
|
#include <fm_eth.h>
|
2009-07-31 06:37:45 +00:00
|
|
|
#include <netdev.h>
|
|
|
|
#include <asm/cache.h>
|
|
|
|
#include <asm/io.h>
|
|
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
2012-10-29 13:34:37 +00:00
|
|
|
static struct cpu_type cpu_type_list[] = {
|
2009-07-31 06:37:45 +00:00
|
|
|
#if defined(CONFIG_MPC85xx)
|
2009-07-31 06:38:14 +00:00
|
|
|
CPU_TYPE_ENTRY(8533, 8533, 1),
|
|
|
|
CPU_TYPE_ENTRY(8535, 8535, 1),
|
|
|
|
CPU_TYPE_ENTRY(8536, 8536, 1),
|
|
|
|
CPU_TYPE_ENTRY(8540, 8540, 1),
|
|
|
|
CPU_TYPE_ENTRY(8541, 8541, 1),
|
|
|
|
CPU_TYPE_ENTRY(8543, 8543, 1),
|
|
|
|
CPU_TYPE_ENTRY(8544, 8544, 1),
|
|
|
|
CPU_TYPE_ENTRY(8545, 8545, 1),
|
2012-07-06 22:10:33 +00:00
|
|
|
CPU_TYPE_ENTRY(8547, 8547, 1),
|
2009-07-31 06:38:14 +00:00
|
|
|
CPU_TYPE_ENTRY(8548, 8548, 1),
|
|
|
|
CPU_TYPE_ENTRY(8555, 8555, 1),
|
|
|
|
CPU_TYPE_ENTRY(8560, 8560, 1),
|
|
|
|
CPU_TYPE_ENTRY(8567, 8567, 1),
|
|
|
|
CPU_TYPE_ENTRY(8568, 8568, 1),
|
|
|
|
CPU_TYPE_ENTRY(8569, 8569, 1),
|
|
|
|
CPU_TYPE_ENTRY(8572, 8572, 2),
|
2011-01-13 16:09:27 +00:00
|
|
|
CPU_TYPE_ENTRY(P1010, P1010, 1),
|
2009-08-20 13:27:45 +00:00
|
|
|
CPU_TYPE_ENTRY(P1011, P1011, 1),
|
2010-03-31 04:06:53 +00:00
|
|
|
CPU_TYPE_ENTRY(P1012, P1012, 1),
|
|
|
|
CPU_TYPE_ENTRY(P1013, P1013, 1),
|
2011-01-13 16:10:05 +00:00
|
|
|
CPU_TYPE_ENTRY(P1014, P1014, 1),
|
2011-02-04 04:14:19 +00:00
|
|
|
CPU_TYPE_ENTRY(P1017, P1017, 1),
|
2009-07-31 06:38:27 +00:00
|
|
|
CPU_TYPE_ENTRY(P1020, P1020, 2),
|
2010-03-31 04:06:53 +00:00
|
|
|
CPU_TYPE_ENTRY(P1021, P1021, 2),
|
|
|
|
CPU_TYPE_ENTRY(P1022, P1022, 2),
|
2011-02-04 04:14:19 +00:00
|
|
|
CPU_TYPE_ENTRY(P1023, P1023, 2),
|
2011-02-05 19:45:07 +00:00
|
|
|
CPU_TYPE_ENTRY(P1024, P1024, 2),
|
|
|
|
CPU_TYPE_ENTRY(P1025, P1025, 2),
|
2009-08-20 13:27:45 +00:00
|
|
|
CPU_TYPE_ENTRY(P2010, P2010, 1),
|
|
|
|
CPU_TYPE_ENTRY(P2020, P2020, 2),
|
2010-06-01 15:29:11 +00:00
|
|
|
CPU_TYPE_ENTRY(P2040, P2040, 4),
|
2011-05-13 06:16:07 +00:00
|
|
|
CPU_TYPE_ENTRY(P2041, P2041, 4),
|
2010-01-27 16:26:46 +00:00
|
|
|
CPU_TYPE_ENTRY(P3041, P3041, 4),
|
2009-03-19 07:39:17 +00:00
|
|
|
CPU_TYPE_ENTRY(P4040, P4040, 4),
|
|
|
|
CPU_TYPE_ENTRY(P4080, P4080, 8),
|
2009-10-21 18:32:58 +00:00
|
|
|
CPU_TYPE_ENTRY(P5010, P5010, 1),
|
|
|
|
CPU_TYPE_ENTRY(P5020, P5020, 2),
|
powerpc/85xx: Add P5040 processor support
Add support for the Freescale P5040 SOC, which is similar to the P5020.
Features of the P5040 are:
Four P5040 single-threaded e5500 cores built
Up to 2.4 GHz with 64-bit ISA support
Three levels of instruction: user, supervisor, hypervisor
CoreNet platform cache (CPC)
2.0 MB configures as dual 1 MB blocks hierarchical interconnect fabric
Two 64-bit DDR3/3L SDRAM memory controllers with ECC and interleaving
support Up to 1600MT/s
Memory pre-fetch engine
DPAA incorporating acceleration for the following functions
Packet parsing, classification, and distribution (FMAN)
Queue management for scheduling, packet sequencing and
congestion management (QMAN)
Hardware buffer management for buffer allocation and
de-allocation (BMAN)
Cryptography acceleration (SEC 5.2) at up to 40 Gbps SerDes
20 lanes at up to 5 Gbps
Supports SGMII, XAUI, PCIe rev1.1/2.0, SATA Ethernet interfaces
Two 10 Gbps Ethernet MACs
Ten 1 Gbps Ethernet MACs
High-speed peripheral interfaces
Two PCI Express 2.0/3.0 controllers
Additional peripheral interfaces
Two serial ATA (SATA 2.0) controllers
Two high-speed USB 2.0 controllers with integrated PHY
Enhanced secure digital host controller (SD/MMC/eMMC)
Enhanced serial peripheral interface (eSPI)
Two I2C controllers
Four UARTs
Integrated flash controller supporting NAND and NOR flash
DMA
Dual four channel
Support for hardware virtualization and partitioning enforcement
Extra privileged level for hypervisor support
QorIQ Trust Architecture 1.1
Secure boot, secure debug, tamper detection, volatile key storage
Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
2012-10-05 11:09:19 +00:00
|
|
|
CPU_TYPE_ENTRY(P5021, P5021, 2),
|
|
|
|
CPU_TYPE_ENTRY(P5040, P5040, 4),
|
2012-10-08 07:44:19 +00:00
|
|
|
CPU_TYPE_ENTRY(T4240, T4240, 0),
|
|
|
|
CPU_TYPE_ENTRY(T4120, T4120, 0),
|
powerpc/mpc85xx: Add B4860 and variant SoCs
Add support for Freescale B4860 and variant SoCs. Features of B4860 are
(incomplete list):
Six fully-programmable StarCore SC3900 FVP subsystems, divided into three
clusters-each core runs up to 1.2 GHz, with an architecture highly
optimized for wireless base station applications
Four dual-thread e6500 Power Architecture processors organized in one
cluster-each core runs up to 1.8 GHz
Two DDR3/3L controllers for high-speed, industry-standard memory interface
each runs at up to 1866.67 MHz
MAPLE-B3 hardware acceleration-for forward error correction schemes
including Turbo or Viterbi decoding, Turbo encoding and rate matching,
MIMO MMSE equalization scheme, matrix operations, CRC insertion and
check, DFT/iDFT and FFT/iFFT calculations, PUSCH/PDSCH acceleration,
and UMTS chip rate acceleration
CoreNet fabric that fully supports coherency using MESI protocol between
the e6500 cores, SC3900 FVP cores, memories and external interfaces.
CoreNet fabric interconnect runs at 667 MHz and supports coherent and
non-coherent out of order transactions with prioritization and
bandwidth allocation amongst CoreNet endpoints.
Data Path Acceleration Architecture, which includes the following:
Frame Manager (FMan), which supports in-line packet parsing and general
classification to enable policing and QoS-based packet distribution
Queue Manager (QMan) and Buffer Manager (BMan), which allow offloading
of queue management, task management, load distribution, flow ordering,
buffer management, and allocation tasks from the cores
Security engine (SEC 5.3)-crypto-acceleration for protocols such as
IPsec, SSL, and 802.16
RapidIO manager (RMAN) - Support SRIO types 8, 9, 10, and 11 (inbound and
outbound). Supports types 5, 6 (outbound only)
Large internal cache memory with snooping and stashing capabilities for
bandwidth saving and high utilization of processor elements. The
9856-Kbyte internal memory space includes the following:
32 Kbyte L1 ICache per e6500/SC3900 core
32 Kbyte L1 DCache per e6500/SC3900 core
2048 Kbyte unified L2 cache for each SC3900 FVP cluster
2048 Kbyte unified L2 cache for the e6500 cluster
Two 512 Kbyte shared L3 CoreNet platform caches (CPC)
Sixteen 10-GHz SerDes lanes serving:
Two Serial RapidIO interfaces. Each supports up to 4 lanes and a total
of up to 8 lanes
Up to 8-lanes Common Public Radio Interface (CPRI) controller for glue-
less antenna connection
Two 10-Gbit Ethernet controllers (10GEC)
Six 1G/2.5-Gbit Ethernet controllers for network communications
PCI Express controller
Debug (Aurora)
Two OCeaN DMAs
Various system peripherals
182 32-bit timers
Signed-off-by: York Sun <yorksun@freescale.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
2012-10-08 07:44:20 +00:00
|
|
|
CPU_TYPE_ENTRY(B4860, B4860, 0),
|
|
|
|
CPU_TYPE_ENTRY(G4860, G4860, 0),
|
|
|
|
CPU_TYPE_ENTRY(G4060, G4060, 0),
|
|
|
|
CPU_TYPE_ENTRY(B4440, B4440, 0),
|
|
|
|
CPU_TYPE_ENTRY(G4440, G4440, 0),
|
|
|
|
CPU_TYPE_ENTRY(B4420, B4420, 0),
|
|
|
|
CPU_TYPE_ENTRY(B4220, B4220, 0),
|
powerpc/mpc85xx:Add BSC9131/BSC9130/BSC9231 Processor Support
- BSC9131 is integrated device that targets Femto base station market.
It combines Power Architecture e500v2 and DSP StarCore SC3850 core
technologies with MAPLE-B2F baseband acceleration processing elements.
- BSC9130 is exactly same as BSC9131 except that the max e500v2
core and DSP core frequencies are 800M(these are 1G in case of 9131).
- BSC9231 is similar to BSC9131 except no MAPLE
The BSC9131 SoC includes the following function and features:
. Power Architecture subsystem including a e500 processor with 256-Kbyte shared
L2 cache
. StarCore SC3850 DSP subsystem with a 512-Kbyte private L2 cache
. The Multi Accelerator Platform Engine for Femto BaseStation Baseband
Processing (MAPLE-B2F)
. A multi-standard baseband algorithm accelerator for Channel Decoding/Encoding,
Fourier Transforms, UMTS chip rate processing, LTE UP/DL Channel processing,
and CRC algorithms
. Consists of accelerators for Convolution, Filtering, Turbo Encoding,
Turbo Decoding, Viterbi decoding, Chiprate processing, and Matrix Inversion
operations
. DDR3/3L memory interface with 32-bit data width without ECC and 16-bit with
ECC, up to 400-MHz clock/800 MHz data rate
. Dedicated security engine featuring trusted boot
. DMA controller
. OCNDMA with four bidirectional channels
. Interfaces
. Two triple-speed Gigabit Ethernet controllers featuring network acceleration
including IEEE 1588. v2 hardware support and virtualization (eTSEC)
. eTSEC 1 supports RGMII/RMII
. eTSEC 2 supports RGMII
. High-speed USB 2.0 host and device controller with ULPI interface
. Enhanced secure digital (SD/MMC) host controller (eSDHC)
. Antenna interface controller (AIC), supporting three industry standard
JESD207/three custom ADI RF interfaces (two dual port and one single port)
and three MAXIM's MaxPHY serial interfaces
. ADI lanes support both full duplex FDD support and half duplex TDD support
. Universal Subscriber Identity Module (USIM) interface that facilitates
communication to SIM cards or Eurochip pre-paid phone cards
. TDM with one TDM port
. Two DUART, four eSPI, and two I2C controllers
. Integrated Flash memory controller (IFC)
. TDM with 256 channels
. GPIO
. Sixteen 32-bit timers
The DSP portion of the SoC consists of DSP core (SC3850) and various
accelerators pertaining to DSP operations.
This patch takes care of code pertaining to power side functionality only.
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com>
Signed-off-by: Akhil Goyal <Akhil.Goyal@freescale.com>
Signed-off-by: Poonam Aggrwal <poonam.aggrwal@freescale.com>
Signed-off-by: Rajan Srivastava <rajan.srivastava@freescale.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
2012-04-24 20:16:49 +00:00
|
|
|
CPU_TYPE_ENTRY(BSC9130, 9130, 1),
|
|
|
|
CPU_TYPE_ENTRY(BSC9131, 9131, 1),
|
2009-07-31 06:37:45 +00:00
|
|
|
#elif defined(CONFIG_MPC86xx)
|
2009-07-31 06:38:14 +00:00
|
|
|
CPU_TYPE_ENTRY(8610, 8610, 1),
|
|
|
|
CPU_TYPE_ENTRY(8641, 8641, 2),
|
|
|
|
CPU_TYPE_ENTRY(8641D, 8641D, 2),
|
2009-07-31 06:37:45 +00:00
|
|
|
#endif
|
|
|
|
};
|
|
|
|
|
2012-08-17 08:20:22 +00:00
|
|
|
#ifdef CONFIG_SYS_FSL_QORIQ_CHASSIS2
|
|
|
|
u32 compute_ppc_cpumask(void)
|
|
|
|
{
|
|
|
|
ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
|
|
|
|
int i = 0, count = 0;
|
|
|
|
u32 cluster, mask = 0;
|
|
|
|
|
|
|
|
do {
|
|
|
|
int j;
|
|
|
|
cluster = in_be32(&gur->tp_cluster[i++].lower);
|
|
|
|
for (j = 0; j < 4; j++) {
|
|
|
|
u32 idx = (cluster >> (j*8)) & TP_CLUSTER_INIT_MASK;
|
|
|
|
u32 type = in_be32(&gur->tp_ityp[idx]);
|
|
|
|
|
|
|
|
if (type & TP_ITYP_AV) {
|
|
|
|
if (TP_ITYP_TYPE(type) == TP_ITYP_TYPE_PPC)
|
|
|
|
mask |= 1 << count;
|
|
|
|
}
|
|
|
|
count++;
|
|
|
|
}
|
|
|
|
} while ((cluster & TP_CLUSTER_EOC) != TP_CLUSTER_EOC);
|
|
|
|
|
|
|
|
return mask;
|
|
|
|
}
|
|
|
|
#else /* CONFIG_SYS_FSL_QORIQ_CHASSIS2 */
|
|
|
|
/*
|
|
|
|
* Before chassis genenration 2, the cpumask should be hard-coded.
|
|
|
|
* In case of cpu type unknown or cpumask unset, use 1 as fail save.
|
|
|
|
*/
|
|
|
|
#define compute_ppc_cpumask() 1
|
|
|
|
#endif /* CONFIG_SYS_FSL_QORIQ_CHASSIS2 */
|
|
|
|
|
2012-10-29 13:34:37 +00:00
|
|
|
static struct cpu_type cpu_type_unknown = CPU_TYPE_ENTRY(Unknown, Unknown, 0);
|
2009-09-02 08:05:21 +00:00
|
|
|
|
2009-07-31 06:37:45 +00:00
|
|
|
struct cpu_type *identify_cpu(u32 ver)
|
|
|
|
{
|
|
|
|
int i;
|
|
|
|
for (i = 0; i < ARRAY_SIZE(cpu_type_list); i++) {
|
|
|
|
if (cpu_type_list[i].soc_ver == ver)
|
|
|
|
return &cpu_type_list[i];
|
|
|
|
}
|
2009-09-02 08:05:21 +00:00
|
|
|
return &cpu_type_unknown;
|
2009-07-31 06:37:45 +00:00
|
|
|
}
|
|
|
|
|
2011-08-05 21:15:24 +00:00
|
|
|
#define MPC8xxx_PICFRR_NCPU_MASK 0x00001f00
|
|
|
|
#define MPC8xxx_PICFRR_NCPU_SHIFT 8
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return a 32-bit mask indicating which cores are present on this SOC.
|
|
|
|
*/
|
2012-10-29 13:34:37 +00:00
|
|
|
u32 cpu_mask(void)
|
2011-08-05 21:15:24 +00:00
|
|
|
{
|
|
|
|
ccsr_pic_t __iomem *pic = (void *)CONFIG_SYS_MPC8xxx_PIC_ADDR;
|
|
|
|
struct cpu_type *cpu = gd->cpu;
|
|
|
|
|
|
|
|
/* better to query feature reporting register than just assume 1 */
|
|
|
|
if (cpu == &cpu_type_unknown)
|
|
|
|
return ((in_be32(&pic->frr) & MPC8xxx_PICFRR_NCPU_MASK) >>
|
|
|
|
MPC8xxx_PICFRR_NCPU_SHIFT) + 1;
|
|
|
|
|
2012-08-17 08:20:22 +00:00
|
|
|
if (cpu->num_cores == 0)
|
|
|
|
return compute_ppc_cpumask();
|
|
|
|
|
2011-08-05 21:15:24 +00:00
|
|
|
return cpu->mask;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Return the number of cores on this SOC.
|
|
|
|
*/
|
2012-10-29 13:34:37 +00:00
|
|
|
int cpu_numcores(void)
|
|
|
|
{
|
2010-07-15 00:47:29 +00:00
|
|
|
struct cpu_type *cpu = gd->cpu;
|
|
|
|
|
2012-08-17 08:20:22 +00:00
|
|
|
/*
|
|
|
|
* Report # of cores in terms of the cpu_mask if we haven't
|
|
|
|
* figured out how many there are yet
|
|
|
|
*/
|
|
|
|
if (cpu->num_cores == 0)
|
|
|
|
return hweight32(cpu_mask());
|
2010-07-15 00:47:29 +00:00
|
|
|
|
2009-07-31 06:38:14 +00:00
|
|
|
return cpu->num_cores;
|
|
|
|
}
|
|
|
|
|
2011-08-05 21:15:24 +00:00
|
|
|
/*
|
|
|
|
* Check if the given core ID is valid
|
|
|
|
*
|
|
|
|
* Returns zero if it isn't, 1 if it is.
|
|
|
|
*/
|
|
|
|
int is_core_valid(unsigned int core)
|
|
|
|
{
|
2012-08-17 08:20:22 +00:00
|
|
|
return !!((1 << core) & cpu_mask());
|
2011-08-05 21:15:24 +00:00
|
|
|
}
|
|
|
|
|
2009-07-31 06:38:14 +00:00
|
|
|
int probecpu (void)
|
|
|
|
{
|
|
|
|
uint svr;
|
|
|
|
uint ver;
|
|
|
|
|
|
|
|
svr = get_svr();
|
|
|
|
ver = SVR_SOC_VER(svr);
|
|
|
|
|
|
|
|
gd->cpu = identify_cpu(ver);
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2012-08-17 08:20:22 +00:00
|
|
|
/* Once in memory, compute mask & # cores once and save them off */
|
|
|
|
int fixup_cpu(void)
|
|
|
|
{
|
|
|
|
struct cpu_type *cpu = gd->cpu;
|
|
|
|
|
|
|
|
if (cpu->num_cores == 0) {
|
|
|
|
cpu->mask = cpu_mask();
|
|
|
|
cpu->num_cores = cpu_numcores();
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2009-07-31 06:37:45 +00:00
|
|
|
/*
|
|
|
|
* Initializes on-chip ethernet controllers.
|
|
|
|
* to override, implement board_eth_init()
|
|
|
|
*/
|
|
|
|
int cpu_eth_init(bd_t *bis)
|
|
|
|
{
|
|
|
|
#if defined(CONFIG_ETHER_ON_FCC)
|
|
|
|
fec_initialize(bis);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(CONFIG_UEC_ETH)
|
|
|
|
uec_standard_init(bis);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(CONFIG_TSEC_ENET) || defined(CONFIG_MPC85XX_FEC)
|
|
|
|
tsec_standard_init(bis);
|
|
|
|
#endif
|
|
|
|
|
2011-04-13 13:37:44 +00:00
|
|
|
#ifdef CONFIG_FMAN_ENET
|
|
|
|
fm_standard_init(bis);
|
|
|
|
#endif
|
2009-07-31 06:37:45 +00:00
|
|
|
return 0;
|
|
|
|
}
|