After some trouble I got the scan chain to work, but I can not control some pins.
I have:
BSDL file from November 23, 2016.
AN5378 Rev 0, 04/2019
The board is un-programmed, and RCW is set up to be read from eMMC, that is empty.
I program the TDR register, do 2000 Idle clocks.
I can do a lot of tests, but when I use some pins, it looks like the boundary scan cells are not connected to the pin, I can set it to high and low and read back correct, but with oscilloscope there are no activity.
The pin I have tested mostly is AG2.
I can boot from a SD-card, when I do that, I can from software, control the pin AG2. So I think the board is ok.
BR Lars Thestrup
Solved! Go to Solution.
Success.
Used the suggested TDR, and it worked.
When I compared it with the value I used, I could see a lot of differences, many because of different hardware.
Others was in "reserved must be zero" according to AN5378.
I ended up with chancing only reserved bit 78 and 50, then all the errors disappeared.
The new TDR = 0x000000002C0002D60000061408006D10005044400
If a new version of AN5378, where bit 78 and 50 are explained, exist. I would like to have a copy.
Best regards
Lars Thestrup
May I ask where you found that BSDL file? I couldn't find a LS1046A BSDL file anywhere. It would be very much appreciated if you could share a link.
I have looked in my mail archive, and can see I got it from the hardware developer.
where he got it I don't know, maybe from a NXP source.
I am unsure if I am allowed to share the file, maybe NXP can answer?
Please execute meander test for AG2 pin and provide corresponding digital scope trace.
How exactly the pin is connected?
Can you replicate the issue on LS1046ARDB?
Pin AG2 is only connected to a connector, so it is easy to measure.
I don't have any eval-board.
When I command pin AG2 to go up and down via boundary scan, it stays on zero Volts, so a scope trace will not show much.
When I command the pin up or down via linux: gpioset gpiochip2 0=1, the level of the pin goes to 2V5.
If I set the pin high from linux, then connect the boundary scan equipment and start the test program, then when I set the cpu in EXTEST mode the pin drops to zero and stays at zero when I do a loop commanding it to go up and down, at the end I do a TAPRESET and the pin goes up again.
If I set it to zero from linux, then it stays at zero all the time.
I have tried to set all 627 boundary scan cells to 1, but no success.
BR Lars
1) Please try to connect pull-up to the AG2
2) What are other pins behaving similarly to AG2?
Have tried with 800 Ohm pull up, then the scope shows pin goes high during test and the test result is "Stuck at high".
Remove the resistor and the test says "Stuck at low".
The test set the pin high and low, that can't be seen on the scope.
To me it looks like the input cell is ok, but the control cell that should set the output active is not working.
Other pins with problem:
AF2, Y4,Y3,AF3,AF4,AE3,AD3,U3,
also these unconnected pins:
W4,AC3,AA2,Y1,W1,AB1,AB4,AC4,AG4,AE1,AD1,AC1,AC2,AF1,AG3,AH4,AH3,W3
BR Lars
You said "when I set the cpu in EXTEST mode the pin drops to zero and stays at zero when I do a loop commanding it to go up and down" which loop command? Is it using linux command or extest command?
You said "I have tried to set all 627 boundary scan cells to 1, but no success." does this means you are not able to toggle any pins? and you mentioned "I can do a lot of tests, but when I use some pins, it looks like the boundary scan cells are not connected to the pin" both the above statement looks contradictory. Please clarify.
Please share the commands you are using for toggling these pins.
I use boundary scan software and hardware from a German company Göpel.
In that framework I can make tests where I can control the cells in the boundary scan chain.
So the answer is "a extest command"
All the bi-directional pins has a control-cell, when writing a 1 to the control-cell, then the output cell on the pin goes active an will drive the cell. Filling ones into all cells will will set all pins active and output a 1. If the pin in question then goes up, then we have an error in the BSDL file, but the pin stayed down, so it was not that error. When doing this test I have a lot of pins driving against other drivers, I can see the input power to the board go up. That is not good for the chips, so I can not move the scope probe around. I have to terminate the test quickly.
I have added a small test file. showing pin L2 working fine and AG2 not working
BR Lars
Any news?
I am not familiar with the code you shared. In code in can see length of TDR register but not for other lenght (Chain length, IR length etc.) May be those are embedded in tool itself.
Can customer use TDR register value as "0x1494a52a525294800000141480016d10005304600"
Do customer have CWTAP? If yes i can share tcl script to toggle both the pins.
After uploading the IOCONFIG register value
do customer check if JTAG chain is complete (Whatever feed from TDI is received at TDO pin)?
Success.
Used the suggested TDR, and it worked.
When I compared it with the value I used, I could see a lot of differences, many because of different hardware.
Others was in "reserved must be zero" according to AN5378.
I ended up with chancing only reserved bit 78 and 50, then all the errors disappeared.
The new TDR = 0x000000002C0002D60000061408006D10005044400
If a new version of AN5378, where bit 78 and 50 are explained, exist. I would like to have a copy.
Best regards
Lars Thestrup