1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 #ifndef _HOSTBRIDGE_H 28 #define _HOSTBRIDGE_H 29 30 #pragma ident "%Z%%M% %I% %E% SMI" 31 32 #include <libdevinfo.h> 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 #define HB_ENUMR_VERS 1 39 40 #define MAX_HBS 255 41 42 /* 43 * Solaris Drivers for hostbridge ASICs. 44 */ 45 #define SCHIZO "pcisch" 46 #define PSYCHO "pcipsy" 47 #define NPE "npe" 48 #define PCIE_PCI "pcie_pci" 49 #define PCI_PCI "pci_pci" 50 #define PCI "pci" 51 #define PX "px" 52 53 /* 54 * These #defines are special values of bus and root complex instance 55 * numbers, used in calls to did_create(). They're here because it's 56 * the hostbridge enumerator that generally establishes the did_t values 57 * at the top level. 58 */ 59 #define TRUST_BDF (-1) /* Believe the bus value in the reg property */ 60 #define NO_RC (-2) /* Not a pci-express bus, so no root complex */ 61 62 /* 63 * PCI-express bridges to PCI, root complex instance is set to 64 * (instance of the PCI-express side root complex - TO_PCI) 65 */ 66 #define TO_PCI (1000) 67 68 extern tnode_t *pcihostbridge_declare(topo_mod_t *, tnode_t *, di_node_t, 69 topo_instance_t); 70 extern tnode_t *pciexhostbridge_declare(topo_mod_t *, tnode_t *, di_node_t, 71 topo_instance_t); 72 extern tnode_t *pciexrc_declare(topo_mod_t *, tnode_t *, di_node_t, 73 topo_instance_t); 74 75 #ifdef __cplusplus 76 } 77 #endif 78 79 #endif /* _HOSTBRIDGE_H */ 80