/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (c) 2024 Linaro Limited
 * Author: Raymond Mao <raymond.mao@linaro.org>
 */

#ifndef _SMBIOS_DEF_H_
#define _SMBIOS_DEF_H_

/*
 * BIOS characteristics
 */

#define BIOS_CHARACTERISTICS_PCI_SUPPORTED	0x80 /* BIT(7) */
#define BIOS_CHARACTERISTICS_UPGRADEABLE	0x800 /* BIT(11) */
#define BIOS_CHARACTERISTICS_SELECTABLE_BOOT	0x10000  /* BIT(16) */

#define BIOS_CHARACTERISTICS_EXT1_ACPI		1 /* BIT(0) */
#define BIOS_CHARACTERISTICS_EXT2_UEFI		8 /* BIT(3) */
#define BIOS_CHARACTERISTICS_EXT2_TARGET	4 /* BIT(2) */

/*
 * System Information
 */

#define SMBIOS_WAKEUP_TYPE_RESERVED		0
#define SMBIOS_WAKEUP_TYPE_OTHER		1
#define SMBIOS_WAKEUP_TYPE_UNKNOWN		2
#define SMBIOS_WAKEUP_TYPE_APM_TIMER		3
#define SMBIOS_WAKEUP_TYPE_MODEM_RING		4
#define SMBIOS_WAKEUP_TYPE_LAN_REMOTE		5
#define SMBIOS_WAKEUP_TYPE_POWER_SWITCH		6
#define SMBIOS_WAKEUP_TYPE_PCI_PME		7
#define SMBIOS_WAKEUP_TYPE_AC_POWER_RESTORED	8

/*
 * Baseboard Information
 */

#define SMBIOS_BOARD_FEAT_HOST_BOARD		1 /* BIT(0) */
#define SMBIOS_BOARD_FEAT_REQ_AUX		2 /* BIT(1) */
#define SMBIOS_BOARD_FEAT_REMOVABLE		4 /* BIT(2) */
#define SMBIOS_BOARD_FEAT_REPLACEABLE		8 /* BIT(3) */
#define SMBIOS_BOARD_FEAT_HOT_SWAPPABLE		16 /* BIT(4) */

#define SMBIOS_BOARD_TYPE_UNKNOWN		1
#define SMBIOS_BOARD_TYPE_OTHER			2
#define SMBIOS_BOARD_TYPE_SERVER_BLADE		3
#define SMBIOS_BOARD_TYPE_CON_SWITCH		4
#define SMBIOS_BOARD_TYPE_SM_MODULE		5
#define SMBIOS_BOARD_TYPE_PROCESSOR_MODULE	6
#define SMBIOS_BOARD_TYPE_IO_MODULE		7
#define SMBIOS_BOARD_TYPE_MEM_MODULE		8
#define SMBIOS_BOARD_TYPE_DAUGHTER_BOARD	9
#define SMBIOS_BOARD_TYPE_MOTHERBOARD		10
#define SMBIOS_BOARD_TYPE_PROC_MEM_MODULE	11
#define SMBIOS_BOARD_TYPE_PROC_IO_MODULE	12
#define SMBIOS_BOARD_TYPE_INTERCON		13

/*
 * System Enclosure or Chassis
 */
#define SMBIOS_ENCLOSURE_UNKNOWN	2
#define SMBIOS_ENCLOSURE_DESKTOP	3

#define SMBIOS_STATE_OTHER		1
#define SMBIOS_STATE_UNKNOWN		2
#define SMBIOS_STATE_SAFE		3
#define SMBIOS_STATE_WARNING		4
#define SMBIOS_STATE_CRITICAL		5
#define SMBIOS_STATE_NONRECOVERABLE	6

#define SMBIOS_SECURITY_OTHER		1
#define SMBIOS_SECURITY_UNKNOWN		2
#define SMBIOS_SECURITY_NONE		3
#define SMBIOS_SECURITY_EXTINT_LOCK	4
#define SMBIOS_SECURITY_EXTINT_EN	5

#define SMBIOS_ENCLOSURE_OEM_UND	0
#define SMBIOS_ENCLOSURE_HEIGHT_UND	0
#define SMBIOS_POWCORD_NUM_UND		0
#define SMBIOS_ELEMENT_TYPE_SELECT	0x80 /* BIT(7) */

/*
 * Processor Information
 */

#define SMBIOS_PROCESSOR_TYPE_OTHER	1
#define SMBIOS_PROCESSOR_TYPE_UNKNOWN	2
#define SMBIOS_PROCESSOR_TYPE_CENTRAL	3
#define SMBIOS_PROCESSOR_TYPE_MATH	4
#define SMBIOS_PROCESSOR_TYPE_DSP	5
#define SMBIOS_PROCESSOR_TYPE_VIDEO	6

#define SMBIOS_PROCESSOR_STATUS_UNKNOWN		0
#define SMBIOS_PROCESSOR_STATUS_ENABLED		1
#define SMBIOS_PROCESSOR_STATUS_DISABLED_USER	2
#define SMBIOS_PROCESSOR_STATUS_DISABLED_BIOS	3
#define SMBIOS_PROCESSOR_STATUS_IDLE		4
#define SMBIOS_PROCESSOR_STATUS_OTHER		7

#define SMBIOS_PROCESSOR_UPGRADE_OTHER		1
#define SMBIOS_PROCESSOR_UPGRADE_UNKNOWN	2
#define SMBIOS_PROCESSOR_UPGRADE_NONE		6

#define SMBIOS_PROCESSOR_FAMILY_OTHER	1
#define SMBIOS_PROCESSOR_FAMILY_UNKNOWN	2
#define SMBIOS_PROCESSOR_FAMILY_RSVD	255
#define SMBIOS_PROCESSOR_FAMILY_ARMV7	256
#define SMBIOS_PROCESSOR_FAMILY_ARMV8	257
#define SMBIOS_PROCESSOR_FAMILY_RV32	512
#define SMBIOS_PROCESSOR_FAMILY_RV64	513

#define SMBIOS_PROCESSOR_FAMILY_EXT	0xfe

/* Processor Characteristics */
#define SMBIOS_PROCESSOR_RSVD		1 /* BIT(0) */
#define SMBIOS_PROCESSOR_UND		2 /* BIT(1) */
#define SMBIOS_PROCESSOR_64BIT		4 /* BIT(2) */
#define SMBIOS_PROCESSOR_MULTICORE	8 /* BIT(3) */
#define SMBIOS_PROCESSOR_HWTHREAD	16 /* BIT(4) */
#define SMBIOS_PROCESSOR_EXEC_PROT	32 /* BIT(5) */
#define SMBIOS_PROCESSOR_ENH_VIRT	64 /* BIT(6) */
#define SMBIOS_PROCESSOR_POW_CON	0x80 /* BIT(7) */
#define SMBIOS_PROCESSOR_128BIT		0x100 /* BIT(8) */
#define SMBIOS_PROCESSOR_ARM64_SOCID	0x200 /* BIT(9) */

/*
 * Cache Information
 */

#define SMBIOS_CACHE_SIZE_EXT_KB (2047 * 1024) /* 2047 MiB */
#define SMBIOS_CACHE_HANDLE_NONE 0xffff

/* System Cache Type */
#define SMBIOS_CACHE_SYSCACHE_TYPE_OTHER	1
#define SMBIOS_CACHE_SYSCACHE_TYPE_UNKNOWN	2
#define SMBIOS_CACHE_SYSCACHE_TYPE_INST		3
#define SMBIOS_CACHE_SYSCACHE_TYPE_DATA		4
#define SMBIOS_CACHE_SYSCACHE_TYPE_UNIFIED	5

/* Cache Speed */
#define SMBIOS_CACHE_SPEED_UNKNOWN	0

/* SRAM Type */
#define SMBIOS_CACHE_SRAM_TYPE_UNKNOWN	2 /* BIT(1) */

/* Error Correction Type */
#define SMBIOS_CACHE_ERRCORR_OTHER	1
#define SMBIOS_CACHE_ERRCORR_UNKNOWN	2
#define SMBIOS_CACHE_ERRCORR_NONE	3
#define SMBIOS_CACHE_ERRCORR_PARITY	4
#define SMBIOS_CACHE_ERRCORR_SBITECC	5
#define SMBIOS_CACHE_ERRCORR_MBITECC	6

/* Cache Configuration */
#define SMBIOS_CACHE_LEVEL_1	0
#define SMBIOS_CACHE_LEVEL_2	1
#define SMBIOS_CACHE_LEVEL_3	2
#define SMBIOS_CACHE_LEVEL_4	3
#define SMBIOS_CACHE_LEVEL_5	4
#define SMBIOS_CACHE_LEVEL_6	5
#define SMBIOS_CACHE_LEVEL_7	6
#define SMBIOS_CACHE_LEVEL_8	7
#define SMBIOS_CACHE_SOCKETED	8 /* BIT(3) */
#define SMBIOS_CACHE_LOCATE_EXTERNAL	32 /* BIT(5) */
#define SMBIOS_CACHE_LOCATE_RESERVED	64 /* BIT(6) */
#define SMBIOS_CACHE_LOCATE_UNKNOWN	96 /* (BIT(5) | BIT(6)) */
#define SMBIOS_CACHE_ENABLED	0x80 /* BIT(7) */
#define SMBIOS_CACHE_OP_WB	0x100 /* BIT(8), Write Back */
#define SMBIOS_CACHE_OP_VAR	0x200 /* BIT(9), Varies with Memory Address */
#define SMBIOS_CACHE_OP_UND	0x300 /* (BIT(8) | BIT(9)), Unknown*/

/* Cache Granularity */
#define SMBIOS_CACHE_GRANU_1K	0
#define SMBIOS_CACHE_GRANU_64K	1

/* Cache Associativity */
#define SMBIOS_CACHE_ASSOC_OTHER	1
#define SMBIOS_CACHE_ASSOC_UNKNOWN	2
#define SMBIOS_CACHE_ASSOC_DMAPPED	3
#define SMBIOS_CACHE_ASSOC_2WAY		4
#define SMBIOS_CACHE_ASSOC_4WAY		5
#define SMBIOS_CACHE_ASSOC_FULLY	6
#define SMBIOS_CACHE_ASSOC_8WAY		7
#define SMBIOS_CACHE_ASSOC_16WAY	8
#define SMBIOS_CACHE_ASSOC_12WAY	9
#define SMBIOS_CACHE_ASSOC_24WAY	10
#define SMBIOS_CACHE_ASSOC_32WAY	11
#define SMBIOS_CACHE_ASSOC_48WAY	12
#define SMBIOS_CACHE_ASSOC_64WAY	13
#define SMBIOS_CACHE_ASSOC_20WAY	14

/*
 * System Slot
 */

/* Slot Type */
#define SMBIOS_SYSSLOT_TYPE_OTHER	1
#define SMBIOS_SYSSLOT_TYPE_UNKNOWN	2
#define SMBIOS_SYSSLOT_TYPE_ISA		3	/* ISA */
#define SMBIOS_SYSSLOT_TYPE_PCI		6	/* PCI */
#define SMBIOS_SYSSLOT_TYPE_PCMCIA	7	/* PCMCIA */
#define SMBIOS_SYSSLOT_TYPE_PCIE	0xa5	/* PCI Express */
#define SMBIOS_SYSSLOT_TYPE_PCIEX1	0xa6	/* PCI Express x1 */
#define SMBIOS_SYSSLOT_TYPE_PCIEX2	0xa7	/* PCI Express x2 */
#define SMBIOS_SYSSLOT_TYPE_PCIEX4	0xa8	/* PCI Express x4 */
#define SMBIOS_SYSSLOT_TYPE_PCIEX8	0xa9	/* PCI Express x8 */
#define SMBIOS_SYSSLOT_TYPE_PCIEX16	0xaa	/* PCI Express x16 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN2	0xab	/* PCI Express Gen 2 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN2X1	0xac	/* PCI Express Gen 2 x1 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN2X2	0xad	/* PCI Express Gen 2 x2 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN2X4	0xae	/* PCI Express Gen 2 x4 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN2X8	0xaf	/* PCI Express Gen 2 x8 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN2X16	0xb0	/* PCI Express Gen 2 x16 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN3	0xb1	/* PCI Express Gen 3 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN3X1	0xb2	/* PCI Express Gen 3 x1 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN3X2	0xb3	/* PCI Express Gen 3 x2 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN3X4	0xb4	/* PCI Express Gen 3 x4 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN3X8	0xb5	/* PCI Express Gen 3 x8 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN3X16	0xb6	/* PCI Express Gen 3 x16 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN4	0xb8	/* PCI Express Gen 4 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN4X1	0xb9	/* PCI Express Gen 4 x1 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN4X2	0xba	/* PCI Express Gen 4 x2 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN4X4	0xbb	/* PCI Express Gen 4 x4 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN4X8	0xbc	/* PCI Express Gen 4 x8 */
#define SMBIOS_SYSSLOT_TYPE_PCIEGEN4X16	0xbd	/* PCI Express Gen 4 x16 */

/* Slot Data Bus Width */
#define SMBIOS_SYSSLOT_WIDTH_OTHER	1
#define SMBIOS_SYSSLOT_WIDTH_UNKNOWN	2
#define SMBIOS_SYSSLOT_WIDTH_8BIT	3
#define SMBIOS_SYSSLOT_WIDTH_16BIT	4
#define SMBIOS_SYSSLOT_WIDTH_32BIT	5
#define SMBIOS_SYSSLOT_WIDTH_64BIT	6
#define SMBIOS_SYSSLOT_WIDTH_128BIT	7
#define SMBIOS_SYSSLOT_WIDTH_1X		8
#define SMBIOS_SYSSLOT_WIDTH_2X		9
#define SMBIOS_SYSSLOT_WIDTH_4X		10
#define SMBIOS_SYSSLOT_WIDTH_8X		11
#define SMBIOS_SYSSLOT_WIDTH_12X	12
#define SMBIOS_SYSSLOT_WIDTH_16X	13
#define SMBIOS_SYSSLOT_WIDTH_32X	14

/* Current Usage */
#define SMBIOS_SYSSLOT_USAGE_OTHER	1
#define SMBIOS_SYSSLOT_USAGE_UNKNOWN	2
#define SMBIOS_SYSSLOT_USAGE_AVAILABLE	3
#define SMBIOS_SYSSLOT_USAGE_INUSE	4
#define SMBIOS_SYSSLOT_USAGE_NA		5

/* Slot Length */
#define SMBIOS_SYSSLOT_LENG_OTHER	1
#define SMBIOS_SYSSLOT_LENG_UNKNOWN	2
#define SMBIOS_SYSSLOT_LENG_SHORT	3
#define SMBIOS_SYSSLOT_LENG_LONG	4
#define SMBIOS_SYSSLOT_LENG_2_5INDRV	5
#define SMBIOS_SYSSLOT_LENG_3_5INDRV	6

/*  Slot Characteristics 1 */
#define SMBIOS_SYSSLOT_CHAR_UND		1 /* BIT(0) */
#define SMBIOS_SYSSLOT_CHAR_5V		2 /* BIT(1) */
#define SMBIOS_SYSSLOT_CHAR_3_3V	4 /* BIT(2) */
#define SMBIOS_SYSSLOT_CHAR_SHARED	8 /* BIT(3) */
#define SMBIOS_SYSSLOT_CHAR_PCCARD16	16 /* BIT(4) */
#define SMBIOS_SYSSLOT_CHAR_PCCARDBUS	32 /* BIT(5) */
#define SMBIOS_SYSSLOT_CHAR_PCCARDZV	64 /* BIT(6) */
#define SMBIOS_SYSSLOT_CHAR_PCCARDMRR	0x80 /* BIT(7) */

/* Slot Characteristics 2 */
#define SMBIOS_SYSSLOT_CHAR_PCIPME	1 /* BIT(0) */
#define SMBIOS_SYSSLOT_CHAR_HOTPLUG	2 /* BIT(1) */
#define SMBIOS_SYSSLOT_CHAR_PCISMB	4 /* BIT(2) */
#define SMBIOS_SYSSLOT_CHAR_PCIBIF	8 /* BIT(3) */
#define SMBIOS_SYSSLOT_CHAR_ASYNCRM	16 /* BIT(4) */
#define SMBIOS_SYSSLOT_CHAR_FBCXL1	32 /* BIT(5) */
#define SMBIOS_SYSSLOT_CHAR_FBCXL2	64 /* BIT(6) */
#define SMBIOS_SYSSLOT_CHAR_FBCXL3	0x80 /* BIT(7) */

/* Slot segment group number */
#define SMBIOS_SYSSLOT_SGGNUM_UND	0

/* Physical Memory Array */

/* Location */
#define SMBIOS_MA_LOCATION_OTHER	1
#define SMBIOS_MA_LOCATION_UNKNOWN	2
#define SMBIOS_MA_LOCATION_MOTHERBOARD	3

/* Use */
#define SMBIOS_MA_USE_OTHER		1
#define SMBIOS_MA_USE_UNKNOWN		2
#define SMBIOS_MA_USE_SYSTEM		3
#define SMBIOS_MA_USE_VIDEO		4
#define SMBIOS_MA_USE_FLASH		5
#define SMBIOS_MA_USE_NVRAM		6
#define SMBIOS_MA_USE_CACHE		7

/* Error Correction Type */
#define SMBIOS_MA_ERRCORR_OTHER		1
#define SMBIOS_MA_ERRCORR_UNKNOWN	2
#define SMBIOS_MA_ERRCORR_NONE		3
#define SMBIOS_MA_ERRCORR_PARITY	4
#define SMBIOS_MA_ERRCORR_SBITECC	5
#define SMBIOS_MA_ERRCORR_MBITECC	6
#define SMBIOS_MA_ERRCORR_CRC		7

/* Error Information Handle */
#define SMBIOS_MA_ERRINFO_NONE		0xFFFE
#define SMBIOS_MA_ERRINFO_NOERR		0xFFFF

/* Memory Device */

/* Size */

#define SMBIOS_MD_SIZE_UNKNOWN	0xFFFF
#define SMBIOS_MD_SIZE_EXT	0x7FFF

/* Form Factor */
#define SMBIOS_MD_FF_OTHER	1
#define SMBIOS_MD_FF_UNKNOWN	2
#define SMBIOS_MD_FF_SIMM	3
#define SMBIOS_MD_FF_SIP	4
#define SMBIOS_MD_FF_CHIP	5
#define SMBIOS_MD_FF_DIP	6
#define SMBIOS_MD_FF_ZIP	7
#define SMBIOS_MD_FF_PROPCARD	8
#define SMBIOS_MD_FF_DIMM	9
#define SMBIOS_MD_FF_TSOP	10
#define SMBIOS_MD_FF_ROC	11
#define SMBIOS_MD_FF_RIMM	12
#define SMBIOS_MD_FF_SODIMM	13
#define SMBIOS_MD_FF_SRIMM	14
#define SMBIOS_MD_FF_FBDIMM	15
#define SMBIOS_MD_FF_DIE	16

/* Device set */
#define SMBIOS_MD_DEVSET_NONE		0
#define SMBIOS_MD_DEVSET_UNKNOWN	0xFF

/* Speed */
#define SMBIOS_MD_SPEED_UNKNOWN	0
#define SMBIOS_MD_SPEED_EXT	0xFFFF

/* Attributes */
#define SMBIOS_MD_ATTR_RANK_UNKNOWN	0

/* Configured Memory Speed */
#define SMBIOS_MD_CONFSPEED_UNKNOWN	0
#define SMBIOS_MD_CONFSPEED_EXT		0xFFFF

/* Voltage */
#define SMBIOS_MD_VOLTAGE_UNKNOWN	0

/* Type */
#define SMBIOS_MD_TYPE_OTHER	1
#define SMBIOS_MD_TYPE_UNKNOWN	2
#define SMBIOS_MD_TYPE_DRAM	3
#define SMBIOS_MD_TYPE_EDRAM	4
#define SMBIOS_MD_TYPE_VRAM	5
#define SMBIOS_MD_TYPE_SRAM	6
#define SMBIOS_MD_TYPE_RAM	7
#define SMBIOS_MD_TYPE_ROM	8
#define SMBIOS_MD_TYPE_FLASH	9
#define SMBIOS_MD_TYPE_EEPROM	10
#define SMBIOS_MD_TYPE_FEPROM	11
#define SMBIOS_MD_TYPE_EPROM	12
#define SMBIOS_MD_TYPE_CDRAM	13
#define SMBIOS_MD_TYPE_3DRAM	14
#define SMBIOS_MD_TYPE_SDRAM	15
#define SMBIOS_MD_TYPE_SGRAM	16
#define SMBIOS_MD_TYPE_RDRAM	17
#define SMBIOS_MD_TYPE_DDR	18
#define SMBIOS_MD_TYPE_DDR2	19
#define SMBIOS_MD_TYPE_DDR2FBD	20
#define SMBIOS_MD_TYPE_RSVD1	21
#define SMBIOS_MD_TYPE_RSVD2	22
#define SMBIOS_MD_TYPE_DSVD3	23
#define SMBIOS_MD_TYPE_DDR3	24
#define SMBIOS_MD_TYPE_FBD2	25
#define SMBIOS_MD_TYPE_DDR4	26
#define SMBIOS_MD_TYPE_LPDDR	27
#define SMBIOS_MD_TYPE_LPDDR2	28
#define SMBIOS_MD_TYPE_LPDDR3	29
#define SMBIOS_MD_TYPE_LPDDR4	30
#define SMBIOS_MD_TYPE_LNVD	31
#define SMBIOS_MD_TYPE_HBM	32
#define SMBIOS_MD_TYPE_HBM2	33
#define SMBIOS_MD_TYPE_DDR5	34
#define SMBIOS_MD_TYPE_LPDDR5	35
#define SMBIOS_MD_TYPE_HBM3	36

/* Type Detail */
#define SMBIOS_MD_TD_RSVD	1 /* BIT(0), set to 0 */
#define SMBIOS_MD_TD_OTHER	2 /* BIT(1) */
#define SMBIOS_MD_TD_UNKNOWN	4 /* BIT(2) */
#define SMBIOS_MD_TD_FP		8 /* BIT(3) */
#define SMBIOS_MD_TD_SC		0x10 /* BIT(4) */
#define SMBIOS_MD_TD_PS		0x20 /* BIT(5) */
#define SMBIOS_MD_TD_RAMBUS	0x40 /* BIT(6) */
#define SMBIOS_MD_TD_SYNC	0x80 /* BIT(7) */
#define SMBIOS_MD_TD_CMOS	0x100 /* BIT(8) */
#define SMBIOS_MD_TD_EDO	0x200 /* BIT(9) */
#define SMBIOS_MD_TD_WINDRAM	0x400 /* BIT(10) */
#define SMBIOS_MD_TD_CACHEDRAM	0x800 /* BIT(11) */
#define SMBIOS_MD_TD_NV		0x1000 /* BIT(12) */
#define SMBIOS_MD_TD_RGSTD	0x2000 /* BIT(13) */
#define SMBIOS_MD_TD_UNRGSTD	0x4000 /* BIT(14) */
#define SMBIOS_MD_TD_LRDIMM	0x8000 /* BIT(15) */

/* Technology */
#define SMBIOS_MD_TECH_OTHER	1
#define SMBIOS_MD_TECH_UNKNOWN	2
#define SMBIOS_MD_TECH_DRAM	3
#define SMBIOS_MD_TECH_NVDIMMN	4
#define SMBIOS_MD_TECH_NVDIMMF	5
#define SMBIOS_MD_TECH_NVDIMMP	6
#define SMBIOS_MD_TECH_OPTANE	7

/* Operating Mode Capability */
#define SMBIOS_MD_OPMC_RSVD	1 /* BIT(0), set to 0 */
#define SMBIOS_MD_OPMC_OTHER	2 /* BIT(1) */
#define SMBIOS_MD_OPMC_UNKNOWN	4 /* BIT(2) */
#define SMBIOS_MD_OPMC_VM	8 /* BIT(3) */
#define SMBIOS_MD_OPMC_BYTEAPM	0x10 /* BIT(4) */
#define SMBIOS_MD_OPMC_BLKAPM	0x20 /* BIT(5) */
/* Bit 6:15 Reserved, set to 0 */

/* Non-volatile / Volatile / Cache / Logical portion Size */
#define SMBIOS_MD_PORT_SIZE_NONE	0
#define SMBIOS_MD_PORT_SIZE_UNKNOWN_HI	0xFFFFFFFF
#define SMBIOS_MD_PORT_SIZE_UNKNOWN_LO	0xFFFFFFFF
#define SMBIOS_MS_PORT_SIZE_UNKNOWN	0xFFFFFFFFFFFFFFFF

/* Error Information Handle */
#define SMBIOS_MD_ERRINFO_NONE		0xFFFE
#define SMBIOS_MD_ERRINFO_NOERR		0xFFFF

/* Memory Array Mapped Address */

/* Partition Width */
#define SMBIOS_MAMA_PW_DEF	1 /* not partitioned */

#endif /* _SMBIOS_DEF_H_ */
