forked from Imagelibrary/rtems
2003-06-30 Greg Menke <gregory.menke@gsfc.nasa.gov>
* network/dec21140.c, network/elnk.c: Update to compile on i386.
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
2003-06-30 Greg Menke <gregory.menke@gsfc.nasa.gov>
|
||||||
|
|
||||||
|
* network/dec21140.c, network/elnk.c: Update to compile on i386.
|
||||||
|
|
||||||
2003-06-13 Greg Menke <gregory.menke@gsfc.nasa.gov>
|
2003-06-13 Greg Menke <gregory.menke@gsfc.nasa.gov>
|
||||||
|
|
||||||
* network/README.3com: New file missed in previous commit.
|
* network/README.3com: New file missed in previous commit.
|
||||||
|
|||||||
@@ -271,9 +271,10 @@ struct dec21140_softc {
|
|||||||
struct arpcom arpcom;
|
struct arpcom arpcom;
|
||||||
|
|
||||||
rtems_irq_connect_data irqInfo;
|
rtems_irq_connect_data irqInfo;
|
||||||
|
|
||||||
rtems_event_set ioevent;
|
rtems_event_set ioevent;
|
||||||
|
|
||||||
|
int numRxbuffers, numTxbuffers;
|
||||||
|
|
||||||
volatile struct MD *MDbase;
|
volatile struct MD *MDbase;
|
||||||
volatile struct MD *nextRxMD;
|
volatile struct MD *nextRxMD;
|
||||||
volatile unsigned char *bufferBase;
|
volatile unsigned char *bufferBase;
|
||||||
@@ -516,8 +517,8 @@ dec21140Enet_initialize_hardware (struct dec21140_softc *sc)
|
|||||||
/*
|
/*
|
||||||
* Init RX ring
|
* Init RX ring
|
||||||
*/
|
*/
|
||||||
cp = (volatile unsigned char *)malloc(((NRXBUFS+NTXBUFS)*sizeof(struct MD))
|
cp = (volatile unsigned char *)malloc(((sc->numRxbuffers+sc->numTxbuffers)*sizeof(struct MD))
|
||||||
+ (NTXBUFS*RBUF_SIZE)
|
+ (sc->numTxbuffers*RBUF_SIZE)
|
||||||
+ CPU_CACHE_ALIGNMENT_FOR_BUFFER);
|
+ CPU_CACHE_ALIGNMENT_FOR_BUFFER);
|
||||||
sc->bufferBase = cp;
|
sc->bufferBase = cp;
|
||||||
cp += (CPU_CACHE_ALIGNMENT_FOR_BUFFER - (int)cp) & (CPU_CACHE_ALIGNMENT_FOR_BUFFER - 1);
|
cp += (CPU_CACHE_ALIGNMENT_FOR_BUFFER - (int)cp) & (CPU_CACHE_ALIGNMENT_FOR_BUFFER - 1);
|
||||||
@@ -526,8 +527,8 @@ dec21140Enet_initialize_hardware (struct dec21140_softc *sc)
|
|||||||
if (_CPU_is_paging_enabled())
|
if (_CPU_is_paging_enabled())
|
||||||
_CPU_change_memory_mapping_attribute
|
_CPU_change_memory_mapping_attribute
|
||||||
(NULL, cp,
|
(NULL, cp,
|
||||||
((NRXBUFS+NTXBUFS)*sizeof(struct MD))
|
((sc->numRxbuffers+sc->numTxbuffers)*sizeof(struct MD))
|
||||||
+ (NTXBUFS*RBUF_SIZE),
|
+ (sc->numTxbuffers*RBUF_SIZE),
|
||||||
PTE_CACHE_DISABLE | PTE_WRITABLE);
|
PTE_CACHE_DISABLE | PTE_WRITABLE);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -535,10 +536,10 @@ dec21140Enet_initialize_hardware (struct dec21140_softc *sc)
|
|||||||
sc->MDbase = rmd;
|
sc->MDbase = rmd;
|
||||||
sc->nextRxMD = sc->MDbase;
|
sc->nextRxMD = sc->MDbase;
|
||||||
|
|
||||||
buffer = cp + ((NRXBUFS+NTXBUFS)*sizeof(struct MD));
|
buffer = cp + ((sc->numRxbuffers+sc->numTxbuffers)*sizeof(struct MD));
|
||||||
st_le32( (tbase+memCSR3), (long)(phys_to_bus((long)(sc->MDbase))));
|
st_le32( (tbase+memCSR3), (long)(phys_to_bus((long)(sc->MDbase))));
|
||||||
|
|
||||||
for (i=0 ; i<NRXBUFS; i++)
|
for (i=0 ; i<sc->numRxbuffers; i++)
|
||||||
{
|
{
|
||||||
struct mbuf *m;
|
struct mbuf *m;
|
||||||
|
|
||||||
@@ -558,9 +559,9 @@ dec21140Enet_initialize_hardware (struct dec21140_softc *sc)
|
|||||||
/*
|
/*
|
||||||
* mark last RX buffer.
|
* mark last RX buffer.
|
||||||
*/
|
*/
|
||||||
sc->MDbase [NRXBUFS-1].buf2 = 0;
|
sc->MDbase [sc->numRxbuffers-1].buf2 = 0;
|
||||||
sc->MDbase [NRXBUFS-1].counts = 0xfec00000 | (RBUF_SIZE);
|
sc->MDbase [sc->numRxbuffers-1].counts = 0xfec00000 | (RBUF_SIZE);
|
||||||
sc->MDbase [NRXBUFS-1].next = sc->MDbase;
|
sc->MDbase [sc->numRxbuffers-1].next = sc->MDbase;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -568,7 +569,7 @@ dec21140Enet_initialize_hardware (struct dec21140_softc *sc)
|
|||||||
* Init TX ring
|
* Init TX ring
|
||||||
*/
|
*/
|
||||||
st_le32( (tbase+memCSR4), (long)(phys_to_bus((long)(rmd))) );
|
st_le32( (tbase+memCSR4), (long)(phys_to_bus((long)(rmd))) );
|
||||||
for (i=0 ; i<NTXBUFS; i++){
|
for (i=0 ; i<sc->numTxbuffers; i++){
|
||||||
(rmd+i)->buf2 = phys_to_bus(rmd+i+1);
|
(rmd+i)->buf2 = phys_to_bus(rmd+i+1);
|
||||||
(rmd+i)->buf1 = phys_to_bus(buffer + (i*RBUF_SIZE));
|
(rmd+i)->buf1 = phys_to_bus(buffer + (i*RBUF_SIZE));
|
||||||
(rmd+i)->counts = 0x01000000;
|
(rmd+i)->counts = 0x01000000;
|
||||||
@@ -580,8 +581,8 @@ dec21140Enet_initialize_hardware (struct dec21140_softc *sc)
|
|||||||
/*
|
/*
|
||||||
* mark last TX buffer.
|
* mark last TX buffer.
|
||||||
*/
|
*/
|
||||||
(rmd+NTXBUFS-1)->buf2 = phys_to_bus(rmd);
|
(rmd+sc->numTxbuffers-1)->buf2 = phys_to_bus(rmd);
|
||||||
(rmd+NTXBUFS-1)->next = rmd;
|
(rmd+sc->numTxbuffers-1)->next = rmd;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -648,7 +649,7 @@ dec21140_rxDaemon (void *arg)
|
|||||||
volatile unsigned int *tbase;
|
volatile unsigned int *tbase;
|
||||||
volatile struct MD *rmd;
|
volatile struct MD *rmd;
|
||||||
struct dec21140_softc *sc;
|
struct dec21140_softc *sc;
|
||||||
volatile struct ifnet *ifp;
|
struct ifnet *ifp;
|
||||||
struct ether_header *eh;
|
struct ether_header *eh;
|
||||||
struct mbuf *m;
|
struct mbuf *m;
|
||||||
unsigned int i,len;
|
unsigned int i,len;
|
||||||
@@ -1123,6 +1124,12 @@ rtems_dec21140_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach)
|
|||||||
*/
|
*/
|
||||||
sc->ioevent = unit_signals[unitNumber-1];
|
sc->ioevent = unit_signals[unitNumber-1];
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Save the buffer counts
|
||||||
|
*/
|
||||||
|
sc->numRxbuffers = (config->rbuf_count) ? config->rbuf_count : NRXBUFS;
|
||||||
|
sc->numTxbuffers = (config->xbuf_count) ? config->xbuf_count : NTXBUFS;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get card address spaces & retrieve its isr vector
|
* Get card address spaces & retrieve its isr vector
|
||||||
@@ -1179,6 +1186,8 @@ rtems_dec21140_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach)
|
|||||||
/*
|
/*
|
||||||
** Prep the board
|
** Prep the board
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(__PPC)
|
||||||
pci_write_config_word(pbus, pdev, pfun,
|
pci_write_config_word(pbus, pdev, pfun,
|
||||||
PCI_COMMAND,
|
PCI_COMMAND,
|
||||||
(unsigned16) ( PCI_COMMAND_MEMORY |
|
(unsigned16) ( PCI_COMMAND_MEMORY |
|
||||||
@@ -1186,6 +1195,11 @@ rtems_dec21140_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach)
|
|||||||
PCI_COMMAND_INVALIDATE |
|
PCI_COMMAND_INVALIDATE |
|
||||||
PCI_COMMAND_WAIT |
|
PCI_COMMAND_WAIT |
|
||||||
PCI_COMMAND_FAST_BACK ) );
|
PCI_COMMAND_FAST_BACK ) );
|
||||||
|
#endif
|
||||||
|
#if defined(__i386__)
|
||||||
|
pcib_conf_write16(signature, 0x04, ( 0x2 | 0x4 | 0x10 | 0x80 | 0x200) );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Store the interrupt name, we'll use it later when we initialize
|
** Store the interrupt name, we'll use it later when we initialize
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user