As Nicholas Flowers wrote:

> ACM: requires 3 endpoints (2 data, and interrupt for line status).
> Actually, as far as I understand the spec, the interrupt is supposed to be
> optional, but the linux driver at least demands it.

All drivers I have seen require the interrupt endpoint, even though
it's pointless (pun intended :).

> Atmel-like: require 2 endpoints, it looks like doesn't use control
> interface at all (commands are sent over those two endpoints).

Correct, it only uses the data endpoints.

> ACM/Atmel: can't work (requires 5 endpoints, 16U2 only has 4)

Interesting.  The dump I've shown you was from an mEDBG device which
is based on ATmega32U4, so obviously they support more endpoints than
the U2.

> FTDI/Atmel: might work, but requires (as you say) enough support in avrdude
> to select the endpoints based on interface.  (Which presumably means
> changes to the config parser, as well?)

The config parser isn't black art, it's just a YACC and a Lex file.

We could perhaps add enough guesswork to usbdev_open() to
automatically find the correct endpoints.  ISTR a patch for this is
already in a patch tracker (it is required for some LUFA
implementation).

Here is the discussion about it:

https://savannah.nongnu.org/bugs/?40831

Also, there's a patch implementing serial number checks in USBasp:

https://savannah.nongnu.org/patch/?7321

-- 
cheers, Joerg               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/
Never trust an operating system you don't have sources for. ;-)

_______________________________________________
avrdude-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/avrdude-dev

Reply via email to