Kernel Startup
start_kernel.JPG
  • [path to kernel]/arch/arm/boot/Makefile
ifneq ($(MACHINE),)
include $(srctree)/$(MACHINE)/Makefile.boot
endif
ZRELADDR    := $(zreladdr-y)
PARAMS_PHYS := $(params_phys-y)
INITRD_PHYS := $(initrd_phys-y)
  • $(srctree)/$(MACHINE)/Makefile.boot
  • [path to kernel]/arch/???/kernel/vmlinux.lds
ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
kernel_boot.jpg
  • [path to kernel]/arch/???/kernel/head.S
  • ARM
    .globl    swapper_pg_dir
    .equ    swapper_pg_dir, KERNEL_RAM_VADDR - 0x4000
  • swapper_pg_dir is the virtual address of the initial page table
  • The page tables are 16K below KERNEL_RAM_VADDR
  • x86
pg0_pg1.jpg
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License