보통 h/w개발자와 s/w개발자가 의논해서 "메모리 맵"을 결정하는 것으로 알고 있습니다.
일단, 메모리 맵이 결정이 되면, 이것에 의해서 h/w개발도 하고,
s/w 작업(kernel,driver porting등)도 하는 것으로 알고 있습니다.

그리고, 메모리 맵(또는 h/w설계)에 이 결정되면,
이것에 의해서, physical address가 정해지구요.
이렇게 정해진 각각의 physical address와
이에 해당되는(매칭되는) virtual address 배정(매핑)을 하게 됩니다.
이러한 "physical address <-> virtual address " 메모리의 매핑 작업은
[아래]의 예와 같이 linux/arch/arm/mach-pxa/xxx.c 파일에서 해 주는 것으로 알고 있습니다.

예를 들어서…커널 2.4 버전에서… xxx.c 파일의 경우는 [아래]와 같이 해줍니다.

===============[아래]====================================================================
static struct map_desc cerf_io_desc[] __initdata = {
/* virtual physical length domain r w c b */
{ 0xe8000000, 0x00000000, 0x02000000, DOMAIN_IO, 1, 1, 0, 0 }, /* Flash bank 0 */
{ 0xf0000000, 0x08000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* Crystal Ethernet Chip */
#ifdef CONFIG_SA1100_CERF_CPLD
{ 0xf1000000, 0x40000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CPLD Chip */
{ 0xf2000000, 0x10000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CerfPDA Bluetooth */
{ 0xf3000000, 0x18000000, 0x00100000, DOMAIN_IO, 1, 1, 0, 0 }, /* CerfPDA Serial */
72 #endif73 LAST_DESC74 };
==========================================================================================

즉...
physical address는 메모리맵을 기준으로 자동적 특정 번지로 결정이 됩니다.
그렇다면, virtual address는 어떤 기준(방법)으로 physical address와 매칭을 시키나요 ?
즉…physical address에 대응되는 virtual address는 어떻게 결정을 하는지요?
좋은 하루 되시구요…답변 주시면…감사드리겠습니다.





물리메모리 가상메모리 매핑방법 | 답장: 2개(RSS) | 본문에 답장
정렬 :  

답장 익명 (2007년 06월 21일 오후 02:47)
설계하시는 분이 하기 나릅입니다만...
기본적으로는 linux\Documentation\arm\memory.txt 파일을 보시면
암에서 메모리 설계에 대한 기본 구조가 있습니다.
그안에서 하드웨어에 맞게 구성하시면 됩니다.
[ 이글에 답장 | 본문에 답장 ]

답장 익명 (2007년 06월 28일 오후 03:30)
물리주소와 가상주소의 매핑은 어떻게 결정을 하는게 아니고.
위에 보니까 PXA27x CPU같은데 CPU 데이터시트 뒤쪽 memort map and registers부분 챕터를 찾아보시면 이미 CPU에서 대응해서 정해져 있다는걸 아실 수 있습니다.


'Device Driver > Memory' 카테고리의 다른 글

ioremap() VS. phys_to_virt()  (0) 2009.06.17
램디스크를 쓸것인가? MTD를 쓸것인가?  (0) 2009.06.08
MTD(Memory Technology Device)  (0) 2009.06.08
Common Flash Interface(CFI)  (0) 2009.06.08

WRITTEN BY
RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.

,