Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue building OpenNIC on U55C #51

Open
vaniaprkl opened this issue Aug 22, 2023 · 8 comments
Open

Issue building OpenNIC on U55C #51

vaniaprkl opened this issue Aug 22, 2023 · 8 comments

Comments

@vaniaprkl
Copy link

Hi,
I was trying to build OpenNic targeting the U55C board using Vivado 2022.1 version and seeing this strange issue. I was hoping to get both ports going with DPDK driver so I gave the following build command with -num_phys_func 2 -num_cmac_port 2 stated in DPDK build suggestion.

../script$ vivado -mode batch -source build.tcl -tclargs -board au55c -tag build1 -synth_ip 1 -impl 1 -post_impl 1 -max_pkt_len 9000 -num_phys_func 2 -num_cmac_port 2

am I sending in wrong parameters for a 2 port 100G OpenNIC pipeline?

WARNING: [Vivado 12-818] No files matched '/disk2/opennic/open-nic-shell-u55c/open-nic-shell/build/au55c_build1/vivado_ip/clk_wiz_50Mhz/clk_wiz_50Mhz.xci'
WARNING: [Vivado 12-818] No files matched '/disk2/opennic/open-nic-shell-u55c/open-nic-shell/build/au55c_build1/vivado_ip/clk_wiz_50Mhz/clk_wiz_50Mhz.xci'
expected floating-point number but got "Unable to get value from speedsfile for keyword MM"
ERROR: [IP_Flow 19-3476] Tcl error in create_gui procedure for IP 'clk_wiz_50Mhz'. expected floating-point number but got "Unable to get value from speedsfile for keyword MM"
ERROR: [IP_Flow 19-3428] Failed to create Customization object clk_wiz_50Mhz
CRITICAL WARNING: [IP_Flow 19-5622] Failed to create IP instance 'clk_wiz_50Mhz'. Failed to customize IP instance 'clk_wiz_50Mhz'. Failed to load customization data
ERROR: [Common 17-69] Command failed: Create IP failed with errors

    while executing
"source ${ip_tcl_dir}/${ip}.tcl"
    invoked from within
"if {[file exists "${ip_tcl_dir}/${ip}_${board}.tcl"]} {
            source ${ip_tcl_dir}/${ip}_${board}.tcl
        } elseif {[file exists "${ip_tcl_d..."
    ("foreach" body line 30)
    invoked from within
"foreach ip $ips {
        # Pre-save IP name and its build directory to a global dictionary
        dict append ip_dict $ip ${ip_build_dir}/${ip}

   ..."
    ("dict for" body line 17)
    invoked from within
"dict for {module module_dir} $module_dict {
    set ip_tcl_dir ${module_dir}/vivado_ip

    # Check the existence of "$ip_tcl_dir" and "${ip_tcl_dir}/..."
    (file "build.tcl" line 255)
@wnew
Copy link

wnew commented Aug 23, 2023

Hi @vaniaprkl

I have just built successfully using the command you provided with both vivado 22.1 and 23.1

A response to this post seems to think it could be that you havent installed the Ultrascale+ MPSoC support: https://support.xilinx.com/s/question/0D52E00006xpnUeSAI/issue-in-adding-clocking-wizard-ip-in-design?language=en_US

This should be a checkbox option when you install Vivado.

@vaniaprkl
Copy link
Author

Hi wnew, Thanks for running the build test and responding quickly.

I reinstalled vivado ml standard 2022.1 with all the checkboxes ticked and it still failed. Screen of the install options attached. Going to test out 2023.1 next.

Screenshot 2023-08-23 at 9 22 39 AM

@vaniaprkl
Copy link
Author

Hi @wnew
2023.1 works !! so it is something to do with 2022.1 environment.

so I loaded the .mcs that the build created using hardware manager && "add configuration memory" and also put it through a cold reboot cycle.
The hardware device 04:00.0 came back after the cold reboot as this:

04:00.0 Network controller: Xilinx Corporation Device 903f
	Subsystem: Xilinx Corporation Device 0007
	Physical Slot: 3
	Flags: fast devsel, IRQ 5, NUMA node 0
	Memory at c5800000 (64-bit, non-prefetchable) [disabled] [size=256K]
	Memory at c5400000 (64-bit, non-prefetchable) [disabled] [size=4M]
	Capabilities: [40] Power Management version 3
	Capabilities: [60] MSI-X: Enable- Count=10 Masked-
	Capabilities: [70] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [1c0] Secondary PCI Express
	Capabilities: [1f0] Virtual Channel

Does this look right?
I'm hoping to get this loaded against the DPDK drivers but the bringup there (https://github.com/Xilinx/open-nic-dpdk Section7 ) mentions this need to show up at a memory controller.

@wnew
Copy link

wnew commented Aug 24, 2023

Good news, that is strange to me why it would only work in 2023.1 but maybe someone else can provide insights to that.

The one issue you might have with a 2023.1 build is the changed to the register mapping between the QDMA IP versions.

See @cneely-amd's answer to my question here: #46

@wnew
Copy link

wnew commented Aug 24, 2023

If you are interested in assisting a port to 2023.1 I am busy trying to figure out the difference in the mapping and we would need to update the driver.

Re the DPDK drivers I am only starting to look at those now.

@vaniaprkl
Copy link
Author

Thanks @wnew for your feedback. I am trying to get opennic running with 2022.1 since Xilinx recommended it as per their response to you. Might decide to go 2023 only if they are not able to provide a fix... hoping they'll.

@cneely-amd
Copy link
Collaborator

Hi @vaniaprkl

Sorry for the delayed reply. I experimentally ran the build for U55C version through Vivado this afternoon using Vivado 2021.2.1 and with also making one modification to src/system_config/vivado_ip/clk_wiz_50Mhz.tcl.

For the modification, I edited the Tcl to remove "-version 6.0", for example, like the following:

set clk_wiz_50Mhz clk_wiz_50Mhz
#create_ip -name clk_wiz -vendor xilinx.com -library ip -version 6.0 -module_name $clk_wiz_50Mhz -dir ${ip_build_dir}
create_ip -name clk_wiz -vendor xilinx.com -library ip -module_name $clk_wiz_50Mhz -dir ${ip_build_dir}

set_property -dict {
	CONFIG.PRIMITIVE {Auto} 

I only did one run to test this, and it looks like it is working. My Vivado run has finished place_design and is on route_design as I'm writing this reply without receiving any errors.

Best regards,
--Chris

@cneely-amd
Copy link
Collaborator

My post above was using: vivado -mode batch -source build.tcl -tclargs -board au55c to generate the project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants