#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
259753 |
|
22-Dec-2013 |
imp |
Direct Commit of mountroot> prompt fix r259748 (since there's no sane branching relationship between that branch and this one and since the more general fix in head may be too risky for a stbale branch this mature):
Fix mountroot> prompt eating most of the characters by not enabling RXRDY interrupts in the attach routine. Instead, defer this until the first interrupt we see after the device is opened. Given the console use case, we're guaranteed to get a TXRDY interrupt before any reads are posted due to boot messages, which makes this work.
The real fix is to use cngrab/cnungrab function pointers to disable RXRDY interrupts while grabbed. However, that touches the MI uart code, so was disallowed for 10.0 due to the lateness of the hour this fix was proposed. It works for mountroot, the most common atmel kernel prompt use cases, but wouldn't work for GELI since it prompts later in the boot process.
|
#
237093 |
|
14-Jun-2012 |
marius |
MFC: r225882
Remove pointless semicolons after label
|
#
236088 |
|
26-May-2012 |
marius |
MFC: r234901
- Add missing locking in at91_usart_getc(). - Align the RX buffers on the cache line size, otherwise the requirement of partial cache line flushes on every are pretty much guaranteed. [1] - Make the code setting the RX timeout match its comment (apparently, start and stop bits were missed in the previous calculation). [1] - Cover the busdma operations in at91_usart_bus_{ipend,transmit}() with the hardware mutex, too, so these don't race against each other. - In at91_usart_bus_ipend(), reduce duplication in the code dealing with TX interrupts. - In at91_usart_bus_ipend(), turn the code dealing with RX interrupts into an else-if cascade in order reduce its complexity and to improve its run-time behavior. - In at91_usart_bus_ipend(), add missing BUS_DMASYNC_PREREAD calls on the RX buffer map before handing things over to the hardware again. [1] - In at91_usart_bus_getsig(), used a variable of sufficient width for storing the contents of USART_CSR. - Use KOBJMETHOD_END. - Remove an unused header.
Submitted by: Ian Lepore [1] Reviewed by: Ian Lepore
|
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
225214 |
|
27-Aug-2011 |
rwatson |
Follow up to r225203 refining break-to-debugger run-time configuration improvements:
(1) Implement new model in previously missed at91 UART driver (2) Move BREAK_TO_DEBUGGER and ALT_BREAK_TO_DEBUGGER from opt_comconsole.h to opt_kdb.h (spotted by np) (3) Garbage collect now-unused opt_comconsole.h
MFC after: 3 weeks Approved by: re (bz)
|
#
217036 |
|
05-Jan-2011 |
imp |
Remove support for SKYEYE simulator
|
#
213496 |
|
06-Oct-2010 |
cognet |
if_ate.c:
* Support for sam9 "EMAC" controller. * Support for rmii interface to phy.
at91.c & at91sam9.c:
* Eliminate separate at91sam9.c file. * Add new devices to at91sam9_devs table.
at91_machdep.c & at at91sam9_machdep.c:
* Automatic chip type determination. * Remove compile time chip dependencies. * Eliminate separate at91sam9_machdep.c file.
at91_pmc.c:
* Corrected support for all of the sam926? and sam9g20 chips. * Remove compile time chip dependencies.
My apologies to Greg for taking so long to take care of it.
|
#
196246 |
|
15-Aug-2009 |
stas |
- Proprely intialize UART parameters at probe stage, so uart(4) will initialize the FIFO memory correctly on attach. Before that this values was intialized in only in at91_usart_bus_attach which is called after the uart(4) memory allocation happens.
Approved by: re (kib) MFC after: 1 week
|
#
187602 |
|
22-Jan-2009 |
imp |
Migrate towards using at91_master_clock. Initialize the clocks for the serial port class when we set the devclass since it is now no-longer a compile time constant. Eliminate the pci include, as it isn't relevant or necessary.
|
#
185265 |
|
24-Nov-2008 |
imp |
Tweak the disclaimer section of the license to match COPYRIGHT, for better or worse. Ok'd by folks that have additional copyrights to the files in cases where there's joint authorship.
|
#
185049 |
|
18-Nov-2008 |
stas |
- Fix two minor errors in at91 code.
PR: arm/128959 Submitted by: Bjorn Konig <bkoenig@alpha-tierchen.de> Approved by: kib (mentor)
|
#
183670 |
|
07-Oct-2008 |
imp |
Use bus_get_dma_tag() instead of NULL here. Not really needed for atmel at the moment, but it is more correct.
|
#
181158 |
|
02-Aug-2008 |
ed |
Make the at91 uart(4) driver compile again.
As of r178766 this driver didn't compile anymore, because it missed a switch()-statement. I'm getting tired of seeing this driver being broken for two months already. When I run `make universe', everything passes, except the BWCT kernel configuration file.
|
#
178766 |
|
04-May-2008 |
peter |
Expand kdb_alt_break a little, most commonly used with the option ALT_BREAK_TO_DEBUGGER. In addition to "Enter ~ ctrl-B" (to enter the debugger), there is now "Enter ~ ctrl-P" (force panic) and "Enter ~ ctrl-R" (request clean reboot, ala ctrl-alt-del on syscons).
We've used variations of this at work. The force panic sequence is best used with KDB_UNATTENDED for when you just want it to dump and get on with it.
The reboot request is a safer way of getting into single user than a power cycle. eg: you've hosed the ability to log in (pam, rtld, etc). It gives init the reboot signal, which causes an orderly reboot.
I've taken my best guess at what the !x86 and non-sio code changes should be.
This also makes sio release its spinlock before calling KDB/DDB.
|
#
174898 |
|
25-Dec-2007 |
rwatson |
Add a new 'why' argument to kdb_enter(), and a set of constants to use for that argument. This will allow DDB to detect the broad category of reason why the debugger has been entered, which it can use for the purposes of deciding which DDB script to run.
Assign approximate why values to all current consumers of the kdb_enter() interface.
|
#
168281 |
|
02-Apr-2007 |
marcel |
Don't expose the uart_ops structure directly, but instead have it obtained through the uart_class structure. This allows us to declare the uart_class structure as weak and as such allows us to reference it even when it's not compiled-in. It also allows is to get the uart_ops structure by name, which makes it possible to implement the dt tag handling in uart_getenv(). The side-effect of all this is that we're using the uart_class structure more consistently which means that we now also have access to the size of the bus space block needed by the hardware when we map the bus space, eliminating any hardcoding.
|
#
166100 |
|
18-Jan-2007 |
marius |
- Add a uart_rxready() and corresponding device-specific implementations that can be used to check whether receive data is ready, i.e. whether the subsequent call of uart_poll() should return a char, and unlike uart_poll() doesn't actually receive data. - Remove the device-specific implementations of uart_poll() and implement uart_poll() in terms of uart_getc() and the newly added uart_rxready() in order to minimize code duplication. - In sunkbd(4) take advantage of uart_rxready() and use it to implement the polled mode part of sunkbd_check() so we don't need to buffer a potentially read char in the softc. - Fix some mis-indentation in sunkbd_read_char().
Discussed with: marcel
|
#
164969 |
|
06-Dec-2006 |
cognet |
Unbreak build for Skyeye: do not attempt to do any DMA, as Skyeye doesn't emulate it.
Reported by: ru
|
#
160533 |
|
20-Jul-2006 |
cognet |
Fix ALT_BREAK_TO_DEBUGGER on the AT91 : The core uart code expects the receive method to actually puts the characters read into its buffers. For AT91, it's done in the ipend routine, so also check if we have the alternate break sequence here.
MFC after: 3 days
|
#
160357 |
|
14-Jul-2006 |
imp |
Be sure to flush the cache after a partial read on timeout. Expand comments about timeouts. Fix a style nit. Sometimes small messages were getting corrupted.
|
#
160071 |
|
02-Jul-2006 |
imp |
MFp4:
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...
|
#
158531 |
|
13-May-2006 |
cognet |
Resurrect Skyeye support : Add a new option, SKYEYE_WORKAROUNDS, which as the name suggests adds workarounds for things skyeye doesn't simulate. Specifically : - Use USART0 instead of DBGU as the console, make it not use DMA, and manually provoke an interrupt when we're done in the transmit function. - Skyeye maintains an internal counter for clock, but apparently there's no way to access it, so hack the timecounter code to return a value which is increased at every clock interrupts. This is gross, but I didn't find a better way to implement timecounters without hacking Skyeye to get the counter value. - Force the write-back of PTEs once we're done writing them, even if they are supposed to be write-through. I don't know why I have to do that.
|
#
157570 |
|
06-Apr-2006 |
cognet |
MFp4: Catchup with recent UART changes.
|
#
157560 |
|
06-Apr-2006 |
imp |
Optimize the TX side of the part by using the PDC to move bytes out to the wire. This increases the speed considerably. Start to put infrastructure in place to do RX side, but that requires more study before it can be done.
|
#
157023 |
|
22-Mar-2006 |
cognet |
MFp4: Handle break interrupts (it seems to only work for USART, not DBGU).
|
#
156094 |
|
27-Feb-2006 |
cognet |
Get this to compile with the recent UART changes.
|
#
155324 |
|
04-Feb-2006 |
imp |
Import support for the Atmel AT91RM9200 CPU/Microcontroller. This SoC is a ARM920T based CPU with a bunch of built-in peripherals. The inital import supports the SPI bus, the TWI bus (although iicbus integration is not complete), the uarts, the system timer and the onboard ethernet. Support for the Kwikbyte KB9202 (http://www.kwikbyte.com) board is also included, although there's no reason why the 9200 and the 9201 wouldn't also work. Primitive support for running under the skyeye emulator is also provided (although skyeye's support for the AT91RM9200 is a little weak).
The code has been structured so that other members of Atmel's arm family can be supported in the future. The AT91SAM9260 is not presently supported due to lack of hardware. The arm7tdmi families are also not supported becasue they lack an MMU.
Many thanks to cognet@ for his help and assistance in bringing up this board. He did much of the vm work and wrote parts of the uart and system timer code as well as the bus space implementation.
The system boots to single user w/o problem, although the serial console is a little slow and the ethernet driver is still in flux.
This work was sponsored by Timing Solutions, Corporation. I am grateful to their support of the FreeBSD project in this manner.
|