⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syscon_platform.c

📁 This product may be controlled for export purposes. You may not export, or transfer for the purpos
💻 C
📖 第 1 页 / 共 5 页
字号:
}/************************************************************************ *  board_systemflash_bankcount_atlas_read ************************************************************************/static UINT32board_systemflash_bankcount_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = ATLAS_SYSTEMFLASH_BANKCOUNT;    return OK;}/************************************************************************ *  board_systemflash_bankcount_sead_read ************************************************************************/static UINT32board_systemflash_bankcount_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = SEAD_SYSTEMFLASH_BANKCOUNT;    return OK;}/************************************************************************ *  board_systemflash_blockcount_atlas_read ************************************************************************/static UINT32board_systemflash_blockcount_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = ATLAS_SYSTEMFLASH_BLOCKCOUNT;    return OK;}/************************************************************************ *  board_systemflash_blockcount_sead_read ************************************************************************/static UINT32board_systemflash_blockcount_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = SEAD_SYSTEMFLASH_BLOCKCOUNT;    return OK;}/************************************************************************ *  board_systemflash_write_enable_atlas_write ************************************************************************/static UINT32board_systemflash_write_enable_atlas_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, ATLAS_SFWCTRL) = ATLAS_SFWCTRL_WRENA_ENSFWRITE;    return OK;}/************************************************************************ *  board_systemflash_write_enable_sead_write ************************************************************************/static UINT32board_systemflash_write_enable_sead_write(    void   *param,    void   *data,    UINT32 size ){    /* Nothing to do */    return OK;}/************************************************************************ *  board_systemflash_write_disable_atlas_write ************************************************************************/static UINT32board_systemflash_write_disable_atlas_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, ATLAS_SFWCTRL) = 0;    return OK;}/************************************************************************ *  board_systemflash_write_disable_sead_write ************************************************************************/static UINT32board_systemflash_write_disable_sead_write(    void   *param,    void   *data,    UINT32 size ){    /* Nothing to do */    return OK;}/************************************************************************ *  board_brkres_atlas_malta_read ************************************************************************/static UINT32board_brkres_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = REGP(KSEG1BASE, ATLAS_BRKRES) & 0xff;    return OK;}/************************************************************************ *  board_brkres_atlas_malta_write ************************************************************************/static UINT32board_brkres_atlas_malta_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, ATLAS_BRKRES) = *(UINT32*)param;    return OK;}/************************************************************************ *  board_systemflash_write_protected_atlas_read ************************************************************************/static UINT32board_systemflash_write_protected_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32*)param =         (REGP(KSEG1BASE, ATLAS_SWVALUE) &  ATLAS_SWVALUE_S13_MSK) ?	    1 : 0;    return OK;}/************************************************************************ *  board_systemflash_write_protected_sead_read ************************************************************************/static UINT32board_systemflash_write_protected_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = 0;    return OK;}/************************************************************************ *  board_pci_freq_atlas_read ************************************************************************/static UINT32board_pci_freq_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param =         (REGP(KSEG1BASE, ATLAS_JMPRS) & ATLAS_JMPRS_PCI33M_MSK) ?	    33330 : 16670;    return OK;}		  /************************************************************************ *  board_pci_freq_malta_read ************************************************************************/static UINT32board_pci_freq_malta_read(    void   *param,    void   *data,    UINT32 size ){    switch( (REGP(KSEG1BASE, MALTA_JMPRS) & MALTA_JMPRS_PCICLK_MSK)                                                >> MALTA_JMPRS_PCICLK_SHF )    {      case MALTA_JMPRS_PCICLK_10MHZ :        *(UINT32 *)param = 10000;	break;      case MALTA_JMPRS_PCICLK_12_5MHZ :        *(UINT32 *)param = 12500;	break;      case MALTA_JMPRS_PCICLK_16_67MHZ :        *(UINT32 *)param = 16670;	break;      case MALTA_JMPRS_PCICLK_20MHZ :        *(UINT32 *)param = 20000;	break;      case MALTA_JMPRS_PCICLK_25MHZ :        *(UINT32 *)param = 25000;	break;      case MALTA_JMPRS_PCICLK_30MHZ :        *(UINT32 *)param = 30000;	break;      case MALTA_JMPRS_PCICLK_33_33MHZ :        *(UINT32 *)param = 33330;	break;      case MALTA_JMPRS_PCICLK_37_5MHZ :        *(UINT32 *)param = 37500;	break;      default :   /* Should not happen */        break;    }    return OK;}		  /************************************************************************ *  board_pci_alloc_err_read ************************************************************************/extern bool pci_alloc_err;static UINT32 board_pci_alloc_err_read(    void   *param,    void   *data,    UINT32 size ){    *(bool *)param = pci_alloc_err;    return OK;}		  /************************************************************************ *  board_psustby_atlas_write ************************************************************************/static UINT32board_psustby_atlas_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, ATLAS_PSUSTBY) = ATLAS_PSUSTBY_STBY_GOSTBY;    return OK;}/************************************************************************ *  board_psustby_sead_write ************************************************************************/static UINT32board_psustby_sead_write(    void   *param,    void   *data,    UINT32 size ){    /* Not valid on SEAD-2 */    REGP(KSEG1BASE, SEAD_PSUSTBY) = SEAD_PSUSTBY_STBY_GOSTBY;    return OK;}#if 0/*  I don't know why this function does not work, so for now we'll have *  to skip the off command for the Malta board. *//************************************************************************ *  board_psustby_malta_write ************************************************************************/static UINT32board_psustby_malta_write(    void   *param,    void   *data,    UINT32 size ){    UINT32  base;    SYSCON_read( SYSCON_BOARD_PIIX4_POWER_BASE_ID,		 (void *)&base,		 sizeof(UINT32) );    base = KSEG1( base );        /* Set suspend type (Suspend to Disk) */    REG16( SWAP_UINT16ADDR_EL( base + PIIX4_PMCNTRL_OFS ) ) =         (PIIX4_PMCNTRL_TYPE_STD << PIIX4_PMCNTRL_TYPE_SHF );    /* Enable suspend */    REG16( SWAP_UINT16ADDR_EL( base + PIIX4_PMCNTRL_OFS ) ) =         ( (PIIX4_PMCNTRL_TYPE_STD << PIIX4_PMCNTRL_TYPE_SHF ) |	  PIIX4_PMCNTRL_SE_BIT );    return OK;}#endif/************************************************************************ *  board_fileflash_write_protected_atlas_malta_read ************************************************************************/static UINT32board_fileflash_write_protected_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param =        (REGP(KSEG1BASE, ATLAS_STATUS) & ATLAS_STATUS_MFWR_MSK) ?	    0 : 1;    return OK;}/************************************************************************ *  board_monitorflash_write_protected_atlas_malta_read ************************************************************************/static UINT32board_monitorflash_write_protected_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param =        (REGP(KSEG1BASE, ATLAS_STATUS) & ATLAS_STATUS_MFWR_MSK) ?	    1 : 0;    return OK;}/************************************************************************ *  board_fileflash_write_protected_sead_read ************************************************************************/static UINT32board_fileflash_write_protected_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = 0;    return OK;}/************************************************************************ *  board_rtc_addr_atlas_read ************************************************************************/static UINT32board_rtc_addr_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = ATLAS_RTCADR;    return OK;}/************************************************************************ *  board_rtc_addr_malta_read ************************************************************************/static UINT32board_rtc_addr_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = MALTA_RTCADR;    return OK;}/************************************************************************ *  board_rtc_data_atlas_read ************************************************************************/static UINT32board_rtc_data_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = ATLAS_RTCDAT;    return OK;}/************************************************************************ *  board_rtc_data_malta_read ************************************************************************/static UINT32board_rtc_data_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = MALTA_RTCDAT;    return OK;}/************************************************************************ *  board_eeprom_addr_atlas_read ************************************************************************/static UINT32board_eeprom_addr_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT8 *)param = ATLAS_EEPROM_IICADR_SN;    return OK;}/************************************************************************ *  board_eeprom_spd_addr_atlas_malta_read ************************************************************************/static UINT32board_eeprom_spd_addr_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT8 *)param = ATLAS_EEPROM_IICADR_SPD000;    return OK;}/************************************************************************ *  board_eeprom_spd_addr_sead_read ************************************************************************/static UINT32board_eeprom_spd_addr_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT8 *)param = 0;    return OK;}/************************************************************************ *  board_am79c973_base_malta_read ************************************************************************/static UINT32board_am79c973_base_malta_read(    void   *param,    void   *data,    UINT32 size ){    /*  AMD 79C973 CS and BC registers     *  are io mapped into BAR#0.     */    if( pci_lookup_bar( PCI_BUS_LOCAL,			   MALTA_DEVNUM_AM79C973,			   0,			   PCI_BAR(0),			   (void **)param ) )    {        return OK;    }    else        return ERROR_SYSCON_UNKNOWN_PARAM;}/************************************************************************ *  com_iic_baudrate_atlas_read

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -