#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/log2.h>
#include <asm/mmu_context.h>
#include <asm/processor.h>
#include <asm/uaccess.h>
#include <asm/page.h>
#include <asm/cacheflush.h>
#include <asm/cache.h>
#include <asm/elf.h>
#include <asm/io.h>
#include <asm/smp.h>
#include <asm/sh_bios.h>
#include <asm/setup.h>
Go to the source code of this file.
#define cache_init |
( |
|
void | ) |
do { } while (0) |
#define CSHAPE |
( |
|
totalsize, |
|
|
|
linesize, |
|
|
|
assoc |
|
) |
| ((totalsize & ~0xff) | (linesize << 4) | assoc) |
#define expmask_init |
( |
| ) |
do { } while (0) |
#define onchip_setup |
( |
|
x | ) |
|
Value:
\
{ \
x##_disabled = 1; \
return 1; \
} \
Definition at line 45 of file init.c.
#define speculative_execution_init |
( |
| ) |
do { } while (0) |
cpu_init
This is our initial entry point for each CPU, and is invoked on the boot CPU prior to calling start_kernel(). For SMP, a combination of this and start_secondary() will bring up each processor to a ready state prior to hand forking the idle loop.
We do all of the basic processor init here, including setting up the caches, FPU, DSP, etc. By the time start_kernel() is hit (and subsequently platform_setup()) things like determining the CPU subtype and initial configuration will all be done.
Each processor family is still responsible for doing its own probing and cache configuration in cpu_probe().
Definition at line 298 of file init.c.