update docs/maintain as per audit 1

Signed-off-by: Leah Rowe <info@minifree.org>
master
Leah Rowe 2024-06-12 10:23:45 +01:00
parent 66a363ef77
commit 2898b5b8f6
1 changed files with 69 additions and 25 deletions

View File

@ -120,12 +120,6 @@ The files under `bin/` are provided in regular Canoeboot releases.
**These** are the ROM images that you should flash. Do *not* flash the ROM
images contained under `elf/`!
cbutils/
---------------
The build system compiles `cbfstool` and `ifdtool`, from coreboot, and then
places the executables here for use on coreboot ROM images.
elf/
---------------
@ -149,6 +143,10 @@ cbmk in your own custom coreboot ROM (that you didn't build with cbmk).
This is only used by the build system, but these images are *not* provided in
releases (only the images under `bin/` are provided).
As of Canoeboot 20240612, the `elf/` directory must be used by default for all
builds, in an effort to make exclusive use of *out-of-source builds*. As such,
the `cbutils` directory is no longer used.
release/
---------------
@ -461,6 +459,7 @@ as:
* `release="n"` (example entry)
* `xtree="default"` (example entry)
* `tree_depend="default"` (example entry)
* `grubtree="nvme"` (example entry)
The `tree` value refers to `config/coreboot/TREE`; in other words, a given
target could specify a name other than its own as the tree; it would then
@ -524,6 +523,9 @@ a given board; two trees may use the same crossgcc as each other.
The `tree_depend` option means that a given tree needs another tree, defined
by this variable, to also be present.
The `grubtree` option specifies which GRUB tree to use. If unset, it defers to
the `default` GRUB tree.
### config/coreboot/BOARDNAME/config/
Files in this directory are *coreboot* configuration files.
@ -630,18 +632,18 @@ of their own; for example, `config/grub/` exists.
Multiple files exist here, and they are *concatenated* in a temporary file by
cbmk, which is then scanned to find information about projects.
config/grub/
GRUB config
---------------
### config/grub/background
### config/data/grub/background
Splash screen images applied duing startup when using the GRUB payload.
### config/grub/background/background1024x768.png
### config/data/grub/background/background1024x768.png
Used on ThinkPad X60 and T60.
### config/grub/background/background1280x800.png
### config/data/grub/background/background1280x800.png
Used on all other machines, besides X60 and T60 thinkpads.
@ -651,23 +653,15 @@ example, `config/coreboot/x60/target.cfg` specifies this:
grub_background="background1024x768.png"
### config/grub/background/COPYING
### config/data/grub/background/COPYING
Licensing info for GRUB bootsplash images.
### config/grub/config/
### config/grub/TREE/config/
GRUB configuration files.
### config/grub/config/AUTHORS
Author info for GRUB configuration files.
### config/grub/config/COPYING
Licensing info for GRUB configuration files.
### config/grub/config/grub.cfg
### config/grub/TREE/config/grub.cfg
This is a configuration file. It is used to program GRUB's shell.
@ -681,7 +675,7 @@ A `grubtest.cfg` can be inserted into CBFS, but it will not override the
default `grub.cfg` (either in CBFS or on memdisk); however, the one in memdisk
will provide a menuentry for switching to this, if available.
### config/grub/config/grub\_memdisk.cfg
### config/data/grub/memdisk.cfg
This GRUB configuration checks whether `grub.cfg` exists in CBFS and switches
to that first (not provided by default) or, if one is not available in CBFS,
@ -691,12 +685,12 @@ The GRUB memdisk is a file system within `grub.elf`, itself stored within the
coreboot file system named *CBFS*, which is part of the coreboot ROM image on
every coreboot target.
### config/grub/keymap/
### config/data/grub/keymap/
Keymap files used by GRUB. They can alter the character set corresponding to
inputted scancodes.
### config/grub/keymap/\*.gkb
### config/data/grub/keymap/\*.gkb
The keymap files themselves. These are inserted into the GRUB memdisk, and
the `grub.cfg` file can specify which one is to be used.
@ -705,7 +699,7 @@ These files are binary-encoded, defining which characters correspond to which
scancodes. It is handled by `grub-core/commands/keylayouts.c` in the GRUB source
code.
### config/grub/modules.list
### config/data/grub/modules/TREE
This defines which modules are inserted into `grub.elf`. These modules can be
anything from file systems, small applications/utilities, launchers (e.g.
@ -871,6 +865,56 @@ Another interesting config option is `CONFIG_POSITION_INDEPENDENT` for ARM
boards, which has been so far enabled in the ones `cbmk` supports, just to be
safe.
config/submodule
----------------
In here you can find submodule configurations for projects. It works for both
single- and multi-tree projects. Use the existing examples as reference.
Files, in each directory:
* `module.list` lists paths (files and directories) for given modules, which
can be files(via URL) or Git repositories, or both.
* NAME/module.cfg
NAME is the file/directory name for the module, with everything up to the
final forward slash removed. E.g. foo/bar/thing.zip would be thing.zip as
NAME.
In `module.cfg` there can be either, file:
```
subfile="url"
subfile_bkup="url"
subhash="sha512sum for file"
```
or, git repository:
```
subrepo="url"
subrepo_bkup="url"
subhash="sha1 git commit id"
```
You must only use `subfile` or `subrepo`, not both, and there must be a backup
URL. The build system intentionally *avoids* using Git's actual submodules
feature, instead opting to download such repositories manually, because the
official submodules feature doesn't have very good redundancy.
Additionally, a `patches` directory can be included alongside `module.cfg`,
which can be used to patch the submodule (only supported for Git repositories
because files are not extracted, only placed at their configured destination).
The destination path in `module.list` is relative to the location of the main
Git repository under which it is placed.
config/data/PROJECT
-------------------
Random configuration data provided on a per-project basis. Complements
the `config/PROJECT` directory.
U-Boot build system
-------------------