boot - Put loader heap in high memory
* We ran out of low BIOS memory. The initrd.img.gz unpacking requires a
bit more than ~32KB of temporary space and it ran the loader out of
low-BIOS heap memory.
This can cause the loader to fail to load the image and prevent proper
crypto or single-user bootstrapping.
* Steal the heap from high-memory, just ender the kernel+modules load area
limit. For now, steal 1MB, which gives the loader plenty of space again.
The kernel will lose 1MB of physical memory, boo-hoo.
* The loader must remove the heap from the SMAP passed to the kernel.
* Move any objects requiring VTOPSEG/VTOPOFF out of malloc and into a
static or stack declaration.
Reported-by: cgag, multiple