1*1708Sstevel /* 2*1708Sstevel * CDDL HEADER START 3*1708Sstevel * 4*1708Sstevel * The contents of this file are subject to the terms of the 5*1708Sstevel * Common Development and Distribution License, Version 1.0 only 6*1708Sstevel * (the "License"). You may not use this file except in compliance 7*1708Sstevel * with the License. 8*1708Sstevel * 9*1708Sstevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*1708Sstevel * or http://www.opensolaris.org/os/licensing. 11*1708Sstevel * See the License for the specific language governing permissions 12*1708Sstevel * and limitations under the License. 13*1708Sstevel * 14*1708Sstevel * When distributing Covered Code, include this CDDL HEADER in each 15*1708Sstevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*1708Sstevel * If applicable, add the following below this CDDL HEADER, with the 17*1708Sstevel * fields enclosed by brackets "[]" replaced with your own identifying 18*1708Sstevel * information: Portions Copyright [yyyy] [name of copyright owner] 19*1708Sstevel * 20*1708Sstevel * CDDL HEADER END 21*1708Sstevel */ 22*1708Sstevel /* 23*1708Sstevel * Copyright (c) 1999-2001 by Sun Microsystems, Inc. 24*1708Sstevel * All rights reserved. 25*1708Sstevel */ 26*1708Sstevel 27*1708Sstevel #ifndef _DISPLAY_SUN4U_H 28*1708Sstevel #define _DISPLAY_SUN4U_H 29*1708Sstevel 30*1708Sstevel #pragma ident "%Z%%M% %I% %E% SMI" 31*1708Sstevel 32*1708Sstevel #include <pdevinfo_sun4u.h> 33*1708Sstevel 34*1708Sstevel #ifdef __cplusplus 35*1708Sstevel extern "C" { 36*1708Sstevel #endif 37*1708Sstevel 38*1708Sstevel /* 39*1708Sstevel * Define the memory decode bits for easier reading. These are from 40*1708Sstevel * the Sunfire Programmer's Manual. 41*1708Sstevel */ 42*1708Sstevel #define MEM_SIZE_64M 0x4 43*1708Sstevel #define MEM_SIZE_256M 0xb 44*1708Sstevel #define MEM_SIZE_1G 0xf 45*1708Sstevel #define MEM_SIZE_2G 0x2 46*1708Sstevel 47*1708Sstevel #define MEM_SPEED_50ns 0x0 48*1708Sstevel #define MEM_SPEED_60ns 0x3 49*1708Sstevel #define MEM_SPEED_70ns 0x2 50*1708Sstevel #define MEM_SPEED_80ns 0x1 51*1708Sstevel 52*1708Sstevel /* 53*1708Sstevel * If a QLC card is present in the system, the following values are needed 54*1708Sstevel * to decode what type of a QLC card it is. 55*1708Sstevel */ 56*1708Sstevel #define AMBER_SUBSYSTEM_ID 0x4082 57*1708Sstevel #define CRYSTAL_SUBSYSTEM_ID 0x4083 58*1708Sstevel 59*1708Sstevel #define AMBER_CARD_NAME "Amber" 60*1708Sstevel #define CRYSTAL_CARD_NAME "Crystal+" 61*1708Sstevel 62*1708Sstevel #define MAX_QLC_MODEL_LEN 10 63*1708Sstevel 64*1708Sstevel /* 65*1708Sstevel * Define strings in this structure as arrays instead of pointers so 66*1708Sstevel * that copying is easier. 67*1708Sstevel */ 68*1708Sstevel struct io_card { 69*1708Sstevel int display; /* Should we display this card? */ 70*1708Sstevel int node_id; /* Node ID */ 71*1708Sstevel int board; /* Board number */ 72*1708Sstevel char bus_type[MAXSTRLEN]; /* Type of bus this IO card is on */ 73*1708Sstevel int schizo_portid; /* portid of the Schizo for this card */ 74*1708Sstevel char pci_bus; /* PCI bus A or B */ 75*1708Sstevel int slot; /* Slot number */ 76*1708Sstevel char slot_str[MAXSTRLEN]; /* Slot description string */ 77*1708Sstevel int freq; /* Frequency (in MHz) */ 78*1708Sstevel char status[MAXSTRLEN]; /* Card status */ 79*1708Sstevel char name[MAXSTRLEN]; /* Card name */ 80*1708Sstevel char model[MAXSTRLEN]; /* Card model */ 81*1708Sstevel int dev_no; /* device number */ 82*1708Sstevel int func_no; /* function number */ 83*1708Sstevel char notes[MAXSTRLEN]; /* notes */ 84*1708Sstevel struct io_card *next; 85*1708Sstevel }; 86*1708Sstevel 87*1708Sstevel /* used to determine whether slot (int) or slot_str(char*) should be used */ 88*1708Sstevel #define PCI_SLOT_IS_STRING (-99) 89*1708Sstevel 90*1708Sstevel int display(Sys_tree *, Prom_node *, struct system_kstat_data *, int); 91*1708Sstevel 92*1708Sstevel #ifdef __cplusplus 93*1708Sstevel } 94*1708Sstevel #endif 95*1708Sstevel 96*1708Sstevel #endif /* _DISPLAY_SUN4U_H */ 97