d8927f1396
Make serial ports more robust and reliable. Make non-console ports work. This might have broken skyeye stuff. o Introduce ping-pong receive buffers. o Use DMA to copy characters directly into memory. o Support baud rates other than 115200 o Use 1 stop bit when 1 stop bit is requested (otherwise 2 were used, which caused dropped characters when received in bursts). o Use 1.5 stop bits for 5-bit bytes, and 2 stop bits otherwise when 2 stop bits were requested. o Actually update line parameters. o Fix comments o Move init into attach o Tweaks to TX interrupt registers to get them reliable and non-storming. o harvest data in ipend since the latency between it and the callback was too long. This likely is how it should be, I don't know why I deferred things to the callback before. o disable all interrupts in console init. We don't want interrupts until we turn on an ISR. o cosmetic tweaks o Automatically detect of the TIMEOUT interrupt is supported. If so, use it so we get better CPU utilization. Otherwise do a character at a time RX. Good news here is that it seems we have enough CPU and low enough fast interrupt latency to do this reliably. o Don't read USART_CR. It is a write-only register. o start to implement bus_ioctl. Do BAUD now... |
||
---|---|---|
.. | ||
at91_pdcreg.h | ||
at91_pio.c | ||
at91_pioreg.h | ||
at91_pmc.c | ||
at91_pmcreg.h | ||
at91_pmcvar.h | ||
at91_rtc.c | ||
at91_rtcreg.h | ||
at91_spi.c | ||
at91_spiio.h | ||
at91_spireg.h | ||
at91_ssc.c | ||
at91_sscreg.h | ||
at91_st.c | ||
at91_streg.h | ||
at91_twi.c | ||
at91_twiio.h | ||
at91_twireg.h | ||
at91_usartreg.h | ||
at91.c | ||
at91rm92reg.h | ||
at91var.h | ||
files.at91 | ||
files.kb920x | ||
hints.at91rm9200 | ||
hints.at91sam9261 | ||
if_ate.c | ||
if_atereg.h | ||
kb920x_machdep.c | ||
ohci_atmelarm.c | ||
std.at91 | ||
std.kb920x | ||
uart_bus_at91usart.c | ||
uart_cpu_at91rm9200usart.c | ||
uart_dev_at91usart.c |