| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
This improves the USB performance of ChaosKey so that it doesn't NAK
during data transfers at all.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This also allows us to stop shadowing USB rx buffers in system ram
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This shouldn't have much of an effect, but shows how double buffering
works.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Use the 16-bit USB memory directly, avoiding the buffer space and the copy
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
These counters are only useful for helping debug the USB driver.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This allows other systems to see what baud rate the host has requested.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Gcc 5.4.1 tracks alignment of data through assignments, so that a
uint32_t pointer which comes from byte-aligned uint8_t data:
extern uint8_t foo[];
uint32_t *q = (void *) foo;
Fetches and stores through this pointer are done bytewise. This is
slow (meh), but if q references a device register, things to bad very
quickly.
This patch works around this bug in the compiler by adding
__attribute__((aligned(4))) tags to some variables, or changing them
from uint8_t to uint32_t. Places doing this will now be caught as I've
added -Wcast-align to the compiler flags. That required adding (void
*) casts, after the relevant code was checked to make sure the
compiler could tell that the addresses were aligned.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This can't work without a lot more effort.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Boot loaders were going over 4096 bytes of ROM. I suspect we'll need
more serious work soon.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
When Linux boots, it asks for only the first 8 bytes of the device
descriptor; we must limit the amount of data sent back to that amount
or USB will get wedged.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
When USB is reset, but the board is not power cycled, all of the
internal USB state needs to be reset, and any tasks blocked on sending
or receiving packets need to be awoken so they can go wait for USB to
start running again.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
The code for the second IN endpoint was using the wrong ifdef.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This replaces having the single output switch based on a pin value and
allows us to box the device and still fetch raw data.
For now, this will use a special libusb2 program, ao-chaosread, to
pull bits as I haven't figure out how to make linux provide two
/dev entries for one USB device.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This exposes the hardware device ID (which is unique per-chip) as the
USB serial number, avoiding the need to create a custom ROM image for
each device.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
For devices not providing the standard CDC-ACM interface, let them
skip the various descriptors and interfaces to provide a more limited
set of capabilities.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Allow USB suspend to suspend USB, GPIOs and master clock.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This lets the extra allocations used from ao_usb_alloc_buffers be
allocated before the first USB connection happens.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
Small pin-count versions of the STMF0 can remap PA11/PA12 on the same
pins as PA9/PA10. These are used by USB, so have the USB driver deal
with remapping them.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
| |
This adds a way to allocate private USB buffers for sending data
without needing to copy it again. It requires ensuring that all
accesses are 16 bits aligned to 16 bit boundaries.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
Basic clock configuration, OS support, LED and USB drivers.
Signed-off-by: Keith Packard <keithp@keithp.com>
|