x86: Allow putting some tables in the bloblist
authorSimon Glass <sjg@chromium.org>
Wed, 4 Nov 2020 16:57:25 +0000 (09:57 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Fri, 6 Nov 2020 01:51:28 +0000 (09:51 +0800)
commitd2cb7a22da0fec2b67b356e9fb58247cdff8c95e
tree5505469cac342c9877b06fdeb104e6a6792a6dda
parentf36e4c7d8059a3bb03bb172bf87ebefd7a95bd56
x86: Allow putting some tables in the bloblist

At present all tables are placed starting at address f0000 in memory, and
can be up to 64KB in size. If the tables are very large, this may not
provide enough space.

Also if the tables point to other tables (such as console log or a ramoops
area) then we must allocate other memory anyway.

The bloblist is a nice place to put these tables since it is contiguous,
which makes it easy to reserve this memory for linux using the 820 tables.

Add an option to put some of the tables in the bloblist. For SMBIOS and
ACPI, create suitable pointers from the f0000 region to the new location
of the tables.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
[bmeng: squashed in http://patchwork.ozlabs.org/project/uboot/patch/
 20201105062407.1.I8091ad931cbbb5e3b6f6ababdf3f8d5db0d17bb9@changeid/]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/lib/tables.c
include/acpi/acpi_table.h
include/bloblist.h
lib/Kconfig
lib/acpi/acpi_table.c