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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [bootloaders/] [orpmon/] [drivers/] [eth.c] - Diff between revs 405 and 406

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

Rev 405 Rev 406
Line 385... Line 385...
 
 
  bd[tx_last].addr = (unsigned long)buf;
  bd[tx_last].addr = (unsigned long)buf;
 
 
 retry_eth_send:
 retry_eth_send:
  bd[tx_last].len_status &= 0x0000ffff & ~ETH_TX_BD_STATS;
  bd[tx_last].len_status &= 0x0000ffff & ~ETH_TX_BD_STATS;
 
 
  if (eth_monitor_enabled) // enable IRQ when sending
  if (eth_monitor_enabled) // enable IRQ when sending
    bd[tx_last].len_status |= ETH_TX_BD_IRQ;
    bd[tx_last].len_status |= ETH_TX_BD_IRQ;
 
 
  bd[tx_last].len_status |= len << 16 | ETH_TX_BD_READY;
  bd[tx_last].len_status |= len << 16 | ETH_TX_BD_READY;
 
 
 
  if (!eth_monitor_enabled) // If we're not running the network sniffer...
 
    {
 
      while (bd[tx_last].len_status & ETH_TX_BD_READY);
 
 
 
      //printf("packet tx\n");
 
      // Check it was sent OK 
  /*
  /*
  while (bd[tx_last].len_status & ETH_TX_BD_READY);
        BUG with current implementation - constantly getting carrier sense
  printf("packet tx\n");
        lost, and deferred indication, so ignore it for now.
  // Check it was sent OK
      if ( bd[tx_last].len_status & 0xf)
  if ( bd[tx_last].len_status & 0x2)
 
    {
    {
      printf("eth_send: carrier sense lost (txbd: 0x%x), deferred, retrying\n",
      printf("eth_send: carrier sense lost (txbd: 0x%x), deferred, retrying\n",
             bd[tx_last].len_status);
             bd[tx_last].len_status);
      sleep(1000);
          sleep(1);
      goto retry_eth_send;
      goto retry_eth_send;
    }
    }
  */
  */
 
    }
 
 
  tx_last++;
  tx_last++;
 
 
  if (tx_last == ETH_TXBD_NUM)
  if (tx_last == ETH_TXBD_NUM)
    tx_last = 0;
    tx_last = 0;
 
 

powered by: WebSVN 2.1.0

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