Anti reboot loop feature

The anti reboot loop feature is a communication protocol between the
bootloader and the kernel that allows the bootloader to determine if a
certain kernel/rootfs image is "good". The way it works is that the
bootloader writes a certain bit pattern to a previously agreed memory
location. If a userspace app decides that the kernel has booted ok and
that the user space environment is sane, it tells the kernel which then
flips a bit in DRAM to communicate to the bootloader that this image is
considered "good".  Now, if the system reboots due to some failure
condition before said bit has been flipped, the bootloader is able to
detect this situation and switch back to a different kernel/rootfs
image.

Change-Id: Ief095aa50adee565730704f687fefbfe124ce7e9
5 files changed