笑含风的个人空间 https://blog.eetop.cn/miaofng [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

boot sequency of arm-s3c2410-linux-2.4

已有 1081 次阅读| 2008-4-18 15:17

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 at c0004000+(c0008000>>20)*4 =c0007000

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) ...


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 5

    评论
  • 398

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 04:38 , Processed in 0.015702 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部