/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_PDA_H
#define _SYS_PDA_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* Contains definitions used for PDA (Post Descriptor Array) [post2obp]
* support.
*
* XXX - These data structures is defined in SSP-land in:
* src/post/export/xf_postif.h. It is not anticipated
* that any future changes will be made to this data
* structure so we'll allow this hack on this go around.
*/
typedef struct {
} board_desc_t;
typedef struct {
/*
* The three lsb of bada_proc holds the ecache size of that proc
* module, as (log-base-2 - 19), so 1/2 MB is 0, 1 MB is 1, ...
* 32 MB is 6. 7 is a bogus value.
*/
typedef struct {
/*
* One bad page offset per
* mgroup is allowed. No
* bad page if < 0.
*/
/*
* BDA nibble status definitions:
* These are ordered in terms of preserving interesting information
* in POST displays where all configurations are displayed in a
* single value. The highest value for a resource over all
* configurations is shown.
* Of course, this is just for help to engineers/technicians in
* understanding what happened; for the most part, everything
* except "GOOD" is just different flavors of "BAD".
* Note the special macro SET_BDA_NBL_CRUNCH below which requires
* that BDAN_CRUNCH be 0.
*/
/* Macros for accessing BDA nibbles */
{ \
}
/*
* This exists to keep lint from complaining about statements with
* null efect when we OR in a constant 0 in SET_BDA_NBL. It's a pain,
* but it does save the code optimizer some work. ;-{
*/
/* Definitions for nibbles in the bda_board element: */
/*
* BDAN_RED if anything red on board, or board is BDAN_EXCLUDED;
* otherwise BDAN_GOOD
*/
/*
* Macro BDA_PAGESHIFT hides Solaris page size to Starfire POST, as POST
* assumes Solaris basic page size as 8K.
* Note: Only BDA_PAGESHIFT is used, BDA_PAGESIZE is added for readability.
*/
typedef struct { /* Memory Total Descriptor */
typedef struct { /* Chunk Descriptor */
} MemChunk_t;
typedef struct {
/* [5:4] = bus shuffle mode */
/*
* Array of descriptors of existing memory.
* Number of descriptors is given in memtotal.NumChunks.
*/
#ifdef _KERNEL
/*
* Following definitions in support of DR.
*/
typedef void *pda_handle_t;
extern pda_handle_t pda_open();
#endif /* _KERNEL */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_PDA_H */