I have seen this link " DS-5 Development Studio | SoC Bring-Up Using the Platform Configuration Editor PCE – ARM Developer " for new SoC Bring up in DS-5 was using DSTREAM.
Can I use RealView ICE instead of DSTREAM for new SoC bring up.
Kindly guide me .
Shravan,
Yes, if you want to connect a debugger via JTAG then your SoC needs to be in a state which will enable JTAG.
Which SoC is this?
Ta,
Matt
Hi Matt ,
Thanks for the reply, I have configured the SoC in JTAG mode .
When tried “Platform Configuration” on Evaluation board called “ Versatile Platform Baseboard for ARM926EJ-S” . I can successfully save the configuration and debug further . Below is the output log.
ARM DS-5 v5.25.0, build number5250010
Beginning Autodetection
--- --- ---
Counting devices:
DR Chain [1024]:
[00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110]
Device Count: 1
Reading IDCODEs:
DR Chain [32]:
[00000111100100100110111100001111]
Device 0 has IDCODE = 0x07926F0F
IR Chain [1024]:
[11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110001]
Device 0 has IR Length = 4
Getting device names:
Device 0 detected as ARM926EJ-S
Scanchain:
JTAGDeviceInfo[IDCODE = 0x07926F0F, IR Length = 4, Name = ARM926EJ-S]
Connected to DTSL layer
Disconnected from DTSL layer
Autodetection Complete
But when I try the same on our own manufacture board called moschip, Which has ARM1176JZF-S core I am always getting this below error
[00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]
Device Count: 0
Autodetection failed: Failed to measure scan chain length
I am not sure what is “scan chain length” error. I have googled it but i hadn't got any useful information. Can you let me know why this error would occur ?
With regards,
-Shravan
Hi alugala,
The process PCE goes through to detect your platform is essentially a sequence of bit shifts across JTAG which the JTAG specification alludes to as "blind interrogation".
What we get out of it is a number of devices, then a known set of codes which identify those devices (the number is used as a cross-check) and then a known length for each device. It is important to know this since the debugger must have this information in order to build the sequences to talk to a particular device, by putting other devices in "bypass". If we cannot ascertain any of that information, then we cannot use JTAG as JTAG was intended.
For your chip, we see that the first step is just returning a lot of 0's instead of the known bitpattern prefixed with some extra 0's - this usually implies that the device is not powered, clocked or otherwise responsive to the shifts the debugger is making. Some chips take a while after being reset to be responsive. You could try going to the "Probe Configuration" tab in PCE and modifying the "nTRSTPostResetTime" value to something greater than 10ms. You could also reduce your JTAG clock speed in the Autodetect tab, to see if that helps. However some devices do need some extra assistance such as security unlocks, or board-specific methods to achieve the process above, and simply that is beyond the scope of PCE.
Although PCE can be extended to effect those methods, it is usually by far the easiest and most reliable way is to simply manually create the JTAG scan chain with drag & drop.
If you click the button at the top right of the Devices folder (it looks like a blue list with a yellow '+' symbol), it will expand a list of devices. Find the ARM1176JZF-S device (it's under "CoreExecutable". Don't use the _JTAG-AP one) and drag it into the Devices folder. That should be all you need, unless there're trace components to also add. You usually can find all this information in your SoC documentation and build the platform configuration manually, and you may need to look into the PCB design to see if any other external devices are also connected (such as flash devices or configurable power ICs). Those can be added by right clicking on the Devices folder and selecting "Add Custom Device" - you'll need to manually enter the IR length, which is in the aforementioned documentation.
Thanks,
After changing the JTAG clock I was getting the below output . Once I am getting option 1 or option 2 . Most of time I am getting option 2.
option 1 :
JTAGDeviceInfo[IDCODE = 0x4BA00477, IR Length = 4, Name = ARMCS-DP]
Failed to power up ARMCS-DP
option 2 :
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111]
Device Count: 512
Autodetection failed: Measured IR length is too small
Can you kindly help me in providing information about this errors .
After changing the Jtag clock to 10MHz or 5MHz . I am getting the below log.
[00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100]
Device Count: 2
DR Chain [64]:
[0100101110100000000001000111011100000011011100100111000010010011]
Device 0 has IDCODE = 0x4BA00477
Device 1 has IDCODE = 0x03727093
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110001010001]
Device 0 has IR Length = 2
Device 1 has IR Length = 4
Can you help me , how to rectify the error ' Measured IR length is too small ' .
Hi Shravan,
It looks like a similar problem. Device 0 is obviously an ARM DAP, so that's good - we know the IR length on the DAP is 4 bits, so it's obviously wrong. What's coming out there is that the other TAP (0x03727093) is not responding correctly.
Just from the chain I can tell this is a Xilinx Zynq. Is there any reason you're not using the bundled configuration? You should be able to just connect to it without creating your own platform.
If that isn't working for you, you can simply add "ARMCS-DP" and then an "UNKNOWN_6". If you right click the ARMCS-DP it will give you an option to enumerate APs and detect devices from that point (without doing the blind interrogation step).