Linux內核定義的常量
定義了你的機器上的地址轉換__virt_to_phys()。這個(gè)宏用于把虛擬地址轉換為一個(gè)物理地址。通常情況下:
phys = virt - PAGE_OFFSET PHYS_OFFSET
2 解壓縮符號
l ZTEXTADDR
解壓縮器的地址地址。由于當你調用解壓縮器代碼時(shí),通常關(guān)閉MMU,因此這里并不討論虛擬地址和物理地址的問(wèn)題。通常你在這個(gè)地址處調用內核,開(kāi)始引導內核。它不需要在RAM中,只需要位于FLASH或其他只讀或讀/寫(xiě)的可尋址的存儲設備中。
l ZBSSADDR
解壓縮器的初始化為0的工作區的起始地址。必須位于RAM中,解壓縮器會(huì )替你把它初始化為0,此外,需要關(guān)閉MMU。
l ZRELADDR
解壓縮內核將被寫(xiě)入的地址和最終的執行地址。必須滿(mǎn)足:
__virt_to_phys(TEXTADDR) == ZRELADDR
內核的開(kāi)始部分被編碼為與位置無(wú)關(guān)的代碼。
l INITRD_PHYS
放置初始RAM盤(pán)的物理地址。僅當你使用bootpImage時(shí)相關(guān)(這是一種非常老的param_struct結構)
l INITRD_VIRT
初始RAM盤(pán)的虛擬地址。必須滿(mǎn)足:
__virt_to_phys(INITRD_VIRT) == INITRD_PHYS
l PARAMS_PHYS
param_struct 結構體或tag lis的物理地址,用于給定內核執行環(huán)境下的不同參數。
3 內核符號
l PHYS_OFFSET
RAM第一個(gè)BANK的物理地址地址。
l PAGE_OFFSET
RAM第一個(gè)BANK的虛擬地址地址。在內核引導階段,虛擬地址PAGE_OFFSE將被映射為物理地址PHYS_OFFSET,它應該與TASK_SIZE具有相同的值。
l TASK_SIZE
一個(gè)用戶(hù)進(jìn)程的最大值,單位為byte。用戶(hù)空間的堆棧從這個(gè)地址處向下增長(cháng)。
任何一個(gè)低于TASK_SIZE的虛擬地址對用戶(hù)進(jìn)程來(lái)說(shuō)都是不可見(jiàn)的,因此,內核通過(guò)進(jìn)程偏移對每個(gè)進(jìn)行進(jìn)行動(dòng)態(tài)的管理。我把這叫做用戶(hù)段。任何高于TASK_SIZE的對所有進(jìn)程都是相同的,稱(chēng)之為內核段。(換句話(huà)說(shuō),你不能把IO映射放在低于TASK_SIZE和PAGE_OFFSET的位置處。)
l TEXTADDR
內核的虛擬起始地址,通常為PAGE_OFFSET 0x8000。內核映射必須在此結束。
l DATAADDR
內核數據段的虛擬地址,不能在使用解壓縮器的情況下定義。
l VMALLOC_START
l VMALLOC_END
用于限制vmalloc( )區域的虛擬地址。此地址必須位于內核段。 通常,vmalloc( )區域在最后的虛擬RAM地址以上開(kāi)始VMALLOC_OFFSET字節。
l VMALLOC_OFFSET
Offset normally incorporated into VMALLOC_START to provide a hole between virtual RAM and the vmalloc area. We do this to allow out of bounds memory accesses (eg, something writing off the end of the mapped memory map) to be caught. Normally set to 8MB.
4 構架相關(guān)的宏
l BOOT_MEM(pram,pio,vio)
pram——指定了RAM起始的物理地址,必須始終存在,并應等于PHYS_OFFSET。
pio——是供arch/arm/kernel/debug-armv.S中的調試宏使用的,包含IO的8 MB區域的物理地址。
vio——是8MB調試區域的虛擬地址。
這個(gè)調試區域將被位于代碼中(通過(guò)MAPIO函數)的隨后的構架相關(guān)代碼再次進(jìn)行初始化。
l BOOT_PARAMS
參見(jiàn) PARAMS_PHYS.
l FIXUP(func)
機器相關(guān)的修正,在存儲子系統被初始化前運行。
l MAPIO(func)
機器相關(guān)的函數,用于IO區域的映射(包括上面的調試區)。
l INITIRQ(func)
用于初始化中斷的機器相關(guān)的函數。.
評論