FPGA loader

From ArmadeusWiki
Revision as of 11:26, 9 December 2006 by Salocin68 (Talk | contribs) (FPGARegs usage)

Jump to: navigation, search

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