bugfix for lance. works in vmware now.
This commit is contained in:
parent
34d5401ed4
commit
2528a06954
1 changed files with 12 additions and 7 deletions
|
@ -193,8 +193,10 @@ unsigned long vir2phys( unsigned long x )
|
|||
int r;
|
||||
unsigned long value;
|
||||
|
||||
if ( (r=sys_umap( SELF, VM_D, x, 4, &value )) != OK )
|
||||
if ( (r=sys_umap( SELF, VM_D, x, 4, &value )) != OK ) {
|
||||
printf("lance: umap of 0x%lx failed\n",x );
|
||||
panic( "lance", "sys_umap failed", r );
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
@ -305,7 +307,8 @@ static int cur_tx_slot_nr = 0; /* Tx-slot number */
|
|||
static char isstored[TX_RING_SIZE]; /* Tx-slot in-use */
|
||||
static char *progname;
|
||||
|
||||
|
||||
phys_bytes lance_buf_phys;
|
||||
|
||||
/*===========================================================================*
|
||||
* lance_task *
|
||||
*===========================================================================*/
|
||||
|
@ -494,6 +497,11 @@ message *mp;
|
|||
|
||||
pci_init();
|
||||
|
||||
if(!lance_buf && !(lance_buf = alloc_contig(LANCE_BUF_SIZE, AC_ALIGN4K|AC_LOWER16M, &lance_buf_phys))) {
|
||||
panic( "lance", "alloc_contig failed", LANCE_BUF_SIZE);
|
||||
}
|
||||
printf("lance buf: v 0x%lx ph 0x%lx\n", lance_buf, lance_buf_phys);
|
||||
|
||||
port = mp->DL_PORT;
|
||||
if (port < 0 || port >= EC_PORT_NR_MAX)
|
||||
{
|
||||
|
@ -1679,15 +1687,12 @@ static void lance_init_card(ec)
|
|||
ether_card_t *ec;
|
||||
{
|
||||
int i;
|
||||
Address l;
|
||||
Address l = lance_buf;
|
||||
unsigned short ioaddr = ec->ec_port;
|
||||
|
||||
/* ============= setup init_block(cf. lance_probe1) ================ */
|
||||
/* make sure data structure is 8-byte aligned and below 16MB (for DMA) */
|
||||
assert(!lance_buf);
|
||||
if(!(lance_buf = alloc_contig(LANCE_BUF_SIZE, AC_ALIGN4K|AC_LOWER16M, &l))) {
|
||||
panic( "lance", "alloc_contig failed", LANCE_BUF_SIZE);
|
||||
}
|
||||
|
||||
lp = (struct lance_interface *)l;
|
||||
lp->init_block.mode = 0x3; /* disable Rx and Tx */
|
||||
lp->init_block.filter[0] = lp->init_block.filter[1] = 0x0;
|
||||
|
|
Loading…
Reference in a new issue