4496171313bed39e96f21bc2f9faf2868e267ae3girish * CDDL HEADER START
4496171313bed39e96f21bc2f9faf2868e267ae3girish * The contents of this file are subject to the terms of the
4496171313bed39e96f21bc2f9faf2868e267ae3girish * Common Development and Distribution License (the "License").
4496171313bed39e96f21bc2f9faf2868e267ae3girish * You may not use this file except in compliance with the License.
4496171313bed39e96f21bc2f9faf2868e267ae3girish * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4496171313bed39e96f21bc2f9faf2868e267ae3girish * See the License for the specific language governing permissions
4496171313bed39e96f21bc2f9faf2868e267ae3girish * and limitations under the License.
4496171313bed39e96f21bc2f9faf2868e267ae3girish * When distributing Covered Code, include this CDDL HEADER in each
4496171313bed39e96f21bc2f9faf2868e267ae3girish * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4496171313bed39e96f21bc2f9faf2868e267ae3girish * If applicable, add the following below this CDDL HEADER, with the
4496171313bed39e96f21bc2f9faf2868e267ae3girish * fields enclosed by brackets "[]" replaced with your own identifying
4496171313bed39e96f21bc2f9faf2868e267ae3girish * information: Portions Copyright [yyyy] [name of copyright owner]
4496171313bed39e96f21bc2f9faf2868e267ae3girish * CDDL HEADER END
087113e1a972d4b6246cf32a83c330968117b93emb * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
4496171313bed39e96f21bc2f9faf2868e267ae3girish * Use is subject to license terms.
4496171313bed39e96f21bc2f9faf2868e267ae3girish * Sun4v Platform specific functions.
4496171313bed39e96f21bc2f9faf2868e267ae3girish * called when :
4496171313bed39e96f21bc2f9faf2868e267ae3girish * machine_type == huron
4496171313bed39e96f21bc2f9faf2868e267ae3girish#pragma ident "%Z%%M% %I% %E% SMI"
4496171313bed39e96f21bc2f9faf2868e267ae3girishhuron_get_slot_number(char *path, struct io_card *card)
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (0);
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (1);
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (2);
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (3);
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (0);
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (1);
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (-1);
4496171313bed39e96f21bc2f9faf2868e267ae3girish * add all io devices under pci in io list
4496171313bed39e96f21bc2f9faf2868e267ae3girish/* ARGSUSED */
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(pcih, PICL_PROP_DEVFS_PATH, parent_path,
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Walk through the children */
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(pcih, PICL_PROP_CHILD, &nodeh,
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, PICL_PROP_CLASSNAME,
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, PICL_PROP_PEER,
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, PICL_PROP_CHILD,
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, PICL_PROP_DEVFS_PATH,
4496171313bed39e96f21bc2f9faf2868e267ae3girish (void) strlcpy(pci_card.notes, path, sizeof (pci_card.notes));
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, PICL_PROP_NAME, &name,
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Figure NAC name */
4496171313bed39e96f21bc2f9faf2868e267ae3girish * Get the name of this card. Iif binding_name is found,
4496171313bed39e96f21bc2f9faf2868e267ae3girish * name will be <nodename>-<binding_name>
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, PICL_PROP_BINDING_NAME,
4496171313bed39e96f21bc2f9faf2868e267ae3girish * if compatible prop is found, name will be
4496171313bed39e96f21bc2f9faf2868e267ae3girish * <nodename>-<compatible>
4496171313bed39e96f21bc2f9faf2868e267ae3girish (void) strlcpy(pci_card.name, name, sizeof (pci_card.name));
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Get the model of this card */
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, OBP_PROP_MODEL,
4496171313bed39e96f21bc2f9faf2868e267ae3girish (void) strlcpy(pci_card.model, model, sizeof (pci_card.model));
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print NAC name */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print IO Type */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print Slot # */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print Parent Path */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Printf Card Name */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print Card Model */
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(nodeh, PICL_PROP_PEER, &nodeh,
4496171313bed39e96f21bc2f9faf2868e267ae3girish * local functions
4496171313bed39e96f21bc2f9faf2868e267ae3girish * add all io devices under pci in io list
4496171313bed39e96f21bc2f9faf2868e267ae3girish/* ARGSUSED */
4496171313bed39e96f21bc2f9faf2868e267ae3girishhuron_hw_rev_callback(picl_nodehdl_t pcih, void *args)
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval_by_name(pcih, PICL_PROP_DEVFS_PATH, path,
4496171313bed39e96f21bc2f9faf2868e267ae3girish revision = huron_get_int_propval(pcih, OBP_PROP_REVISION_ID,
4496171313bed39e96f21bc2f9faf2868e267ae3girish (void) snprintf(NAC, sizeof (NAC), "%s/%s%d", MOTHERBOARD,
4496171313bed39e96f21bc2f9faf2868e267ae3girish revision = huron_get_int_propval(pcih, OBP_PROP_REVISION_ID,
4496171313bed39e96f21bc2f9faf2868e267ae3girish revision = huron_get_int_propval(pcih, OBP_PROP_REVISION_ID,
4496171313bed39e96f21bc2f9faf2868e267ae3girish (void) snprintf(NAC, sizeof (NAC), "%s/%s", MOTHERBOARD,
4496171313bed39e96f21bc2f9faf2868e267ae3girish revision = huron_get_int_propval(pcih, OBP_PROP_REVISION_ID,
4496171313bed39e96f21bc2f9faf2868e267ae3girish (void) snprintf(NAC, sizeof (NAC), "%s/%s", MOTHERBOARD,
4496171313bed39e96f21bc2f9faf2868e267ae3girish revision = huron_get_int_propval(pcih, OBP_PROP_REVISION_ID,
4496171313bed39e96f21bc2f9faf2868e267ae3girish (void) snprintf(NAC, sizeof (NAC), "%s/%s", MOTHERBOARD,
4496171313bed39e96f21bc2f9faf2868e267ae3girish revision = huron_get_int_propval(pcih, OBP_PROP_REVISION_ID,
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = huron_get_first_compatible_value(pcih, &compatible);
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print NAC name */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print Device Path */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print Compatible # */
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* Print Revision */
4496171313bed39e96f21bc2f9faf2868e267ae3girish * return the first compatible value
4496171313bed39e96f21bc2f9faf2868e267ae3girishhuron_get_first_compatible_value(picl_nodehdl_t nodeh, char **outbuf)
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propinfo_by_name(nodeh, OBP_PROP_COMPATIBLE,
4496171313bed39e96f21bc2f9faf2868e267ae3girish /* get first string from table */
4496171313bed39e96f21bc2f9faf2868e267ae3girishhuron_get_int_propval(picl_nodehdl_t modh, char *prop_name, int *ret)
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propinfo_by_name(modh, prop_name, &pinfo, &proph);
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (0);
4496171313bed39e96f21bc2f9faf2868e267ae3girish * If it is not an int, uint or byte array prop, return failure
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (0);
4496171313bed39e96f21bc2f9faf2868e267ae3girish case sizeof (int8_t):
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval(proph, &int8v, sizeof (int8v));
4496171313bed39e96f21bc2f9faf2868e267ae3girish case sizeof (int16_t):
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval(proph, &int16v, sizeof (int16v));
4496171313bed39e96f21bc2f9faf2868e267ae3girish case sizeof (int32_t):
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval(proph, &int32v, sizeof (int32v));
4496171313bed39e96f21bc2f9faf2868e267ae3girish case sizeof (int64_t):
4496171313bed39e96f21bc2f9faf2868e267ae3girish err = picl_get_propval(proph, &int64v, sizeof (int64v));
4496171313bed39e96f21bc2f9faf2868e267ae3girish default: /* not supported size */
4496171313bed39e96f21bc2f9faf2868e267ae3girish return (0);