Original motivation is to make the Acer C720 (and potentially other
chromebooks boot. This patch is an extended version of adrian's patch
that can be found here (the changes in biosdisk.c were found to be
unnecessary by kib and are therefore not part of this anymore):
https://people.freebsd.org/~adrian/c720/20150117-seabios-loader-changes-1.diff
- Add a quirks table based on BIOS vendor / maker / product (NULL matches any), making use of the new smbios_match function
- pass in an smap+acpi entry size for e820; like what biossmap.c does;
- don't blindly believe e820 if it doesn't give us enough memory to successfully load things, but ONLY if the machine is listed as BQ_DISTRUST_E820_EXTMEM in the quirks table (in this patch this is only the Acer C720 aka Peppy, since it was the reason to write this patch). There are probably other models out there with these issues, but without data it's probably best to add them one at a time.
- don't blindly concat cx/dx with e801 - ensure that cx indicates there's no hole and there's a full 15mb of ram before concat'ing;
- truncate how much RAM we probe for via e801 (which adrian doesn't entirely think is needed)
- if we use e801, don't use the heap as-is; use the end of bios_extmem instead as if we didn't get anything from E820;
- add a boot loader command "biosmem" which gives details about how memory was detected