Commit Graph

2078 Commits

Author SHA1 Message Date
chuck 3a1fcc746e MNN is now the only option possible 1999-01-16 20:04:22 +00:00
thorpej 8922647c58 Some minor, mostly costmetic, changes to CPPFLAGS/CFLAGS. 1999-01-15 23:37:05 +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
drochner 35eeb3f1cd remove dummy "load_font" entries 1999-01-11 21:54:22 +00:00
nathanw d2f4d39a08 wskbd, not wskbs. 1999-01-10 22:51:46 +00:00
mjacob b7a8ca1386 For some reason (I don't know why nobody else has seen this)
egcs-2.91.57 didn't like the void * subtraction on line 904.
I'll risk everyone's wrath by casting around it.
1999-01-10 03:16:21 +00:00
thorpej e598335d1c Garbage-collect `mbutl'. 1999-01-09 22:10:12 +00:00
augustss fc5f9ee81d Add -Wpointer-arith warning since `void *' arithmetic is not ANSI C. 1999-01-08 19:26:12 +00:00
thorpej cd93f8dfc9 - Add adv and adw SCSI controllers, commented out, as they do not yet
work.
- Add USB stuff.
- Add new pcscp SCSI driver.
- Comment out wss driver, as the configuration listed hangs some systems
  cold.
1999-01-06 23:42:27 +00:00
ross 509315b9e0 We don't call prom_open() here anymore, so don't call prom_close() either! 1998-12-28 09:12:52 +00:00
thorpej 3bd57bb34b Correct a panic message. 1998-12-18 19:52:11 +00:00
augustss e481435c53 Add sv driver. 1998-12-10 19:01:41 +00:00
augustss 8398f3a4db Add ugen, a generic USB driver. 1998-12-08 15:52:31 +00:00
thorpej 7fa243e59e Pass the symbol table size, like a.out. 1998-12-04 20:22:36 +00:00
ross 33038ca087 Tweak this so it will build and run on ILP32 hosts, anyway, 0x...LL constants
are blessed by the C9X draft.
1998-12-03 04:16:18 +00:00
thorpej a6f7e0c05a Implement WARN_REFERENCES(). 1998-12-02 00:58:42 +00:00
thorpej 11f3c29221 Add USB devices. 1998-11-29 06:57:46 +00:00
thorpej 958666b11a Oops, restore pcb_onfault if a fault occures in kcopy(). Pointed out by
Charles Hannum.
1998-11-26 20:26:52 +00:00
pk 4dc534f05d Export the `pcmciabus' attribute on the `pcic' controller. 1998-11-26 15:35:58 +00:00
ross 8bc9c17338 Disable sanity checks and unnecessary setup for conblock (-b) mode. 1998-11-25 21:19:35 +00:00
hwr 59acb69be1 Add (commented out) 'gre' pseudo device line. Feedback is welcome.
Inspired by Klaus Klein.
1998-11-25 20:30:44 +00:00
mjacob 6b12feab6d add missing include file 1998-11-25 19:58:47 +00:00
tv 182b5b1d68 Sync with various options in GENERIC that were not added/changed here. 1998-11-25 18:37:48 +00:00
tv e7f7d54046 The wss driver does work (AS200/233 uses it). Uncomment. 1998-11-25 18:37:27 +00:00
kml ba30effcf8 Changes to support a HIPPI Framing Protocol device, which allows raw
HIPPI packets to be written without having to go through the network
stack.
1998-11-20 04:12:57 +00:00
ross 8d957efade Sigh, shuffle the nsio ide frobber yet again. 1998-11-20 03:58:22 +00:00
thorpej 5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
mrg db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
ross 3f24fce866 More include shuffling. 1998-11-19 02:53:47 +00:00
ross b0f44850f5 Don't insist on an FFS if we are in contiguous block (-b) mode. 1998-11-19 02:44:40 +00:00
ross d963824bdc #include <machine/intrcnt.h> 1998-11-19 02:35:39 +00:00
ross bc9cb58205 Fix interrupt map for baseboard bridge. 1998-11-19 02:33:37 +00:00
ross 47c613e7dd #include <machine/alpha.h> 1998-11-19 02:29:49 +00:00
ross 4ea2865631 +#include <machine/alpha.h>
+#include <machine/intrcnt.h>

Also, this module gets the junk I/O IDE channel frobber that used to
be in dec_axppci_33.c, so it can be called for the eb64plus also.
1998-11-19 02:28:56 +00:00
ross 372977cf54 Nuke the final holdout of INTRNAMES_DEFINITION.
Do a nice gas.new .rept/.endr loop and also pad each string with spaces
in case a platform actually does want to rewrite the names.

G/C some EVCNT_COUNTERS stuff.
1998-11-19 02:27:29 +00:00
ross b9fa3646cb #include <machine/intrcnt.h>
#include <machine/alpha.h>
g/c some EVCNT_COUNTERS stuff.
1998-11-19 02:23:15 +00:00
ross c6c1b0098f #include <machine/alpha.h> 1998-11-19 02:22:01 +00:00
ross ee226b43f1 Include <machine/alpha.h> and do not directly include <bus.h> 1998-11-19 02:20:07 +00:00
ross 7221bd8229 +#include <machine/alpha.h>
-#include <machine/bus.h> (done for you by alpha.h)
Take the junk I/O chip IDE channel frobber and move it to machdep.c.
1998-11-19 02:05:07 +00:00
ross d3509bcc51 Clarify the 1000/1000A situation: two variation tables and an all-purpose
backup platform.family string.
1998-11-19 02:02:45 +00:00
ross 9b7ad6c70c #include <machine/alpha.h> 1998-11-19 01:59:39 +00:00
ross 8470625657 New module to hold the alpha-specific prototypes that don't need to be
exported to the MI kernel. Almost everything here was formerly in cpu.h.
Optionally, this module could in the future be used to #include anything
that is always needed by arch/alpha modules.
1998-11-19 01:57:56 +00:00
ross 19a4c3110c Rip out 70 lines of (all of) the port-alpha-specific decls and prototypes.
They should not be visible to the MI kernel and the MI kernel shouldn't
depend on this junk.  Most of it moves to new module <machine/alpha.h>.

Leave badaddr() here, though, because it's used so widely.
1998-11-19 01:51:40 +00:00
ross e2e3ee52ae Nuke the giant ugly-as-sin per-platform INTRNAMES masterpiece.
I just cannot add one more platform without getting sick.
Instead, we do just one table for all platforms. More-or-less,
it was only the A12 that even named it's individual interrupts anyway.

Also, prototype set_iointr() here. It's a slightly odd place, but 10*
better than the old place it was, and this file is included by exactly
the perfect set of .c files for set_iointr() visibility.
1998-11-19 01:48:04 +00:00
ross a68dbb068a Stop including <machine/alpha_cpu.h>; we already export <machine/cpu.h>. 1998-11-19 01:42:37 +00:00
ross da8b1017f4 "extern struct rpb *hwrpb" belongs here (duhhh) 1998-11-19 01:41:36 +00:00
oster cf5710c839 Added a (commented out) configuration line for the RAIDframe device driver. 1998-11-16 16:44:55 +00:00
oster c74d32c5fc Updating of bdev's and cdev's to support RAIDframe. 1998-11-13 04:47:03 +00:00
mjacob c0782a3653 more printf cleanups 1998-11-11 21:40:38 +00:00
thorpej 49c62c4336 Changes to support fork_kthread():
- cpu_set_kpc() now takes void *arg third argument, passed to the
  entry point.
- cpu_fork() allows parent to be non-curproc iff parent is proc0.
  When forking non-curproc, assume its state has already been saved.
- Adjust various pieces of machine-dependent code to account of all of this.
1998-11-11 06:41:23 +00:00
chs 61458d7dfa LOCKDEBUG enhancements for non-MP:
keep a list of locked locks.
use this to print where the lock was locked
when we either go to sleep with a lock held
or try to free a locked lock.
1998-11-04 06:19:55 +00:00
fvdl 42921bd66d Add the ex driver. 1998-11-04 00:40:03 +00:00
ross cee6f4a531 Implement the new BUFCACHE option. 1998-11-02 04:43:23 +00:00
mjacob 3bcd2ef84d fix botched printout format 1998-11-01 00:03:08 +00:00
mjacob 82b48f66b6 If NSIO not defined, compile errors. 1998-10-31 23:51:05 +00:00
briggs 67be755f17 DTRT if sfb is not configured in the kernel. 1998-10-23 23:49:31 +00:00
briggs 2db4e51dad Kernel config for wscons/serial console support for TC alphas, based on
GENERIC.  This can go away when NEW_SCC_DRIVER hits prime-time.
1998-10-22 01:05:36 +00:00
briggs ab9470909c Preliminary support for both serial consoles and kbd/display wscons
consoles for TC alphas.  Based on code from Takuya Koumoto
<takuya-k@is.aist-nara.ac.jp> as well as some parts of Toru Nishimura's
and Matthias Drochner's work on pmax wscons.  This relies on the
NEW_SCC_DRIVER.
1998-10-22 01:03:07 +00:00
tron b296275bb4 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:09:13 +00:00
briggs ba0625f1f5 vm_offset_t no longer exists. Change to paddr_t, vaddr_t, and psize_t. 1998-10-19 00:32:44 +00:00
ross 3707ad314c History. INSTALL is now used on the floppy set and combo CD/HD/tape image. 1998-10-16 00:15:15 +00:00
drochner 5bdff43727 Initialize default disklabel properly: Whole disk is RAW_PART, not 'a'. 1998-10-15 19:08:33 +00:00
drochner 2468738337 change handling of libkern:
-sys/lib/libkern builds as library per default (as it was documented all
 the time)
-ports able to LKM set "KERN_AS=obj" explicitely in their Makefiles
 (for now; should depend on actual "option LKM" or -better- functions
 included for LKM use should be pulled in by a stub)
-always link libcompat before libkern - libkern stuff can be referred to
 by libcompat, but not the other way
1998-10-15 18:37:13 +00:00
ross 3e35915bc3 Don't use big 16K blocks for the -b contiguous secondary boot installation.
It leads to confusion about where the end of the image is on tape boots.
1998-10-15 01:05:20 +00:00
ross 16bf3552bb Save a0 during bss clear. 1998-10-15 01:02:55 +00:00
ross 9f7ca48f3b Delete prom_open() wrapper routine. Other clients of prom_open
can use the prom.h dispatch macros instead, especially since they
all presently expect the raw return bits.
1998-10-15 01:02:15 +00:00
ross c84b7f501e Delete bogus prom_open() prototype. 1998-10-15 01:00:56 +00:00
ross 412f6ae85b Grab booted_dev_fd parameter from bootxx. It won't be there for netboot
but there should be no harm done.
1998-10-15 01:00:07 +00:00
ross 6336abe01a const'ify 1998-10-15 00:56:56 +00:00
ross df51a43618 Rototill the primary boot for...
1. much faster speed
  2. support of more media types
1998-10-15 00:55:48 +00:00
ross c33589db84 Consult osrelease.sh and pass down NETBSD_VERS 1998-10-15 00:52:38 +00:00
ross 74f36b2497 Try the ustarfs open first...it's the only one that can't necessarily
seek. We might be reading a tape and the extra superblock reads will
eat up tape records.
1998-10-15 00:51:22 +00:00
ross 9c29657a67 Extern def for raw prom disk file descriptor. 1998-10-15 00:49:34 +00:00
ross b0367fb980 Don't actually do the raw prom open here. 1998-10-15 00:48:55 +00:00
ross 8447dd624c 1. STANDALONE -> _STANDALONE
2. Key raw prom interfaces defes on ENABLEPROM
3. Define the prom "ioctl" magtape functions.
1998-10-15 00:47:28 +00:00
ross d4e2b18bb1 Define ENABLEPROM, which turns on the raw prom interface defs. 1998-10-15 00:45:52 +00:00
matt 495a4bdb2c Sync with new IDE support (e.g. pciide changes) 1998-10-14 18:31:34 +00:00
matt f8e4127109 Remove pciide definitions in files.alpha since they are now in files.pci 1998-10-14 18:00:11 +00:00
kleink cee25f5a9c Since libc is not ready for enabling weak symbol support yet, disable the
WEAK_ALIAS() macro for now (like cdefs.h).
1998-10-13 11:39:26 +00:00
thorpej 908cdfe4e3 Add scsibus entry points to the cdevsw[]. 1998-10-10 02:00:49 +00:00
thorpej 29d472f53d Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter.  This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
1998-10-10 00:28:28 +00:00
ross b6553585ab g/c leftover `{' in #if notdef; it confuses ctags(1) 1998-10-07 19:09:53 +00:00
thorpej b38544d99e Oops, back out a buglet I didn't intend to commit in the last change. 1998-10-07 18:29:26 +00:00
thorpej abaeca8063 Move the calls to hwrpb_restart_setup() and cpu_run_spinup_queue() to the
end of configure().
1998-10-06 21:19:05 +00:00
thorpej 2038eb830c Split hwrpb_restart_setup(), putting the code that initializes the vtpb
and primary hwpcb into hwrpb_primary_init().  Call the latter before
performing autoconfiguration().
1998-10-06 21:10:46 +00:00
thorpej d681cf055a configure() prototype is in <sys/device.h> 1998-10-06 20:50:15 +00:00
ross ddde128de9 Track compat/linux/arch/* reorg. 1998-10-05 05:55:35 +00:00
ross b9fef4b8ad The 2-disk install floppy allows us to add:
* 3000-series CPU support, plus all the tc devices
	* 4100-series CPU support
	* misc SCSI HBA support (removed earlier for space reasons)
1998-10-05 05:04:46 +00:00
matt 4a1b880605 Add files.usb. It should work. 1998-10-05 00:49:15 +00:00
christos c0f54daf70 Add em_alpha_exp 1998-10-03 18:17:14 +00:00
ross 78492e307a If not MULTIPROCESSOR then identify the interrupt target cpu by hwrpb id (%d)
rather than attachment name, and hence avoid referencing `cpus'.
1998-10-01 22:57:30 +00:00
erh b0367216c1 Macros to call a linux syscall. 1998-10-01 16:19:59 +00:00
erh 79a9d0776d Add linux compat includes. 1998-10-01 16:18:53 +00:00
erh b9e8494b1d Add linux signal trampoline code. 1998-10-01 16:18:46 +00:00
thorpej 21adfe5c18 Oops, brain'o. 1998-09-29 23:45:25 +00:00
thorpej 16b0d8f1e4 Disable the code that halts secondary processors in cpu_reboot(). Halting
the secondary works, but not when called from here?!  XXX!
1998-09-29 21:59:33 +00:00
thorpej ce57c93ef5 some temporary debugging printfs in the IPI code. 1998-09-29 19:40:33 +00:00
drochner fb345194ad document CLOCK_COMPAT_OSF1 1998-09-29 18:25:54 +00:00
drochner 70d1e71ea0 Allow to use the RTC chip in a way compatible to OSF/1: use an offset
of 52 years between RTC and UNIX time.
This is controlled by "option CLOCK_COMPAT_OSF1".
1998-09-29 18:23:55 +00:00
drochner 88b626a585 make compile w/o MULTIPROCESSOR 1998-09-29 15:55:47 +00:00
thorpej 69d81d8df1 Prototype cpu_halt_secondary(). 1998-09-29 07:07:36 +00:00
thorpej 30e4de5632 In cpu_reboot(), halt the secondary CPUs. 1998-09-29 07:07:09 +00:00
thorpej 1b8e855f2a First try at a HALT interprocessor interrupt handler. 1998-09-29 07:06:02 +00:00
thorpej 94b97dce9b CPUF_HATCHED is dead, replaced by cpus_running bitmask. 1998-09-29 07:05:30 +00:00
thorpej 99698d1a1a - Use a bitmask for "running CPUs", rather than a flag in the softc.
- Add a function to halt a secondary CPU.
- Enable interrupts on secondary CPUs once they've hatched.
1998-09-29 07:04:58 +00:00
thorpej 469f020ae3 Don't process CLOCK or DEVICE interrupts if we're not the primary CPU. 1998-09-29 07:02:04 +00:00
thorpej 30ec5015b1 In exception_return(), if MULTIPROCESSOR, skip software interrupts, ASTs,
and floating point handling if we're not the primary CPU.
1998-09-29 07:01:16 +00:00
thorpej 392a96cc91 Define the offset of hwrpb->rpb_primary_cpu_id. 1998-09-29 06:22:09 +00:00
thorpej 183f609c83 - Do not set TLCPUMASK on non-I/O nodes. That register exists only on
I/O nodes.  Previous code erroneously set it on CPU nodes only.
- In both the single- and multi-processor case, route all interrupts from
  I/O nodes to the primary CPU, for now.
1998-09-29 04:22:36 +00:00
thorpej 4c2e179b93 PROM doens't need to be mapped to start up the secondaries, so remove some
dead code.
1998-09-28 22:21:13 +00:00
thorpej 9bd45385a9 Turn off some debugging printfs, and kludge around a boot block bug until
I can install fixed boot blocks on my MP test systems.
1998-09-28 21:50:32 +00:00
thorpej 705cac105e Invalidate the TB and I-stream upon entry, and fix a typo in the wrkgp call. 1998-09-28 21:48:50 +00:00
thorpej 34a8ac8484 Set the primary CPU's PAL revision to the OSF/1 PAL revision after switching
to it, per the Green Book (pointed out by Chris Demetriou).
1998-09-28 21:21:55 +00:00
thorpej 5caecb6ae0 Fix for some EGCS warnings. 1998-09-28 21:18:55 +00:00
drochner 980b2b416f fix PMAP_ACTIVATE_ASN_SANITY() arguments 1998-09-27 17:23:25 +00:00
thorpej 2c50ec242f Add basic interprocessor interrupt sending and receiving code. Current
IPI functions: HALT, IMB, TBIA, TBIAP.

XXX HALT is not yet implemented, it's just a stub.
1998-09-26 00:03:51 +00:00
thorpej 78d445810b Add an interprocessor interrupt bitmask to the cpu_softc, and publicize
the cpus[] array.
1998-09-26 00:01:17 +00:00
thorpej 1f4921edce - Oops, forgot to initalize the cpu_softc simplelock.
- Add yet another debugging printf.
1998-09-26 00:00:33 +00:00
thorpej e2aa38459c Implement atomic quadword load-and-latch. 1998-09-25 23:59:42 +00:00
thorpej 01c75223d7 Minor style tweaks. 1998-09-25 22:06:33 +00:00
thorpej d3ce2be01c Don't bother printing the message from the secondary console. All it is
is basically the acknowledgement of the START command.  Print the idle
USPACE address for now.  Use the alias "apcb_backup_ksp" when setting the
backup kernel stack pointer in the secondary's boot HWPCB.
1998-09-25 03:23:50 +00:00
thorpej 57e656b2ec The processor unique value in the PCB is used as a backup kernel stack
pointer when booting secondary CPUs.  Add an alias for it.
1998-09-25 03:21:31 +00:00
thorpej 3ea9247ac8 GENERIC config file + MULTIPROCESSOR + some debugging stuff. 1998-09-25 00:46:09 +00:00
thorpej fcb0203141 First-cut at code to spin up secondary processors on a multiprocessor
Alpha system, conditional on MULTIPROCESSOR.

NOTE: This does not yet work completely.  The secondary CPU begins the
boot process, but never makes it into the cpu spinup trampoline.  This
is merely a snapshot of a work-in-progress.
1998-09-24 23:28:17 +00:00
thorpej feb1d22dcc NCPU > 1 -> MULTIPROCESSOR 1998-09-24 23:00:43 +00:00
thorpej 3cde5f5817 Machine-dependent spin lock operations for Alpha, included if MULTIPROCESSOR
is specified.
1998-09-24 22:32:35 +00:00
thorpej 91a031471d Implement atomic test-and-set for longwords (32-bit). 1998-09-24 22:22:07 +00:00
thorpej 1b04ff4897 Make prom_enter() and prom_leave() public. 1998-09-24 21:18:13 +00:00
thorpej ba6d13d876 Use the primary CPU ID on console_restart(), not hard-coded 0. 1998-09-24 21:12:43 +00:00
ross e43333b7e7 Move if_ade* from alpha/pci/ to alpha/a12/ 1998-09-24 05:36:05 +00:00
ross 09c3723e08 Put back ahc and bha scsi HBA driver configs. 1998-09-24 05:33:41 +00:00
ross 81ea242049 Fix include path, these days a12 header files are in alpha/a12. 1998-09-24 05:32:52 +00:00
ross ec4de2679b Track tfs -> ustarfs change. 1998-09-24 05:23:58 +00:00
thorpej c69dbb3c28 Actually, yes we do know what the rpb_restart entry point is used for,
so delete some #if 0'd code.
1998-09-24 03:39:24 +00:00
thorpej 7521c309df When setting up the hwrpb for restarts, use the primary CPU ID from the
hwrpb.
1998-09-24 00:30:19 +00:00
thorpej 7df5ebc392 "Gee, there was already a function to do that." 1998-09-23 22:02:21 +00:00
thorpej 53d42701b5 Implement a function to recompute the HWRPB checksum. 1998-09-23 21:51:04 +00:00
ross 86f044d10e Track changes elsewhere in the PCI interface. 1998-09-23 21:20:55 +00:00
ross 55714d5b34 Update for vm_offset_t, vaddr_t sweep. 1998-09-23 21:17:17 +00:00
ross ddde99135e A12 crossbar switch driver. 1998-09-23 21:14:58 +00:00
ross 73fdd29a64 A12 detached console tty driver and NetBSD console interface. 1998-09-23 21:14:02 +00:00
thorpej d720002637 Fix a typo in RCS keyword. 1998-09-22 16:23:20 +00:00
thorpej 5fa16c668b Define the inter-console communication buffer portion of the per-cpu
info structure.
1998-09-22 08:16:51 +00:00
ross ec49dd71dd Change 41 separate printf()'s into a table and 2 printf()'s. 1998-09-22 06:24:26 +00:00
thorpej 6871d2529f Add missing mb ops. 1998-09-22 06:10:53 +00:00
thorpej 402a9210a2 Implement quadword atomic test-and-set. 1998-09-22 05:56:52 +00:00
ross 5b01d45ac4 Add a `-b #' option and logic for locating the secondary boot image via
an absolute block address. It's cheating, as the motivation is support for
the libsa ustar tfs `filesystem' and the solution symmetrical to ufs and
cd9660 would have been to teach installboot about tfs. However, it still
would have been different as you can't mount a tfs with the kernel, and
this option gets possibly useful support for any contiguous format, even
completely raw boot images.
1998-09-22 05:03:36 +00:00
thorpej e10cc7910d Add some support for multiple processors to the pmap module. Still left
to do: TLB shootdown code, but that will be much easier to write once
the code to spin up the additional CPUs is working.
1998-09-22 03:58:10 +00:00
ross 5fb9c16f05 While we are here in alpha/stand, bail out on ^C during boot. 1998-09-22 00:41:13 +00:00
ross 10da0cf1c3 Add fs_ops to file_system[] for the ustar-format `tfs'. 1998-09-22 00:39:31 +00:00
thorpej 2671c2fa42 Make bus_dmamap_load_uio() work, from Kevin Lahey <kml@nas.nasa.gov>. 1998-09-21 22:51:56 +00:00
matt ad921921e4 Add softserial to the alpha port. This significantly improved PPP
throughput on com ports.
1998-09-21 00:33:16 +00:00
thorpej 47ca861322 Nuke some unneeded debugging code. 1998-09-20 18:54:03 +00:00
thorpej 3eaeeb5357 Add definitions for the maximum allowable `whami' procssor ID and the
maximum number of processors we'll allow (64, assuming procssor IDs start
at 0).
1998-09-20 18:28:50 +00:00
thorpej a4a356f9a6 Need 83 longs for a jmp_buf now. 1998-09-14 06:07:29 +00:00
mycroft fa31b94af9 Fix omission in previous; remember to record that we're on the signal stack. 1998-09-13 11:57:58 +00:00
thorpej 3ddf828326 Make signal delivery work again. 1998-09-13 01:51:29 +00:00
thorpej 70e641047c In cpu_coredump(), use MID_MACHINE rather than MID_* (whatever it expands
to).
1998-09-09 11:17:24 +00:00
thorpej 8abe0d6b1c Adjust for the new "reaper" kernel thread: do not free the vmspace and
u-area in machine-dependent code.  Instead, call exit2() to schedule
the reaper to free them for us, once it is safe to do so (i.e. we are
no longer running on the dead proc's vmspace and stack).
1998-09-09 00:07:48 +00:00
christos 449820f2ea Assign copyright to TNF. 1998-09-05 15:28:04 +00:00
lukem c9db84ecc9 distclean is a synonym for cleandir 1998-09-05 15:15:14 +00:00
pk 8adc8da66b Assign my copyright to TNF. 1998-09-05 13:40:35 +00:00
enami 38cae9f204 Replace TAB just after the keyword `options' with SPACE. 1998-09-02 02:02:33 +00:00
thorpej 1df7dffd26 Nuke an unused variable. 1998-09-01 21:28:04 +00:00
ross 899f8f8851 Fix off-by-one errors in assertion in DIAGNOSTIC in pmap_remove() 1998-09-01 20:30:20 +00:00
cgd d58173741d kill the last remnants of __BROKEN_INDIRECT_CONFIG. (only the pica port
used it, and it's non-working and apparently slated for replacement.)
1998-08-31 22:28:04 +00:00
cgd 5fa7eee1ff don't define __BUS_SPACE_COMPAT_OLDDEFS by default. As stated in
bus_space(9), if drivers want it (they shouldn't; easy to convert) they
can define it right before including bus.h.  There's been a release since
the interfaces were (slightly) changed, and no code in the source tree
uses the old interfaces as far as I can tell.
1998-08-30 23:40:14 +00:00
cgd 3110e22945 use current bus_space interface names for barrier ops 1998-08-30 23:29:10 +00:00
thorpej 4b7b605d84 Use the "nointr" pool page allocator for pmap_pmap_pool. 1998-08-28 22:22:48 +00:00
thorpej f369f261d1 Fix a debug printf. 1998-08-28 19:22:50 +00:00
tv 6baebf57c6 Nuke egcs warns: void main(), implicit int 1998-08-27 12:20:51 +00:00
thorpej 7cfa6e0972 Always use pmap_kremove() if removing a mapping from the kernel pmap. 1998-08-25 23:09:08 +00:00
thorpej b42b94b608 Shave yet more translation ops from the inner loops of pmap_protect(). 1998-08-25 18:21:17 +00:00
thorpej 2fa5652849 Break the code that cleans out page tables from pmap_remove_mapping() into
separate functions that perform the cleanout starting at the l3pt, l2pt,
or l1pt.
1998-08-25 09:00:19 +00:00
thorpej 33caa59da3 Optimize the pmap_protect() loop. Will make a similar change to pmap_remove()
once some changes are made to how pt pages are cleaned up.
1998-08-25 08:00:15 +00:00
thorpej b7fb6e1711 Change pmap_changebit() to take a mask of bits to set, and a PTE mask,
shaving several instructions out of the inner loop.
1998-08-25 06:21:16 +00:00
thorpej 7ff538b614 Oops, use M_VMPMAP as the malloc type in pool_init(). 1998-08-25 01:11:11 +00:00
thorpej 4dfff51650 Use the pool allocator to allocate pmap structures. 1998-08-25 01:09:04 +00:00
tv b3e9be0ee3 egcs warning fixes, clean up `register' 1998-08-24 02:37:16 +00:00
thorpej e7a551d60e Some internal cleanup; pass a tag around, not individual arguments. 1998-08-17 20:15:55 +00:00
thorpej c529c40718 Normalize the copyright notice on this file. 1998-08-15 20:42:25 +00:00
mycroft 129cbf95ee Minor edit. 1998-08-15 05:16:41 +00:00
mycroft df9baf2311 Assign copyrights to TNF. 1998-08-15 03:51:30 +00:00
thorpej d5df55112a vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t 1998-08-14 16:50:00 +00:00
thorpej 97e83f6e0b Change the "vm_offset_t"s to "u_long"s for now; eventually, we can make
them vaddr_t and paddr_t, as appropriate (after scouring the RPB docs
to know which are phys and virt addresses).
1998-08-14 16:46:09 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
thorpej f3dd6e430b Pull in files.mii 1998-08-11 18:52:52 +00:00
thorpej cf231bf251 Adapt to MII changes. 1998-08-11 00:28:53 +00:00
drochner dabc8eb436 Implement the 'i' flag which makes the bootloader ask for the file to
load (as in OSF/1).
Useful for netboot where "-file" doesn't work as needed.
1998-08-07 10:38:37 +00:00
drochner e8564df3b9 implemt a simple "beep" device to access the ISA speaker 1998-08-07 10:26:38 +00:00
kleink 546365a27e _POSIX_SOURCE -> _POSIX_C_SOURCE 1998-08-06 11:25:04 +00:00
thorpej 9186d2da5c Simple instrumentation of pmap_steal_memory(). 1998-08-04 22:40:17 +00:00
thorpej bf8f319d0e Remove some lint. 1998-08-01 21:12:32 +00:00
thorpej 8eeb95fce4 Implement pci_intr_disestablish(). 1998-08-01 20:25:12 +00:00
thorpej 92fa3a68ad In sio_intr_disestablish, also make sure that IRQs 0, 1, 8, and 13
default to edge-triggered, just like in the setup.
1998-08-01 19:38:29 +00:00
thorpej 0b60fda7c8 Implement sio_intr_disestablish(), and ensure that an initially-enabled
interrupt is never disabled and an initially-level-triggered interrupt
never becomes untyped.
1998-08-01 18:54:21 +00:00
thorpej 528dab6808 Implement alpha_shared_intr_disestablish(). Simply removes the handler
fromthe list, allowing the caller to manipulate the sharing type,
if appropriate.
1998-08-01 18:52:36 +00:00
mycroft a24dbc8065 (Always) (practice) (safe) (macro expansion). 1998-07-31 15:07:41 +00:00
thorpej 9589268364 Add unused zskbd and zsms entries, and ISA PnP entry. 1998-07-31 04:38:51 +00:00
thorpej e2ce6c8a28 Machine-dependent ISA PnP goo for NetBSD/alpha. 1998-07-31 04:38:04 +00:00
thorpej f948e430bb Provide a hook for bypassing space accounting, needed to support ISA PnP
for now.
1998-07-31 04:37:02 +00:00
thorpej eb32016a95 Split up using BWX for PCI config and bus access. Default to using BWX for
the former, but not the latter.  Hopefully, this will address some problems
people have been experiencing w/ some devices on Pyxis systems when BWX
is used for bus access.  (If it's not used for PCI config access, we can
get fatal machine checks while probing behind PCI-PCI bridges!!)
1998-07-29 01:28:44 +00:00
thorpej 3ff8e6493a Don't cast the null residual pointer passed to vn_rdwr(). 1998-07-28 18:34:52 +00:00
thorpej e8063e5201 Don't cast the null residual pointer passed to vn_rdwr(). 1998-07-28 18:30:54 +00:00
thorpej 88a83f13de Back out previous. 1998-07-27 18:27:08 +00:00
mjacob 6ebd8cf4e3 Comment out cs device. Kernels don't compile because there is no
cfattach structure found. Leave it to the author to untangle.
1998-07-27 18:02:02 +00:00
mycroft da2e61d160 Delint. 1998-07-27 13:55:32 +00:00
thorpej b0b64545e8 Add cs* at isa? port 0x300, wildcard IRQ and memory address, to pull
them from the EEPROM.  Wildcard DRQ to force memory-mode operation; this
value is not available in the EEPROM and must be configured manually.
1998-07-27 01:57:56 +00:00
thorpej 2385ee5eca Provide PMAP_{,UN}MAP_POOLPAGE(). 1998-07-24 20:32:07 +00:00
is 6054d626f9 Switching dev/ic/lpt.c to use spllpt() instead of spltty(). It doesn't use
tty structures, and on some machines (namely the DraCo internal lpt, and some
multi-i/o boards for Amigas and DraCos), tying spltty to the pretty high printer
interupt level would hurt serial performance.

On all affected ports but Amiga, spllpt() has been defined in machine/intr.h
to be spltty(), thus preserving old behaviour. Portmasters are encouraged to
change is, if they feel something else is better (e.g., one of its own were
possible).
1998-07-18 21:27:25 +00:00
thorpej 2fc1260cc0 Implement bus_dmamap_load_uio(). 1998-07-17 21:09:59 +00:00
ross d58ad29b6c Kill the old extern mchkinfo pointer and prototype cpu_mchkinfo().
This file has been collecting prototypes and other things used in the MD
code...that's bad...because this is exported to the MI kernel.
1998-07-13 19:10:14 +00:00
ross 48257ecec1 Define cpu_mchkinfo() to locate the mchkinfo struct. This is used to fix
the recent bug where Multias around the world have been aborting back to
SRM with no message at all as they tried to attach a TGA or VGA console,
because the old mchkinfo pointer wasn't allocated prior to use.

And contrary to widespread rumour, this bug has nothing to do with my
LCA IDE mod...that worked just fine. "Not guilty."
1998-07-13 19:07:33 +00:00
ross 0d7c1dede9 Use the new cpu_mchkinfo(). 1998-07-13 18:49:34 +00:00
ross c9e3235f35 1. Don't deref zero on early machine checks.
2. Revert last week's non-KNF {} editing.
1998-07-13 00:14:52 +00:00
mjacob 93ecc95d92 Fix printing of real mem. I'm going to, for right now, leave it to
someone else to figure out the best machine independent fashion of
fixing ptoa to handle > 32 bits.
1998-07-09 00:46:17 +00:00
thorpej bca69afed6 Place the software PG_EXEC PTE bit into the protection array, instead
of OR'ing it in manually.
1998-07-08 17:30:45 +00:00
mjacob 6b092524ea stale beer- place structure in right file 1998-07-08 17:20:42 +00:00
thorpej a8d2213784 Define a macro that returns the mask of PALcode PTE bits that we care
about when determining if a TBI is necessary (i.e. the PALcode bits minus
the FOx bits, since we always track those).
1998-07-08 17:19:46 +00:00
thorpej 0792d7f3db Define a shorthand macro that represents the mask of PTE bits that the
PALcode cares about.
1998-07-08 16:48:49 +00:00
thorpej 3f776dfbe2 Cosmetic change. 1998-07-08 16:46:51 +00:00
mjacob 434b3fe82b tentative better fix for allocating the correct number of mchkinfo structs 1998-07-08 16:28:25 +00:00
mjacob ff376fbd03 Doh! Jason caught me being really stupid. There isn't necessarily
a linear 0..N mapping out of alpha_cpu_whami - which is what I was
using to index the new cpu machine check array. This is a quick hack
back to just using the first element while I think of a kinder function
that will do the function (per-platform) of whami->VIRTUAL CPU ID, which
if you think about it, is really necessary anyway.
1998-07-08 05:25:40 +00:00
thorpej 1ea93eea1c Define one page free list, and put all pages on it. 1998-07-08 04:35:23 +00:00
mjacob 638f0aab7c Clarify comment about what nodes are being 'found' and noted for later
use by an error handler:

 * There can be only one TurboLaser, and we'll overload it
 * with a bitmap of found turbo laser nodes. Note that
 * these are just the actual hard TL node IDS that we
 * discover here, not the virtual IDs that get assigned
 * to CPUs. During TLSB specific error handling we
 * only need to know which actual TLSB slots have boards
 * in them (irrespective of how many CPUs they have).
1998-07-08 01:03:41 +00:00
mjacob a5e7f763c2 minor tweak, and example of how to do error insertion 1998-07-08 00:58:09 +00:00
mjacob 73c269fe20 attempt to catch some stuff for ev5 module info 1998-07-08 00:56:39 +00:00
mjacob 9f1070514c First (prelim placeholder) pass at machine check handler for tlsb 1998-07-08 00:49:06 +00:00
mjacob adf058f0f7 There can only be one TurboLaser node, and now we'll overload
into the integer tlsb_found a bit map of found nodes and export
it to the rest of the kernel. This is so that at machine check
time when we're doing some TLSB/KFTXX error handling we don't
have to attempt a badaddr to look at all TLSB nodes (which will
just be too sad to try...).
1998-07-08 00:47:53 +00:00
mjacob de4f340241 add some error handling specific definitions 1998-07-08 00:45:52 +00:00
mjacob 84076832df add some more offset definitions 1998-07-08 00:45:08 +00:00
mjacob 6f87cdce00 Start of the platform specific (RAWHIDE) machine check handler. This
is not really needed for this platform, except that we might want to
handle PCI errors which get reported through here. In any case, this
prints out more info than is usual. Will probably need to detune
this to be based upon DIAGNOSTIC defines.
1998-07-08 00:44:32 +00:00
mjacob 57190a7be7 use new mchkinfo structures for expect/recv storage 1998-07-08 00:42:14 +00:00
mjacob 9035e8b3eb Move the search for number of cpus up earlier because we need to know
how many cpus there are when we (now) valloc per-cpu machine check
structures.
1998-07-08 00:41:32 +00:00
mjacob 275fb86f8d add some error handling definitions 1998-07-08 00:40:18 +00:00
mjacob 35ffe8edb3 Add machine check type definitions. Structure the expected/received
machine check items.
1998-07-08 00:39:02 +00:00
mjacob dfe345a444 common logout structure definitions, or a start thereof 1998-07-08 00:36:18 +00:00
mjacob 9c326571d3 add a common logout printing routine file 1998-07-08 00:34:49 +00:00
mjacob 163f4f10b1 add common logout printing routine file 1998-07-08 00:34:27 +00:00
thorpej de83dce0de On second thought, call that like the rest of the shared intr functions. 1998-07-07 22:24:38 +00:00
thorpej c7f8d02b23 Always count the number of strays we encounter, but don't send a "stopped
logging" message if we're ignoring strays.
1998-07-07 22:06:29 +00:00
thorpej 1ddd528346 Fix typi. 1998-07-07 22:02:57 +00:00
thorpej e82fc7d3cd The Pyxis core logic in the 164SX and 164LX seems to have problems with
stray interrupts.  Do what Digital UNIX (formerly DEC OSF/1) does; just
ignore strays.
1998-07-07 21:49:47 +00:00
thorpej ca73507d0b The Pyxis core logic in the Miata seems to have problems with stray interrupts.
Do what Digital UNIX (formerly DEC OSF/1) does; just ignore strays.
1998-07-07 21:47:49 +00:00
thorpej be83de18fd Use ALPHA_SHARED_INTR_DISABLE() to test if a shared interrupt should
be disabled after a stray.
1998-07-07 21:44:57 +00:00
thorpej 443d238f70 Define a macro to test if a shared interrupt should be disabled after
a stray has occurred.
1998-07-07 21:37:11 +00:00
ross dbd55159a2 Teach dec_axppci_33_init() a little about the nsio config registers,
enable the nsio IDE, and leave the config register ISA ports mapped.
1998-07-07 08:49:12 +00:00
jonathan b37021c1a1 defopt NATM. 1998-07-05 22:48:05 +00:00
jonathan 011f2bda08 defopt NS, NSIP. 1998-07-05 06:49:00 +00:00
jonathan 5c0c5dd0b4 defopt ISO TPIP. 1998-07-05 04:37:35 +00:00
jonathan 8db0fcdbf7 defopt CCITT. 1998-07-05 02:12:22 +00:00
jonathan 3751946b97 defopt INET, NETATALK. 1998-07-05 00:51:04 +00:00
jonathan 466e784ee1 defopt DDB. 1998-07-04 22:18:13 +00:00
thorpej 8978015d51 Mark the kernel pmap `active' in pmap_bootstrap(). 1998-07-03 05:22:10 +00:00
mjacob efee8aedfa If GENERIC has SCSIVERBOSE on, having it off here makes no sense 1998-07-02 23:36:59 +00:00
ross 7897fc307b Add support for:
DEC_1000
	DEC_1000A
	DEC_ALPHABOOK1
	DEC_EB66

Remove support (ran out of space) for: ahc and bha. SCSI must be ncr or isp.
This will be fixed soon by defining an optional, two-floppy install
alternative.
1998-07-01 09:14:02 +00:00
drochner 9a04d7d9f2 adapt to wscons interface change 1998-06-30 09:02:08 +00:00
thorpej 02b767eee5 Take a stab at EB66 support. An EB66 is basically an EB64+ with a
21066 LCA instead of a 21064 + APECS.
1998-06-27 10:10:51 +00:00
thorpej dff0b84aba Oops, forgot option header. 1998-06-27 08:59:03 +00:00
ross 50604bf85b Kill off some EVCNT_COUNTERS calls, since [A] it has to be rewritten anyway
before it can be useful, and [B] #ifdefs do not belong at every call site,
a common API should be defined and the implementations conditionalized, not
the calls. Duhh.

Also, remove the initial XXX mystery_icu debugging code.
1998-06-26 21:59:46 +00:00
ross e5e9adb326 Note ST_DEC_1000 as PCI/EISA. 1998-06-26 21:55:38 +00:00
ross e31a396c68 Add AlphaServer 1000 interrupts. 1998-06-26 21:55:09 +00:00
ross 843dd2d279 Add DEC_1000 support for new Mikasa[/Pinnacle] platform.
INSTALL-FLOPPY will have to wait; it needs attention w.r.t. size.
1998-06-26 21:53:10 +00:00
ross 0ce5563488 Turn on ST_DEC_1000, but reuse the 1000a init and console routines. 1998-06-26 21:49:25 +00:00
ross a0f70c580c New platforms: Mikasa and Mikasa/Pinnacle, aka Pinkasa.
Like the 1000A, the AlphaServer 1000 has a daughtercard assembly that
integrates the CPU and core logic, so these can be ev4/apecs or ev5/cia.
New systype, and, sigh, another way of doing interrupts and another
mystery icu.

Kill off some EVCNT_COUNTERS calls, since [A] it has to be rewritten anyway
before it can be useful, and [B] #ifdefs do not belong at every call site,
a common API should be defined and the implementations conditionalized, not
all the calls. Duhh.
1998-06-26 21:45:56 +00:00
thorpej 0131c651bd Add DEC_1000A, per GENERIC. 1998-06-26 05:43:21 +00:00
thorpej 78d7f07efd Very preliminary support for the Tadpole/DEC AlphaBook. These are basically
AXPpci33 machines + power management and a Cirrus PCI-PCMCIA controller.

There is currently no support for the power management facilities, and
the PCI-PCMCIA controller driver needs some work, but this should boot
and run from disk.
1998-06-26 05:42:34 +00:00
lukem bd8d501f7e remove options FIFO; it's now the default 1998-06-26 01:53:43 +00:00
thorpej ac57178fc0 defopt COMPAT_OSF1 1998-06-26 00:00:41 +00:00
thorpej 971b8956ef defopt KTRACE 1998-06-25 21:18:11 +00:00
ross de27f1befc Don't bother reading the ELF string table out of a stripped /netbsd[.gz].
In this case, all it has in it are the never-referenced printable names
for the ELF sections themselves. It's located at the end of the (ramdisk)
netbsd.gz file, so it is a very expensive seek and read for only 85 bytes.

Boot floppy load time:

	before:	5 minutes
	now:	3 minutes
1998-06-25 06:45:46 +00:00
ross 63e87b1a8e New platforms: Noritake, Pintake, and Corelle. Sometimes these are ev4/apecs,
sometimes they are ev5/cia.
1998-06-24 01:38:59 +00:00
ross 6c1e8f5b20 Use the new LOCATE_PCS() macro. 1998-06-24 01:33:19 +00:00
ross 49d5ae18ba Call pci_1000a_pickintr() like on other platforms, but for 1000a expand
the iot, memt, and pc in the call so that pci_1000a_pickintr() (and the
other routines in that module) do not need to be aware of the core logic
type just to pass down memory and I/O space tags or to call the decompose
function.
1998-06-24 01:32:06 +00:00
ross 92aafa4a46 Identify ST_DEC_1000A as PCI/EISA.
New macros:

	LOCATE_PCS(struct rpb *hwrpb, int cpu_number)
	PCS_PROC_MAJORTYPE(struct pcs *)
	PCS_PROC_MINORTYPE(struct pcs *)

Define LOCATE_PCS() to map (hwrpb, cpu_number) -> Per-Cpu-Slot structure.

Replace the PCS_PROC_{MAJOR,MINOR}{,SHIFT} stuff with macros that simply
return the major and minor cpu type codes.
1998-06-24 01:20:43 +00:00
ross f1cc92f606 Add dec_1000a interrupts. 1998-06-24 01:14:55 +00:00
ross 731f8f0abd Add DEC_1000A platform. 1998-06-24 01:12:45 +00:00
ross ebc133a0ec Clean up code using new LOCATE_PCS() macro. 1998-06-24 01:11:09 +00:00
ross 7f61979398 Use new LOCATE_PCS() macro. 1998-06-24 01:10:35 +00:00
ross b314521ce9 Replace expression with new LOCATE_PCS() macro. 1998-06-24 01:09:45 +00:00
ross c705adbc8a New systype for DEC_1000A: Noritake, Pintake, and Corelle. 1998-06-24 01:08:28 +00:00
ross ee709bc9e1 Replace expressions with the new macros: LOCATE_PCS(), PCS_CPU_MAJORTYPE(),
and PCS_CPU_MINORTYPE().
1998-06-24 01:06:26 +00:00
ross d273e10d2d Protect against multiple inclusion. 1998-06-24 01:04:26 +00:00
thorpej e2ebc10c2d Duuuh! Align the SGMAP page tables to 32K, not 32M. 1998-06-23 02:31:05 +00:00
drochner 6c7fabb232 adapt to wscons interface change 1998-06-21 09:51:59 +00:00
kleink 1fbd0b3749 GC the unused `physadr' type, which was not able to hold a complete physical
address on 2 architectures anyhow.  Also, move the definition of the `label_t'
type inside _KERNEL protection, since it is specific to the in-kernel
setjmp()/longjmp() implementations.
1998-06-14 20:09:22 +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
mjacob b6ac862e01 Roll back to 1.55 level since 1.56 will not compile. 1998-06-12 21:14:43 +00:00
thorpej dfeb8f794c Delete a debugging clause that is no longer necessary, and also can't
work properly if we're testing for a pmap active on _other_ processors.
1998-06-12 07:28:07 +00:00
thorpej 0a47d0d577 Rename active_pmap() to PMAP_ISACTIVE(). 1998-06-12 00:45:47 +00:00
thorpej ff16cd85c0 In pmap_enter(): if old PTE was not valid, we don't need to sync
the I-stream, for the same reason we don't need to invalidate the TLB.
1998-06-11 10:36:08 +00:00
thorpej 2683c2826d Track mappings entered w/ VM_PROT_EXECUTE, and only synchronize the
I-stream when changing PTE bits or removing mappings that were entered
w/ EXECUTE protection.
1998-06-11 10:30:14 +00:00
thorpej c0c2cb0f9a Garbage-collect the old PMAPSTATS stuff; it didn't compile, and should
just be redone from scratch.  Get it out of the way now to make it easier
to restructure a few things.
1998-06-11 05:16:35 +00:00
thorpej 3af0f95d24 Define a macro to test PG_EXEC. 1998-06-11 05:10:41 +00:00
thorpej 55207ad8b4 Define a software PTE bit to track VM_PROT_EXEC. 1998-06-11 05:09:47 +00:00
thorpej afc9b7c59b Significantly reduce the number of I-stream synchronizations by really
decoupling this operation from TLB invalidations (e.g. pull I-stream
syncs out of loops, executing them only once, etc.).
1998-06-11 05:08:37 +00:00
thorpej 817b595bab Separate syncing the I-stream from invalidating the translation buffer. 1998-06-11 02:45:21 +00:00
thorpej 1abd24fffe Correct a comment. 1998-06-11 00:34:16 +00:00
thorpej 02182100df Use config_defer(). 1998-06-09 18:49:33 +00:00
ross 69717a7f0e Fix a UVM #if so {} balance is preserved and ctags(1) doesn't lose. 1998-06-09 09:31:58 +00:00
thorpej 680a3d77f4 Add isa_dma{freeze,thaw}(), used to temporarily stop and then restart
all ISA DMA.  Needed by e.g. the SmartCard reader for Sharks.
1998-06-09 01:04:17 +00:00
thorpej 53394a1d41 Change the ISA DMA API to take an isa_chipset_tag_t rather than
a struct device * corresponding to the ISA bus device.  The ISA DMA
controller driver functions have been renamed and now take a struct
isa_dma_state *, and are called indirectly by machine-dependent code
which provides the DMA state.

These changes allow e.g. `ofisa' (the OpenFirmware configuration
mechanism for the ISA bus, used by e.g. Sharks) to use the MI ISA
DMA controller code.
1998-06-09 00:06:54 +00:00
thorpej 8dedb90f13 The ISA chipset must persist; it's required after autoconfig time. 1998-06-08 23:49:05 +00:00
thorpej f5cd6a7736 Add debugging support to the bus_space macros. If BUS_SPACE_DEBUG (or DEBUG)
is defined, the bus_space macros will check to ensure that the bus address
and the target buffer (if applicable) are aligned properly for the size
of the type being used.  If they are not, a message will be displayed on
the console.

Strict alignment is required by the Alpha architecture, and a trap will
occur of unaligned access is performed.  These changes will aid debugging
of broken device drivers.
1998-06-08 03:42:19 +00:00
sommerfe aedc717c00 Hopefully avoid breaking PCMCIA on alpha. 1998-06-07 19:11:29 +00:00
thorpej 2e9939699d Kernel configuration for my Multia, an example of how to configure a
Multia w/ PCMCIA support.
1998-06-07 00:45:35 +00:00
thorpej 14df007174 Oops, don't forget to fill in *addrp. 1998-06-07 00:29:29 +00:00
thorpej 0890af5ca8 Only disable an interrupt line after MAXSTRAYs if there is no handler
attached; we get stray interrupts on PCI devices sometimes, for some
unknown reason.  (Similar problem exists on the 164SX, which also has
a Pyxis.)
1998-06-06 23:29:23 +00:00
thorpej 331a7f56c1 Remove some debugging code no longer relevant now that we have DMA
window chaining.
1998-06-06 23:11:52 +00:00
thorpej eabad6b572 Implement bus_space_{alloc,free}() for swiz PCI I/O space. 1998-06-06 22:44:46 +00:00
thorpej 7a6d646c9b Implement bus_space_{alloc,free}() for BWX bus space. 1998-06-06 22:28:16 +00:00
thorpej fe17c44d6c Add support for software powerdown of the Digital Personal Workstation. 1998-06-06 20:53:41 +00:00
thorpej 04ba8480ae Use REGVAL64() to frob the Pyxis interrupt mask register. 1998-06-06 20:42:36 +00:00
thorpej 098dd211c7 Define a REGVAL64() for some Pyxis registers. 1998-06-06 20:40:14 +00:00
thorpej 49aea111fb If the platform specified a powerdown hook, and howto has RB_POWERDOWN,
call the hook.  If the hook fails, print a warning, and just halt (RB_HALT
is implied by RB_POWERDOWN).
1998-06-06 20:39:04 +00:00
thorpej 1733ad8dc5 Clean up a little, and add a `powerdown' hook in the platform structure. 1998-06-06 20:18:50 +00:00
thorpej d08070a693 Add a comment describing the locking needs of the alpha_sgmap. 1998-06-06 20:12:28 +00:00
thorpej 85d08836f1 - Don't call *_dma_init() twice; there's no need to. Just do it in *attach().
- Display Pyxis revision properly.
1998-06-06 01:33:44 +00:00
thorpej c0fa3c6ac4 Don't call *_dma_init() twice; there's no need to. Just do it in *attach(). 1998-06-06 01:33:23 +00:00
thorpej 59d76407b4 Display information about which sgmap we're attempting to initialize
if we die in alpha_sgmap_init().
1998-06-06 01:31:46 +00:00
thorpej 9331237596 Oops, turn off some debugging printfs. 1998-06-05 21:47:14 +00:00
thorpej bf8523f4e4 - Egads! There are Pyxis "Pass 1" chips that do not have the DMA bug!
Use the check recommended by the Digital Workstation engineers; look
  for Miata 1 systems (i.e. with Intel SIO).  From Andrew Gallatin.
- Update copyright (Pyxis and BWX).
1998-06-05 19:25:19 +00:00
thorpej f251e3372d Don't attempt to map the PCI IDE interrupt at bus 0 device 11 on the
AlphaPC 164 and AlphaPC 164LX - these are wired to compatibility mode.
1998-06-05 19:15:41 +00:00
thorpej 1aa688234e Miata 1 has an Intel SIO at bus 0 device 7 and a CMD PCI IDE at bus 0
device 4.  Miata 1.5 and Miata 2 have a Cypress at device 7 and PCI IDE
at functions 1 and 2 of the Cypress (like the PC164SX).  These on-board
PCI IDE controllers are wired to compatibility mode, so don't bother
trying to map the interrupt.
1998-06-05 19:04:51 +00:00
thorpej a1c151d56b Add system variation for Miata 1.5. 1998-06-05 18:18:37 +00:00
thorpej c072110af0 Actually, I did use a few of them on this file (I wasn't clear enough
in my mail to Ross, I guess...)
1998-06-05 17:42:53 +00:00
thorpej bb362059ac On Pass 1 Pyxis, disable PCI Read Prefetching, and warn the user about
the DMA bug that exists on this Pyxis revision.
1998-06-05 17:24:11 +00:00
thorpej 29977868a7 What was called CNFG in ALCOR and ALCOR2 is actually called PYXIS_CTRL1
in Pyxis.  Add a comment to this fact.
1998-06-05 17:22:34 +00:00
thorpej 73e5032ac9 Define the Pyxis-specific bits in the CIA_CSR_REV register (ID mask, and
the ID for the 21174).
1998-06-05 17:16:31 +00:00
thorpej 2701ea3ef3 Add DEC_550 (Miata). 1998-06-05 17:03:07 +00:00
ross 5790ee09ee Revert...Jason didn't use Andrew's diffs. 1998-06-05 15:28:40 +00:00
ross 8f455480ef Tweak the copyrights a little bit. pci_550.h gets a TNF copyright, not
CMU, and pci_550.c keeps TNF but gets "Andrew Gallatin and Jason R. Thorpe".
1998-06-05 03:34:27 +00:00
thorpej cf914cac00 oops, read CNFG on all Pyxis revs. 1998-06-05 02:15:38 +00:00
thorpej cbaedc8675 Support for the Digital Personal Workstation [456]xx, a.k.a. Miata (systype
DEC_550).  Mostly cloned from the EB164 systype, with some modifications
from myself, and a few more from Andrew Gellatin.
1998-06-05 02:13:41 +00:00
thorpej 3cfb38c5d1 Define the Pyxis interrupt request register. 1998-06-05 00:53:02 +00:00
thorpej 3249813e11 For whatever reason, the firmware seems to enable PCI loopback mode if it
also enables BWX.  Make sure it's enabled if we have an old, buggy firmware
rev.
1998-06-04 22:58:33 +00:00
thorpej d4d49905dd Add support for using BWX for PCI config space and PCI i/o and mem space
on the ALCOR2 and Pyxis.  BWX is enabled iff:
- It hasn't been disabled by the user (patch `cia_use_bwx' or build cia.o
  with the option "CIA_USE_BWX=0"),
- it's enabled in CIA_CSR_CNFG,
- we are running on an EV5-family processor,
- BWX is in the processor's capabilities mask.
1998-06-04 21:34:45 +00:00
thorpej 616125f8d1 Deal with a hardware bug in Pass 1 and Pass 2 Pyxis chips. Basically,
the scatter/gather TLB cannot be invalidated on these chips.  So, to
work around this, we configure the otherwise unsed DMA Window 2 as a
2M SGMAP window at 128M, point all of its page table entries at the
DMA spill page, and, when the TLB is to be invalidated, put the PCI bus
into loopback mode, and create a target hit on Window 2 every 64k for
the number of TLB entries (plus a few ... it seems to not work unless
we read a few extra times), forcing out old TLB entries to make room for
the new, dummy target hits.
1998-06-04 18:11:23 +00:00
thorpej a51d42503c Export the spill page PTE, and provide a hook to initialize it early. 1998-06-04 01:22:52 +00:00
thorpej 6dc28f5445 CIA and Pyxis have 8 scatter/gather TLB entries. 1998-06-04 01:18:22 +00:00
thorpej 32fef69ef7 Define the CIA control register. 1998-06-04 01:04:11 +00:00
thorpej d94f02f9fd Ok, now we _REALLY_ have Pyxis recognition correct. There are two systypes
that can have Pyxis: EB164 (AlphaPC164LX and AlphaPC164SX) and DEC_550 (Miata),
and these systypes/variations _always_ have Pyxis.
1998-06-03 23:16:55 +00:00
thorpej 44605ba506 Define a bunch more system variations. 1998-06-03 23:07:38 +00:00
thorpej 15c52040a5 Define the ALT_MEM big in the CIA revision register. 1998-06-03 22:19:08 +00:00
mjacob 9f5797ac1d turn on Essential HIPPI for these configurations 1998-06-03 21:16:28 +00:00
thorpej d6041754c2 Allow the DMA tag to specify a boundary contraint. If the device has a
more strict boundary, the map will use it, otherwise the map will inherit
the tag's, unless the tag's constraint is 0 (no boundary constraint).
1998-06-03 18:25:53 +00:00
thorpej 50be447da3 Sync the bus_dmamap_load back-end functions between alpha and i386. (only
slight, unnecessary differences)
1998-06-03 04:15:05 +00:00
thorpej 7022024d4a Add epic* at pci? 1998-06-02 01:43:33 +00:00
thorpej a7f360c6c9 Specify a non-profiling C rule. 1998-05-31 23:25:41 +00:00
matt 5d6bc16daa more optimizations 1998-05-29 15:55:34 +00:00