- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
You can access the FPGA peripherals through the bridges based on your connection in Platform Designer.
lets say you have a peripheral connected to h2f bridge. You can use ARM to access this IP through the h2f bridge offset + the IP offset in qsys.
Lets say you have a qsys IP, defined in a c code:
#define SYSID_BASE 0x10000
The h2f bridge can be accessed through this address:
#define ALT_AXI_FPGASLVS_OFST 0xC0000000
Then, you need to open your mem device in your linux system:
if( ( fd = open( "/dev/mem", ( O_RDWR | O_SYNC ) ) ) == -1 ) {
printf( "ERROR: could not open \"/dev/mem\"...\n" );
return( 1 );
}
Next, create the virtual memory:
virtual_base = mmap( NULL, HW_REGS_SPAN, ( PROT_READ | PROT_WRITE ), MAP_SHARED, fd, ALT_AXI_FPGASLVS_OFST );
After that, you can cast the pointer of system_ID to your virtual memory:
qsys_id_addr =virtual_base + ( ( unsigned long )( ALT_LWFPGASLVS_OFST + SYSID_BASE ) & ( unsigned long)( HW_REGS_MASK ) );
Finally, you should be able to use qsys_id_addr pointer to access your system ID IP in qsys:
printf("system ID = %x",*(uint32_t *)qsys_id_addr);
Hope this might help.
Thank you
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
You can access the FPGA peripherals through the bridges based on your connection in Platform Designer.
lets say you have a peripheral connected to h2f bridge. You can use ARM to access this IP through the h2f bridge offset + the IP offset in qsys.
Lets say you have a qsys IP, defined in a c code:
#define SYSID_BASE 0x10000
The h2f bridge can be accessed through this address:
#define ALT_AXI_FPGASLVS_OFST 0xC0000000
Then, you need to open your mem device in your linux system:
if( ( fd = open( "/dev/mem", ( O_RDWR | O_SYNC ) ) ) == -1 ) {
printf( "ERROR: could not open \"/dev/mem\"...\n" );
return( 1 );
}
Next, create the virtual memory:
virtual_base = mmap( NULL, HW_REGS_SPAN, ( PROT_READ | PROT_WRITE ), MAP_SHARED, fd, ALT_AXI_FPGASLVS_OFST );
After that, you can cast the pointer of system_ID to your virtual memory:
qsys_id_addr =virtual_base + ( ( unsigned long )( ALT_LWFPGASLVS_OFST + SYSID_BASE ) & ( unsigned long)( HW_REGS_MASK ) );
Finally, you should be able to use qsys_id_addr pointer to access your system ID IP in qsys:
printf("system ID = %x",*(uint32_t *)qsys_id_addr);
Hope this might help.
Thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you very much Fjumaah. With your help, I can run my first application,
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page