Commit Graph

1416 Commits

Author SHA1 Message Date
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
bsh
250a139bc5 change an arg of s3c2800_clk_freq() to match with s3c24x0_clk_freq(). 2003-08-01 00:41:42 +00:00
bsh
b80cc89773 tweak to share s3c2xx0_intr.c for S3C2800 and S3C2410.
move init_interrupt_masks() from s3c2xx0_intr.c to s3c2800_intr.c, since
it doesn't work for S3C2410.
2003-08-01 00:40:17 +00:00
bsh
d887fc052f delete an incorrecct comment
delete unused definitions
2003-08-01 00:30:21 +00:00
bsh
2393816ede add SSCOM_S3C2410 option. 2003-07-31 20:34:15 +00:00
bsh
86ab1d6591 the first cut of Samsung S3C2410 support.
It is Samsung's another ARM920 based SoC.

XXX: not tested much yet.
2003-07-31 19:49:41 +00:00
bsh
eb6fd47108 split sscomintr() to sscomtxintr() and sscomrxintr(). 2003-07-31 19:08:10 +00:00
bsh
675f6328c9 + enable nested interrupts. This change stopped silo overflow messages
at 115200bps.

+ disable all hard interrupts by default.

+ rewrite s3c2xx0_(un)mask_interrupt() to make them faster.
2003-07-30 18:25:50 +00:00
he
d3c139da44 Initialize the new _cookie member of arm32_bus_dma_tag to NULL. 2003-07-30 17:28:19 +00:00
thorpej
d55cef76bf Add an opaque cookie field to the bus dma tag. 2003-07-28 17:35:54 +00:00
thorpej
adef1b7dab Add PBIU register bits. 2003-07-28 16:53:31 +00:00
itojun
3f14c71f75 reserve cdev major # for PF. ok'ed by technical-exec 2003-07-27 14:17:57 +00:00