Commit Graph

9 Commits

Author SHA1 Message Date
wdk 2bc18c0ead Add parenthesis to TICKS_TO_USECS macro avoiding side-effects.
Fixes glitch where microtime goes backward.   KNF rules!
2000-10-02 07:58:26 +00:00
wdk b38096892a Microtime calculation was seriously incorrect when HZ != 100
Give rest of clock interrupt code a revamp.  Because we are using an external
cycle counter we can now handle loosing several hundred interrupts without
the time slipping.
2000-09-06 07:52:47 +00:00
wdk 3e329a2925 * Use bus_space_write_multi_2 for priming the DMA FIFO as suggested by cgd
*  Correctly handle transfer pad operation

*  Remove check for DMA fifo flush during DMA chaining - after considerable
   thought this is not required
2000-09-04 22:28:53 +00:00
wdk 149a5fc5f2 Engage the clutch before changing gears.
If the machine uses a Z85230 ESCC device with deep buffers, we observe
output glitches when printing the zstty{0,1} probe lines when the device
is reset & reprogrammed during startup.

There is no easy 'hook' in the MI Z8530 driver, so we wait for output
buffer to drain before changing the baud rate generator prescaler value.
2000-08-29 11:25:08 +00:00
wdk aaa3f11967 Fix an obscure bug with dump corrupting files during raw reads.
If the DMA chaning interrupt couldn't be serviced immediately (higher spl
level when kernel doing something else) a few microseconds later the NCR
controller will fill its FIFO and also interrupt the CPU.

The SCSI interrupt sees the terminal count has been reached, calls
asc_dma_intr to finish the job off.   The FIFO cannot be flushed because
the block count hasn't been setup for the last dma segment (DMA chaining
still wasn't serviced).

Since the NCR 53c94 FIFO is only 16 bytes in size, any short DMA in this
size combined with the machine 'doing something else' causes the problem
to occur.

Servicing the DMA chaining interrupt before the NCR SCSI interrupt solves
this problem.

Add tests to ensure the DMA FIFO has been flushed correctly at the end of
each DMA operation just to be on the safe side.
2000-08-29 08:24:06 +00:00
wdk 9ac68bcb51 - Add support for calling most prom firmware functions
- Using the prom getenv function determine the correct console port

- Remove old prom function hooks

- Tidy up bootflags (remove upper case names, fixup RB_ASKNAME) as
  recommended by Jaromír Doleèek
2000-08-19 12:13:46 +00:00
wdk 33016f23e0 * Tidy up interrupt handlers by implementing an intr_establish()
handler to hook up device interrupts and softc callbacks.

   Suggested by:  Jason Thorpe and Toru Nishimura

*  Fixup the indenting in a few places to conform to NetBSD style
2000-08-15 04:56:45 +00:00
wdk 374fb8efbc Decrement the block count to compensate for 64 bytes prefetched to fill
the DMA FIFO on non block aligned writes.   Not doing this causes large
writes (>4k) that are not aligned to incorrectly write 64bytes
of data every 4k interval.   This only occurs on raw devices - typically
newfs fails to create a clean filesystem.
2000-08-14 21:04:44 +00:00
wdk 3f55a7b9aa Initial commit of port to MIPS Computer Systems RC3xxx systems.
Currently supports the RC3230
2000-08-12 22:57:55 +00:00