장석원님께...

솔찍하게 고객님은 저희가 답변해야 하는 대상의
수준을 넘으신것 같습니다. ^^

우선 질문하신 내용에 대한 답변을 드리면

커널내부가 어떻게 동작하는 가에 대한 질문 중에서
지금 추적하고 계신 부분은 커널이 처음 부팅되면서
내부적으로 MMU를 초기화 하는 부분입니다.
특히 I/O 영역의 주소를 커널 메모리 공간으로 맵핑하는 것이죠..
변경되지 않는 고정 영역들이랍니다.

이 부분은 ARM 고유의 특징입니다.

그런데 이 부분을 파악하려면 arch/arm/mm/proc-??? 라는 부분을
분석하셔야 하거든요.. 그리고 arch/arm/kernel/, arch/arm/mach-???/
도 같이 따라 다니시면서요..

이부분에 대한 질문은 저희에게 하지 말아 주시고
관련 자료를 찾거나 직접 해결해 주세요

저희역시 완전하게 분석하고 있는 것도 아니라서
잘못하면 거짓말로 대답을 해 줄수도 있고
그정도면 남에게 묻지 않고 스스로 찾을수도 있다고 보기
때문이지요 ^^

분석하시고 다른 분들에게 답변을 부탁드립니다

참고로 관련 자료들은 kelp에 가시면 권수호씨가 쓴 글과
s3c2800에 가시면 ARM 의 커널 부팅과 관련된 분석글들이
있읍니다. 그걸 참조하시면서 분석하셔야 합니다. ^^

장석원 wrote..
: linux-2.4.19-x5-v05/arch/arm/mm-armv.c에서
: void __init iotable_init(struct map_desc *io_desc) 함수내에
: create_mapping(io_desc + i); 여기에서는 구체적으로 무었을 맵핑하나요?
: 그리고 io_desc + i는 무었을 가리키나요?
:
: linux-2.4.19-x5-v05/arch/arm/init.c에서
: memtable_init(mi);
: if (mdesc->map_io)
: mdesc->map_io(); 이 함수는 함수포인터를 사용하여 함수를
: 실행하는것 같은데 그럼 create_mapping()함수를 실행하도록 함수포인터가
: 설정되 있나요?
: mdesc->map_io()의 함수포인터 설정은 어디에서 이루어지는지요?