Driver for NE2000 network card clone
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)
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Summary: |
Driver for NE2000 clone → Driver for NE2000 network card clone
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Description: |
modified (diff)
|
Keywords: |
gsoc10 gsoc11 added; gsoc removed
|
Keywords: |
gsoc10,gsoc11 → gsoc10, gsoc11
|
Keywords: |
gsoc11 removed
|
Resolution: |
→ fixed
|
Status: |
new → closed
|
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.).