iMXRT1064 EVK doesn't enumerate with VID 0D28 and PID 0204

cancel
Showing results for 
Search instead for 
Did you mean: 

iMXRT1064 EVK doesn't enumerate with VID 0D28 and PID 0204

407 Views
palak_shah1
Contributor II

Hello,

I am using iMXRT1064 EVK board. I want to use MCU boot utility to flash a bin on the Flexspi1 connected flash. 

when I connect my board, I see device manager shows a new entry - 

Screenshot (159).png

However, it enumerates as VID 0D28 and PID 0204. It doesn't enumerate as VID =0x1Fc9 and PID 0x0135.

So, when I run mcu boot utility, it says board not detected. 

Screenshot (157).png

Any idea why this is happening? And what can I do to get the board detected?

Thanks,

Palak

0 Kudos
17 Replies

349 Views
palak_shah1
Contributor II

Hi,

If you see the screenshots in my previous reply, you can see that I am doing everything to generate an XIP image. from the MCUxpresso settings.

I am also using this link that shows how to generate an XIP image.

https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Generating-a-Bootable-Image-for-the-RT1050/ta-p/...

Attaching the screenshot here again - The one below shows I set XIP_EXTERNAL_FLASH = 1

Screenshot (168).png

This shows application is NOT (link to RAM) or (Plain load image).

Screenshot (169).png

This shows I am using BOARD_FLASH 

Screenshot (170).png

The image generated is in BOARD_FLASH. Isnt this enough for XIP?

Screenshot (171).png

And once the .axf file is generated, I am using In Project Explore window, right click the .axf file, then Binary Utility->Create binary. 

The .bin file that is generated, I am trying to upload that using MCU-boot utility. But once I am done uploading, and reboot the EVK with SW7 0010, I dont see the LED blinking. 

Screenshot (173).png

Here, it shows that it completed downloading the image, but doesnt blink after reboot. 

Please help.

Thanks,

Palak

 

0 Kudos

345 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

RT1060 project can't run on RT1064. RT1060 Flash XIP project start from 0x60000000 while RT1064 start from 0x70000000. Please goto mcuxpresso.nxp.com to download a RT1064 SDK.

 

Regards,

Jing

0 Kudos

327 Views
palak_shah1
Contributor II

Hi Jing,

Thank you for your reply. So I imported the "evkmimxrt1064_igpio_led_output" and "evkmimxrt1064_iled_blinky" example from 1064 SDK. 

And build it with default configuration and generated the .bin file. 

C/C++ Build >>settings > MCU C compiler > preprocessor and set the XIP_boot_header enable and and XIP_EXTERNAL_FLASH both to 1.

And using MCU-boot utility I was able to flash it (in serial download mode, SW7 DIP 0001) and I see the LED blinking.  (once I change the SW7 DIP to 0010)

Now, I want to change the settings to NON_XIP. 

I want to be able to run from SRAM and not XIP. 

So I did the following - 

https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Generating-a-Bootable-Image-for-the-RT1050/ta-p/...

Bootable Image Generation – SRAM

I made the following changes - 

Changed the memory configuration to BOARD_SDRAM

Screenshot (176).png

Select "LINK APPLICATION to RAM" in the Properties -> Settings 

Screenshot (177).png

Changed XIP_EXTERNAL_FLASH and XIP_BOOT_HEADER_ENABLE to 0.

Screenshot (178).png

As you can see, when I compile it, it uses SRAM_DTC.

Screenshot (179).png

Then I take the .bin file generated from .axf file -> rightclick and generate .bin file.

When I flash it using boot utility -> Boot Device memory option (last tab)

When I reboot, I don't see LED blinking. Is there anything different I need to do for it to run from SRAM?Screenshot (180).png

Thanks,

Palak

0 Kudos

322 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

To a new comer, I strongly suggest you to follow the guide.

If you want to use MCUBootUtlilty, you must add  header and ivt first. Then let MCUBootUtility to import .axf file. MCUBootUtility will replace your header and ivt by its own. Then download and run, the led will blinky.

jingpan_0-1655274970284.png

 

To add a header and ivt, you can refer to this post.

https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/I-MX-RT-How-to-booting-to-SDRAM/ta-p/1125054?sea...

 

Regards,

Jing

0 Kudos

315 Views
palak_shah1
Contributor II

Thanks Jing.

Can you please tell me which guide. I have researched and also read the reference manual. but is this a particular guide or section you are referring to? I will also follow the link you sent me.

Thanks,

Palak

0 Kudos

311 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

The guide is the post link you sent yesterday. It use other tools to make the binary image and download. With it's guide, you can understand how MCUBootUtility and RT device work.

 

Regards,

Jing

0 Kudos

307 Views
palak_shah1
Contributor II

Hi Jing,

I followed these instructions on the link you shared - 

Add DCD by MCUxpresso IDE
If customers use MCUXpresso to develop the project, they can add DCD head by MCUXpresso.

To show the work flow, we take evkmimxrt1020_iled_blinky as the example.

Step 1: Add the following to Compiler options:

XIP_BOOT_HEADER_DCD_ENABLE=1

SKIP_SYSCLK_INIT

Step 2: Modify the Memory Configuration

pastedImage_1.png

Step 3: Select link application to RAM

pastedImage_2.png

Step 4. Compile the project. MCUXpresso will generate linker script automatically.

Step 5. Since the code should be linked to RAM, MCUXpresso will not prefix IVT and DCD. We can add these link information to linker script manually. Add below code to .ld file’s head.

.boot_hdr : ALIGN(4)

{

FILL(0xff)

__boot_hdr_start__ = ABSOLUTE(.) ;

KEEP(*(.boot_hdr.conf))

. = 0x1000 ;

KEEP(*(.boot_hdr.ivt))

. = 0x1020 ;

KEEP(*(.boot_hdr.boot_data))

. = 0x1030 ;

KEEP(*(.boot_hdr.dcd_data))

__boot_hdr_end__ = ABSOLUTE(.) ;

. = 0x2000 ;

} >BOARD_SDRAM

 

Then deselect “Manage linker script” in last screenshot.

Step 6. Recompile the project, IVT/DCD/BOOT_DATA will be add to your project. Then right click the project axf file->Binary Utilities->Create S-record.

 

After all these step, you can open MCUBootUtility and download the .s19 file to NOR flash.

After doing these steps on the LED blinky example, I was able to download the .s19 file and I see the LED blinking. 

However, I do the same steps for the GPIO LED example and it doesnt work. I even tried the Step 3 Add DCD by MCUBootUtility. But then also the GPIO example doesnt blink the LED.

why is that?

And when you are doing the SDRAM and not XIP,

is this correct?

XIP_BOOT_HEADER_DCD_ENABLE=1 

SKIP_SYSCLK_INIT=1

XIP_EXTERNAL_FLASH=1 ( should this be 0 or 1)? I make it 0 and I dont see LED blink.

XIP_BOOT_HEADER_ENABLE=1 ( Should this be 0 or 1)?

Thanks,

Palak

 

 

0 Kudos

267 Views
palak_shah1
Contributor II

When you do non-XIP is this correct?

XIP_BOOT_HEADER_DCD_ENABLE=1 

SKIP_SYSCLK_INIT=1

XIP_EXTERNAL_FLASH=0 ( should this be 0 or 1)?

XIP_BOOT_HEADER_ENABLE=0 ( Should this be 0 or 1)?

Thanks,

Palak

Tags (1)
0 Kudos

264 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

XIP_BOOT_HEADER_DCD_ENABLE: not important

SKIP_SYSCLK_INIT: not important

XIP_EXTERNAL_FLASH: not important

XIP_BOOT_HEADER_ENABLE: MUST be 1

If you don't want MCUBootUtility to recover your image header, you should modify boot_data in fsl_flexspi_nor_boot.c. ROM Bootloader will read this structure to get how to copy image from flash to RAM.

const BOOT_DATA_T boot_data = {
FLASH_BASE, /* boot start location */
FLASH_SIZE, /* size */
PLUGIN_FLAG, /* Plugin flag*/
0xFFFFFFFFU /* empty - extra data word */
};

BTW, I think user needn't always remember these definition. Just search these definition in code, you will know their function.

 

Regards,

Jing

0 Kudos

296 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

Please compare the two project again. GPIO demo is no much difference with led_blinky demo. As to these definition, they are not important. MCUBootUtility will replace the whole head. You can read out the gpio and led_blinky image from flexspi flash, compare their head. You'll find the difference.

 

Regards,

Jing 

0 Kudos

268 Views
palak_shah1
Contributor II

Hi,

I did compare 2 objects and I did add the header in the linker file and compile both projects same way. However, when I download the GPIO led .s19 file, it doesnt show LED blinking. 

Screenshot (183).png

As you can see, I have added the IVT and DCD header information on both the sides.

Then again after adding this header to .ld file, I deselect Link to RAM option, I re-compile it, generate .s19 file and download it. 

LED blinky works but GPIO LED doesnt. 

Palak

0 Kudos

388 Views
palak_shah1
Contributor II

Hi Jing,

I have connected to J9 port. The usb is connected from J9 to my laptop.

I have a 5V power supply and power switch on. I dont see any light come up when I connect power.

And I have SW7 switch set to 0001. 

But the board is not getting detected, neither in device manager nor mcu boot utility.

Please guide.

board.jpeg

Screenshot (167).png

Thanks,

Palak

0 Kudos

386 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

J1 should be jumped to 3-4 if you want J9 supply power. 

J1 should be jumped to 1-2 if you want 5V source supply power.

 

Regards,

Jing

0 Kudos

394 Views
jay_heng
NXP Employee
NXP Employee

Do you set the BT_MODE pins to 2'b01?

0 Kudos

395 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

Please make sure

1. connect to J9 of the EVK;

2. the work mode is serial download mode;

3.  MCU device is i.MXRT1064 SIP, not i.MXRT106X.

jingpan_0-1654068782957.png

 

Regards,

Jing

0 Kudos

362 Views
palak_shah1
Contributor II

Hi, 

I did the below steps and was able to connect the board to the MCU boot utility in the serial download mode. 

Now I want to download the gpio_led example code binary from the SDK, but its not working. 

I did the following steps - 

1) Get the SDK example evkmimxrt1060_igpio_led_output

2) Compile it with default options to XIP.

3) Create a binary from MCUxpresso.

4) Enter the serial download mode on the board and choose the FLEXSPI_NOR.

5) try to write the image to the flash and reboot to boot from flash. but I dont see LED blinking. 

Below are the screenshots - 

Screenshot (168).pngScreenshot (169).pngScreenshot (170).pngScreenshot (171).png

As you can see the binary is compiled for XIP.

I get this error - 

Screenshot (172).png

 

I also tried going to the last tab - Device Boot memory and tried to write the .bin file to the address 0x7000 and it says write successful. but when I reboot with the SW7 0010 to boot from flash, it did not have any LED blinking code.

Am I missing something here? Please help!

Thanks,

Palak

0 Kudos

358 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @palak_shah1 ,

"Non-XIP application is detected but it's not in the range of ITCM/DTCM/OCRM/SDRAM"

If you want to run in FlexSPI NOR flash, the binary file should be XIP style. Please see the section 9.7 in reference manual.

How you did generate the .bin file? In Project Explore window, right click the .axf file, then Binary Utility->Create binary. You can create a binary file with IVT header. MCUBootUtility also can support axf file directly.

jingpan_0-1654741959216.png

 

 

Regards,

Jing

 

 

0 Kudos