Commit Graph

286 Commits

Author SHA1 Message Date
nisimura 582e9de235 - Have SYS_DEV_xxx device cookie symbols to select and install proper
interrupt handlers into intrtab[] array, rather than the idea of devices
  in 'psuedo' TURBOchannel slots.
- Nuke symbols for psuedo TC slots.
- Abandon never/unlikely used intr_disestablish()s.
2000-02-29 04:41:47 +00:00
cgd 7d16ac338c add __BROKEN_CONFIG_UNIT_USAGE #define, becuase these ports do very
wrong things with device configuration data "cf_unit" information.
2000-02-05 00:13:22 +00:00
nisimura 3aaeaf7331 - Massive change of console initialization. Have each model its own
consinit().
- Fix fbconnect() and relatives; 'struct fbinfo' is initialized only once,
  making sure no extraneous console resolution message is emitted.
2000-02-03 04:09:01 +00:00
drochner 8eb798e603 define a "BUS_SPACE_MAP_PREFETCHABLE" flag which basically means that
device accesses are idempotent (but should not be cached by the CPU)
2000-01-25 22:13:17 +00:00
simonb bdf420bdbf Redo interrupt establishment, based in part on work on the
[nisimura-pmax-wscons] branch and suggestions from Toru Nisimura:
 - Remove bogus tc_slot_info[] name for interrupt handling array
   and replace with simplified struct intrhand  intrtab[] array.
 - Add intr_establish() and intr_disestablish() function pointers
   to struct platform and initialise this in each model-specific
   initialisation, and remove global tc_enable_interrupt function
   pointer.
 - Remove model-specific function declarations from ibus/ibusvar.h.
This is functionally identical to the current scheme, and doesn't
yet try to commonise interrupt establishment by bus type as the
[nisimura-pmax-wscons] branch does.

Also, move cpuspeed variable from autoconf.c to machdep.c
2000-01-14 13:45:21 +00:00
ad a4fe338bf5 Fix thinko in comment. 2000-01-11 20:36:17 +00:00
simonb 0e7337b60e Remove defines for VM_PHYSSEG_STRAT and VM_PHYSSEG_NOADD - these are
already in mips/include/vmparam.h.  Now things work again (yo Andy!).
2000-01-09 20:09:43 +00:00
ad 838b5e08c9 - Fix RCS Ids.
- Spacing.
- Protect from multiple inclusion in a consistant way (except on headers
  that do nothing except function as mips header wrappers).
2000-01-09 15:34:41 +00:00
ad e37d8a4671 This is just a wrapper, nuke comment so it's like the others. 2000-01-09 15:12:31 +00:00
ad 010a8f8cb1 - Protect from multiple includes.
- Fix and beef up comments.
- G/C unused def.
2000-01-09 14:28:54 +00:00
simonb 24ddcc3162 Use the badaddr() prototype in mips/include/cpu.h by including
<machine/cpu.h> in mips/include/mips_param.h.  Remove duplicate
badaddr() prototypes from some pmax header files.
2000-01-09 13:24:14 +00:00
simonb 636b65bec8 The clean-up continues:
- Make local-only function and variables static.
 - Move function prototypes and extern variable declarations to
   header files.
 - Delete unused variables.
There's still a handful of extern declaraions that should be fixed up.
2000-01-09 03:55:28 +00:00
simonb ee075b7de7 Function prototype cleanup. 2000-01-08 01:02:35 +00:00
kleink 11e6c54cfc C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
simonb 77aea66917 Use "u_char *" instead of "caddr_t" for all colormap references. In line
with recent MI rasops changes, and fixes compile problems with -current.
1999-12-09 00:16:14 +00:00
simonb 3b874faeb3 Add newline to last line of file. 1999-12-08 04:12:15 +00:00
ragge 0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
simonb fbbde1126e Remove NUMBOOT define - disklabel doesn't install bootblocks anymore. 1999-11-27 01:58:37 +00:00
simonb db783e76e8 Use explicitly sized types for entities that exist on disk.
Use alpha-like defines for boot block offset on disk and boot block size.
1999-11-27 01:51:20 +00:00
simonb 353ca54019 Move memory sizing to a new function memsize_scan(), and add an empty
stub for memsize_bitmap() to use the PROM bitmap for memory information.
Add a memsize function pointer to the platform structure, and make all
existing DECstation models use memsize_scan() for now.

Interestingly, from the Ultrix cpuconf.{c,h} only the 3100 and 5400 use
a memory scan to determine available memory - all other models use the
PROM bitmap...
1999-11-25 01:40:22 +00:00
nisimura 7917bfc69d Back out a part of change in the previous commit; old driver uses it. 1999-11-16 02:48:24 +00:00
nisimura fb43e6e177 Remove now defunct definitions and declaratins. 1999-11-16 02:34:30 +00:00
nisimura 0310fa6595 Very large scale change to sweep obstracles to remove 3MAX IOASIC disguise.
- Rework ibus device configuration and interrupt handler assignment.
- Remove TC device exposure in 'mainbus.c'
- Squash 'ibus_{3100,5100}.c' into a file; it can not cope with 3max.
- 'struct confargs' -> 'struct mainbus_attach_args'
Now about to remove tc_slot_info[] and tc_enable_interrupt inherited from
4.4BSD.
1999-11-15 09:50:17 +00:00
nisimura 91fd021893 - Arrange 'platform' struct to have clkread entry, which can interporate
HZ using high resolution timer circuit if available.  Merge os_init
  into the primary hardware initialization in sysinit[].init.
- Nuke an irrelevant attempt to disable RTC under splhigh condition.
- Make sure IOASIC DECstations accumulate device interrupt mask bits into
  certain global variables.
- Have witchcrafts to issue ACK to RTC interrupt.
- Add a missing \n and a minor rearrangement in cpu.c
1999-11-12 09:55:37 +00:00
kleink b4f0936a8c Per discussion on tech-toolchain, remove MIPS-specific <machine/elf.h> header;
all the information is available from <sys/exec_elf.h>.
1999-11-09 21:50:18 +00:00
drochner 52f922f960 correct last change: mkboot depends on (sizeof(struct boot_block)==512) 1999-10-29 15:21:13 +00:00
kleink 522cbf0248 Update to match new SVR4-style definition names in <sys/exec_elf.h>. 1999-10-25 13:55:06 +00:00
simonb 249879ba34 Begone with some garish Mach_StructureNames.
Add a comment about the bootblock structure.
1999-10-25 02:29:45 +00:00
simonb 690672a81d Don't let loadfile_machdep.h make it to /usr/include - the pmax
stand Makefiles already set up the compile environment so that
machine/loadfile_machdep.h can be found.

XXX: Not done for i386, mmeye or sparc - I can't test these at the
     moment.  It should be as simple as making a machine symlink
     pointing to .<some number of ../'s>./include in the objdir...
1999-10-25 00:17:27 +00:00
mycroft c3e1f6741d A foolish consistency. 1999-08-30 18:58:01 +00:00
mrg f75cf1688b install ieee.h 1999-08-30 00:51:57 +00:00
mycroft 4ef547e76d Add ieee.h. 1999-08-29 18:21:20 +00:00
simonb d65a712698 Fix some small tyops. 1999-08-25 02:12:05 +00:00
thorpej eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
ad 724365fa3e Change the way fb devices are configured and attached:
- 'struct fbsoftc' created, which points to a 'struct fbinfo'
- 'struct fbinfo' for each device is allocated with fballoc()

This means:
- Console device doesn't get different 'struct fbinfo' at attach
- Console device doesn't get initialized twice
- Color rcons now works
- The current Xserver MUST BE REBUILT.
1999-07-25 22:50:28 +00:00
simonb 988906cf52 Put tc_machdep.h back - the X server needs it to build. 1999-07-19 23:35:29 +00:00
ad 7a71d12944 Clear out 'struct fbdevice' cruft; it represents bitrot on pmax. Add
#ifdef'ed out definition for 'struct fbsoftc', the way forward until
[nisimura-pmax-wscons] is merged.
1999-06-21 19:21:10 +00:00
nisimura 8286166c86 - Call _splnone() explicitely after auto config. was well done to make
sure SOFT_INTs cleared before interrupt processing is started.
1999-05-31 07:42:56 +00:00
nisimura d7a56fd7fa - Continue on branch merge, incrementally.
- Catch up filename changes escaped to be fixed.
1999-05-26 04:23:58 +00:00
nisimura 014ba724c0 - Rework spl(9) implementation. Use _spl*() processor mask manipulating
routines now reside in locore.S.  No functional difference is expected.
- Replace abused splx() abuse with _splset() to change MIPS processor
interrupt mask bit.  'mips/trap.c' side will be fixed soon.
1999-05-25 04:17:57 +00:00
thorpej c7ad933ffa Add a second memory free list, which holds the first 8M of RAM. This is
so that devices which must allocate DMA memory in this range (e.g.
PixelStamp graphics boards) have a better chance of doing so, without
an awful hack.
1999-05-07 18:04:36 +00:00
christos 49a60fee19 Add loadfile_machdep.h 1999-04-28 09:19:35 +00:00
simonb dc1d3940db Nuke register and remove trailling white space. 1999-04-24 08:01:01 +00:00
simonb 6f6573cb10 Move BOOTINFO_ADDR up to 0x8001fc00, and reduce the maximum size of a
bootinfo record to 1kB (we are using less than 200 bytes now) so that it
doesn't run into addition PROM memory.

At 0x8001f00 the bootinfo record was stomping on some memory used by the
SFB cards for font information.
1999-04-22 01:52:54 +00:00
ad 7940da64de Define PMAX_FBTYPE_PX. Changes to allow fbvar.h to be included with
dev/rcons/rcons.h.
1999-04-13 03:14:03 +00:00
nisimura dd8e585cec - MIPS processors do not require to have memory barrier prior to read ops. 1999-04-08 03:14:35 +00:00
soda 2f9a4a8d93 regdef.h is back 1999-03-30 18:38:32 +00:00
soda 45b35a036e regdef.h is back 1999-03-30 14:20:43 +00:00
simonb a63b96d0c4 Don't install sysconf.h - nothing is exported to userland in this file. 1999-03-30 02:19:02 +00:00
simonb 729eda4324 Define a bootinfo record and initial structures that the pmax will use.
Modeled on i386 and bebox bootinfo.h.
1999-03-23 22:53:02 +00:00
simonb 41febd3a3c Move DB_{AOUT,ELF}_SYMBOLS (and DB_ELFSIZE) definition to port-specific
db_machdep.h file.
1999-03-23 22:07:06 +00:00
drochner 76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
nisimura ed09809062 - Final cut of TC decoulping. 1999-03-16 05:59:01 +00:00
drochner 7482575685 regdef.h is gone 1999-03-13 11:24:59 +00:00
drochner 0265284ce4 This file is unneeded since <mips/regdef.h> went into <mips/asm.h>. 1999-03-13 11:24:11 +00:00
nisimura 57edf91cbc - Nuke old leftover bogocities, round one; externs for non-existent
functions, less-intuitive #define's in inappropriate header files.
1999-03-12 07:13:14 +00:00
nisimura f875c6618a - Exclude 'tc_machdep.h' from installed in /usr/include/machine/ directory. 1999-03-12 07:03:21 +00:00
simonb 33fe56f80f Fix prototype for clear_cache (takes an address and length, not void). 1999-03-01 04:01:50 +00:00
tv e07978e871 Split the "mips" MACHINE_ARCH for 1.4. newsmips is "mipseb"; pmax is
"mipsel".
1999-02-09 17:15:51 +00:00
simonb 22cbe4abc1 Add a comment that the bcopy #define that uses the PROM's memset don't
handle overlapping copies.  From Jonathan Stone.
1999-02-01 02:18:46 +00:00
simonb cbbad6d2b2 Add bzero/bcopy defines to use PROM memset/memcpy.
Change test to include defines from
	#ifndef _KERNEL
to
	#if defined(_STANDALONE) && !defined(_NO_PROM_DEFINES)
1999-01-31 13:49:40 +00:00
castor d0ca7993a0 Remove genpubasym.cf stuff 1999-01-31 01:01:12 +00:00
simonb e1167d2415 Add REX magic number 1999-01-30 00:36:10 +00:00
simonb ddd6d4cef1 Add some more PROM entry points 1999-01-29 12:05:02 +00:00
mycroft 3e6e3322d8 Format consistency. 1999-01-24 12:56:51 +00:00
nisimura f714e02733 - Fixup for recent change in arch/mips. 1999-01-16 02:36:01 +00:00
bouyer dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
castor 45a22daf10 allow generated kernel includes and support mips pubassym.cf mechanism 1999-01-15 10:57:36 +00:00
nisimura 9df51b1b1f - Complete vm_offset_t purge for DECstation. 1999-01-06 04:18:53 +00:00
thorpej d681cf055a configure() prototype is in <sys/device.h> 1998-10-06 20:50:15 +00:00
drochner 1826b0bca2 Use the RTC chip as time-of-year clock, as the PROM console and Ultrix do. 1998-09-26 20:59:42 +00:00
nisimura e37ce1c5b6 Make spl(9) rountines target port dependent. delay() is also port
dependent anticipating a target with high resolution timer available
for on-the-fly re-programming.  Enum decstation_t was removed from MI
trap.c.
1998-08-25 01:55:38 +00:00
thorpej d47ea67c1f Define one page free list, and put all pages on it. 1998-07-08 04:43:18 +00:00
cgd 651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
thorpej 691e8af708 Add a "virtual address" private member to the pmax bus_dma_segment_t, for
use in R4000 cache flush operations in bus_dmamap_sync().
1998-06-03 04:38:41 +00:00
thorpej 7a9c58e1b1 Complete from-scratch rewrite of the DECstation bus.h, brining it
up-to-date with the current API, and implementing preliminary
support for bus_dma.
1998-05-22 21:14:04 +00:00
thorpej 1686aca01d Pull in opt_gateway.h as appropriate. 1998-04-29 23:11:00 +00:00
jonathan fc2608c7a2 Define TC_KV(), TC_C() here for benefit of model-specific TCbus initializers. 1998-04-19 11:16:18 +00:00
jonathan fff42c01c8 Define IPL_ constants for pmax. 1998-03-30 09:07:08 +00:00
thorpej b6fca1a9c8 The line between "family" and "model" are ... very fuzzy on the DECstation.
So, don't bother.
1998-03-26 06:27:57 +00:00
jonathan b40a3c98f5 Use an MD name for the FPU-interrupt mask, as in PR # 4399.
mips-based Sony news wire the FPU to hard-interrupt 3, rather than 5
as recommended in Kane.
1998-03-25 08:35:39 +00:00
jonathan 6975dc93a9 Split sys/arch/pmaxpmax/{machdep.c,trap.c} as suggested by Jason Thorpe:
* add "Platform" support inpmax/pmax/sysconf.c and pmax/include/sysconf.h
   (based on Alpha cpuconf.[ch], with a namechange to avoid clashes with
   support for  models of MIPS cpus. They  differ more than Alphas).

 * For each supported model of DECstation, create a separate file
   with the support for that model.  Use model codenames, since
   support is really baseboard-specific and CPU daugherboards can change.
   Move code from machdep.c and pmax_trap.c,
   Add sysconf (nee "cpuconf") support.

 * Rename model-specific functions to match sysconf names.

 * Clean up autoconf.c.  Use platform callbacks.

 * Retire pmax_trap.c.

Leaves  I/O bus configuration and console configuration untouched.
1998-03-25 03:57:53 +00:00
thorpej d6085102e9 DECstations have one physical memory segment. 1998-02-25 23:31:03 +00:00
thorpej 17eae81dc5 Use the generic NetBSD/mips crash dump code. 1998-02-19 23:13:33 +00:00
perry 6f57e5c573 multiple include protect machine/limits.h, fixes pr 4473 (from Mika Nystrom) 1998-01-09 22:23:44 +00:00
perry 015e898c02 RCSID Police. 1998-01-05 07:02:46 +00:00
jonathan 4d03a7d4d0 Fix typo in bus_space_barrier definition. See PR 4488. 1997-11-28 00:33:53 +00:00
jonathan 64a7794048 <machine/intr.h> is required. Supply an empty one.
VS: ----------------------------------------------------------------------
1997-10-26 10:41:32 +00:00
jonathan a03a434f1b * Use ANSI-clean names for host-specific byte-order definition
(_BYTE_ORDER, _BIG_ENDIAN, _LITTLE_ENDIAN).
  Define old names from the ANSI ones if not _POSIX_SOURCE.
* Define _QUAD_HIGHWORD and _QUAD_LOWWORD properly when
  _BYTE_ORDER == _BIG_ENDIAN.
1997-10-20 09:57:05 +00:00
jonathan 22b3f9ebd8 Add bi-endian support to mips locore, <mips/endian.h>, and mips_opcode.h.
Derived from a change request (PR port-mips/4277) from
Tsubai Masanari, (tsubai@iri.co.jp).
1997-10-17 04:43:57 +00:00
leo ef6f3f7e25 Move the definition of MSGBUFSIZE up to the machine-arch level if
possible. Pointed out by Bernd Ernesti.
1997-09-20 12:08:24 +00:00
leo d4713d24c2 Implement the kernel part of pr-1891. This allows for a more flexible sized
msgbuf. Note that old 'dmesg' and 'syslogd' binaries will continue running,
though old 'dmesg' binaries will output a few bytes of junk at the start of
the buffer, and will miss a few bytes at the end of the buffer.
1997-09-19 13:52:37 +00:00
jonathan 5342b11519 Replace copyright notice. 1997-08-30 01:51:02 +00:00
jonathan e14d1d4768 Move SSIZE and DELAY() definitions to sys/arch/mips/include/mips_param.h.
Update comment in pmax/include/param.h (pr 3988).
1997-08-20 03:47:17 +00:00
jonathan 4631885e91 Kill __BROKEN_INDIRECT_CONFIG on pmax.
Based on a patch from Chris G. Demetriou, December 1996.
1997-07-21 05:39:02 +00:00
jonathan d1ec048977 DDB for mips.
Add DDB interface to /sys/arch/mips/mips..
  Rework heuristic stack traceback to work with DDB.
  Add hooks  to print exception log from DDB.
  Add hooks from pmax console drivers:   call Debugger()
  after break from serial console, or 'DO' key from LK-xxx.
1997-07-07 03:54:24 +00:00
jonathan e5e8113990 Copyright to NetBSD foundation. 1997-06-22 22:41:33 +00:00
jonathan 89868a5f07 Import mcclock from NetBSD/Alpha, mostly replacing the Sprite clock code.
interface.   From Toru Nishimura <nisimura@itc.aist-nara.ac.jp>.

Partly merged back with Alpha code by Jonathan Stone. Needs more merging.
1997-06-22 09:34:34 +00:00
jonathan 1f44934407 * Change Sprite MACH_xxx prefix to MIPS_xxx.
* Use standard mips terminology (xxx_KSEG0, xxx_KSEG1) instead of the
  (more meaningful) Sprite names (xxx_CACHED, xxx_UNCACHED).
1997-06-22 07:42:25 +00:00
jonathan 2d10220f8f Yet more mips1/mips3 merging:
Move mips-specific pmap definitions (PMAP_PREFER for mips3, declaratin
of pmap_bootstrap() for the system-specific machdep.c) from
arch/pmax/include/pmap.h to arch/mips/include/pmap.h.
1997-06-16 07:47:42 +00:00