Lines Matching +full:foo +full:- +full:bar

1 .. SPDX-License-Identifier: GPL-2.0
15 additional key-value data when booting the kernel in an efficient way.
16 This allows administrators to pass a structured-Key config file.
21 The boot config syntax is a simple structured key-value. Each key consists
22 of dot-connected-words, and key and value are connected by ``=``. The value
23 has to be terminated by semi-colon (``;``) or newline (``\n``).
30 Each key word must contain only alphabets, numbers, dash (``-``) or underscore
32 for delimiters such as semi-colon (``;``), new-line (``\n``), comma (``,``),
35 If you want to use those delimiters in a value, you can use either double-
36 quotes (``"VALUE"``) or single-quotes (``'VALUE'``) to quote it. Note that
42 Key-Value Syntax
43 ----------------
48 foo.bar.baz = value1
49 foo.bar.qux.quux = value2
53 foo.bar {
60 foo.bar { baz = value1; qux.quux = value2 }
63 at boot time. So you can append similar trees or key-values.
65 Same-key Values
66 ---------------
68 It is prohibited that two or more values or arrays share a same-key.
71 foo = bar, baz
72 foo = qux # !ERROR! we can not re-define same key
77 foo = bar, baz
78 foo := qux
80 then, the ``qux`` is assigned to ``foo`` key. This is useful for
87 foo = bar, baz
88 foo += qux
90 In this case, the key ``foo`` has ``bar``, ``baz`` and ``qux``.
92 Moreover, sub-keys and a value can coexist under a parent key.
95 foo = value1
96 foo.bar = value2
97 foo := value3 # This will update foo's value.
102 foo {
103 bar = value1
104 bar {
114 foo.bar = value1
115 foo = value2
119 foo = value2
120 foo.bar = value1
123 --------
125 The config syntax accepts shell-script style comments. The comments starting
131 foo = value # value is set to foo.
132 bar = 1, # 1st element
138 foo = value
139 bar = 1, 2, 3
151 /proc/bootconfig is a user-space interface of the boot config.
152 Unlike /proc/cmdline, this file shows the key-value style list.
153 Each key-value pair is shown in each line with following style::
165 ---------------------------------
169 padding, size, checksum and 12-byte magic word as below.
191 # make -C tools/bootconfig
196 # tools/bootconfig/bootconfig -a your-config /boot/initrd.img-X.Y.Z
198 To remove the config from the image, you can use -d option as below::
200 # tools/bootconfig/bootconfig -d /boot/initrd.img-X.Y.Z
208 -----------------------------------
233 passing the kernel parameters. All the key-value pairs under ``kernel``
234 key will be passed to kernel cmdline directly. Moreover, the key-value
236 The parameters are concatenated with user-given kernel cmdline string
241 [bootconfig params][cmdline params] -- [bootconfig init params][cmdline init params]
246 root = 01234567-89ab-cdef-0123-456789abcd
254 root="01234567-89ab-cdef-0123-456789abcd" -- splash
258 ro bootconfig -- quiet
262 root="01234567-89ab-cdef-0123-456789abcd" ro bootconfig -- splash quiet
268 Currently the maximum config size size is 32KB and the total key-words (not
269 key-value entries) must be under 1024 nodes.
271 more than 2 nodes (a key-word and a value). So theoretically, it will be
272 up to 512 key-value pairs. If keys contains 3 words in average, it can
273 contain 256 key-value pairs. In most cases, the number of config items
285 User can query or loop on key-value pairs, also it is possible to find
286 a root (prefix) key node and find key-values under that node.
290 config, you can use xbc_for_each_key_value() to iterate key-value pairs.
311 xbc_node_for_each_array_value(root, "array-option", value, anode) {
316 "key.prefix.array-option".
319 read-only. All data and keys must be copied if you need to modify it.
325 .. kernel-doc:: include/linux/bootconfig.h
326 .. kernel-doc:: lib/bootconfig.c