mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	Update the cedit read/write functions to support menu items with values. Signed-off-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			161 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			3.8 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]
 | 
						|
 | 
						|
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:
 | 
						|
 | 
						|
   setenv c.<name> <selected_id>
 | 
						|
   setenv 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.
 | 
						|
 | 
						|
 | 
						|
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
 | 
						|
    =>
 |