script: Add option to filter module and to dump gpio
[glsdk/iodelay-config.git] / README
1      +++++ Python Script to generate the IOdelay values +++++
3 IODELAY CONFIGURATION
4 =====================
5 When migrating to adapt to the IOdelay framework on DRA7xx SoCs,
7 * All the pinmuxing is performed from the bootloader
8 ** Allows to select the muxmode and pad direction
9 ** LEGACY_MODE padmux
11 * For some pads, along with mux mode, extra delay mode has to be configured
12 ** Allows to select one of the precoded delays from the ROM
13 ** VIRTUAL_MODE delay
15 * For some pads, additional registers have to be written with delays
16 ** Allows to manually set input/output delays per pad
17 ** MANUAL_MODE delay
20 DESCRIPTION
21 ===========
22 This script is used for generating the padmux and IO delay data for the
23 existing use cases based on group selection of delay modes.
25 For each pad, depending on the muxmode that is being used, there can be
26 multiple choices of choosing the delay - LEGACY, VIRTUAL_MODE or MANUAL_MODE
27 For LEGACY_MODE, nothing special has to be done.
28 Depending on the way the pad is being used, a specific delay mode has to be
29 chosen out of the multiple possibilities.
31 This script uses the register dump of the PAD registers from a running kernel.
32 From this, it derives the muxmode and pad directions used in the system.
33 Now the only thing that the script needs to add is the delay information.
35 Using PCT(Pad Configuration Tool) XML files as reference, the script finds
36 out all the possible options for VIRTUAL and MANUAL mode delays.
37 Depending on the way the hardware is used, user has to choose a specific mode.
39 User has to only select the delay mode to be used by a PAD group so that the
40 script selects them whenever in conflict. Optionally, the script can run
41 interactively to build up this data via menu based selection.
44 FILES
45 =====
46 iodelay-autogen.py       - Python script
47 guidelines.txt           - Describes when a specific delay mode is to be used
48 XMLFiles/*.xml           - XML data from Pad Config Tool
49                            Contains available delay modes and values
51 selected-modes.txt       - User selected delay modes to be used by script
52 ctrl-core.dump           - Register dump of all the PAD registers
53 config-iodelay-autogen   - Turn on/off common options for the script
56 EXAMPLES
57 ========
58 #0 For getting the register dump of the PAD registers:-
59     - Run this command on target "omapconf dump 0x4a003400 0x4a00380c"
60       and save the output to a file called ctrl-core.dump
62 #1 For generating the IOdelay values from the old kernel interactively:-
63     - Set interactive = 1 in the config-iodelay-autogen and run
64       $> python iodelay-autogen.py
65     - Select the delay mode for the PAD group in conflict. Refer to the
66       guidelines.txt for description about that delay mode.
67     - For the peripherals in doubt, you can skip the entire PAD group
68     - Selection of each PAD group and the selected mode is printed at end.
70 #2 For generating the IOdelay values for a specific module only:-
71     - Update the selected-modes.txt with an entry for the correct delay mode
72       to be used for the specific module.
73     - Set interactive = 0 in the config-iodelay-autogen and run
74       $> python iodelay-autogen.py | grep "PAD:"     #Dumps all pad entries
75       $> python iodelay-autogen.py | grep "DELAY:"   #Dumps all manual delays
77 #3 For generating the IOdelay values for all of the pads:-
78     - Create the selected-modes.txt either by following step #1 or
79       by referring to the guidelines.txt
80     - Set auto_decide = 1 in config-iodelay-autogen and run
81       $> python iodelay-autogen.py
82     - All the PAD and DELAY registers are dumped including the LEGACY_MODE
83       for which no manual/virtual modes are needed.
85 TODO
86 ====
87 - Do not dump the data immediately, save in a list and dump later
88 - Create output in u-boot or kernel format
89 - Dump data sorted by register address or by PAD group
92 SUPPORT AND BUGS
93 ================
94 - Some PAD registers are hidden in the XML, so warnings for them are expected
95 - I2C1 PADs do not have mux mode names, so errors for them are expected
97 For any queries and support on this script, please write to
98 "Nikhil Devshatwar" <nikhil.nd@ti.com>