Opened 14 years ago

Closed 13 years ago

Last modified 13 years ago

#187 closed enhancement (fixed)

Driver for NE2000 network card clone

Reported by: Jakub Jermář Owned by:
Priority: major Milestone: 0.4.3
Component: helenos/net/other Version: mainline
Keywords: gsoc10 Cc:
Blocker for: Depends on:
See also:

Description (last modified by Jakub Jermář)

Implement a native HelenOS driver for one or more clones of NE2000 network interface card.

Details
The new driver should be realized as a module which plugs itself into the HelenOS networking stack and implements the network interface card interface in the NE2000 specific way.

As the various NE2000 clones are expected to be quite similar, the driver should be NE2000-generic when possible in order to support a greater scale of NE2000-based network interface cards.

What Gains and Benefits will this bring?
The HelenOS networking stack actually comes with a driver for a NE2000 clone borrowed from MINIX 3 which was adjusted to compile on HelenOS. The problem of the MINIX 3 driver though is that it was not written with 64-bits in mind. This is not a problem on a 32-bit x86-centric MINIX 3, but is a problem on a multiplatform 64-bit system such as HelenOS. The MINIX 3 also has a different view on how to do I/O with the device, so mixing the MINIX 3 and HelenOS code results in a somewhat bizarre hybrid. Needless to say, a clean native implementation is much better than a whimsical hybrid.

The clone supported by the MINIX 3 driver is dp8390. For HelenOS, this is an important network interface card thanks to its large incidence in the real world and also in various simulators such as Qemu. As of now, it is the only NIC supported by HelenOS besides the loopback device.

Difficulty
As the NE2000 clones do not require DMA to be used and can be controlled using PIO (programmed I/O), this project is easier than the other projects for implementing a network card driver. The kernel already provides all building blocks required to communicate with an NE2000 from userspace. Thus the project has the medium difficulty.
Required skills
A successful applicant will have good skills of programming in the C language and the ability to learn and use HelenOS specific I/O functions. A successful applicant should have a fair understanding of the workings of the networking stack too.
Documentation
Possible mentors
HelenOS Core Team, Jakub Jermar, Martin Decky, Lukas Mejdrech, Jiri Svoboda

Change History (20)

comment:1 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:2 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:3 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:4 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:5 by Jakub Jermář, 14 years ago

Summary: Driver for NE2000 cloneDriver for NE2000 network card clone

comment:6 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:7 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:8 by Martin Decky, 14 years ago

Description: modified (diff)

comment:9 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:10 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:11 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:12 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:13 by Jakub Jermář, 14 years ago

Description: modified (diff)

comment:14 by Jakub Jermář, 13 years ago

Keywords: gsoc10 gsoc11 added; gsoc removed

comment:15 by Martin Decky, 13 years ago

In the meantime the original ported NE2000 driver has been completely rewritten and it can be considered a native implementation now (the amount of the trace of the original code is negligeable).

Therefore I suggest to alter this ticket to focus on adding new features to the current NE2000 driver (host DMA, support for the PCI variant of NE2000, etc.).

comment:16 by Jakub Jermář, 13 years ago

Milestone: 0.5.00.5.1

comment:17 by Jakub Jermář, 13 years ago

Type: taskenhancement

comment:18 by Jakub Jermář, 13 years ago

Keywords: gsoc10,gsoc11 → gsoc10, gsoc11

comment:19 by Jakub Jermář, 13 years ago

Keywords: gsoc11 removed
Resolution: fixed
Status: newclosed

Taking this ticket off the GSoC 2011 list and closing as fixed.
Fixed in changeset:mainline,815, changeset:mainline,811 and changeset:mainline,805.

comment:20 by Jakub Jermář, 13 years ago

Milestone: 0.5.00.4.3
Note: See TracTickets for help on using tickets.