도와주세요!!
include/kernel.h 파일내에서
아래와 같이 주소가 정의가 되어 있었습니다.
//
// arm kernel 과 관련된 내용
//
#define ATAG_NONE 0x00000000 // 태그 리스트의 끝
#define ATAG_CORE 0x54410001 // 태그 리스트의 시작
#define ATAG_MEM 0x54410002 // 물리적 메모리 영역 정보
#define ATAG_VIDEOTEXT 0x54410003 // VGA TEXT 디스플레이 정보
#define ATAG_RAMDISK 0x54410004 // 램디스크 정보
#define ATAG_INITRD2 0x54420005 // 램디스크 정보
#define ATAG_SERIAL 0x54410006 // 64 비트 길이의 보드 고유 번호
#define ATAG_REVISION 0x54410007 // 32 비트 길이의 보드 개정 번호
#define ATAG_VIDEOLFB 0x54410008 // VESA 프레임 버퍼 타입의 초기화 정보
#define ATAG_CMDLINE 0x54410009 // 커널 커맨드
제가 궁금한 점은 위와 같이 정의된 주소가 s3c2440 데이터 시트에도 정의되지 않은 메모리 공간이었습니다.
그리고, sdram 영역도 벗어났구요... 그래서, 어떻게 위와 같은 주소정의가 가능한지 알고 싶어 질문드립니다.
그리고, 이 주소들은 고정된 영역인지도 알고 싶구, 또 리눅스 커널 파일소스에서 정의되는 부분이 있는지 알고 싶습니다.
그리고, 혹시 정의된다면 어느곳에 정의되는지 등... 자세히 알려주시면 정말 감사하겠습니다.
ID 값이라고 이해하시면 쉽겠네요 ATAG_MEM 으로 시작하면 메모리 정보가 시작된다는 말이죠
위의 값들은 커널에서 예약된 고정된 값입니다.
좀더 자세한 사항은 커널소스에서 제공되는 Documentation/arm/Booting 파일을 참고하세요