Can the bootloader place the kernel at an arbitrary physical address in memory ? Does the linux kernel assume that it has been placed at a particular address ?
For example, in Sparc, the kernel _start symbol is located at virtual address=0xf0004000, and typically placed at physical address=0x00004000. Can the bootloader place the kernel at an arbitrary physical address, say 0x10004000, provided its mapped correctly in the bootloader's page tables ? If not, is the assumed physical location of the kernel architecture-specific ?