WindCharger: Implemented PRINTK_PERSIST functionality.

This includes code from the master branch of the bruno kernel, with
(hopefully) only some changed variable names, a few moved structs, and
some structs with different names (due to the different kernel versions
between windcharger and bruno).

This allows WindCharger to record logs in a persistent section of memory
across soft reboots.  In this case the reserved memory location is hard
coded.

This also includes crc checks and a couple minor changes in bootmem.c
checks for valid reservation addresses.

Change-Id: Ife3be79d122ddf430665e1cb775706dd096f741d
4 files changed