Home | History | Annotate | Line # | Download | only in shark
      1  1.2      chs /*	$NetBSD: hat.h,v 1.2 2002/10/05 17:01:51 chs Exp $	*/
      2  1.1  thorpej 
      3  1.1  thorpej /*
      4  1.1  thorpej  * Copyright 1997
      5  1.1  thorpej  * Digital Equipment Corporation. All rights reserved.
      6  1.1  thorpej  *
      7  1.1  thorpej  * This software is furnished under license and may be used and
      8  1.1  thorpej  * copied only in accordance with the following terms and conditions.
      9  1.1  thorpej  * Subject to these conditions, you may download, copy, install,
     10  1.1  thorpej  * use, modify and distribute this software in source and/or binary
     11  1.1  thorpej  * form. No title or ownership is transferred hereby.
     12  1.1  thorpej  *
     13  1.1  thorpej  * 1) Any source code used, modified or distributed must reproduce
     14  1.1  thorpej  *    and retain this copyright notice and list of conditions as
     15  1.1  thorpej  *    they appear in the source file.
     16  1.1  thorpej  *
     17  1.1  thorpej  * 2) No right is granted to use any trade name, trademark, or logo of
     18  1.1  thorpej  *    Digital Equipment Corporation. Neither the "Digital Equipment
     19  1.1  thorpej  *    Corporation" name nor any trademark or logo of Digital Equipment
     20  1.1  thorpej  *    Corporation may be used to endorse or promote products derived
     21  1.1  thorpej  *    from this software without the prior written permission of
     22  1.1  thorpej  *    Digital Equipment Corporation.
     23  1.1  thorpej  *
     24  1.1  thorpej  * 3) This software is provided "AS-IS" and any express or implied
     25  1.1  thorpej  *    warranties, including but not limited to, any implied warranties
     26  1.1  thorpej  *    of merchantability, fitness for a particular purpose, or
     27  1.1  thorpej  *    non-infringement are disclaimed. In no event shall DIGITAL be
     28  1.1  thorpej  *    liable for any damages whatsoever, and in particular, DIGITAL
     29  1.1  thorpej  *    shall not be liable for special, indirect, consequential, or
     30  1.1  thorpej  *    incidental damages or damages for lost profits, loss of
     31  1.1  thorpej  *    revenue or loss of use, whether such damages arise in contract,
     32  1.1  thorpej  *    negligence, tort, under statute, in equity, at law or otherwise,
     33  1.1  thorpej  *    even if advised of the possibility of such damage.
     34  1.1  thorpej  */
     35  1.1  thorpej 
     36  1.1  thorpej /*
     37  1.1  thorpej  * hat.h
     38  1.1  thorpej  *
     39  1.1  thorpej  * interface to high-availability timer on SHARK
     40  1.1  thorpej  *
     41  1.1  thorpej  * Created      : 19/05/97
     42  1.1  thorpej  */
     43  1.1  thorpej 
     44  1.1  thorpej /* interface to high-availability timer.
     45  1.1  thorpej    DO NOT CALL ANY OF THESE FUNCTIONS FROM CODE CALLED BY THE FIQ!
     46  1.1  thorpej    (e.g. hatFn)
     47  1.1  thorpej */
     48  1.1  thorpej 
     49  1.1  thorpej /* hatClkOff(): turn off HAT clock.
     50  1.1  thorpej 
     51  1.1  thorpej    returns: 0 => success  -1 => error
     52  1.1  thorpej */
     53  1.1  thorpej int hatClkOff(void);
     54  1.1  thorpej 
     55  1.1  thorpej /* hatClkOn(): turn on HAT clock.
     56  1.1  thorpej 
     57  1.1  thorpej    count   = count for ISA TIMER 2, which generates HAT clock
     58  1.1  thorpej    hatFn   = function to be called on every HAT FIQ.
     59  1.1  thorpej    arg     = argument to pass to hatFn.
     60  1.1  thorpej              if (arg == 0)
     61  1.1  thorpej               then the FIQ handler will pass the contents of
     62  1.1  thorpej                    sequoia register 001H, including the PMI source bits
     63  1.1  thorpej               otherwise the FIQ handler will not load the register and
     64  1.1  thorpej                         will pass arg directly
     65  1.1  thorpej    stack   = stack for hatFn
     66  1.1  thorpej    wedgeFn = function called when the HAT wedges and needs to be restarted.
     67  1.1  thorpej              the argument is the total number of FIQs received by the system.
     68  1.1  thorpej              (wraps at 32-bits).
     69  1.1  thorpej 
     70  1.1  thorpej    returns: 0 => success  -1 => error
     71  1.1  thorpej */
     72  1.1  thorpej int hatClkOn(int count, void (*hatFn)(int), int arg,
     73  1.1  thorpej 	     unsigned char *stack, void (*wedgeFn)(int));
     74  1.1  thorpej 
     75  1.1  thorpej /* hatClkAdjust: adjusts the speed of the HAT.
     76  1.1  thorpej 
     77  1.1  thorpej    count = new count for ISA TIMER 2
     78  1.1  thorpej 
     79  1.1  thorpej    returns: 0 => success  -1 => error
     80  1.1  thorpej */
     81  1.1  thorpej int hatClkAdjust(int count);
     82  1.1  thorpej 
     83  1.1  thorpej /* hatUnwedge: call this function periodically (slower than the frequency
     84  1.1  thorpej                of the HAT) to unwedge the HAT, if necessary.
     85  1.1  thorpej */
     86  1.2      chs void hatUnwedge(void);
     87  1.1  thorpej 
     88  1.1  thorpej /* HAT_MIN_FREQ: should be a power of 2.  Call hatUnwedge() no more
     89  1.1  thorpej                  often than HAT_MIN_FREQ.  HMF should be a power of 2.
     90  1.1  thorpej */
     91  1.1  thorpej #define HAT_MIN_FREQ 64
     92