分类: LINUX
2010-06-10 11:29:34
硬件:at91rm9260
一.内核地址:
arch/arm/Makefile 内核运行虚拟地址 TEXTADDR = 0xC0008000 (虚拟地址,内核地址空间 0xc0000000) 0x8000:用于存放页表文件. ---------------------------------------------- arch/arm/boot/Makefile 内核加载地址 ZRELADDR = 0x20008000 --------------------------------------------- arch/arm/boot/compressed/Makefile 自解压程序地址 ZTEXTADDR = 0x00000000 启动参数存储地址(跟uboot中定义的对应) PARAMS_PHYS= 0x20000100 uboot 中定义的 /* adress of boot parameters */ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; |
ZTEXTADDR Start address of decompressor. There's no point in talking about virtual or physical addresses here, since the MMU will be off at the time when you call the decompressor code. You normally call the kernel at this address to start it booting. This doesn't have to be located in RAM, it can be in flash or other read-only or read-write addressable medium. ZBSSADDR Start address of zero-initialised work area for the decompressor. This must be pointing at RAM. The decompressor will zero initialise this for you. Again, the MMU will be off. ZRELADDR This is the address where the decompressed kernel will be written, and eventually executed. The following constraint must be valid: __virt_to_phys(TEXTADDR) == ZRELADDR The initial part of the kernel is carefully coded to be position independent. INITRD_PHYS Physical address to place the initial RAM disk. Only relevant if you are using the bootpImage stuff (which only works on the old struct param_struct). INITRD_VIRT Virtual address of the initial RAM disk. The following constraint must be valid: __virt_to_phys(INITRD_VIRT) == INITRD_PHYS PARAMS_PHYS Physical address of the struct param_struct or tag list, giving the kernel various parameters about its execution environment. |