* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: niagara2_error.h
* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
* The above named program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License version 2 as published by the Free Software Foundation.
* The above named program is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* You should have received a copy of the GNU General Public
* License along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
* ========== Copyright Header End ============================================
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
#ifndef _NIAGARA2_ERROR_H
#define _NIAGARA2_ERROR_H
#pragma ident "@(#)niagara2_error.h 1.2 06/08/28 SMI"
* Niagara 2 Error Types. At the present, it only defines the errors detected by the core.
* errors handled by SS_trap_instruction_access_MMU_error (table 12-7, PRM v1.0)
* errors handled by SS_trap_internal_processor_error (table 12-8, PRM v1.0)
* errors handled by SS_trap_data_access_MMU_error (table 12-8, PRM v1.0)
* errors handled by SS_trap_data_access_error (table 12-8, PRM v1.0)
* errors handled by SS_trap_hw_corrected_error (table 12-13, PRM v1.0)
* errors handled by SS_trap_sw_recoverable_error (table 12-13, PRM v1.0)
L2C1
= 0x34, /* FIXME: L2C defined twice, rename it to L2C1 for now */
SOCU1
= 0x3b /* FIXME: SOCU defined twice, rename it to SOCU1 for now */
#define ERROR_MAXNUM 0x40 /* maximum number of errors handled currently */
typedef struct SS_ERROR_DESC
{
ss_trap_type_t trap_type
;
ss_error_desc_t ss_error_list
[ERROR_MAXNUM
];
* L2 error enable register, table 12-20, N2 PRM, Rev. 1.0
#define NA_NCEEN MASK64(1,1)
#define NA_CEEN MASK64(0,0)
* Niagara2 error injection routine prototypes
void niagara2_init_error_list();
bool_t
itlb_hit_error_match(simcpu_t
*sp
, tlb_entry_t
*tep
);
bool_t
dtlb_hit_error_match(simcpu_t
*sp
, int op
, tlb_entry_t
*tep
, tpaddr_t va
);
bool_t
l2dram_access_error_match(simcpu_t
*sp
, int op
, tpaddr_t pa
);
bool_t
tlb_data_access_error_match(simcpu_t
*sp
, ss_mmu_t
*mmup
, uint64_t idx
);
bool_t
tlb_tag_access_error_match(simcpu_t
*sp
, ss_mmu_t
*mmup
, uint64_t idx
);
void xicache_error_match(simcpu_t
*sp
, tpaddr_t pa
);
#endif /* ERROR_INJECTION */
#endif /* _NIAGARA2_ERROR_H */