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

📄 syscon_platform.c

📁 This product may be controlled for export purposes. You may not export, or transfer for the purpos
💻 C
📖 第 1 页 / 共 5 页
字号:
    return OK;}/************************************************************************ *  board_sram_size_sead_read ************************************************************************/static UINT32board_sram_size_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = SEAD_SRAM_SIZE;    return OK;}/************************************************************************ *  board_gt64120_base_atlas_malta_read ************************************************************************/static UINT32board_gt64120_base_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(void **)param = (void *)ATLAS_CORECTRL_BASE;    return OK;}/************************************************************************ *  board_saa9730_base_atlas_read ************************************************************************/static UINT32board_saa9730_base_atlas_read(    void   *param,    void   *data,    UINT32 size ){    /*  Philips SAA9730 implements one function only with all IO-devices     *   memory mapped into one contigous memory.     *   According to spec. the BAR#1 is to be used !     */    if( pci_lookup_bar( PCI_BUS_LOCAL,			   ATLAS_DEVNUM_SAA9730,			   0,			   PCI_BAR(1),			   (void **)param ) )    {        return OK;    }    else        return ERROR_SYSCON_UNKNOWN_PARAM;}/************************************************************************ *  board_icta_base_atlas_read ************************************************************************/static UINT32board_icta_base_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(void **)param = (void *)ATLAS_ICTA_BASE;    return OK;}/************************************************************************ *  board_tmra_base_atlas_read ************************************************************************/static UINT32board_tmra_base_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(void **)param = (void *)ATLAS_TMRA_BASE;    return OK;}/************************************************************************ *  board_ledgreen_atlas_read ************************************************************************/static UINT32board_ledgreen_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = REGP(KSEG1BASE, ATLAS_LEDGREEN);    return OK;}/************************************************************************ *  board_ledgreen_atlas_write ************************************************************************/static UINT32board_ledgreen_atlas_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, ATLAS_LEDGREEN) = *(UINT32 *)param;    return OK;}/************************************************************************ *  board_ledbar_atlas_malta_read ************************************************************************/static UINT32board_ledbar_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = REGP(KSEG1BASE, ATLAS_LEDBAR);    return OK;}/************************************************************************ *  board_ledbar_atlas_malta_write ************************************************************************/static UINT32board_ledbar_atlas_malta_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, ATLAS_LEDBAR) = *(UINT32 *)param;    return OK;}/************************************************************************ *  board_ledbar_sead_read ************************************************************************/static UINT32board_ledbar_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = REGP(KSEG1BASE, SEAD_PLED);    return OK;}/************************************************************************ *  board_ledbar_sead_write ************************************************************************/static UINT32board_ledbar_sead_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, SEAD_PLED) = *(UINT32 *)param;    return OK;}/************************************************************************ *  board_asciiword_atlas_malta_write ************************************************************************/static UINT32board_asciiword_atlas_malta_write(    void   *param,    void   *data,    UINT32 size ){    REGP(KSEG1BASE, ATLAS_ASCIIWORD) = *(UINT32 *)param;    return OK;}/************************************************************************ *  board_asciiword_sead_write ************************************************************************/static UINT32board_asciiword_sead_write(    void   *param,    void   *data,    UINT32 size ){    UINT32 tl, sl, i;    sl = 8 ;    if( alpha_display_size < 8 )    {        sl = alpha_display_size;    }    for(i=0; i<sl; i++)    {        tl = ( (*(UINT32 *)param) >> (28-(i*4)) ) & 0xf;        tl = bin2char[ tl ];        *alpha_io[ i ] = tl;    }     return OK;}/************************************************************************ *  board_asciichar_write ************************************************************************/static UINT32board_asciichar_write(    void   *param,    void   *data,    UINT32 size ){    UINT32 tl;    UINT8  *ptb;    tl  = ((t_sys_alphanumeric *)param)->posid;    ptb = ((t_sys_alphanumeric *)param)->string;    if ( tl < alpha_display_size )    {        *(alpha_io[tl]) = *ptb;	return OK;    }    else    {        return ERROR_SYSCON_INVALID_CHAR_POS;    }}/************************************************************************ *  board_asciistring_write ************************************************************************/static UINT32board_asciistring_write(    void   *param,    void   *data,    UINT32 size ){    UINT32 tl;    UINT8  *ptb;    tl  = ((t_sys_alphanumeric *)param)->posid;    ptb = ((t_sys_alphanumeric *)param)->string;        /* display string */    while( tl < alpha_display_size )    {        if ( *ptb == 0 )        {            break;        }        *(alpha_io[tl]) = (*ptb) & 0x7f;       tl++;       ptb++;    }        /* check for string termination at max. char. pos. */    if ( *ptb == 0 )    {        /* blank the rest */        while ( tl < alpha_display_size )        {            *(alpha_io[ tl ]) = SP;            tl++;        }        return OK;    }    else    {        return ERROR_SYSCON_INVALID_CHAR_POS;    }}/************************************************************************ *  millisec ************************************************************************/static UINT32millisec(    UINT32 cpufreq_hz ){    UINT32 calc, cycle_per_count, count;    if( cpufreq_hz == 0 )        return 0;    SYSCON_read( SYSCON_CPU_CYCLE_PER_COUNT_ID,                 (void *)&cycle_per_count,                 sizeof(UINT32) );    SYSCON_read( SYSCON_CPU_CP0_COUNT_ID,		 (void *)&count,		 sizeof(UINT32) );	    calc = cpufreq_hz / ( 1000 * cycle_per_count );    if( calc != 0 )    {	calc = count / calc;    }    else    {        calc = count * 1000 * cycle_per_count / cpufreq_hz;    }    return calc;}/************************************************************************ *  board_get_millisec_atlas_malta_read ************************************************************************/static UINT32board_get_millisec_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = millisec( sys_cpufreq_hz );    return OK;}/************************************************************************ *  board_get_millisec_sead_read ************************************************************************/static UINT32board_get_millisec_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = millisec( sys_cpufreq_hz ?				     sys_cpufreq_hz :				     SEAD_MAX_FREQ_MHZ * 1000000 );    return OK;}/************************************************************************ *    board_piix4_smb_base_malta_read   ************************************************************************/static UINT32board_piix4_smb_base_malta_read(    void   *param,    void   *data,    UINT32 size ){    /*  PIIX4 SMB registers     *  are memory mapped into SMB Bar     */    if( pci_lookup_bar( PCI_BUS_LOCAL,			   MALTA_DEVNUM_PIIX4,			   PIIX4_PCI_FUNCTION_POWER,			   PIIX4_PCI_BAR_SMB_POS,			   (void **)param ) )    {        return OK;    }    else        return ERROR_SYSCON_UNKNOWN_PARAM;}/************************************************************************ *    board_piix4_power_base_malta_read   ************************************************************************/static UINT32board_piix4_power_base_malta_read(    void   *param,    void   *data,    UINT32 size ){    /*  PIIX4 Power Management registers     *  are memory mapped into POWER Bar     */    if( pci_lookup_bar( PCI_BUS_LOCAL,			   MALTA_DEVNUM_PIIX4,			   PIIX4_PCI_FUNCTION_POWER,			   PIIX4_PCI_BAR_POWER_POS,			   (void **)param ) )    {        return OK;    }    else        return ERROR_SYSCON_UNKNOWN_PARAM;}/************************************************************************ *  board_systemflash_sectorsize_atlas_read ************************************************************************/static UINT32board_systemflash_sectorsize_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = ATLAS_SYSTEMFLASH_SECTORSIZE;    return OK;}/************************************************************************ * board_monitorflash_sectorsize_atlas_read  ************************************************************************/static UINT32board_monitorflash_sectorsize_atlas_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = ATLAS_MONITORFLASH_SECTORSIZE;    return OK;}/************************************************************************ * board_monitorflash_sectorsize_malta_read  ************************************************************************/static UINT32board_monitorflash_sectorsize_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = MALTA_MONITORFLASH_SECTORSIZE;    return OK;}/************************************************************************ *  board_systemflash_sectorsize_sead_read ************************************************************************/static UINT32board_systemflash_sectorsize_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = SEAD_SYSTEMFLASH_SECTORSIZE;    return OK;}/************************************************************************ *  board_fileflash_sectorsize_atlas_malta_read ************************************************************************/static UINT32board_fileflash_sectorsize_atlas_malta_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = ATLAS_FILEFLASH_SECTORSIZE;    return OK;}/************************************************************************ *  board_fileflash_sectorsize_sead_read ************************************************************************/static UINT32board_fileflash_sectorsize_sead_read(    void   *param,    void   *data,    UINT32 size ){    *(UINT32 *)param = SEAD_FILEFLASH_SECTORSIZE;    return OK;

⌨️ 快捷键说明

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