blob: 631e35130302e38f23987a38772210c72b7c648c [file] [log] [blame]
Patrick Georgi3c28d012015-02-05 23:36:32 +01001Use of git submodules in coreboot
2=================================
3coreboot uses git submodules to keep certain parts of the tree separate,
4with two major use cases:
5
6First, we use a vendor tool by NVIDIA for systems based on their SoC
7and since they publish it through git, we can just import it into our
8tree using submodules.
9
10Second, lots of boards these days require binaries and we want to keep
11them separate from coreboot proper to clearly delineate shiny Open Source
12from ugly blobs.
13Since we don't want to impose blobs on users who really don't need them,
14that repository is only downloaded and checked out on explicit request.
15
16Handling submodules
17-------------------
18For the most part, submodules should be automatically checked out on the
19first execution of the coreboot Makefile.
20
21To manually fetch all repositories (eg. when you want to prepare the tree
22for archiving, or to use it without network access), run
23
24 $ git submodule update --init --checkout
25
26This also checks out the binaries below `3rdparty/`
27
28Mirroring coreboot
29------------------
30When running a coreboot mirror to checkout from, for full operation, you
31should also mirror the blobs and nvidia-cbootimage repository, and place
32them in the same directory as the coreboot repository mirror.
33
34That is, when residing in coreboot's repository, `cd ../blobs.git`
35should move you to the blobs repository.
36
37With that, no matter what the URL of your coreboot repository is, the
38git client (of a sufficiently new version) is able to pick up the other
39repositories transparently.
40
41Minimum requirements
42--------------------
43git needs to be able to handle relative paths to submodule repositories,
44and it needs to know about non-automatic submodules.
45
46For these features, we require git version 1.7.6.1 or newer.