/*
* 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
* or http://www.opensolaris.org/os/licensing.
* 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 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
#include <sys/types.h>
#include <mcamd_api.h>
static struct mcproptostr {
mcamd_propcode_t code;
const char *name;
} _propstrings[] = {
/*
* Common codes
*/
{ MCAMD_PROP_NUM, MCAMD_PROPSTR_NUM },
{ MCAMD_PROP_SIZE, MCAMD_PROPSTR_SIZE },
{ MCAMD_PROP_BASE_ADDR, MCAMD_PROPSTR_BASE_ADDR },
/*
* Memory controller properties
*/
{ MCAMD_PROP_REV, MCAMD_PROPSTR_REV },
{ MCAMD_PROP_LIM_ADDR, MCAMD_PROPSTR_LIM_ADDR },
{ MCAMD_PROP_ILEN, MCAMD_PROPSTR_ILEN },
{ MCAMD_PROP_ILSEL, MCAMD_PROPSTR_ILSEL },
{ MCAMD_PROP_CSINTLVFCTR, MCAMD_PROPSTR_CSINTLVFCTR },
{ MCAMD_PROP_ACCESS_WIDTH, MCAMD_PROPSTR_ACCESS_WIDTH },
{ MCAMD_PROP_CSBANKMAPREG, MCAMD_PROPSTR_CSBANKMAPREG },
{ MCAMD_PROP_BANKSWZL, MCAMD_PROPSTR_BANKSWZL },
{ MCAMD_PROP_DRAMHOLE_SIZE, MCAMD_PROPSTR_DRAMHOLE_SIZE },
{ MCAMD_PROP_MOD64MUX, MCAMD_PROPSTR_MOD64MUX },
{ MCAMD_PROP_SPARECS, MCAMD_PROPSTR_SPARECS },
{ MCAMD_PROP_BADCS, MCAMD_PROPSTR_BADCS },
/*
* Chip-select properties
*/
{ MCAMD_PROP_MASK, MCAMD_PROPSTR_MASK },
{ MCAMD_PROP_CSBE, MCAMD_PROPSTR_CSBE },
{ MCAMD_PROP_SPARE, MCAMD_PROPSTR_SPARE },
{ MCAMD_PROP_TESTFAIL, MCAMD_PROPSTR_TESTFAIL },
{ MCAMD_PROP_CSDIMM1, MCAMD_PROPSTR_CSDIMM1 },
{ MCAMD_PROP_CSDIMM2, MCAMD_PROPSTR_CSDIMM2 },
{ MCAMD_PROP_DIMMRANK, MCAMD_PROPSTR_DIMMRANK },
};
static const int _nprop = sizeof (_propstrings) /
sizeof (struct mcproptostr);
const char *
mcamd_get_propname(mcamd_propcode_t code)
{
int i;
for (i = 0; i < _nprop; i++) {
if (_propstrings[i].code == code)
return (_propstrings[i].name);
}
return (NULL);
}