From 7d1a222eaa8cb0965446ad0e745271c070521e78 Mon Sep 17 00:00:00 2001
From: "Suren A. Chilingaryan" <csa@dside.dyndns.org>
Date: Fri, 26 Jul 2013 18:30:47 +0200
Subject: Support offseted BARs in the xilinx2 test app

---
 apps/xilinx2.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/apps/xilinx2.c b/apps/xilinx2.c
index 30e0f94..757c388 100644
--- a/apps/xilinx2.c
+++ b/apps/xilinx2.c
@@ -35,8 +35,8 @@ much extra time */
 
 //#define WR(addr, value) { val = value; pcilib_write(pci, BAR, addr, sizeof(val), &val); }
 //#define RD(addr, value) { pcilib_read(pci, BAR, addr, sizeof(val), &val); value = val; }
-#define WR(addr, value) { *(uint32_t*)(bar + addr) = value; }
-#define RD(addr, value) { value = *(uint32_t*)(bar + addr); }
+#define WR(addr, value) { *(uint32_t*)(bar + addr + offset) = value; }
+#define RD(addr, value) { value = *(uint32_t*)(bar + addr + offset); }
 
 static void fail(const char *msg, ...) {
     va_list va;
@@ -77,6 +77,9 @@ int main() {
     void* volatile bar;
     uintptr_t bus_addr[BUFFERS];
 
+    pcilib_bar_t bar_tmp = BAR; 
+    uintptr_t offset = 0;
+
     pcilib_kmem_flags_t clean_flags = PCILIB_KMEM_FLAG_HARDWARE|PCILIB_KMEM_FLAG_PERSISTENT|PCILIB_KMEM_FLAG_EXCLUSIVE;
 
 #ifdef ADD_DELAYS
@@ -104,6 +107,8 @@ int main() {
 	fail("map bar");
     }
 
+    pcilib_detect_address(pci, &bar_tmp, &offset, 1);
+
 	// Reset
     WR(0x00, 1)
     usleep(1000);
@@ -190,7 +195,6 @@ int main() {
     }
     gettimeofday(&end, NULL);
 
-
 #ifdef CHECK_RESULT    
     pcilib_kmem_sync_block(pci, kbuf, PCILIB_KMEM_SYNC_FROMDEVICE, 0);
 
-- 
cgit v1.2.3