icgrp / bert

Bitstream Embedded RAM Transfusion
ISC License
9 stars 4 forks source link

Supports on embedded linux #7

Open raindroid opened 2 years ago

raindroid commented 2 years ago

Hi, thanks for the amazing tool. I am not sure if this is any bug, but I am wondering if XBERT can be used on a mpsoc embedded Linux system with the FPGA manager. In detail, I used the hosted_tool to generate *.mdd and *.llfiles and am able to update the full bitstream manually. The embedded piece is based on xilfpga and the wiki said the xilfpga is designed to run on standalone BSPs, so I am curious if I can modify the XBERT and use it in a Linux environment instead? Thanks

dehon commented 2 years ago

On Aug 17, 2021, at 1:23 AM, raindroid @.***> wrote:

Hi, thanks for the amazing tool. I am not sure if this is any bug, but I am wondering if XBERT can be used on a mpsoc embedded Linux system with the FPGA manager. In detail, I used the hosted_tool to generate .mdd and .ll files and am able to update the full bitstream manually. The embedded piece is based on xilfpga and the wiki https://urldefense.com/v3/__https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841910/Xilfpga__;!!IBzWLUs!EkUDGPJ9H6_BnrssxeD-ARSISAiN4KgbqbnSq_cux1gZcsyEVq4FK_QLpo0gerVJMg$ said the xilfpga is designed to run on standalone BSPs, so I am curious if I can modify the XBERT and use it in a Linux environment instead? Thanks

Thanks for your interest.

We have been working with Linux this past summer, and have used XRT and OpenCL/Vitis interface (and, I believe, FPGA Manager which is under those things) to load partial bitstreams.
We have not found a way to read partial bitstreams (which would be necessary to get all the BERT features) using the Linux interface. I don’t think we’ve automated a version of bert.c that runs on top of XRT (FPGA Manager), yet.

We are currently working out some (orthogonal, we think) issues that we ran into while working with Linux and DFX.

So, I think the answer is: we believe this is possible, and have some work on it, but it isn’t trivial, so it will take a bit longer.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://urldefense.com/v3/__https://github.com/icgrp/bert/issues/7__;!!IBzWLUs!EkUDGPJ9H6_BnrssxeD-ARSISAiN4KgbqbnSq_cux1gZcsyEVq4FK_QLpo102HyyOQ$, or unsubscribe https://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/AATPQWSJ6KSCN5ZKSYETR6TT5HW5RANCNFSM5CJCPUTA__;!!IBzWLUs!EkUDGPJ9H6_BnrssxeD-ARSISAiN4KgbqbnSq_cux1gZcsyEVq4FK_QLpo3kSJFrJw$. Triage notifications on the go with GitHub Mobile for iOS https://urldefense.com/v3/__https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675__;!!IBzWLUs!EkUDGPJ9H6_BnrssxeD-ARSISAiN4KgbqbnSq_cux1gZcsyEVq4FK_QLpo1uferPHw$ or Android https://urldefense.com/v3/__https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email__;!!IBzWLUs!EkUDGPJ9H6_BnrssxeD-ARSISAiN4KgbqbnSq_cux1gZcsyEVq4FK_QLpo1Now3NQQ$.

matth2k commented 2 years ago

For embedded linux, you can generate bitstreams on a host machine (all you need is the .dcp, .mdd and .ll). Then sideload them onto the MPSOC.

Then run fpgautil -b bert_bitstream.bit -f Partial to write to the BRAM.

You can not do any readback, but you can at least set up BRAM configurations with the bitstream_gen tool.