OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [rel-0-3-0-rc3/] [or1ksim/] [peripheral/] [eth.c] - Diff between revs 970 and 997

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 970 Rev 997
Line 646... Line 646...
        struct eth_device *eth = &(eths[i]);
        struct eth_device *eth = &(eths[i]);
 
 
        if ( eth->baseaddr == 0 )
        if ( eth->baseaddr == 0 )
            continue;
            continue;
 
 
        printf( "\nEthernet MAC %u at 0x%08X:\n", i, eth->baseaddr );
        PRINTF( "\nEthernet MAC %u at 0x%08X:\n", i, eth->baseaddr );
        printf( "MODER        : 0x%08lX\n", eth->regs.moder );
        PRINTF( "MODER        : 0x%08lX\n", eth->regs.moder );
        printf( "INT_SOURCE   : 0x%08lX\n", eth->regs.int_source );
        PRINTF( "INT_SOURCE   : 0x%08lX\n", eth->regs.int_source );
        printf( "INT_MASK     : 0x%08lX\n", eth->regs.int_mask );
        PRINTF( "INT_MASK     : 0x%08lX\n", eth->regs.int_mask );
        printf( "IPGT         : 0x%08lX\n", eth->regs.ipgt );
        PRINTF( "IPGT         : 0x%08lX\n", eth->regs.ipgt );
        printf( "IPGR1        : 0x%08lX\n", eth->regs.ipgr1 );
        PRINTF( "IPGR1        : 0x%08lX\n", eth->regs.ipgr1 );
        printf( "IPGR2        : 0x%08lX\n", eth->regs.ipgr2 );
        PRINTF( "IPGR2        : 0x%08lX\n", eth->regs.ipgr2 );
        printf( "PACKETLEN    : 0x%08lX\n", eth->regs.packetlen );
        PRINTF( "PACKETLEN    : 0x%08lX\n", eth->regs.packetlen );
        printf( "COLLCONF     : 0x%08lX\n", eth->regs.collconf );
        PRINTF( "COLLCONF     : 0x%08lX\n", eth->regs.collconf );
        printf( "TX_BD_NUM    : 0x%08lX\n", eth->regs.tx_bd_num );
        PRINTF( "TX_BD_NUM    : 0x%08lX\n", eth->regs.tx_bd_num );
        printf( "CTRLMODER    : 0x%08lX\n", eth->regs.controlmoder );
        PRINTF( "CTRLMODER    : 0x%08lX\n", eth->regs.controlmoder );
        printf( "MIIMODER     : 0x%08lX\n", eth->regs.miimoder );
        PRINTF( "MIIMODER     : 0x%08lX\n", eth->regs.miimoder );
        printf( "MIICOMMAND   : 0x%08lX\n", eth->regs.miicommand );
        PRINTF( "MIICOMMAND   : 0x%08lX\n", eth->regs.miicommand );
        printf( "MIIADDRESS   : 0x%08lX\n", eth->regs.miiaddress );
        PRINTF( "MIIADDRESS   : 0x%08lX\n", eth->regs.miiaddress );
        printf( "MIITX_DATA   : 0x%08lX\n", eth->regs.miitx_data );
        PRINTF( "MIITX_DATA   : 0x%08lX\n", eth->regs.miitx_data );
        printf( "MIIRX_DATA   : 0x%08lX\n", eth->regs.miirx_data );
        PRINTF( "MIIRX_DATA   : 0x%08lX\n", eth->regs.miirx_data );
        printf( "MIISTATUS    : 0x%08lX\n", eth->regs.miistatus );
        PRINTF( "MIISTATUS    : 0x%08lX\n", eth->regs.miistatus );
        printf( "MAC Address  : %02X:%02X:%02X:%02X:%02X:%02X\n",
        PRINTF( "MAC Address  : %02X:%02X:%02X:%02X:%02X:%02X\n",
                eth->mac_address[0], eth->mac_address[1], eth->mac_address[2],
                eth->mac_address[0], eth->mac_address[1], eth->mac_address[2],
                eth->mac_address[3], eth->mac_address[4], eth->mac_address[5] );
                eth->mac_address[3], eth->mac_address[4], eth->mac_address[5] );
        printf( "HASH0        : 0x%08lX\n", eth->regs.hash0 );
        PRINTF( "HASH0        : 0x%08lX\n", eth->regs.hash0 );
        printf( "HASH1        : 0x%08lX\n", eth->regs.hash1 );
        PRINTF( "HASH1        : 0x%08lX\n", eth->regs.hash1 );
    }
    }
}
}
/* ========================================================================= */
/* ========================================================================= */
 
 
 
 
Line 695... Line 695...
*/
*/
unsigned long eth_read32( unsigned long addr )
unsigned long eth_read32( unsigned long addr )
{
{
    struct eth_device *eth;
    struct eth_device *eth;
    if ( !eth_find_controller( addr, &eth, &addr ) )    {
    if ( !eth_find_controller( addr, &eth, &addr ) )    {
        printf( "eth_read32( 0x%08lX ): Not in registered range(s)\n", addr );
        PRINTF( "eth_read32( 0x%08lX ): Not in registered range(s)\n", addr );
        return 0;
        return 0;
    }
    }
 
 
    switch( addr ) {
    switch( addr ) {
    case ETH_MODER: return eth->regs.moder;
    case ETH_MODER: return eth->regs.moder;
Line 730... Line 730...
    }
    }
 
 
    if ( (addr >= ETH_BD_BASE) && (addr < ETH_BD_BASE + ETH_BD_SPACE) )
    if ( (addr >= ETH_BD_BASE) && (addr < ETH_BD_BASE + ETH_BD_SPACE) )
        return eth->regs.bd_ram[(addr - ETH_BD_BASE) / 4];
        return eth->regs.bd_ram[(addr - ETH_BD_BASE) / 4];
 
 
    printf( "eth_read32( 0x%08lX ): Illegal address\n", addr + eth->baseaddr );
    PRINTF( "eth_read32( 0x%08lX ): Illegal address\n", addr + eth->baseaddr );
    runtime.sim.cont_run = 0;
    runtime.sim.cont_run = 0;
    return 0;
    return 0;
}
}
/* ========================================================================= */
/* ========================================================================= */
 
 
Line 744... Line 744...
*/
*/
void eth_write32( unsigned long addr, unsigned long value )
void eth_write32( unsigned long addr, unsigned long value )
{
{
    struct eth_device *eth;
    struct eth_device *eth;
    if ( !eth_find_controller( addr, &eth, &addr ) )    {
    if ( !eth_find_controller( addr, &eth, &addr ) )    {
        printf( "eth_write32( 0x%08lX ): Not in registered range(s)\n", addr );
        PRINTF( "eth_write32( 0x%08lX ): Not in registered range(s)\n", addr );
    return;
    return;
    }
    }
 
 
    switch( addr ) {
    switch( addr ) {
    case ETH_MODER: eth->regs.moder = value; if (TEST_FLAG(value, ETH_MODER, RST)) eth_reset(); return;
    case ETH_MODER: eth->regs.moder = value; if (TEST_FLAG(value, ETH_MODER, RST)) eth_reset(); return;
Line 786... Line 786...
    if ( (addr >= ETH_BD_BASE) && (addr < ETH_BD_BASE + ETH_BD_SPACE) ) {
    if ( (addr >= ETH_BD_BASE) && (addr < ETH_BD_BASE + ETH_BD_SPACE) ) {
        eth->regs.bd_ram[(addr - ETH_BD_BASE) / 4] = value;
        eth->regs.bd_ram[(addr - ETH_BD_BASE) / 4] = value;
        return;
        return;
    }
    }
 
 
    printf( "eth_write32( 0x%08lX ): Illegal address\n", addr + eth->baseaddr );
    PRINTF( "eth_write32( 0x%08lX ): Illegal address\n", addr + eth->baseaddr );
    runtime.sim.cont_run = 0;
    runtime.sim.cont_run = 0;
    return;
    return;
}
}
/* ========================================================================= */
/* ========================================================================= */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.