기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

제가 작업하고 있는 kernel source를 확인 했더니

[~/asm/arch/haware.h]

........

#define CONFIG_HDD_START  0x50000000
.........

#define HDD_BASE   0xE2000000        // VA of HDD
#define HDD_SIZE   SZ_16M
#define HDD_START  CONFIG_HDD_START  // PA of HDD registers

로 정의 되어 있고


위의 값을 struct map_desc에  아래와 같이

[~/arch/arm/mach-dm320/core.c]

static struct map_desc itdm320_io_desc[] __initdata = {
        ..........

        { HDD_BASE, __phys_to_pfn(HDD_START), HDD_SIZE, MT_DEVICE },
       ............
};

저장 했을때

kernel에서 physical memory를 virtual로 mapping한 거라면

driver에서 접근 하는  memory 0x50400000 를 I/O memory로 mapping해서  사용하지 않고

0xE2400000에 직접 data를 쓰도록 고처서 했는데... 신호는 나가는데 그게 좀 이상해서...

device driver 에서 위와 같이

mapping된 virtual address를 사용하면 physical address에 접근이 가능하지 궁금합니다.


고현철

2008.04.02 02:21:14
*.202.132.222

예...접근이 가능합니다.

MMU 세팅 옵션중에 non-cache로 되어 있는지만 확인해 보시기 바랍니다.
2.6은 옵션이 있었나 없었나 가물하네요...ㅎㅎ

2.4는 확실히 있었습니다만

HDD_SIZE는 16메가까지 필요없을겁니다. pio mode일 경우는 몇개 접근하지 않거든요...대략 1M정도면 아마도 될겁니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인