Difference between revisions of "FPGA registers access from Linux userspace"

From ArmadeusWiki
Jump to: navigation, search
(New page: == FPGARegs usage == * Write to a FPGA address: ''fpgareg addr value'' # fpgaregs 1000 abcd this will write 0xabcd (16bits only interface) at the FPGA internal address 0x1000 * Read a F...)
 
(FPGARegs usage)
Line 11: Line 11:
  
 
[[Category:FPGA]]
 
[[Category:FPGA]]
 +
 +
 +
==Changing FPGA IP's registers from Linux user space with fpgaregs==
 +
 +
This tool allows you to access FPGA registers from linux userspace/console. This way you can easily debug your driver directly from the Linux console.
 +
 +
First, you have enable this tool in Buildroot (package selection for target):
 +
$ make menuconfig
 +
 +
Once done, compile it:
 +
$ make
 +
 +
The generated file is located in buildroot/build_arm_nofpu/fpgaregs-1.0/. Now you can copy it on your target.
 +
Then in linux, launch it like that:
 +
# fpgaregs address (for read) or fpga address value (for write)
 +
 +
===Examples:===
 +
Show register at internal FPGA address 0x0010:
 +
# fpgaregs 10
 +
 +
Write 0x0123 to FPGA register 0x0020:
 +
# fpgaregs 20 0123

Revision as of 14:33, 8 April 2008

FPGARegs usage

  • Write to a FPGA address: fpgareg addr value
# fpgaregs 1000 abcd

this will write 0xabcd (16bits only interface) at the FPGA internal address 0x1000

  • Read a FPGA address: fpgareg addr
# fpgaregs 1000

this will read the address 0x1000

For details take a look at this page: Tips to debug under Linux


Changing FPGA IP's registers from Linux user space with fpgaregs

This tool allows you to access FPGA registers from linux userspace/console. This way you can easily debug your driver directly from the Linux console.

First, you have enable this tool in Buildroot (package selection for target):

$ make menuconfig

Once done, compile it:

$ make

The generated file is located in buildroot/build_arm_nofpu/fpgaregs-1.0/. Now you can copy it on your target. Then in linux, launch it like that:

# fpgaregs address (for read) or fpga address value (for write)

Examples:

Show register at internal FPGA address 0x0010:

# fpgaregs 10

Write 0x0123 to FPGA register 0x0020:

# fpgaregs 20 0123