The "env" command is the recommended environment management command, its "set" subcommand is the equivalent replacement for legacy "setenv" command. Update the documentation to use the contemporary "env set" command instead of legacy "setenv" command. Note that the "setenv" command is unlikely to be removed from U-Boot in the near future due to it being integral part of the command line ABI. Implemented using: $ sed -i 's@\<setenv\>@env set@g' $(git grep -li '\<setenv\>' doc/) README Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
237 lines
6.2 KiB
ReStructuredText
237 lines
6.2 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0+:
|
|
|
|
.. index::
|
|
single: cedit (command)
|
|
|
|
cedit command
|
|
=============
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
::
|
|
|
|
cedit load <interface> <dev[:part]> <filename>
|
|
cedit run
|
|
cedit write_fdt <dev[:part]> <filename>
|
|
cedit read_fdt <dev[:part]> <filename>
|
|
cedit write_env [-v]
|
|
cedit read_env [-v]
|
|
cedit write_cmos [-v] [dev]
|
|
cedit cb_load
|
|
|
|
Description
|
|
-----------
|
|
|
|
The *cedit* command is used to load a configuration-editor description and allow
|
|
the user to interact with it.
|
|
|
|
It makes use of the expo subsystem.
|
|
|
|
The description is in the form of a devicetree file, as documented at
|
|
:ref:`expo_format`.
|
|
|
|
See :doc:`../../develop/cedit` for information about the configuration editor.
|
|
|
|
cedit load
|
|
~~~~~~~~~~
|
|
|
|
Loads a configuration-editor description from a file. It creates a new cedit
|
|
structure ready for use. Initially no settings are read, so default values are
|
|
used for each object.
|
|
|
|
cedit run
|
|
~~~~~~~~~
|
|
|
|
Runs the default configuration-editor event loop. This is very simple, just
|
|
accepting character input and moving through the objects under user control.
|
|
The implementation is at `cedit_run()`.
|
|
|
|
cedit write_fdt
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Writes the current user settings to a devicetree file. For each menu item the
|
|
selected ID and its text string are written.
|
|
|
|
cedit read_fdt
|
|
~~~~~~~~~~~~~~
|
|
|
|
Reads the user settings from a devicetree file and updates the cedit with those
|
|
settings.
|
|
|
|
cedit read_env
|
|
~~~~~~~~~~~~~~
|
|
|
|
Reads the settings from the environment variables. For each menu item `<name>`,
|
|
cedit looks for a variable called `c.<name>` with the ID of the selected menu
|
|
item.
|
|
|
|
The `-v` flag enables verbose mode, where each variable is printed after it is
|
|
read.
|
|
|
|
cedit write_env
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Writes the settings to environment variables. For each menu item the selected
|
|
ID and its text string are written, similar to:
|
|
|
|
env set c.<name> <selected_id>
|
|
env set c.<name>-str <selected_id's text string>
|
|
|
|
The `-v` flag enables verbose mode, where each variable is printed before it is
|
|
set.
|
|
|
|
cedit write_cmos
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
Writes the settings to locations in the CMOS RAM. The locations used are
|
|
specified by the schema. See `expo_format_`.
|
|
|
|
The `-v` flag enables verbose mode, which shows which CMOS locations were
|
|
updated.
|
|
|
|
Normally the first RTC device is used to hold the data. You can specify a
|
|
different device by name using the `dev` parameter.
|
|
|
|
.. _cedit_cb_load:
|
|
|
|
cedit cb_load
|
|
~~~~~~~~~~~~~
|
|
|
|
This is supported only on x86 devices booted from coreboot. It creates a new
|
|
configuration editor which can be used to edit CMOS settings.
|
|
|
|
Example
|
|
-------
|
|
|
|
::
|
|
|
|
=> cedit load hostfs - fred.dtb
|
|
=> cedit run
|
|
=> cedit write_fdt hostfs - settings.dtb
|
|
|
|
That results in::
|
|
|
|
/ {
|
|
cedit-values {
|
|
cpu-speed = <0x00000006>;
|
|
cpu-speed-value = <0x00000003>;
|
|
cpu-speed-str = "2 GHz";
|
|
power-loss = <0x0000000a>;
|
|
power-loss-value = <0x00000000>;
|
|
power-loss-str = "Always Off";
|
|
};
|
|
}
|
|
|
|
=> cedit read_fdt hostfs - settings.dtb
|
|
|
|
This shows settings being stored in the environment::
|
|
|
|
=> cedit write_env -v
|
|
c.cpu-speed=11
|
|
c.cpu-speed-str=2.5 GHz
|
|
c.cpu-speed-value=3
|
|
c.power-loss=14
|
|
c.power-loss-str=Always Off
|
|
c.power-loss-value=0
|
|
c.machine-name=my-machine
|
|
c.cpu-speed=11
|
|
c.power-loss=14
|
|
c.machine-name=my-machine
|
|
=> print
|
|
...
|
|
c.cpu-speed=6
|
|
c.cpu-speed-str=2 GHz
|
|
c.power-loss=10
|
|
c.power-loss-str=Always Off
|
|
c.machine-name=my-machine
|
|
...
|
|
|
|
=> cedit read_env -v
|
|
c.cpu-speed=7
|
|
c.power-loss=12
|
|
|
|
This shows writing to CMOS RAM. Notice that the bytes at 80 and 84 change::
|
|
|
|
=> rtc read 80 8
|
|
00000080: 00 00 00 00 00 2f 2a 08 ...../*.
|
|
=> cedit write_cmos -v
|
|
Write 2 bytes from offset 80 to 84
|
|
=> rtc read 80 8
|
|
00000080: 01 00 00 00 08 2f 2a 08 ...../*.
|
|
=> cedit read_cmos -v
|
|
Read 2 bytes from offset 80 to 84
|
|
|
|
Here is an example with the device specified::
|
|
|
|
=> cedit write_cmos rtc@43
|
|
=>
|
|
|
|
This example shows editing coreboot CMOS-RAM settings. A script could be used
|
|
to automate this::
|
|
|
|
=> cbsysinfo
|
|
Coreboot table at 500, size 5c4, records 1d (dec 29), decoded to 000000007dce3f40, forwarded to 000000007ff9a000
|
|
|
|
CPU KHz : 0
|
|
Serial I/O port: 00000000
|
|
base : 00000000
|
|
pointer : 000000007ff9a370
|
|
type : 1
|
|
base : 000003f8
|
|
baud : 0d115200
|
|
regwidth : 1
|
|
input_hz : 0d1843200
|
|
PCI addr : 00000010
|
|
Mem ranges : 7
|
|
id: type || base || size
|
|
0: 10:table 0000000000000000 0000000000001000
|
|
1: 01:ram 0000000000001000 000000000009f000
|
|
2: 02:reserved 00000000000a0000 0000000000060000
|
|
3: 01:ram 0000000000100000 000000007fe6d000
|
|
4: 10:table 000000007ff6d000 0000000000093000
|
|
5: 02:reserved 00000000fec00000 0000000000001000
|
|
6: 02:reserved 00000000ff800000 0000000000800000
|
|
option_table: 000000007ff9a018
|
|
Bit Len Cfg ID Name
|
|
0 180 r 0 reserved_memory
|
|
180 1 e 4 boot_option 0:Fallback 1:Normal
|
|
184 4 h 0 reboot_counter
|
|
190 8 r 0 reserved_century
|
|
1b8 8 r 0 reserved_ibm_ps2_century
|
|
1c0 1 e 1 power_on_after_fail 0:Disable 1:Enable
|
|
1c4 4 e 6 debug_level 5:Notice 6:Info 7:Debug 8:Spew
|
|
1d0 80 r 0 vbnv
|
|
3f0 10 h 0 check_sum
|
|
CMOS start : 1c0
|
|
CMOS end : 1cf
|
|
CMOS csum loc: 3f0
|
|
VBNV start : ffffffff
|
|
VBNV size : ffffffff
|
|
...
|
|
Unimpl. : 10 37 40
|
|
|
|
Check that the CMOS RAM checksum is correct, then create a configuration editor
|
|
and load the settings from CMOS RAM::
|
|
|
|
=> cbcmos check
|
|
=> cedit cb
|
|
=> cedit read_cmos
|
|
|
|
Now run the cedit. In this case the user selected 'save' so `cedit run` returns
|
|
success::
|
|
|
|
=> if cedit run; then cedit write_cmos -v; fi
|
|
Write 2 bytes from offset 30 to 38
|
|
=> echo $?
|
|
0
|
|
|
|
Update the checksum in CMOS RAM::
|
|
|
|
=> cbcmos check
|
|
Checksum 6100 error: calculated 7100
|
|
=> cbcmos update
|
|
Checksum 7100 written
|
|
=> cbcmos check
|
|
=>
|