Support hard booting to a kexec kernel.

See KEXEC_HARDBOOT config option help for details.

Change-Id: If1a45732f1f10f28c44d179e0c7589968e146ac7

Conflicts:
	arch/arm/mach-exynos/include/mach/memory.h

Conflicts:
	arch/arm/kernel/machine_kexec.c
Add ram_console support.

- Revert use of phys_to_virt instead of ioremap in driver, since we're
  allocating the buffer in high memory where it's not direct mapped.
- Add reserve function to machine_desc to reserve ram_console memory.
- Place in the last 1 MB of RAM, in high memory.
- Exclude the final 4 kB for the kexec hardboot page.
Support copying of kernel tagged list (atags) in the decompressor.

This is needed to hardboot kexec a kernel with a new tags list (including a
new kernel command line), since the new atags would otherwise be lost with
the limited kernel memory mapping.  Without this patch, a hardboot-kexec'd
kernel uses the atags provided by the bootloader.
Mali r3p2-01rel3 API version 29 from T311XXUBNH6 update