안녕하십니까.

현재 저는 ezboard에 ethernet chip을 하나더 붙여서 사용할려구 합니다.
ezboard HOWTO문서에 나오는데로 kernel을 수정한다음 디바이스 드라이버를
module로 컴파일한 다음 insmod로 해당 module을 올리려고 합니다.

수정사항.
arch/arm/mach-sa1100/ezboard.c
static struct map_desc ezboard_io_desc[] __initdata = {
{ 0xe8000000, 0x000000000, 0x01000000, DOMAIN_IO, 1,1,0,0 },
{ 0xf0000000, 0x100000000, 0x00100000, DOMAIN_IO, 1,1,0,0 },/*Crystal
Chip*/
{ 0xe0000000, 0x180000000, 0x00100000, DOMAIN_IO, 1,1,0,0 },/*AX88196*/
(* ide가 쓰는 nCS3를 ethernet Chip이 사용하므로 위와같이 설정함)

그리고 디바이스 드라이버 안에
static unsigned int netcard_portlist[] __initdata =
{ 0xe0000200, 0 }
static int io = 0xe0000200;
(* ethernet chip은 nCS3에 연결되어 있음)

이렇게 수정을 하고 insmod로 디바이스 드라이버를 올릴려고 하는데 다음과 같
은 메세지가 출력되었습니다.

Unable to handle kernel paging request at virtual address e0000200
pgd = c19bc000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: 0
CPU: 0
pc : [] lr : [] Not tainted
sp : c19c5dfc ip : c19c5da8 fp : c19c5e90
r10: c2825940 r9 : 00000000 r8 : c2825470
r7 : e0000200 r6 : c2825470 r5 : 00000000 r4 : 00000000
r3 : c015fdbc r2 : 00000001 r1 : 00000001 r0 : 00000015
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C19BF17F Table: C19BF17F DAC: 00000015
Process insmod (pid: 68, stackpage=c19c5000)
Stack:

이 메세지가 나오게 된 부분을 추적하니.. virtual address을 처음으로 access
하는 부분인 'inb_p(ioaddr)'이라는 부분에서 에러가 나왔습니다.
관련된 것들을 찾아보니... virtual address를 잘못 설정하였을때 이렇게 된다
고 하는걸 보았습니다. 그런데... 현재 이 virtual address는 ezboard의 ide에
서 사용하는 것을 사용했으므로 무리가 없을것 같은데 이렇게 메세지가 뜨
니........

제가 궁금한 것은 두가지 입니다.

첫째. 위와같은 메세지가 virtual address와 physical address를 잘못연결시켰
을때 나오는 메세지 인지요.. 이 가정이 맞다면 virtual address와 physical
address을 연결시키는 방법은 어떤것이 있을까요..

둘째. ezboard의 ide에 할당된 nCS3를 ethernet Chip가 쓰니.. address 설정
은 같게 하면 될것 같은데... 되지 않았습니다.. 무슨 이유가 있을까요?