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

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_47/] [or1ksim/] [peripheral/] [eth.c] - Diff between revs 997 and 1018

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

Rev 997 Rev 1018
Line 414... Line 414...
 
 
            eth->regs.bd_ram[eth->rx.bd_index] = eth->rx.bd;
            eth->regs.bd_ram[eth->rx.bd_index] = eth->rx.bd;
 
 
            /* advance to next BD */
            /* advance to next BD */
            if ( TEST_FLAG( eth->rx.bd, ETH_RX_BD, WRAP ) || eth->rx.bd_index >= ETH_BD_COUNT )
            if ( TEST_FLAG( eth->rx.bd, ETH_RX_BD, WRAP ) || eth->rx.bd_index >= ETH_BD_COUNT )
                eth->rx.bd_index = eth->regs.tx_bd_num;
                eth->rx.bd_index = eth->regs.tx_bd_num << 1;
            else
            else
                eth->rx.bd_index += 2;
                eth->rx.bd_index += 2;
 
 
            if ( ( TEST_FLAG( eth->regs.int_mask, ETH_INT_MASK, RXB_M ) ) &&
            if ( ( TEST_FLAG( eth->regs.int_mask, ETH_INT_MASK, RXB_M ) ) &&
                 ( TEST_FLAG( eth->rx.bd, ETH_RX_BD, IRQ )              ) ) {
                 ( TEST_FLAG( eth->rx.bd, ETH_RX_BD, IRQ )              ) ) {
Line 616... Line 616...
        eth->regs.ipgr1 = 0x0000000C;
        eth->regs.ipgr1 = 0x0000000C;
        eth->regs.ipgr2 = 0x00000012;
        eth->regs.ipgr2 = 0x00000012;
        eth->regs.packetlen = 0x003C0600;
        eth->regs.packetlen = 0x003C0600;
        eth->regs.collconf = 0x000F003F;
        eth->regs.collconf = 0x000F003F;
        eth->regs.miimoder = 0x00000064;
        eth->regs.miimoder = 0x00000064;
        eth->regs.tx_bd_num = 0x00000080;
        eth->regs.tx_bd_num = 0x00000040;
 
 
        /* Initialize TX/RX status */
        /* Initialize TX/RX status */
        memset( &(eth->tx), 0, sizeof(eth->tx) );
        memset( &(eth->tx), 0, sizeof(eth->tx) );
        memset( &(eth->rx), 0, sizeof(eth->rx) );
        memset( &(eth->rx), 0, sizeof(eth->rx) );
        eth->rx.bd_index = eth->regs.tx_bd_num;
        eth->rx.bd_index = eth->regs.tx_bd_num << 1;
 
 
        /* Initialize VAPI */
        /* Initialize VAPI */
        if (config.ethernets[i].base_vapi_id) {
        if (config.ethernets[i].base_vapi_id) {
            eth->base_vapi_id = config.ethernets[i].base_vapi_id;
            eth->base_vapi_id = config.ethernets[i].base_vapi_id;
            vapi_install_multi_handler( eth->base_vapi_id, ETH_NUM_VAPI_IDS, eth_vapi_read );
            vapi_install_multi_handler( eth->base_vapi_id, ETH_NUM_VAPI_IDS, eth_vapi_read );
Line 821... Line 821...
 
 
 
 
/* When TX_BD_NUM is written, also reset current RX BD index */
/* When TX_BD_NUM is written, also reset current RX BD index */
void eth_write_tx_bd_num( struct eth_device *eth, unsigned long value )
void eth_write_tx_bd_num( struct eth_device *eth, unsigned long value )
{
{
    eth->rx.bd_index = eth->regs.tx_bd_num = value & 0xFF;
    eth->regs.tx_bd_num = value & 0xFF;
 
    eth->rx.bd_index = eth->regs.tx_bd_num << 1;
}
}
/* ========================================================================= */
/* ========================================================================= */
 
 
 
 
/*
/*

powered by: WebSVN 2.1.0

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