UBoot recovery for imx6 via JTAG: Difference between revisions
From Wiki-DB
Jump to navigationJump to search
Ageisreiter (talk | contribs) |
Ageisreiter (talk | contribs) |
||
Line 64: | Line 64: | ||
##*If OpenOCD does not open like in the picture then close and open it again | ##*If OpenOCD does not open like in the picture then close and open it again | ||
## '''GDB''' | ## '''GDB''' | ||
##*Open second terminal window | |||
##*<code>gdb --quiet</code> | ##*<code>gdb --quiet</code> | ||
##*<code>target remote localhost:3333</code> | ##*<code>target remote localhost:3333</code> |
Revision as of 15:16, 13 February 2019
Technically all JTAG-adapter listed by OpenOCD should work, but DH electronics recommends the Olimex Arm-USB-OCD-Tiny-H. All tests and Documents were made in use of this one.
Needed Hardware
- JTAG Debugger: Olimex Arm-USB-OCD-Tiny-H.
- DHCOM JTAG adapter for FFC connection: Article number FD00037
- Wuerth FFC cable: 687610050002
- Note: One cable is included with the DHCOM JTAG adapter.
Installation
This installation was made on the Virtual Machine for Application Development. All console expressions refer to this Debian system.
- OpenOCD
- OpenOCD is a Linux package and is as easy to install as
sudo apt-get install openocd
- OpenOCD is a Linux package and is as easy to install as
- Drivers
- If you use the JTAG-Adapter recommended by DH, then you need to install the FTDI-Drivers as followed:
- Go to http://www.ftdichip.com/Drivers/D2XX.htm and Download your suitable Driver (32-bit or 64-bit)
- Navigate into the Download folder
cd /home/devel/Downloads
- Untar the Downloaded zip-file
tar xfvz libftd2xx-x86_64-1.4.6.tgz
- For the next steps you need Admin rights (standard password for the VM is root):
su
- You need to copy the folder
cp libftd2xx.* /usr/local/lib
- Changing the permission
chmod 0755 /usr/local/lib/libftd2xx.so.1.4.6
- Creating a link
ln -sf /usr/local/lib/libftd2xx.so.1.4.6 /usr/local/lib/libftd2xx.so
- Finish the installation
exit
- If you use the JTAG-Adapter recommended by DH, then you need to install the FTDI-Drivers as followed:
uBoot Programing
There are two ways for doing this. The easy way is an automatic Bash-script, which handles all the commands needed for the programing process. In this case you need a specified folder-structure so that the automatic script can find all its needed files. The other one is to type in the required commands. In a few cases this fails then you need to go the other way and program the uBoot manually.
- Download the needed files here: Programing Files
- Here you get the "dhcom_olimex_arm_usb_tiny_h.cfg" and the "u-boot-spl-prog"
- Download newest uBoot here: uBoot_iMX6
- Here you get the "uBoot.imx"
- Connecting everything
- Connect the JTAG-Adapter with your PC and the Debian VM (Player - Removeable Devices)
- Connect the JTAG interface via the DHCOM JTAG adapter to the i.MX6 module (If you don't have a JTAG adapter, please ask DH electronics)
- Connect the board with a serial COM-port: Enter Bootloader Console
- Automatic Script
- Create a new folder (it isn't necessary where the folder is located, you just need to keep the folder structure)
- The needed folder structure looks like this:
- DHcom_uBoot_Programmer
- bin_File (here are the uBoot files)
- uBoot_Programmer (here are the Programing scripts)
- Paste the "dhcom_olimex_arm_usb_tiny_h.cfg"-file in the OpenOCD folder at
/usr/share/openocd/scripts/board
- The "uBoot_Programmer_Olimex_arm_usb_tiny_h.sh"-file needs to be in the uBoot_Programmer folder
- In the bin_Folder belongs the "u-boot-spl-prog.bin" and your own uBoot file
- You need to adjust the "uBoot_Programmer_Olimex_arm_usb_tiny_h.sh" in terms of the name of your uBoot-file. Paste the name instead of the term "Your uBoot File"
- DHcom_uBoot_Programmer
- Open a Linux terminal and navigate into the folder e.g.
cd DHcom_uBoot_Programmer/uBoot_Programmer
- Power up the i.MX6 board and have a look at the serial output (COM-port). There must not be any output (no uBoot starting) else go to Delete uBoot
- Start the programing script:
./uBoot_Programmer_Olimex_arm_usb_tiny_h.sh
- Note: If some error occures you can try the Manual Programing method below
- Manual Programming (Only needed if automatic script is not used!!!)
- Power up the board and have a look at the serial output. If there is any uBoot starting:Delete uBoot
- You need two terminals, one for GDB the other for OpenOCD an a Com-Port to get the serial output
- OpenOCD
openocd –f board/dhcom_olimex_arm_usb_tiny_h.cfg
- If OpenOCD does not open like in the picture then close and open it again
- GDB
- Open second terminal window
gdb --quiet
target remote localhost:3333
mon load_image /path/to/the/u-boot-spl-prog/file 0x908000
mon reg pc 0x908000
mon reset
mon resume
- Wait until the message "Searching for IVT header at DDR address 0x18000000" is on the serial output
mon halt
mon load_image /path/to/the/u-boot-with-spl/file 0x18000000
mon resume
Delete uBoot
- If there is any uBoot starting, you can delete it with entering uBoot (press DEL after powering up the board)
sf probe
sf erase 0 f0000
- Restart the board
- Go on with your procedure