setup_processor() 를 호출하여 pro_info_list 구조체 정보를 전역 변수에 각각 저장한다.
setup_machine(machine_arch_type) 를 호출하여 machine_desc 구조체 포인터를 얻는다.
machine 이 soft_reboot 지원하는지 확인하고, boot_params 이 존재하면, tags 구조체 주조에 받아온다.
tags 형식이 예전에 사용하던 전달 방식이면, convert_to_tag_list 를 호출하여 tags 형식으로 변환하고, ATAG_CORE 로 시작하는지 확인하고, 아니면 디볼트 정의된 init_tags 를 사용한다.
machine 이 fixup 를 지원하는지 확인하고, 지원하면 호출한다. 여기서는 meminfo 구조체를 fix 하는 역활을 한다.
tags 를 처리하기 전에 meminfo 정보가 저장된 경우라면, ATAG_MEM를 ATAG_NONE 으로 변경하는 squash_mem_tags 를 호출한다.
parse_tags 를 호출하여 tags 를 처리한다.
init_mm 구조체에 start_code, end_eode, end_data, brk 값을 저장한다.
parse_cmdline 를 호출하여 command line 를 처리한다.
paging_init 를 호출하여 부트 메모리 allocator 를 초기화 한다.
'리눅스커널' 카테고리의 다른 글
[ convert_to_tag_list ] arch/arm/kernel/setup.c (0) | 2009.10.02 |
---|---|
[ setup_processor ] arch/arm/kernel/setup.c (0) | 2009.10.02 |
[ volatile , barrier ] (0) | 2009.10.02 |
Memory Barrier (0) | 2009.10.02 |
[ __turn_mmu_on ] arch/arm/kernel/head.S (0) | 2009.10.02 |