fire.esc revision 0890ae4ef424a732c8f453aac6765c617daf8a24
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (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 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Eversholt rules for the Fire nexus driver
*/
/*
* Test for primary or secondary ereports
*/
/*
* payload: imu-rds or imu-scs
*
*
* PRM 2.0, pg 227-228
* REQ_ID field: bits [47:32]
*
* Example:
* 0x7766554433221100
* ^^^^
*/
( (payloadprop("primary")) && \
== ((b << 8) | (d << 3) | f)) \
)
/*
* payload: mmu-tfsr
*
* Extract the request id, the BDF value, in the MMU TFSR register
*
* PRM 2.0, pg 243
* Request ID: bits 15:0
*
* Example:
* 0x7766554433221100
* ^^^^
*/
( (payloadprop("primary")) && \
)
/*
* Fatal JBC ereport: (mb_pea, cpe, ape, pio_cpe, jtceew, jtceei, jtceer)
* ebus_to ereport:
* The fmri of the ereport is ioboard0/hostbridge0
*
* Other ereports:
* The fmri is ioboard0/hostbridge0/pciexrc[0-1]
*
*/
/*
* DMC ereports
*
*/
/*
* TLU Other Event ereports
*
*/
/*
* TLU Uncorrectable and Correctable ereports
*/
/*
* Fire Fabric ereport
* Whenever a leaf device sends an error message (fatal, non-fatal, or CE) to
* root complex, the nexus driver publishes this ereport to log the ereport.
*/
/*
* A faulty Fire hostbridge may cause (* may cause PCI-E abort):
*
* - the following Jbus consistency errors :
* - : jbus unmapped address errors. jue*, pio_unmap, pio_unmap_rd
* - : jbus timeout. jte*
* - : scoreboard timeout errors jtceew,i,r
* - : jbus bus error. jbe*:
* - : illegal coherency install state error. icise*
* - : bad jbus port ijp
* - : bad jbus command bjc
* - : illegal byte enables ill_bmw, ill_bmr*
* - : unsolicited read or intr unsol_rd, insol_intr
* - merge buffer errors mb_pea,w,r
* - mmu data parity errors ttc_dpe*, tbw_dpe*
* - misc egress eru, ero, emp, epe, erp, eip
*/
/*
* EBUS fault
*/
/*
* A faulty ebus can cause ebus timeout ebus_to
*/
/*
* A faulty CPU (datapath) may cause:
*
* - same jbus consistency as fire
* note: we're going to ignore memory async errors, as they should
*
*/
/*
* hostbus
*/
/* A faulty host bus may cause:
*
* - ape: jbus address parity error.
* - pio_dpe*: jbus PIO write parity error.
* - rd_dpe : jbus DMA read parity error
* - wr_dpe: jbus DMA write parity error.
* - cpe: jbus control parity error.
* - pio_cpe: jbus PIO control parity error.
*/
/*
*
* PCI-E device fault
*
*/
/*
* A faulty PCI-E device can cause (chip specific ereports):
*
* malformed or parity error MSI
* eq overflow
*
* value of the device.
*/
{
},
{
},
{
/*
* The hw does not capture header log, so indict
* all PCI-E devices under this sub-domain
*/
};
/*
* PCI devices
* Similar to the above rules.
*/
{
},
{
},
{
/* All PCI devices under this sub-domain */
};
/*
* A faulty bridge or leaf device driver can cause
* - mmu invalid, out of range, protection etc. all except data parity
* - invalid pio r/w
* - unsolicited read or interrupt return
* - msg received to unenabled queue
* - unsupported request
*
* Need to break into multiple prop to avoid the "line to long" runtime error
*/
/* msg not enable */
{
},
{
},
{
},
{
},
{
},
{
},
{
};
/* bad_op */
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
};
/* repeat the above prop for PCI devices */
/* msg not enable */
{
},
{
},
{
},
{
},
{
},
{
},
{
};
/* bad_op */
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
};
/*
* A faulty Fire nexus driver can cause
* - Jbus unmapped error
* - mmu invalid, out of range, protection etc. all except data parity
* - invalid pio r/w
* - unsolicited read or interrupt return
* - msg received to unenabled queue
*/
/*
* Fault at the adjacent node which is right below the Fire ASIC
*/
/*
* Faulty adjacent node may cause
*/
(0) ->
{
};
/*
* Secondary errors of the ereport that the device is at fault.
* Undiagnosed the secondary errors since the payload is invalid.
*/
/*
* For logging purpose only.
* The Fire nexus driver generates equivalent pciex ereports for the
* common pciex rules to diagnose.
*/
/* add memory async ereports */
/*
* Upset used to hide ereports that are not currently diagnosed.
*/
;