Sun-Fire-X4500-hc-topology.xmlgen revision 940d71d237794874e18a0eb72f6564821a823517
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (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 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#pragma ident "%Z%%M% %I% %E% SMI"
#
# X4500: platform specific begin
"prop_name" => "sfx4500",
"num_bays" => "48",
"bay_label" => "HD_ID_"};
# X4500: platform specific end
sub Usage()
{
"-i <input_xml_file> -o <output_xml_file>\n";
}
# Define properties associated with LED manipulation.
# We have three LEDs per disk: Present (PRSNT), OK-to-remove (OK2RM), and fault.
# We track the following states (absent present configured unconfigured) via
sub calc_sfx_prop
{
my $name = shift;
my $bay = shift;
my $sid = shift;
my @names = (
"+PRSNT", "-PRSNT",
"+OK2RM", "-OK2RM",
"+FAULT", "-FAULT");
my @masks = (
"amask=0x0001", "dmask=0x0001",
"amask=0x0008", "dmask=0x0008",
"amask=0x0002", "dmask=0x0002");
my @states = (
"absent>present", "present>configured",
"configured>unconfigured", "unconfigured>configured",
"unconfigured>absent", "configured>absent",
"present>absent", "absent>configured");
my @actions = (
"+PRSNT&+OK2RM", "+PRSNT&-OK2RM",
"+OK2RM", "-OK2RM",
"-OK2RM&-PRSNT", "-OK2RM&-PRSNT",
"-OK2RM&-PRSNT", "-OK2RM&+PRSNT");
" <propgroup name='%s-properties' version='1' " .
" <propval name='fru-update-action' type='string' " .
for ($i = 0; $i < 6; $i++) {
" <propval name='indicator-name-%d' type='string' " .
" <propval name='indicator-action-%d' " .
"type='string' value='ipmi:state sid=%d %s' />\n",
}
for ($i = 0; $i < 8; $i++) {
" <propval name='indicator-rule-states-%d' " .
" <propval name='indicator-rule-actions-%d' " .
}
" </propgroup>\n\n";
}
sub calc_nodes
{
# X4500: platform specific begin
# X4500: platform specific end
# X4500: platform specific begin
# set hba path, target path, bay path, and attachment point
# X4500: platform specific end
" <propgroup name='protocol' version='1' " .
"name-stability='Private' data-stability='Private' >\n";
" <propval name='label' type='string' " .
"value='%s%d' />\n",
" </propgroup>\n";
" <propgroup name='io' version='1' " .
"name-stability='Private' data-stability='Private' >\n";
" <propval name='ap-path' type='string' " .
" </propgroup>\n";
# platform specific LED support
" <propgroup name='binding' version='1' " .
"name-stability='Private' data-stability='Private' >\n";
" <propval name='occupant-path' type='string' " .
" </propgroup>\n";
}
}
exit (1);
}
exit (1);
}
my $in_chassis_range = 0;
$in_chassis_range = 1;
}
last;
}
}
}