Commit Graph

296 Commits

Author SHA1 Message Date
soren
80e6d43253 Add asm.h like other ports. 2000-03-30 21:33:30 +00:00
simonb
bf851ea6cb Nuke register. 2000-03-30 14:45:04 +00:00
soren
573160e03b Revert previous. 2000-03-24 23:06:03 +00:00
soren
c535ede30b Move sysctl definitions from arch/mips to arch/foo. 2000-03-24 21:30:58 +00:00
tron
e86957458a Install "machineendian_machdep.h". 2000-03-17 22:36:31 +00:00
mycroft
9e21b6555a In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
2000-03-17 00:09:18 +00:00
mycroft
02905321b2 Foolish consistency. Mainly, always use underscores and sys/endian.h. 2000-03-16 15:09:34 +00:00
nisimura
4c043eb094 Arrange 'vmstat -i' to show 'optslotN'; for interrupt counts of TC slot N
as well as DECsystem 5100 optional serial card slot N.
2000-03-10 01:31:22 +00:00
mhitch
7f9b4522d1 A common device_register() is used instead of a separate version for each
of the different DECstation models.
2000-03-06 03:11:43 +00:00
mhitch
0993165c93 Define __HAVE_DEVICE_REGISTER, since pmax now has device_register(). 2000-03-06 03:11:05 +00:00
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