Linux Kernel
3.7.1
|
#include <asm/cpu-features.h>
#include <asm/segment.h>
#include <asm/cache.h>
#include <asm/processor_64.h>
Go to the source code of this file.
Data Structures | |
struct | tlb_info |
struct | sh_cpuinfo |
Macros | |
#define | boot_cpu_data cpu_data[0] |
#define | current_cpu_data cpu_data[smp_processor_id()] |
#define | raw_current_cpu_data cpu_data[raw_smp_processor_id()] |
#define | cpu_sleep() __asm__ __volatile__ ("sleep" : : : "memory") |
#define | cpu_relax() barrier() |
#define | GET_UNALIGN_CTL(tsk, addr) get_unalign_ctl((tsk), (addr)) |
#define | SET_UNALIGN_CTL(tsk, val) set_unalign_ctl((tsk), (val)) |
#define | SH_THREAD_UAC_NOPRINT (1 << 0) |
#define | SH_THREAD_UAC_SIGBUS (1 << 1) |
#define | SH_THREAD_UAC_MASK (SH_THREAD_UAC_NOPRINT | SH_THREAD_UAC_SIGBUS) |
#define | MODE_PIN0 (1 << 0) |
#define | MODE_PIN1 (1 << 1) |
#define | MODE_PIN2 (1 << 2) |
#define | MODE_PIN3 (1 << 3) |
#define | MODE_PIN4 (1 << 4) |
#define | MODE_PIN5 (1 << 5) |
#define | MODE_PIN6 (1 << 6) |
#define | MODE_PIN7 (1 << 7) |
#define | MODE_PIN8 (1 << 8) |
#define | MODE_PIN9 (1 << 9) |
#define | MODE_PIN10 (1 << 10) |
#define | MODE_PIN11 (1 << 11) |
#define | MODE_PIN12 (1 << 12) |
#define | MODE_PIN13 (1 << 13) |
#define | MODE_PIN14 (1 << 14) |
#define | MODE_PIN15 (1 << 15) |
#define | vsyscall_init() do { } while (0) |
#define | instruction_size(insn) (4) |
Enumerations | |
enum | cpu_type { CPU_MORGAN, CPU_AT32AP, CPU_MAX, pcx = 0, pcxs = 1, pcxt = 2, pcxt_ = 3, pcxl = 4, pcxl2 = 5, pcxu = 6, pcxu_ = 7, pcxw = 8, pcxw_ = 9, pcxw2 = 10, mako = 11, mako2 = 12, CPU_SH7619, CPU_SH7201, CPU_SH7203, CPU_SH7206, CPU_SH7263, CPU_SH7264, CPU_SH7269, CPU_MXG, CPU_SH7705, CPU_SH7706, CPU_SH7707, CPU_SH7708, CPU_SH7708S, CPU_SH7708R, CPU_SH7709, CPU_SH7709A, CPU_SH7710, CPU_SH7712, CPU_SH7720, CPU_SH7721, CPU_SH7729, CPU_SH7750, CPU_SH7750S, CPU_SH7750R, CPU_SH7751, CPU_SH7751R, CPU_SH7760, CPU_SH4_202, CPU_SH4_501, CPU_SH7763, CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SH7786, CPU_SH7723, CPU_SH7724, CPU_SH7757, CPU_SH7734, CPU_SHX3, CPU_SH7343, CPU_SH7722, CPU_SH7366, CPU_SH7372, CPU_SH5_101, CPU_SH5_103, CPU_SH_NONE } |
enum | cpu_family { CPU_FAMILY_SH2, CPU_FAMILY_SH2A, CPU_FAMILY_SH3, CPU_FAMILY_SH4, CPU_FAMILY_SH4A, CPU_FAMILY_SH4AL_DSP, CPU_FAMILY_SH5, CPU_FAMILY_UNKNOWN } |
Functions | |
struct sh_cpuinfo | __attribute__ ((aligned(L1_CACHE_BYTES))) |
void | default_idle (void) |
void | stop_this_cpu (void *) |
void | cpu_init (void) |
void | cpu_probe (void) |
void | free_thread_xstate (struct task_struct *) |
int | get_unalign_ctl (struct task_struct *, unsigned long addr) |
int | set_unalign_ctl (struct task_struct *, unsigned int val) |
const char * | get_cpu_subtype (struct sh_cpuinfo *c) |
int | generic_mode_pins (void) |
int | test_mode_pin (int pin) |
Variables | |
unsigned int | type |
unsigned int | family |
int | cut_major |
int | cut_minor |
unsigned long | loops_per_jiffy |
unsigned long | asid_cache |
struct cache_info | icache |
struct cache_info | dcache |
struct cache_info | scache |
struct tlb_info | itlb |
struct tlb_info | dtlb |
unsigned int | phys_bits |
unsigned long | flags |
struct sh_cpuinfo | cpu_data [] |
struct pt_regs | fake_swapper_regs |
unsigned int | xstate_size |
struct kmem_cache * | task_xstate_cachep |
unsigned int | mem_init_done |
struct seq_operations | cpuinfo_op |
#define boot_cpu_data cpu_data[0] |
Definition at line 94 of file processor.h.
Definition at line 99 of file processor.h.
Definition at line 98 of file processor.h.
#define current_cpu_data cpu_data[smp_processor_id()] |
Definition at line 95 of file processor.h.
#define GET_UNALIGN_CTL | ( | tsk, | |
addr | |||
) | get_unalign_ctl((tsk), (addr)) |
Definition at line 122 of file processor.h.
#define instruction_size | ( | insn | ) | (4) |
Definition at line 172 of file processor.h.
#define MODE_PIN0 (1 << 0) |
Definition at line 138 of file processor.h.
#define MODE_PIN1 (1 << 1) |
Definition at line 139 of file processor.h.
#define MODE_PIN10 (1 << 10) |
Definition at line 148 of file processor.h.
#define MODE_PIN11 (1 << 11) |
Definition at line 149 of file processor.h.
#define MODE_PIN12 (1 << 12) |
Definition at line 150 of file processor.h.
#define MODE_PIN13 (1 << 13) |
Definition at line 151 of file processor.h.
#define MODE_PIN14 (1 << 14) |
Definition at line 152 of file processor.h.
#define MODE_PIN15 (1 << 15) |
Definition at line 153 of file processor.h.
#define MODE_PIN2 (1 << 2) |
Definition at line 140 of file processor.h.
#define MODE_PIN3 (1 << 3) |
Definition at line 141 of file processor.h.
#define MODE_PIN4 (1 << 4) |
Definition at line 142 of file processor.h.
#define MODE_PIN5 (1 << 5) |
Definition at line 143 of file processor.h.
#define MODE_PIN6 (1 << 6) |
Definition at line 144 of file processor.h.
#define MODE_PIN7 (1 << 7) |
Definition at line 145 of file processor.h.
#define MODE_PIN8 (1 << 8) |
Definition at line 146 of file processor.h.
#define MODE_PIN9 (1 << 9) |
Definition at line 147 of file processor.h.
#define raw_current_cpu_data cpu_data[raw_smp_processor_id()] |
Definition at line 96 of file processor.h.
#define SET_UNALIGN_CTL | ( | tsk, | |
val | |||
) | set_unalign_ctl((tsk), (val)) |
Definition at line 123 of file processor.h.
#define SH_THREAD_UAC_MASK (SH_THREAD_UAC_NOPRINT | SH_THREAD_UAC_SIGBUS) |
Definition at line 135 of file processor.h.
#define SH_THREAD_UAC_NOPRINT (1 << 0) |
Definition at line 133 of file processor.h.
#define SH_THREAD_UAC_SIGBUS (1 << 1) |
Definition at line 134 of file processor.h.
#define vsyscall_init | ( | void | ) | do { } while (0) |
Definition at line 161 of file processor.h.
enum cpu_family |
CPU_FAMILY_SH2 | |
CPU_FAMILY_SH2A | |
CPU_FAMILY_SH3 | |
CPU_FAMILY_SH4 | |
CPU_FAMILY_SH4A | |
CPU_FAMILY_SH4AL_DSP | |
CPU_FAMILY_SH5 | |
CPU_FAMILY_UNKNOWN |
Definition at line 48 of file processor.h.
enum cpu_type |
Definition at line 16 of file processor.h.
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 1127 of file cpu-probe.c.
void free_thread_xstate | ( | struct task_struct * | ) |
int get_unalign_ctl | ( | struct task_struct * | , |
unsigned long | addr | ||
) |
int set_unalign_ctl | ( | struct task_struct * | , |
unsigned int | val | ||
) |
unsigned long asid_cache |
Definition at line 95 of file processor.h.
struct seq_operations cpuinfo_op |
int cut_major |
Definition at line 93 of file processor.h.
int cut_minor |
Definition at line 93 of file processor.h.
struct cache_info dcache |
Definition at line 98 of file processor.h.
Definition at line 103 of file processor.h.
Definition at line 36 of file process_64.c.
unsigned int family |
Definition at line 92 of file processor.h.
unsigned long flags |
Definition at line 106 of file processor.h.
struct cache_info icache |
Definition at line 97 of file processor.h.
Definition at line 102 of file processor.h.
unsigned long loops_per_jiffy |
Definition at line 94 of file processor.h.
unsigned int phys_bits |
Definition at line 105 of file processor.h.
Definition at line 99 of file processor.h.
struct kmem_cache* task_xstate_cachep |
Definition at line 92 of file processor.h.