Stellaris: Implement set_address() and readn() in LPC driver

Although readn() is implemented, a mechanism to bulk read the chip is not
implemented in this patch.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Print error code when control request isn't handled

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Use standard integer types instead of shortened int types

Although standard integer types are an execrable idea, QiProg uses them.
Newer versions of libopencm3 have also switched to exclusively using
standard ints. Using short types when all other dependencies use the long
versions creates an inconsistent mixture which is worse than the standard
int types.

Choose the lesser of the two evils.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Do not use blocking delays when flashing the green LED

The main loop is useful for more than just flashing an LED. Don't use
blocking delays for controlling the LED.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Use correct nibble order in LPC write cycle

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Update libopencm3 submodules

There are a lot of exciting changes in libopencm3, including a few bug
fixes in the USB stack and driver, and support for controlling the floating
point ABI.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Global: Allow changing the floating-point ABI

This is useful for cases where the toolchain does not have hard-float
libraries, and is a much better solution than manually editing makefiles.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Delay reading the LAD pins to latch on correct data

Reads and writes to GPIO pins are not guaranteed to be ordered. A slight
delay when reading guarantees that we latch on the correct data.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Print when a set_address() request is received

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Update qiprog submodule to pull in bulk read code

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Add helpers for QiProg event handler

The QiProg event handler is supposed to take care of bulk chip operations.
Although we do not call it yet, it requires a sall number of helper
functions. Add those.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Call the QiProg bulk handler

With this, bulk reading of the flash chip is implemented.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stelaris: Enable compiler optimizations

There is no way the 80MHz core on the Stellaris can emulate an LPC bus at
33MHz. Every clock counts. Enabling compiler optimizations gives us about
a 10 to 20-fold increase in LPC throughput.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Remove USB TX complete callback

This callback is not needed by QiProg.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Stellaris: Do not redefine the USB VID:PID

Instead, use the definitions in qiprog_usb.h .

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>