Commit Graph

1627 Commits

Author SHA1 Message Date
bsh
4f5b0f1294 add CPU ID for Bulverde 2004-04-13 19:14:34 +00:00
bsh
34d29162ae fake that the PS/2 kbd/mouse controller of SA-1111 has two slots.
This is necessary to attach a pms driver to sackbc.
2004-04-06 01:32:17 +00:00
bsh
9a78d53bf0 whitespace nits. 2004-04-06 01:16:34 +00:00
bsh
1a02d3b6e1 pmap_pte_init_arm9() is necessary only when defined(CPU_ARM9) and defined(ARM9_CACHE_WRITE_THROUGH) 2004-04-03 04:35:48 +00:00
bsh
16cf047697 add an option to force ARM9 dcache to write-through mode. 2004-04-03 04:34:40 +00:00
drochner
c83eb997b8 nothing cares about __HAVE_SIGINFO anymore, so nuke it 2004-03-26 21:39:57 +00:00
drochner
ae94c80224 fix references to the syscall formerly known as SYS___sigreturn14 2004-03-26 19:05:33 +00:00
drochner
cf8b697c65 remove license clauses 3 and 4 from my cpoyright notices 2004-03-24 17:06:57 +00:00
ws
0d0b70f9e6 Fix Frank Lancaster's long standing broken license (after consulting with him). 2004-03-24 16:39:53 +00:00
ws
fc20faec01 Fix Frank Lancaster's broken license (after consulting with him).
Pointed out by wiz.
2004-03-24 16:39:52 +00:00
atatat
19af35fd0d Tango on sysctl_createv() and flags. The flags have all been renamed,
and sysctl_createv() now uses more arguments.
2004-03-24 15:34:46 +00:00
cl
ea5ec0212d add kernel part of concurrency support for SA on MP systems
- move per VP data into struct sadata_vp referenced from l->l_savp
  * VP id
  * lock on VP data
  * LWP on VP
  * recently blocked LWP on VP
  * queue of LWPs woken which ran on this VP before sleep
  * faultaddr
  * LWP cache for upcalls
  * upcall queue
- add current concurrency and requested concurrency variables
- make process exit run LWP on all VPs
- make signal delivery consider all VPs
- make timer events consider all VPs
- add sa_newsavp to allocate new sadata_vp structure
- add sa_increaseconcurrency to prepare new VP
- make sys_sa_setconcurrency request new VP or wakeup idle VP
- make sa_yield lower current concurrency
- set sa_cpu = VP id in upcalls
- maintain cached LWPs per VP
2004-03-14 01:08:47 +00:00
bjh21
e4247411fe Rename wsqms(4) to qms(4), since the "ws" is redundant now. While I'm here,
bundle it all into a single file, qms.c, replacing wsqms.c, wsqms_iomd.c,
and wsqmsvar.h.
2004-03-13 19:27:40 +00:00
bjh21
0d2fbdc9ee Add part of iomdkbc(4) that I missed last time. 2004-03-13 19:23:36 +00:00
bjh21
b8d9d01177 Rename arch/acorn32/dev/wskbdmap_mfii.c to arch/acorn32/dev/wskbdmap_mfii_rpc.c
to avoid config(8) confusion with dev/pckbport/wskbdmap_mfii.c.
2004-03-13 19:20:50 +00:00
bjh21
e63a7e9215 Remove support for freezing console on mouse-button presses, since that was
dependent on the old qms(4) driver, which is gone.
2004-03-13 18:48:26 +00:00
bjh21
497fe37693 Remove busmouse(4) drivers. Everyone should be using wsmouse(4) these days. 2004-03-13 18:29:34 +00:00
bjh21
db7410bc83 Remove pointless comments 2004-03-13 18:06:41 +00:00
bjh21
f869418166 Add support for using the MI pckbd and pms drivers with the IOMD keyboard
and mouse ports, with a new driver, iomdkbc(4).
2004-03-13 17:52:02 +00:00
bjh21
dff5222d3a Abstract the interface between pckbc(4), and the pckbd(4) and pms(4)
drivers that attach to it.  This allows for other host interface chips
that use the same keyboards and mice, such as the ones in the ARM
IOMD20, ARM7500, and SA-1111.  The PC-compatible driver is still
called pckbc(4), and the new abstraction layer is "pckbport", so the
child devices have moved from sys/dev/pckbc to sys/dev/pckbport, which
also contains some code shared between all host controllers.  To avoid
incompatibility, pckbdreg.h is still installed in
/usr/include/dev/pckbc.

In theory, this shouldn't cause any behavioural changes in the drivers
concerned.  Thy just use rather more function pointers than before.  Tested
on i386 and (with a new host driver) acorn32.  Compiled on several other
affected architectures.
2004-03-13 17:31:33 +00:00
scw
c29e82af70 Must Test Before Committing... 2004-02-27 18:55:19 +00:00
wiz
f05e6f1a3a occured -> occurred. From Peter Postma. 2004-02-24 15:12:51 +00:00
jdolecek
af46922ada add compat hook in check for zerodev; use this hook to recognize
the old ARM /dev/zero minor mapping #ifdef COMPAT_16
fixes second part of PR kern/23581 by Richard Earnshaw
2004-02-14 12:20:14 +00:00
bsh
ba2cd9f97b add lcd and spi 2004-02-14 07:20:20 +00:00
bsh
126ae44aa1 SPI support for Samsung S3C2410.
spi driver doesn't provide any actual I/O, and attaches child drivers
for devices that hooked to SPI ports.
2004-02-14 07:19:51 +00:00
bsh
0eedb024e6 Support S3C24X0's on-chip LCD controller.
lcd driver can be configured with or without wsdisplay.
With wsdisplay, it supports text mode using rasops in 8bpp or 16bpp.
Without it, users only can mmap(2) the framebuffer.

XXX: 1-, 2-, 4-, or 24- bpp mode is not supported yet.
XXX: S3C24x0's LCD controller can have virtual screen which is bigger
     than actual LCD panel. Our wsdisplay framework doesn't have
     features to utilize it.
2004-02-14 07:12:50 +00:00
scw
a402937c23 Avoid using two 'GPIO' bits of the interrupt mask to signify soft
interrupts; some boards actually use those GPIO pins as external
interrupt sources.

Instead, assign soft interrupt bits to on-chip sources which are
not used by the IXP425 port.
2004-02-13 15:49:02 +00:00
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
bsh
03e6ee6d67 add register definitions for LCD controller, AD converter, and SPI. 2004-02-12 03:52:46 +00:00
bsh
da6312579b be consistent with #define<TAB> 2004-02-12 03:47:29 +00:00
bjh21
62c2e676ba Increase the attach priority of opms(4) and kbd(4) (also rpckbd(4), but that
slipped into a previous commit) so that they can override the forthcoming
iomdkbc(4) if necessary.
2004-02-08 13:43:52 +00:00
bjh21
11ab4a17ac Attach rpckbd(4) and kbd(4) in the same place, so that they can't both end
up attached at the same time, and so that they can both prevent the forthcoming
iomdkbc(4) attaching to the keyboard slot.
[ file missed in last commit ]
2004-02-08 13:41:53 +00:00
bjh21
165d7132e7 Attach rpckbd(4) and kbd(4) in the same place, so that only one of them can
attach at a time, and so that either of them can prevent the forthcoming
iomdkbd(4) attaching to the keyboard slot.
2004-02-08 13:39:21 +00:00
junyoung
9a410f9ed0 Rename es_check in struct execsw to es_makecmds. 2004-02-06 08:02:58 +00:00
reinoud
91f1fdd2b7 The `beep' device has been removed but aparently this small reference was
obmitted resulting in a compilation failure in the autobuilds.

It effectively removes the now redundant reference to "beep.h" and removes
an associated prototype that wasn't used.
2004-01-29 16:43:42 +00:00
rearnsha
8e61df4a12 Switch the ARM9 to using the Dcache in write-back mode. Avoid an
unknown problem with dcache_inv_range by using a wbinv for now
(similarly for ARM10).

When setting the ARM9 system control register, use the computed
cpuctrlmask value (not 0xffffffff) so that the clocking-mode bits are
not reset to FastBus mode (which isn't very fast).
2004-01-26 15:54:16 +00:00
scw
b9992109f0 Make it possible to call badaddr_read() from interrupt context, even
if curpcb is NULL, by borrowing lwp0's pcb if necessary (needed to
be able to set pcb_onfault).

Problem reported by Allen Briggs.
2004-01-26 10:45:24 +00:00
bjh21
ed0dd3010c Remove spurious inclusion of obsolete <arch/arm/iomd/waveform.h>. 2004-01-25 14:46:44 +00:00
bjh21
d7db239545 Remove another mention of "beep". 2004-01-25 13:52:00 +00:00
bjh21
239eec55fd Remove mentions of "beep" driver. 2004-01-25 13:51:29 +00:00
bjh21
5efebff42a Remove the "beep" driver. Its function is largely subsumed by a
combination of audio(4), wskbd(4) and audiobell().  Proposed a week
ago on port-acorn32 with no reaction whatever.
2004-01-25 13:46:59 +00:00
skrll
3dfd94284a Leave errno as zero when we SIGSEGV. This means my CATS now passes
regress/lib/libc/siginfo/sigsegv

OK'd by christos.
2004-01-21 15:39:21 +00:00
martin
da4e67accc Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
2004-01-18 18:23:19 +00:00
bjh21
3bcd444b32 vidcaudio_set_params() must return a value (oops!). 2004-01-18 14:42:09 +00:00
scw
ee92d9d4d2 Fix ARM_VECTORS_LOW fallout caused by the recent reaper removal.
Just before removing the vector page mapping, switch to the kernel
pmap's L1/vector page mapping so as not to pull the rug out from
under ourselves.

To prevent the stale L1/vector page mapping from being restored by
cpu_switch, replace the relevant fields of the dying process' pcb
with those of lwp0's pcb.
2004-01-18 13:03:50 +00:00
bjh21
8078bc62c9 Change the control flow in vidcaudio_set_params() so as to make the indentation
less hairy.
2004-01-17 23:41:20 +00:00
bjh21
5510e882f1 Adjust vt(4) (WHICH MUST DIE) to the new way of handling bells on
NetBSD/acorn32.
2004-01-17 22:52:42 +00:00
bjh21
13d0914a93 Use audiobell for system beeps on acorn32 when vidcaudio(4) is compiled in.
Remove the vestigal sysbeep device and replace it with the same kind of
mechanism that pckbd(4) uses to find the bell, which is just as ugly, but
more standard.  Adapt beep(4) to the new world (though I'm not sure it
deserves to live).
2004-01-17 21:49:24 +00:00
bjh21
e095fd5eda More light KNF. 2004-01-17 21:25:25 +00:00
bjh21
2ae7606f01 Light KNF. 2004-01-17 21:24:29 +00:00
bjh21
e37ee89427 Don't include option headers we're not going to use. 2004-01-17 21:16:13 +00:00
bjh21
b727d5da17 KNF. 2004-01-17 21:14:46 +00:00
bjh21
8e0990aadd Un-__P. 2004-01-17 21:05:40 +00:00
scw
dcb1b313f5 Use __insn_barrier() to prevent the compiler reordering splx/splraise
relative to the code they're supposed to protect.
2004-01-12 10:25:06 +00:00
bjh21
75080c1305 The VIDC20 data sheet doesn't define the polarity of the sign bit for
8-bit VIDC audio.  Both Richard Earnshaw and I had guessed that a set
bit was positive (the same as normal mu-law), but the AudioWorks
manual, and Sound_SoundLog on RISC OS, seem to disagree.  Change
MULAW_TO_VIDC to match Sound_SoundLog, since the latter is probably
definitive.
2004-01-10 22:33:24 +00:00
jdolecek
089abdad44 Rearrange process exit path to avoid need to free resources from different
process context ('reaper').

From within the exiting process context:
* deactivate pmap and free vmspace while we can still block
* introduce MD cpu_lwp_free() - this cleans all MD-specific context (such
  as FPU state), and is the last potentially blocking operation;
  all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free()
* process is now immediatelly marked as zombie and made available for pickup
  by parent; the remaining last lwp continues the exit as fully detached
* MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same
  for both 'process' and 'lwp' exit

uvm_lwp_exit() is modified to never block; the u-area memory is now
always just linked to the list of available u-areas. Introduce (blocking)
uvm_uarea_drain(), which is called to release the excessive u-area memory;
this is called by parent within wait4(), or by pagedaemon on memory shortage.
uvm_uarea_free() is now private function within uvm_glue.c.

MD process/lwp exit code now always calls lwp_exit2() immediatelly after
switching away from the exiting lwp.

g/c now unneeded routines and variables, including the reaper kernel thread
2004-01-04 11:33:29 +00:00
chris
190f92bccf Currently the eb7500atx doesn't have a cmos_read function, however it also
won't use the RPC600_IOMD_ID code path, so disable that code path for the
eb7500atx.
2004-01-03 14:53:16 +00:00
chris
48afc0a2fc Add conf framework support for riscstation. Add a rsbus as this allows
acccesses with addresses shifted by the amount specified in the cookie.

Also make the inclusion of the wscons file the resposibility of whoever
includes files.iomd.  (found while attempting to checking riscstation
support into evbarm)
2004-01-03 14:46:17 +00:00
chris
d69e128c9d On a riscstation leave the iobase as requested, don't add IO_CONF_BASE to
it.
2004-01-03 14:42:12 +00:00
chris
078c5853f3 When adding a new interrupt handler to the iomd, turn off interrupts so
we don't run the risk of an interrupt happening while things are being
updated.
2004-01-03 13:11:47 +00:00
bjh21
2becc547c7 The lmcaudio driver was only ever used on the RC7500, which we don't support
these days.  Let the CVS history be its only memorial.
2004-01-01 19:12:13 +00:00
bjh21
cc4e11e8e4 No need to #include "vidcaudio.h" here, so don't do it. 2004-01-01 18:07:58 +00:00
chris
8261a721cc Correct the usage of the 4th arg to mainbus_bs_map. It's a flags arg, so
test for the CACHEABLE bit, rather than assuming a non-zero means cacheable
2004-01-01 18:07:27 +00:00
bjh21
7ef29ca465 Rather than calling pmap_extract() from an IPL_AUDIO interrupt handler (which
is naughty even if it does work), find out the complete list of physical pages
we'll have to DMA from in vidcaudio_trigger_output() and save it for use by
the interrupt handler.
2004-01-01 17:52:19 +00:00
bjh21
48a569efe8 Restore a call to vidcaudio_ctrl() that I accidentally deleted. 2004-01-01 16:42:36 +00:00
bjh21
bd6ca18b7e Tidy up debugging printfs to use a single #ifdef and a DPRINTF() macro,
rather than #ifdefs scattered all over the code.
2004-01-01 16:35:35 +00:00
bjh21
ef9b97ce8a Add possibly-useful support for 16-bit sound on VIDC20 systems, using
RISC OS's "*Configure SoundSystem" setting to decide whether to use 16-bit
mode.  Loosely based on parts of Richard Earnshaw's "sound16" patch.
2004-01-01 16:23:15 +00:00
bjh21
45feca04f6 When returning our actual sample rate to audio(4) in 16-bit mode, use the right
base clock rate.
2003-12-31 21:24:47 +00:00
bjh21
d21d97a649 Make local functions static. 2003-12-31 15:40:31 +00:00
bjh21
81395409be vidcaudio(4) now needs mulaw and aurateconv. 2003-12-31 15:15:29 +00:00
bjh21
176435992e Substantial rewrite of vidcaudio(4). I don't know if the old version
had ever worked, but if it had, it had bit-rotted so far that it
almost all needed replacing.  The new version support both 8-bit sound
on the VIDC20 and 16-bit sound on the ARM7500 and ARM7500FE.
sysbeep() support has been lost, but I'm not sure whether that belongs
here or in audio(4) anyway.  Support for 16-bit sound on the VIDC20
isn't present because I don't have the hardware to test it.  Donations
welcome!
2003-12-31 15:06:24 +00:00
bjh21
2432228b70 Add definitions of the bits in the Sound Control Register (SCR). 2003-12-31 14:41:15 +00:00
bjh21
0630d87772 Add some useful flag definitions for DMA registers. 2003-12-31 14:40:32 +00:00
pk
70f20a1217 Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
2003-12-30 12:33:13 +00:00
bjh21
8907f89465 speaker_ctl() is optional, and vidcaudio_speaker_ctl() did nothing, so kill it. 2003-12-29 16:49:31 +00:00
bjh21
0a64302931 Control debugging with VIDCAUDIO_DEBUG rather that DEBUG, to avoid confusion
with the global kernel macro called DEBUG.
2003-12-29 16:45:58 +00:00
bjh21
1b64799344 Minor KNF. 2003-12-29 16:41:22 +00:00
bjh21
32cf38df51 Fix a DEBUG printf. 2003-12-29 16:36:48 +00:00
bjh21
87bcc196e1 Use NULL rather than 0 to initialise unused function pointers. 2003-12-29 16:25:30 +00:00
bjh21
8dcadd2b7c KNF. 2003-12-29 16:20:46 +00:00
bjh21
b64c13c96f ANSIfy, un-__P(). 2003-12-29 16:11:38 +00:00
gavan
f2c2467d5c Correct masks for PCIXSR decomposition 2003-12-19 10:08:11 +00:00
bsh
7020653430 add a function to initialize variables used by splfoo().
This should be called in bootstrap so that splfoo() doesn't touch illegal address.
2003-12-17 13:20:04 +00:00
gavan
5232db351e The PIRSR is at location 0xffffe1ec, not 0xffffe2ec.
Source: Intel(R) 80321 I/O Processor Developer's Manual, page 578
2003-12-16 00:04:09 +00:00
scw
5f0d6f1b24 Work-around an obscure bug (reported by a couple of people, and reproduced
exactly twice by me) which causes the code at the top of copyin which
word-aligns the destination pointer to copy more bytes than necessary,
resulting in an alignment fault later on.

The bug is difficult to reproduce, but as far as I can tell it seems
to be as a result of the condition codes being corrupted, possibly
following a page fault caused by the first ldrbt/strb instructions.
The subsequent ldr<cc>bt/str<cc>b instructions then _always_ execute.
I can't think of any obvious reason why this would happen, though.
2003-12-15 09:27:18 +00:00
scw
fbdf861fac The last cpsr_all change was misguided. Just use cpsr_c wherever possible. 2003-12-15 09:18:21 +00:00
rearnsha
94c1474569 The machdep.debug sysctl variable uses code CPU_DEBUG
(not CPU_CONSDEV).
2003-12-13 12:07:41 +00:00
thorpej
648d5e6e22 Add a default case to avoid an uninitialized variable warning. 2003-12-12 16:42:44 +00:00
atatat
74b1767b3c The machdep.debug node is an int, not a struct 2003-12-12 03:52:56 +00:00
jmc
695a2a2f9f Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
2003-12-10 02:04:00 +00:00
scw
2107fae815 Scoot the SDRAM controller's mapping forward to the next 1MB boundary
so it can be mapped easily at startup.
2003-12-08 16:14:16 +00:00
scw
40db825e26 Add support for picking up the size of SDRAM by reading the memory
controller's config register.
2003-12-08 14:41:11 +00:00
scw
c2415a0dc3 Oops, map PCI memory space at VA 0xf8000000 instead of in the middle
of user VM space at 0x48000000.
2003-12-08 13:40:33 +00:00
bjh21
df8ccd8d1b Undo last change: The "iomd" driver has its own bus_space tag, so it didn't
rely on the brokenness of the mainbus one.
2003-12-06 22:31:16 +00:00
bjh21
ed4b80b144 Fix the ARM mainbus version of bus_space_subregion() to correctly shift the
base offset before using it.  This makes it work the same as every other
implementation, and makes wdc at pioc on acorn32 work again.  Fix the only
caller I found which depended on the old behaviour.
2003-12-06 22:05:33 +00:00
bjh21
3f1dc2b013 Don't complain if we're asked for != 8 channels. There's no actual support
for fewer channels yet, but this is necessary just to avoid a boot-time panic.
2003-12-06 19:59:32 +00:00
atatat
13f8d2ce5f Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(),
vfs_sysctl(), etc, routines, along with sysctl_int() et al.  Now all
nodes are registered with the tree, and nodes can be added (or
removed) easily, and I/O to and from the tree is handled generically.

Since the nodes are registered with the tree, the mapping from name to
number (and back again) can now be discovered, instead of having to be
hard coded.  Adding new nodes to the tree is likewise much simpler --
the new infrastructure handles almost all the work for simple types,
and just about anything else can be done with a small helper function.

All existing nodes are where they were before (numerically speaking),
so all existing consumers of sysctl information should notice no
difference.

PS - I'm sorry, but there's a distinct lack of documentation at the
moment.  I'm working on sysctl(3/8/9) right now, and I promise to
watch out for buses.
2003-12-04 19:38:21 +00:00
scw
ef87776bdb As per the recent ixp425 fix (which is based on this code):
In the interrupt dispatch loop, make sure to handle any pending interrupts
which came in while we were dealing with the first interrupt(s), and which
are enabled at the current spl.

This fixes a problem where the intr_enabled/hw mask is not updated to
allow pending interrupts through until the next splx(). In some case,
interrupts could be delayed until the next clock tick.
2003-12-03 19:55:37 +00:00
scw
99df1a0ae1 In the interrupt dispatch loop, make sure to handle any pending interrupts
which came in while we were dealing with the first interrupt(s), and which
are enabled at the current spl.

This fixes a problem where the intr_enabled/hw mask is not updated to
allow pending interrupts through until the next splx(). In some case,
interrupts could be delayed until the next clock tick.
2003-12-03 13:20:34 +00:00
rearnsha
e3cb92a81b Avoid alignment faults in fusword and fuswintr. Also handle big-endian
systems in susword and suswintr.
2003-12-01 13:34:44 +00:00
scw
7cf5104b5a - For consistency, use cpsr_all instead of cpsr.
- Make sure IRQs are enabled before handling ASTs.
2003-12-01 08:48:33 +00:00
bjh21
dd89bf7764 Use kdb_trap() rather than Debugger() to deal with unhandled undefined
instructions in the kernel, so that DDB gets a useful trapframe.  Also
panic if this happens when DDB's not around.
2003-11-29 22:21:29 +00:00
bsh
ae462c19db fix typo pointed out by Olivier Houchard. thanks. 2003-11-26 12:17:18 +00:00
rearnsha
445d91a12e Reposition a couple of NOP instructions for better efficiency. 2003-11-26 10:31:53 +00:00
christos
a21fdf3b43 bye, bye _MCONTEXT_TO_SIGCONTEXT and vice versa. 2003-11-25 23:11:52 +00:00
scw
d657bddd8c In data_abort_handler(), honour pcb_onfault even in the case where
current_intr_depth > 0.
2003-11-20 14:44:36 +00:00
scw
61aab8b582 On a fatal fault, dump the trapframe's contents to the console.
This is useful when DDB is not available, or practical.
2003-11-18 22:39:05 +00:00
scw
5801c73162 - Remove ixpsip_bs_tag (ixp425_sip_io.c). It just duplicated some of
the functionality of ixp425_bs_tag.
 - Add missing stream_{read,write}_1 ops to ixp425_bs_tag.
 - Re-work the delay() implementation to use the free-running Time-
   Stamp counter. This removes the need to bootstrap TMR0 early on.
2003-11-16 12:41:03 +00:00
scw
07acf64710 Re-instate the behaviour of sending SIGKILL to a process if uvm_fault()
returns ENOMEM. SIGSEGV just doesn't cut it. The original code looks to
have been lost in revision 1.34.
2003-11-15 20:18:34 +00:00
scw
a7533e4cdc - Add LOCKDEBUG-protected calls to sched_lock_idle() to cpu_switchto and
the idle loop. They seem to have gone AWOL sometime in the past.
   Fixes port-arm/23390.
 - While here, tidy up the idle loop.
 - Add a cheap DIAGNOSTIC check for run queue sanity.
2003-11-15 08:44:18 +00:00
briggs
dfa839f16b Make sure that L_SA_PAGEFAULT gets cleared from l_flag if pmap_fault_fixup
returns non-zero and we want to shortcut out.  This avoids a bogus pagefault
condition being detected in sa_switch().
Many thanks to Christian Limpach for finding this, obviating my band-aid
patch to kern_sa.c (posted on tech-kern).
2003-11-14 21:22:08 +00:00
scw
4eeb1be7e4 Check alignment of the fault PC before de-referencing it.
Give the process a Illegal Instruction fault if the PC is misaligned.
2003-11-14 19:03:17 +00:00
scw
a590a31135 - In data_abort_handler(), move the fault pc alignment check to before
the call to data_abort_fixup() as the fixup routines also try to
   de-reference the fault pc.

 - If a fault came from kernel mode, and the fault address looks to be in
   the kernel's address space, and pcb_onfault is *set*, check the
   instruction which caused the fault. If it's LDR{B,}T or STR{B,}T
   then one of the copy in/out routines is trying to read/write a
   kernel address with the wrong privilege. If that address is actually
   mapped, we could end up in an infinite loop because we failed to
   notice that it's really a 'user mode' access. Yay for "crashme".
   I suspect this also fixes PR port-arm/23052.

   Note: This *could* be fixed by adding sanity checks to copyin et al,
   but that would add extra overhead to the non-error path...

 - Fix a couple of __predict_false cases.
2003-11-14 19:00:03 +00:00
scw
571f89c4ad Slight re-org of the alignment/ast exit macro to better mimic the
original behaviour WRT cpsr/I32_bit handling.
2003-11-14 16:57:28 +00:00
scw
bb0221494d Since data_abort_handler() may have to decode the instruction at tf->tf_pc
to determine if a fault is read or write, make sure tf->tf_pc is 32-bit
aligned before dereferencing it.

Otherwise, deliver an illegal instruction signal to the process. We don't
support execution of Thumb code at this time.
2003-11-14 00:21:30 +00:00
chs
e07f0b9362 eliminate uvm_useracc() in favor of checking the return value of
copyin() or copyout().

uvm_useracc() tells us whether the mapping permissions allow access to
the desired part of an address space, and many callers assume that
this is the same as knowing whether an attempt to access that part of
the address space will succeed.  however, access to user space can
fail for reasons other than insufficient permission, most notably that
paging in any non-resident data can fail due to i/o errors.  most of
the callers of uvm_useracc() make the above incorrect assumption.  the
rest are all misguided optimizations, which optimize for the case
where an operation will fail.  we'd rather optimize for operations
succeeding, in which case we should just attempt the access and handle
failures due to insufficient permissions the same way we handle i/o
errors.  since there appear to be no good uses of uvm_useracc(), we'll
just remove it.
2003-11-13 03:09:28 +00:00
scw
f99d0398fb The previous commit had a #endif in the wrong place. 2003-11-11 08:27:16 +00:00
wiz
ee1b406595 Spell address with two d's. Inspired by similar changes in OpenBSD,
originating from Jonathon Gray and forwarded by jmc@openbsd.
2003-11-10 08:51:51 +00:00
scw
41d2057ea7 Pick the right value for {,_}MACHINE_ARCH according to endianness.
Spotted by mrg@.
2003-11-09 08:27:19 +00:00
tsutsui
112c91d583 Use #if defined(_KERNEL_OPT) to protect #include "opt_xxx.h"
from building LKM etc. Suggested by mrg.
2003-11-09 05:29:59 +00:00
he
c45fa09365 Suppress apparently-bogus -Wunitialized warnings, the compiler does
not detect that set / use occur under equal conditions in following
if() statements.
2003-11-07 18:29:30 +00:00
scw
f77bf2bb0c Enable/Restore alignment fault state on interrupt handler entry/exit. 2003-11-05 21:10:59 +00:00
scw
aee833c0ee Add "options ARM32_DISABLE_ALIGNMENT_FAULTS" to forcibly disable
alignment fault checking if necessary.

This option gets the acorn32 port working again.

XXX: Richard Earnshaw suggested enabling alignment faults for
XXX: userland only on acorn32. Need to investigate this.
2003-11-05 12:53:15 +00:00
scw
5d63abe1f1 Fix a braino introduced in r1.37. Thanks to Tom Spindler for spotting it. 2003-11-04 22:20:50 +00:00
dsl
2ffbd2ab99 Remove p_nras from struct proc - use LIST_EMPTY(&p->p_raslist) instead.
Remove p_raslock and rename p_lwplock p_lock (one lock is enough).
Simplify window test when adding a ras and correct test on VM_MAXUSER_ADDRESS.
Avoid unpredictable branch in i386 locore.S
(pad fields left in struct proc to avoid kernel bump)
2003-11-04 10:33:15 +00:00
scw
e9cd075343 It makes more sense to map the expansion bus registers in ixpsip
instead of the pci bridge driver.
2003-11-02 21:24:39 +00:00
scw
21f388f6e0 Add generic read/write region 1 ops. 2003-11-02 21:20:32 +00:00
reinoud
4e923603f1 Fix for PR # 23264 thanks to Mike Pumford; it is only attatching clock once
now.
2003-11-01 23:37:54 +00:00
jdolecek
3abecdb88d avoid stong words in comments 2003-11-01 17:35:42 +00:00
scw
b4c2d3dbb0 Insert some nops around the load instructions in badaddr_read_N().
That way, we can be sure any imprecise data abort actually happens
before clearing pcb_onfault.
2003-10-31 16:54:05 +00:00
cl
ef56cc40ab Reduce code duplication by adding mi_userret() in sys/userret.h
containing signal posting, kernel-exit handling and sa_upcall processing.

XXX the pc532, sparc, sparc64 and vax ports should have their
XXX userret() code rearranged to use this.
2003-10-31 16:44:34 +00:00
scw
336806eb55 Overhaul arm32's abort handlers:
- Assume a permission fault is always the result of an attempted
   write, so no need to disassemble the opcode.
   (as discussed with Richard Earnshaw/Jason Thorpe a week or two ago)

 - Split out non-MMU data aborts into separate functions, and deal
   correctly with XScale imprecise aborts. Specifically, the old code
   made no attempt to handle the double abort faults which can occur
   as a result of two consecutive external (imprecise) aborts. This
   was easy to provoke by read(2)ing from a /dev/mem offset which caused
   an external abort. With the old code, this would bring the system
   down instantly, with little clue as to why. (hint: tf_spsr held
   PSR_ABT32_MODE...)

 - Re-write badaddr_read() to use pcb_onfault instead of adding extra
   overhead to data_abort_handler(). A side effect of this is that it
   now benefits from the XScale double abort recovery.

 - Invoke the cpu-specific prefetch/data abort fixup routines only if
   the host cpu actually needs it. On other cpus, the code is optimised
   away.

 - Sprinkle __predict_{false,true} in all the right places.

 - G/C some excess debugging baggage.
2003-10-31 16:30:15 +00:00
simonb
6d85c5e0d5 Don't pass the (unused) return value args to the
trace_enter()/systrace_enter() functions.
2003-10-31 03:28:12 +00:00
thorpej
920b229e72 "bogus pin" -> "bogus device" in last change. 2003-10-31 01:12:06 +00:00
matt
b9e31106e8 Stop some (bogus) gcc unitialized variable warning. 2003-10-30 22:04:39 +00:00
matt
a72426fa60 Fix (real) uninitialized error. (Someone familiar with this should see
if is really an error).
2003-10-30 22:03:46 +00:00
skrll
d1ef336230 Fix a typo so that hack actually takes effect. 2003-10-30 12:30:39 +00:00
scw
7a55b436b2 Move the alignment fault enable/disable code into macroes to avoid
needless duplication.

Additionally, merge AST handling into the same code.

exception.S and the generic irq_dispatch.S routines have been updated
to use the macroes.

XXX: I have patches for the non-generic IRQ dispatch routines, but they
need testing by someone with hardware.
2003-10-30 08:57:24 +00:00
scw
97e37b6030 In bus_dmamap_sync(), we can no longer rely on the data cache being
flushed on every context switch as an indicator that a mapping is
not resident in the cache.

Instead, used the per-pmap flag maintained by the cpu_switch/pmap code.
2003-10-30 08:44:13 +00:00
mycroft
1588a62950 Whitespace. 2003-10-29 05:48:19 +00:00
mycroft
2f3400cec7 The previous patch was wrong -- mcr does not output anything. Instead give a
junk input (it's not used when the last argument is 0).
2003-10-29 05:47:04 +00:00
mycroft
7a85552554 If something goes wrong, we want to return ENOMEM, not 0! 2003-10-29 05:03:41 +00:00
mycroft
a1178ff097 The uninitialized variable in this case was a bug, which could probably be
used to crash the system.
2003-10-29 04:38:50 +00:00
kleink
7b674621bf Retire FPA support from this file at last; suggested by Richard Earnshaw
and not objected to by port-arm.
2003-10-28 21:27:08 +00:00
skrll
c5a4c60e2e Compile sys/kern/uipc_socket.c -fno-strict-aliasing for now. PR 23044. 2003-10-28 20:12:00 +00:00
chs
b42acb8d26 uninitialized variable. 2003-10-28 15:31:33 +00:00
scw
fe5371e8a9 Fix an uninitialised variable warning, reported by Shoichi Miyake
in port-arm/23293.
2003-10-28 08:22:55 +00:00
kleink
060a72601c For convenient use in libc, add unions of the C floating types and their
corresponding structure definitions.
2003-10-27 10:13:48 +00:00
chris
25c741b8a6 Fix up some unitialised variables. 2003-10-26 23:11:15 +00:00
kleink
d54b367f5d Remove the FPA extended-precision format entirely; according to Richard
Earnshaw it was never supported by the toolchain.
2003-10-26 15:57:54 +00:00
jdolecek
85204ef973 fix NULL vs. 0 usage 2003-10-26 11:45:46 +00:00
scw
4d7283b3ec Assume that if curpcb is NULL, we're already running with alignment
faults enabled.
2003-10-26 11:34:29 +00:00
scw
43be86e59c Skip the alignment fault enabling code if we came from SVC mode. It's
already enabled in this case.
2003-10-25 21:51:31 +00:00
scw
569efbf106 Oops, forgot to commit this along with the others...
Enable alignment faults on arm32 for both kernel and userland.

If COMPAT_15 and EXEC_AOUT are defined, support per-process
alignment checking where AFLTs are always enabled when running
kernel code and userland ELF binaries, and dynamically disabled/
enabled when switching to/from a.out binaries. This is necessary
in order to execute older a.out binaries, where gcc made
deliberate use of misaligned loads under certain circumstances.
2003-10-25 20:42:49 +00:00
scw
84c17a8163 Enable alignment faults on arm32 for both kernel and userland.
If COMPAT_15 and EXEC_AOUT are defined, support per-process
alignment checking where AFLTs are always enabled when running
kernel code and userland ELF binaries, and dynamically disabled/
enabled when switching to/from a.out binaries. This is necessary
in order to execute older a.out binaries, where gcc made
deliberate use of misaligned loads under certain circumstances.
2003-10-25 19:44:42 +00:00
kleink
f6ec7cebf1 Update for FPA long double being 80-bit extended-precision format. 2003-10-25 18:24:28 +00:00
kleink
a68b9ea2bd G/c the 128-bit extended-precision format, which is not applicable to
this platform.  Name the 80-bit version the extended format, which it
is for the FPA case according to the ARM7500FE manual.
2003-10-25 18:19:10 +00:00
chris
ceb06608ed Don't pass NULL as an integer. 2003-10-24 23:03:50 +00:00
jdolecek
821f341675 add necessary majors for miscellaneous devices, such as missing
wscons/scsi/isdn devices
2003-10-24 08:18:36 +00:00
kleink
422697679e * Move the definitions for types other than single-precision and double-
precision back to machine-dependent headers.  C99 has no strict
  requirement which, if any, extended-precision type `long double' must
  match, and even between 80-bit formats there are differences in
  implementation (m68k vs. x86).
* On arm, consider __VFP_FP__.
2003-10-23 23:26:06 +00:00
scw
1fdc9cd5a1 Add a defflag for __BUS_SPACE_HAS_STREAM_METHODS, and add the
appropriate glue in bus.h, contingent on the option being defined.

This allows stream methods to be available on a port-by-port basis.
2003-10-23 15:03:24 +00:00
scw
41e7743573 Map the expansion bus registers. 2003-10-23 09:32:17 +00:00
scw
0df102009a Add a few more register definitions. 2003-10-23 09:29:36 +00:00
scw
3a414f559e Use pmap_enter() instead of pmap_kenter_pa() as the former automatically
ensures the mapping is cache-inhibited, so we don't have to frob the PTE
directly.
2003-10-23 09:25:44 +00:00
scw
0fd0c83111 A few minor tweaks to the onfault handlers.
Save some instructions in the non-fault return path.
2003-10-23 09:11:35 +00:00
scw
52c15bbd20 Don't drop to spl0 in cpu_switch/cpu_switchto. Do it in the idle loop
instead.

With this change, we no longer need to save the current interrupt level
in the switchframe. This is no great loss since both cpu_switch and
cpu_switchto are always called at splsched, so the process' spl is
effectively saved somewhere in the callstack.

This fixes an evbarm problem reported by Allen Briggs:

        lwp gets into sa_switch -> mi_switch with newl != NULL
            when it's the last element on the runqueue, so it
            hits the second bit of:
                if (newl == NULL) {
                        retval = cpu_switch(l, NULL);
                } else {
                        remrunqueue(newl);
                        cpu_switchto(l, newl);
                        retval = 0;
                }

        mi_switch calls remrunqueue() and cpu_switchto()

        cpu_switchto unlocks the sched lock
        cpu_switchto drops CPU priority
        softclock is received
        schedcpu is called from softclock
        schedcpu hits the first if () {} block here:
                if (l->l_priority >= PUSER) {
                        if (l->l_stat == LSRUN &&
                            (l->l_flag & L_INMEM) &&
                            (l->l_priority / PPQ) != (l->l_usrpri / PPQ)) {
                                remrunqueue(l);
                                l->l_priority = l->l_usrpri;
                                setrunqueue(l);
                        } else
                                l->l_priority = l->l_usrpri;
                }

        Since mi_switch has already run remrunqueue, the LWP has been
            removed, but it's not been put back on any queue, so the
            remrunqueue panics.
2003-10-23 08:59:10 +00:00
skrll
601de4df8c Rename dsrtc to ds1687rtc to avoid conflicting with the MI i2c
ds1307 driver.

Hi Jason.
2003-10-21 08:15:39 +00:00
briggs
093821886e Define SIGTRAMP_VALID(v). 2003-10-18 17:57:06 +00:00
jdolecek
4bb42bc621 switch ARM to use same minor for /dev/zero as other archs
as discussed on tech-arm@
2003-10-16 12:02:58 +00:00
scw
def6ab457b Remove the #ifdef __XSCALE__ around the strd test as the instruction
is available on any v5E processor.

Pointed out by Richard Earnshaw.
2003-10-15 14:07:03 +00:00
scw
9be5d4cbe9 Document the need for pcb32_r8 to be quad-aligned, now that cpuswitch()
uses Xscale's "strd" instruction.
2003-10-13 21:46:39 +00:00
scw
63d24b09fd A couple of Xscale tweaks:
- Use the "clz" instruction to pick a run-queue, instead of using the
   ffs-by-table-lookup method.
 - Use strd instead of stmia where possible.
 - Use multiple ldr instructions instead of ldmia where possible.
2003-10-13 21:44:27 +00:00
scw
100d67ec52 Xscale-optimised bcopyinout.
Contributed by Wasabi Systems.
2003-10-13 21:22:40 +00:00
scw
3bf49b3ae8 Tweak the read/write data abort check to recognise Xscale's strd/ldrd
instructions.

While the original code matched "strd" just fine, it also matched
the "ldrd" instruction ...
2003-10-13 21:13:30 +00:00
scw
9d9ddf0409 Xscale-optimised b{copy,zero}_page().
Contributed by Wasabi Systems.
2003-10-13 21:03:13 +00:00
scw
063066a055 On Xscale, define PMAP_UAREA() and use it to tweak uarea mappings so
they use the mini D$.

This results in a small performance boost on xscale platforms, since
flushing the main cache on a context switch won't affect the kernel
stack/pcb.
2003-10-13 20:50:34 +00:00
jdolecek
ef5bb330f5 reassing majors for crypto and pf to use the newly defined MI major
range
2003-10-10 22:42:39 +00:00
jdolecek
4e915c9ccd update the comment - the space for machine-dependant majors
is reduced to 0-143
follows discussion on tech-kern
2003-10-10 21:21:25 +00:00
matt
0dbe439e05 Adapt ARM Linux compat code to deal with SIGINFO. 2003-10-10 14:44:42 +00:00
thorpej
901da40cf9 Add some accessor macros for the ucontext:
* _UC_MACHINE_PC() - access the program counter
* _UC_MACHINE_INTRV() - access the integer return value register
* _UC_MACHINE_SET_PC() - set the program counter (this requires
  special handling on some platforms).
2003-10-08 22:43:01 +00:00
scw
0047ff3f6e Ok, I give up for now. There's no easy/reliable way to deal with
these spurious interrupts.
2003-10-08 19:46:12 +00:00
scw
677ee2fdbf Simplify the last change to just check for spurious GPIO interrupts. 2003-10-08 19:39:40 +00:00
scw
ecc5fec473 If no interrupt handler claims to have dealt with a level-triggered
GPIO interrupt, check the GPIO interrupt status register after clearing
it down to see if the interrupt source has disappeared. If it does,
assume it was a spurious event. Otherwise, panic.
2003-10-08 19:31:17 +00:00
scw
fb2c521159 Make it easier to support different types of IXP425 board:
- Move board-specific PCI/GPIO initialisation to its rightful place.

 - Handle clearing down latched GPIO interrupts in a board-independent way.

 - Use MI com(4) driver for on-chip UARTs.

 - Misc. tidying up.

Tested on IXDP425.
2003-10-08 14:55:04 +00:00
lukem
1c33b4e6a4 Overhaul MBR handling (part 1):
<sys/bootblock.h>:
    *	Added definitions for the Master Boot Record (MBR) used by
	a variety of systems (primarily i386), including the format
	of the BIOS Parameter Block (BPB).
	This information was cribbed from a variety of sources
	including <sys/disklabel_mbr.h> which this is a superset of.

	As part of this, some data structure elements and #defines
	were renamed to be more "namespace friendly" and consistent
	with other bootblocks and MBR documentation.
	Update all uses of the old names to the new names.

<sys/disklabel_mbr.h>:
    *	Deprecated in favor of <sys/bootblock.h> (the latter is more
	"host tool" friendly).

amd64 & i386:
    *	Renamed /usr/mdec/bootxx_dosfs to /usr/mdec/bootxx_msdos, to
	be consistent with the naming convention of the msdosfs tools.

    *	Removed /usr/mdec/bootxx_ufs, as it's equivalent to bootxx_ffsv1
	and it's confusing to have two functionally equivalent bootblocks,
	especially given that "ufs" has multiple meanings (it could be
	a synonym for "ffs", or the group of ffs/lfs/ext2fs file systems).

    *	Rework pbr.S (the first sector of bootxx_*):
	    +	Ensure that BPB (bytes 11..89) and the partition table
		(bytes 446..509) do not contain code.
	    +	Add support for booting from FAT partitions if BOOT_FROM_FAT
		is defined.  (Only set for bootxx_msdos).
	    +	Remove "dummy" partition 3; if people want to installboot(8)
		these to the start of the disk they can use fdisk(8) to
		create a real MBR partition table...
	    +	Compile with TERSE_ERROR so it fits because of the above.
		Whilst this is less user friendly, I feel it's important
		to have a valid partition table and BPB in the MBR/PBR.

    *	Renamed /usr/mdec/biosboot to /usr/mdec/boot, to be consistent
	with other platforms.

    *	Enable SUPPORT_DOSFS in /usr/mdec/boot (stage2), so that
    	we can boot off FAT partitions.

    *	Crank version of /usr/mdec/boot to 3.1, and fix some of the other
	entries in the version file.

installboot(8) (i386):
    *	Read the existing MBR of the filesystem and retain the BIOS
    	Parameter Block (BPB) in bytes 11..89 and the MBR partition
	table in bytes 446..509.  (Previously installboot(8) would
	trash those two sections of the MBR.)

mbrlabel(8):
    *	Use sys/lib/libkern/xlat_mbr_fstype.c instead of homegrown code
	to map the MBR partition type to the NetBSD disklabel type.


Test built "make release" for i386, and new bootblocks verified to work
(even off FAT!).
2003-10-08 04:25:43 +00:00
thorpej
68723a995b * Shuffle some data structures so, and add a flags word to ksiginfo_t.
Right now the only flag is used to indicate if a ksiginfo_t is a
  result of a trap.  Add a predicate macro to test for this flag.
* Add initialization macros for ksiginfo_t's.
* Add accssor macro for ksi_trap.  Expands to 0 if the ksiginfo_t was
  not the result of a trap.  This matches the sigcontext trapcode semantics.
* In kpsendsig(), use KSI_TRAP_P() to select the lwp that gets the signal.
  Inspired by Matthias Drochner's fix to kpsendsig(), but correctly handles
  the case of non-trap-generated signals that have a > 0 si_code.

This patch fixes a signal delivery problem with threaded programs noted by
Matthias Drochner on tech-kern.

As discussed on tech-kern.  Reviewed and OK's by Christos.
2003-10-08 00:28:40 +00:00
thorpej
2c0d381bd7 New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc.  Primarily written by Steve Woodford,
with some modification by me.

(NOTE: "cvs ci" was missed on this directory during the initial checkin
of the new I2C code.)
2003-10-06 16:11:19 +00:00
thorpej
d322684f55 Add support for the i80312 and i80321 I2C controllers. 2003-10-06 16:06:05 +00:00
thorpej
df011fda1d Make sure to pass mod/ref seeds with PMAP_WIRED. 2003-10-06 15:43:35 +00:00
thorpej
388386eef7 Make sure to pass mod/ref seeds with PMAP_WIRED. 2003-10-06 00:40:36 +00:00
matt
73ca535921 Add SA_SIGINFO support for ARM (from Chris Gilbert). 2003-10-05 19:44:58 +00:00
jdolecek
e6286b949a Add some framework for MI assignment of device majors - add sys/dev/majors
which is automatically included during kernel config, and add comments
to individual machine-dependant majors.* files to assign new MI majors
in MI file.

Range 0-191 is reserved for machine-specific assignments, range
192+ are MI assignments.

Follows recent discussion on tech-kern@
2003-10-05 08:04:24 +00:00
bsh
81227d1ae1 avoid compile error with GCC3, and add some comments. 2003-10-03 07:24:05 +00:00
thorpej
2652188cc4 New generic I2C framework. Supports bit-bang and "intelligent" I2C
interface controllers (of varying intelligence levels).

Contributed by Wasabi Systems, Inc.  Primarily written by Steve Woodford,
with some modification by me.
2003-09-30 00:35:30 +00:00
scw
960dfae23f Define ELF32_MACHDEP_ENDIANNESS according to target byte order. 2003-09-29 09:08:20 +00:00
nathanw
4d59420344 Move __cpu_simple_lock_t and __SIMPLELOCK_{UN,}LOCKED to machine/types.h
so that they can be used in a namespace-friendly way.
2003-09-26 22:45:41 +00:00
simonb
550b4bef88 Fix "constify sendsig/trapsignal" fallout for non-siginfo'd archs. Test
compiled on most architectures.
2003-09-26 12:02:55 +00:00
ichiro
066497ec38 add comment and delete unused definition 2003-09-25 14:48:16 +00:00
ichiro
663ccee1cc pci bus support 2003-09-25 14:11:18 +00:00
mycroft
3e08e45a55 Fix GCC 3 barfage. 2003-09-24 11:57:44 +00:00
scw
6b19830ebb Tweak register usage to shave a couple of instructions off
the Xscale code.
2003-09-23 10:01:36 +00:00
matt
6bf111a80e Fix GCC 3.3.1 nits. 2003-09-21 19:32:37 +00:00
matt
b9d20d131e Fix GCC 3.3.1 nits 2003-09-21 15:12:16 +00:00
matt
2d54fd3a9c Change some type-punning detected by gcc 3.3.1 to (void *). 2003-09-21 00:26:09 +00:00
agc
81976735fd If we're going to reference SA variables in this file, might as well
include the header file to define them. From Steve Woodford.
2003-09-19 11:42:20 +00:00
cl
2c1366cfee add MD part of SA/pthread pagefault handling on arm 2003-09-18 22:37:38 +00:00
ichiro
22d06d95f5 fix typo
#if DEBUG -> #ifdef PCI_DEBUG
2003-09-15 05:11:31 +00:00
ichiro
4be788fe81 add address decode of "PCI Configuration type 1" 2003-09-15 05:07:29 +00:00
chris
27dc577349 Tidy up a couple of bits to avoid duplication within the switch. 2003-09-13 14:31:34 +00:00
martin
346b195550 Backout previous, now that <sys/syscall.h> is fixed it's SYS___sigreturn14
again (until we convert to siginfo).
2003-09-11 19:36:29 +00:00
scw
877b3cbe5e Hand-optimised in_cksum/in4_cksum for ARM and XSCALE.
Contributed by Wasabi Systems, with input from Chris Gilbert,
Richard Earnshaw and David Laight.
2003-09-11 18:54:31 +00:00
kleink
d440784b30 __{BEGIN,END}_DECLS-wrap prototypes. 2003-09-11 09:40:11 +00:00
briggs
ab0f909e6e s/SYS___sigreturn14/SYS_compat_16___sigreturn14/ 2003-09-11 03:57:29 +00:00
rearnsha
b805fdb7fa Add build-system support for ARM10. 2003-09-06 09:48:47 +00:00
rearnsha
46af0c9f17 Make sure _ARM32_BUS_DMA_PRIVATE is defined before we pull in any
include files to avoid problems with the rats nest of dependencies.
2003-09-06 09:46:37 +00:00
rearnsha
da86d47fb0 Support for initializing ARM10 processors in write-through mode. 2003-09-06 09:44:10 +00:00
rearnsha
ec2b5e2dfd Support for ARM10E class devices. 2003-09-06 09:42:12 +00:00
rearnsha
1eba58255a Support for ARM10. Extract some additional information about the
dcache so that we can have cache cleaning code that works for any
permitted arm10 cache architecture.
2003-09-06 09:31:37 +00:00
rearnsha
bb00ee6bce Add a function to read the processor cache configuation register. 2003-09-06 09:14:52 +00:00
rearnsha
637a44c215 Processor-specific operations for ARM10 class devices. 2003-09-06 09:12:29 +00:00
rearnsha
d4e1e335e8 Add support for ARM10 class processors. 2003-09-06 09:10:46 +00:00
rearnsha
a515ec698a Add processor-specific declarations for ARM10 class processors. 2003-09-06 09:08:35 +00:00
rearnsha
446ca3f32d Fix declarations of primary cache variables, so that they are
declarations, not definitions.
2003-09-06 09:04:52 +00:00
rearnsha
cfcc3a8ad4 Add support for ARM10 class devices. 2003-09-06 08:55:42 +00:00
rearnsha
e1f8618cbd Add arm1020E cpu id 2003-09-06 08:43:02 +00:00
mycroft
e5168f409e Use generic versions of rr_1, wr_1, sr_1 -- some PCMCIA cards use these. 2003-09-03 03:15:02 +00:00
mycroft
f13bd83ab3 Minor tweak for some macros elsewhere. 2003-09-03 03:12:28 +00:00
mycroft
1e2b27307d Add some register definitions. 2003-09-03 03:11:50 +00:00
mycroft
b715eaff3c Recognize some TI processors -- not that you'd want to use them. 2003-09-03 02:07:07 +00:00
bsh
de45322924 support EXTINT[4:23] as interrupt sources. They are cascaded to
IRQ4 (EXTINT[4:7]) and 5 (EXTINT[8:23]). ssextio driver handles these interrupts.
2003-08-29 12:57:50 +00:00
bsh
23b593ca51 + set vendor name as Samsung.
+ delete debug printf() and use aprint_normal()
2003-08-29 12:38:48 +00:00
bsh
7726d33fed + fix the definition of timer #4 observation register. This change fixed
delay() bug.

+ match the names of timer registers to those in user's manual.
2003-08-27 03:57:05 +00:00
bsh
13543d215c move some definitions of register block size from s3c24[10]0reg.h
to s3c24x0reg.h when they are same for S3C2410 and 2400, and rename them as
S3C24X0_FOO_SIZE.
2003-08-27 03:46:05 +00:00
mrg
0e001a53fa make it "static long nil;" as it's used as &nil in an array wanting long *'s.
makes GCC3 happy.
2003-08-25 04:51:10 +00:00
itojun
4440262659 create /dev/crypto 2003-08-22 05:06:22 +00:00
bsh
10c7bfc755 split StrongArm companion chip (sacc) driver so that we can support
sacc on other platforms than hpcarm (evbarm for example).

codes specific to hpcarm are extracted and moved to hpcarm/dev/.
2003-08-08 12:29:22 +00:00
bsh
02087c6497 make this compile again. (arm32_bus_dma_tag._cookie) 2003-08-07 16:58:35 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
ichiro
208a93d254 fix dont reset register when every interrupt.
pointed by Shoichi Miyake port-arm/22392
2003-08-07 13:32:27 +00:00
bsh
f2de581410 forgot to add copyright. 2003-08-05 11:44:28 +00:00
bsh
3245163bdf support S3C2410's built-in USB host controller, which is OHCI
compliant.
2003-08-05 11:28:59 +00:00
bsh
0b5ec916cd add busdma tag to s3c2xx0_softc and attach arg.
initialize busdma tag in s3c2410_attach()
2003-08-05 11:26:54 +00:00
bsh
3bf70b2edf add s3c2xx0_busdma.c which is used to initialize bus dma tag. 2003-08-05 11:24:08 +00:00
bsh
3410ad1777 various bug fixes. Now SMDK2410 evboard boots up to single user mode
using install ramdisk.
2003-08-04 12:41:44 +00:00
bsh
50c0756fc2 bit polarity of interrupt mask registers don't match between s3c2800
and s3c24[10]0.  define macro s3c2xx0_update_hw_mask() for it.
2003-08-04 12:34:08 +00:00
bsh
950a49dffb initialize global_intr_mask. 2003-08-04 12:31:12 +00:00
bsh
1df8bfd121 Samsung's S3C2800 and S3C24[10]0 CPUs have same built-in UART block,
but there are very small diffs in register definitions.  For that, add
new options SSCOM_S3C{2800,2410,2400} and include appropriate
s3c*reg.h.

SSCOM_S3C2410 is also needed for interrupt controller differences.
2003-08-04 12:28:49 +00:00
bsh
b335250276 + fix TCON register bit definitions. Thank you Samsung for stupid
register design.

+ add definitions for UART registers that are not compatible with
  S3C2800's.
2003-08-04 12:19:38 +00:00
bsh
23ba082952 + cleanup attach message.
+ use aprint_normal()
2003-08-04 12:09:19 +00:00
bsh
d10f592c16 fix comments. 2003-08-04 10:24:15 +00:00