Re: [OPAE] Main Memory Access from FPGA
Adler, Michael <michael.adler at intel.com> Thu, 07 Feb 2019 15:41:00 +0000
| Newsgroups | dev.linux.lists.opae |
|---|---|
| Message-ID | <[email protected]> |
--===============0503425511122732376== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable The CCI-P interface differentiates between MMIO (memory mapped I/O) and mai= n memory read/write requests. MMIO is an FPGA-side address space, mainly us= ed for implementing FPGA-side CSRs. Those CSRs are exposed in the software= =E2=80=99s address space but actually result in PCIe transactions to the FP= GA. CCI-P=E2=80=99s main memory read/write requests are exactly what you are as= king for: DMA to host main memory. The primary address space used for those= requests is a =E2=80=9Cphysical=E2=80=9D I/O address space that maps to ho= st physical addresses. It is also possible to use virtual addresses on the = FPGA that correspond to the software=E2=80=99s virtual address space. For t= hat you can use the MPF VTP extension. See section 3 of the tutorial<https:= //github.com/OPAE/intel-fpga-bbb/tree/master/samples/tutorial/03_ccip>. -Michael From: OPAE <opae-bounces(a)lists.01.org> on behalf of David Nicuesa <david.= nicuesa.aranda(a)gmail.com> Date: Thursday, February 7, 2019 at 9:53 AM To: "opae(a)lists.01.org" <opae(a)lists.01.org> Subject: [OPAE] Main Memory Access from FPGA Hi all, I'm getting started with the examples, specifically with the hello_world fr= om the intel-fpga-bbb<https://github.com/OPAE/intel-fpga-bbb/tree/master/sa= mples/tutorial/01_hello_world> repository. Everything works just fine but I= was wondering if it is possible for me to access the Main Memory (Not IO) = from the FPGA using the CCI protocol. I have an rtl to sum two vectors, so my idea was to provide the addresses f= or those two vectors from the software application, allocated in General Pu= rpose Memory. This way, ideally, the FPGA should be able to access those ve= ctors without having a shared buffer (MMIO). Is it possible to do this, maybe using some MPF extension? In case this is = not feasible, I should allocate a shared buffer in MMIO space and then comu= nicate the vectors through that buffer, right? Thanks! --===============0503425511122732376== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4 bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2 IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToy IDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5Okdlb3JnaWE7 DQoJcGFub3NlLTE6MiA0IDUgMiA1IDQgNSAyIDMgMzt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAq Lw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGlu Ow0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFt aWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7 bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVu ZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0 eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJs aW5lO30NCnAubXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNv LXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdp bi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6 MGluOw0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2Vy aWY7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7 DQoJZm9udC1mYW1pbHk6Ikdlb3JnaWEiLHNlcmlmOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0KLk1z b0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEw LjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFyZ2lu OjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3Jk U2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5r PSJibHVlIiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7R2VvcmdpYSZx dW90OyxzZXJpZiI+VGhlIENDSS1QIGludGVyZmFjZSBkaWZmZXJlbnRpYXRlcyBiZXR3ZWVuIE1N SU8gKG1lbW9yeSBtYXBwZWQgSS9PKSBhbmQgbWFpbiBtZW1vcnkgcmVhZC93cml0ZSByZXF1ZXN0 cy4gTU1JTyBpcyBhbiBGUEdBLXNpZGUgYWRkcmVzcyBzcGFjZSwgbWFpbmx5IHVzZWQgZm9yIGlt cGxlbWVudGluZyBGUEdBLXNpZGUgQ1NScy4gVGhvc2UgQ1NScw0KIGFyZSBleHBvc2VkIGluIHRo ZSBzb2Z0d2FyZeKAmXMgYWRkcmVzcyBzcGFjZSBidXQgYWN0dWFsbHkgcmVzdWx0IGluIFBDSWUg dHJhbnNhY3Rpb25zIHRvIHRoZSBGUEdBLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtHZW9yZ2lhJnF1b3Q7 LHNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7R2VvcmdpYSZxdW90OyxzZXJpZiI+Q0NJ LVDigJlzIG1haW4gbWVtb3J5IHJlYWQvd3JpdGUgcmVxdWVzdHMgYXJlIGV4YWN0bHkgd2hhdCB5 b3UgYXJlIGFza2luZyBmb3I6IERNQSB0byBob3N0IG1haW4gbWVtb3J5LiBUaGUgcHJpbWFyeSBh ZGRyZXNzIHNwYWNlIHVzZWQgZm9yIHRob3NlIHJlcXVlc3RzIGlzIGEg4oCccGh5c2ljYWzigJ0g SS9PIGFkZHJlc3Mgc3BhY2UgdGhhdCBtYXBzDQogdG8gaG9zdCBwaHlzaWNhbCBhZGRyZXNzZXMu IEl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIHZpcnR1YWwgYWRkcmVzc2VzIG9uIHRoZSBGUEdB IHRoYXQgY29ycmVzcG9uZCB0byB0aGUgc29mdHdhcmXigJlzIHZpcnR1YWwgYWRkcmVzcyBzcGFj ZS4gRm9yIHRoYXQgeW91IGNhbiB1c2UgdGhlIE1QRiBWVFAgZXh0ZW5zaW9uLiBTZWUNCjxhIGhy ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PUEFFL2ludGVsLWZwZ2EtYmJiL3RyZWUvbWFzdGVyL3Nh bXBsZXMvdHV0b3JpYWwvMDNfY2NpcCI+DQpzZWN0aW9uIDMgb2YgdGhlIHR1dG9yaWFsPC9hPi48 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7R2VvcmdpYSZxdW90OyxzZXJpZiI+PG86cD4mbmJzcDs8L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5 OiZxdW90O0dlb3JnaWEmcXVvdDssc2VyaWYiPi1NaWNoYWVsPG86cD48L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0dl b3JnaWEmcXVvdDssc2VyaWYiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYgc3R5 bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMu MHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJm b250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj5Gcm9tOiA8L3NwYW4+PC9iPjxzcGFuIHN0eWxl PSJmb250LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj5PUEFFICZsdDtvcGFlLWJvdW5jZXNAbGlz dHMuMDEub3JnJmd0OyBvbiBiZWhhbGYgb2YgRGF2aWQgTmljdWVzYSAmbHQ7ZGF2aWQubmljdWVz YS5hcmFuZGFAZ21haWwuY29tJmd0Ozxicj4NCjxiPkRhdGU6IDwvYj5UaHVyc2RheSwgRmVicnVh cnkgNywgMjAxOSBhdCA5OjUzIEFNPGJyPg0KPGI+VG86IDwvYj4mcXVvdDtvcGFlQGxpc3RzLjAx Lm9yZyZxdW90OyAmbHQ7b3BhZUBsaXN0cy4wMS5vcmcmZ3Q7PGJyPg0KPGI+U3ViamVjdDogPC9i PltPUEFFXSBNYWluIE1lbW9yeSBBY2Nlc3MgZnJvbSBGUEdBPG86cD48L286cD48L3NwYW4+PC9w Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48 L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IaSBhbGwsIDxvOnA+PC9v OnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SSdtIGdldHRpbmcgc3RhcnRl ZCB3aXRoIHRoZSBleGFtcGxlcywgc3BlY2lmaWNhbGx5IHdpdGggdGhlIGhlbGxvX3dvcmxkIGZy b20gdGhlJm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL09QQUUvaW50ZWwtZnBnYS1i YmIvdHJlZS9tYXN0ZXIvc2FtcGxlcy90dXRvcmlhbC8wMV9oZWxsb193b3JsZCI+aW50ZWwtZnBn YS1iYmI8L2E+Jm5ic3A7cmVwb3NpdG9yeS4gRXZlcnl0aGluZyB3b3JrcyBqdXN0IGZpbmUgYnV0 DQogSSB3YXMgd29uZGVyaW5nIGlmIGl0IGlzIHBvc3NpYmxlIGZvciBtZSB0byBhY2Nlc3MgdGhl IE1haW4gTWVtb3J5IChOb3QgSU8pIGZyb20gdGhlIEZQR0EgdXNpbmcgdGhlIENDSSBwcm90b2Nv bC4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+SSBoYXZlIGFuIHJ0bCB0byBzdW0gdHdvIHZlY3RvcnMsIHNvIG15IGlkZWEgd2FzIHRv IHByb3ZpZGUgdGhlIGFkZHJlc3NlcyBmb3IgdGhvc2UgdHdvIHZlY3RvcnMgZnJvbSB0aGUgc29m dHdhcmUgYXBwbGljYXRpb24sIGFsbG9jYXRlZCBpbiBHZW5lcmFsIFB1cnBvc2UgTWVtb3J5LiBU aGlzIHdheSwgaWRlYWxseSwgdGhlIEZQR0Egc2hvdWxkIGJlIGFibGUgdG8gYWNjZXNzIHRob3Nl IHZlY3RvcnMgd2l0aG91dA0KIGhhdmluZyBhIHNoYXJlZCBidWZmZXIgKE1NSU8pLjxvOnA+PC9v OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8 L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JcyBpdCBwb3Nz aWJsZSB0byBkbyB0aGlzLCBtYXliZSB1c2luZyBzb21lIE1QRiBleHRlbnNpb24/IEluIGNhc2Ug dGhpcyBpcyBub3QgZmVhc2libGUsIEkgc2hvdWxkIGFsbG9jYXRlIGEgc2hhcmVkIGJ1ZmZlciBp biBNTUlPIHNwYWNlIGFuZCB0aGVuIGNvbXVuaWNhdGUgdGhlIHZlY3RvcnMgdGhyb3VnaCB0aGF0 IGJ1ZmZlciwgcmlnaHQ/PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPlRoYW5rcyE8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rp dj4NCjwvYm9keT4NCjwvaHRtbD4NCg== --===============0503425511122732376==--