|
0000.entry: c0008000 stext //arch/arm/kernel/head-armv.S
0001, __lookup_processor_type //arch/arm/kernel/head-armv.S
struct proc_info_list { //include/asm/procinfo.h
unsigned int cpu_val;
unsigned int cpu_mask;
unsigned long __cpu_mmu_flags; /* used by head-armv.S */
unsigned long __cpu_flush; /* used by head-armv.S */
const char *arch_name;
const char *elf_name;
unsigned int elf_hwcap;
struct proc_info_item *info;
#ifdef MULTI_CPU
struct processor *proc;
#else void *unused;
#endif };
__arm920_proc_info: @arch/arm/mm/proc-arm920.s
.long 0x41009200
.long 0xff00fff0
.long 0x00000c1e @ mmuflags
b __arm920_setup
.long cpu_arch_name
.long cpu_elf_name
.long HWCAP_SWP | HWCAP_HALF | HWCAP_THUMB
.long cpu_arm920_info
.long arm920_processor_functions
.size __arm920_proc_info, . - __arm920_proc_info -
0002,__lookup_architecture_type //arch/arm/kernel/head-armv.S
struct machine_desc { //include/asm/mach/arch.h
/* * Note! The first four elements are used
* by assembler code in head-armv.S */
unsigned int nr; /* architecture number */
unsigned int phys_ram; /* start of physical ram */
unsigned int phys_io; /* start of physical io */
unsigned int io_pg_offst; /* byte offset for io * page tabe entry */
const char *name; /* architecture name */
unsigned int param_offset; /* parameter page */
unsigned int video_start; /* start of video RAM */
unsigned int video_end; /* end of video RAM */
unsigned int reserve_lp0 :1; /* never has lp0 */
unsigned int reserve_lp1 :1; /* never has lp1 */
unsigned int reserve_lp2 :1; /* never has lp2 */
unsigned int soft_reboot :1; /* soft reboot */
void (*fixup)(struct machine_desc *, struct param_struct *, char **, struct meminfo *);
void (*map_io)(void);/* IO mapping function */
void (*init_irq)(void); };
MACHINE_START(SMDK2410, "Br-MC2410") //arch/arm/mach-s3c2410/smdk.c
BOOT_MEM(0x30000000, 0x48000000, 0xe8000000)
BOOT_PARAMS(0x30000100) FIXUP(fixup_smdk)
MAPIO(smdk_map_io)
INITIRQ(s3c2410_init_irq)
MACHINE_END
0003,__create_page_tables //arch/arm/kernel/head-armv.S
@create page table at address c0004000
@c0008000 page entry
0004,__arm920_setup //arm/arm/mm/proc-arm920.s
mcr p15, 0, r4, c2, c0 @set page table base addr register c2
0005,__ret //arch/arm/kernel/head-armv.S
mcr p15, 0, r0, c1, c0 @enable c1 mmu function -
0006__mmap_switched //arch/arm/kernel/head-armv.S
b SYMBOL_NAME(start_kernel) ...