Name Date Size #Lines LOC

..--

lxdialog/H25-Apr-2025-2,4021,834

patches/H25-Apr-2025-843768

.gitignoreH A D25-Apr-2025124 87

MakefileH A D25-Apr-20258.5 KiB235170

Makefile.mkH A D25-Apr-20253.1 KiB11569

README.mdH A D25-Apr-20252.9 KiB8657

conf.cH A D25-Apr-202519.9 KiB928787

confdata.cH A D25-Apr-202525.8 KiB1,315996

description.mdH A D25-Apr-202520 21

expr.cH A D25-Apr-202530 KiB1,3031,071

expr.hH A D25-Apr-20259.5 KiB326181

gconf-cfg.shH A D25-Apr-2025789 3425

gconf.cH A D25-Apr-202537.9 KiB1,5121,209

gconf.gladeH A D25-Apr-202525 KiB662603

images.cH A D25-Apr-20256.4 KiB329308

images.hH A D25-Apr-2025862 3424

internal.hH A D25-Apr-2025172 105

lexer.lH A D25-Apr-20259.4 KiB496424

lexer.lex.c_shippedH A D25-Apr-2025113 KiB4,1383,443

list.hH A D25-Apr-20253.7 KiB13355

lkc.hH A D25-Apr-20253.7 KiB151109

lkc_proto.hH A D25-Apr-20252 KiB6046

mconf-cfg.shH A D25-Apr-20251.6 KiB6244

mconf.cH A D25-Apr-202526.1 KiB996912

menu.cH A D25-Apr-202521.1 KiB855588

merge_config.shH A D25-Apr-20255.2 KiB212166

mnconf-common.cH A D25-Apr-2025794 5438

mnconf-common.hH A D25-Apr-2025372 1912

nconf-cfg.shH A D25-Apr-20251.4 KiB5440

nconf.cH A D25-Apr-202539 KiB1,5961,406

nconf.gui.cH A D25-Apr-202515.2 KiB642534

nconf.hH A D25-Apr-20252.2 KiB8972

parser.tab.c_shippedH A D25-Apr-202572.2 KiB2,1841,865

parser.tab.h_shippedH A D25-Apr-20254.9 KiB133114

parser.yH A D25-Apr-202515.3 KiB718589

preprocess.cH A D25-Apr-202511.1 KiB578385

qconf-cfg.shH A D25-Apr-20251,016 4131

qconf.ccH A D25-Apr-202543.5 KiB1,9291,589

qconf.hH A D25-Apr-20256.4 KiB276233

regex.cH A D25-Apr-2025156.4 KiB4,9462,922

regex.hH A D25-Apr-202518.2 KiB491168

streamline_config.plH A D25-Apr-202516.4 KiB707468

symbol.cH A D25-Apr-202528.2 KiB1,2801,042

toada.cH A D25-Apr-20253 KiB136112

util.cH A D25-Apr-20252.1 KiB129101

README.md

1# coreboot kconfig
2
3This is coreboot's copy of kconfig which tracks Linux as upstream but comes
4with a few patches for portability but also a few semantic changes.
5
6The patches that lead to this tree can be found in the patches/ subdirectory
7in a [quilt](http://savannah.nongnu.org/projects/quilt) friendly format that
8is also simple enough to manage manually with Unix tooling.
9
10## Updating kconfig
11
12The first step is to unapply the patches. This can either be done with quilt
13in an already-configured tree (`quilt pop -a` should cleanly unapply them all)
14or manually if quilt doesn't have its tracking metadata around yet:
15
16```sh
17for i in $( ls patches/*.patch | tac ); do patch -p1 -R -i "$i"; done
18```
19
20The result should be a subtree that, apart from a few coreboot specific
21files on our side (e.g. documentation, integration in our build system)
22and a few files on the upstream end that we don't carry (e.g. the tests),
23is identical to the scripts/kconfig/ directory of Linux as of the most recent
24uprev we did. Check the uprev version by looking through
25`git log util/kconfig` output in our tree.
26
27Assuming that you want to uprev from Linux 5.13 to 5.14, with a Linux git tree
28available in `~/linux`
29
30```sh
31cd util/kconfig && (cd ~/linux/ && git diff v5.13..v5.14 scripts/kconfig) | patch -p2`
32```
33
34applies the changes to your local tree.
35
36Then reapply our patch train, which might be as simple as
37`quilt push -a --refresh` but might also require some meddling with the
38patches to make them apply again with the changes you just imported from
39Linux.
40
41Check that kconfig still works, `git add` and `git commit` the changes and
42write a meaningful commit message that documents what Linux kconfig version
43the tree has been upreved to.
44
45## Adding a new patch
46
47The format of the patches to kconfig is a mix of the headers produced by `git
48format-patch` and the patch format of quilt. However neither git nor quilt
49seems to have any functionality to directly produce a file in such a format
50
51To add a patch in this format:
521. Add your changes to the sources and `git commit` them
532. Generate a git patch for the commit:
54
55    $ git format-patch HEAD~
56
573. Reverse apply the newly created patch file to restore the tree back to the
58   state quilt thinks it is in:
59
60    $ git apply -R <the patch file>
61
624. Import the patch info quilt:
63
64    $ quilt import <the patch file>
65
665. Force push the change to the top of quilt's patch stack (quilt won't like
67   the git diff style and would normally refuse to apply the patch):
68
69    $ quilt push -f <the patch file>
70
716. Add the changed files to be tracked against the quilt:
72
73    $ quilt add <the files you changed>
74
757. Re-apply your changes from the patch file:
76
77    $ git apply <the patch file>
78
798. Add the changes to quilt to regenerate the patch file in a quilt compatible
80   format while keeping the git header:
81
82    $ quilt refresh
83
849. The new patch file and updated patches/series files can now be added to the
85   git commit
86