smbios: error handling for invalid addresses

SMBIOS tables only support 32bit addresses. If we don't have memory here
handle the error gracefully:

* on x86_64 fail to start U-Boot
* during UEFI booting ignore the missing table

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
diff --git a/include/smbios.h b/include/smbios.h
index fc49fc1..aa6b6f3 100644
--- a/include/smbios.h
+++ b/include/smbios.h
@@ -229,8 +229,11 @@
  * This writes SMBIOS table at a given address.
  *
  * @addr:	start address to write SMBIOS table. If this is not
- *	16-byte-aligned then it will be aligned before the table is written
- * @return:	end address of SMBIOS table (and start address for next entry)
+ *		16-byte-aligned then it will be aligned before the table is
+ *		written.
+ * Return:	end address of SMBIOS table (and start address for next entry)
+ *		or NULL in case of an error
+ *
  */
 ulong write_smbios_table(ulong addr);