aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/s2io-regs.h
diff options
context:
space:
mode:
authorSivakumar Subramani <Sivakumar.Subramani@neterion.com>2007-09-06 06:21:54 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:51:08 -0400
commit9caab4587b8320c54fc666a6c820e966e6403aea (patch)
tree3e89ada38adcada7802009a0bc74e11454aee427 /drivers/net/s2io-regs.h
parented9f0e0bf3ceb44334ca9b70779a50b2e79b7f97 (diff)
S2io: Enable all the error and alarm indications
- Added support to unmask entire set of device errors and alarams. Alarm interrupts are generated for a myriad of purposes, ranging from illegal operations or requests to internal state machine errors and uncorrectable data corruption errors. In several cases the adapter can recover gracefully from unexpected events; however, in some cases, a device reset may be necessary. This patch handles alarms generated by all the blocks within the device. The adapter generates the following types of alarms: 1. Link state transitions (local/remote fault) or other link-related problems. 2. Problems with any device peripherals, including the EEPROM, FLASH, etc. 3. Correctable ECC errors (single-bit errors) on internal data structures or frame data. 4. Uncorrectable ECC errors (multi-bit errors) on internal data structures or frame data. 5. State machine errors, which indicate that internal control structures have become corrupted. 6. PCI related errors, including parity errors or illegal transactions. 7. Other unexpected events. - Implemented Jeff's review comments to use do_s2io_write_bits function to avoid duplicate codes. Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com> Signed-off-by: Santosh Rastapur <santosh.rastapur@neterion.com> Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/s2io-regs.h')
-rw-r--r--drivers/net/s2io-regs.h116
1 files changed, 106 insertions, 10 deletions
diff --git a/drivers/net/s2io-regs.h b/drivers/net/s2io-regs.h
index 83e3e47a9e3d..aef66e2d98d2 100644
--- a/drivers/net/s2io-regs.h
+++ b/drivers/net/s2io-regs.h
@@ -325,33 +325,66 @@ struct XENA_dev_config {
325#define TXDMA_TPA_INT BIT(5) 325#define TXDMA_TPA_INT BIT(5)
326#define TXDMA_SM_INT BIT(6) 326#define TXDMA_SM_INT BIT(6)
327 u64 pfc_err_reg; 327 u64 pfc_err_reg;
328#define PFC_ECC_SG_ERR BIT(7)
329#define PFC_ECC_DB_ERR BIT(15)
330#define PFC_SM_ERR_ALARM BIT(23)
331#define PFC_MISC_0_ERR BIT(31)
332#define PFC_MISC_1_ERR BIT(32)
333#define PFC_PCIX_ERR BIT(39)
328 u64 pfc_err_mask; 334 u64 pfc_err_mask;
329 u64 pfc_err_alarm; 335 u64 pfc_err_alarm;
330 336
331 u64 tda_err_reg; 337 u64 tda_err_reg;
338#define TDA_Fn_ECC_SG_ERR vBIT(0xff,0,8)
339#define TDA_Fn_ECC_DB_ERR vBIT(0xff,8,8)
340#define TDA_SM0_ERR_ALARM BIT(22)
341#define TDA_SM1_ERR_ALARM BIT(23)
342#define TDA_PCIX_ERR BIT(39)
332 u64 tda_err_mask; 343 u64 tda_err_mask;
333 u64 tda_err_alarm; 344 u64 tda_err_alarm;
334 345
335 u64 pcc_err_reg; 346 u64 pcc_err_reg;
336#define PCC_FB_ECC_DB_ERR vBIT(0xFF, 16, 8) 347#define PCC_FB_ECC_SG_ERR vBIT(0xFF,0,8)
348#define PCC_TXB_ECC_SG_ERR vBIT(0xFF,8,8)
349#define PCC_FB_ECC_DB_ERR vBIT(0xFF,16, 8)
350#define PCC_TXB_ECC_DB_ERR vBIT(0xff,24,8)
351#define PCC_SM_ERR_ALARM vBIT(0xff,32,8)
352#define PCC_WR_ERR_ALARM vBIT(0xff,40,8)
353#define PCC_N_SERR vBIT(0xff,48,8)
354#define PCC_6_COF_OV_ERR BIT(56)
355#define PCC_7_COF_OV_ERR BIT(57)
356#define PCC_6_LSO_OV_ERR BIT(58)
357#define PCC_7_LSO_OV_ERR BIT(59)
337#define PCC_ENABLE_FOUR vBIT(0x0F,0,8) 358#define PCC_ENABLE_FOUR vBIT(0x0F,0,8)
338
339 u64 pcc_err_mask; 359 u64 pcc_err_mask;
340 u64 pcc_err_alarm; 360 u64 pcc_err_alarm;
341 361
342 u64 tti_err_reg; 362 u64 tti_err_reg;
363#define TTI_ECC_SG_ERR BIT(7)
364#define TTI_ECC_DB_ERR BIT(15)
365#define TTI_SM_ERR_ALARM BIT(23)
343 u64 tti_err_mask; 366 u64 tti_err_mask;
344 u64 tti_err_alarm; 367 u64 tti_err_alarm;
345 368
346 u64 lso_err_reg; 369 u64 lso_err_reg;
370#define LSO6_SEND_OFLOW BIT(12)
371#define LSO7_SEND_OFLOW BIT(13)
372#define LSO6_ABORT BIT(14)
373#define LSO7_ABORT BIT(15)
374#define LSO6_SM_ERR_ALARM BIT(22)
375#define LSO7_SM_ERR_ALARM BIT(23)
347 u64 lso_err_mask; 376 u64 lso_err_mask;
348 u64 lso_err_alarm; 377 u64 lso_err_alarm;
349 378
350 u64 tpa_err_reg; 379 u64 tpa_err_reg;
380#define TPA_TX_FRM_DROP BIT(7)
381#define TPA_SM_ERR_ALARM BIT(23)
382
351 u64 tpa_err_mask; 383 u64 tpa_err_mask;
352 u64 tpa_err_alarm; 384 u64 tpa_err_alarm;
353 385
354 u64 sm_err_reg; 386 u64 sm_err_reg;
387#define SM_SM_ERR_ALARM BIT(15)
355 u64 sm_err_mask; 388 u64 sm_err_mask;
356 u64 sm_err_alarm; 389 u64 sm_err_alarm;
357 390
@@ -450,22 +483,52 @@ struct XENA_dev_config {
450#define RXDMA_INT_RTI_INT_M BIT(3) 483#define RXDMA_INT_RTI_INT_M BIT(3)
451 484
452 u64 rda_err_reg; 485 u64 rda_err_reg;
486#define RDA_RXDn_ECC_SG_ERR vBIT(0xFF,0,8)
487#define RDA_RXDn_ECC_DB_ERR vBIT(0xFF,8,8)
488#define RDA_FRM_ECC_SG_ERR BIT(23)
489#define RDA_FRM_ECC_DB_N_AERR BIT(31)
490#define RDA_SM1_ERR_ALARM BIT(38)
491#define RDA_SM0_ERR_ALARM BIT(39)
492#define RDA_MISC_ERR BIT(47)
493#define RDA_PCIX_ERR BIT(55)
494#define RDA_RXD_ECC_DB_SERR BIT(63)
453 u64 rda_err_mask; 495 u64 rda_err_mask;
454 u64 rda_err_alarm; 496 u64 rda_err_alarm;
455 497
456 u64 rc_err_reg; 498 u64 rc_err_reg;
499#define RC_PRCn_ECC_SG_ERR vBIT(0xFF,0,8)
500#define RC_PRCn_ECC_DB_ERR vBIT(0xFF,8,8)
501#define RC_FTC_ECC_SG_ERR BIT(23)
502#define RC_FTC_ECC_DB_ERR BIT(31)
503#define RC_PRCn_SM_ERR_ALARM vBIT(0xFF,32,8)
504#define RC_FTC_SM_ERR_ALARM BIT(47)
505#define RC_RDA_FAIL_WR_Rn vBIT(0xFF,48,8)
457 u64 rc_err_mask; 506 u64 rc_err_mask;
458 u64 rc_err_alarm; 507 u64 rc_err_alarm;
459 508
460 u64 prc_pcix_err_reg; 509 u64 prc_pcix_err_reg;
510#define PRC_PCI_AB_RD_Rn vBIT(0xFF,0,8)
511#define PRC_PCI_DP_RD_Rn vBIT(0xFF,8,8)
512#define PRC_PCI_AB_WR_Rn vBIT(0xFF,16,8)
513#define PRC_PCI_DP_WR_Rn vBIT(0xFF,24,8)
514#define PRC_PCI_AB_F_WR_Rn vBIT(0xFF,32,8)
515#define PRC_PCI_DP_F_WR_Rn vBIT(0xFF,40,8)
461 u64 prc_pcix_err_mask; 516 u64 prc_pcix_err_mask;
462 u64 prc_pcix_err_alarm; 517 u64 prc_pcix_err_alarm;
463 518
464 u64 rpa_err_reg; 519 u64 rpa_err_reg;
520#define RPA_ECC_SG_ERR BIT(7)
521#define RPA_ECC_DB_ERR BIT(15)
522#define RPA_FLUSH_REQUEST BIT(22)
523#define RPA_SM_ERR_ALARM BIT(23)
524#define RPA_CREDIT_ERR BIT(31)
465 u64 rpa_err_mask; 525 u64 rpa_err_mask;
466 u64 rpa_err_alarm; 526 u64 rpa_err_alarm;
467 527
468 u64 rti_err_reg; 528 u64 rti_err_reg;
529#define RTI_ECC_SG_ERR BIT(7)
530#define RTI_ECC_DB_ERR BIT(15)
531#define RTI_SM_ERR_ALARM BIT(23)
469 u64 rti_err_mask; 532 u64 rti_err_mask;
470 u64 rti_err_alarm; 533 u64 rti_err_alarm;
471 534
@@ -582,17 +645,43 @@ struct XENA_dev_config {
582#define MAC_INT_STATUS_RMAC_INT BIT(1) 645#define MAC_INT_STATUS_RMAC_INT BIT(1)
583 646
584 u64 mac_tmac_err_reg; 647 u64 mac_tmac_err_reg;
585#define TMAC_ERR_REG_TMAC_ECC_DB_ERR BIT(15) 648#define TMAC_ECC_SG_ERR BIT(7)
586#define TMAC_ERR_REG_TMAC_TX_BUF_OVRN BIT(23) 649#define TMAC_ECC_DB_ERR BIT(15)
587#define TMAC_ERR_REG_TMAC_TX_CRI_ERR BIT(31) 650#define TMAC_TX_BUF_OVRN BIT(23)
651#define TMAC_TX_CRI_ERR BIT(31)
652#define TMAC_TX_SM_ERR BIT(39)
653#define TMAC_DESC_ECC_SG_ERR BIT(47)
654#define TMAC_DESC_ECC_DB_ERR BIT(55)
655
588 u64 mac_tmac_err_mask; 656 u64 mac_tmac_err_mask;
589 u64 mac_tmac_err_alarm; 657 u64 mac_tmac_err_alarm;
590 658
591 u64 mac_rmac_err_reg; 659 u64 mac_rmac_err_reg;
592#define RMAC_ERR_REG_RX_BUFF_OVRN BIT(0) 660#define RMAC_RX_BUFF_OVRN BIT(0)
593#define RMAC_ERR_REG_RTS_ECC_DB_ERR BIT(14) 661#define RMAC_FRM_RCVD_INT BIT(1)
594#define RMAC_ERR_REG_ECC_DB_ERR BIT(15) 662#define RMAC_UNUSED_INT BIT(2)
595#define RMAC_LINK_STATE_CHANGE_INT BIT(31) 663#define RMAC_RTS_PNUM_ECC_SG_ERR BIT(5)
664#define RMAC_RTS_DS_ECC_SG_ERR BIT(6)
665#define RMAC_RD_BUF_ECC_SG_ERR BIT(7)
666#define RMAC_RTH_MAP_ECC_SG_ERR BIT(8)
667#define RMAC_RTH_SPDM_ECC_SG_ERR BIT(9)
668#define RMAC_RTS_VID_ECC_SG_ERR BIT(10)
669#define RMAC_DA_SHADOW_ECC_SG_ERR BIT(11)
670#define RMAC_RTS_PNUM_ECC_DB_ERR BIT(13)
671#define RMAC_RTS_DS_ECC_DB_ERR BIT(14)
672#define RMAC_RD_BUF_ECC_DB_ERR BIT(15)
673#define RMAC_RTH_MAP_ECC_DB_ERR BIT(16)
674#define RMAC_RTH_SPDM_ECC_DB_ERR BIT(17)
675#define RMAC_RTS_VID_ECC_DB_ERR BIT(18)
676#define RMAC_DA_SHADOW_ECC_DB_ERR BIT(19)
677#define RMAC_LINK_STATE_CHANGE_INT BIT(31)
678#define RMAC_RX_SM_ERR BIT(39)
679#define RMAC_SINGLE_ECC_ERR (BIT(5) | BIT(6) | BIT(7) |\
680 BIT(8) | BIT(9) | BIT(10)|\
681 BIT(11))
682#define RMAC_DOUBLE_ECC_ERR (BIT(13) | BIT(14) | BIT(15) |\
683 BIT(16) | BIT(17) | BIT(18)|\
684 BIT(19))
596 u64 mac_rmac_err_mask; 685 u64 mac_rmac_err_mask;
597 u64 mac_rmac_err_alarm; 686 u64 mac_rmac_err_alarm;
598 687
@@ -750,6 +839,7 @@ struct XENA_dev_config {
750 BIT(17) | BIT(19)) 839 BIT(17) | BIT(19))
751#define MC_ERR_REG_ECC_ALL_DBL (BIT(10) | BIT(11) | BIT(12) |\ 840#define MC_ERR_REG_ECC_ALL_DBL (BIT(10) | BIT(11) | BIT(12) |\
752 BIT(13) | BIT(18) | BIT(20)) 841 BIT(13) | BIT(18) | BIT(20))
842#define PLL_LOCK_N BIT(39)
753 u64 mc_err_mask; 843 u64 mc_err_mask;
754 u64 mc_err_alarm; 844 u64 mc_err_alarm;
755 845
@@ -823,11 +913,17 @@ struct XENA_dev_config {
823#define XGXS_INT_MASK_RXGXS BIT(1) 913#define XGXS_INT_MASK_RXGXS BIT(1)
824 914
825 u64 xgxs_txgxs_err_reg; 915 u64 xgxs_txgxs_err_reg;
826#define TXGXS_ECC_DB_ERR BIT(15) 916#define TXGXS_ECC_SG_ERR BIT(7)
917#define TXGXS_ECC_DB_ERR BIT(15)
918#define TXGXS_ESTORE_UFLOW BIT(31)
919#define TXGXS_TX_SM_ERR BIT(39)
920
827 u64 xgxs_txgxs_err_mask; 921 u64 xgxs_txgxs_err_mask;
828 u64 xgxs_txgxs_err_alarm; 922 u64 xgxs_txgxs_err_alarm;
829 923
830 u64 xgxs_rxgxs_err_reg; 924 u64 xgxs_rxgxs_err_reg;
925#define RXGXS_ESTORE_OFLOW BIT(7)
926#define RXGXS_RX_SM_ERR BIT(39)
831 u64 xgxs_rxgxs_err_mask; 927 u64 xgxs_rxgxs_err_mask;
832 u64 xgxs_rxgxs_err_alarm; 928 u64 xgxs_rxgxs_err_alarm;
833 929