Read Serial/ID Numbers from JTAG?

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

Read Serial/ID Numbers from JTAG?

4,216 Views
zengy
Contributor I

I see ISP/IAP commands can be used to read Serial Number and Identification Number. I would like to do this via JTAG instead. Is this possible? If so, what address holds these values? Thanks.

0 Kudos
Reply
10 Replies

4,160 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

Hi Zengy

user can also read Serial ID with FlashMagic.

https://www.flashmagictool.com/

For more, see FlashMagic help manual.

Have a nice day,

Jun Zhang

0 Kudos
Reply

4,204 Views
frank_m
Senior Contributor III

The user manual of your MCU should tell you the exact location/address. Those are registers in the SYSCON unit.

0 Kudos
Reply

4,198 Views
zengy
Contributor I

This is for the LPC1768. I can't seem to find this information in the User Manual (UM10360). I've searched for:
Identification Number
ID Number
Serial Number
Syscon
System Control
SCS

The SCS register only shows information on the oscillator: x400F C1A0. 

Could you kindly guide me to the documentation with the location where the Serial/Id Number can be found for this device? Thanks. 

 

0 Kudos
Reply

4,195 Views
frank_m
Senior Contributor III

At least in my LPC54xxx user manual, it is easy to find.

The 176x controllers are a bit older ... I only found this:

frank_meyer_0-1617279639342.png

 

0 Kudos
Reply

4,189 Views
zengy
Contributor I

Thanks. I'm able to read the JTAG ID as well as other memory locations just fine. I was hoping that I could find documentation on the location of the Serial Number and Identification Number in memory, but so far have been unable to do so. Can those values be read from a more modern LPC54xx via JTAG? If not maybe it's not possible at all.

0 Kudos
Reply

4,183 Views
frank_m
Senior Contributor III

Supposedly even with the "Memory View" in the debugger:

frank_meyer_0-1617283351712.png

 

0 Kudos
Reply

4,179 Views
converse
Senior Contributor V

@frank_m That is not the same thing. 
@zengy I wouldn’t be surprised if the serial number is generated on the fly by code. I.e. there is not a location that contains the value. NXP do not publish their ROM code or algorithm, so I think you are stuck. A workaround would be to have a function in your code dedicated to returning the serial number. You can then use  gdb script commands to execute that code from within the debugger and display the value. Not nice, but it would work.

0 Kudos
Reply

4,178 Views
frank_m
Senior Contributor III

You might be right. 

Not sure what the "JTAG ID CODE" right above is either.

I suppose the OP meant this ID code, which just identifies the MCU type. 

 

0 Kudos
Reply

4,171 Views
converse
Senior Contributor V

JTAG ID CODE is how a debugger identifies what it is talking to. Afaik it is define by ARM and will be the same for all Cortex-M3 devices (for example)

DEVICE ID 0 is defined by NXP and will be the same for all LPC1768 etc device

DEVICE ID 1 identifies the revision of the part

none of these is unique to a particular device.

@zengy is trying to get the unique device identifier (I think this is a 128 bit GUID)

 

 

0 Kudos
Reply

4,148 Views
frank_m
Senior Contributor III

> none of these is unique to a particular device.

Sure.

I have a hard time to come up with a use case for a unique ID requierd by the debugger.

A debugger (or other tool) usually needs the proper type ID for manipulations (erase, program, algorithms therefore, checks...).

My company uses post-build Hex/S19 patches to embed such unique or build-specific data in the application.

0 Kudos
Reply