This document details the steps to program external EEPROM with the 32 reset configuration bits in support of the 'Boot from serial RCON' method detailed in the device reference manual. The Python scripts used for this task are designed and tested to work on the EVBs, where EEPROM hardware is connected via I2C.(Serial EEPROM is not implemented on all boards).
The RCON can be set by the following:
The Serial option can be programmed using a debug probe connected via JTAG. This enables the RCON to be controlled remotely, assuming the debug probe is setup to allow remote connections.
The images shown throughout this document are of the S32G274A device implementation and are provided for illustration purposes.
Package for the device subject to debugging. This is important as the
Development Packages add the S32 Debugger support which provides access to the EEPROM programming capabilities via I2C of the S32 Debug Probe.
Depending on the way the device used and how the {device name}_i2c_RCON.py is edited, user must use the old procedure on the new one. Both detailed below.
To choose between the Old procedure and the new procedure, you must check in the {device_name}_i2c_RCON.py if variables like
“INTERACTIVE_MODE” and “RCON_DATA” exist.
The {device_name}_i2c_RCON.py can be found in:
{INSTALL_DIR}…S32DS/tools/S32Debugger/Debugger/scripts/{device_name}/ {device_name_part_name}_i2c_RCON.py
If the variables exist, please use the old procedure. If the variables were removed, please use the new procedure.
set
PYTHONPATH=C:\NXP\S32DS.3.5\S32DS\build_tools\msys32\mingw32\lib\python2.7;C:\N XP\S32DS.3.5\S32DS\build_tools\msys32\mingw32\lib\python2.7\site-packages
Note: The listed examples show only the minimum values required to configure each of the external memory types. Additional settings may be required for your specific application.
Windows OS:
../ S32DS\tools\gdb-arm\arm32-eabi\bin/arm-none-eabi-gdb-py.exe -x
{device_name}_i2c_RCON.py
OR
../ S32DS\tools\gdb-arm\arm64-eabi\bin/arm-none-eabi-gdb-py.exe -x
{device_name}_i2c_RCON.py
Linux OS:
arm-none-eabi-gdb-py -x {device_name}_i2c_RCON.py
set
PYTHONPATH=C:\NXP\S32DS.3.5\S32DS\build_tools\msys32\mingw32\lib\python2.7;C:\N XP\S32DS.3.5\S32DS\build_tools\msys32\mingw32\lib\python2.7\site-packages
Example:
C:\NXP\S32DS.3.5_230912_devpck\S32DS\tools\gdb-arm\arm32eabi\bin\arm-none-eabi-gdb-py.exe
Linux OS: arm-none-eabi-gdb-py
( C:\NXP\S32DS.3.5_230912_devpck\S32DS\tools\S32Debugger\Deb ugger\scripts\gdb_extensions\rcon\s32rcon.py
Example:
_RCON_SCRIPT = "
C:/NXP/S32DS.3.5_230912_devpck/S32DS/tools/S32Debugger/Deb ugger/scripts/s32g2xx/ s32g274a_i2c_RCON.py"
c. Source s32rcon.py in GDB.
Example:
source
C:/NXP/S32DS.3.5_230912_devpck/S32DS/tools/S32Debugger/Deb ugger/scripts/gdb_extensions/rcon/s32rcon.py
d. Run command py rcon() in GDB.
OBS: Steps a, b can be done after c directly from GDB, using GDB py commands:
Examples:
py _GDB_SERVER_PORT=45000 py
_RCON_SCRIPT="C:/NXP/S32DS.3.5_230912_devpck/S32DS/tools/S32Debugger/Debu gger/scripts/s32g2xx/ s32g274a_i2c_RCON.py"