Commit Graph

199 Commits

Author SHA1 Message Date
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
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
yamt
bc21da4cfb bus_dmamem_map: honour BUS_DMA_NOWAIT. noted by Manuel Bouyer.
bus_space_map: always do NOWAIT allocation as it used to be before yamt-km.

we have too many copies!
2005-11-24 13:08:32 +00:00
drochner
44bf0a7ee2 s/locdesc_t/int/g 2005-08-26 13:19:34 +00:00
skrll
40f827d8b1 Don't make symlinks when doing obj, clean, or cleandir targets. 2005-08-05 09:16:54 +00:00
drochner
996c273eda adaptions to config_search() change, and minor autoconf fixes, mostly from Havard Eidnes 2005-06-30 17:03:51 +00:00
junyoung
17670568fe Use FS_OPS() macro. 2005-06-23 19:44:00 +00:00
thorpej
15adcb96b8 Move common Sun ID PROM definitions into <dev/sun/idprom.h>. 2005-06-19 20:00:28 +00:00
tsutsui
6df30aa4a7 Add const. 2005-06-03 22:02:30 +00:00
tsutsui
77ba4e3671 Add const. 2005-06-03 21:57:16 +00:00
jmc
394eb3a175 Don't need realall/realdepend now that .BEGIN works 2005-05-12 02:56:59 +00:00
yamt
6b2d8b66a4 merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
  save some resources like pv_entry.  also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
2005-04-01 11:59:21 +00:00
matt
a6db24a485 Add a dm_maxsegsz public member to bus_dmamap_t. This allows a user of the API
to select the maximum segment size for each bus_dmamap_load (up to the maxsegsz
supplied to bus_dmamap_create).  dm_maxsegsz is reset to the value supplied to
bus_dmamap_create when the dmamap is unloaded.
2005-03-09 19:04:43 +00:00
he
0429525c8e The ANSIfication apparently revealed a use of netif_attach() with a
missing argument.  (It doesn't appear to be used, though, so this should
be a functional NOOP, except for fixing the build problem.)
2005-01-26 20:34:50 +00:00
he
6012a9f72d Make forward declaration and actual function definitions consistent.
Some of the functions changed signature in the previous commit.
2005-01-26 20:32:27 +00:00
chs
fa924b7be7 move spl*() and IPL_* definitions from psl.h to intr.h. 2005-01-23 17:27:03 +00:00
chs
10b1a7be5e de-__P, remove register, ansify, b* -> mem*, u_int*_t -> uint*_t. 2005-01-22 15:36:09 +00:00
chs
267af995b7 use the generated macros in locators.h rather than hard-coded numbers
to index the cf_loc[] array.  reviewed by allen briggs.
2004-12-14 02:32:02 +00:00
chs
0ded74691b for drivers that support only one instance, use a global variable to ensure
that only one instance is configured rather than requiring that its
unit number be zero.
2004-12-13 02:14:13 +00:00
yamt
d2fe4b34bb move some per-cpu data definitions to MI place so that they can be modified
without touching all ports.  discussed on tech-kern@.
2004-09-22 11:32:02 +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
agc
7db1d33cba Modify the licences of code written by Theo De Raadt from a 4-clause
to a 2-clause licence (retaining UCB clauses (1) and (2)), per PR
22409 from Joel Baker, approved by Theo de Raadt, and ratified by
myself - the only discrepancy being the handling of the original
clause 3 in src/usr.sbin/yppoll/yppoll.c.
2003-12-10 12:06:25 +00:00
tsutsui
375036d6b3 Specify 32bit daddr_t not only for ufsboot but also libsa and all SA_PROGs.
Now bootxx and ufsboot works again.
2003-11-30 05:32:39 +00:00
chs
d9fc04266e fix parallel build. 2003-11-02 16:01:16 +00:00
chs
79f70b37d7 find libsa files. 2003-11-02 16:00:54 +00:00
mrg
f06db78213 NULL -> 0 bogon. 2003-10-28 08:00:36 +00:00
lukem
f85d2d1c14 Use ${HOST_SH} instead of `sh'.
If necessary, pull in <bsd.sys.mk> to get the definition of HOST_SH;
Makefiles that pull in one of (most of) <bsd.*.mk> will get this anyway.
2003-10-26 07:25:33 +00:00
cl
4169237230 SA_SIGINFO support for m68k (port specific changes) 2003-09-22 14:26:57 +00:00
cl
cebad0b338 make compile 2003-09-21 14:41:33 +00:00
dsl
f3404c9f63 Fix same breakage as previous (need memmove for symlink handling in ufs.c)
but use (probably) smaller footprint code from libsa.
2003-08-22 21:14:35 +00:00
he
241ad00001 Adapt to const'ing of the first argument of the open function in fs_ops. 2003-08-21 22:34:48 +00:00
he
395b0c6682 Now that ufsboot / ufs.c uses memmove(), we need to include it here. 2003-08-21 13:12:32 +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
fredette
c7f2e26f8b Bumped the version number to account for fixes in tapeboot. 2003-08-05 19:14:56 +00:00
fredette
100e6f3698 Added seek support for tape files. Before, seeking a tape file
would silently fail, causing loadfile to load file contents into
the wrong addresses.

On the sun3/sun3x, MARK_START was incorrectly set too.  Also
added support for booting a sun2.
2003-08-05 19:10:26 +00:00
mrg
7f6765697c need -ffreestanding 2003-07-27 05:04:43 +00:00
lukem
ed51729135 __KERNEL_RCSID() 2003-07-15 02:54:31 +00:00
fvdl
7dd7f8baa2 Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
2003-06-15 23:08:53 +00:00
thorpej
e43fecb228 Change bounds_check_with_label() to take a pointer to the disk structure,
rather than the label itself.  This paves the way for some future changes.
2003-05-10 23:12:28 +00:00
wiz
1ffa7b76c4 DMA, not dma nor Dma. 2003-05-03 18:10:37 +00:00
dsl
d91455ce26 Change return type of readdisklabel() to const char *
I hope I've found all the correct places!
2003-05-02 08:45:10 +00:00
thorpej
3b9d583516 Use PAGE_SIZE rather than NBPG. 2003-04-01 15:23:07 +00:00
kristerw
6a6ff92fd5 Revert last change (dependance on divdi3.c, moddi3.c, and qdivrem.c) and
use 32bit daddr_t instead, as suggested by Izumi Tsutsui.
2003-03-30 00:17:28 +00:00
kristerw
3735c66934 Add snprintf, divdi3, moddi3, and qdivrem so that ufsboot builds. 2003-03-16 01:29:04 +00:00
kent
cd7d9faeaf Introduce BUS_DMA_NOCACHE, and bus_dmamem_map() of i386 supports it. 2003-01-28 01:07:51 +00:00
thorpej
d2275d51e1 Merge the nathanw_sa branch. 2003-01-18 06:55:21 +00:00
wiz
7e681f7063 interrupt with two rs. 2003-01-06 13:04:54 +00:00
thorpej
9c1214153c Use aprint_normal() for cfprint routines. 2003-01-01 02:20:47 +00:00
lukem
0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
chs
db6b326aab merge all the m68k copies of kgdb_machdep.c. 2002-11-03 01:11:58 +00:00
chs
1c2419d28a merge the 12 copies of vm_machdep.c on the m68k platforms.
clean up some other stuff along the way, including:
 - use m68k/cacheops.*, remove duplicates from cpu.h.
 - centralize a few declarations in (all the copies of) cpu.h.
 - define M68K_VAC on platforms which have a VAC.
 - switch the sun platforms to the (now common) proc_trampoline().
 - do the phys_map thang on the sun platforms too, no reason not to.
2002-10-20 02:37:21 +00:00
thorpej
4bf871a755 Add trailing ; to CFATTACH_DECL. 2002-10-02 16:02:08 +00:00
thorpej
fa165ee3fd Use CFATTACH_DECL(). 2002-10-01 05:18:59 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
thorpej
6c88de3b53 Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller.  Use it
rather than invoking cfattach->ca_match directly.
2002-09-27 03:17:40 +00:00
thorpej
d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
thorpej
71404bb533 Don't include <sys/map.h>. 2002-09-25 22:21:01 +00:00
fredette
51c7735d8a Compile all standalones for the 68010, which makes bootblocks
compiled for the sun3 also usable on a sun2.  This enables
making a single filesystem that can boot on all of sun2, sun3,
and sun3x (say, like on a CD-ROM).
2002-06-17 13:35:04 +00:00
fredette
bcd8676e8a Reverted previous commit. It was meant to fix a problem that
was already fixed by nathanw, had I bothered to check.
2002-06-03 00:56:55 +00:00
fredette
e0b7d8c222 Now make a machine/ directory with symlinks to a small number
of machine-specific headers.  When ${MACHINE} is sun2, this
allows building the sun3 and sun3x parts of libsa, which need
things like <machine/param3.h> and <machine/param3x.h> to be
#includeable.
2002-06-03 00:29:04 +00:00
fredette
180293c7b7 exit() is now declared in libsa's stand.h, and takes an int. 2002-06-03 00:18:26 +00:00
drochner
d2b9876081 move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling
2002-06-02 14:44:35 +00:00
nathanw
343166210e Always build the m68000 math routines, since we compile libsa in m68000 mode. 2002-05-30 22:33:12 +00:00