* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: csr_common.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 ============================================
typedef int csr_reg_type_t
;
uint64_t write_only_mask
;
csr_access_type_t sp_access
;
csr_access_type_t jtag_access
;
csr_access_type_t domain_access
;
uint64_t write_only_mask
;
csr_access_type_t sp_access
;
csr_access_type_t jtag_access
;
csr_access_type_t domain_access
;
virtual csr_reg_type_t
csr_offset2reg (uint64_t offset
)=0;
void init_csr_reg (csr_reg_t
*csr_reg
, csr_reg_type_t reg_type
,csrtab_t
*csrtab
,csr_field_t
*csr_fields
,uint64_t *cumsum
);
csr_reg_t
*csr_get_reg (csr_reg_t
**csr_list
, uint64_t offset
,csrtab_t
*csrtab
,csr_field_t
*csr_fields
,uint64_t *cumsum
);
csr_reg_type_t
csr_get_reg_by_name (char *regname
,csrtab_t
*csr_tab
,uint64_t ncsrtab
);
csr_reg_t
*csr_get_regtype (csr_reg_t
**csr_list
, csr_reg_type_t reg_type
,csrtab_t
*csrtab
,csr_field_t
*csr_fields
,uint64_t *cumsum
);
uint64_t csr_get_field (Module
*csr_obj
, csr_reg_t
*csr_reg
, const char *field_name
, uint64_t offset
);
uint64_t csr_set_field (Module
*csr_obj
, csr_reg_t
*csr_reg
, const char *field_name
, uint64_t field_value
, uint64_t offset
);
int csr_read_reg (Module
*csr_obj
, csr_reg_t
*csr_reg
, uint64_t offset
,uint64_t *value
);
int csr_write_reg (Module
*csr_obj
, csr_reg_t
*csr_reg
, uint64_t offset
,uint64_t reg_value
);
uint64_t csr_value_get_field(Module
*err_log
, csr_reg_t
*csr_reg
,
const char *field_name
, uint64_t reg_value
);
int csr_field_changed(Module
*err_log
, csr_reg_t
*csr_reg
, const char *field_name
, uint64_t reg_value1
, uint64_t reg_value2
);
const char *csr_get_field_name(Module
*csr_obj
, csr_reg_t
*csr_reg
, int bit
, uint64_t reg_value
);
bool csr_reset_reg(Module
*csr_obj
, csr_reg_t
**csr_list
,uint64_t value
, csr_reg_type_t type
,csrtab_t
*csrtab
,csr_field_t
*csr_fields
,uint64_t *cumsum
, uint64_t offset
);
bool csr_set_mask_field(Module
*csr_obj
,csr_reg_t
**csr_list
,csrtab_t
*csrtab
,csr_field_t
*csr_fields
,uint64_t *cumsum
,csr_reg_t
*csr_reg
,const char *field_name
,uint64_t field_value
, csr_reg_type_t rw1c
, csr_reg_type_t rw
, uint64_t offset
);
bool csr_write_mask_reg(Module
*csr_obj
, csr_reg_t
**csr_list
,csr_reg_type_t type
,csrtab_t
*csrtab
,csr_field_t
*csr_fields
,uint64_t *cumsum
,uint64_t old_value
, uint64_t *new_value
, csr_reg_type_t rw1c
, csr_reg_type_t rw1s
, csr_reg_type_t rw
, uint64_t offset
);