Difference between revisions of "i.MX25 SODIMM PC Loading bootloader"
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:i.MX25 SODIMM PC - Development | + | [[Category:i.MX25 SODIMM PC - Development Kit]] |
[[Category:i.MX25 SODIMM PC Recovery]] | [[Category:i.MX25 SODIMM PC Recovery]] | ||
<!-- --> | <!-- --> | ||
<div style="float:right">__TOC__</div> | <div style="float:right">__TOC__</div> | ||
− | This page shows the steps how to initiate On-Chip Debugging and load bootloader into i.MX25 SODIMM PC - Development | + | This page shows the steps how to initiate On-Chip Debugging and load bootloader into i.MX25 SODIMM PC - Development Kit. |
− | == JTAG Debugger and Programmer Installation | + | == Running Open On-Chip Debugger == |
+ | === OpenOCD 0.6.0 === | ||
+ | ==== Using Windows OS based computer ==== | ||
+ | JTAG Debugger and Programmer Installation requires these initial steps to be followed: | ||
* Connect JTAG Cable to USB port on a computer. JTAG device should be automatically recognized and prepared for usage. | * Connect JTAG Cable to USB port on a computer. JTAG device should be automatically recognized and prepared for usage. | ||
− | * Download [http://downloads.voipac.com/files/i.MX25_SODIMM_PC- | + | * Download [http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/tools/jtag/binaries/openocd-0.6.0-vmx0.zip OpenOCD v0.6.0 software] |
* Unzip the files | * Unzip the files | ||
[[image:JTAG_cable_with_serial_line.jpg|400px]] | [[image:JTAG_cable_with_serial_line.jpg|400px]] | ||
− | |||
Locate the folder where the software was unpacked. Run OpenOCD utility in command line (by using Total Commander or Windows Command Prompt): | Locate the folder where the software was unpacked. Run OpenOCD utility in command line (by using Total Commander or Windows Command Prompt): | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
openocd.exe -f vmx25w.cfg | openocd.exe -f vmx25w.cfg | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[image:i.MX25_SODIMM_PC-Development_Kit-JTAG_debugging. | + | [[image:i.MX25_SODIMM_PC-Development_Kit-JTAG_debugging.png|580px]]<br /><br /> |
Debugging session is opened and running:<br /> | Debugging session is opened and running:<br /> | ||
− | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_running. | + | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_running.png|580px]]<br /> |
+ | |||
+ | ==== Using Linux OS based computer ==== | ||
+ | Download the [https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/tools/jtag/vmx25-oocd-0.6.0.cfg configuration files] and [https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-vmx25-1.0.img barebox binary]: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/tools/jtag/vmx25-oocd-0.6.0.cfg | ||
+ | wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-vmx25-1.0.img | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Instal OpenOCD utility: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo apt-get install openocd | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Run the On-Chip Debugger routine with the i.MX25 SODDIMM Module configuration file: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | /opt/openocd/bin/openocd -f vmx25-oocd-0.6.0.cfg | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === OpenOCD 0.9.0 === | ||
+ | ==== Using Linux OS based computer ==== | ||
+ | Download the [https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/tools/jtag/vmx25-oocd-0.9.0.cfg configuration files] and [https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-vmx25-1.0.img barebox binary]: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/tools/jtag/vmx25-oocd-0.9.0.cfg | ||
+ | wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-vmx25-1.0.img | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Instal OpenOCD utility: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | sudo apt-get install openocd | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Run the On-Chip Debugger routine with the i.MX25 SODDIMM Module configuration file: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | /opt/openocd/bin/openocd -f vmx25-oocd-0.9.0.cfg | ||
+ | </syntaxhighlight> | ||
== Connecting to Open On-Chip Debugger session == | == Connecting to Open On-Chip Debugger session == | ||
Line 27: | Line 64: | ||
telnet localhost 4444 | telnet localhost 4444 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[image:i.MX25_SODIMM_Base_Board-Telnet. | + | [[image:i.MX25_SODIMM_Base_Board-Telnet.png|400px]]<br /><br /> |
+ | Note: In [[#Telnet log|this section]] a detailed Telnet log is located in case troubleshooting is needed.<br /><br /> | ||
Telnet session is active and ready for use:<br /> | Telnet session is active and ready for use:<br /> | ||
− | [[image:i.MX25_SODIMM_Base_Board-Telnet_ready. | + | [[image:i.MX25_SODIMM_Base_Board-Telnet_ready.png|580px]]<br /> |
=== Using terminal emulator === | === Using terminal emulator === | ||
To open Telnet service using TeraTerm program, click on File/New Connection, select TCP/IP option and type '''4444''' into TCP port# field. The IP address to connect to is '''localhost''' (127.0.0.1):<br /> | To open Telnet service using TeraTerm program, click on File/New Connection, select TCP/IP option and type '''4444''' into TCP port# field. The IP address to connect to is '''localhost''' (127.0.0.1):<br /> | ||
− | [[image:i.MX25_SODIMM_Base_Board-Telnet_session. | + | [[image:i.MX25_SODIMM_Base_Board-Telnet_session.png|400px]]<br /><br /> |
TeraTerm session is running and ready for use:<br /> | TeraTerm session is running and ready for use:<br /> | ||
− | [[image:i.MX25_SODIMM_Base_Board-Telnet_ready_TeraTerm. | + | [[image:i.MX25_SODIMM_Base_Board-Telnet_ready_TeraTerm.png|580px]]<br /> |
== Establishing serial connection == | == Establishing serial connection == | ||
Open TeraTerm program, click on File/New Connection, choose Serial and select the port which was assigned to the serial console:<br /> | Open TeraTerm program, click on File/New Connection, choose Serial and select the port which was assigned to the serial console:<br /> | ||
− | [[image:i.MX25_SODIMM_Base_Board-Serial_connection. | + | [[image:i.MX25_SODIMM_Base_Board-Serial_connection.png|400px]]<br /><br /> |
A successful connection is created only if the following serial port settings are applied (115200, 8n1):<br /> | A successful connection is created only if the following serial port settings are applied (115200, 8n1):<br /> | ||
− | [[image:i.MX25_SODIMM_Base_Board-Serial_console_settings. | + | [[image:i.MX25_SODIMM_Base_Board-Serial_console_settings.png|580px]]<br /><br /> |
== Boot mode options == | == Boot mode options == | ||
Line 66: | Line 104: | ||
reset_halt | reset_halt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_reset_halt. | + | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_reset_halt.png|580px]]<br /><br /> |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
vmx25_init | vmx25_init | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_init. | + | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_init.png|580px]]<br /><br /> |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
boot | boot | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_boot. | + | [[image:i.MX25_SODIMM_PC-Development_Kit-OpenOCD_boot.png|580px]]<br /><br /> |
Barebox was loaded into the i.MX25 SODIMM PC Module SRAM and executed:<br /> | Barebox was loaded into the i.MX25 SODIMM PC Module SRAM and executed:<br /> | ||
− | [[image:i.MX25_SODIMM_PC-Development_Kit-Bootloader_loaded. | + | [[image:i.MX25_SODIMM_PC-Development_Kit-Bootloader_loaded.png|580px]]<br /><br /> |
As this fresh Barebox is stored in SRAM only at this point, switching the module off causes the bootloader to be erased. To store the new Barebox and use it automatically after power on, image flashing is required. Follow [[i.MX25_SODIMM_PC_Flashing_images|this section]] to do so. | As this fresh Barebox is stored in SRAM only at this point, switching the module off causes the bootloader to be erased. To store the new Barebox and use it automatically after power on, image flashing is required. Follow [[i.MX25_SODIMM_PC_Flashing_images|this section]] to do so. | ||
+ | |||
+ | == Telnet log == | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | user@workstation:~$ telnet localhost 4444 | ||
+ | Trying 127.0.0.1... | ||
+ | Connected to localhost. | ||
+ | Escape character is '^]'. | ||
+ | Open On-Chip Debugger | ||
+ | > reset halt | ||
+ | JTAG tap: imx25.etb tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1) | ||
+ | JTAG tap: imx25.cpu tap/device found: 0x07926041 (mfg: 0x020, part: 0x7926, ver: 0x0) | ||
+ | TAP imx25.whatchacallit does not have IDCODE | ||
+ | JTAG tap: imx25.sdma tap/device found: 0x0882301d (mfg: 0x00e, part: 0x8823, ver: 0x0) | ||
+ | target state: halted | ||
+ | target halted in ARM state due to breakpoint, current mode: Supervisor | ||
+ | cpsr: 0x000000d3 pc: 0x00000000 | ||
+ | MMU: disabled, D-Cache: disabled, I-Cache: disabled | ||
+ | > vmx25_init | ||
+ | Configuring VMX25... | ||
+ | JTAG tap: imx25.etb tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1) | ||
+ | JTAG tap: imx25.cpu tap/device found: 0x07926041 (mfg: 0x020, part: 0x7926, ver: 0x0) | ||
+ | TAP imx25.whatchacallit does not have IDCODE | ||
+ | JTAG tap: imx25.sdma tap/device found: 0x0882301d (mfg: 0x00e, part: 0x8823, ver: 0x0) | ||
+ | target state: halted | ||
+ | target halted in ARM state due to breakpoint, current mode: Supervisor | ||
+ | cpsr: 0x000000d3 pc: 0x00000000 | ||
+ | MMU: disabled, D-Cache: disabled, I-Cache: disabled | ||
+ | Initialisation completed... | ||
+ | > boot barebox-vmx25-1.0.img | ||
+ | core state: ARM | ||
+ | 400396 bytes written at address 0x80000000 | ||
+ | downloaded 400396 bytes in 3.547603s (110.219 KiB/s) | ||
+ | target state: halted | ||
+ | target halted in ARM state due to breakpoint, current mode: Supervisor | ||
+ | cpsr: 0x400000d3 pc: 0x80000050 | ||
+ | MMU: disabled, D-Cache: disabled, I-Cache: disabled | ||
+ | > | ||
+ | </syntaxhighlight> |
Latest revision as of 07:06, 24 April 2022
This page shows the steps how to initiate On-Chip Debugging and load bootloader into i.MX25 SODIMM PC - Development Kit.
Running Open On-Chip Debugger
OpenOCD 0.6.0
Using Windows OS based computer
JTAG Debugger and Programmer Installation requires these initial steps to be followed:
- Connect JTAG Cable to USB port on a computer. JTAG device should be automatically recognized and prepared for usage.
- Download OpenOCD v0.6.0 software
- Unzip the files
Locate the folder where the software was unpacked. Run OpenOCD utility in command line (by using Total Commander or Windows Command Prompt):
openocd.exe -f vmx25w.cfg
Debugging session is opened and running:
Using Linux OS based computer
Download the configuration files and barebox binary:
wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/tools/jtag/vmx25-oocd-0.6.0.cfg wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-vmx25-1.0.img
Instal OpenOCD utility:
sudo apt-get install openocd
Run the On-Chip Debugger routine with the i.MX25 SODDIMM Module configuration file:
/opt/openocd/bin/openocd -f vmx25-oocd-0.6.0.cfg
OpenOCD 0.9.0
Using Linux OS based computer
Download the configuration files and barebox binary:
wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/tools/jtag/vmx25-oocd-0.9.0.cfg wget https://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-vmx25-1.0.img
Instal OpenOCD utility:
sudo apt-get install openocd
Run the On-Chip Debugger routine with the i.MX25 SODDIMM Module configuration file:
/opt/openocd/bin/openocd -f vmx25-oocd-0.9.0.cfg
Connecting to Open On-Chip Debugger session
Using Windows Telnet Client
Click on Start/Run (or press Windows key + R), and open the Telnet session using 4444 port:
telnet localhost 4444
Note: In this section a detailed Telnet log is located in case troubleshooting is needed.
Telnet session is active and ready for use:
Using terminal emulator
To open Telnet service using TeraTerm program, click on File/New Connection, select TCP/IP option and type 4444 into TCP port# field. The IP address to connect to is localhost (127.0.0.1):
TeraTerm session is running and ready for use:
Establishing serial connection
Open TeraTerm program, click on File/New Connection, choose Serial and select the port which was assigned to the serial console:
A successful connection is created only if the following serial port settings are applied (115200, 8n1):
Boot mode options
H902 jumper (BOOTMODE) allows to choose different bootloader sources:
- Direct boot is enabled when a link is placed between pins 1 and 2. This mode is chosen by default.
- Serial Boot (Internal boot) is selected when pins 2 and 3 are shortened.
Direct Boot | Serial Boot |
Important: No boot mode changes are required during firmware loading.
Loading bootloader
The following commands need to be placed inside Localhost Telnet session and executed one by one. Console logs are included for comparison:
reset_halt
vmx25_init
boot
Barebox was loaded into the i.MX25 SODIMM PC Module SRAM and executed:
As this fresh Barebox is stored in SRAM only at this point, switching the module off causes the bootloader to be erased. To store the new Barebox and use it automatically after power on, image flashing is required. Follow this section to do so.
Telnet log
user@workstation:~$ telnet localhost 4444 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Open On-Chip Debugger > reset halt JTAG tap: imx25.etb tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1) JTAG tap: imx25.cpu tap/device found: 0x07926041 (mfg: 0x020, part: 0x7926, ver: 0x0) TAP imx25.whatchacallit does not have IDCODE JTAG tap: imx25.sdma tap/device found: 0x0882301d (mfg: 0x00e, part: 0x8823, ver: 0x0) target state: halted target halted in ARM state due to breakpoint, current mode: Supervisor cpsr: 0x000000d3 pc: 0x00000000 MMU: disabled, D-Cache: disabled, I-Cache: disabled > vmx25_init Configuring VMX25... JTAG tap: imx25.etb tap/device found: 0x1b900f0f (mfg: 0x787, part: 0xb900, ver: 0x1) JTAG tap: imx25.cpu tap/device found: 0x07926041 (mfg: 0x020, part: 0x7926, ver: 0x0) TAP imx25.whatchacallit does not have IDCODE JTAG tap: imx25.sdma tap/device found: 0x0882301d (mfg: 0x00e, part: 0x8823, ver: 0x0) target state: halted target halted in ARM state due to breakpoint, current mode: Supervisor cpsr: 0x000000d3 pc: 0x00000000 MMU: disabled, D-Cache: disabled, I-Cache: disabled Initialisation completed... > boot barebox-vmx25-1.0.img core state: ARM 400396 bytes written at address 0x80000000 downloaded 400396 bytes in 3.547603s (110.219 KiB/s) target state: halted target halted in ARM state due to breakpoint, current mode: Supervisor cpsr: 0x400000d3 pc: 0x80000050 MMU: disabled, D-Cache: disabled, I-Cache: disabled >