📄 syscon_platform.c
字号:
/************************************************************************ * com_en0_intline_malta_read ************************************************************************/static UINT32com_en0_intline_malta_read( void *param, void *data, UINT32 size ){ /* Return interrupt line used for EN0 on Malta interrupt controller */ *(UINT32 *)param = MALTA_INTLINE_79C973; return OK;}/************************************************************************ * board_productname_read ************************************************************************/static UINT32board_productname_read( void *param, void *data, UINT32 size ){ *(char **)param = (char *)data; return OK;}/************************************************************************ * board_nmi_werr_atlas_malta_read ************************************************************************/static UINT32board_nmi_werr_atlas_malta_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = 0; /* no WERR bit on Atlas */ return OK;}/************************************************************************ * board_nmi_werr_sead_read ************************************************************************/static UINT32board_nmi_werr_sead_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = (REGP(KSEG1BASE, SEAD_NMISTATUS) & SEAD_NMISTATUS_WERR_MSK) >> SEAD_NMISTATUS_WERR_SHF; return OK;}/************************************************************************ * board_nmi_ack_atlas_malta_write ************************************************************************/static UINT32board_nmi_ack_atlas_malta_write( void *param, void *data, UINT32 size ){ REGP(KSEG1BASE, MALTA_NMIACK) = MALTA_NMIACK_ONNMI_BIT; EXCEP_nmi = FALSE; /* clear local copy of nmi status */ return OK;}/************************************************************************ * board_nmi_ack_sead_write ************************************************************************/static UINT32board_nmi_ack_sead_write( void *param, void *data, UINT32 size ){ REGP(KSEG1BASE, SEAD_NMIACK) = SEAD_NMIACK_ACK_BIT; EXCEP_nmi = FALSE; /* clear local copy of nmi status */ return OK;}/************************************************************************ * board_nmi_status_generic_read ************************************************************************/static UINT32board_nmi_status_generic_read( void *param, void *data, UINT32 size ){ *(bool *)param = EXCEP_nmi; return OK;}/************************************************************************ * board_corecardid_atlas_malta_read ************************************************************************/static UINT32board_corecardid_atlas_malta_read( void *param, void *data, UINT32 size ){ /* Shared between Atlas and Malta */ *(UINT32 *)param = (REGP(KSEG1BASE, ATLAS_REVISION) & ATLAS_REVISION_CORID_MSK) >> ATLAS_REVISION_CORID_SHF; return OK;}/************************************************************************ * board_corecardrev_atlas_malta_read ************************************************************************/static UINT32board_corecardrev_atlas_malta_read( void *param, void *data, UINT32 size ){ /* Shared between Atlas and Malta */ *(UINT32 *)param = (REGP(KSEG1BASE, ATLAS_REVISION) & ATLAS_REVISION_CORRV_MSK) >> ATLAS_REVISION_CORRV_SHF; return OK;}/************************************************************************ * board_fpgarev_atlas_malta_read ************************************************************************/static UINT32board_fpgarev_atlas_malta_read( void *param, void *data, UINT32 size ){ /* Shared between Atlas and Malta */ *(UINT32 *)param = (REGP(KSEG1BASE, ATLAS_REVISION) & ATLAS_REVISION_FPGRV_MSK) >> ATLAS_REVISION_FPGRV_SHF; return OK;}/************************************************************************ * board_rtl_sead_read ************************************************************************/static UINT32board_rtl_sead_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = (REGP(KSEG1BASE, SEAD_REVISION) & SEAD_REVISION_RTLID_MSK) >> SEAD_REVISION_RTLID_SHF; return OK;}/************************************************************************ * board_rtl_name_sead_read ************************************************************************/extern char *name_msc01;static UINT32board_rtl_name_sead_read( void *param, void *data, UINT32 size ){ switch( (REGP(KSEG1BASE,SEAD_REVISION) & SEAD_REVISION_RTLID_MSK) >> SEAD_REVISION_RTLID_SHF ) { case SEAD_REVISION_RTLID_BASIC : *(char **)param = name_basic_rtl; break; case SEAD_REVISION_RTLID_SOCIT101 : *(char **)param = name_msc01; break; default : return ERROR_SYSCON_UNKNOWN_PARAM; } return OK;}/************************************************************************ * board_rtlrev_major_sead_read ************************************************************************/static UINT32board_rtlrev_major_sead_read( void *param, void *data, UINT32 size ){ if (sys_corecard == MIPS_REVISION_CORID_SEAD_MSC01) { *(UINT32 *)param = (REG(MSC01_BIU_REG_BASE, MSC01_SC_ID) & MSC01_SC_ID_MAR_MSK) >> MSC01_SC_ID_MAR_SHF; return OK; } *(UINT32 *)param = (REGP(KSEG1BASE, SEAD_REVISION) & SEAD_REVISION_RTLMAJ_MSK) >> SEAD_REVISION_RTLMAJ_SHF; return OK;}/************************************************************************ * board_rtlrev_minor_sead_read ************************************************************************/static UINT32board_rtlrev_minor_sead_read( void *param, void *data, UINT32 size ){ if (sys_corecard == MIPS_REVISION_CORID_SEAD_MSC01) { *(UINT32 *)param = (REG(MSC01_BIU_REG_BASE, MSC01_SC_ID) & MSC01_SC_ID_MIR_MSK) >> MSC01_SC_ID_MIR_SHF; return OK; } *(UINT32 *)param = (REGP(KSEG1BASE, SEAD_REVISION) & SEAD_REVISION_RTLMIN_MSK) >> SEAD_REVISION_RTLMIN_SHF; return OK;}/************************************************************************ * board_use_default_atlas_malta_read ************************************************************************/static UINT32board_use_default_atlas_malta_read( void *param, void *data, UINT32 size ){ /* Read S5-4 switch */ *(UINT32 *)param = (REGP( KSEG1BASE, ATLAS_STATUS) & ATLAS_STATUS_S54_MSK) >> ATLAS_STATUS_S54_SHF; return OK;}/************************************************************************ * board_use_default_sead_read ************************************************************************/static UINT32board_use_default_sead_read( void *param, void *data, UINT32 size ){ /* No default switch */ *(UINT32 *)param = 0; return OK;}/************************************************************************ * board_softres_atlas_malta_write ************************************************************************/static UINT32board_softres_atlas_malta_write( void *param, void *data, UINT32 size ){ REGP(KSEG1BASE, ATLAS_SOFTRES) = ATLAS_SOFTRES_RESET_GORESET; return OK;}/************************************************************************ * board_softres_sead2_write ************************************************************************/static UINT32board_softres_sead2_write( void *param, void *data, UINT32 size ){ /* SEAD-2 only */ if (sys_corecard == MIPS_REVISION_CORID_SEAD_MSC01) REG(MSC01_MC_REG_BASE, MSC01_MC_ARB_CFG) = SEAD2_MSC01_MC_RESET_BIT; else REGP(KSEG1BASE, SEAD2_SWRESET) = SEAD2_SWRESET_SWRST_GORESET; return OK;}/************************************************************************ * board_systemflash_base_atlas_read ************************************************************************/static UINT32board_systemflash_base_atlas_read( void *param, void *data, UINT32 size ){ *(void **)param = (void *)ATLAS_SYSTEMFLASH_BASE; return OK;}/************************************************************************ * board_systemflash_base_sead_read ************************************************************************/static UINT32board_systemflash_base_sead_read( void *param, void *data, UINT32 size ){ *(void **)param = (void *)SEAD_SYSTEMFLASH_BASE; return OK;}/************************************************************************ * board_systemflash_size_atlas_read ************************************************************************/static UINT32board_systemflash_size_atlas_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = ATLAS_SYSTEMFLASH_SIZE; return OK;}/************************************************************************ * board_systemflash_size_sead_read ************************************************************************/static UINT32board_systemflash_size_sead_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = SEAD_SYSTEMFLASH_SIZE; return OK;}/************************************************************************ * board_monitorflash_base_atlas_malta_read ************************************************************************/static UINT32board_monitorflash_base_atlas_malta_read( void *param, void *data, UINT32 size ){ *(void **)param = (void *)ATLAS_MONITORFLASH_BASE; return OK;}/************************************************************************ * board_monitorflash_size_atlas_malta_read ************************************************************************/static UINT32board_monitorflash_size_atlas_malta_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = ATLAS_MONITORFLASH_SIZE; return OK;}/************************************************************************ * board_fileflash_base_atlas_malta_read ************************************************************************/static UINT32board_fileflash_base_atlas_malta_read( void *param, void *data, UINT32 size ){ *(void **)param = (void *)ATLAS_FILEFLASH_BASE; return OK;}/************************************************************************ * board_fileflash_base_sead_read ************************************************************************/static UINT32board_fileflash_base_sead_read( void *param, void *data, UINT32 size ){ *(void **)param = (void *)SEAD_FILEFLASH_BASE; return OK;}/************************************************************************ * board_fileflash_size_atlas_malta_read ************************************************************************/static UINT32board_fileflash_size_atlas_malta_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = ATLAS_FILEFLASH_SIZE; return OK;}/************************************************************************ * board_fileflash_size_sead_read ************************************************************************/static UINT32board_fileflash_size_sead_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = SEAD_FILEFLASH_SIZE; return OK;}/************************************************************************ * board_systemram_base_sead_read ************************************************************************/static UINT32board_systemram_base_sead_read( void *param, void *data, UINT32 size ){ *(void **)param = (void *)SEAD_SYSTEMRAM_BASE; return OK;}/************************************************************************ * board_systemram_size_sead_read ************************************************************************/static UINT32board_systemram_size_sead_read( void *param, void *data, UINT32 size ){ *(UINT32 *)param = SEAD_SYSTEMRAM_SIZE; return OK;}/************************************************************************ * board_sram_base_sead_read ************************************************************************/static UINT32board_sram_base_sead_read( void *param, void *data, UINT32 size ){ *(void **)param = (void *)SEAD_SRAM_BASE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -