Patch to make i.MX6DQ USB to support test modes for certification test

Showing results for 
Show  only  | Search instead for 
Did you mean: 

Patch to make i.MX6DQ USB to support test modes for certification test

Patch to make i.MX6DQ USB to support test modes for certification test

According to EHSET_v1.01.pdf description (, the USB physical certification test are from 2 sides. One test case is PC running USB-IF HSET utility as being USB host to test the target board being USB device; the other case is target board acting as USB host to initate test signals to a test fixture.


The principle of test modes supported are based on Vid/Pid pair  during enumration by host whoever takes.


Apply the attached patch (I use r13.4.1 kernel_imx tree), then enable "FSL_USB_TEST_MODE" in kernel config, rebuild uImage to get the test modes support kernel.


Hi Xia Zhang,

Could you let me know whether the patch has been applied to newer BSP?

(e.g. L3.10.17_1.0.0-ga, kk4.4.2_1.0.0-ga, etc...)

Best Regards,

Satoshi Shimoda

Hi, Shimoda San,

     The patch was applied to KK4.4.2_1.0.0-GA.

Best Regards,


Hi Wilson-san,

Thank you for your reply.

Then, do you know how about Linux BSP?

Especially, I want to know whether it has been applied to L3.10.17_1.0.0-ga (Yocto BSO).

Best Regards,

Satoshi Shimoda

Good morning, Shimoda San,

     Linux does not need any patch but there are commands directly changing register content in order to generate USB TEST pattern and they work on L3.0.35_4.1.0:

            1 ./memtool -32 0x020c4080 1  (to read current value; for example, 0xc00)

            2 ./memtool -32 0x020c4080=(current value + 0x3; for example, 0xc03)

            3 ./memtool -32 0x02184140=0x2

4 ./memtool -32 0x021841A8=0x3

5 ./memtool -32 0x02184184=0x1C040000  ( * for some reason, first assignment does not generate test pattern. In this case, redo this command.)

     However, in my case running on Yocto, the 5th command changes bit0 and 1 of 0x020C4080 from 1 back to 0. So, we have to run 2nd command to set clock once more; otherwise, any following command could cause system crash. While I have submitted this issue to our internal team for help, you may try these commands on L3.0.35_4.1.0.

Best Regards,


Hello, Wilson

I am now working on i.MX6 with L3.0.35_4.1.0 and I want to test the High Speed eye pattern(for certification test) when i.MX6 working on device mode.I don't know whether the following operations are right? Could you help me?

1)./memtool -32 0x020c4080 1

2)./memtool -32 0x202c4080=(current value + 0x3)

3)./memtool -32 0x02184140=0x2

4)./memtool -32 0x021841A8=0x2 (set to Device Controller)

5)./memtool -32 0x02184184=0x1C050000 (According to IMX6SDLRM.pdf, I set PTC field to FORCE_ENABLE_HS to enable High Speed).

Could you tell me if is this right?

Thank you!

Best Regards,


Hi, Zongbiao,

     Haven't set 0x2 into 0x021841A8. After my step 1~5, test pattern should be generated.

Good Luck!


Thank you for replying me so quickly.

In my case,  i.MX6  is working on USB OTG device mode.

if I run ./memtool -32 0x021841A8=0x3, i.MX6 will be work on host mode.

So I think I need to set 0x021841A8 to 0x2, is it right?

Best Regards,


Hi, Zongbiao,

     This article is talking about HOST mode, not DEVICE mode. Being device mode, no change is required.

Best Regards,


Hi All,

Is it work at Android L5.1.2 source ? Does someone test it ?

Thanks for your help !!



How can I set iMx6dl USB into test mode (host) on kernel 4.1.15?

Above register setting dose not work on kernel 4.1.15

Hi  Xia Zhang,

   I take the patch in kernel3.10.53. But the kernel  print "in test mode, but single step NOT on" all the way.

 Could you give some  advice?

Best Regards,


No ratings
Version history
Last update:
‎04-01-2013 02:05 AM
Updated by: