Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/bhnd/nvram/bhnd_nvram.h
Show First 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | BHND_NVRAM_SRC_UNKNOWN /**< No NVRAM source is directly | ||||
* BHND SoCs, but do not include an attached | * BHND SoCs, but do not include an attached | ||||
* SPROM, or programmed OTP. On such SoCs, | * SPROM, or programmed OTP. On such SoCs, | ||||
* NVRAM configuration for individual devices | * NVRAM configuration for individual devices | ||||
* is provided by a common platform NVRAM | * is provided by a common platform NVRAM | ||||
* device. | * device. | ||||
*/ | */ | ||||
} bhnd_nvram_src; | } bhnd_nvram_src; | ||||
/** Supported NVRAM formats. */ | |||||
typedef enum { | |||||
BHND_NVRAM_FMT_BCM = 0, /**< Broadcom NUL-delimited key=value pairs */ | |||||
BHND_NVRAM_FMT_TLV = 1, /**< CFE TLV encoding, as used on WGT634U */ | |||||
BHND_NVRAM_FMT_BTXT = 2, /**< Broadcom board text file. This is used | |||||
to provide external NVRAM data for some | |||||
fullmac WiFi devices. */ | |||||
BHND_NVRAM_FMT_SPROM = 3, /**< SPROM/OTP-specific encoding used by | |||||
Broadcom network adapters */ | |||||
BHND_NVRAM_FMT_CIS = 4, /**< A mostly CIS-compatible encoding used | |||||
on some Broadcom network adapters */ | |||||
BHND_NVRAM_FMT_UNKNOWN = 5 /**< Unknown or unrecognized format */ | |||||
} bhnd_nvram_format; | |||||
/** bhnd_nvram_type bit flags */ | |||||
enum { | |||||
BHND_NVRAM_TF_SIGNED = (1<<7), | |||||
}; | |||||
#define BHND_NVRAM_TYPE_ID_MASK 0xF | |||||
#define BHND_NVRAM_TYPE_FLAGS_MASK 0x70 | |||||
#define BHND_NVRAM_TYPE_ID(_id, _flags) \ | |||||
(((_id) & BHND_NVRAM_TYPE_ID_MASK) | \ | |||||
((_flags) & BHND_NVRAM_TYPE_FLAGS_MASK)) | |||||
/** Supported NVRAM data types */ | |||||
typedef enum { | |||||
BHND_NVRAM_TYPE_UINT8 = BHND_NVRAM_TYPE_ID(0, 0), /**< unsigned 8-bit integer */ | |||||
BHND_NVRAM_TYPE_UINT16 = BHND_NVRAM_TYPE_ID(1, 0), /**< unsigned 16-bit integer */ | |||||
BHND_NVRAM_TYPE_UINT32 = BHND_NVRAM_TYPE_ID(2, 0), /**< unsigned 32-bit integer */ | |||||
BHND_NVRAM_TYPE_INT8 = BHND_NVRAM_TYPE_ID(4, BHND_NVRAM_TF_SIGNED), /**< signed 8-bit integer */ | |||||
BHND_NVRAM_TYPE_INT16 = BHND_NVRAM_TYPE_ID(5, BHND_NVRAM_TF_SIGNED), /**< signed 16-bit integer */ | |||||
BHND_NVRAM_TYPE_INT32 = BHND_NVRAM_TYPE_ID(6, BHND_NVRAM_TF_SIGNED), /**< signed 32-bit integer */ | |||||
BHND_NVRAM_TYPE_CHAR = BHND_NVRAM_TYPE_ID(7, BHND_NVRAM_TF_SIGNED), /**< ASCII character */ | |||||
BHND_NVRAM_TYPE_CSTR = BHND_NVRAM_TYPE_ID(8, 0), /**< NUL-terminated C string */ | |||||
} bhnd_nvram_type; | |||||
#undef BHND_NVRAM_TYPE_ID_MASK | |||||
#undef BHND_NVRAM_TYPE_FLAGS_MASK | |||||
#undef BHND_NVRAM_TYPE_ID | |||||
#define BHND_NVRAM_SIGNED_TYPE(_type) \ | |||||
(((_type) & BHND_NVRAM_TF_SIGNED) == BHND_NVRAM_TF_SIGNED) | |||||
#endif /* _BHND_NVRAM_BHND_NVRAM_H_ */ | #endif /* _BHND_NVRAM_BHND_NVRAM_H_ */ |