Checkpoint I2C slave work on IO
Actually only one DMA on F100
Enable DMA
Don't waste time printing when we have errors - that causes the master to time out
Implement stm32_dmaresidual for the F1 DMA driver.
Don't do retries, since it just complicates things.
Implement I2C slave DMA.  Not working yet.
I2C slave RX DMA works.
Implement a simple byte loopback server on I2C for more testing.
Fix clock_time2ticks to round up, not down. This makes sem_timedwait for at least the necessary period.
Now that sem_timedwait works, we can turn on interrupt-driven I2C.
A couple of minor tracing fixes; print the state names in the trace dump, and set the timestamp for each entry (not really a useful number yet…)
Implement non-stop DMA mode (circular) for the F1x DMA driver.
Configure the DMA channels in circular mode so that we don't have to deal with the case where DMA stops but the master is still talking.

Use AF as well as STOPF to decide when transfer has ended. We don't seem to get STOPF when we are transmitting.
Turn off the I2C register dump at startup.
Clear the interrupting condition when we take the DMA interrupt.
Implement serial receive DMA for the F1xx. This is not quite working right yet. Some clients work, others not so much.
Don't try to set up serial polling before the HRT has been started.
We can't have DMA on both I2C1 and USART2. Since we need it more for I2C, and since USART2 is going back to being ignored once I2C works, let's make the call.

Turn off the debug output on I2C for now.
Turn off i2c slave debug output for real.