看看arch/arm/kernel/setup.c
函数early_mem() 会根据你的kernel command line读出memory的起始地址和大小。然后通过arm_add_memory()注册该memory。

再通过arch/arm/mm/init.c中的bootmem_init把该memory映射到对应的虚拟地址。
映射函数为__phys_to_virt,定义为:
#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET)
其中PHYS_OFFSET,PAGE_OFFSET每个architecture都不一样,你查查你的平台定义是多少就可以计算得到虚拟地址了。