Device Identification Register

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

Device Identification Register

3,056 Views
jensseifr
Contributor II

Hello,

i am searching for a register containing information about the specific core which is used.

For the Kinetis-family there was the SIM_SDID Register, which contains info about family, sub-family, pin-count, etc. It was also possible to read the size of flash/ram included in the microprocessor.

This was helpfull for a PCB using same core with different flashsize, to controll which software was programmed during production.

For a similar reason im searching a simlar register in the iMXRT-Series, especially the iMXRT1060 family.

Still searched in the Datasheets, and external Informations without success.

Did anybody knew a Device Identification Register included in the iMX.RT-Processors?

Best Regards!

0 Kudos
Reply
7 Replies

2,957 Views
jay_heng
NXP Employee
NXP Employee

I am working on a workaround way to detect i.MX RT phantom part, it should be ready by this week

https://github.com/JayHeng/imxrt-device-id

2,730 Views
ale1
Contributor II

Hi JayHeng

I am facing the same challenge as Jens, so I am looking forward to your workaround way to distinguish the iMXRT1062 from the iMXRT1064.

Best regards,

Arne Lehrmann

3,032 Views
diego_charles
NXP TechSupport
NXP TechSupport

Hi @jensseifr 

In the RT1170 we  have  the Chip Silicon Version Register (MISC_DIFPROG) 

For boundary scan (over JTAG) we have (talking just about RT1060) identification registers. Just search for the .bsdl file for your targeted part (NXP symbols and footprints) See the IDCODE register.

diego_charles_1-1664400189427.png

Does this works for you?

Best regards,

Diego.

 

 

0 Kudos
Reply

3,021 Views
jensseifr
Contributor II

Hi @diego_charles ,

thank you for your answer.

Unfortunately it doesn´t help, as i searched a chip register to read out during runtime by our 2nd Bootloader.

It´s written in the RM that there is an unique ID in the OCOTP-Register, but its not said where exactly to find and how to interprete this value.

jensseifr_0-1664437494606.png

Having a look at OCOTP by register view with IAR EWARM only the subregisters CFG0 to CFG6 hold values which may can be interpreted as such an ID. And these registers are described as "Configuration and Manufacturing Info" by the workbench.jensseifr_1-1664437783479.png

But i miss Information to interpret this values in the datasheets.

May those values contain what im looking for? If so can you help to interprete them?

A full register description of every bit(group) would be helpfull.

Best Regards Jens

2,964 Views
diego_charles
NXP TechSupport
NXP TechSupport

Hi @jensseifr 

Many thanks for your patience.

RT10xx doesn't contain standard part id register, so you cannot read register to know it is RT106x, we have to use some tricky way:

ID register in RT10xx  can be used to detect family part (actually is means silicon version by time), but not for phantom part (eg, RT1061 or RT1062)

  • RT1011 - RT1010 family
  • RT1015/1021/1024 - RT1020 family
  • RT1051/1052 - RT1050 family
  • RT1061/1062/1064 - RT1060 family
i.MXRT ID register ID register value  
i.MXRT1011 USB_ANALOG->DIGPROG 0x006D0000  
i.MXRT1015 USB_ANALOG->DIGPROG 0x006B0000  
i.MXRT1021 USB_ANALOG->DIGPROG 0x006B0000  
i.MXRT1024 USB_ANALOG->DIGPROG 0x006B0000  
i.MXRT105x USB_ANALOG->DIGPROG 0x006A0001  
i.MXRT106x USB_ANALOG->DIGPROG 0x006C0000  
i.MXRT1064 USB_ANALOG->DIGPROG 0x006C0000  

 

Just a little note :The CFG0&CFG1 is i.MX RT device UID (64bits), it is different on each chip.

Best regards,

Diego

2,674 Views
ale1
Contributor II

Hi Diego,

Just like Jens I am trying to find a way to distinguish the iMXRT1062 from the iMXRT1064 at runtime.

When the iMXRT106x is configured for “Serial NOR Flash Boot via FlexSPI” then the boot ROM reads the FlexSPI NOR configuration parameters from either FlexSPI (iMXRT1062) or FlexSPI2 (iMXRT1064). It is not clear to me if the boot ROM code itself is different or where the boot ROM gets to know which peripheral to initialize?

Using the MCUXpresso Secure Provisioning Tool the configure-memory command also initializes different address spaces depending on the chip – even if I use the same flash loader RAM code.

blhost -p COM8,115200 fill-memory 0x2000 4 0xC0000008 word

blhost -p COM8,115200 configure-memory 9 0x2000

blhost -p COM8,115200 list-memory

Does the flash loader RAM code use boot ROM functionality to initialize the external memory? If not how does the flash loader RAM code initialize different memory regions depending on the chip?

 

Best regards,

ALE

0 Kudos
Reply

2,668 Views
diego_charles
NXP TechSupport
NXP TechSupport

Hi @ale1 

I have not seen if @jay_heng  had chance to provide us more about this.

But maybe the simplest way I could think to differentiate between i.MX RT1060 and i.MX RT1064, considering a default XIP memory setup, is to identify if code is being executed at 0x6000_xxxx (RT1060) or at 0x7000_xxxx (RT1064)

According to my experience i.MX RT1060 and i.MX RT1064 boot ROM code is similar but not the same.

The flash loader should be utilizing boot ROM  API functions to initialize the external memories. For example the 0xC0000008 is a parameter that  ROM API receives to initialize the NOR flash memory. See the last example code at the end of  i.MX RT1064 RM section 9.13.2 FlexSPI NOR APIs.

Best regards, 

Diego

0 Kudos
Reply