Difference between revisions of "FPGA loader"

From ArmadeusWiki
Jump to: navigation, search
(Driver usage)
(FPGARegs usage)
Line 27: Line 27:
 
Write to a FPGA address
 
Write to a FPGA address
 
* fpgareg addr value  
 
* fpgareg addr value  
ex: fpgaregs 0x1000 0xabcd
+
# fpgaregs 0x1000 0xabcd
 
this will write 0xabcd (16bits only interface) at the FPGA internal address 0x1000
 
this will write 0xabcd (16bits only interface) at the FPGA internal address 0x1000
  
 
Read a FPGA address
 
Read a FPGA address
 
* fpgareg addr  
 
* fpgareg addr  
ex: fpgaregs 0x1000
+
# fpgaregs 0x1000
 
this will read the address 0x1000
 
this will read the address 0x1000

Revision as of 12:26, 9 December 2006

On this page, you will find all the informations needed to use the FPGA loader driver.

Module compilation & installation

The first thing you have to do is to compile the driver. The only way to do that actually is to compile it as a module:

# cd target/linux/modules/fpga_devtools

Compile it:

# make ARCH=arm CROSS_COMPILE=/local/Armadeus/buildroot/build_arm_nofpu/staging_dir/bin/arm-linux-

When compiled, you will obtain 1 module and one progam:

  • fpgaloader.ko: this is the driver.
  • fpgaregs: this is a small tool which allows accessing the FPGA from the user space without driver. This is especially usefull during development phases.

Then, you have to:

  • copy the module on your rootfs in /lib/modules/drivers/

After that you can launch:

# insmod /lib/modules/drivers/fpgaloader.ko

The default FPGA version is the spartan3 200k. The version can be changed when installing the module (insmod /lib/modules/drivers/fpgaloader.ko 0 or 1). These informations are given by the proc interface.

Driver usage

The FPGA loader driver is usable through 1 interface:

# /proc/drivers/fpga/loader read the available configurations

To upload a new firmware, write:

# dd if=fpga_test.bit of=/dev/fpga/loader

FPGARegs usage

Write to a FPGA address

  • fpgareg addr value
# fpgaregs 0x1000 0xabcd

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

Read a FPGA address

  • fpgareg addr
# fpgaregs 0x1000

this will read the address 0x1000