LANCE driver for VMWare 4

Hi All,

I have checked-in additions to the Lance Ethernet device driver, to make it work with VMWare 4.0 (I hope Smiling. I have provided details about limitations in the 'JNode development drivers' JNode-Net forum. One of the main issues that I ran into was that I struggled to get the device to read/write the receive and transmit descriptors that are located in ram. The device uses PCI bus mastering to read this memory, and I spent countless hours trying to figure out why this wasn't working. Finally I found the problem, which was the PCI command register needed to be set to enable it to become a PCI bus master with the following line of code:

device.writeConfigByte(
PCIConstants.PCI_COMMAND,
device.readConfigByte(PCIConstants.PCI_COMMAND)
| PCIConstants.PCI_COMMAND_MASTER);

The device driver still needs some work, specifically, making it more efficient, handling error conditions, and expanding support for other devices than AMD PCnet PCI II Am79C970A.

I would be interested if this works for other people and if it works outside VMWare 4.0. I plan on continuing work on the driver and would be interested in any comments.

No full luck on vmware 3

Hi, I get an "ERROR [TxDescriptorRing]: Not owner of descriptor index 0" when trying to "bootp eth0" in VMWare 3 under windows.
It does seem to continue afterwards. (Just no luck with the card settings yet)

During boot, i see a "Found PCnet/PCI II 79C970A at 0x1000 with MAC ..." message.

Ewout

Lance driver on VMWare 3

I am looking for someone with VMWare 3 to grab some data, so that I can find the problem with the Lance Ethernet driver (I have VMWare 4). First, with the virtual network device setup in VMWare do you get “INFO [LanceCore] PCnet/PCI II 79C970A Initialization Complete” after the “INFO [LanceCore] Found PCnet/PCI II 79C970A at 0x1060 …”

Also, I have checked-in a commented debug statement that will stop the driver on a request to transimt and log a bunch of debug info, that should allow me to further isolate the problem. Here are the steps to get the info:

1. get the latest updates from CVS
2. uncomment the dumpDebugInfo() call in LanceCore.transmit
3. build jnode
4. run jnode on VMWare 3 (with network device)
5. run bootp command “bootp eth0”
6. bunch of data should be output on the log page (alt-F7)

If possible I would like all the data someone knows of a way to cut output from VMWare. But I am not sure if this is possible and I know that no one would want to copy all this data by hand:-). So, here is a list of the data that would be most helpful starting from the top of the log.

1. CSR0 = ?
2. Initialization block data
3. Receive descriptor 0 data
4. Transmit descriptor 0 data
5. The following CSR registers 1, 2, 24, 25, 30, 31, 58, 76, 78

Thanks,

Chris

Try contacting me on MSN

Hi Chris, try to contact me on MSN (or mail), then we might be able to solve this interactively.

Ewout

I've got tested it on VMWare

I've got tested it on VMWare 4 and it's works, "dhcp eth0" command works and ping command works too.

Great work chris ^^

Fabien.