᡼󥰥ꥹȥ

    http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2001-July/004064.html

ꡣ


ǽ
----------

ΥܥϡʤΥޥˤ __virt_to_phys() ʤ
Ѵ򤢤ʤ򤷤ƤȤȤȤƤޤΥޥϡ
Ϥ줿ۥɥ쥹ʪɥ쥹Ѵޤ̾盧ϡΤ褦
ñʤΤǤ

                phys = virt - PAGE_OFFSET + PHYS_OFFSET


ǥץå () ܥ
--------------------------------

ZTEXTADDR
        ǥץåγϥɥ쥹Ǥϡۥɥ쥹ʪɥ쥹
        ĤäȤϤޤ󡣤ȤΤ⡢ǥץåΥɤƤ
        ФȤˤϡMMU ϥդˤʤäƤ뤫Ǥͥ֡Ȥ
        ᡢ̾ϤΥɥ쥹ˤ륫ͥƤӽФޤRAM ¸ߤ
        ɬפϤʤեå䤽¾Υ꡼ɥ꡼⤷ɤ߽񤭤Ǥ
        ɥ쥹ǽʥǥ֤ȤǤޤ
        
ZBSSADDR
        ǥץåѤΥǽΰγϥɥ쥹
        RAM ؤƤʤФʤޤ󡣥ǥץåϡΰ򥼥
        ޤˤĤƤ⡢MMU ϥդǤ

ZRELADDR
        ϡव줿ͥ뤬񤭹ޤ졢ǽŪ˼¹Ԥ륢ɥ쥹
        Ǥ郎ΩäƤɬפޤ

                __virt_to_phys(TEXTADDR) == ZRELADDR

        ͥΤϤʬϡΩȤʤ褦տǥ
        Ƥޤ

INITRD_PHYS
         RAM ǥ֤ʪɥ쥹bootpImage ϢΤ
        (ϸŤ¤ param_struct ǤΤߵǽޤ) ȤΤ
        طޤ

INITRD_VIRT
         RAM ǥβۥɥ쥹郎ΩäƤɬפ
        ޤ

                __virt_to_phys(INITRD_VIRT) == INITRD_PHYS

PARAMS_PHYS
        param_struct ¤Τ⤷ϥꥹȤʪɥ쥹¹ԴĶ˴ؤ
        ͡ʥѥ᡼򥫡ͥͿޤ


ͥ륷ܥ
----------------

PHYS_OFFSET
        RAM ΰܤΥХ󥯤ʪϥɥ쥹

PAGE_OFFSET
        RAM ΰܤΥХ󥯤β۳ϥɥ쥹ͥΥ֡ʳǡ
        ɥ쥹 PAGE_OFFSET ʪɥ쥹 PHYS_OFFSET ˥ޥåפޤ
        ꤵ줿¾Υޥåԥ󥰤⤪ʤޤ TASK_SIZE Ʊ
        ͤȤʤǤ礦

TASK_SIZE
        Хñ̤ǤΥ桼ץ祵桼֤Ͼ˥鳫
        Τǡϡ桼ץǤ祢ɥ쥹 + 1 
        ʤޤ桼֥åϤΥɥ쥹鲼˿ӤƤޤ

        TASK_SIZE 겼βۥɥ쥹ƥ桼ץΰȤʤΤǡ
        ͥΥץˤꡢץñ̤ưŪ˴ޤ
        桼ȤȸƤǤޤ

        TASK_SIZE ʬơץǶ̤Ȥʤޤ
        ͥ륻ȤȸƤǤޤ

        (ޤȡTASK_SIZE, Ĥޤ PAGE_OFFSET Ⲽˤ I/O
         ޥåԥ󥰤򤪤ʤʤȤȤˤʤޤ)

TEXTADDR
        ͥβ۳ϥɥ쥹Ǥꡢ̾ PAGE_OFFSET + 0x8000 Ǥ
        ǽŪ˥ͥ륤᡼ˤޤǿΥͥǤϡ128MB
        ϰϤ 32768 ХȤˤʤФʤޤ󡣰ΥͥǤϡ
        ¤ 256MB Ǥ

DATAADDR
        ͥǡȤβۥɥ쥹ǥץ쥵Ȥˤ
        ƤƤϤޤ

VMALLOC_START
VMALLOC_END
        vmalloc() ΰζ򼨤ۥɥ쥹ΰˤϤʤŪ
        ޥåԥ󥰤ޤƤϤʤޤvmalloc 񤭤Ƥޤޤ
        ɥ쥹Ϥޤͥ륻ǤʤФޤ (嵭)
        ̾vmalloc() ΰ (ѿ high_memory ѤƵ) Ǹ
         RAM ɥ쥹 VMALLOC_OFFSET ХȤ̤곫Ϥޤ

VMALLOC_OFFSET
         RAM  vmalloc ΰ֤Υۡ󶡤뤿ᡢ̾ VMALLOC_START
        ˼ޤ륪եåȤǤϰϳΥꥢ (ȤХޥå
        줿ޥåפνüõꤹ) ª뤿ᡢΤ褦
        Ƥޤ̾ 8MB ˥åȤޤ


ƥͭޥ
------------------------

BOOT_MEM(pram,pio,vio)
        `pram' ˤ RAM ʪϥɥ쥹ꤷޤ¸ߤƤɬפ
        ꡢPHYS_OFFSET ƱǤ٤Ǥ

        `pio' ϡarch/arm/kernel/debug-armv.S ΥǥХåѥޥǻѤ
        I/O ޤ 8MB ϰϤʪɥ쥹Ǥ

        `vio'  8MB ΥǥХåΰβۥɥ쥹Ǥ

        ǥХåΰ (MAPIO ؿͳ) Υƥͭ
        ˤƽ뤳ȤԤƤޤ

BOOT_PARAMS
        ʸ̤ǤPARAMS_PHYS ⻲ȤƤ

FIXUP(func)
        ޥͭ fixup Ǥꡢꥵ֥ƥब˼¹Ԥޤ

MAPIO(func)
        I/O ΰ (ҤΥǥХåΰޤ) ޥåפ뤿Υޥͭδؿ

INITIRQ(func)
        ߤ뤿Υޥͭδؿ
