Open qianyich opened 2 months ago
The problem seems to be solved by removing hbm signals in cyt_top template and shell_top template. I will update if that works.
Everything was built successfully. Then I loaded the .bit file through JTAG. I compiled and inserted the driver module successfully. I also compiled the sw program successfully, but running it gave me the following error. I ran the program with sudo privilege.
Why is the number of regions equal to 4? I just set N_REGIONS to 1. Also, I have several bitstreams under bitstream folder, which one should I load?
qianyich:[~/Coyote/examples_hw/build_hw_ddr]$ ls bitstreams/
cyt_top.bin cyt_top.bit cyt_top.ltx cyt_top_pblock_inst_shell_partial.bin cyt_top_pblock_inst_shell_partial.bit cyt_top_pblock_inst_shell_partial.ltx
root@rcl-server1:/home/qianyich/Coyote/examples_sw/build_sw/bin# ./test
-- PARAMS
-----------------------------------------------
Number of regions: 4
Hugepages: 1
Mapped pages: 1
Streaming: HOST
Number of repetitions (thr): 10000
Number of repetitions (lat): 100
Starting transfer size: 1024
Ending transfer size: 1048576
terminate called after throwing an instance of 'std::runtime_error'
what(): bThread could not be obtained, vfid: 1
dmesg after running program:
[ 997.271890] fpga device 0 opened, spid 7125, ref cnt 0
[ 997.271894] registration succeeded, cpid 2, hpid 7125, spid 7125
[ 997.271895] fpga_ioctl():reading config 0x100020000000f
[ 997.271898] fpga_mmap():fpga dev. 0, memory mapping config region at 382fe0130000 of size 10000
[ 997.271903] fpga_mmap():fpga dev. 0, memory mapping user ctrl region at 382fe0120000 of size 10000
[ 997.271905] x86/PAT: reserve_ram_pages_type failed [mem 0xa6b7a7000-0xa6b7a7fff], track 0x2, req 0x2
[ 997.271906] fpga_mmap():fpga dev. 0, memory mapping writeback regions at fffff000 of size 400
[ 997.271923] mmu_handler_gup():hpid found = 7125
[ 997.271925] mmu_handler_gup():map not present
[ 997.271933] tlb_get_user_pages():allocated 4096 bytes for page pointer array for 512 pages @0x00000000e689afe9
[ 997.271934] tlb_get_user_pages():pages=0x00000000e689afe9
[ 997.450225] tlb_get_user_pages():get_user_pages_remote(7f1dc0000, n_pages = 512, page start = 17c0000, hugepages = 1)
[ 997.450236] card_alloc():user card buffer allocated @ 40400000, n_pages 512, huge 1, device 0
[ 997.450237] tlb_create_map():creating new TLB entry, vaddr_fa 7f1dc0000, paddr 17c0000000, strm 1, cpid 2, hpid 7125, hugepage 1
[ 997.450239] fpga_ioctl():user mapping vFPGA 0 handled
[ 997.535862] tlb_create_unmap():unmapping TLB entry, vaddr_fa 7f1dc0000, hpid 7125, hugepage 1
dmesg after insert the driver module:
[ 604.406531] loading: Coyote PCIe driver ...
[ 604.406598] probe (pdev = 0x00000000f4c5b747, pci_id = 0x00000000a03fef92)
[ 604.406710] pci device node 000000006467c74f enabled
[ 604.406710] fpga device 0, pci bus 3b, slot 00
[ 604.406720] pci bus master capability enabled
[ 604.406724] enabling MSI-X
[ 604.406912] obtained 22 MSI-X irqs
[ 604.406912] pci request regions
[ 604.406914] pci regions obtained
[ 604.406915] mapping BAR 0, 1048576 bytes to be mapped
[ 604.406921] BAR0 at 0x382ff0000000 mapped at 0x000000002bfc2af3, length=1048576, (1048576)
[ 604.406922] BAR #1 is not present
[ 604.406922] mapping BAR 2, 65536 bytes to be mapped
[ 604.406926] BAR2 at 0xab000000 mapped at 0x00000000d5ad0dd1, length=65536, (65536)
[ 604.406926] BAR #3 is not present
[ 604.406927] mapping BAR 4, 268435456 bytes to be mapped
[ 604.406935] BAR4 at 0x382fe0000000 mapped at 0x00000000ea4921a7, length=268435456, (268435456)
[ 604.406936] sizeof(dma_addr_t) == 8
[ 604.406936] probing for h2c engine 0 at 00000000d5ad0dd1
[ 604.406938] engine ID = 0x1fc0, channel ID = 0
[ 604.406938] found h2c 0 engine at 00000000d5ad0dd1
[ 604.406940] engine 000000007f18f5ee name h2c alignments=0x00010140
[ 604.406941] engine_create():ioread32(0x00000000d5b572f8) = 0x00000001 (dummy read flushes writes).
[ 604.406941] probing for h2c engine 1 at 00000000e66c0f5c
[ 604.406943] engine ID = 0x1fc0, channel ID = 1
[ 604.406943] found h2c 1 engine at 00000000e66c0f5c
[ 604.406944] engine 000000007f54713e name h2c alignments=0x00010140
[ 604.406945] engine_create():ioread32(0x00000000b07d0cf3) = 0x00000001 (dummy read flushes writes).
[ 604.406946] probing for h2c engine 2 at 0000000059876676
[ 604.406947] engine ID = 0x1fc0, channel ID = 2
[ 604.406947] found h2c 2 engine at 0000000059876676
[ 604.406948] engine 00000000301d06cb name h2c alignments=0x00010140
[ 604.406949] engine_create():ioread32(0x00000000d450d92e) = 0x00000001 (dummy read flushes writes).
[ 604.406950] probing for c2h engine 0 at 0000000096afe810
[ 604.406951] engine ID = 0x1fc1, channel ID = 0
[ 604.406952] found c2h 0 engine at 0000000096afe810
[ 604.406953] engine 00000000599ca134 name c2h alignments=0x00010140
[ 604.406954] engine_create():ioread32(0x0000000055051458) = 0x00000001 (dummy read flushes writes).
[ 604.406954] probing for c2h engine 1 at 000000008b61b1e3
[ 604.406955] engine ID = 0x1fc1, channel ID = 1
[ 604.406956] found c2h 1 engine at 000000008b61b1e3
[ 604.406957] engine 0000000037d007a0 name c2h alignments=0x00010140
[ 604.406958] engine_create():ioread32(0x000000003e96b39e) = 0x00000001 (dummy read flushes writes).
[ 604.406958] probing for c2h engine 2 at 000000009d36d05d
[ 604.406959] engine ID = 0x1fc1, channel ID = 2
[ 604.406960] found c2h 2 engine at 000000009d36d05d
[ 604.406961] engine 000000002305b530 name c2h alignments=0x00010140
[ 604.406962] engine_create():ioread32(0x0000000058316cb5) = 0x00000001 (dummy read flushes writes).
[ 604.406962] found 6 engines
[ 604.406969] deployment static probe 000ff1ce
[ 604.406970] deployment shell probe 000ff1ce
[ 604.406972] detected 1 virtual FPGA regions, 2 FPGA channels
[ 604.406974] enabled AVX 1, enabled writeback 1
[ 604.406976] sTLB order 10, sTLB assoc 4, sTLB page size 4096
[ 604.406979] lTLB order 9, lTLB assoc 2, lTLB page size 2097152
[ 604.406981] enabled host streams 1, enabled card streams (mem) 1
[ 604.406982] enabled dynamic reconfiguration 0
[ 604.406983] enabled RDMA 0, port 0
[ 604.406984] enabled TCP/IP 0, port 0
[ 604.406985] creating sysfs entry ...
[ 604.412920] reconfig device regions allocated, major number 502
[ 604.412954] allocated memory for reconfig device
[ 604.413001] reconfiguration device created
[ 604.413002] reconfiguration device added
[ 604.413003] vFPGA device regions allocated, major number 501
[ 604.413011] allocated memory for fpga devices
[ 604.413133] allocated memory for descriptor writeback, vaddr ffff8b2f6b7a7000, paddr fffff000
[ 604.413165] virtual FPGA device 0 created
[ 604.413185] all virtual FPGA devices added
[ 604.413205] using IRQ#97 with vFPGA 0
[ 604.413214] using IRQ#120 with reconfiguration device
[ 604.413216] ioread32(0x000000000327547f) returned 0x00000000 (user_int_request).
[ 604.413217] ioread32(0x00000000c40215b5) returned 0x00000000 (channel_int_request)
[ 604.413218] probe returning 0
Hi, glad you want to use Coyote for your work. Number of regions is set to 4 as a default for this example software application. The runtime error sounds like it can't open all the regions it expects which makes sense if you set the number of regions to 1 for your synthesis. Could you try passing the correct number of regions as a parameter?
When I try to install the driver, it gave me the following:
[ 2678.408767] loading: Coyote PCIe driver ...
[ 2678.408838] probe (pdev = 0x00000000211ac513, pci_id = 0x000000004920a4d0)
[ 2678.408946] pci device node 00000000d071311d enabled
[ 2678.408947] fpga device 0, pci bus 3b, slot 00
[ 2678.408957] pci bus master capability enabled
[ 2678.408960] enabling MSI-X
[ 2678.409158] obtained 22 MSI-X irqs
[ 2678.409159] pci request regions
[ 2678.409161] pci regions obtained
[ 2678.409162] mapping BAR 0, 1048576 bytes to be mapped
[ 2678.409168] BAR0 at 0x382ff0000000 mapped at 0x000000004a4ddfc4, length=1048576, (1048576)
[ 2678.409168] BAR #1 is not present
[ 2678.409168] mapping BAR 2, 65536 bytes to be mapped
[ 2678.409172] BAR2 at 0xab000000 mapped at 0x000000009c11737d, length=65536, (65536)
[ 2678.409173] BAR #3 is not present
[ 2678.409173] mapping BAR 4, 268435456 bytes to be mapped
[ 2678.409312] BAR4 at 0x382fe0000000 mapped at 0x00000000e5a0870a, length=268435456, (268435456)
[ 2678.409313] sizeof(dma_addr_t) == 8
[ 2678.409313] probing for h2c engine 0 at 000000009c11737d
[ 2678.409315] engine ID = 0x1fc0, channel ID = 0
[ 2678.409315] found h2c 0 engine at 000000009c11737d
[ 2678.409316] engine 0000000072c6ed49 name h2c alignments=0x00010140
[ 2678.409318] engine_create():ioread32(0x00000000d291ae46) = 0x00000001 (dummy read flushes writes).
[ 2678.409319] probing for h2c engine 1 at 0000000084f2982f
[ 2678.409320] engine ID = 0x1fc0, channel ID = 1
[ 2678.409321] found h2c 1 engine at 0000000084f2982f
[ 2678.409322] engine 0000000081133421 name h2c alignments=0x00010140
[ 2678.409323] engine_create():ioread32(0x00000000844b6161) = 0x00000001 (dummy read flushes writes).
[ 2678.409323] probing for h2c engine 2 at 00000000867c618d
[ 2678.409324] engine ID = 0x1fc0, channel ID = 2
[ 2678.409325] found h2c 2 engine at 00000000867c618d
[ 2678.409326] engine 00000000908ea376 name h2c alignments=0x00010140
[ 2678.409327] engine_create():ioread32(0x00000000c203b279) = 0x00000001 (dummy read flushes writes).
[ 2678.409327] probing for c2h engine 0 at 00000000a74e27b6
[ 2678.409329] engine ID = 0x1fc1, channel ID = 0
[ 2678.409329] found c2h 0 engine at 00000000a74e27b6
[ 2678.409330] engine 00000000237f0c4a name c2h alignments=0x00010140
[ 2678.409331] engine_create():ioread32(0x000000008fc18df9) = 0x00000001 (dummy read flushes writes).
[ 2678.409332] probing for c2h engine 1 at 00000000d8796399
[ 2678.409333] engine ID = 0x1fc1, channel ID = 1
[ 2678.409334] found c2h 1 engine at 00000000d8796399
[ 2678.409335] engine 00000000c686cd5d name c2h alignments=0x00010140
[ 2678.409336] engine_create():ioread32(0x00000000d57f2577) = 0x00000001 (dummy read flushes writes).
[ 2678.409336] probing for c2h engine 2 at 0000000032afad0e
[ 2678.409337] engine ID = 0x1fc1, channel ID = 2
[ 2678.409338] found c2h 2 engine at 0000000032afad0e
[ 2678.409339] engine 000000007495fec0 name c2h alignments=0x00010140
[ 2678.409340] engine_create():ioread32(0x00000000883b34e5) = 0x00000001 (dummy read flushes writes).
[ 2678.409340] found 6 engines
[ 2678.409347] deployment static probe 000ff1ce
[ 2678.569048] deployment shell probe ffffffff
[ 2678.919859] detected -1 virtual FPGA regions, -1 FPGA channels
[ 2679.270685] enabled AVX 1, enabled writeback 1
[ 2679.796936] ------------[ cut here ]------------
[ 2679.796937] kernel BUG at /home/qianyich/Coyote/driver/fpga_dev.c:119!
[ 2679.796957] invalid opcode: 0000 [#1] SMP NOPTI
[ 2679.796969] CPU: 0 PID: 4051 Comm: kworker/0:0 Tainted: G OE 5.4.0-150-generic #167~18.04.1-Ubuntu
[ 2679.796988] Hardware name: Dell Inc. PowerEdge R740xd/04FC42, BIOS 2.4.8 11/26/2019
[ 2679.797007] Workqueue: events work_for_cpu_fn
[ 2679.797021] RIP: 0010:read_shell_config+0x113/0x42b [coyote_drv]
[ 2679.797035] Code: 83 e6 0f 48 89 70 30 48 8b 51 18 48 c1 ea 08 83 e2 0f 89 50 20 48 8b 49 18 48 c1 e9 14 83 e1 3f 48 89 48 08 48 83 f9 0c 74 02 <0f> 0b 41 bc 01 00 00 00 89 f1 48 c7 40 10 00 10 00 00 4c 89 e7 48
[ 2679.797069] RSP: 0018:ffffab13c8047dd8 EFLAGS: 00010206
[ 2679.797081] RAX: ffff940f40f822a0 RBX: ffff94023cc79418 RCX: 000000000000003f
[ 2679.797096] RDX: 000000000000000f RSI: 000000000000000f RDI: ffff940350c07480
[ 2679.797110] RBP: ffffab13c8047df8 R08: ffff9403510350c0 R09: ffff940350c07480
[ 2679.797124] R10: ffffab13c8047cd8 R11: 0000000000000001 R12: 0000000000000000
[ 2679.797138] R13: ffff94023cc79418 R14: ffff940f4b351000 R15: ffff940f4b3510b0
[ 2679.797153] FS: 0000000000000000(0000) GS:ffff940351000000(0000) knlGS:0000000000000000
[ 2679.797169] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2679.797181] CR2: 000055b2c9201138 CR3: 0000000adc85a004 CR4: 00000000007606f0
[ 2679.797195] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 2679.797209] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 2679.797223] PKRU: 55555554
[ 2679.797229] Call Trace:
[ 2679.797240] pci_probe+0x225/0x404 [coyote_drv]
[ 2679.797252] local_pci_probe+0x47/0xa0
[ 2679.797262] work_for_cpu_fn+0x1a/0x30
[ 2679.797271] process_one_work+0x20f/0x400
[ 2679.797281] worker_thread+0x22a/0x410
[ 2679.797291] kthread+0x121/0x140
[ 2679.797299] ? process_one_work+0x400/0x400
[ 2679.797309] ? kthread_park+0x90/0x90
[ 2679.797318] ret_from_fork+0x1f/0x40
[ 2679.797327] Modules linked in: coyote_drv(OE+) ebtable_filter ebtables xt_conntrack vboxnetadp(OE) vboxnetflt(OE) nf_conntrack_netlink nfnetlink xfrm_user xfrm_algo br_netfilter bridge stp llc vboxdrv(OE) aufs overlay ip6table_filter ip6_tables iptable_filter xt_MASQUERADE xt_nat xt_tcpudp xt_addrtype iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 bpfilter nls_iso8859_1 binfmt_misc intel_rapl_msr intel_rapl_common isst_if_common ipmi_ssif skx_edac nfit cdc_ether usbnet mii ftdi_sio x86_pkg_temp_thermal usbserial intel_powerclamp coretemp kvm_intel kvm rapl input_leds dell_smbios xclmgmt(OE) dcdbas wmi_bmof dell_wmi_descriptor intel_cstate bnxt_re ib_uverbs lpc_ich mei_me mei ipmi_si ipmi_devintf ipmi_msghandler acpi_power_meter mac_hid sch_fq_codel ib_iser rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp nfsd libiscsi scsi_transport_iscsi auth_rpcgss nfs_acl lockd grace parport_pc sunrpc ppdev lp parport ip_tables x_tables autofs4 btrfs zstd_compress raid10 raid456
[ 2679.797353] async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear mgag200 ses hid_generic enclosure drm_vram_helper i2c_algo_bit ttm crct10dif_pclmul drm_kms_helper crc32_pclmul usbhid syscopyarea ghash_clmulni_intel sysfillrect hid aesni_intel sysimgblt crypto_simd nvme fb_sys_fops mpt3sas cryptd raid_class glue_helper nvme_core drm ahci scsi_transport_sas bnxt_en tg3 libahci wmi
[ 2679.797597] ---[ end trace f453f4917d62fbe3 ]---
[ 2679.800690] RIP: 0010:read_shell_config+0x113/0x42b [coyote_drv]
[ 2679.800705] Code: 83 e6 0f 48 89 70 30 48 8b 51 18 48 c1 ea 08 83 e2 0f 89 50 20 48 8b 49 18 48 c1 e9 14 83 e1 3f 48 89 48 08 48 83 f9 0c 74 02 <0f> 0b 41 bc 01 00 00 00 89 f1 48 c7 40 10 00 10 00 00 4c 89 e7 48
[ 2679.800740] RSP: 0018:ffffab13c8047dd8 EFLAGS: 00010206
[ 2679.800752] RAX: ffff940f40f822a0 RBX: ffff94023cc79418 RCX: 000000000000003f
[ 2679.800766] RDX: 000000000000000f RSI: 000000000000000f RDI: ffff940350c07480
[ 2679.800780] RBP: ffffab13c8047df8 R08: ffff9403510350c0 R09: ffff940350c07480
[ 2679.800794] R10: ffffab13c8047cd8 R11: 0000000000000001 R12: 0000000000000000
[ 2679.800809] R13: ffff94023cc79418 R14: ffff940f4b351000 R15: ffff940f4b3510b0
[ 2679.800824] FS: 0000000000000000(0000) GS:ffff940351000000(0000) knlGS:0000000000000000
[ 2679.800840] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2679.800852] CR2: 000055b2c9201138 CR3: 0000000adc85a004 CR4: 00000000007606f0
[ 2679.800867] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 2679.800881] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 2679.800896] PKRU: 55555554
Hi @qianyich, thanks for your ongoing reports. Unfortunately, we are no longer actively supporting U280 as a platform. To begin with: Did you use coyote v1 or the current main-branch? Following the error print-out in your driver insertion, there seems to be something seriously wrong with the compilation (check [ 2679.796937] kernel BUG at /home/qianyich/Coyote/driver/fpga_dev.c:119! [ 2679.796957] invalid opcode: 0000 [#1] SMP NOPTI). We haven't encountered this yet. What we can offer to you is to apply for a user account on our HACC-cluster (https://github.com/fpgasystems/hacc), where we also have U280s. You could then try to build and deploy the design there.
Hi Coyote Maintainers:
I am a PhD student from Northeastern University in Boston, US. I am considering using Coyote RDMA part in our project to communicate with Mellanox RDMA NIC. I am currently trying the static shell, but I am encountering the following errors.
Vivado: 2022.1 Board: Alveo U280
Step to reproduce:
Error message when flow_comp.tcl is executed for shell compilation:
I double-checked the ddr_0 constraints for u280 and I think it is all correct, but I have no idea why the tool throws this error.