Implement kexec-hardboot

"Allows hard booting (i.e., with a full hardware reboot) to a kernel
previously loaded in memory by kexec.  This works around the problem of
soft-booted kernel hangs due to improper device shutdown and/or
reinitialization."
More info in /arch/arm/Kconfig.

Original author: Mike Kasick <mike@kasick.org>

Vojtech Bocek <vbocek@gmail.com>:
  I've ported it to flo, it is based of my grouper port, which is based of
  Asus TF201 patches ported by Jens Andersen <jens.andersen@gmail.com>.

  I've moved atags copying from guest to the host kernel, which means there
  is no need to patch the guest kernel, assuming the --mem-min in kexec call
  is within the first 256MB of System RAM, otherwise it will take a long time
  to load. I've also fixed /proc/atags entry, which would give the kexec-tools
  userspace binary only the first 1024 bytes of atags,
  see arch/arm/kernel/atags.c for more details.

  Other than that, memory-reservation code for the hardboot page and
  some assembler to do the watchdog reset on MSM chip are new for this device.

Signed-off-by: Vojtech Bocek <vbocek@gmail.com>

Conflicts:
	arch/arm/boot/compressed/head.S
	arch/arm/configs/flo_defconfig
	arch/arm/kernel/machine_kexec.c
	arch/arm/mach-msm/asustek/devices_asustek.c
	arch/arm/mach-msm/include/mach/memory.h
	arch/arm/mach-msm/restart.c

Conflicts:

	arch/arm/mach-exynos/include/mach/memory.h
Kexec: Add ram_console support.

- 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.

credits to Mike Kasick as he added this support for Exynos devices.

Conflicts:

	arch/arm/mach-exynos/mach-midas.c
Kexec: Enable and fix kexec syscall support.

Avoid second flush_cache_all() call in machine_kexec() as it causes a CPU
hang on Exynos 4.

The suggestion to call cpu_reset by its physical address comes from an
earlier kexec support patch by Will Deacon [1].

[1] W. Deacon. [4/6] ARM: reset: add reset functionality for jumping to a
    physical address, Jun. 2011. https://patchwork.kernel.org/patch/852802/

Credits to Mike Kasick.