i.MX6 USB Certification Test via JTAG debugger

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

i.MX6 USB Certification Test via JTAG debugger

跳至解决方案
710 次查看
Kazuma_Sasaki
Senior Contributor I

Hi Community,

We are developing original board with i.MX6D.

Then, I would like to execute USB certification test via JTAG debugger to check the USB signal quality.

Can we set the USB test mode from JTAG debugger without any USB drivers?

If yes, please teach me register's settings to set the USB test mode.

I can execute the USB certification test if U-BOOT or Linux is working.

But, we are early development stage. therefore, we have not finished U-BOOT development.

Best Regards,

Kazuma Sasaki.

标签 (1)
0 项奖励
1 解答
445 次查看
Kazuma_Sasaki
Senior Contributor I

Hi Igor,

Finally, I could run the stand alone app via JTAG debugger.

Here is my conclusion.

1) Should be use sdk_unit_test_ALL.bin instead of .elf file

2) Check entry address from Image Vector Table

$ hexdump -C sdk_unit_test_ALL.bin | more
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400  d1 00 20 40 d0 06 00 10  00 00 00 00 30 04 00 10  |.. @........0...|
00000410  20 04 00 10 00 04 00 10  00 00 40 10 00 00 00 00  | .........@.....|

Above case,

0xd1 = IVT Header Tag

0x0020 = IVT Header Length

0x40 = IVT version

0x100006d0 = Absolute address of the first instruction to execute from the image. = entry address.

3) JTAG debugger lunch, and initialize i.MX6 with DCD table.

4) Program load to DDR (0x10000000) then execute from entry address (0x100006d0)

Best Regards,

Kazuma Sasaki.

在原帖中查看解决方案

0 项奖励
3 回复数
445 次查看
igorpadykov
NXP Employee
NXP Employee

Hi Kazuma

some simple tests can be performed with jtag, please look on

sdk/../usb/test/usb0_host_testmodes_test

Github SDK
https://github.com/backenklee/swp-report/tree/master/iMX6_Platform_SDK

https://community.nxp.com/docs/DOC-105609 

USB Sertification Guide

http://cache.freescale.com/files/microcontrollers/doc/user_guide/IMXUSBCGUG.pdf 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
446 次查看
Kazuma_Sasaki
Senior Contributor I

Hi Igor,

Finally, I could run the stand alone app via JTAG debugger.

Here is my conclusion.

1) Should be use sdk_unit_test_ALL.bin instead of .elf file

2) Check entry address from Image Vector Table

$ hexdump -C sdk_unit_test_ALL.bin | more
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400  d1 00 20 40 d0 06 00 10  00 00 00 00 30 04 00 10  |.. @........0...|
00000410  20 04 00 10 00 04 00 10  00 00 40 10 00 00 00 00  | .........@.....|

Above case,

0xd1 = IVT Header Tag

0x0020 = IVT Header Length

0x40 = IVT version

0x100006d0 = Absolute address of the first instruction to execute from the image. = entry address.

3) JTAG debugger lunch, and initialize i.MX6 with DCD table.

4) Program load to DDR (0x10000000) then execute from entry address (0x100006d0)

Best Regards,

Kazuma Sasaki.

0 项奖励
445 次查看
Kazuma_Sasaki
Senior Contributor I

Hi Igor,

Thank you for your support.

Attached file is iMX6_Platform_SDK binary which build by my environment.

I am trying that it execute on SABRE-SD board with jtag.

At first, I checked ELF header via readelf command to understand binary structure.

then, I tried sdk_unit_test_ALL.elf load&execute via jtag with several settings.

But, I could not execute this application successfully.

So, Could you teach me the right load and start address?

I failed following settings.

Load to 0x900000 (OCRAM space). binary file is bigger than OCRAM space.

Load to 0x10000420 (DRAM space) execute from 0x10000420 based on following thread.

run standalone bare-metal application on u-boot on the iMX6 

Load to 0x10000000 execute from 0x10000790 based on ELF header analysis.

Load to 0x10000000 execute from 0x100006d0 based on ELF header analysis. etc...

Best Regards,

Kazuma Sasaki.

0 项奖励