summaryrefslogtreecommitdiff
path: root/common/Kconfig
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-11-16 04:43:50 +0300
committerTom Rini <trini@konsulko.com>2018-11-26 16:25:32 +0300
commit9f407d4ef092c2ce7ab0f4f366aee252611dab3c (patch)
tree56908d01e8b0b24d77d1b77789f34f5b80b353f5 /common/Kconfig
parent4d8d3056f885b518c0d1d0b5a793d9bf4b579496 (diff)
downloadu-boot-9f407d4ef092c2ce7ab0f4f366aee252611dab3c.tar.xz
Add core support for a bloblist to convey data from SPL
At present there is no standard way in U-Boot to pass information from SPL to U-Boot proper. But sometimes SPL wants to convey information to U-Boot that U-Boot cannot easily figure out. For example, if SPL sets up SDRAM then it might want to pass the size of SDRAM, or the location of each bank, to U-Boot proper. Add a new 'bloblist' feature which provides this. A bloblist is set up in the first phase of U-Boot that runs (i.e. TPL or SPL). The location of this info may be in SRAM or CAR (x86 cache-as-RAM) or somewhere else. Information placed in this region is preserved (with a checksum) through TPL and SPL and ends up in U-Boot. At this point it is copied into SDRAM so it can be used after relocation. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Andreas Dannenberg <dannenberg@ti.com>
Diffstat (limited to 'common/Kconfig')
-rw-r--r--common/Kconfig48
1 files changed, 48 insertions, 0 deletions
diff --git a/common/Kconfig b/common/Kconfig
index 68e4ddfb4a..57bd16d962 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -750,4 +750,52 @@ config UPDATE_TFTP_MSEC_MAX
endmenu
+menu "Blob list"
+
+config BLOBLIST
+ bool "Support for a bloblist"
+ help
+ This enables support for a bloblist in U-Boot, which can be passed
+ from TPL to SPL to U-Boot proper (and potentially to Linux). The
+ blob list supports multiple binary blobs of data, each with a tag,
+ so that different U-Boot components can store data which can survive
+ through to the next stage of the boot.
+
+config SPL_BLOBLIST
+ bool "Support for a bloblist in SPL"
+ depends on BLOBLIST
+ default y if SPL
+ help
+ This enables a bloblist in SPL. If this is the first part of U-Boot
+ to run, then the bloblist is set up in SPL and passed to U-Boot
+ proper. If TPL also has a bloblist, then SPL uses the one from there.
+
+config TPL_BLOBLIST
+ bool "Support for a bloblist in TPL"
+ depends on BLOBLIST
+ default y if TPL
+ help
+ This enables a bloblist in TPL. The bloblist is set up in TPL and
+ passed to SPL and U-Boot proper.
+
+config BLOBLIST_SIZE
+ hex "Size of bloblist"
+ depends on BLOBLIST
+ default 0x400
+ help
+ Sets the size of the bloblist in bytes. This must include all
+ overhead (alignment, bloblist header, record header). The bloblist
+ is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
+ proper), and this sane bloblist is used for subsequent stages.
+
+config BLOBLIST_ADDR
+ hex "Address of bloblist"
+ depends on BLOBLIST
+ default 0xe000 if SANDBOX
+ help
+ Sets the address of the bloblist, set up by the first part of U-Boot
+ which runs. Subsequent U-Boot stages typically use the same address.
+
+endmenu
+
source "common/spl/Kconfig"