script: Add support for additional mux in model XML
[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 generate-all-modes.sh    - Helper script to generate all modes of a peripheral
56 EXAMPLES
57 ========
58 ## For getting the register dump of the PAD registers from "linux" system:-
59     - Run this command on target "omapconf dump 0x4a003400 0x4a00380c"
60       and save the output to a file called ctrl-core.dump
61     - Please refer to the usage and help message for more info.
62       $> ./iodelay-autogen.py --help
64 ## For getting the register dump of the PAD registers from "bios" system:-
65     - For bios use cases, omapconf is not available. Use the CCS tool to
66       create the dump of pad registers using gel script 'get-pad-dump.gel'
68 #1 For generating the IOdelay values from the old kernel interactively:-
69     - Run the script interactively with -i option (default).
70     - Select the delay mode for the PAD group in conflict. Refer to the
71       guidelines.txt for description about that delay mode.
72     - For the peripherals in doubt, you can skip the entire PAD group
73     - Selection of each PAD group and the selected mode is printed at end.
74     - e.g. to generate the pad/delay data first time, run
75       $> ./iodelay-autogen.py -i 1
76       $> ./iodelay-autogen.py
78 #2 For generating the IOdelay values for a specific module only:-
79     - Use the module filter to specify the desired module.
80       The script would only generate output wrt the module specified.
81     - e.g. to generate the pad/delay data only for VIN3A interface, run
82       $> ./iodelay-autogen.py -m VIN3A
84 #3 For generating the IOdelay values for kernel format:-
85     - Use the format option -f to specify the output format.
86     - e.g. for generating pad/delay data for MMC1 in DTS format, run
87       $> ./iodelay-autogen.py -m MMC1 -f linux
89 #4 For generating MMC data in kernel DTS format:-
90     - Use the generate-all-modes.sh helper similar to the python tool.
91     - e.g. for generating MMC1 for J6eco SR1.0, run
92       #> ./generate-all-modes.sh -p dra72x -m MMC1 -r 1.0 -f linux
94 #5 For generating signal probe script for VIN1A signals:-
95     - Use the module filter for to specify the module.
96     - Enable '--gpio' option
97       #> ./iodelay-autogen.py -m VIN1A --gpio
98     - This would create vin1a-probe.sh which can be used on target
100 TODO
101 ====
103 SUPPORT AND BUGS
104 ================
105 - Some PAD registers are hidden in the XML, so warnings for them are expected
106 - I2C1 PADs do not have mux mode names, so errors for them are expected
108 For any queries and support on this script, please write to
109 "Nikhil Devshatwar" <nikhil.nd@ti.com>