Unable to program HyperFLASH with custom RT1062xxx6B controller

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

Unable to program HyperFLASH with custom RT1062xxx6B controller

985 Views
tbiberdorf
Contributor IV

I'm not sure why I cannot access HyperFLASH on my custom RT1062 hardware.

The H/W has been constructed to match the IMXRT1062-EVKB development board.

It's using the HyperFLASH part: S26KS512SDPBHI020

I am running MCUXpresso version 11.5.1

SDK version 2.11.1

I modified the xxxx_flexspi_nor_config.c file as suggested by other forum postings and Application note files (please see attached)

I modified the MCUXpresso properties Driver setting as suggested by Forum suggestions:

tbiberdorf_0-1658505242042.png

 

 

When I attempt to program a simple GPIO LED sample code using the GUI Flash Tool the console output is:

Executing flash operation 'Program' (Program executable into flash evkbmimxrt1060_igpio_led_output.axf) - Fri Jul 22 09:37:00 MDT 2022
Checking MCU info...
Scanning for targets...
Executing flash action...
SEGGER J-Link Commander V7.62c (Compiled Mar 23 2022 16:45:48)
DLL version V7.66c, compiled Jun 15 2022 16:51:27
J-Link Command File read successfully.
Processing script file...
J-Link>ExitOnError 1
J-Link Commander will now exit on Error
J-Link>r
J-Link connection not established yet but required for command.
Connecting to J-Link via USB...O.K.
Firmware: J-Link V11 compiled Jun 23 2022 16:24:09
Hardware version: V11.00
S/N: 851003797
License(s): RDI, FlashBP, FlashDL, JFlash, GDB
USB speed mode: High speed (480 MBit/s)
VTref=3.328V
Target connection not established yet but required for command.
Device "MIMXRT1062XXX6A" selected.
Connecting to target via SWD
InitTarget() start
InitTarget() end
Found SW-DP with ID 0x0BD11477
DPIDR: 0x0BD11477
CoreSight SoC-400 or earlier
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x04770041)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FD000
InitTarget() start
InitTarget() end
Found SW-DP with ID 0x0BD11477
DPIDR: 0x0BD11477
CoreSight SoC-400 or earlier
Scanning AP map to find all available APs
AP[1]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x04770041)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FD000
CPUID register: 0x411FC271. Implementer code: 0x41 (ARM)
Found Cortex-M7 r1p1, Little endian.
FPUnit: 8 code (BP) slots and 0 literal slots
CoreSight components:
ROMTbl[0] @ E00FD000
[0][0]: E00FE000 CID B105100D PID 000BB4C8 ROM Table
ROMTbl[1] @ E00FE000
[1][0]: E00FF000 CID B105100D PID 000BB4C7 ROM Table
ROMTbl[2] @ E00FF000
[2][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
[2][1]: E0001000 CID B105E00D PID 000BB002 DWT
[2][2]: E0002000 CID B105E00D PID 000BB00E FPB-M7
[2][3]: E0000000 CID B105E00D PID 000BB001 ITM
[1][1]: E0041000 CID B105900D PID 001BB975 ETM-M7
[1][2]: E0042000 CID B105900D PID 004BB906 CTI
[0][1]: E0040000 CID B105900D PID 000BB9A9 TPIU-M7
[0][2]: E0043000 CID B105F00D PID 001BB101 TSG
Cache: Separate I- and D-cache.
I-Cache L1: 32 KB, 512 Sets, 32 Bytes/Line, 2-Way
D-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way
****** Error: DAP error while reading AIRCR.
Cortex-M7 identified.
Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
ResetTarget() start
Core did not halt on flash image verification. Assuming faulty flash settings.
Halting target manually.
ResetTarget() end
AfterResetTarget() start
AfterResetTarget() end
J-Link>h
PC = 002020B4, CycleCnt = 00000000
R0 = 60000000, R1 = 402A8210, R2 = 5AF05AF0, R3 = 00000004
R4 = 00000000, R5 = 0021B368, R6 = 00000002, R7 = 401F46E0
R8 = 00000000, R9 = 00000000, R10= 7F7FA5BE, R11= 400F8000
R12= 00000003
SP(R13)= 20200CF0, MSP= 20200CF0, PSP= 00000000, R14(LR) = FFFFFFF9
XPSR = 41000003: APSR = nZcvq, EPSR = 01000000, IPSR = 003 (HardFault)
CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00
FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000
FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000
FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000
FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= FFFFFFFF
FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000
FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000
FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000
FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= FFFFFFFF
FPSCR= 00000000
J-Link>loadfile "D:\projectsXpresso11.5.1\evkbmimxrt1060_igpio_led_output\Debug\evkbmimxrt1060_igpio_led_output.hex"
Downloading file [D:\projectsXpresso11.5.1\evkbmimxrt1060_igpio_led_output\Debug\evkbmimxrt1060_igpio_led_output.hex]...
****** Error: Failed to prepare RAMCode using RAM
Error while determining flash info (Bank @ 0x60000000)
Unspecified error -1
Script processing completed.
Unable to perform operation!
Command failed with exit code 1

 

Does anyone have any further suggestions to try?

Thanks

 

Labels (1)
0 Kudos
Reply
4 Replies

965 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @tbiberdorf ,

   RT1062 EVK board is:

1. MIMXRT1060-EVK 

https://www.nxp.com/part/MIMXRT1060-EVK#/

2. MIMXRT1060-EVKB

https://www.nxp.com/part/MIMXRT1060-EVKB#/

You need to check your customer RT1060 hardware, whether you are using the same pins and chip like the MIMXRT1060 EVK board or EVKB board, as the SDK code is used for the NXP official board.

If the SDK for rt1060 hyperflash:

SDK_2_11_1_EVK-MIMXRT1060\boards\evkmimxrt1060\driver_examples\flexspi\hyper_flash\polling_transfer

This can't work on your customer board, it means your hardware still have issues, please check the solder and connection.

 

Best Regards,

kerry

0 Kudos
Reply

974 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @tbiberdorf ,

   If you are testing the MIMXRT1060-EVK on board hyperflash, please follow me to test it:

1. HW modification

OPTION1: USE Hyperflash( DNP R153~R158, Mount R356,R361~R366)

 

2. hyperflash testing

Run this code in the internal RAM, and check the printf information, make sure the hyperflash erase, read, write all works.

\SDK_2_12_0_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\hyper_flash\polling_transfer

 

3. then you can test the simple led_blinky project, about the .cfx, you can use this one, if you are using the on board CMSIS DAP debugger:

kerryzhou_0-1658731521653.png

 

Wish it helps you!

Any updated information, kindly let me know.

Best Regards,

kerry

 

0 Kudos
Reply

970 Views
tbiberdorf
Contributor IV

Hi Kerry

I don't have a IMXRT1062 EVK board, we are unable to find any available on the market to purchase.  All I have to work from is a IMXRT1050-EVKB and our custom H/W.

 

I updated my SDK to 2.12 as suggested, modified the MCU to my target RT1062.

tbiberdorf_0-1658760208151.png

I then compiled and loaded the application to RAM to test.

When running the test, I receive and error on the following API call:

static status_t flexspi_nor_hyperbus_read_cfi(FLEXSPI_Type *base, uint32_t addr, uint32_t *buffer, uint32_t bytes)
{
flexspi_transfer_t flashXfer;
status_t status;

flashXfer.deviceAddress = addr * 2;
flashXfer.port = kFLEXSPI_PortA1;
flashXfer.cmdType = kFLEXSPI_Read;
flashXfer.SeqNumber = 1;
flashXfer.seqIndex = HYPERFLASH_CMD_LUT_SEQ_IDX_READDATA;
flashXfer.data = buffer;
flashXfer.dataSize = bytes;
status = FLEXSPI_TransferBlocking(base, &flashXfer);

if (status != kStatus_Success)
{
return status;
}

return status;
}

with the status == 0x1B59

I stepping into the code to determine what/were the error is coming from.

 

0 Kudos
Reply

969 Views
tbiberdorf
Contributor IV

Hi Kerry

I've stepped into the code and got the following, not sure if you can explain.

tbiberdorf_0-1658762381251.png

 

0 Kudos
Reply