Commit Graph

2487 Commits

Author SHA1 Message Date
thorpej a86d1f4891 Add a lock around the scheduler, and use it as necessary, including
in the non-MULTIPROCESSOR case (LOCKDEBUG requires it).  Scheduler
lock is held upon entry to mi_switch() and cpu_switch(), and
cpu_switch() releases the lock before returning.

Largely from Bill Sommerfeld, with some minor bug fixes and
machine-dependent code hacking from me.
2000-08-20 21:50:06 +00:00
thorpej 5a7793edd9 Implement MP-safe lazy FP context switching, modeled on the
way Bill Sommerfeld implemented it for x86 (and bug fixes
fed back to Bill :-)
2000-08-15 22:16:17 +00:00
thorpej c7b8439ec4 - Make lazy I-sync a little safer -- always mark the pmap as needing
I-sync in pmap_remove_mapping() if the old mapping had PG_EXEC, and
  kick curcpu (IMB) or other CPUs (via an IPI) only if the pmap was
  the kernel pmap or active on other CPUs (curcpu is handled in userret()).
- Use lazy I-sync everywhere, (hopefully) eliminating the last of the
  I-sync issues for multiprocessor support.
- Eliminate some memory barriers added in a couple of previous revisions,
  after some discussion on port-alpha/tech-smp.

Still some lazy I-sync optimization possibilites:
- pmap_changebit() does not need to I-sync when only write-protecting
  a page.
- pmap_asn_alloc() may be able to cancel a pending lazy I-sync when a
  new ASN is allocated.  Need to double check against Green Book or
  Brown Book.
2000-08-15 05:21:20 +00:00
thorpej f10ccf00b1 Remove an unnecessary MB in __cpu_simple_unlock(), per sections
5.3.3 and 5.3.4 of the Green Book, and a discussion w/ cgd@netbsd.org.
2000-08-14 20:28:28 +00:00
thorpej b80f38bf8b Issue a memory barrier before clearing a lock, as per section 5.5.3
of the Green Book and a discussion on tech-smp and port-alpha.
2000-08-14 17:18:50 +00:00
thorpej 86ef3ea256 Clean this up a little bit, and issue a Specific EOI after
dispatching an EISA interrupt.
2000-08-14 05:38:23 +00:00
thorpej b022657405 Add support for EISA configuration space on the Jensen (it's
mapped differently than on other EISA sysetms).
2000-08-14 02:14:24 +00:00
thorpej 5d5752af8b More MP cleanup:
- pmap_zero_page() and pmap_copy_page(): if MULTIPROCESSOR, issue
  a memory barrier after we zero/copy the page, to ensure that
  other CPUs see the correct data.
- XXX Should we use MB, or is WMB good enough?

Also, bzero -> memset, bcopy -> memcpy.
2000-08-13 22:43:42 +00:00
thorpej cdc6dac7f1 More MP cleanup:
- Make sure to do an MB after a PTE is set to a new value, so that
  other processors see it.
- Use lazy I-sync in two pmap_page_protect() and in pmap_changebit(),
  so that it is MP-safe.  XXX Two more places where IMB is used in
  the raw, but they're not in the common path.

There'll be some more lazy I-sync cleanups soon.
2000-08-13 22:30:18 +00:00
thorpej f49fa3615c Add some XXXSMP to places were imb is still used in the raw. 2000-08-13 18:41:15 +00:00
thorpej cd04e9fb14 Add MULTIPROCESSOR versions of PMAP_SYNC_ISTREAM_{KERNEL,USER}(). 2000-08-13 18:22:21 +00:00
thorpej 325f9ccafc Add alpha_multicast_ipi(). 2000-08-13 18:20:55 +00:00
itojun 85dda25e94 move "options PULLDOWN_TEST" into sys/sys/mbuf.h (in #ifdef _KERNEL),
as it is no wthe default setting for everyone.

the reason we still use the name "PULLDOWN_TEST" while it is now default:
kame code sharing.
2000-08-13 01:31:15 +00:00
thorpej 65c9982dfa Back out part of previous which was unintended. 2000-08-11 18:26:09 +00:00
thorpej e4eb846113 Add depca at eisa. 2000-08-11 03:05:19 +00:00
thorpej e931f846ff #if 0 out a debugging printf. 2000-08-11 01:02:39 +00:00
thorpej e207174eb0 Add functions to read EISA configuration data for MEM, IRQ, DMA, and IO.
XXX Just error stubs on the i386 right now -- someone needs to write
XXX EISA BIOS code for i386.
2000-08-11 00:43:18 +00:00
thorpej 30f7d691a0 Declare the ECU data in an MI location, so that drivers can
use it.
2000-08-10 23:30:08 +00:00
tv 5165243e6c %lz -> db_format_hex() 2000-08-09 20:00:30 +00:00
tshiozak 51a53de0d5 Preparation for the future introduction of multibyte locale.
- MB_LEN_MAX is increased to 32.
 - To ensure binary compatibility for old executables
   under multibyte locale, versioned setlocale is added.
 - __mb_len_cur definision is added in setlocale.c
   and enable it in stdlib.h .
   It is also important for multibyte locale stuffs,
   but I just forgot.
2000-08-08 22:31:13 +00:00
briggs 3f1e17a340 Define bus_space_*_stream_N functions as their non-stream counterparts. 2000-07-31 22:43:46 +00:00
thorpej d760e0b407 Add code to read the EISA configuration NVRAM as set up by
an EISA Configuration Utility.  Code to access this data
is forthcoming.

XXX This could probably be made MI at some point.
2000-07-29 23:18:46 +00:00
mason 4a353b5330 Moving to a default of 64 PTYs. 2000-07-27 17:53:35 +00:00
jdolecek 911d661dad switch to sys/conf/newvers_stand.sh for generation of version files
move the vers.c depend/build goo to Makefile.bootprogs and remove
	explicit rules in other Makefiles
sync the message in */version files with other ports using newvers_stand.sh

XXX the new depend rules were tested to limited extend (also with obj dirs)
XXX on i386 and should be ok; the changes should not otherwise influence build
2000-07-21 21:25:18 +00:00
thorpej 9faf26ffb5 This file is obsolsete. 2000-07-19 17:39:57 +00:00
nathanw e72ba11928 In cpu_switch(), load value *after* checking that the base register
is not NULL.
2000-07-19 14:00:24 +00:00
thorpej ea0cb4c30e Clear the ISDN TXPTR/RXPTR/OVRN interrupt bits here. Based on
a suggestion by Gregory McGarry.
2000-07-18 06:10:06 +00:00
thorpej 5edc9ef4a4 When computing the segment size, consider the maximum segment
size in the DMA map.
2000-07-17 04:47:56 +00:00
thorpej 3eedcb3009 Whitespace police. 2000-07-13 05:47:39 +00:00
thorpej 1204c1faaf Oops, treat 2100A_A500 just like 2100_A500 in every place necessary. 2000-07-12 21:02:14 +00:00
thorpej 3182af4432 - Add Jensen support/devices.
- Add commented-out Sable/Lynx support/devices.
- Switch from `ncr' to `siop' by default.
- Add some missing `scsibus' configs to INSTALL.
2000-07-12 20:54:38 +00:00
thorpej 249773b538 Deal with another odd need of the Sable/Lynx systems, which need to
have an ISA chipset present before the PCI-EISA bridge has been
attached (because the STDIO module has an ISA DMA-using device,
the floppy controller, connected to it).
2000-07-12 20:50:00 +00:00
thorpej a66c3e663c Code to support the DEC 2000/300 (DECpc AXP 150, a.k.a. "Jensen")
systems.  Thanks to Gyenes Istvan for the rounds of testing.
2000-07-12 20:36:07 +00:00
thorpej 55c41121ff Change from `ncr' to `siop' by default. 2000-07-12 20:27:25 +00:00
thorpej 42c89508c0 Uncomment the `fdc at sableio' lines. 2000-07-12 20:20:54 +00:00
nisimura 4f051180a0 - Use PMAD-BA name for device match logic. It's not a real TURBOchannel
device and the id string is not found in option ROM string, but
  ULTRIX/OSF1 call it so anyway.
- Squash IOASIC DMA buffer allocation into device attach() sequence.
2000-07-11 04:10:25 +00:00
thorpej 2c9058efbb Oops, g/c some stuff from previous. 2000-07-06 23:29:13 +00:00
thorpej 65780061bd Define some more CTB formats. 2000-07-06 22:46:54 +00:00
bouyer 4c19b21f72 3c503 works on alpha, add:
ec0 at isa? port 0x250 iomem 0xd8000 irq 9  # 3Com 3c503 Ethernet
2000-07-05 18:40:47 +00:00
nisimura 7b6a572aae zs_ioasic external declarations are stored in zs_ioasicvar.h. 2000-07-05 03:06:53 +00:00
nisimura 534c33a095 Use dev/tc/ directory for DEC3000 Z85C30s. 2000-07-05 02:50:39 +00:00
nisimura 728e424e54 Repopulate 4 files, zs_ioasic.c and zs_ioasicvar.h from arch/alpha/tc,
zskbd.c and zsms.c from dev/dec/, respectively.  No functionality
change this time.
2000-07-05 02:48:50 +00:00
nisimura 4dcd114ad5 Unnecessary to include <dev/tc/tcreg.h>. 2000-07-04 02:37:51 +00:00
nisimura 1de4ec68b4 Repopulate TCDS dual channel SCSI adapter to MI dev/tc, squashing
internals for better layering between TCDS DMA ASIC and ASC SCSI
controller.
2000-07-04 02:22:08 +00:00
thorpej 7878bcc14c Don't bother with minor printing, except on the LCA CPUs (because
that tells us if we have a 21066 or 21068).
2000-07-03 21:21:26 +00:00
thorpej 10e6c623b3 Print the system serial number. 2000-07-03 17:52:33 +00:00
thorpej 01bd2a3496 The `rpb_phys_address_size' field is really 2 32-bit fields,
`rpb_phys_address_size' and `rpb_extended_va_size', per Brown Book.
2000-07-03 01:47:48 +00:00
cgd a5c13f9ad4 Kwality control:
* put #includes of opt headers and headers to get protos used by
  net/netisr_dispatch.h in net/netisr.h (if !defined(_LOCORE)) (rather than
  in netisr_dispatch.h itself, and potentially nowhere, respectively).
* require netisr.h to be included before netisr_dispatch.h.
* minor additional cleanup of both netisr.h and netisr_dispatch.h.
* clean up uses to remove now-unnecessary header file inclusions, and
  local prototypes of the fns.
* convert netisr dispatch implementations which didn't use
  netisr_dispatch.h (pc532) to use it.
2000-07-02 04:40:33 +00:00
simonb edf0a0d67e Pass the abst to alpha_pci_mem_unmap() so that the real size of the
mapped area can be unmapped.
2000-06-30 18:19:28 +00:00
itojun d76ae83df8 add PULLDOWN_TEST for all the platforms.
XXX should be moved to somewhere else when stabilized
2000-06-30 17:10:15 +00:00