Commit Graph

162 Commits

Author SHA1 Message Date
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tsutsui
bdc08026eb Fix a botch in rev 1.21. 2008-04-27 15:18:00 +00:00
tsutsui
c3b129605a Use generic atomic_cas_uint() for mutex(9) and rwlock(9), and
remodel old RAS based _lock_cas() implementation for m68010
into genereic atomic_cas_32().
Now sun2 kernel compiles and even works on multiuser. (hehe)

Tested on tme (emulationg 2/120 and 3/150) and (real) 3/80.
2008-04-05 22:47:52 +00:00
joerg
509bb20712 Return NULL if no scsibus was found to fix compilation. 2008-02-18 14:59:52 +00:00
joerg
dd20faf2af Convert to device_find_by_driver_unit. 2008-02-12 19:53:46 +00:00
tsutsui
d0ea2c0ffa Also account idepth in clock interrupt handlers
(which are registered directly by isr_add_custom())
and use the idepth value for CLKF_INTR().
2008-01-26 14:02:54 +00:00
tsutsui
8dcb4a7ea6 Always account idepth for cpu_intr_p(), which is now
mandatory for sys/kern/vfs_bio.c:biodone().

Comments from Andrew Doran, and fixes mutex errors on sun3.
2008-01-11 10:21:26 +00:00
tsutsui
99221a563b Use TAILQ_FIRST(3) and TAILQ_NEXT(3) macro. 2007-12-05 12:31:25 +00:00
tsutsui
2f66d76b2f Adapt sun68k ports to recent interrupt handling changes.
XXX: sun2 (m68010) doesn't have CAS instructions.
2007-12-04 15:12:07 +00:00
ad
4b293a84e1 Interrupt handling changes, in discussion since February:
- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
2007-12-03 15:33:00 +00:00
tsutsui
6e5ce03f0b - update a comment
- use __func__ to print function names
- some KNF
2007-12-01 11:41:20 +00:00
ad
d37935697b Merge tty changes from the vmlocking branch. 2007-11-07 15:56:11 +00:00
garbled
d974db0ada Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree.  Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches.  The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
2007-10-17 19:52:51 +00:00
ad
9c6535a6de Add ci_cpuid where it's missing. 2007-08-04 09:49:51 +00:00
tsutsui
c57c46580b Wrap sanity checks with #ifdef DIAGNOSTIC. 2007-05-21 17:00:32 +00:00
tsutsui
32b0b73c06 Move declarations of m68k common functions
from <machine/cpu.h> to <m68k/m68k.h>.
While here, remove some obsolete function decls.
2007-05-21 16:37:03 +00:00
tsutsui
9e69c7d7d9 Make netintr() static since it's referred only in sun68k/isr.c. 2007-05-21 16:25:14 +00:00
mhitch
9385473585 Add missing call to lwp_startup() in lwp_trampoline() (which was renamed
from proc_trampoline to match the other ports).

A DIAGNOSTIC kernel will now boot and run.  LOCKDEBUG still doesn't work yet.
Also, my amiga no longer loses time.
2007-05-20 04:29:47 +00:00
tsutsui
bd2911249c Adapt sun68k ports to yamt-idlelwp.
Tested on TME (sun2 and sun3) and 3/80 (sun3x).
2007-05-18 10:18:24 +00:00
thorpej
8f326e8290 - Define LOCK_CAS_CHECK() in m68k/frame.h (there because it operates on
a clockframe).
- Call LOCK_CAS_CHECK() in clock_intr() (noted by Izumi Tsutsui).
2007-03-12 02:51:03 +00:00
tsutsui
48c4dc47d3 - use splraise4(), which is defined in psl.h
- use splraise6() rather than spl6() for splzs() and splserial()
2007-03-11 06:25:08 +00:00
thorpej
32a8b62d33 - Shrink ipl_cookie_t from 32-bits to 16-bits (large enough to hold
an SR value or an IPL_* constant).
- Take advange of the smaller ipl_cookie_t to shrink kmutex_t from
  16 bytes to 8 bytes by overlapping storage where possible.
- Implement a RAS-based _lock_cas() for mc68010 systems (Sun2).  See
  sun68k/sun68k/isr.c.

Tested on various m68k platforms, but NOT Sun2.  In any case, at least
Sun2 compiles now.
2007-03-11 05:22:24 +00:00
christos
53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
mrg
4410329b87 add a pair of new bus_dma(9) functions:
int _bus_dmatag_subregion(bus_dma_tag_t tag,
				  bus_addr_t min_addr,
				  bus_addr_t max_addr,
				  bus_dma_tag_t *newtag,
				  int flags)
	void _bus_dmatag_destroy(bus_dma_tag_t tag)

that allow a (normally broken/limited) device to restrict the bus address
range it can talk to.  this is used by bce(4) to limit DMA addresses to
1GB range, the maximum the chip can address.

all this is from Yorick Hardy <yhardy@uj.ac.za> with input from several
people on tech-kern.

XXX: bus_dma(9) needs an update still.
2007-02-21 20:41:23 +00:00
tsutsui
bd2568487a KNF a bit. 2007-02-18 11:52:18 +00:00
ad
3363855a4a Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
2007-02-16 02:53:43 +00:00
ad
b07ec3fc38 Merge newlock2 to head. 2007-02-09 21:55:00 +00:00
hubertf
142c2a33ba Remove duplicate #includes, patch contributed in private mail
by Slava Semushin <slava.semushin@gmail.com>.

To verify that no nasty side effects of duplicate includes (or their
removal) have an effect here, I've compiled an i386/ALL kernel with
and without the patch, and the only difference in the resulting .o
files was in shifted line numbers in some assert() calls.
The comparison of the .o files was based on the output of "objdump -D".

Thanks to martin@ for the input on testing.
2007-01-24 13:08:11 +00:00
tsutsui
a32a73741e Two fixes to avoid lost softintr (probably caused by some race condition):
- make sh_pending in struct softintr_handler volatile
- activate softintr unconditionally in softintr_schedule()
2007-01-23 16:03:43 +00:00
yamt
8bf7662829 merge yamt-splraiseipl branch.
- finish implementing splraiseipl (and makeiplcookie).
	  http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
	- complete workqueue(9) and fix its ipl problem, which is reported
	  to cause audio skipping.
	- fix netbt (at least compilation problems) for some ports.
	- fix PR/33218.
2006-12-21 15:55:21 +00:00
tsutsui
88c6f2c305 Clear pending flags before calling handers otherwise possibly some softintr
could be lost.
2006-10-10 13:26:47 +00:00
tsutsui
0b2c7040b5 Make sun3 use common sun68k/sun68k/isr.c, sun68k/include/cpu.h and
sun68k/include/intr.h.

This also means now sun3 has GENERIC_SOFT_INTERRUPTS support,
so also adapt fd.c and zs.c to MI softintr(9) APIs.

(I'll also update related sources in yamt-splraiseipl branch later)
2006-10-05 14:46:11 +00:00
tsutsui
f2ea89d23a Minor cleanups before isr.c merge with sun3:
- include <m68k/cpu.h> rather than <m68k/m68k.h> in <sun68k/cpu.h>
- wrap M68K_VAC definition with #ifndef _SUN3X_ in <sun68k/cpu.h>
- move setsoftnet() macro from <sun68k/cpu.h> to <sun68k/intr.h>
- move declarations for isr_soft_request() and isr_soft_clear() from
  sun2/include/intr.h to <sun68k/intr.h>
- remove extern keyword from function declarations
2006-10-05 14:24:09 +00:00
tsutsui
c207dcd880 - change find_prom_map() to take paddr_t and return vaddr_t rather than
bus_space_handle_t since bus space handle without bus space tag looks weird
- replace old sun3 obio_find_mapping() with new common find_prom_map()
- add bus_space_vaddr(), from hp300
2006-10-03 13:02:32 +00:00
tsutsui
d23b794c9e First attempt at bus_space(9) support for sun3 with common sun68k/bus.c:
- make sun3 port use common sun68k files as much as possible
- add temporary options _SUN2_ in std.sun2 until sun3 can share all
  sun68k files (autoconf.c and isr.c are not yet)
- move sun68kvme declaration temporary as well from files.sun68k to files.sun2
- rename and move sun68k_find_prom_map() function to MD sources since it
  can't be shared with sun3
- add bus tag members to struct confargs and initilize them where appropriate

XXX1: MD bus_dma(9) backends are not implemented (yet).
XXX2: more code (obio etc.) should be shared among sun3, sun3x and sun2.
2006-10-01 03:53:27 +00:00
tsutsui
5237db51b1 Update a comment and some cosmetics. 2006-09-30 13:57:00 +00:00
tsutsui
13be5e3419 cosmetics 2006-09-30 13:54:53 +00:00
tsutsui
68219aadd9 - move m68k common stuff from files.sun2 to files.sun68k
- use common dev/sun/disksubr.c
2006-09-30 13:43:08 +00:00
tsutsui
aa54c659e7 Move declarations of mainbus_dma_tag and mainbus_space_tag
to <sun68k/autoconf.h>.
2006-09-30 13:37:32 +00:00
tsutsui
32a61d5e54 Make sun68k/stand build without installed ${DESTDIR} files.
Currently "machine" symlink points sys/arch/sun68k/include,
but this means some <machine/foo.h> files are taken from
sys/arch/sun68k/include but others (i.e. files not in sun68k/include)
are taken from ${DESTDIR}/usr/include/machine.

Instead, make "machine" symlink point sys/arch/${MACHINE}/include,
make "sun68k" symlink point sys/arch/sun68k/include (not sys/arch/sun68k),
add sys/arch to include path, and move some files where appropriate.
2006-09-17 06:15:40 +00:00
tsutsui
bcf7e18f6c Always set CFLAGS, CPUFLAGS, and COPTS explicitly like i386/stand
to override settings in /etc/mk.conf, so that build won't fail
in sun68k which contains both sun2 and sun3 sources.

Suggested by thorpej, and closes PR toolchain/34528.
2006-09-17 05:44:46 +00:00
tsutsui
75c544cd93 Workaround fix for a problem caused after IPL_* macro changes.
Based on a patch from mrg on port-sun2.
2006-08-07 23:29:38 +00:00
yamt
29b4acda94 implement splraiseipl() for sun2 and sun3. reviewed by Izumi Tsutsui. 2006-03-29 08:55:40 +00:00
thorpej
58853410ae Use device_class() instead of accessing dv_class directly. 2006-02-21 04:32:38 +00:00
perry
fbae48b901 Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
2006-02-16 20:17:12 +00:00
he
54701b2f77 Follow up the renaming of in_cksum.c to ip_cksum.c. 2006-01-26 22:16:08 +00:00
christos
606bb2caed free -> dealloc
unsigned -> size_t for alloc/dealloc
2006-01-25 18:28:25 +00:00
perry
50a256a3a0 __asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile
2005-12-24 23:23:59 +00:00
perry
5f1c88d70d Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 20:06:46 +00:00
tsutsui
1b26dc9160 Adapt to transition from libkern to src/common/lib/libc. Tested on 3/80.
XXX: Is it simpler to build standard MI libsa/libkern libraries?
2005-12-24 14:15:47 +00:00