Commit Graph

24689 Commits

Author SHA1 Message Date
bjh21 cb5273b547 First attempt at an EtherH driver. Can just about transmit and receive
packets.  Interrupt enabling is left to the RISC OS driver, medium selection
is untested and it's hard-wired to the MAC address of my card.  Not really
for production use.
2000-12-01 14:28:36 +00:00
soren ff0f7c1ab4 No longer used. 2000-12-01 07:56:18 +00:00
soren 2cc519bba5 <pc/display.h> has been moved to <dev/ic/pcdisplay.h>. 2000-12-01 07:55:10 +00:00
scw 97490c9997 Add __attribute__((__packed__)) to cpu_disklabel to get around
the ELF padding/alignment constraints.
2000-12-01 00:02:22 +00:00
scw 75f2f8f242 Delete an extraneous underscore in the last commit. 2000-11-30 23:47:45 +00:00
scw bd8955b9b6 Only try to attach those devices which have been configured
in the kernel config file.
2000-11-30 22:54:31 +00:00
scw c4a189ad74 Print some more details of the memory managed by each ASIC. 2000-11-30 22:51:35 +00:00
scw ba98135ea8 Add EXEC_ELF32 2000-11-30 22:31:27 +00:00
scw 7051df32f5 Support booting an ELF kernel, plus numerous tweaks due to
the gas.new/ELF transition.
2000-11-30 22:26:26 +00:00
scw 9121962f0e Copy the syscall return value into A0, as per the SVR4 ABI.
Also prepare for COMPAT_AOUT_M68K.
2000-11-30 21:29:11 +00:00
scw d3251e5074 Prepare to switch mvme68k bootloader over to the MI loadfile(). 2000-11-30 21:20:43 +00:00
scw 7248616dee Ditch an extra % in a register prefix, and s/a6/fp/ 2000-11-30 21:18:07 +00:00
scw 71ca01981e Prepare for the m68k ELF transition:
o Add register prefixes for the benefit of gas.new
 o Wrap global symbols in the m68k/asm.h macros
 o Fix `#' comments so the source can be run through the C pre-processor
2000-11-30 21:00:51 +00:00
bjh21 9307dc5373 Reduce default UBC_NWINS to save precious KVM. 2000-11-30 20:59:36 +00:00
bjh21 32b19479ca Drastically reduce PAGER_MAP_SIZE so we don't run out of KVM so soon. 2000-11-30 12:16:00 +00:00
nisimura 3077a68aa3 Reduce UPAGES from 3 to 2. 2000-11-30 02:55:50 +00:00
jdolecek 73f3cd8c7e LKMify 2000-11-29 21:51:49 +00:00
jdolecek 7924882d2e remove unneded opt_compat_osf1.h stuff 2000-11-29 21:50:49 +00:00
tsubai e4bfefe7bd Make spl functions no-inline. This saves size and even it runs faster on
some systems.
2000-11-29 17:55:52 +00:00
minoura 0bbc767215 Adjust the ramdisk size. 2000-11-29 14:45:27 +00:00
jdolecek 9cdf00b4bb remove rules for genassym.c, it's no longer pertinent 2000-11-29 13:02:51 +00:00
jdolecek 0e8ae0e54a convert to use common genassym.cf 2000-11-29 12:55:11 +00:00
tsutsui 7dc077e6f5 Change UPAGES from 3 to 2. (sync with hp300) 2000-11-29 12:32:06 +00:00
aymeric 5deecf29d2 Fall back to previous memory segments detection code if BIOS reports no
correct memory segment.
This prevents some systems from losing with `can't find end of memory'.
Discussed with Bill Sommerfeld.
2000-11-29 09:56:02 +00:00
scw 614e494d9e Add register prefixes. 2000-11-29 09:18:32 +00:00
scw 930411f925 Missed a couple of register prefixes... 2000-11-29 09:11:53 +00:00
scw fecb49d172 Add register prefixes. 2000-11-29 09:09:39 +00:00
thorpej 5f3a256833 Allocate the DMA windows out of the PCI memory extent map after
DMA is initialized.
2000-11-29 06:30:09 +00:00
thorpej 96294f7b26 Do the additional PCI memory initialization after configuring DMA. 2000-11-29 06:29:10 +00:00
thorpej 8f20972db2 Revert previous -- we'll do it differently. 2000-11-29 06:21:12 +00:00
thorpej d615083897 The AMD 751 doesn't have DMA windows, so allocate the RAM out of the
PCI memory extent map.  Bad things will happen if we try to assign
a device where RAM is mapped into PCI space.
2000-11-29 05:56:49 +00:00
thorpej 8ebabb1aae Increase the number of static extent descriptors from 8 to 16,
and add a means for calling a chip-specific init hook.
2000-11-29 05:53:29 +00:00
augustss f9450fa993 Put neo* in alphabetical position. 2000-11-28 19:44:07 +00:00
thorpej 3f877e127e Add auich(4) and neo(4). 2000-11-28 05:18:42 +00:00
minoura 2eabb2676b We do not use INSTALL_SMALL any more. 2000-11-28 03:18:18 +00:00
jdolecek f6a7e12165 split linux signal code off locore.s 2000-11-27 22:29:26 +00:00
matt 37ca010efd Add generic ISA floppy support 2000-11-27 21:50:13 +00:00
jdolecek 67e67ac7dc Replace the (no longer working) check for tp->t_line == 0 with
tp->t_linesw == linesw[0]. Hopefully this is correct.
2000-11-27 18:39:04 +00:00
matt 5cbf7c7a23 No longer needed. We use MI version now. 2000-11-27 17:04:13 +00:00
matt a23d349584 Use MI md_root.c 2000-11-27 17:03:12 +00:00
tsutsui 6ca08c284e More fixes for linesw changes. 2000-11-27 15:28:41 +00:00
tsubai 0562490a63 Change base address to 0x800000. 2000-11-27 14:41:47 +00:00
pk cd9bcb98dc Undo most of rev 1.94 to make a.out emulation work again. 2000-11-27 13:31:18 +00:00
tsutsui 936191481d Prepare cpu_exec_ecoff_probe() for mips which just returns ENOEXEC,
as per discussion on tech-kern.
2000-11-27 13:25:24 +00:00
tsubai e5c94432d1 Reduce PAGER_MAP_SIZE to 4MB. 2000-11-27 11:37:33 +00:00
nisimura cdc7cdbcde Back out the change of the way to grab proc0's USPACE. It produces
kernel lock up in mach_init() by a reason unknown to me.
2000-11-27 08:57:08 +00:00
soren 66864e1f05 Removed increased BUFCACHE/BUFPAGES. 2000-11-27 08:55:41 +00:00
soren 52e9098c1d arch/mips is used now. 2000-11-27 08:54:02 +00:00
matt 70e44cf083 Rework bus_space to conform the PReP I/O & MEM limits. Add a few debugging
printfs concerning interrupts.
2000-11-27 08:53:54 +00:00
chs aeda8d3b77 Initial integration of the Unified Buffer Cache project. 2000-11-27 08:39:39 +00:00
chs c29a1b4461 allow ports to override PAGER_MAP_SIZE in machine/vmparam.h.
some ports (such as arm32) don't have enough KVA for the
increased default size once the UBC mapping is also present.
2000-11-27 08:19:50 +00:00
soren a5dad0db13 Correct a few cpu/fpu ids. 2000-11-27 06:38:54 +00:00
nisimura fdfe3556de Use only one TLB entry to wire down process's USPACE since it's
now guranteed to be aligned on 8KB boundary in kernel virutal
address.  Retain one more free TLB entry.
2000-11-27 06:37:32 +00:00
soren d800267698 Forgot to commit bounds_check_with_label(). 2000-11-27 06:00:09 +00:00
soren 38a44e0d8f Consistently use pmap_steal_memory() to allocate USPACE. 2000-11-27 05:57:25 +00:00
nisimura 05960017b2 Fix an typo by cut'paste work in the previous change. 2000-11-27 05:17:06 +00:00
nisimura f6562a41a3 Use pmap_steal_memory() to glab proc0's USPACE. 2000-11-27 05:12:32 +00:00
jdolecek cee3939088 comment out entries accidentaly committed together with previous
change
2000-11-26 20:48:39 +00:00
bjh21 eb0dc305da Insert clock low after ack bit. 2000-11-26 18:53:12 +00:00
bjh21 f801b80192 Zero-length reads seem to confuse the chip, so don't do that. 2000-11-26 18:12:36 +00:00
ad 57ea462da2 lsu -> ld, by popular request. 2000-11-26 17:44:02 +00:00
chs 63d8906bac const poisoning. 2000-11-26 15:13:50 +00:00
bjh21 2906c5057a Regen. 2000-11-26 15:04:22 +00:00
bjh21 22b88b3d3e Add HCCS IDE interface, from Kjetil B. Thomassen <kjetil@thomassen.priv.no>. 2000-11-26 15:03:25 +00:00
jdolecek c969c9196c make this usable also standalone 2000-11-26 12:02:16 +00:00
jdolecek 17a9fd0da5 split m68k SunOS and SVR4-specific sigcode.s code to sunos_sigcode.s
and svr4_sigcode.s respectively
adjust individual m68k port's locore.s to include new sigcode files if
appropriate
2000-11-26 11:47:23 +00:00
jdolecek bc435e5551 rename COMPAT_locore.s to COMPAT_sigcode.s - that is more suitable name for it
make the files compilable within LKM
2000-11-26 11:18:20 +00:00
takemura 3c9d9276dc Add new powerhook argument values, PWR_SOFTSUSPEND, PWR_SOFTSTANDBY and
PWR_SOFTRESUME. Apm calls powerhook with the values in normal interrupt
priority level while others are protected with splhigh().
2000-11-26 11:08:57 +00:00
takemura 5692823cae You can map mq200 registers as well as frame buffer.
(This little change has already contains release 1.5 branch by my mistake)
2000-11-26 08:33:43 +00:00
sato b45e183988 hardware accelarate function parameters turn to dot base. 2000-11-26 06:21:16 +00:00
thorpej 484693d993 `babylon' no longer exists. 2000-11-26 04:59:03 +00:00
thorpej dce417005a Kernel config file for basil.shagadelic.org, my API UP1000 devel machine. 2000-11-26 04:58:07 +00:00
itojun c40695f5ad a complete kernel for wildlab LAMB, http://www.wildlab.com/. 2000-11-26 03:28:41 +00:00
scw a643cf07a5 Add the memory controller ASIC driver. 2000-11-25 21:46:42 +00:00
scw 46d0d060fd Oops, missed a trailing comma ... 2000-11-25 21:06:12 +00:00
scw eff5b700a8 Enable compatibility for earlier releases. 2000-11-25 20:35:32 +00:00
scw ee58c485bf Add CD9660, plus some general cleanup. 2000-11-25 19:33:39 +00:00
scw 2aa72fcec2 Include the cd9660 filesystem and cd(4). 2000-11-25 19:21:50 +00:00
scw 5529847b99 Don't base this on the GENERIC config file; there's too much
unnecessary bloat in it for an installation kernel.
2000-11-25 19:18:46 +00:00
scw 636c4f5c12 G/C some long-obsolete functions. 2000-11-25 18:49:59 +00:00
bjh21 70562420ce Support multiple files on the command line (they're catted together).
Ditch a.out support while we're here (to save updating it).
2000-11-25 18:30:23 +00:00
tsubai 2fb7179aaf Add KERNEL_LOCK (et al.) to run MULTIPROCESSOR kernel on a single cpu system. 2000-11-25 15:49:43 +00:00
bjh21 98253a5467 It seems that all versions of BBC BASIC V can load a text file specified on
the command line, so we don't need to tokenize it first.

This makes it less than clear what file type BBBB should have, so let's not
make an issue of it.
2000-11-25 13:32:51 +00:00
scw 73e60771ab Fix the code which probes the memory controller ASICs. We can now
deal with the 2nd one not being present.
2000-11-25 11:25:07 +00:00
nisimura 554a1bfcc6 Update and clarify the comment description of how disklabel is managed. 2000-11-25 07:58:07 +00:00
minoura 9f9181afde Use objcopy instead of dd. This will work after we'll switch to ELF.
Using command directly breaks cross compilation.  Use macro instead.
2000-11-25 05:27:19 +00:00
tsutsui add41a3fee Make sure to return PROM prompt even if loading kernel fails halfway. 2000-11-25 04:42:06 +00:00
matt f80f1b8624 Preliminary AltiVec support. 2000-11-25 03:03:35 +00:00
matt 4c6aaf87d2 Add placeholder for AltiVec support file. 2000-11-25 03:01:40 +00:00
matt 6d256b4cca Preliminary AltiVec support 2000-11-25 03:00:48 +00:00
matt 6b0877113f Some preliminary ALTIVEC support. 2000-11-25 02:59:34 +00:00
chs b5142d6841 increase PAGER_MAP_SIZE to 16MB and move it to uvm_pager.h
since the alpha and mips pmaps use it.
2000-11-24 22:41:38 +00:00
sato 446d4c8a9f delete not HPCFB_TVOPTIM codes. 2000-11-24 22:05:13 +00:00
sato bda86c3118 update experimental HPCFB_JUMP codes.
(but not completely yet)
2000-11-24 21:58:06 +00:00
tsubai 4e01e6de8b When fatal trap occurs, enter DDB with trapframe rather than just "Debugger()". 2000-11-24 21:49:06 +00:00
scw 2129dff0f7 The ramdisk now needs 1024 blocks. 2000-11-24 19:40:15 +00:00
scw bf5610e667 Some minor optimisations. 2000-11-24 14:49:44 +00:00
tsutsui 6d8f55d932 Use single_inst_b{set,clr}_b() macro defined in m68k/asm_single.h. 2000-11-24 14:08:14 +00:00
tsutsui 5ed7dadbfb Enable rnd and comment out CD9660. (no SCSI support on news1200 yet) 2000-11-24 13:05:31 +00:00
tsutsui be69cb38ee Add/enable COMPAT_SUNOS. It actually works on news68k. 2000-11-24 12:58:17 +00:00
tsutsui 500525029a PAGE_SIZE on sun3/sun3x is now constant;
Use uvmexp.pagesize itself for its initialization.
2000-11-24 11:57:45 +00:00
scw 55ecb0e64a `emul_sunos' is now declared in the appropriate header file. 2000-11-24 10:29:21 +00:00
scw dcd1f30fb8 First cut of a driver for the Memory Controller ASICs found
on mvme16x and mvme17x boards.
2000-11-24 09:42:09 +00:00
matt ca7a0ec817 Make this compile again. 2000-11-24 09:39:37 +00:00
scw 7d191ffe77 Revamp the bus_space(9) implementation:
. use a structure for the tag instead of an integer constant,
 . add bus_space_{peek,poke}_N() (and G/C `badaddr()'),
 . fix a few drivers which have dependencies on the implementation.
2000-11-24 09:36:40 +00:00
scw a70c48655b Add a bus_space_tag_t field to the mvmebus_softc structure and
initialise/use it in the ASIC-specific back-ends.
2000-11-24 09:27:42 +00:00
scw 06e91c089b Replace the inline C versions of bus_space_{read,write}_N() with
inline assembler. This generates significantly more efficient code,
and trims ~1KB off the size of an mvme68k GENERIC kernel...
2000-11-24 09:05:55 +00:00
scw 7bd36d34a1 Use the MI md_root.c. 2000-11-24 08:54:08 +00:00
minoura e6a960146a Use MI md_root.c. 2000-11-24 06:55:22 +00:00
chs fa19fe52db adjust the spinlock macros in the non-MULTIPROCESSOR, non-LOCKDEBUG case
so that gcc will think that static spinlock are used.
this allows us to remove the ugly conditionalization of
static spinlock declarations.
2000-11-24 03:59:07 +00:00
simonb f91f0ea65c Make this compile again (unterminated `#if' conditional). 2000-11-24 02:21:56 +00:00
chs bac6420b96 fix reversed keywords in previous commit. 2000-11-23 21:58:54 +00:00
chs c01c2504a2 examine the PDE in addition to the PTE when checking for valid mappings. 2000-11-23 21:44:52 +00:00
nisimura c2c8f26967 - Nuke xasc_ioasic.h and xasc_pmaz.h as no code uses the symbols they define.
- Hide #include <pmax/dev/device.h> for "pmax oldscsi" inside
  #if NRZ > 0 || NTZ > 0.
2000-11-23 09:44:14 +00:00
matt 1420862fba Add comments and AltiVec reg state. 2000-11-23 02:35:10 +00:00
msaitoh 007d059977 - fix \n conversion from \n\r to \r\n
- cleanup
2000-11-22 21:14:25 +00:00
msaitoh d077acc4e9 const struct sysent 2000-11-22 21:12:28 +00:00
wiz b03725b863 Change OF_nextprop to match prototype change to void *
(Please don't change prototypes without changing the corresponding
functions!)
2000-11-22 18:18:32 +00:00
jdolecek 818062390e Intel recommends to print cpu serial number as six dash-separated nibbles
(XXXX-XXXX-XXXX-XXXX-XXXX-XXXX), make it so
2000-11-22 16:41:56 +00:00
nonaka 41b0daf516 - Add some PCMCIA devices.
- Commented out USB devices.
2000-11-22 16:15:44 +00:00
nonaka ea05f33502 Set intrtype[irq] if interrupt type is IST_NONE. 2000-11-22 16:07:16 +00:00
tsubai 1931e71852 Constify struct sysent. 2000-11-22 14:00:46 +00:00
leo f4420dcb03 Revert previous change. I cannot see why this ever worked... Pointed out
by Steve Woodford.
2000-11-22 12:39:03 +00:00
tsutsui 4b61041326 e_sysent in struct emul has been const'fied. 2000-11-22 11:47:17 +00:00
matt 03b44427da Make assym.h be generated again
Add pcmcia support to files.prep
Add isa_intr_alloc support.
2000-11-22 08:55:35 +00:00
thorpej 534e7d4454 Several changes, which get us generally further along with
multiprocessor support:
- Implement MP-safe halt.
- Make the FPU saving code more like Bill's on the i386 MP branch.
  XXX This code will no doubt be revisited again.
- Pass the cpu_info and trapframe to IPI handlers, saving some work
  in the handlers themselves, and also making it possible for the
  "pause" handler to reference register state for DDB.
- Add "machine cpu" to DDB, making it possible to reference other
  CPUs registers (and thus get e.g. a traceback) from whichever
  CPU is actually running the debugger.
- Garbage-collect "machine halt" and "machine reboot" DDB commands.
  They don't have a prayer of working properly in multiprocessor
  kernels, and didn't really work all that well in uniprocessor kernels.
2000-11-22 08:39:46 +00:00
thorpej 6cbdf24c45 Add a debugging printf, commented out by default. 2000-11-22 07:44:01 +00:00
enami 9c0026f5fa s/char \*/const &/ so that this file compiles again. 2000-11-22 04:28:13 +00:00
itojun 1c06733c6b constify 2000-11-22 03:54:01 +00:00
thorpej 7231516137 Just access the trapframe directly for DDB registers. 2000-11-22 02:25:52 +00:00
thorpej 7f6303947a Restructure the way registers are presented to DDB, to make it
easier to support reading registers from other CPUs.
2000-11-22 02:03:48 +00:00
bjh21 564a044dcb Using bsd.man.mk looked silly without a man page. Use bsd.prog.mk without
PROG instead.
2000-11-22 00:36:22 +00:00
bjh21 fc955e1104 Move BBBB out of the kernel tree so other architectures can see it. 2000-11-22 00:32:53 +00:00
bjh21 c4eb6c6325 Rudimentary manual page for BBBB. 2000-11-22 00:18:47 +00:00
bjh21 986c78ced4 New mechanism for building the tokenised version of BBBB under NetBSD. This
saves us having to keep a uuencoded version around.
2000-11-21 23:47:37 +00:00
bjh21 99899665e8 Move of BBBB to a more sensible location.
Look in sys/arch/arm26/boot/BBBB,fd1 for old commit messages.
2000-11-21 23:44:24 +00:00
tsutsui 161004f8c3 s/struct const sysent/const struct sysent/
(BTW, luna68k was missed in emul/execsw changes?)
2000-11-21 23:19:42 +00:00
scw f86349723d Put the call to mvme68k_init() back where it was originally. 2000-11-21 22:08:04 +00:00
jdolecek 09c6390523 make trap_type[] const 2000-11-21 21:27:04 +00:00
jdolecek 3323852a95 put compat-specific locore code to separate *_locore.s files 2000-11-21 21:13:23 +00:00
chs 0ac52aaf1d remove MD functions for printing vnodes and buffers since there are
MI versions now.
2000-11-21 16:34:52 +00:00
ad 20ef6ae40a Fix netbooting on the 2100/3100. Partially from Thilo Manske
<Thilo.Manske@HEH.Uni-Oldenburg.DE> in PR 11212.
2000-11-21 14:21:36 +00:00
ad bd4ff2a804 PMIN vs. PMAX in boot message. Pointed out by Thilo Manske
<Thilo.Manske@HEH.Uni-Oldenburg.DE> in PR 11212.
2000-11-21 14:19:10 +00:00
tsutsui 2c7e91a09e Define proper macros for FP frame offsets rather than magic numbers. 2000-11-21 13:54:13 +00:00
tsutsui 20494c8f05 Pull in dev/i2o/files.i2o, which is required by files.pci. 2000-11-21 13:34:57 +00:00
scw f33cb83f53 Call zs_set_speed() to calculate the initial timing constants. 2000-11-21 11:41:37 +00:00
chs c588bbbe76 add a missing newline in a printf(). 2000-11-21 08:14:17 +00:00
chs 7af6378fca two changes to arm32 fault handling:
- when pcb_onfault is set, allow UVM to attempt to resolve permission faults
   as well as translation faults (rather than immediately invoking the
   onfault handler for permission faults).  this is needed for UBC since
   it will be normal for uiomove() to fault on read-only mappings which
   will be made writable by the pager.
 - clear pcb_onfault before calling uvm_fault() and restore it afterward.
   if the fault handler generates a pagefault, we'd like to panic rather
   than invoking the onfault handler.
2000-11-21 06:30:05 +00:00
chs 197f7aae9c two changes to pmap_enter():
- allow entry of the same mapping that's already there.
   this can happen with UBC.
 - if PMAP_CANFAIL, return failure rather than sleeping
   when we fail to allocate a ptp.
2000-11-21 06:14:40 +00:00
chs 2116915a30 eliminate TRUNC_PAGE() and ROUND_PAGE() in favor of their
lowercase counterparts.  also, a little misc cleanup.
2000-11-21 05:49:07 +00:00
soren 4927de268a Adjust for p_emul change. 2000-11-21 02:26:07 +00:00
jdolecek baae0324b9 restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and
  provide single struct emul per emulation
* elf:
  - kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry
    per emulation and contains pointer to respective probe function
  - interp is allocated via MALLOC() rather than on stack
  - elf_args structure is allocated via MALLOC() rather than malloc()
* ecoff: the per-emulation hooks moved from alpha and mips specific code
  to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per
  emulation supporting ecoff with appropriate probe function
* the makecmds/probe functions don't set emulation, pointer to emulation is
  part of appropriate execsw[] entry
* constify couple of structures
2000-11-21 00:37:49 +00:00
soren 1bbc3bd9b5 Same as sys/dev/md_root.c. 2000-11-21 00:18:03 +00:00
soren 0bb338521a Use dev/md_root.c. 2000-11-21 00:17:33 +00:00
soren d1b07f4fee Same as sys/dev/md_root.c. 2000-11-21 00:17:08 +00:00
soren 36ae7c2b02 Use dev/md_root.c. 2000-11-21 00:16:33 +00:00
soren 263f913967 Remove obsolete comment. 2000-11-21 00:15:20 +00:00
thorpej f595d8e741 Ooops, do the last only if MULTIPROCESSOR. 2000-11-20 21:18:07 +00:00
thorpej 13c94ca56c We've fixed enough bugs that we can actually acquire the scheduler
lock, jump into the idle loop, and run user code!  Yippee!
2000-11-20 20:40:17 +00:00
thorpej b37faa6ca5 Protect microtime_slock appropriately. 2000-11-20 20:37:52 +00:00
thorpej e12f731db5 On the Alpha, interprocessor interrupts come in at the same priority
as normal device interrupts.  Because of this, we won't get IPIs while
servicing such interrupts.  This can lead to the following deadlock
scenario as reported by Bill Sommerfeld:
- Process runs on cpu1, but has FP state on cpu0.
- Process executes FP-using insn, causing an FP trap, which causes
  the kernel lock to be acquired.
- At roughly the same time, cpu0 receives a device interrupt, and attempts
  to acquire the kernel lock, which blocks since cpu1 already has it.
- cpu1 sends cpu0 a SYNCH FPU IPI, and waits for cpu0 to release its
  FP state.
- Since cpu0 cannot notice the IPI until it has processed the device
  interrupt, which it cannot do because it cannot acquire the kernel
  lock, we have deadlock.

Solve the problem by adding a spinlock interlock release hook which
checks for pending IPIs and processes them.

Idea from Bill Sommerfeld.
2000-11-20 20:17:13 +00:00
jdolecek 0630488eda fix typo 2000-11-20 20:07:36 +00:00
jdolecek 3b15e411a3 add moxa0 at isa entry, marked as experimental
This was not added also to other config files primarily because the
driver is not properly tested yet; this entry is primarily meant as an example
for those brave souls who want to try moxa.
2000-11-20 19:53:43 +00:00
scw b6f0a678dd Add support for the m68060-based machines: MVME-172 and MVME-177.
CPU support taken from a combination of NetBSD/amiga and NetBSD/x68k.

At this time, MVME-172 works but MVME-177 is untested. Since the '177
is otherwise identical to the MVME-167, this should *just work*.
2000-11-20 19:35:28 +00:00
thorpej fdfb847e3e Make ci_ipis volatile. 2000-11-20 19:25:43 +00:00
thorpej 7f059c8e69 Move IPI processing into a separate function. 2000-11-20 19:24:36 +00:00
thorpej 5a22e57dc3 Print the CPU ID while dumping trap info. 2000-11-20 15:33:39 +00:00
tsubai 11b48d8a4d Thermal Management Interrupt is available on 750, too. 2000-11-20 15:16:04 +00:00
tsutsui 2cd77d5700 Fix swapped keycode for '[' and ']'. 2000-11-20 14:55:15 +00:00
chs c62d17a551 rationalize the use of b_flags for geteblk() buffers.
rather than assigning to the whole field, set or clear individual flags,
which implies that the B_BUSY and B_INVAL flags will remain set.
this allows us to make the assertion in brelse() that B_BUSY is set,
which is the purpose of all this.
2000-11-20 08:24:08 +00:00
thorpej 2f1e131332 Delete a block of code that was intended to get the second
CPU to handle interrupts, but prevents a whole slew of things
from working properly on the second CPU.  It is no longer
necessary now that several other bugs have been fixed.
2000-11-20 03:15:15 +00:00
thorpej fe5b367ce6 In Idle(), only switch to the idle PCB if we're not already running
on it, and make sure to deactivate the old process's address space,
as this will not otherwise be done by cpu_switch() later once we're
on the idle PCB.

Also, update some comments related to when s0 (i.e. the old process)
is NULL in the context switching code.
2000-11-20 02:44:45 +00:00
soren 046ce58634 Enable com at cardbus. 2000-11-20 02:00:46 +00:00
jdolecek 2faa9db8c1 cosmetic change in brand string handling (NULL vs. "")
drop Xeon from PIII Cascades entry, it should be handled by the brand id
support (pointed out by Scott Telford in private e-mail).
2000-11-19 23:38:22 +00:00
matt 95a8447ccf Add G4 specific exceptions (include AltiVec). 2000-11-19 20:48:20 +00:00
matt bb71a6b332 Add AltiVec VSCR definitions. 2000-11-19 20:41:04 +00:00
sommerfeld 2a0dca4bec Correct conditionalization of last change. 2000-11-19 20:11:12 +00:00
sommerfeld 8074b0b0b2 MULTIPROCESSOR: context switch to cpu's idle pcb before unlocking the
scheduler in idle so our stack doesn't get stolen out from underneath us.
2000-11-19 20:08:36 +00:00
sommerfeld c0c9c552c0 Fix obvious typo (don't mark current cpu as not running when doing a
broadcast IPI).
2000-11-19 20:05:25 +00:00
matt b1e1cfdb4a Add AltiVec VEC bit. 2000-11-19 19:52:37 +00:00
thorpej 87819535b2 Synch cpu_hatch() with the i386:
- print the same style message when the CPU is running.
- Initialize ci->ci_schedstate.spc_runtime on the CPU.
2000-11-19 19:18:19 +00:00
thorpej 69a3a857be As a temporary measure, protect microtime() with a simple lock.
XXX Needs to be rewritten from scratch.
2000-11-19 19:16:44 +00:00
mrg 5d04f7b69d update to reality. sync with GENERIC32. 2000-11-19 15:23:55 +00:00
mrg 1368967d8c fix some comments. 2000-11-19 15:22:51 +00:00
tsutsui ae33b9bc92 More cosmetics.
BTW, why these two "generic" config files exist?
2000-11-19 14:23:34 +00:00
tsutsui d805c3822e Remove "rnd is EXPERIMENTAL" comment. 2000-11-19 14:14:31 +00:00
tsutsui 523ec808a6 - Add bba* at ioasic?
- Some cosmetics
2000-11-19 14:10:56 +00:00
tsutsui 13c5a51b02 Add some newer stuff from GENERIC and enable rnd. 2000-11-19 14:03:39 +00:00
tsutsui f6c12f31f0 Sync with GENERIC. 2000-11-19 13:46:29 +00:00
thorpej b9ad1f75b9 Make VM_MAX_KERNEL_ADDRESS end on a page boundary. 2000-11-19 03:16:55 +00:00
thorpej 561db1fb7e Implement pmap_growkernel(). 2000-11-19 03:16:34 +00:00
mrg e97f9e9f7a use OpenFirmware, not prom version 0, operations. eeprom(8) works now. 2000-11-18 23:45:05 +00:00
mrg a2ea64e265 sync with sparc port. add support for OF_setprop(), OF_nextprop(),
OF_interpret() and OF_milliseconds().
2000-11-18 23:43:06 +00:00
scw a29dff3290 Fix a braino in the last commit. 2000-11-18 22:46:07 +00:00
scw 4b0eb0e2dd Allow a degree of tolerance when calculating the baudrate timing constant. 2000-11-18 22:34:25 +00:00
tsutsui ed94d05b50 Clear %fp to terminate backtrace on gdb. 2000-11-18 20:46:28 +00:00
soren 60239485e8 Some CRIME definitions. 2000-11-18 19:33:49 +00:00
soren 4227c8ce3a Use ETHER_ADDR_LEN. 2000-11-18 19:32:34 +00:00
thorpej 137c030d5b Count individual interprocessor interrupts -- it's good to know where
they all come from.
2000-11-18 19:25:35 +00:00
thorpej 34f24f4819 Make sure that the cpu_info points at the correct softc on
single-processor kernels running on multi-processor systems.
2000-11-18 17:45:31 +00:00