Sorry, you need to enable JavaScript to visit this website.

AES-ZU3EGES-1-SK-G-SK_Tutorial_2016_4: Mask poll failed at ADDRESS: 0XFD4023E4 MASK: 0x00000010

Solved
6 posts / 0 new
techwalla12's picture
techwalla12
Junior(1)
AES-ZU3EGES-1-SK-G-SK_Tutorial_2016_4: Mask poll failed at ADDRESS: 0XFD4023E4 MASK: 0x00000010

Hi,
 
I've recently received an UltraZed and have been working my way through the Avnet AES-ZU3EGES-1-SK-G-SK_Tutorial_2016_4.
 
When I went to run the first Hello_UltraZed project - Run As > Launch on Hardware (System Debugger). I got the following error.
 
Timeout Reached. Mask poll failed at ADDRESS: 0XFD4023E4 MASK: 0x00000010.
 
I thought it could be something to do with the board support package that I had created earlier in the tutorial.
 
I decided to ignore my work and launch the SDK and switch to the supplied tutorial's .sdk workspace which had a completed version of the tutorial supplied by Avnet.
 
This had the exactly the same problem.
 
After a bit of googling, I found a suggestion and figured out by trial and error a temporary work around that worked.
 
1) Power Cycle the UltraZed
2) In the design_1_wrapper_hw_platform_0 project, edit the psu_init.c file, comment out the following line as shown and save the file.
//mask_poll(SERDES_L0_PLL_STATUS_READ_1_OFFSET,0x00000010U);
3) In the design_1_wrapper_hw_platform_0 project, edit the psu_init.tcl file, comment out the following line as shown and save the file
   # mask_poll 0XFD4023E4 0x00000010
4) Right click on the project you want to run and Run As > Launch on Hardware (System Debugger)
 
This way I was able to get all the tutorials working.
 
You can't do Run As > Launch on Hardware (System Debugger) a second time as you get the error again.
 
Behind the scenes, the SDK regularly changes the two edited files back to what they were, so you have to repeatedly do the edits.
 
Any suggestions for a permanent fix?
 
 
In other news, UltraZed_EG_Starter_Kit_Tutorial_Vivado_2016_4.pdf has the following errata.
 
1) Section 9.2 Testing the Gigabit Ethernet Port page 38
 
Instruction is to  right click on the PS_User_LED project. It should read Eth_Test and it state that it is the Eth_Test.elf executable that is loaded into DDR4.
 
Finally, for newbies like myself, it would be really helpful if in big bold letters the instructions stated that projects should be managed in a directory naming structure that does not use any space characters. The SDK does not work if there's a space in the directory name.
 
Thanks,
 
Mike
 
 
 

npoureh's picture
npoureh
Moderator(3)
1) After modifying the psu

1) After modifying the psu_init.tcl file, save it with a different name (for example psu_init_mod.tcl).

2) From SDK, select Run > Run Configuration. In the Run Configuration Dialog box, point to the modified psu_init_mod.tcl file instead of the default psu_init.tcl file. This will allow you to run the executable software mutiple times.

3) We will correct the PS_USER_LED typo use in the Ethernet section.

techwalla12's picture
techwalla12
Junior(1)
It worked

Thanks for this, it's helped the problem a lot. I no longer need to keep editing the  psu_init.tcl.
I still get a problem if I do Run As > Launch on Hardware (System Debugger) a second time.
 
After the message to say "Debug session is already active. Do you want to relaunch", I tick OK.
 
Shortly afterwards, I get "Error while launching program: Memory write error at 0x0. Instruction transfer timeout"
 
At least now I can simply power on reset between runs and don't have to do any editing.
 
Thanks,
 
Mike

galaviel's picture
galaviel
Junior(0)
Not working ...(Vivado 2017.2)

Hi,
I've followed the above instructions with no success. Getting the below Errors. 
I thought to debug the application and placed some breakpoints, but it seems the code never gets loaded into the processor.
Note this is with Vivado 2017.2 which is different from 2016.4 though I cannot understand why this demo is so fragile this Vivado version difference will break it.
Any help appreciate otherwise this board is worthlesss....!!!
thanks, Gal.
----
 

11:15:04 INFO : Connected to target on host '127.0.0.1' and port '3121'.

11:15:04 INFO : Jtag cable 'Digilent JTAG-SMT2 210251A1B5D8' is selected.

11:15:04 INFO : 'jtag frequency' command is executed.

11:15:04 INFO : Sourcing of 'C:/Xilinx/SDK/2017.2/scripts/sdk/util/zynqmp_utils.tcl' is done.

11:15:04 INFO : Context for 'APU' is selected.

11:15:04 INFO : Cleared APU and A53 resets

11:15:04 INFO : Context for 'APU' is selected.

11:15:04 INFO : Hardware design information is loaded from 'C:/Users/avielg2/Documents/Vivado_Projects/ultrazed_eg_tutorial/ultrazed_eg_tutorial.sdk/design_1_wrapper_hw_platform_0/system.hdf'.

11:15:04 INFO : 'configparams force-mem-access 1' command is executed.

11:15:05 INFO : Context for processor 'psu_cortexa53_0' is selected.

11:15:05 INFO : Processor reset is completed for 'psu_cortexa53_0'.

11:15:05 ERROR : Memory write error at 0x0. Instruction transfer timeout

11:15:05 INFO : ----------------XSDB Script----------------

connect -url tcp:127.0.0.1:3121

source C:/Xilinx/SDK/2017.2/scripts/sdk/util/zynqmp_utils.tcl

targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 210251A1B5D8"} -index 1

reset_apu

targets -set -nocase -filter {name =~"APU*" && jtag_cable_name =~ "Digilent JTAG-SMT2 210251A1B5D8"} -index 1

loadhw -hw C:/Users/avielg2/Documents/Vivado_Projects/ultrazed_eg_tutorial/ultrazed_eg_tutorial.sdk/design_1_wrapper_hw_platform_0/system.hdf -mem-ranges [list {0x80000000 0xbfffffff} {0x400000000 0x5ffffffff} {0x1000000000 0x7fffffffff}]

configparams force-mem-access 1

targets -set -nocase -filter {name =~"*A53*0" && jtag_cable_name =~ "Digilent JTAG-SMT2 210251A1B5D8"} -index 1

rst -processor

dow C:/Users/avielg2/Documents/Vivado_Projects/ultrazed_eg_tutorial/ultrazed_eg_tutorial.sdk/hello_world_again/Debug/hello_world_again.elf

----------------End of Script----------------

 
 
 

galaviel's picture
galaviel
Junior(0)
And here is some more info ... from the XSCT Console ..

xsct% Info: Cortex-A53 #0 (target 10) Stopped at 0xffff0000 (Reset Catch)

Info: Cortex-A53 #0 (target 10) Stopped at 0x0 (Cannot resume. Cannot read 'pc'. Cannot read 'r0'. Instruction transfer timeout)

xsdb% 

Downloading Program -- C:/Users/avielg2/Documents/Vivado_Projects/ultrazed_eg_tutorial/ultrazed_eg_tutorial.sdk/hello_world_again/Debug/hello_world_again.elf

section, .text: 0x00000000 - 0x00001643

section, .init: 0x00001680 - 0x000016b3

section, .fini: 0x000016c0 - 0x000016f3

section, .note.gnu.build-id: 0x000016f4 - 0x00001717

section, .rodata: 0x00001718 - 0x0000175f

section, .rodata1: 0x00001760 - 0x0000177f

section, .sdata2: 0x00001780 - 0x0000177f

section, .sbss2: 0x00001780 - 0x0000177f

section, .data: 0x00001780 - 0x00002067

section, .data1: 0x00002068 - 0x0000207f

section, .ctors: 0x00002080 - 0x0000207f

section, .dtors: 0x00002080 - 0x0000207f

section, .eh_frame: 0x00002080 - 0x00002083

section, .mmu_tbl0: 0x00003000 - 0x0000300f

section, .mmu_tbl1: 0x00004000 - 0x00005fff

section, .mmu_tbl2: 0x00006000 - 0x00009fff

section, .preinit_array: 0x0000a000 - 0x00009fff

section, .init_array: 0x0000a000 - 0x0000a007

section, .fini_array: 0x0000a008 - 0x0000a047

section, .sdata: 0x0000a048 - 0x0000a07f

section, .sbss: 0x0000a080 - 0x0000a07f

section, .tdata: 0x0000a080 - 0x0000a07f

section, .tbss: 0x0000a080 - 0x0000a07f

section, .bss: 0x0000a080 - 0x0000a0bf

section, .heap: 0x0000a0c0 - 0x0000c0bf

section, .stack: 0x0000c0c0 - 0x0000f0bf

 

  0%    0MB   0.0MB/s  ??:?? ETA

aborting, 2 pending requests... 

aborting, 1 pending requests... 

Failed to download C:/Users/avielg2/Documents/Vivado_Projects/ultrazed_eg_tutorial/ultrazed_eg_tutorial.sdk/hello_world_again/Debug/hello_world_again.elf

 

galaviel's picture
galaviel
Junior(0)
Solved - must comment out 1 more files + another Gotcha

Search and comment out not only in psu_init.c but also in psu_init_gpl.c .. !!
after that all is well.
perhaps this is something extra for Vivado 2017.2 which I'm using vs. 2016.4 which was allegedly used to developed the Tutorial.
Another Gotcah is that the PDF (UltraZed-EG Starter Kit Tutorial (Vivado 2016.4) Version 1.0 10 December 2016) shows two COM ports: COM17 and COM18 and tells you to open TeraTerm on the lower com port number (17).
On my PC those are COM4 AND COM5 so following this logic I opened a serial session to COM4 but in fact the output appears on COM5 (I tried that as well) so be sure to open TeraTerm on both .. and see where you get the output ... !!!!