#pragma ident "@(#)msi-props.txt 1.10 05/01/18 SMI" This document describes a set of MSI properties related to the Fire-based PCI Express host adaptors including Niagara2, Rock, etc. MSI related properties msi-address-ranges - Decoded MSI address ranges. Two tuples in the form: {pci-addr.hi, pci-addr.lo size} ... Each field in each tuple is an encoded integer. Describes the pci address ranges decoded as MSIs. Any write to an address within these ranges is considered an MSI/X transaction. The low order n bits of data selects which msi# is being targeted. The first tuple shall be the pci-mem32 entry. #msi - Number of MSI's (Required) A single encoded integer. Describes the number of unique MSI messages. Typically 256 for fire, etc. msi-data-mask - Optional property defines which MSI data bits are used to select the msi#. A single encoded integer. Describes the number of significant bits of MSI data used to select the msi#. Default is 0xff when absent. msi-ranges - Optional list of available msi numbers. Format is one or more tuples in the form: {msi#, #msis} Each field in the tuple is a single encoded integer. Describes the MSI numbers available to the client. For each tuple, the first number (msi#) is the base MSI number in the range. The second number is the span of this range. Thus, the value {0, 256} describes a range starting at 0 and ending at 255. Similarly, the value {128, 64} describes a range starting at 128 and ending at 191. If the property is absent, the default value is {0, 256} msi-eq-size - Optional number of records in MSI-EQ. A single encoded integer, containing the EQ size. Describes the size of the MSI-EQs in number of records in the buffer. Default is 256. This property is host adaptor specific. This definition applies to the fire family of host adaptors and to the vpci host adaptor. This property shall be absent if it doesn't apply. msix-data-width - Optional property describes the number of significant bits in the MSI-X data. (16 for Fire 1.0) A single encoded integer. Default value is 32. Must be published for Fire 1.0 as 16. NB: Fire 1.0 drops the upper 16 bits of MSI-X data. Thus, the upper 16 bits of the data won't appear in the MSI EQ data record, even if assigned by software. This property is host adaptor specific. This definition applies to the fire family of host adaptors and to the vpci host adaptor. This property shall be absent if it doesn't apply. #msi-eqs - Optional number of MSI EQs. A single encoded integer. Describes the number of MSI EQs available to the client. Default when absent is 36. This property is host adaptor specific. This definition applies to the fire family of host adaptors and to the vpci host adaptor. This property shall be absent if it doesn't apply. msi-eq-to-devino - Optional list of msi-eq to interrupt number mappings. Format is 1 or more tuples in the form: (msi-eq#, #msi-eqs, devino#) Each field in each tuple is an encoded integer. Describes the MSI-EQ numbers available to the client and the mapping from an MSI-EQ number to a device interrupt number (devino). The first field (msi-eq#) is the first MSI-EQ number available. The second field (#msi-eqs) is the number of MSI-EQs in this range. The third field is the first devino in this range. If the range (#msi-eqs) is > 1, then the entry is shorthand for a range of consecutive mappings. For each n: msi-eq# + n -> devino# + n where n varies from 0 to #msi-eqs - 1. Default when absent is a single tuple: {0, 36, 24} This property is host adaptor specific. This definition applies to the fire family of host adaptors and to the vpci host adaptor. This property shall be absent if it doesn't apply.