Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/comvar.h
RevisionDateAuthorComments
 1.98  08-Oct-2022  riastradh com(4): Omit never-used sc_vendor_workaround member.
 1.97  06-Oct-2022  riastradh com(4): Add include guards.
 1.96  12-Nov-2021  jmcneill com: Add support for 32-bit IO accesses.
 1.95  12-Oct-2021  thorpej Fix the build by adding 'sc_hup_pending' member to com_softc that
was apparently forgotten.
 1.94  25-Mar-2021  rin Introduce COM_HW_BROKEN_ETXRDY bit in sc_hwflags; push TX queue if
possible in comintr() even if IIR_NOPEND is asserted.

Combined with sc_poll_ticks, this flag works around HW bug, by which
ETXRDY interrupts are (sometimes) lost.
 1.93  25-Mar-2021  rin Introduce sc_poll_ticks and obsolete COM_HW_POLL bit in sc_hwflags.
Polling is scheduled at every sc_poll_ticks ticks.

This is useful to work around H/W bug, by which interrupts are lost
*sometimes*; interrupt-based I/O mostly works and no need for polling
every counter ticks.
 1.92  11-Jan-2019  thorpej branches: 1.92.12; 1.92.14;
Simplify regmap initialization, and fix an regmap issue that
affected TI OMAP (LCR register would get clobbered due to
using the wrong offset for the MDR1 register) reported by Lwazi Dube
(who also found the root cause).
 1.91  11-Dec-2018  thorpej Add a convenience function, com_init_regs_stride(), that shifts the register
offsets and size by the specified amount. Use in front-ends as appropriate.
 1.90  08-Dec-2018  thorpej Remove the COM_REGMAP option -- just use it all the time. While here,
garbage-collect the COM_FUNCMAP and COM_AU1X00 options, as there are
not used anywhere.
 1.89  08-Dec-2018  thorpej Clean up initialization of com_regs structure, in preparation for
some additional changers.
 1.88  30-Nov-2018  jmcneill Add support for com(4) without an interrupt by setting the COM_HW_POLL flag
 1.87  27-May-2018  jmcneill branches: 1.87.2;
Rename COM_TYPE_SUNXI -> COM_TYPE_DW_APB
 1.86  04-Dec-2017  bouyer branches: 1.86.2;
Put back SUNXI definitions in the COM_REGMAP case; com.c uses them
without #ifdef COM_AWIN.
To be safe, expand the register map to 42 entries.
 1.85  04-Dec-2017  bouyer Make it clear that SUNXI registers are not defined/supported in the
COM_REGMAP case
 1.84  29-Oct-2017  jmcneill Make all of the COM_xxx type options runtime selectable. Kernel configs
with the existing options (COM_16650, COM_16750, COM_AWIN, COM_HAYESP, and
COM_PXA2X0) will select the correct type in com_attach_subr. New code
should specify the com type by passing COM_TYPE_xxx to comcnattach and/or
setting sc_type.
 1.83  31-Jul-2017  jmcneill Add COM_TYPE_BCMAUXUART type for BCM2835 AUX UART.
 1.82  27-May-2016  bouyer The UART in the allwiner SoCs is not full-compatible with the 16550, and
it's not a 16750 either. Like the 16750 it has the IIR_BUSY interrupt,
which is triggered when writing to LCR while the chip
can't accept it. But unlike the 16750, it has a specific register,
HALT, to allow writing to the LCR and divisor registers, and then
commit the changes.
Tested on an A20 SoC, changing the baud rate while keeping the
tty device open and incoming data.
 1.81  03-May-2015  jmcneill add COM_TYPE_TEGRA
 1.80  13-Apr-2015  riastradh Convert sys/dev to use <sys/rndsource.h>.
 1.79  22-Nov-2014  macallan branches: 1.79.2;
deal with quirk in Ingenic UARTs
( they have a bit in the FIFO control register which turns the entire
port off if not set )
 1.78  03-Oct-2013  kiyohara branches: 1.78.4;
Revirt 'Move the Marvell extension to com_mv.c' at Sun Sep 1 04:51:24 UTC 2013.
build test only.
 1.77  03-Sep-2013  jmcneill no EFR on tl16c750, use AFE bit on MCR reg instead for flow control
 1.76  01-Sep-2013  kiyohara Move the Marvell extension to com_mv.c.
 1.75  17-Jul-2013  soren Fix COM_16750 build for non-COM_REGMAP platforms.
 1.74  20-Apr-2013  rkujawa branches: 1.74.4; 1.74.6;
Add support for 16750 style UARTs. Activated by defining COM_16750.

Obtained from Marvell, Semihalf.
 1.73  02-Feb-2012  tls branches: 1.73.6;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.72  19-Nov-2011  tls branches: 1.72.2;
First step of random number subsystem rework described in
<20111022023242.BA26F14A158@mail.netbsd.org>. This change includes
the following:

An initial cleanup and minor reorganization of the entropy pool
code in sys/dev/rnd.c and sys/dev/rndpool.c. Several bugs are
fixed. Some effort is made to accumulate entropy more quickly at
boot time.

A generic interface, "rndsink", is added, for stream generators to
request that they be re-keyed with good quality entropy from the pool
as soon as it is available.

The arc4random()/arc4randbytes() implementation in libkern is
adjusted to use the rndsink interface for rekeying, which helps
address the problem of low-quality keys at boot time.

An implementation of the FIPS 140-2 statistical tests for random
number generator quality is provided (libkern/rngtest.c). This
is based on Greg Rose's implementation from Qualcomm.

A new random stream generator, nist_ctr_drbg, is provided. It is
based on an implementation of the NIST SP800-90 CTR_DRBG by
Henric Jungheim. This generator users AES in a modified counter
mode to generate a backtracking-resistant random stream.

An abstraction layer, "cprng", is provided for in-kernel consumers
of randomness. The arc4random/arc4randbytes API is deprecated for
in-kernel use. It is replaced by "cprng_strong". The current
cprng_fast implementation wraps the existing arc4random
implementation. The current cprng_strong implementation wraps the
new CTR_DRBG implementation. Both interfaces are rekeyed from
the entropy pool automatically at intervals justifiable from best
current cryptographic practice.

In some quick tests, cprng_fast() is about the same speed as
the old arc4randbytes(), and cprng_strong() is about 20% faster
than rnd_extract_data(). Performance is expected to improve.

The AES code in src/crypto/rijndael is no longer an optional
kernel component, as it is required by cprng_strong, which is
not an optional kernel component.

The entropy pool output is subjected to the rngtest tests at
startup time; if it fails, the system will reboot. There is
approximately a 3/10000 chance of a false positive from these
tests. Entropy pool _input_ from hardware random numbers is
subjected to the rngtest tests at attach time, as well as the
FIPS continuous-output test, to detect bad or stuck hardware
RNGs; if any are detected, they are detached, but the system
continues to run.

A problem with rndctl(8) is fixed -- datastructures with
pointers in arrays are no longer passed to userspace (this
was not a security problem, but rather a major issue for
compat32). A new kernel will require a new rndctl.

The sysctl kern.arandom() and kern.urandom() nodes are hooked
up to the new generators, but the /dev/*random pseudodevices
are not, yet.

Manual pages for the new kernel interfaces are forthcoming.
 1.71  13-Nov-2010  uebayasi branches: 1.71.8;
Some missing sys/device.h dependencies.
 1.70  24-Feb-2010  dyoung branches: 1.70.2;
A pointer typedef entails trading too much flexibility to declare const
and non-const types, and the kernel uses both const and non-const
PMF qualifiers and device suspensors, so change the pmf_qual_t and
device_suspensor_t typedefs from "pointers to const" to non-pointer,
non-const types.
 1.69  08-Jan-2010  dyoung branches: 1.69.2;
Expand PMF_FN_* macros.
 1.68  12-Nov-2009  dyoung Delete definition of com_activate(), it's been removed.
 1.67  12-Nov-2009  dyoung Move the code in com_activate() to com_detach(), where it always
belonged. Remove com_activate().

Consolidate information about the console on com(4) in a new struct
comcons_info.

Support detachment & re-attachment of a system console on com(4).
Re-attachment is somehow incomplete. Ideally, if some other device
could take over as console, it would, but we're not quite there,
yet.
 1.66  27-May-2009  rjs Put back CVS header.
 1.65  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.64  03-May-2009  tsutsui Make COM_RING_SIZE configurable by kernel config(5).
 1.63  24-Oct-2008  matt branches: 1.63.8;
Add support for 16550 chips without an Enhanced Register Set.
 1.62  28-Apr-2008  matt branches: 1.62.6;
More forgotten changes from matt-armv6.
 1.61  14-Mar-2008  cube branches: 1.61.2; 1.61.4;
Split device_t and softc for all com(4) devices (well, everything that
uses a com_softc backend). Use proper types and ansify where appropriate.
 1.60  29-Feb-2008  dyoung Use pmf_device_register1() instead of shutdownhook_establish() to
register com_cleanup() as the shutdown hook.

Add a generic suspend routine. Suspend and resume com@isa.

Protect against dereferencing a NULL softc in comioctl().

Destroy both a mutex and a callout in com_detach().

Cosmetic: use aprint_*_dev(). Use PMF_FN_ARGS, PMF_FN_PROTO.
 1.59  20-Jan-2008  joerg branches: 1.59.2; 1.59.6;
Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
 1.58  14-Dec-2007  dyoung Add a resume handler for com@isa, using Jared McNeill's suggested
code from current-users. com@acpi, et cetera, remain to be done.
 1.57  17-Oct-2007  ad branches: 1.57.4; 1.57.6; 1.57.10;
Make it build without IPL_SERIAL.
 1.56  08-Oct-2007  ad Merge from vmlocking: use mutexes and the softint API.
 1.55  14-Jul-2007  ad branches: 1.55.6; 1.55.8; 1.55.10;
Generic soft interrupts are mandatory.
 1.54  13-Jul-2006  gdamore branches: 1.54.14;
Add an option COM_REGMAP to allow com(4) to use an array of register indices.
This allows us to convert aucom to just another com attachment, and cleanup
some code in the com_arbus.c.

Additionally, we use a common com_cleanup routine rather than having a
zillion copies of it in the attachment points.

This has been tested on a number architectures, and it has been shown to get
close to comparable performance when COM_REGMAP is defined, and comparable
when it is not defined.

Approved by core@. Fixes PR port-evbmips/32362.
 1.53  25-Jun-2006  perry Add a power hook for the com device.
 1.52  07-Jun-2006  kardel branches: 1.52.2;
merge FreeBSD timecounters from branch simonb-timecounters
- struct timeval time is gone
time.tv_sec -> time_second
- struct timeval mono_time is gone
mono_time.tv_sec -> time_uptime
- access to time via
{get,}{micro,nano,bin}time()
get* versions are fast but less precise
- support NTP nanokernel implementation (NTP API 4)
- further reading:
Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf
NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
 1.51  05-Mar-2006  christos branches: 1.51.6;
cleanup more SET/CLR/ISSET lossage
 1.50  27-Dec-2005  chs branches: 1.50.4; 1.50.6; 1.50.8;
remove the COM_MPLOCK option. always include the spinlock in the softc
and always call the simple_* locking functions. the locking functions
are compiled out if they are not needed anyway, so a separate option
for this doesn't gain anything.

this also fixes the serial console on my alpha ES40 (which doesn't make much
sense since the com driver should still be under the big lock on alpha,
but whatever).
 1.49  11-Dec-2005  christos merge ktrace-lwp.
 1.48  04-Feb-2005  perry branches: 1.48.6;
de-__P
 1.47  08-Nov-2003  simonb branches: 1.47.8; 1.47.10;
Add (as yet unused) COM_TYPE_AU1x00.
 1.46  14-Jun-2003  thorpej branches: 1.46.2;
Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
 1.45  14-Jun-2003  thorpej Introduce a new "type" field in the softc which is used to indicate
the general UART type. Currently, we have "normal", "hayesp" and
"pxa2x0" types. Replace the corresponding hw flags with the new type
values.
 1.44  05-Jun-2003  scw Add support, via a kernel config file option, for the 16550-compatible
com ports found on Intel PXA2x0 processors.

Re-arrange the code which detects the FIFO configuration to defer
printing until _after_ com_fifo is cleared. Some supposedly compatible
chips clear the Tx/Rx FIFOs when this happens, resulting in previous
output being lost.
 1.43  12-Apr-2002  thorpej * Add a new hwflag, COM_HW_NO_TXPRELOAD, which tells comstart() to
not pre-load the chip's Tx buffer, but instead waits for the Tx Ready
interrupt to transmit the first chunk of data.
* On the IOP310, set COM_HW_NO_TXPRELOAD, rather than COM_HW_TXFIFO_DISABLE.

This solves the "UART hangs" problem on the Npwr in a nicer way (i.e. we
get to use the FIFO, whee). The COM_HW_NO_TXPRELOAD happens to match the
Linux 16550 driver's Tx algorithm, and the "UART hang" was never observed
on the Npwr running Linux.

Eventually, we might want to eliminate the COM_HW_NO_TXPRELOAD, and simply
always use its algorithm. But it should be tested on more 16x50 variants
before we do that.

Kudos to Valeriy Ushakov <uwe@netbsd.org> for pointing out this solution
(which also happens to fix the stray UART interrupt issue on the Krups
Javastation), and to Allen Briggs <briggs@netbsd.org> for experimenting
with various methods of fixing this.
 1.42  27-Aug-2001  enami For hayes esp card, set prescaler if specified rate is grater than 115200.
 1.41  22-Aug-2001  simonb Cosmetic cleanups:
- cominit() is local to com.c, remove prototype from comvar.h.
- Don't prototype comstop(), cdev_decl(com) does this.
- Don't use a block device switch table declaration(!).
- No need to include "com.h".
 1.40  30-May-2001  lukem branches: 1.40.2;
add missing #include "opt_kgdb.h"
 1.39  14-Jan-2001  thorpej branches: 1.39.2;
Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
and place the definition in <machine/types.h>. This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
 1.38  07-Jan-2001  sommerfeld Make certain we see COM_MPLOCK, MULTIPROCESSOR, and LOCKDEBUG
to avoid any confusion about whether or not we have a lock in the softc.
 1.37  06-Oct-2000  nathanw Change int->bus_addr_t in com_kgdb_attach() prototype.
Compiles again with KGDB enabled.
 1.36  23-Sep-2000  sommerfeld Add `COM_MPLOCK' option to use a device-instance-specific spinlocks
when running at splserial(). This is a temporary measure (until
there's a MP-safe interrupt handling structure); until then, it should
be used when MULTIPROCESSOR and IPL_SERIAL > IPL_SCHED.
 1.35  23-Sep-2000  bjh21 paddr_t -> bus_addr_t in prototypes too.
 1.34  22-Sep-2000  eeh paddr_t -> bus_addr_t.
 1.33  21-Sep-2000  eeh Support for SPARC machines with `su' devices.
 1.32  23-Mar-2000  thorpej New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
 1.31  23-Jan-2000  soda kluge to make this work with NEC M403 (arc/magnum).
 1.30  03-Feb-1999  mycroft branches: 1.30.8;
Slight redux in PPS code.
 1.29  18-Nov-1998  thorpej Add support for detaching "com" instances.
 1.28  21-Sep-1998  matt Add softserial to the alpha port. This significantly improved PPP
throughput on com ports.
 1.27  16-Sep-1998  is Garbage collect unused 3rd parameter to comprobe1().
 1.26  11-Sep-1998  jonathan Add arc as a target platform.
 1.25  05-Sep-1998  mark arm32 now supports soft serial interrupts.
 1.24  11-Jun-1998  thorpej Pull in <sys/timepps.h> here so that other things that include comvar.h
will compile.
 1.23  10-Jun-1998  jonathan PPS support from April, reworked and extended to match the PPS-API
Internet Draft (draft-mogul-pps-api-02.txt).
 1.22  02-Feb-1998  cgd change #ifdefs keying on "alpha" to key on "__NO_SOFT_SERIAL_INTERRUPT"
instead, and define that on NetBSD/alpha and NetBSD/arm32.
 1.21  02-Feb-1998  cgd Implement a flag to indicate that the driver attached correctly.
This is useful in the case where an attachment's probe routine
verifies that there is indeed hardware present but something goes
"wrong" in the attach causing the device to be unusable. (Without
keeping track of this, in that case incorrect ports could be
accessed or uninitted pointers could be deferenced on open or at
other times.)
 1.20  01-Feb-1998  marc add power management hooks to softc
 1.19  03-Nov-1997  mycroft Mostly cosmetic and performance changes:
* Make the ring buffer size and water marks patchable, and allocate the buffer
separately.
* Do the ttymalloc() at attach time.
* Reorganize the receive buffer so the status and data pair are next to each
other. This is slightly faster.
* Make sure we actually do turn off interrupts in comclose() if we have DDB
configured and it's not the console. (D'oh!!!!)
* When we exhaust the current transmit run, turn off transmit interrupts in
comintr(), so we're fairly sure we don't get another one.
* Nuke the silly lsrmap[] idea; it's slower in the normal case.
* Cache the l_rint pointer in the soft interrupt routine.
 1.18  19-Oct-1997  fvdl branches: 1.18.2;
Add 16650 hardware flowcontrol support. Basically PR 3844 from
Dave Huang <khym@bga.com>, with added check for broken early versions
of the 16650, taken from the Linux driver.

This should be extended to use, for example, higher trigger levels for
the bigger 16650 FIFO, and its capability for using a smaller divisor
and thus higher speeds. But this patch is very useful for 16650 users
already.
 1.17  19-Oct-1997  explorer Add hooks for entropy collection. Right now, you must place
options RND_COM
in your kernel config file (along with the
pseudo-device rnd
line) to enable this. If results are positive, I will make this enabled
by default.
 1.16  15-Oct-1997  thorpej branches: 1.16.2;
Pulldown from marc-pcmcia branch.
 1.15  16-Sep-1997  is Support for the upcoming NetBSD/Amiga Hypercom driver family:
* support chip clocks != COM_FREQ, by introducing sc_frequency (for the
mainline code) and adding a frequency parameter right after the rate
parameter to comcnattach() and com_kgdb_attach().
- Make com_isa and com_multi initialize sc_frequency to COM_FREQ.
- Make i386/machdep.c and alpha/dec_xxx.c call com*attach() with the freq.
parameter.
* supio_attach_args get two more fields: a sc_ipl and a sc_arg, both ints.
- com_supio uses the first for interupt establishment (all childs will, as
soon as they exist) and the 2nd for sc_frequency.
- drsupio passes sc_ipl alway as 5, and for the "com"s, sc_arg as 16*115200
- hyper will pass sc_ipl as 6, and sc_arg as 16 * 460800
 1.14  23-Aug-1997  drochner clean up the serial console / KGDB attachment:
-put all early console / KGDB initialization into 1 exported function
(com_*_attach()) each, dont use global variables anymore
-use the passed tcflag_t for port settings instead of hardwiring 8N1
-at autoconfiguration attach time, decide if the attaching device is
already console / KGDB by comparing bus tag and base addr (cgd's wish)
-export a function "com_is_console()" for use by driver frontends for
this comparision
-delay setting of cn_tab->cn_dev until autoconfiguration attach
to get the minor number right
-delete unused comcnprobe() and comcninit()
 1.13  14-Aug-1997  drochner -Export variables needed for system console initialization.
-Enable line break interrupt for DDB on a serial console.
-Share initialization code between DDB and KGDB.
 1.12  12-Aug-1997  drochner KGDB improvements:
-Separate KGDB port initialization and softc related stuff to allow
KGDB to be attached in early system startup, before autoconfiguration.
-Export the variables needed by md code to hand-craft bus tag/handle.
-Fix initialization to enable interrupt by line break.
-Call DDB/KGDB at line break (move DDB call from the softirq handler
to the hard handler because it should work without a tty attached too).
 1.11  05-Jul-1997  thorpej branches: 1.11.2;
Add support for remote serial KGDB.
 1.10  15-Jun-1997  mycroft Implement a better backpressure mechanism so that data is collected
in the driver's buffer if the tty buffer is full. If the driver's buffer
becomes full, turn off receive interrupts until it drains a bit.
 1.9  24-May-1997  thorpej Where _is_ that brick when you need it?!
 1.8  04-Apr-1997  mycroft New version of com driver. Uses a different queueing mechanism and a split
hardware/software interrupt mechanism for improved performance. Many odd
protocols bugs also fixed.
 1.7  13-Nov-1996  cgd move cominit() prototype to comvar.h, so that ports which use 'com'
for serial console, but don't use the (i386-specific)
comcninit()/comcnprobe() functions, can do the right thing.
 1.6  21-Oct-1996  thorpej New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
devices. It's all "bus space" now, and space tags
differentiate the space with finer grain than the
bus chipset tag.
- Add memory barrier methods.
- Implement space alloc/free methods.
- Implement region read/write methods (like memcpy to/from
bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
 1.5  05-May-1996  christos Move comintr() prototype to comvar.h; needed by the multi-port cards.
 1.4  15-Apr-1996  cgd define and export the global variable "comconscflag", the default tty
'cflag' for the console. Normally set to TTYDEF_CFLAG, may be
overridden by machine-dependent console attachment code, as necessary.
(Alpha uses it to set cs8 -parenb.) Files including comvar.h now
need to include <sys/termios.h>, because comconscflag is of type
tcflag_t.
 1.3  10-Mar-1996  cgd convert these to use new <machine/bus.h> interfaces. This involved
substantial reworking of the multi-port drivers, as they need to frob
bits in the io-port spaces of their children. As a result, the
commulti->com attachment interface is substantially more complex.
(This may be fixable in the future by making some of the code common,
but as long as io-port allocation checking is planned, it's necessary.)
 1.2  09-Mar-1996  cgd Fix copyright year
 1.1  09-Mar-1996  cgd define the common structure used to attach 'com' units as slaves to
multiport cards. prototype comprobe1(), which is used by multiport card
drivers.
 1.11.2.5  15-Oct-1997  thorpej Move a few bus-specific things into bus-specific softc structures and
nesting a com_softc within them.
 1.11.2.4  22-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.11.2.3  27-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.11.2.2  23-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.11.2.1  30-Jul-1997  marc added pcmcia infrastructure and a few devices
 1.16.2.2  16-Oct-1997  thorpej Sync w/ trunk.
 1.16.2.1  15-Oct-1997  thorpej file comvar.h was added on branch marc-pcmcia on 1997-10-16 00:04:18 +0000
 1.18.2.1  04-Nov-1997  mellon Pull rev 1.19 up from trunk (mycroft)
 1.30.8.2  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.30.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.39.2.3  17-Apr-2002  nathanw Catch up to -current.
 1.39.2.2  21-Sep-2001  nathanw Catch up to -current.
 1.39.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.40.2.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.40.2.2  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.40.2.1  25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.46.2.4  04-Feb-2005  skrll Sync with HEAD.
 1.46.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.46.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.46.2.1  03-Aug-2004  skrll Sync with HEAD
 1.47.10.1  12-Feb-2005  yamt sync with head.
 1.47.8.1  29-Apr-2005  kent sync with -current
 1.48.6.6  17-Mar-2008  yamt sync with head.
 1.48.6.5  21-Jan-2008  yamt sync with head
 1.48.6.4  27-Oct-2007  yamt sync with head.
 1.48.6.3  03-Sep-2007  yamt sync with head.
 1.48.6.2  30-Dec-2006  yamt sync with head.
 1.48.6.1  21-Jun-2006  yamt sync with head.
 1.50.8.3  11-Aug-2006  yamt sync with head
 1.50.8.2  26-Jun-2006  yamt sync with head.
 1.50.8.1  13-Mar-2006  yamt sync with head.
 1.50.6.2  22-Apr-2006  simonb Sync with head.
 1.50.6.1  04-Feb-2006  simonb Adapt for timecounters and newer PPS API.
 1.50.4.1  09-Sep-2006  rpaulo sync with head
 1.51.6.1  19-Jun-2006  chap Sync with head.
 1.52.2.6  13-Jul-2006  gdamore Merge from HEAD.
 1.52.2.5  17-Jun-2006  gdamore Yes, I'm restoring COM_INIT_REGS and removing the compatibility #define's
for sc_iot and friends. Those defines break things, like say ast.c, where
comvar.h is included, but a local sc_iot structure member is also used.
 1.52.2.4  17-Jun-2006  gdamore Per tsutsui@, I'm removing COM_INIT_REGS, and adding a flag to make the
map initialization automatic. This breaks this whole tree again, so I pretty
much have to start over going back thru old code to make it all compatible.
 1.52.2.3  16-Jun-2006  gdamore "make the \'s pretty". hi simon.
 1.52.2.2  16-Jun-2006  gdamore KNF per simonb@ consisting of:
regs.xx -> regs.cr_xxx
wrap COM_INIT_REGS body with do { } while (0);)
Convert INB/OUTB macros to CSR_READ/CSR_WRITE macros per tsutsui@.
 1.52.2.1  15-Jun-2006  gdamore Initial com framework changes. These changes bust *all* com consumers, but
follow-up commits shortly will fix many of them, so that i386, sparc, and
some evbmips ports at least work.
 1.54.14.2  23-Oct-2007  ad Sync with head.
 1.54.14.1  01-Jul-2007  ad - Generic soft interrupts are mandatory, remove the kludges.
- Adapt to callout API change.
- Use mutexes.
 1.55.10.2  18-Oct-2007  yamt sync with head.
 1.55.10.1  14-Oct-2007  yamt sync with head.
 1.55.8.4  23-Mar-2008  matt sync with HEAD
 1.55.8.3  09-Jan-2008  matt sync with HEAD
 1.55.8.2  06-Nov-2007  matt sync with HEAD
 1.55.8.1  29-Oct-2007  matt Add support for OMAP specific com type.
 1.55.6.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.57.10.2  23-Jan-2008  bouyer Sync with HEAD.
 1.57.10.1  02-Jan-2008  bouyer Sync with HEAD
 1.57.6.1  26-Dec-2007  ad Sync with head.
 1.57.4.1  18-Feb-2008  mjf Sync with HEAD.
 1.59.6.3  17-Jan-2009  mjf Sync with HEAD.
 1.59.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.59.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.59.2.1  24-Mar-2008  keiichi sync with head.
 1.61.4.5  11-Mar-2010  yamt sync with head
 1.61.4.4  20-Jun-2009  yamt sync with head
 1.61.4.3  16-May-2009  yamt sync with head
 1.61.4.2  04-May-2009  yamt sync with head.
 1.61.4.1  16-May-2008  yamt sync with head.
 1.61.2.1  18-May-2008  yamt sync with head.
 1.62.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.63.8.2  23-Jul-2009  jym Sync with HEAD.
 1.63.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.69.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.70.2.1  05-Mar-2011  rmind sync with head
 1.71.8.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.71.8.1  17-Apr-2012  yamt sync with head
 1.72.2.1  18-Feb-2012  mrg merge to -current.
 1.73.6.3  03-Dec-2017  jdolecek update from HEAD
 1.73.6.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.73.6.1  23-Jun-2013  tls resync from head
 1.74.6.1  23-Jul-2013  riastradh sync with HEAD
 1.74.4.2  18-May-2014  rmind sync with head
 1.74.4.1  28-Aug-2013  rmind sync with head
 1.78.4.1  22-Jun-2016  snj Pull up following revision(s) (requested by bouyer in ticket #1178):
sys/arch/arm/allwinner/files.awin: revision 1.36
sys/conf/files: revision 1.1159
sys/dev/ic/com.c: revision 1.339
sys/dev/ic/comreg.h: revision 1.25
sys/dev/ic/comvar.h: revision 1.82
sys/dev/ic/ns16550reg.h: revision 1.11
The UART in the allwiner SoCs is not full-compatible with the 16550, and
it's not a 16750 either. Like the 16750 it has the IIR_BUSY interrupt,
which is triggered when writing to LCR while the chip
can't accept it. But unlike the 16750, it has a specific register,
HALT, to allow writing to the LCR and divisor registers, and then
commit the changes.
Tested on an A20 SoC, changing the baud rate while keeping the
tty device open and incoming data.
 1.79.2.3  28-Aug-2017  skrll Sync with HEAD
 1.79.2.2  29-May-2016  skrll Sync with HEAD
 1.79.2.1  06-Jun-2015  skrll Sync with HEAD
 1.86.2.3  18-Jan-2019  pgoyette Synch with HEAD
 1.86.2.2  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.86.2.1  25-Jun-2018  pgoyette Sync with HEAD
 1.87.2.1  10-Jun-2019  christos Sync with HEAD
 1.92.14.1  03-Apr-2021  thorpej Sync with HEAD.
 1.92.12.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed