patchAVR Downloader/UploaDEr - Patches: patch #8228, Added linux spi programmer type...


You are not allowed to post comments on this tracker with your current authentication level.

patch #8228: Added linux spi programmer type based on spidev userspace drivers

Submitted by:  Kevin Cuzner <kcuzner>
Submitted on:  Thu 31 Oct 2013 04:10:19 PM UTC  
Votes:  120  
Category:  None Priority:  5 - Normal
Status:  In Progress Privacy:  Public
Assigned to:  None Open/Closed:  Open

Sat 13 Jun 2020 08:47:02 PM UTC, comment #4: 

I just logged into my email after many months and saw movement on this patch!! I'm surprised! I apologize for the roughness of the code in this patch. If you're working on this patch, I would recommend instead looking at #9816. Ralf Ramsauer put a bunch of effort in to get things up to speed with how avrdude has morphed over the past 8 years. Any work I would do to clean this up has already been done by Ralf in that patch.

Kevin Cuzner <kcuzner>
Wed 11 Mar 2020 10:30:45 AM UTC, comment #3: 

Finally, there's a one warning remaining:

linuxspi.c: In function ‘linuxspi_gpio_op_wr’:
linuxspi.c:170:5: warning: format not a string literal and no format arguments [-Wformat-security]
     if (fprintf(f, val) < 0)

If I get it correctly, it would not even be necessary to use fprintf here, as "val" is always a fixed string when being passed to linuxspi_gpio_op_wr(), correct?

Thus, replacing "fprintf(f, val) < 0" by "fputs(val, f) != EOF" ought to be a better solution (and avoids the overhead of fprintf trying to interpret a format string that is known to not have format conversions at all).

Joerg Wunsch <joerg_wunsch>
Project Administrator
Wed 11 Mar 2020 09:54:30 AM UTC, comment #2: 

Curious: shouldn't HAVE_SPIDEV default to NO for standard desktop-type Linux systems? I don't think linuxspi would make much sense on those systems, so just enabling it based on the presence of a header file is IMHO not a good decision.

What I don't like is the trailing whitespace on many lines of your new files (but I could fix that myself).

Otherwise, looks good.

Joerg Wunsch <joerg_wunsch>
Project Administrator
Sat 03 May 2014 08:47:30 AM UTC, comment #1: 

This should definitely be included in the standard AVRDUDE.

Consider how many people have Raspberry PI's and how many people use microcontrollers such as Arduino with the Pi. It must be better to have one version of AVRDude rather than different forks of it. I've used the KCUZNER version and it works well.

Tim Chilton <tchilton>
Thu 31 Oct 2013 04:10:19 PM UTC, original submission:  

I've been sitting on this a little while, but I just discovered how to submit a patch. I apologize if this isn't what is supposed to go in the "Original Submission" field. I have attached my patch as an attachment.

As documented at and, I have created a linuxspi programmer type and added it to avrdude. I had talked about it a bit on the mailing list back in May, but now I have finally gotten around to sending the patch.

The linuxspi programmer type allows avrdude to use the built-in spidev userspace SPI drivers on linux to communicate to an attached AVR. While this doesn't have much application for desktop or laptop computers, for single-board linux computers such as the Raspberry Pi or Beaglebone, it allows the single-board computer to be used as a stand-alone AVR programmer with little to no extra hardware. I think this is useful on many levels, including being able to embed an AVR onto a computer with spidev support and have it be in-system programmable by executing a userspace program.

The port switch is used to direct the linuxspi programmer to which SPI bus to use. The baud rate switch can be used to change the frequency at which the SPI bus operates.

The comments on my blog post show that most people using it have been able to get it to work and in many cases, using a lower frequency on the SPI bus via the baud rate switch solved communication issues.

The patch was created by git, so it probably has to be applied with the -p1 flag to strip off the a/ and b/ that git likes to prepend to path names.

Kevin Cuzner <kcuzner>



Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by joerg_wunsch (Posted a comment)
  • -email is unavailable- added by chrstphrchvz (Voted in favor of this item)
  • -email is unavailable- added by bevice (Voted in favor of this item)
  • -email is unavailable- added by robstar (Voted in favor of this item)
  • -email is unavailable- added by tchilton (Posted a comment)
  • -email is unavailable- added by tchilton (Voted in favor of this item)
  • -email is unavailable- added by kcuzner (Submitted the item)

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 120 encouragements so far.

    Only logged-in users can vote.




    Follow 6 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-03-11 joerg_wunsch StatusNone => In Progress
    2018-01-07 chrstphrchvz Carbon-Copy- => Added chrstphrchvz
    2016-11-02 bevice Carbon-Copy- => Added bevice
    2016-10-14 robstar Carbon-Copy- => Added robstar
    2014-05-03 tchilton Carbon-Copy- => Added tchilton
    2013-10-31 kcuzner Attached File- => Added 0001-Added-linuxspi-programmer-type-using-spidev.patch, #29517

    Back to the top

    Powered by Savane 3.6