aboutsummaryrefslogtreecommitdiff
path: root/Documentation/submodules.md
diff options
context:
space:
mode:
authorJonathan Neuschäfer <j.neuschaefer@gmx.net>2018-04-08 16:12:44 +0200
committerPatrick Georgi <pgeorgi@google.com>2018-04-10 10:49:07 +0000
commit7fa9f73ac7b55272f15236a019f07c468b1f05c9 (patch)
tree44b870e429f6289cc16803b8f102b4a0e173791e /Documentation/submodules.md
parent9f9f7a23d9f52a4278150390bd44c7d9496c160f (diff)
Documentation: Rename submodules.txt to submodules.md
This will help static site generators that can turn Markdown into HTML but can't easily turn plain text into HTML. Change-Id: Iabdbbecd0badddbca2221c6164b254ca163555ad Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Reviewed-on: https://review.coreboot.org/25560 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'Documentation/submodules.md')
-rw-r--r--Documentation/submodules.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/Documentation/submodules.md b/Documentation/submodules.md
new file mode 100644
index 0000000000..631e351303
--- /dev/null
+++ b/Documentation/submodules.md
@@ -0,0 +1,46 @@
+Use of git submodules in coreboot
+=================================
+coreboot uses git submodules to keep certain parts of the tree separate,
+with two major use cases:
+
+First, we use a vendor tool by NVIDIA for systems based on their SoC
+and since they publish it through git, we can just import it into our
+tree using submodules.
+
+Second, lots of boards these days require binaries and we want to keep
+them separate from coreboot proper to clearly delineate shiny Open Source
+from ugly blobs.
+Since we don't want to impose blobs on users who really don't need them,
+that repository is only downloaded and checked out on explicit request.
+
+Handling submodules
+-------------------
+For the most part, submodules should be automatically checked out on the
+first execution of the coreboot Makefile.
+
+To manually fetch all repositories (eg. when you want to prepare the tree
+for archiving, or to use it without network access), run
+
+ $ git submodule update --init --checkout
+
+This also checks out the binaries below `3rdparty/`
+
+Mirroring coreboot
+------------------
+When running a coreboot mirror to checkout from, for full operation, you
+should also mirror the blobs and nvidia-cbootimage repository, and place
+them in the same directory as the coreboot repository mirror.
+
+That is, when residing in coreboot's repository, `cd ../blobs.git`
+should move you to the blobs repository.
+
+With that, no matter what the URL of your coreboot repository is, the
+git client (of a sufficiently new version) is able to pick up the other
+repositories transparently.
+
+Minimum requirements
+--------------------
+git needs to be able to handle relative paths to submodule repositories,
+and it needs to know about non-automatic submodules.
+
+For these features, we require git version 1.7.6.1 or newer.