Commit Graph

112 Commits

Author SHA1 Message Date
wdk 86d8020753 Move previous patch which performs allocsys() before pmap_bootstrap()
to the correct location.
2001-04-28 04:20:27 +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
thorpej e553a6caf0 Do the first allocsys() pass (the pass that computes sizes) before
calling pmap_bootstrap(); pmap_bootstrap() needs some of the size
information computed by allocsys().
2001-04-24 15:41:38 +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 079c2e0ac9 Call pmap_bootstrap() before calling uvm_pageboot_alloc(), so that
the kernel virtual address space bounds will be set up.
2001-04-23 23:50:22 +00:00
thorpej 5871b80f00 Use uvm_pageboot_alloc() for early memory allocation, rather than
calling pmap_steal_memory() directly.  On these platforms, since
uvm_pageboot_alloc() is a wrapper around pmap_steal_memory(), there
is no functional change.  This is merely for API consistency.
2001-04-22 18:21:48 +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
wdk dacfad3be3 Clear interrupt latch after interrupts are processed, not before. 2001-04-02 09:54:16 +00:00
wdk 6b982beac1 Call softintr_init() 2001-03-31 00:10:03 +00:00
wdk 3e4cc841a7 Add softintr and ISA bus support 2001-03-31 00:08:34 +00:00
wdk a03b2aaaf0 Reverse previous commit - isa headers don't belong in /usr/include 2001-03-31 00:05:57 +00:00
wdk d3a8b4016e Add isa_machdep.h and isapnp_machdep.h 2001-03-30 23:59:19 +00:00
wdk 0ca4ab64ac Add ISA serial port device 2001-03-30 23:54:45 +00:00
wdk 9641e5d860 Probe ISA bus devices 2001-03-30 23:52:05 +00:00
wdk dd068f675e Changes to interrupt architecture for softintr support 2001-03-30 23:51:14 +00:00
wdk cdba0ef41c Add some ISA bus cards 2001-03-30 23:49:37 +00:00
wdk 1b6e2e02dd Add files for ISA bus and softintr support 2001-03-30 23:47:58 +00:00
wdk 8cd59636b4 Support for ISA expansion slot in Mips 3230
The ISA Bus on this machine doesn't support DMA, and all interrupt lines
are wire-OR'ed together.   Mileage may vary if sharing interrupts.

Tested cards:
     com:  8250 and 16550 UART's (8 bit)
     ec:   3com Etherlink II (8 bit)
     we:   SMC 8013 Ethernet (16 bit) [work in progress]
             Probes, ARP in both directions works, sends clean packets,
             tcpdump show correct packets on receive, NDP for IPv6 works,
	     netstat -s shows nothing strange.. but doesn't talk TCP/IP!
2001-03-30 23:45:18 +00:00
wdk 154a3bba69 use MI softintr 2001-03-30 23:28:00 +00:00
wdk 5d03735614 Move most interrupt functionality to arch/mipsco/mipsco/interrupt.c
Remove old style soft interrupts to favor MI softintr support
2001-03-30 23:26:29 +00:00
wdk 09d79c4b1f New data structures and prototypes for MI softintr support 2001-03-30 23:23:37 +00:00
wdk 273d283d25 Implement MI softintr functions (softintr_establish, softintr_schedule etc) 2001-03-30 23:21:30 +00:00
wdk 9477a9256c Re-implement bus_space(9) functions:
- Correctly handle striding of data
 - Better support for endian neutral access
 - Correctly implement _stream variants of bus_space functions that can
   byte swap.  This reverses the automatic byte swapping done in hardware
   for 16 bit ISA bus cards
2001-03-30 23:17:03 +00:00
wdk 70a7bcb64b Remove ncr53c9x_dmaselect 2001-03-30 07:49:07 +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
wdk b9b387d9b1 Remove function decl that doesn't belong in cpu.h 2001-03-11 09:20:58 +00:00
wdk 13de0e4f2b 1. Remove cpu_exec_ecoff_hook
2.  Invoke KGDB if booted with RB_KDB flag
3.  Don't round up page address when zeroing BSS - this can overwrite debug
    symbols
2001-03-11 09:19:31 +00:00
thorpej 2c4c690f14 Add the BUS_DMA_STREAMING flag. 2001-03-07 22:42:16 +00:00
wdk ffa74abf2f - Add "Features Enable" and CDB bits to SCSI controller config
- During un-aligned writes: Don't accidently leave the DMA engine active
  after priming the FIFO between calls to asc_dma_setup and asc_dma_go
2001-03-05 05:04:29 +00:00
wdk 9cf464f7d1 no longer keep a copy of the volume header in cpu_disklabel 2001-03-05 04:58:09 +00:00
wdk 680c13c7d4 - brelse() was called twice after reading disk label
- re-read RISC/os volume header off disk before writing new label
  in case it was updated by installboot utility
- no longer keep a copy of the volume header in cpu_disklabel
2001-03-05 04:54:07 +00:00
wdk 581542f31f Return microtime of zero if not available at early stages of device
autoconfiguration.
2001-02-21 09:46:54 +00:00
wdk 935036cf94 Remove superfluous #include added in previous commit 2001-02-21 09:20:56 +00:00
wdk 8e130c9227 Document KGDB options 2001-02-21 09:14:33 +00:00
wdk 85f0f12a55 Changes for KGDB 2001-02-21 09:12:14 +00:00
wdk 07bb8e7a23 Call KGDB hook function 2001-02-21 09:10:42 +00:00
wdk 6d8f58da18 Add zs_kgdb.c driver 2001-02-21 09:09:54 +00:00
wdk 8a5e278439 Glue functions for KGDB support 2001-02-21 09:08:35 +00:00
cgd c2bdafab79 use getprogname() 2001-02-20 23:51:59 +00:00
wdk c0f3e4293d Add a MD zs_chanstate layer that carries bus_space information
Tidy up several comments at same time.
2001-02-07 11:40:18 +00:00
wdk 25ad09d3d2 Fully implement bus_space(9) access to the z8530 SCC registers.
This adds the missing wbflush() calls after writing register data.

At same time tidy up several comments and make several KNF changes.

XXX: The z8530 MI driver doesn't support bus_space access to the registers
     (lacks a hook for storing a bus space tag, and stores register
     addresses directly)
     Until other ports catch up (this is the first) we have overlayed
     the missing data in the MD structures
2001-02-07 11:38:34 +00:00
wdk 8bbe289faf Allow file to be included in assembler source (bootstrap code etc.) 2001-02-06 04:32:29 +00:00
wdk f4290b34e9 Make booted_device struct visible to RAIDframe driver 2001-02-06 04:27:48 +00:00
jdolecek 8b24036797 Require the machine-dependant DDB commands to be in db_machine_command_table[]
and link it directly to db_command_table[] so that it's not necessary
to do this at runtime. Make db_machine_command_table[] const on all ports.
g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()

Patch written by enami.
2001-01-22 13:56:55 +00:00
wdk 8e913e0c2a Use custom linker script for building ECOFF kernel images. The PROM loader
is fussy about the order of sections and location of memory gaps so we
must produce a firmware friendly version of the kernel as netbsd.ecoff for
network booting

The ELF version uses the standard mips linker script which can be loaded
by the new bootstrap routines
2001-01-22 01:54:03 +00:00