Commit Graph

14094 Commits

Author SHA1 Message Date
cgd
abf0b7c010 deal with the fact that apparently-common revisions of EB164 firmware
don't machine check when a PCI Master Abort is signalled.  This can
happen, for instance, when configuration space for a device that isn't
present is examined.  When this is detected, act like we normally would
when machine checks are posted while examining nonexistant devices.
1996-11-23 06:46:50 +00:00
cgd
ff523f9080 fix HAE_MEM_REG3_START definition (shift was incorrect). Add CIA_CSR_CIA_ERR
register definition.  (should define bits in CIA_CSR_CIA_ERR, but haven't
done that yet.)
1996-11-23 06:42:55 +00:00
cgd
574633aea2 add definitions for LCA_IOC_HAE contents. Add a REGVAL64 macro, like
REGVAL but good for 64-bit chipset registers.
1996-11-23 06:41:00 +00:00
cgd
7aefe04c3e update for new names for ISA VGA console match and attach functions 1996-11-23 06:38:49 +00:00
cgd
fc7b72ee10 move interrupt establishment to just before clock interrupts are
enabled (from the attach routine), and add comments as to why.
Some PALcode apparently 'saves' a clock interrupt for the kernel,
and if the clock interrupt handler is enabled at attach time, it
will be run when that interrupt hits, i.e. right after the spl0()
at the end of autoconfiguration.  That would cause hardclock to be
run, but proc0's p_stats isn't set up by then, which would cause
hardclock to crash.
1996-11-23 06:31:57 +00:00
cgd
12fc617201 make ALPHA_K0SEG_TO_PHYS and ~0xfffffc00000000000 with the address,
rather than and-ing 16G-1.  That just strips the k0seg bits, rather
than making the false assumption that the physical address is going
to be in the lower 16G.  That doesn't apply for CIA device-space
addresses, for instance.
1996-11-23 06:25:31 +00:00
cgd
d22ab75ff0 clean up match: check args more carefully, make sure I/O space can be mapped 1996-11-23 06:21:43 +00:00
cgd
335c1af878 move probe and setup code into common functions. always probe (i.e.
even if PCI and the IDs are right), just for sanity, before declaring
success.  Split the single 0x3b0 -> 0x3df allocation into three seperate
ones: 0x3b0 -> 0x3bc (leaving the 4 ports available for lpt),
0x3c0 -> 0x3cf, and 0x3d0 -> 0x3df.  The former chunk has to be split
off if the lpt can exist there, and it's sort-of pretty to have each
group (based on second hex digit) have its own handle.
1996-11-23 06:06:43 +00:00
mark
e2b7ebae9d Now we have a fix for the StrongARM STM^ bug we can recache the SVC32 stack
pages.
Cleaned up several prototypes.
1996-11-23 04:09:01 +00:00
mark
9c855e4d1b Provide alternative trapframe push and pull macros from the StrongARM.
These alternative macros have a workaround for the STM^ bug in revision < 3
StrongARM CPU's that causes incorrect register saving if a cache line fill
is in progress during the STM.
1996-11-23 04:02:40 +00:00
mark
199fcfe651 Recognise the name Empty: as a possible valid partition in a RISCiX
partition table.
1996-11-23 03:56:44 +00:00
mark
12b8038548 Fixed the IPL level of the interrupt handler. 1996-11-23 03:56:02 +00:00
mark
4c515d528e Pass the device name to identify_master_cpu().
Identify StrongARM CPU's with bugged STM^ instructions.
1996-11-23 03:53:48 +00:00
mark
3c05da919c Use the IOMD_ID macro to check the IOMD ID number rather than direct reads
from the IOMD.
1996-11-23 03:45:52 +00:00
mark
2883a694fa Check the IOMD ID in the podulebus probe to make sure the IOMD supports
a podulebus.
Make sure the podulebus driver conforms to the Acorn expansion card
specification:
  - Probe the podule bus using sync access cycles rather than slow access
    cycles.
  - Read the podulebus header/ROM using sync access cycles rather than slow
    access cycles
1996-11-23 03:42:39 +00:00
mark
37f3875ce4 Use the IOMD_ID macro to check the IOMD ID number rather than direct reads
from the IOMD.
1996-11-23 03:37:35 +00:00
mark
374d51c858 Rebuild from latest podules list. 1996-11-23 03:27:15 +00:00
mark
ecdf4c14bd Added a number of new manufacturer ID's and some new podule ID's. 1996-11-23 03:23:49 +00:00
mark
5debc61be1 Added IOMD_ID macro to return the 16bit IOMD ID code. 1996-11-23 03:21:43 +00:00
mark
f74d5f023d Fixed typos. 1996-11-23 03:20:20 +00:00
mark
f14bcbdac4 Added prototype for branch_taken(). 1996-11-23 03:20:18 +00:00
mark
b38644ed8d Check for CPU_ARM8 when testing for comflicting CPU options. 1996-11-23 03:18:20 +00:00
mark
776f1e24d6 List the nbuf= bootloader option. 1996-11-23 03:16:51 +00:00
mark
3474eb69a0 Yet more items added to the list. 1996-11-23 03:13:19 +00:00
pk
3cb63476b7 One control block per target is insufficient if you have a full complement
of targets attached and access those simultaneously (like in a ccd(4) array).
We (now) allocate (somewhat arbitrarily) three per target.
Noticed by Marshall Midden.
1996-11-22 22:36:57 +00:00
jonathan
80702e3c14 Add KERNLD hook to allow overriding the LD used to link kernels.
Set KERNLD to ld.old.  gcc binutils 2.7 gets an assert error linking kernels.
1996-11-22 18:53:31 +00:00
jonathan
f6a82ef733 * 3c509s drop the low-oder bits of EP_THRESH_DISABLE (2047) on a write,
and the result reads back as zero.  Mask probe code accordingly.
1996-11-22 04:48:26 +00:00
jtk
73b960a308 add pre-probe step so that autoconfiguration does not print 'apm0 at
mainbus0 not configured' message if configured but not present in the
BIOS
1996-11-22 00:19:07 +00:00
chuck
ae805c5cbf midway fixes:
1. fix possible hang in en_txlaunch().   when attempting to extend
	the length of an mbuf to avoid a flush we should extend it
	by cnt [which is ((need - len) % 4)] rather than 4 - cnt.
	also, add an EN_DEBUG printf() when we pad/FLUSH a buffer
	to help with debugging/understanding what the driver is up to.
  2. use interface packet counters
  3. when turning off a recv VCI we recompute the new mode.   make sure
	we don't include the "in service" bit in the new mode, otherwise
	a VCI may appear "hung" if you turn it off while a service
	interrupt is pending.
  4. when shutting down a VCI that is still receiving data, don't bother
	going into "drain mode" if only the hardware in service bit is
	set (otherwise the VCI may get "hung" in drain mode).
	as a result of this we may get "unexpected rx interrupt" messages
	which are not really an error, so put this printf in EN_DEBUG.
  5. be sure to zero txspeed[lcv] when enabling a VCI (start at full
	speed).   (hooks for setting txspeed[] are currently not in
	the driver, but we are playing with it locally).
credits:
	#1: Detected by: Zdenek Salvet <salvet@horn.ics.muni.cz>, fix by me.
	#2: Contributed by: Zdenek Salvet <salvet@horn.ics.muni.cz>
	#3,#4,#5: Detected by: Milind M. Buddhikot <milind@dworkin.wustl.edu>,
		fixed by me.
1996-11-21 20:49:22 +00:00
cgd
e77b6879f7 Feature:
If not compiled with -D_KERNEL, include different includes and
do so macro magic so that this will fit sanely into test harnesses.
When used in user-land, this should be compiled with -D_EXTENT_TESTING.

Bug fixes:
(extent_insert_and_optimize) You can't do things like:
	LIST_REMOVE(elem->...le_next, ...);
	free(elem->...le_next, ...);
They just don't work (and will corrupt your list and/or malloc free list).

(extent_alloc_region_descriptor) Unless you wait, malloc can fail.
Don't accidentally deref a potentially-NULL pointer.
1996-11-21 18:46:34 +00:00
cgd
03b20cdea6 hack so that extent prototypes can be used by user-land test harnesses:
if _EXTENT_TESTING is defined, the normally-kernel-only prototypes
are included.
1996-11-21 18:42:17 +00:00
gwr
9ccd21bece Copyright assigned to The NetBSD Foundation 1996-11-21 13:57:20 +00:00
scottr
86b50e865d Add missing ss, uk, and rd devices to cdevsw 1996-11-21 08:33:22 +00:00
jonathan
b1224d9a3d * Add /sys-relative paths for NetBSD-1.2b config.
* Add standard mips EXEC packages  to std.pica
* Move non-optional options to std.pica
1996-11-21 03:23:42 +00:00
perry
a797b925b2 Incorporate updated version of fixes from FreeBSD submitted in PR
2841, plus some fixes to make the patches work on the Alpha. Seems to
improve the NCR driver a lot. We probably should try to incorporate
any updates that have happened since, too.
1996-11-20 21:26:48 +00:00
cgd
31cc61b793 try mapping the I/O space (as well as the memory space) in the probe routine. 1996-11-20 20:04:53 +00:00
gwr
0332502588 Most files that were copyright Adam Glass and/or Gordon W. Ross
are now copyright The NetBSD Foundation (rights assigned).
1996-11-20 18:56:49 +00:00
mycroft
135b1cea1f Remove incomplete and unused `fast' vector code. 1996-11-20 14:09:07 +00:00
jonathan
a935a72af3 Fix cut-and-paste errors. 1996-11-20 11:37:52 +00:00
jonathan
584f698f2c * Add old-style vmstat -i interrupt counters for normal and stray interrupts.
Interrupts for irqs with handlers are counted as normal, even if none of
  the handlers claim the interrupt.
  Should all be redone with hierarchical event counters. that count
  hardware events and invocations of each handler separately.

* Increment cnt.v_intr for normal interrupts (bugfix).
1996-11-20 10:47:14 +00:00
jtc
f30c33ed7e Add timespecclear, timespecisset, timespeccmp, timespecadd, and
timespecsub macros for manipulating timespecs.
1996-11-20 00:30:51 +00:00
gwr
16b8098faa Use ether_cmp() on the sun3 (for the "le" driver - 3/50, 3/60)
because those have to assume LANCE_REVC_BUG, which causes the
driver to compare Ethernet addresses on every received frame.
1996-11-19 21:21:13 +00:00
gwr
51cc81ac4f Move SWAPPAGER, VNODEPAGER, DEVPAGER to std.sun3 1996-11-19 21:04:44 +00:00
gwr
576fa146ac kill some outdated stuff 1996-11-19 20:58:32 +00:00
scottr
1e3acdfc88 Kill the conspa variable, and use mac68k_vidphys instead. Where we used
to initialize conspa was invalid on non-040 machines, since we don't
know which MMU we're using on those, yet.  On the other hand, by the time
we get to check_video() on the 040 machines, the MMU has been disabled.
Compromise:  get the video PA in setmachdep() on the 040, and in
check_video() on the others.  (This is not optimal.  *sigh*)
1996-11-19 07:17:47 +00:00
cgd
7b52699cfd catch up with wscons frame buffer attachment, mmap, and ioctl
interface changes.
1996-11-19 05:23:07 +00:00
cgd
1c90055b77 clean up wscons frame buffer attachment interface slightly. Make
ioctl and mmap routines take a void *, rather than a struct device *,
so that they can be set up to work more easily when using a 'struct device *'
isn't appropriate.  Add a cookie (void *) to be passed to the mmap and
ioctl routines.  Rename a few struct members, and shuffle them into
a more sensible order.
1996-11-19 05:17:00 +00:00
cgd
a1476167f8 update for ISA VGA frame buffer possibily 1996-11-19 05:08:36 +00:00
cgd
f3415af098 update for VGA-related changes 1996-11-19 04:57:32 +00:00
cgd
2b4df4f147 implement isa_display_console(), to be used when console is an ISA display dev 1996-11-19 04:54:43 +00:00