2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. 2N/A * (SUN_OEM_PCIEXRC) records. Each type 138 record can either represent 2N/A * a baseboard record or another type 138 record. 2N/A * x86pi_gen_hbr() is called when a new hostbridge node needs to be created.. 2N/A * It then searches all the type 138 records that connected to it. For each 2N/A * of the records, bdf is compared to find a matching di_node. If the 2N/A * di_node is a pciex root port, a pciexrc (bad name!) node will be created. 2N/A * When pciexrc creation is done, or the di_node is a pcibus, in either 2N/A * The enumeration uses did routines heavily, which requires a did hash 2N/A * pointer stored in x86pi's module-specific area. 2N/A const char *f =
"x86pi_hbr_enum_init";
2N/A "%s: %s enumerator could not load %s.\n",
2N/A const char *f =
"pciexrc_process";
2N/A * Let did set the hostbridge properties excluding FRU and label. 2N/A "%s: create child range for %s failed: %s\n",
2N/A * pcibus enumerator requires di_node_t be set in node specific 2N/A * Let did set the RC properties excluding FRU, and label. 2N/A "%s: create child range for %s failed: %s\n",
2N/A * Let did set the hostbridge properties excluding FRU and label. 2N/A const char *f =
"x86pi_gen_hbr";
2N/A /* create and bind the "hostbridge" node */ 2N/A /* USB enumeration */ 2N/A "%s: could not create usb range: %s\n", f,