안녕하세요..

device driver 만들기를 해보다가 보니..

ezboard.c 에 memory map 을 등록하는 부분이 있더군요.

여기서 질문을 드리자면,

1. ezboard.c에 memory map 을 등록할때,

//linux/arch/arm/mach-SA1100/ezboard.c 에서
static struct map_desc ezboard_io_desc[] __initdata = {
// virtual physical length domain r w c b
{ 0xe8000000, 0x00000000, 0x01000000, DOMAIN_IO, 1, 1, 0, 0 }, // Flash
bank 0
{ 0xf0000000, 0x10000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, //
Crystal Chip
{ 0xf0100000, 0x18000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, // Sample
IO LAST_DESC
};

위와 같은 예에서 physical address 에 따른 virtual address 를 정하는 일정
한 규칙이 있는 지 궁금합니다.

2. kernel 소스 트리의 ezboard.c 에 위처럼 등록을 하지 않고 memory
mapping 된 i/o address 를 (gpio 가 아닌) 이용한 device driver를 작성 및
사용이 가능한지 궁금합니다.

3. 2번의 질문에서 만약 불가능하다면, 사용하고자하는 device driver 를 추가
할때마다, kernel의 ezboard.c를 수정해서 새로 커널을 컴파일하여 사용해야
하는지 궁금합니다.

답변에 미리 감사드립니다.
수고하세요.