diff options
| author | Ataberk <olgunataberk@gmail.com> | 2024-05-02 17:22:05 +0200 |
|---|---|---|
| committer | Ataberk <olgunataberk@gmail.com> | 2024-05-02 17:22:05 +0200 |
| commit | 7721980589f4c7fa811689e815a77d63f2556497 (patch) | |
| tree | ded507bcfb0aeddb7ef647dd3888ef93ff12e630 /sources/api/board.cpp | |
| parent | 82b4ae69fa5fa8728b7aa9a513a9a27fb14a5f78 (diff) | |
| download | dram-bender-7721980589f4c7fa811689e815a77d63f2556497.tar.gz | |
Add sources for U50 HBM2
Diffstat (limited to 'sources/api/board.cpp')
| -rw-r--r-- | sources/api/board.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/sources/api/board.cpp b/sources/api/board.cpp index db990ca..d2d2047 100644 --- a/sources/api/board.cpp +++ b/sources/api/board.cpp @@ -6,9 +6,10 @@ #include <fcntl.h> #include <string.h> -BoardInterface::BoardInterface(IFACE iface_type) +BoardInterface::BoardInterface(IFACE iface_type, int dimm_select) { this -> iface_type = iface_type; + this -> dimm_select = dimm_select; } BoardInterface::~BoardInterface() { @@ -24,23 +25,31 @@ int BoardInterface::init() { case IFACE::XDMA: { - int fpga_fd = open(TO_FPGA_DEFAULT.c_str(), O_RDWR); + int fpga_fd; + if (dimm_select == 0) + fpga_fd = open(TO_FPGA_DEFAULT.c_str(), O_RDWR); + else + fpga_fd = open("/dev/xdma0_h2c_1", O_RDWR); + if(fpga_fd<0) { std::cerr << "Open to card failed!" << std::endl; return 1; } else - std::cout << "Opened " << TO_FPGA_DEFAULT << " -> " << fpga_fd << std::endl; + std::cout << "Opened " << (dimm_select == 0 ? TO_FPGA_DEFAULT : "/dev/xdma0_h2c_1") << " -> " << fpga_fd << std::endl; to_card = fpga_fd; - fpga_fd = open(FROM_FPGA_DEFAULT.c_str(), O_RDWR); + if (dimm_select == 0) + fpga_fd = open(FROM_FPGA_DEFAULT.c_str(), O_RDWR); + else + fpga_fd = open("/dev/xdma0_c2h_1", O_RDWR); if(fpga_fd<0) { std::cerr << "Open to host failed!" << std::endl; return 1; } else - std::cout << "Opened " << FROM_FPGA_DEFAULT << " -> " << fpga_fd << std::endl; + std::cout << "Opened " << (dimm_select == 0 ? FROM_FPGA_DEFAULT : "/dev/xdma0_c2h_1") << " -> " << fpga_fd << std::endl; from_card = fpga_fd; // allocate page size aligned X page size regions to our buffers if (posix_memalign((void **)&send_buf, 4096 /*alignment */ , SEND_BUF_SIZE + (4096-(SEND_BUF_SIZE % 4096))) != 0) @@ -104,6 +113,7 @@ int BoardInterface::xdma_send(void* data, const uint size) while (count < size) { /* write data to file from memory buffer */ rc = write(fd, buf, size); + // std::cout << rc << std::endl; assert(rc == size || rc == 0); count += rc; } |
