Config Tool Introduction and Use
From i.MX93 using the Config Tool for the DDR configure. The Config Tools for i.MX is a suite of evaluation and configuration tools that help users from initial evaluation to production software development. Config Tools for i.MX is an easy-to-use way to configure the pins and DDR of the i.MX processor devices.
The software, in general, enables you to create, inspect, change, and modify any aspect of the pin configuration and muxing of the device. It also allows you to configure and validate DDR settings.
1 Download and install
The link in website:
https://www.nxp.com/design/design-center/software/i-mx-developer-resources:IMXSW_HOME
The Config Tools for i.MX is installed as a desktop tool which then loads additional device information through a network connection, but does otherwise not need internet connection. It does not require a project setup, as all the settings are stored in text and generated source files, which then can be easily stored in a version control system or exchanged with other users.
Config Tool function
For the Config Tool have two function, one is the Pins tool another is the DDR tool functions.
1.1 Pins tool
The Pins Tool makes pin configuration easier and faster with an intuitive and easy user interface, which then generates normal C code that can then be used in any C and C++ application. The Pins Tool configures pin signals from multiplexing (muxing) to the electrical properties of pins, and it also creates Device Tree Snippets Include (.dtsi) files and reports in CSV format.
Pins Tool
Configuration of pin routing/muxing
Managing different functions used for routing initialization
Configuration of pin functional/electrical properties
Generation of code for routing and functional/electrical properties
1.2 DDR Tool
The DDR tool provides two main functionalities: configuration and validation. The DDR configuration provides a user-friendly graphical interface to configure the DDR controller and the DDR PHY. It can be used for tweaking some of the configuration parameters when you want to use different memory modules than the ones received with the board or when you want to optimize the configuration. DDR validation provides different scenarios to verify the DDR performance, by downloading a test image to the processor’s internal RAM through a USB connection. The result is sent to the DDR tool via the UART. DDR validation can help verify DDR stability on the board in a non-OS environment.
DDR Tool
The DDR tool is designed for:
Configuration of DDR controllers
Validation of DDR configuration
Support for i.MX 8M and i.MX93 families
Configuration: Simplified UI for device configuration
Advanced board configuration options
Stressing: Stress tests with overnight option
Optimization: Sweep ODT configuration and optimization of Vref for DQ and CA
Virtual Timing Signal Analysis (vTSA) support: RX and TX data eye, CA BUS signals margin and CA Eye test for LPDDR4 DRAM
Generation of C code for U-boot SPL driver
The DDR tool allows you to view and configure basic DDR attributes, such as memory type, frequency, number of channels and others and test the DDR configuration by a variety of tests. After you have specified the connection type, you can choose scenarios, tests to run in these scenarios, and view the test results, logs, and summary.
2 Install Download Config_Tools_for_i.MX_v16_x64.exe
Note: In our company PC we need to apply the Admin Manage:
Config Tools for i.MX is available offline (local) Minimum system requirements
One of the following graphical operating systems:
– Microsoft Windows 10 (64-bit)
– Ubuntu 22.04 LTS
Note: Linux-hosted variants of tools are distributed on Linux as 64-bit binaries, which may not work on 32-bit systems.
– Supported desktop environments: GNOME
– Mac OS X (12.x)
4 GB RAM
Display with resolution 1024 x 768
Internet connection for dynamic download from processor database
Note: If the MacOS is set to Traditional Chinese, Config Tools for i.MX starts in English and not Chinese. This is intended.
2 The use of the Config tool
Configuration of DDR controllers
2.1 Creating a new configuration
create a configuration from the Start development wizard or by selecting File > New from the Menubar.
If you start creating your development for any NXP board or kit, we recommended you start with example to create a configuration for a board or a kit. Such configuration contains board-specific settings. If you select a processor, the configuration will be empty.
2.2 Run the Config tool
Open the Config tool, choose the Creating a new standalone configuration for a processor, board, or kit
Choose the Processor
Choose the i.MX93 part number product
Choose DDR
Under the tool select the tools---->DDR
Three sections need to mentioned:
Make DDR configure right and make the DDR is enabled already.
Two sections are very important the same as the tool we supply before in the old product:
DDR paramaters configuration
DDR stress test(Validation)
DDR parameters configuration:
This is the UART Port configure, for the i.MX93 EVK Board default use the UART1 for A55 core debug, if in customer’s design use others port can choose here and also need modify the register settings manually.
Advanced parameters config, it is very important:
General advice
The I2C connection between MX and PMIC should be consistent with the development board, using the same pad. If choose different , Need to modify I2C
Validation of DDR configuration
In the previous DDR stress test tool, only two functions were provided: DDR calibration and stress test.
In the new Config tool, more testing items are provided for customers to debug DDR, totaling four items.
When finished the DDR configuration then go to do the validation.
Test DDR initialization script, Perform basic read and write operations
If pass the test, it will be OK. If failed, we need to fail shooting for it.
According to the log output information, check boot mode/UART/USB, etc
If the test fails, first check the boot mode configuration and UART/USB interface.
The previous DDR stress test tool would output statements such as "Please set in serial download mode" or "Please connect UART port", which are obvious.
The current Config tool outputs all log information of the code, with a lot of content and no erroneous conclusions. We need to carefully review the log output to identify where the problem lies.
Test on the i.MX93 EVK Board, if the boot mode not right and the USB is not connected, when do the test there will be the ERROR Messages in the logs:
Test on the i.MX93 EVK Board, if not with proper UART port, the ERROR Messages in the logs:
Optimization test
This requires detailed ODT, driver strength testing, and scanning of all DQ IO configuration options,
Test whether each configuration is passed or failed. Finally, output the mapping between the read/write drive strength and ODT output.
For the test result when reading, the impedance of DRAM driven strength and PHY ODT cannot be set too big, (Green - pass, Orange - fail)
When determining the optimal ODT/driver strength value for the customer's board, this mapping diagram can be used as a reference, but it cannot be the sole basis for making this decision.
If the customer fully references the NXP development board for design, they can first use the default configuration of the development board for testing. Then fine tune it.
VTSA (Virtual Timing Signal Analysis)
Generate write and read data eye diagrams by running a series of write/read operations. (Different from using a high-speed oscilloscope for manual physical TSA (pTSA) measurement).
Use the DDR controller itself to test margin by writing margin (Diag Write Margin)/diagnosing read margin (Diag Draw a virtual data eye diagram for each DQ channel during the Read Margin test.
This tool differs from the actual eye diagram results and is for reference only.
DDR Stress Test
The last step, stress test, customer can choose long time test:
Code generate
In the right side we can see the lpddr4_timing.c generate, using for the uboot.
For this tool, the code can be automatically generated and automatically generated code when the registers change, and do not need to run the test on the board, this is difference with the old tool.
3 i.MX93 UBOOT and Kernel DDR configuration
3.1 The DDR configuration in the Uboot
(1) Copy the generated lpddr4x_timing.c to uboot path:
board/freescale/imx93_evk/lpddr4x_timing.c
(2) DDR Size setting
uboot-imx/include/configs/imx93_evk.h
The default size is 2GB for the i.MX93 EVK board.
For the i.MX93EVK uses 2GB LPDDR4X. If using 1GB/512MB LPDDR4, it is important to note that the size of the DDR is related to the memory map address.
According to the Memory map, starting from 0xC000_0000 is 1GB of DRAM space, and starting from 0xA000_0000 is 512MB of DRAM space.
3.2 The DDR configuration align in the Kernel
For the 1GB LDDR4/4X device tree modify
For the i.MX93 the NPU is accessed through M-core, so a section of DRAM memory is reserved. Regardless of whether NPU is used or not, ethos must be changed here, otherwise starting the kernel may result in errors. Change the address space to within 1GB and appropriately reduce the memory allocation size.
arch/arm64/boot/dts/freescale$ vi imx93-11x11-evk.dts
Summary:
Config tool is NXP's new DDR script generation/stress testing/OMUX allocation tool, which is required for i.MX93. Other i MX chips can also use this tool.
The Config tool provides more DDR testing projects, including testing ODT/driver capabilities and outputting mapping maps, generating DDR virtual eye diagrams, etc., making it easy to test DDR conditions from multiple perspectives.
It is recommended to use the Config tool to debug ODT/driver capabilities and other parameters, which is also applicable to all i MX chip, as a debugging tool for reference. The theoretical parameters of the actual board should refer to the simulation results of the board or the measured results of DDR signals.
Any questions contact us freely.
View full article