メモ

ええと、 arch/arm/kernel/vmlinux.lds.S の以下の部分。

SECTIONS
{
#ifdef CONFIG_XIP_KERNEL
	. = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR);
#else
	. = PAGE_OFFSET + TEXT_OFFSET;
#endif

	.init : {			/* Init code and data		*/
		_stext = .;

CONFIG を抜いて M-x find-grep すれば良かった模様。
PAGE_OFFSET の記述が以下。

config PAGE_OFFSET
	hex
	default 0x40000000 if VMSPLIT_1G
	default 0x80000000 if VMSPLIT_2G
	default 0xC0000000

あるいは XIP_PHYS_ADDR な記述が以下。

config XIP_PHYS_ADDR
	hex "XIP Kernel Physical Location"
	depends on XIP_KERNEL
	default "0x00080000"
	help
	  This is the physical address in your flash memory the kernel will
	  be linked for and stored to.  This address is dependent on your
	  own flash usage.

あと、TEXT_OFFSET なんですが、arch/arm/Makefile に以下な記述があります。

# The byte offset of the kernel image in RAM from the start of RAM.
TEXT_OFFSET := $(textofs-y)

textofs-y で M-x find-grep したらどうか、というと同じ Makefile に以下なソレがあります。

textofs-y	:= 0x00008000
textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
# We don't want the htc bootloader to corrupt kernel during resume
textofs-$(CONFIG_PM_H1940)      := 0x00108000
# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
ifeq ($(CONFIG_ARCH_SA1100),y)
textofs-$(CONFIG_SA1111) := 0x00208000
endif

このあたりでおおよその値が決まってくる、ということで大体は head.S のコメントにあるように 0xc0008000 ということになるのかどうか。

とは言え

根拠が不明orz