Hi, I have a FPGA that is constantly changing (its on development phase). I want to let userspace app to update those registers, but don't want to create an API yet. What is the best way to open a range of registers to userspace, so no driver update is required? Thanks, Kfir
On Mon, Jan 3, 2011 at 2:47 PM, Kfir Lavi <lavi.kfir@gmail.com> wrote:
Hi, I have a FPGA that is constantly changing (its on development phase). I want to let userspace app to update those registers, but don't want to create an API yet. What is the best way to open a range of registers to userspace, so no driver update is required?
You can think of exporting them via sysfs, together with some additional information like register base address. thanks, Daniel.
On 03/01/11 12:47, Kfir Lavi wrote:
I have a FPGA that is constantly changing (its on development phase). I want to let userspace app to update those registers, but don't want to create an API yet. What is the best way to open a range of registers to userspace, so no driver update is required?
When I had to do this recently I used sysfs, I have no idea if it's the best way but it certainly was very effective. Remember in sysfs that each file should only have one value. Once it's setup though you can just write to the sysfs files, I started by writing simple perl scripts to test things before starting to write more complex apps. HTH Phil
On Mon, Jan 3, 2011 at 3:00 PM, Philip Downer <phil@pjd.me.uk> wrote:
On 03/01/11 12:47, Kfir Lavi wrote:
I have a FPGA that is constantly changing (its on development phase).
I want to let userspace app to update those registers, but don't want to create an API yet. What is the best way to open a range of registers to userspace, so no driver update is required?
When I had to do this recently I used sysfs, I have no idea if it's the best way but it certainly was very effective. Remember in sysfs that each file should only have one value.
Once it's setup though you can just write to the sysfs files, I started by writing simple perl scripts to test things before starting to write more complex apps.
HTH
Phil
So what do expose in sysfs? for each register - a file of it's own? or you get a bulk of data to one file? Thanks, Kfir
On Mon, Jan 3, 2011 at 5:09 PM, Kfir Lavi <lavi.kfir@gmail.com> wrote:
On Mon, Jan 3, 2011 at 3:00 PM, Philip Downer <phil@pjd.me.uk> wrote:
On 03/01/11 12:47, Kfir Lavi wrote:
I have a FPGA that is constantly changing (its on development phase).
I want to let userspace app to update those registers, but don't want to create an API yet. What is the best way to open a range of registers to userspace, so no driver update is required?
When I had to do this recently I used sysfs, I have no idea if it's the best way but it certainly was very effective. Remember in sysfs that each file should only have one value.
Once it's setup though you can just write to the sysfs files, I started by writing simple perl scripts to test things before starting to write more complex apps.
HTH
Phil
So what do expose in sysfs? for each register - a file of it's own? or you get a bulk of data to one file?
Thanks, Kfir
I thought about using 3 files in sysfs. 1. address of the register 2. data to write to the register 3. trigger that do the write Please share your comments. Regards, Kfir
I thought about using 3 files in sysfs. 1. address of the register 2. data to write to the register 3. trigger that do the write
The most effective solution would be to have one file per register. Writing register: # echo value > /sys/path/to/file Reading register: # cat /sys/path/to/file Also, since your FPGA is in development phase I assume that the registers base address is changing (or am I wrong?). You can solve this with an additional writable sysfs entry which will hold the current base address. thanks, Daniel.
On Mon, Jan 03, 2011 at 10:52:34PM +0200, Daniel Baluta wrote:
I thought about using 3 files in sysfs. 1. address of the register 2. data to write to the register 3. trigger that do the write
The most effective solution would be to have one file per register.
Writing register: # echo value > /sys/path/to/file
Reading register: # cat /sys/path/to/file
Also, since your FPGA is in development phase I assume that the registers base address is changing (or am I wrong?). You can solve this with an additional writable sysfs entry which will hold the current base address.
Also remember that debugfs would also be good for something like this, being much easier to use than sysfs. Note the rule when using debugfs: There is are no rules when using debugfs. Which works much better when doing development :) thanks, greg k-h
participants (4)
-
Daniel Baluta -
Greg KH -
Kfir Lavi -
Philip Downer