Commit Graph

1167 Commits

Author SHA1 Message Date
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
thorpej 2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
leo 56ea880f14 Both isa_hades.c and isa_milan.c are also dependent on 'isa' of course... 2001-04-24 10:56:54 +00:00
leo 164b045485 Split the ISA common attachment stuff and the interrupt handling.
There are too many differences between the Hades and Milan in this area.
2001-04-24 06:39:47 +00:00
leo a1bcd64a89 The register spacing for the Milan is different. 2001-04-24 06:27:58 +00:00
leo d7512523ba Add sanity checking on register B of the mc146818. 2001-04-24 06:26:48 +00:00
leo 8e9f65f2a7 Don't emit SCU defines when it isn't present. 2001-04-24 06:17:22 +00:00
leo 7488e821c5 Handle cases in which the cpulabel pointer == NULL. 2001-04-24 06:15:42 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej 55044638aa Remove pmap_kenter_pgs(). It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej 69abdbf60c Undo a misguided previous change to the pmap_update() API. 2001-04-22 23:19:26 +00:00
thorpej 4738622712 Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej 7f10ba88b1 #define away pmap_update() in <machine/pmap.h> so that no function
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
2001-04-21 23:51:14 +00:00
thorpej 15f731ee94 pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations.  Since these pmaps don't
defer anything, pmap_update() is a noop.
2001-04-21 17:25:01 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
leo ba0a86fa22 There are no level1 or level7 interrupts possible on the Milan... 2001-04-12 09:09:56 +00:00
leo 8507fcec54 Update these for Milan addresses. 2001-04-12 07:17:30 +00:00
leo 3f7694f804 Adapt these for use on the Milan. 2001-04-11 14:45:07 +00:00
leo 247d880fc9 The Milan uses the U0 pin to switch the pci-bridge between little & big
endian mode. That's why I moved the 'wired' flag to U1.
2001-04-10 19:51:00 +00:00
leo dcc1c6a9fb Take NFDISA into account. 2001-04-10 19:36:20 +00:00
leo dc0e725f9d full[tc]flush from GLOBAL -> ASLOCAL. 2001-04-10 13:59:10 +00:00
leo 3e3afaaac3 Regen. again... 2001-04-10 07:03:49 +00:00
leo e3d2d361fd The Hades also uses the TT030 like SCSI driver. Remove 'mouse' here... 2001-04-10 06:46:01 +00:00
leo 2d38da2932 Initial MILAN generic config 2001-04-10 06:39:36 +00:00
leo e409b5d5df Regen. 2001-04-10 06:39:10 +00:00
leo 99047718f0 fdisa needs-flag... 2001-04-10 06:37:08 +00:00
leo 30f5357c6e Move dma.c away from the mainbus floppy and make it a separate entity with
tag 'mbdma'.
2001-04-10 06:36:08 +00:00
leo e159fdc910 files.atari:
Defopt motherboard type and make ym2149.c dependend on 'standard' atari
    boards.
Configfiles:
    Add pseudo device mouse. It got dropped in the moves by accident.
2001-04-10 06:28:38 +00:00
leo dfaa29355b Add a config file for the Milan. Note that you cannot build a working Milan
kernel yet. There are still quite some bits missing in the repository.
2001-04-10 05:56:25 +00:00
leo 1e08d983e3 Move GENERIC to GENERIC.in . This avoids confusion since GENERIC is not a
standalone config file anymore.
2001-04-10 05:52:14 +00:00
leo adc78de568 Regen. 2001-04-06 21:55:11 +00:00
leo 54d70d6eef Add a 'ser0' device to all. Add ne2000, 3Com 3c59x/3c90x and ESS Solo-1
support to the Hades.
2001-04-06 21:53:39 +00:00
leo 1324cab42e And commit the generated files. 2001-04-05 12:25:15 +00:00
leo 6b22a0776c Forgot this in previous commit. 2001-04-05 12:22:10 +00:00
leo fb0acfc293 Major overhaul in the config files. The idea is to have the major part of
the generic options in GENERIC instead of duplicated all over the place.
To generate a config file, run 'makeconf'. This script uses cpp to combine
a '.in' file and GENERIC to a real config file.
2001-04-05 12:21:30 +00:00
leo ad8c9f3a7e Wcd attacment code for the Milan. The Milan has the standard dual IDE port
hardware. A Milan specific attachment is needed to modify the iot so that
the streaming methods do a byteswap.
Configure like:
  wdcisa0 at isa? port 0x1f0 irq 14
  wdcisa1 at isa? port 0x170 irq 15
2001-03-31 20:24:10 +00:00
leo a054ccd1d4 Add a tag to the fdcisa.c and isa/fd.c files. So they won't be used
unnecessary (and cause trouble).
2001-03-31 20:13:19 +00:00
lukem 20ba07f2fe - add dev_noimpl(xxx,yyy) macro to replace "(dev_type_xxx((*))) yyy",
and use appropriately

- create more helper macros:
   . cdev__xyz_init(c,n), such as cdev__ocri_init() for
     /* open, close, read, ioctl */, etc.
   . cdev__xRy_init(c,n), where nullop is used instead of enodev to dummy out
     method `R' and the comments now read /* xxx (read) yyy */ instead
   . cdev__xyz_t_init(c,n,t) - as per cdev__xyz_init, but sets d_type = t
     as well

- use seltrue instead of dev_noimpl(poll,*), as (IIRC) cdevsw.d_poll should
  always DTRT WRT returning a valid result.  (a few devices previously
  incorrectly returned ENODEV)

- use dev_noimpl(stop,enodev) instead of dev_noimpl(stop,nullop) if tty
  == 0, because it doesn't matter if dev_type_stop isn't implemented in that
  case, and it allows the use of the cdev__xyz_init macros. certain ports
  (sparc,sparc64,x68k) used the nullop method for dev_type_stop in a few
  drivers, whereas everything else uses enodev

- ensure that the comments are accurate WRT the behaviour of a given entry
2001-03-26 12:33:22 +00:00
lukem 723cd818d8 move duplicate definitions for:
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
2001-03-21 22:25:52 +00:00
soren 912c115675 s/vm_page_alloc_memory/uvm_pglistalloc/ in panic message. 2001-03-21 18:40:28 +00:00
leo 14d2d5706f Conditionalize inclusion of the interrupt handlers for 'kbd', 'zs' and
'ncrscsi' since they are not present on the Milan.
2001-03-17 20:56:31 +00:00
leo a5fdf3f1cf Atari specific stuff to implement the Milan floppy. The Milan uses standard
ISA floppy hardware. Configure as:
    fdcisa0 at isa? port 0x3f0 irq 6 drq 2
2001-03-16 21:31:55 +00:00
chs ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00