# ========== Copyright Header Begin ==========================================
# OpenSPARC T2 Processor File: N2_State.py
# 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 ============================================
setup
= setups
[sys
.argv
[1]]
SS_AsiCtrReg('N2','lsu_ctr',PRIVATE
,
, SS_AsiCtrReg('N2','partition_id',PRIVATE
,
, SS_AsiCtrReg('N2','context',PRIVATE
,
, SS_AsiCtrReg('N2','physical_offset',PRIVATE
,
, SS_AsiCtrReg('N2','real_range',PRIVATE
,
('rpn_high' ,27,53,RW
,0),
, SS_AsiCtrReg('N2','tsb_config',PRIVATE
,
('tsb_size' , 0, 3,RW
,0),
('page_size' , 4, 7,RW
,0),
('ra_not_pa' , 8, 8,RW
,0),
('tsb_base' ,13,39,RW
,0),
('use_context' ,61,62,RW
,0),
, SS_AsiCtrReg('N2','tsb_pointer',PRIVATE
,
, SS_AsiCtrReg('N2','inst_sfsr',PRIVATE
,
('error_type' , 0, 2,RW
,0)
'// N2 PRM Rev 1.1 Tbl 12-7\n'
'// Instruction Access MMU Errors\n'
'static const ITTM = 1;\n'
'static const ITTP = 2;\n'
'static const ITDP = 3;\n'
'static const ITMU = 4;\n'
'static const ITL2U = 5;\n'
'static const ITL2ND = 6;\n'
'// Instruction Access Errors\n'
'static const ICL2U = 1;\n'
'static const ICL2ND = 2;\n'
, SS_AsiCtrReg('N2','data_sfsr',PRIVATE
,
('error_type' , 0, 3,RW
,0)
'// N2 PRM Rev 1.1 Tbl 12-8\n'
' // DSFSR Error Codes\n'
' // Internal Processor Error\n'
' static const IRFU = 1;\n'
' static const IRFC = 2;\n'
' static const FRFU = 3;\n'
' static const FRFC = 4;\n'
' static const SBDLC = 5;\n'
' static const SBDLU = 6;\n'
' static const MRAU = 7;\n'
' static const TSAC = 8;\n'
' static const TSAU = 9;\n'
' static const SCAC = 10;\n'
' static const SCAU = 11;\n'
' static const TCCP = 12;\n'
' static const TCUP = 13;\n'
' // Data Access MMU Error\n'
' static const DTTM = 1;\n'
' static const DTTP = 2;\n'
' static const DTDP = 3;\n'
' static const DTMU = 4;\n'
' static const DTL2U = 5;\n'
' static const DTL2ND = 6;\n'
' // Data Access Error\n'
' static const DCL2U = 1;\n'
' static const DCL2ND = 2;\n'
' static const SOCU = 4;\n'
, SS_AsiCtrReg('N2','data_sfar',PRIVATE
,
('error_addr' , 0,47,RW
,0)
, SS_AsiCtrReg('N2','demap',PRIVATE
,
, SS_AsiCtrReg('N2','tag_target',PRIVATE
,
, SS_AsiCtrReg('N2','tag_access',PRIVATE
,
('va' ,13,63,RW
,0) # 48-63 are signext of 47
, SS_AsiCtrReg('N2','hwtw_config',PRIVATE
,
, SS_AsiCtrReg('N2','tw_control',PRIVATE
,
, SS_AsiCtrReg('N2','tw_status', SHARED
,
, SS_AsiCtrReg('N2','inst_wp',SHARED
,
, SS_AsiCtrReg('N2','data_wp',PRIVATE
,
, SS_AsiCtrReg('N2','strand_available',SHARED
,
, SS_AsiCtrReg('N2','strand_enable',SHARED
,
, SS_AsiCtrReg('N2','strand_enable_status',SHARED
,
, SS_AsiCtrReg('N2','strand_running',SHARED
,
, SS_AsiCtrReg('N2','strand_running_status',SHARED
,
, SS_AsiCtrReg('N2','xir_steering',SHARED
,
, SS_AsiCtrReg('N2','tick_enable',SHARED
,
, SS_AsiCtrReg('N2','core_intr_id',PRIVATE
,
('intr_id_lo' , 0, 5,RO
,0),
('intr_id_hi' , 6,15,RO
,0)
, SS_AsiCtrReg('N2','core_id',PRIVATE
,
('max_core_id' ,16,21,RO
,0x3f),
('max_strand_id' ,32,37,RO
,7)
, SS_AsiCtrReg('N2','power_mgmt',SHARED
,
, SS_AsiCtrReg('N2','cerer',SHARED
,
('sbdpu_sbiou' , 9,9,RW
,0),
('l2u_socu' , 20,20,RW
,0),
('l2c_socc' , 21,21,RW
,0),
, SS_AsiCtrReg('N2','seter',PRIVATE
,
, SS_AsiCtrReg('N2','desr',PRIVATE
,
'// N2 PRM Rev 1.1 Tbl 12-13\n'
' // DESR Correctable Error Codes\n'
' static const CE_ICVP = 1;\n'
' static const CE_ICTP = 2;\n'
' static const CE_ICTM = 3;\n'
' static const CE_ICDP = 4;\n'
' static const CE_DCVP = 5;\n'
' static const CE_DCTP = 6;\n'
' static const CE_DCTM = 7;\n'
' static const CE_DCDP = 8;\n'
' static const CE_L2C = 9;\n'
' static const CE_SBDPC = 10;\n'
' static const CE_SOCC = 11;\n'
' // DESR Recoverable Error Codes\n'
' static const RE_SBDPU = 6;\n'
' static const RE_TCCD = 14;\n'
' static const RE_TCUD = 15;\n'
' static const RE_MAMU = 7;\n'
' static const RE_MAL2C = 8;\n'
' static const RE_MAL2U = 9;\n'
' static const RE_MAL2ND = 10;\n'
' static const RE_CWQL2C = 11;\n'
' static const RE_CWQL2U = 12;\n'
' static const RE_CWQL2ND = 13;\n'
' static const RE_L2C = 20;\n'
' static const RE_L2U = 16;\n'
' static const RE_L2NC = 17;\n'
' static const RE_ITL2C = 1;\n'
' static const RE_ICL2C = 2;\n'
' static const RE_DTL2C = 3;\n'
' static const RE_DCL2C = 4;\n'
' static const RE_SOCU = 19;\n'
, SS_AsiCtrReg('N2','dfesr',SHARED
,
('stbindex' ,55,57,RW
,0),
'const static uint_t USER_PRIV = 0;\n'
' const static uint_t PRIV_PRIV = 1;\n'
' const static uint_t HPRIV_PRIV = 2;\n'
' const static uint_t UNKNOWN_PRIV = 3;\n'
, SS_AsiCtrReg('N2','clesr',SHARED
,
, SS_AsiCtrReg('N2','error_inject',SHARED
,
, SS_AsiCtrReg('N2','inst_mask',SHARED
,
, SS_AsiCtrReg('N2','lsu_diag',SHARED
,
('iassocdis' , 0, 0,RW
,0),
('dassocdis' , 1, 1,RW
,0)
, SS_AsiCtrReg('N2','decr',SHARED
,
, SS_AsiCtrReg('N2','overlap_mode',SHARED
,
, SS_AsiCtrReg('N2','rst_vec_mask',SHARED
,
, SS_AsiCtrReg('N2','intr_r',PRIVATE
,
, SS_AsiCtrReg('N2','intr_w',SHARED
,
, SS_AsiCtrReg('N2','intr_queue_ptr',PRIVATE
,
, SS_AsiCtrReg('N2','tick_access',PRIVATE
,
' STICK_CMPR_INDX = 1,\n'
' HSTICK_CMPR_INDX = 2,\n'
, SS_CtrReg('N2','pcr','asr',16,RWRWRW
,64,
('ht' , 3, 3,RW
,0), # RO in user & priv
, SS_CtrReg('N2','pic','asr',17,RWRWRW
,64,
, SS_CtrReg('N2','tstate', 'prf', 2,RWRW__
,64,
('pstate' , 8,20, RO
, 0),
('' ,10,10, RW
, X
), # priv
('' ,12,12, RW
, X
), # pef
('' ,16,16, RW
, X
), # tle
('' ,17,17, RW
, X
), # cle
('' ,20,20, RW
, X
), # tct
('gl' ,40,41, RW
, 0) # one bit less the SS
, SS_CtrReg('N2','tlb_data',0,0,0,64,
, SS_CtrReg('N2','tag_read',0,0,0,64,
, SS_CtrReg('N2','itlb_probe_addr',0,0,0,64,
, SS_CtrReg('N2','itlb_probe_data',0,0,0,64,
, SS_CtrReg('N2','tlb_index',0,0,0,64,
, SS_CtrReg('N2','tsb_tte_tag',0,0,0,64,
('reserved0' ,42,47,RW
,0),
('reserved1' ,61,63,RW
,0)
, SS_CtrReg('N2','tsb_tte_data',0,0,0,64,
('pa_zero_ext' ,40,55,RW
,0),
, SS_CtrReg('N2','scratchpad_access',0,0,0,64,
, SS_CtrReg('N2','gl' , 'prf',16,RWRW__
, 8,
h_file
=open('%s' % sys
.argv
[2],'w')
h_base_name
= sys
.argv
[2].split('/')[-1].split('.')[0]
h_file
.write('#ifndef __'+h_base_name
+'_h__\n')
h_file
.write('#define __'+h_base_name
+'_h__\n')
h_file
.write('#include "SS_AsiCtrReg.h"\n')