<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rockbox/firmware/usbstack/usb_core.c, branch working</title>
<subtitle>My Rockbox tree</subtitle>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/'/>
<entry>
<title>[WIP] DuckyScript plugin</title>
<updated>2016-07-12T16:01:01+00:00</updated>
<author>
<name>Franklin Wei</name>
<email>frankhwei536@gmail.com</email>
</author>
<published>2015-09-24T01:46:54+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=1b80b7ee4a5998784821e278f374c1363e95c7c1'/>
<id>1b80b7ee4a5998784821e278f374c1363e95c7c1</id>
<content type='text'>
Allows a DAP to behave like a USB Rubber Ducky by executing DuckyScript files,
which is a BASIC-like language with facilities for sending keystrokes.

A "crash course" on the language can be found at http://71.71.39.6/ducky.txt

This plugin also implements several extensions to vanilla DuckyScript, some of
which are listed below (see source for complete documentation).

 - variables (multicharacter names via hash map)
 - control flow (JUMP/GOTO, IF) with labels
 - expression parsing when a number is needed
 - non-decimal bases
 - bytecode compilation (on computer only)

The compiler and related tools can be found here:
https://github.com/theunamedguy/ducky

NOTE: Changes some entries in the HID usage tables, but doesn't break anything.

TODO:

 - Finish up manual entry
 - Further documentation?
 - More optimization?
 - Arrays (how?)
 - TEST, TEST, TEST!
   - Some features have only been marginally tested and MIGHT NOT WORK CORRECTLY
 - FASTER TYPING!!!
   - Currently averages ~96 keys/sec
   - Theoretical maximum: 500 keys/sec
   - Of interest: G#1223 (http://gerrit.rockbox.org/r/1223/)

Change-Id: I149ecd08ba124f8b8637a002ee2652dd54a44e58
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allows a DAP to behave like a USB Rubber Ducky by executing DuckyScript files,
which is a BASIC-like language with facilities for sending keystrokes.

A "crash course" on the language can be found at http://71.71.39.6/ducky.txt

This plugin also implements several extensions to vanilla DuckyScript, some of
which are listed below (see source for complete documentation).

 - variables (multicharacter names via hash map)
 - control flow (JUMP/GOTO, IF) with labels
 - expression parsing when a number is needed
 - non-decimal bases
 - bytecode compilation (on computer only)

The compiler and related tools can be found here:
https://github.com/theunamedguy/ducky

NOTE: Changes some entries in the HID usage tables, but doesn't break anything.

TODO:

 - Finish up manual entry
 - Further documentation?
 - More optimization?
 - Arrays (how?)
 - TEST, TEST, TEST!
   - Some features have only been marginally tested and MIGHT NOT WORK CORRECTLY
 - FASTER TYPING!!!
   - Currently averages ~96 keys/sec
   - Theoretical maximum: 500 keys/sec
   - Of interest: G#1223 (http://gerrit.rockbox.org/r/1223/)

Change-Id: I149ecd08ba124f8b8637a002ee2652dd54a44e58
</pre>
</div>
</content>
</entry>
<entry>
<title>Coding style fix for bde5394</title>
<updated>2014-02-10T06:46:13+00:00</updated>
<author>
<name>Marcin Bukat</name>
<email>marcin.bukat@gmail.com</email>
</author>
<published>2014-02-10T06:46:13+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=c1609b08892ec6878c6cc1ea20689145d23a51e6'/>
<id>c1609b08892ec6878c6cc1ea20689145d23a51e6</id>
<content type='text'>
Change-Id: I6e9ba6a2570915191cf5b66f58ed9ddb1959b6cc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I6e9ba6a2570915191cf5b66f58ed9ddb1959b6cc
</pre>
</div>
</content>
</entry>
<entry>
<title>Return a valid USB string descriptor for index 0xEE.</title>
<updated>2014-02-09T19:39:18+00:00</updated>
<author>
<name>Frank Gevaerts</name>
<email>frank@gevaerts.be</email>
</author>
<published>2013-11-26T21:03:20+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=bde5394f5a4cc40478f28911cdcde6cec85f1b6d'/>
<id>bde5394f5a4cc40478f28911cdcde6cec85f1b6d</id>
<content type='text'>
Windows will try to retrieve such a descriptor on first connect.
If the device returns STALL or a regular string descriptor (i.e.
not one that follows the Microsoft OS Descriptor spec), things
will continue normally.

Unfortunately some of our low-level USB drivers have issues with
STALL so any other valid descriptor is the next best solution.

Change-Id: I59eb09eea157e4e14bec0197a898be378a5559f2
Reviewed-on: http://gerrit.rockbox.org/680
Reviewed-by: Frank Gevaerts &lt;frank@gevaerts.be&gt;
Tested: Frank Gevaerts &lt;frank@gevaerts.be&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Windows will try to retrieve such a descriptor on first connect.
If the device returns STALL or a regular string descriptor (i.e.
not one that follows the Microsoft OS Descriptor spec), things
will continue normally.

Unfortunately some of our low-level USB drivers have issues with
STALL so any other valid descriptor is the next best solution.

Change-Id: I59eb09eea157e4e14bec0197a898be378a5559f2
Reviewed-on: http://gerrit.rockbox.org/680
Reviewed-by: Frank Gevaerts &lt;frank@gevaerts.be&gt;
Tested: Frank Gevaerts &lt;frank@gevaerts.be&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make sure usb class driver disconnect() functions are called properly.</title>
<updated>2014-01-05T21:57:04+00:00</updated>
<author>
<name>Frank Gevaerts</name>
<email>frank@gevaerts.be</email>
</author>
<published>2014-01-05T21:54:10+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=204668db894f7c26db6c56e94aba33ecd022cdb4'/>
<id>204668db894f7c26db6c56e94aba33ecd022cdb4</id>
<content type='text'>
disconnect() needs to be called exactly once per call to init_connection().
In case of bus resets, disconnect() was not called, which led to leaking
alloc_maximum() allocated buflib handles, which led to buflib running out
of memory to allocate.

Change-Id: I03025da578dc54e48b6de6bd3e3f40feae7220a6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
disconnect() needs to be called exactly once per call to init_connection().
In case of bus resets, disconnect() was not called, which led to leaking
alloc_maximum() allocated buflib handles, which led to buflib running out
of memory to allocate.

Change-Id: I03025da578dc54e48b6de6bd3e3f40feae7220a6
</pre>
</div>
</content>
</entry>
<entry>
<title>usb stack: add more verbose debug logf()s</title>
<updated>2013-07-24T21:17:13+00:00</updated>
<author>
<name>Marcin Bukat</name>
<email>marcin.bukat@gmail.com</email>
</author>
<published>2013-07-24T20:40:12+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=49bcf3530962c40857c510af431968960ba4bdc6'/>
<id>49bcf3530962c40857c510af431968960ba4bdc6</id>
<content type='text'>
Change-Id: I087aefd2854978813c7e4ed7ef7da400f3692e39
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I087aefd2854978813c7e4ed7ef7da400f3692e39
</pre>
</div>
</content>
</entry>
<entry>
<title>usb_core: rework handling of clear feature</title>
<updated>2013-07-24T21:16:38+00:00</updated>
<author>
<name>Amaury Pouly</name>
<email>amaury.pouly@gmail.com</email>
</author>
<published>2013-07-24T20:29:44+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=21c5ffe09a6ea1e9b1a4bd13a047b0ad2845ee1b'/>
<id>21c5ffe09a6ea1e9b1a4bd13a047b0ad2845ee1b</id>
<content type='text'>
Change-Id: Icb1e973aa5fd8520eff0796aa8164e0a988d9107
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Icb1e973aa5fd8520eff0796aa8164e0a988d9107
</pre>
</div>
</content>
</entry>
<entry>
<title>imx233: fix ocotop/debug and usb-core for stmp3600</title>
<updated>2013-06-24T11:17:17+00:00</updated>
<author>
<name>Amaury Pouly</name>
<email>amaury.pouly@gmail.com</email>
</author>
<published>2013-06-23T16:59:13+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=d938ae692cfc720210236eccd7910abe15c761c0'/>
<id>d938ae692cfc720210236eccd7910abe15c761c0</id>
<content type='text'>
Currently we don't know where the serial number is stored on the
stmp3600. It is probably using the laser fuses but this needs to
be investigated

Change-Id: I1ac25e38b8f65635abb68788ceb65df0a740dabd
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently we don't know where the serial number is stored on the
stmp3600. It is probably using the laser fuses but this needs to
be investigated

Change-Id: I1ac25e38b8f65635abb68788ceb65df0a740dabd
</pre>
</div>
</content>
</entry>
<entry>
<title>imx233: rewrite ocotp using new register headers</title>
<updated>2013-06-16T14:58:00+00:00</updated>
<author>
<name>Amaury Pouly</name>
<email>amaury.pouly@gmail.com</email>
</author>
<published>2013-06-16T14:46:12+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=6f0eaf482714d4a17a6d68abdb83121bbf78f501'/>
<id>6f0eaf482714d4a17a6d68abdb83121bbf78f501</id>
<content type='text'>
Change-Id: I3c622119a1e296ec6b3f35f27e81b5118ab7f6cc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I3c622119a1e296ec6b3f35f27e81b5118ab7f6cc
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: add support for hardware handled SET ADDR/CONFIG</title>
<updated>2012-12-07T12:37:26+00:00</updated>
<author>
<name>Amaury Pouly</name>
<email>amaury.pouly@gmail.com</email>
</author>
<published>2012-12-07T12:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=775ab07d5e710c4811a66b246f8f8708a09eba28'/>
<id>775ab07d5e710c4811a66b246f8f8708a09eba28</id>
<content type='text'>
Some USB controllers like the one of the Rockchip 27xx handle some
requests in pure hardware. This is especially a problem for two
of them:
- SET ADDR which is used by our core to track the DEFAULT/ADDRESS
  state and is required for the drivers to work properly
- SET CONFIG which is used by our core to initialise the drivers
  by calling init_connection()
In these cases we need a way to notify the core that such requests
happened.
We do this by exporting two functions which directly notify the
core about these requests and perform the necessary init steps
required without doing the actual USB transfers. Special care is
needed because these functions could be called from an interrupt
handler. For this reason we still use the usb_queue and introduce
new IDs so that they are processed in order and safely.

No functional change is intended, both in the usbstack and on
targets without such quirks.

Change-Id: Ie42feffd4584e88bf37cff018b627f333dca1140
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some USB controllers like the one of the Rockchip 27xx handle some
requests in pure hardware. This is especially a problem for two
of them:
- SET ADDR which is used by our core to track the DEFAULT/ADDRESS
  state and is required for the drivers to work properly
- SET CONFIG which is used by our core to initialise the drivers
  by calling init_connection()
In these cases we need a way to notify the core that such requests
happened.
We do this by exporting two functions which directly notify the
core about these requests and perform the necessary init steps
required without doing the actual USB transfers. Special care is
needed because these functions could be called from an interrupt
handler. For this reason we still use the usb_queue and introduce
new IDs so that they are processed in order and safely.

No functional change is intended, both in the usbstack and on
targets without such quirks.

Change-Id: Ie42feffd4584e88bf37cff018b627f333dca1140
</pre>
</div>
</content>
</entry>
<entry>
<title>Fill USB serial number descriptor on imx233 targets.</title>
<updated>2012-05-31T11:57:25+00:00</updated>
<author>
<name>Amaury Pouly</name>
<email>amaury.pouly@gmail.com</email>
</author>
<published>2012-05-31T11:55:35+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/rockbox/commit/?id=9bae382e958636598d56ad1b0023e29355e6494d'/>
<id>9bae382e958636598d56ad1b0023e29355e6494d</id>
<content type='text'>
Compute a serial number using the ocotp OPS bits like the OF.
Also add a comment about the first character of serial number
being a indicator of the enabled interfaces.

Change-Id: I9b90aed4e3b803f12fec003c9bc8ee8a046f4e42
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Compute a serial number using the ocotp OPS bits like the OF.
Also add a comment about the first character of serial number
being a indicator of the enabled interfaces.

Change-Id: I9b90aed4e3b803f12fec003c9bc8ee8a046f4e42
</pre>
</div>
</content>
</entry>
</feed>
