Commit Graph

762 Commits

Author SHA1 Message Date
thorpej
0aa15bdf33 Add support for "xor5", "xor6", "xor7", and "xor8". 2002-08-04 02:26:18 +00:00
thorpej
3b50c1710c * Define the 8-input, 16-input, and 32-input descriptors.
* Adjust descriptor sync'ing to work with the additional descriptor
  formats.
2002-08-03 21:58:55 +00:00
thorpej
a39c3378b6 Restructure the iopaau_function slightly to provide greater
flexibility when using different descriptor formats.
2002-08-03 21:31:16 +00:00
thorpej
c070073d8e Add support for xor2, xor3, and xor4. Fix inverted direction
indications in some bus_dma operations.
2002-08-02 06:52:16 +00:00
thorpej
58983a92ba Let the "zero" and "fill8" functions share a bunch of code. 2002-08-02 02:08:11 +00:00
thorpej
f7328ddbe7 Add dmoverio. 2002-08-02 00:50:25 +00:00
thorpej
321a514c93 Grr, RCS ID tag typo. 2002-08-02 00:36:38 +00:00
thorpej
036da55e8f Add support for the Intel i80321 I/O Processor's Application Accelerator
Unit.  The AAU provides block fill, block copy, XOR, and XOR-parity-check
operations.  We currently provide dmover(9) functions for "zero", "fill8",
and "copy".

Much of this code can be shared with the i80312 Companion I/O AAU, and
will be when support for the older chip is implemented.
2002-08-02 00:35:47 +00:00
thorpej
d038c91c0c Delete all the AAU register definitions; they are moved to a separate
file in a future commit.
2002-08-02 00:33:29 +00:00
thorpej
e3e6d7dfa5 Move the DMA tag initialization functions into i80312.c. 2002-08-01 19:55:02 +00:00
thorpej
f546baba66 Move the DMA tag initialization functions into i80321.c. 2002-08-01 19:40:07 +00:00
thorpej
dce4476374 Overhaul how DMA ranges work in the ARM bus_dma implementation.
A new "arm32_dma_range" structure now describes a DMA window, with
a system address base, bus address base, and length.  In addition to
providing info about which memory regions are legal for DMA, the new
structure provides address translation support, as well.

As before, if a tag does not list any ranges, then all addresses are
considered valid, and no DMA address translation is performed.

This allows us to remove a large chunk of code which was duplicated and
tweaked slightly (to do the address translation) from the stock ARM
bus_dma in the XScale IOP and ARM Integrator ports.

Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.
2002-07-31 17:34:23 +00:00
thorpej
79af00bddb Move the calls to uvm_page_physload() out of pmap_bootstrap() and
into platform-specific initialization code, giving platform-specific
code control over which free list a given chunk of memory gets put
onto.

Changes are essentially mechanical.  Test compiled for all ARM
platforms, test booted on Intel IQ80321 and Shark.

Discussed some time ago on port-arm.
2002-07-31 00:20:51 +00:00
thorpej
d3aa5664b7 Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().
2002-07-30 16:16:38 +00:00
thorpej
3dcad9ac9e Don't use pmap_kenter_pa() in pmap_map(); doing so causes an assertion
failure in pmap_kenter_pa().
2002-07-30 16:07:23 +00:00
thorpej
5fed6739d9 Use more descriptive interrupt names. 2002-07-30 04:45:41 +00:00
thorpej
d8eb148780 Clean up some comments. 2002-07-29 22:00:00 +00:00
thorpej
2bbd3be11a Add support for the i80321 watchdog timer. 2002-07-29 18:40:04 +00:00
thorpej
3ab4598cc0 Add sysmon at cdev 101. 2002-07-29 18:26:58 +00:00
thorpej
2367c7fff8 Add support for attaching IOP built-in sub-devices (aau, dma, ssp,
watchdog, etc.)
2002-07-29 17:37:14 +00:00
thorpej
c92ad565ad * Remove some AAU definitions -- they will be defined elsewhere in
a future commit.
* Fix a typo in the watchdog enable names.
* Add SSP (synchronous serial port, for SPI, Microwire, etc.) definitions.
2002-07-29 17:28:06 +00:00
thorpej
7b652cb939 Change the way that DMA map syncs are done. Instead of remembering
the virtual address for each DMA segment, just cache a pointer to the
original buffer/buftype used to load the DMA map, and use that.  This
lets us shrink the bus_dma_segment_t down from 12 bytes to 8, and the
cache flushing is also more efficient.

Tested on an i80321 -- changes to others are mechanical.
2002-07-28 17:54:05 +00:00
thorpej
efe71a8aac Add support for DMA to/from the on-chip devices of the i80321 (no
PCI window translation).

XXX This would be better done by overhauling the shared ARM bus_dma code.
2002-07-25 15:00:48 +00:00
briggs
c13ee269dd Handle i80200 step D0 and i80321 step B0 2002-07-22 18:17:42 +00:00
ichiro
6349df15da cdev_tty_init(NIXPCOM,ixpcom) move to end of cdevsw array 2002-07-22 01:12:24 +00:00
ichiro
517449c38c some bug fix and cosmetic changes 2002-07-21 14:19:43 +00:00
ichiro
2556a42f35 attach/match separated from ixp12x0_com
Some bug of com driver have been improved.
2002-07-20 03:09:03 +00:00
simonb
895a23e8ae Add an "#ifndef NIXPCOM" check so that this builds on non-evbarm. 2002-07-20 00:26:51 +00:00
ichiro
0fa83706ca make compile "IPAQ" 2002-07-19 19:29:28 +00:00
ichiro
ca24dad921 make compile 2002-07-19 19:07:33 +00:00
ichiro
a52924b3fa change include path 2002-07-19 18:36:26 +00:00
ichiro
08dbae76fb sync to hpcarm/sa11x0
later, remove hpcarm/sa11x0
2002-07-19 18:26:56 +00:00
thorpej
3912e469dd Rename cdev_systrace_init() to cdev_clonemisc_init(), so it can
be properly used by any misc. cloning device.  While here, correct
a comment to indicate that "open" is the only entry point and that
everything else is handled with fileops.
2002-07-19 16:38:14 +00:00
ichiro
2255ed4ecb add ixpcom to cdevsw 2002-07-16 14:20:04 +00:00
ichiro
7374c0afee add support for ixp12x0 2002-07-15 16:27:15 +00:00
ichiro
83c0b66d47 add cpu id for "PXA250/210 3rd version CPUcore".
for using many PDA/xscale-core.
2002-07-10 07:00:50 +00:00
thorpej
011d4d5f44 Add kernel support for having userland provide the signal trampoline:
* struct sigacts gets a new sigact_sigdesc structure, which has the
  sigaction and the trampoline/version.  Version 0 means "legacy kernel
  provided trampoline".  Other versions are coordinated with machine-
  dependent code in libc.
* sigaction1() grows two more arguments -- the trampoline pointer and
  the trampoline version.
* A new __sigaction_sigtramp() system call is provided to register a
  trampoline along with a signal handler.
* The handler is no longer passed to sensig() functions.  Instead,
  sendsig() looks up the handler by peeking in the sigacts for the
  process getting the signal (since it has to look in there for the
  trampoline anyway).
* Native sendsig() functions now select the appropriate trampoline and
  its arguments based on the trampoline version in the sigacts.

Changes to libc to use the new facility will be checked in later.  Kernel
version not bumped; we will ride the 1.6C bump made recently.
2002-07-04 23:32:02 +00:00
junyoung
3d826105dc alloc_attr -> allocattr
Approved by Matthias Drochner.
2002-07-04 14:37:10 +00:00
thorpej
47506c123a Add kttcp device. 2002-06-30 23:30:07 +00:00
briggs
1b3d605b4e Remove complaint: bus_dmamap_destroy() called for map with valid
mappings bus_dma(9) states: "In the event that the DMA handle contains
a valid mapping, the mapping will be unloaded via the same mechanism
used by bus_dmamap_unload()."  And some drivers do mean to skip the
unload step.
2002-06-28 15:21:00 +00:00
thorpej
7704072be3 Correct a comment. 2002-06-25 19:41:08 +00:00
thorpej
fea38885e8 * Interrupt status is in cp13.4, not cp13.1 (D'oh!)
* Fix an inverted test.
2002-06-25 19:40:46 +00:00
thorpej
f2bff71e47 Interrupt steering register is cp13.8, not cp13.2 (D'oh!). 2002-06-25 19:39:51 +00:00
thorpej
9cb2f482f0 When delivering a signal, arrange to have the handler invoked directly,
using the trampoline only for the return.  This saves two instructions
in the trampoline, one of them being a branch.
2002-06-23 19:16:43 +00:00
thorpej
43e7ad972b Garbage-collect sigframe references. 2002-06-23 00:16:59 +00:00
thorpej
31404c3f2e When delivering a signal, there is no need to push the signal number,
code, context pointer, or handler onto the stack, so don't do so.
2002-06-23 00:16:20 +00:00
bjh21
7fa10fa259 Rather than explicitly masking and sign-extending 16-bit integers, use
u_int16_t and int16_t for the X and Y count registers.  GCC produces better
code this way.
2002-06-20 19:33:36 +00:00
bjh21
c62bc841d0 Rather than explicitly masking and sign-extending 16-bit integers, use
u_int16_t and int16_t for the X and Y count registers.  GCC produces better
code this way.

Also, initialise the stored state in wsqms_enable(), so that the mouse doesn't
warp to a random position on open.
2002-06-20 19:33:20 +00:00
bjh21
4244560bbc More wsqms cleanups:
sc_flags was never read.  G/C it.
wsqms_attach() took two arguments that pointed to the same structure.  G/C one
  of them
Since wsqms controls the same device as qms, have it match the same attach
  args.
2002-06-19 23:49:14 +00:00
bjh21
cccb2d97a7 ANSIfy, un-__P, clean comments a little. 2002-06-19 23:12:14 +00:00