| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
Need HSI clock and the flashing functions loaded in ram.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Need the HSI clock running for the flash hardware to work.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
The STM32F0 usart can be operated much like the STM32L usart, but the
registers are all moved around.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Using this slower clock eliminates sampling problems with the ADC and
cleans up the chaoskey raw data.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
The .bin files are what the DFU utility uses to flash the boot loader
using USB.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This was used to try and not have two xtals on telemini, but failed
because the provided clock has too much noise.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Missing a reserved address in the registers broke everything nicely,
but the priority values were also wrong - stm32f0 exposes 8 bits per
priority, like the stm32l, but it uses only the top two bits.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Allows the use of crystals instead of requiring USB.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This also changes the DMA interface a bit so we can select for
interrupts on only the interesting channels.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This builds a .bin file which can be used with dfu-util instead of
using openocd to load the initial flash loader.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
|
|
| |
When we don't have a beeper, there's no way to signal a 'warble' for
panic. So, elide that bit.
Second, panic can't use the scheduler and timer because those may not
be running (or may have failed), and so it uses a delay loop. Add a
configurable scale value to the panic loop so that the LED blinks can
be read. For stm32f0 devices, scale that by the sysclk value to
automatically make them of reasonable length.
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Copied from stm32l and never fixed.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This better matches the documented cal sequence.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
This contains the code for power managing the GPIO pins
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>
|
|
|
|
|
|
| |
512 may not be suitable for everyone.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
| |
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
|
|
| |
Instead of requiring that the whole set of returned values fit
precisely in the ring, allow for wrap-around so that we can fetch an
odd number of ADC values. The previous version required that the fetch
amount always be a factor of the ADC buffer size.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Flash loader uses pin configuration to set up GPIOs for boot selection
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>
|
|
|
|
|
|
| |
Extra semicolon
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
This was configuring the hardware wrong, and wasn't keeping the output
ring full.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
| |
Tom discovered that this was missing
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 creates a ring buffer for ADC data so that ADC fetching can run
in parallel with other activities.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Sets up the stm32f0 CRC hardware, exposing inline functions to access
it. DMA access is possible, but usbtrng can't use that.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
These were left over from the stm32f0 initial implementation work; now
it's more useful to list only the bits which are valid.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
The ADC api is what USBtrng wants; a way to repeatedly read a single
ADC input as fast as possible.
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>
|
|
|
|
|
|
|
|
| |
The flash loader ended up assuming ao_boot was at the start of ram,
while the application stuck it after the interrupt table (where it
needs to go).
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
|
|
|
|
|
| |
Also moves the usual address for applications out of the way of the
flash loader.
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>
|