Home | History | Annotate | Download | only in machine
      1 /*	$NetBSD: pal.h,v 1.1 2006/04/07 14:21:18 cherry Exp $	*/
      2 
      3 /*-
      4  * Copyright (c) 2000 Doug Rabson
      5  * All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  * 1. Redistributions of source code must retain the above copyright
     11  *    notice, this list of conditions and the following disclaimer.
     12  * 2. Redistributions in binary form must reproduce the above copyright
     13  *    notice, this list of conditions and the following disclaimer in the
     14  *    documentation and/or other materials provided with the distribution.
     15  *
     16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
     17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     26  * SUCH DAMAGE.
     27  *
     28  *	$FreeBSD$
     29  */
     30 
     31 #ifndef _MACHINE_PAL_H_
     32 #define _MACHINE_PAL_H_
     33 
     34 /*
     35  * Architected static calling convention procedures.
     36  */
     37 #define PAL_CACHE_FLUSH		1
     38 #define PAL_CACHE_INFO		2
     39 #define PAL_CACHE_INIT		3
     40 #define PAL_CACHE_SUMMARY	4
     41 #define PAL_MEM_ATTRIB		5
     42 #define PAL_PTCE_INFO		6
     43 #define PAL_VM_INFO		7
     44 #define PAL_VM_SUMMARY		8
     45 #define PAL_BUS_GET_FEATURES	9
     46 #define PAL_BUS_SET_FEATURES	10
     47 #define PAL_DEBUG_INFO		11
     48 #define PAL_FIXED_ADDR		12
     49 #define PAL_FREQ_BASE		13
     50 #define PAL_FREQ_RATIOS		14
     51 #define PAL_PERF_MON_INFO	15
     52 #define PAL_PLATFORM_ADDR	16
     53 #define PAL_PROC_GET_FEATURE	17
     54 #define PAL_PROC_SET_FEATURE	18
     55 #define PAL_RSE_INFO		19
     56 #define PAL_VERSION		20
     57 #define PAL_MC_CLEAR_LOG	21
     58 #define PAL_MC_DRAIN		22
     59 #define PAL_MC_DYNAMIC_STATE	24
     60 #define PAL_MC_ERROR_INFO	25
     61 #define PAL_MC_EXPECTED		23
     62 #define PAL_MC_REGISTER_MEM	27
     63 #define PAL_MC_RESUME		26
     64 #define PAL_HALT		28
     65 #define PAL_HALT_LIGHT		29
     66 #define PAL_COPY_INFO		30
     67 #define PAL_CACHE_LINE_INIT	31
     68 #define PAL_PMI_ENTRYPOINT	32
     69 #define PAL_ENTER_IA_32_ENV	33
     70 #define PAL_VM_PAGE_SIZE	34
     71 #define PAL_MEM_FOR_TEST	37
     72 #define PAL_CACHE_PROT_INFO	38
     73 #define PAL_REGISTER_INFO	39
     74 #define PAL_SHUTDOWN		40
     75 #define PAL_PREFETCH_VISIBILITY	41
     76 
     77 /*
     78  * Architected stacked calling convention procedures.
     79  */
     80 #define PAL_COPY_PAL		256
     81 #define PAL_HALT_INFO		257
     82 #define PAL_TEST_PROC		258
     83 #define PAL_CACHE_READ		259
     84 #define PAL_CACHE_WRITE		260
     85 #define PAL_VM_TR_READ		261
     86 
     87 /*
     88  * Default physical address of the Processor Interrupt Block (PIB).
     89  * See also: IA-64 SDM, rev 1.1, volume 2, page 5-31.
     90  */
     91 #define	PAL_PIB_DEFAULT_ADDR	0x00000000FEE00000L
     92 
     93 struct ia64_pal_result {
     94 	int64_t		pal_status;
     95 	u_int64_t	pal_result[3];
     96 };
     97 
     98 extern struct ia64_pal_result
     99 	ia64_call_pal_static(u_int64_t proc, u_int64_t arg1,
    100 			     u_int64_t arg2, u_int64_t arg3);
    101 extern struct ia64_pal_result
    102 	ia64_call_pal_static_physical(u_int64_t proc, u_int64_t arg1,
    103 				      u_int64_t arg2, u_int64_t arg3);
    104 extern struct ia64_pal_result
    105 	ia64_call_pal_stacked(u_int64_t proc, u_int64_t arg1,
    106 			      u_int64_t arg2, u_int64_t arg3);
    107 extern struct ia64_pal_result
    108 	ia64_call_pal_stacked_physical(u_int64_t proc, u_int64_t arg1,
    109 				       u_int64_t arg2, u_int64_t arg3);
    110 
    111 #endif /* _MACHINE_PAL_H_ */
    112