Driver bounties?
Driver bounties?
Our BareMetal OS projects is moving along but one thing that is lacking is Ethernet drivers. Currently the only supported NICs are ones using the Realtek 8139 chipset. The 8139 driver works well but it is getting harder to find the hardware and the hardware only supports up to 100mbit.
We were thinking of offering a bounty for anyone who provides an additional driver for BareMetal OS. Ideally we would like support for the Realtek 8169/8118 and the Intel 8255x series (Both of these are gigabit chipsets). The drivers would need to be written in x86-64 Assembly and provide several basic commands (init the chipset, reset the chipset, send a frame, poll for a received frame). The drivers that are written would be open-source and added to the BareMetal OS repository.
Is there any interest in this? What could be offered to the developer? We were also thinking a bonus could be offered for writing some docs in the OSDev wiki to help others with writing driver for those specific chipsets.
Thanks,
- Ian Seyler
We were thinking of offering a bounty for anyone who provides an additional driver for BareMetal OS. Ideally we would like support for the Realtek 8169/8118 and the Intel 8255x series (Both of these are gigabit chipsets). The drivers would need to be written in x86-64 Assembly and provide several basic commands (init the chipset, reset the chipset, send a frame, poll for a received frame). The drivers that are written would be open-source and added to the BareMetal OS repository.
Is there any interest in this? What could be offered to the developer? We were also thinking a bonus could be offered for writing some docs in the OSDev wiki to help others with writing driver for those specific chipsets.
Thanks,
- Ian Seyler
Last edited by IanSeyler on Thu Mar 24, 2011 11:34 am, edited 2 times in total.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: Driver bounties?
Unless you find people interested in this which might not prove to be impossible I think it could be a good idea to not force them to write the drivers in assembly. Drivers are not part of the kernel so the kernel would still be looked upon as a pure assembly kernel.
I'm just saying it could prove easier for you to find people if you relax the strict assembly rules and let them develop drivers in C instead and it might also let you look at porting drivers from other projects that already have these drivers.
I'm just saying it could prove easier for you to find people if you relax the strict assembly rules and let them develop drivers in C instead and it might also let you look at porting drivers from other projects that already have these drivers.
Fudge - Simplicity, clarity and speed.
http://github.com/Jezze/fudge/
http://github.com/Jezze/fudge/
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: Driver bounties?
you can always gcc -S for the sake of it
Anyhow, how about you modifying your driver to work on someone else's OS in exchange for getting a new driver? Sounds like a nice deal. (If only I would spend the time to stabilize the driver interface...)
Anyhow, how about you modifying your driver to work on someone else's OS in exchange for getting a new driver? Sounds like a nice deal. (If only I would spend the time to stabilize the driver interface...)
Re: Driver bounties?
Or you could implement the kernel-side interface for one of the generic driver interfaces (UDI, CDI, EDI, etc.)... *ducks*
Re: Driver bounties?
Nice deal, but steep learning curve. (Unless you both agree to Jack's idea.)Combuster wrote:you can always gcc -S for the sake of it
Anyhow, how about you modifying your driver to work on someone else's OS in exchange for getting a new driver? Sounds like a nice deal. (If only I would spend the time to stabilize the driver interface...)
-
- Member
- Posts: 2566
- Joined: Sun Jan 14, 2007 9:15 pm
- Libera.chat IRC: miselin
- Location: Sydney, Australia (I come from a land down under!)
- Contact:
Re: Driver bounties?
If you removed the assembly-only restriction I'm sure you'd have a lot more interest. Monetary or other similar incentives are a great way to get hobbyists motivated, after all .
Re: Driver bounties?
@pcmattman: It might not be all together that easy... check this out: http://bit.ly/bQepg7
Fudge - Simplicity, clarity and speed.
http://github.com/Jezze/fudge/
http://github.com/Jezze/fudge/
Re: Driver bounties?
We would rather stick with Assembly since the rest of the OS is Assembly.
What would be ideal to offer a developer?
I'm thinking the Intel 8255x would be the "easiest" to target since Intel published a driver developer doc for it.
Thanks,
- Ian Seyler
What would be ideal to offer a developer?
I'm thinking the Intel 8255x would be the "easiest" to target since Intel published a driver developer doc for it.
Thanks,
- Ian Seyler
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: Driver bounties?
Hello ReturnInfinity,
I think you are confusing i8255x and i8254x, the first is 100mbit card, second is gigabit.
I myself am working on network stack/drivers for kolibrios, written in 32bit fasm.
you can find available drivers and other info on this wiki: http://wiki.kolibrios.org/wiki/New_stack#Drivers
code is on svn server: svn://kolibrios.org/kernel/branches/net
I could help you out, if i had a 64-bit PC (I have one, but it's a laptop, and that doesnt take all those PCI cards )
Or, you are offcourse free to find some inspiration in the source code.
hidnplayr
I think you are confusing i8255x and i8254x, the first is 100mbit card, second is gigabit.
I myself am working on network stack/drivers for kolibrios, written in 32bit fasm.
you can find available drivers and other info on this wiki: http://wiki.kolibrios.org/wiki/New_stack#Drivers
code is on svn server: svn://kolibrios.org/kernel/branches/net
I could help you out, if i had a 64-bit PC (I have one, but it's a laptop, and that doesnt take all those PCI cards )
Or, you are offcourse free to find some inspiration in the source code.
hidnplayr
Re: Driver bounties?
For pure 64 bit drivers, you could contact Menuet64 developers for sharing code.
http://www.menuetos.net
http://www.menuetos.net
Re: Driver bounties?
My mistake, I was meaning to refer to the i8254x (gigabit). After a i8254x driver is completed the next one will be Realtek's 8169.
So far the i8254x driver is able to detect the NIC's MAC address. I am testing it under VMware at the moment. The progress can be seen here: http://code.google.com/p/baremetal/sour ... i8254x.asm
Send and receive functions have not been written yet.
As for Menuet64 their compatibility list only mentions 2 very old 100mbit cards.
Thanks,
-Ian
So far the i8254x driver is able to detect the NIC's MAC address. I am testing it under VMware at the moment. The progress can be seen here: http://code.google.com/p/baremetal/sour ... i8254x.asm
Send and receive functions have not been written yet.
As for Menuet64 their compatibility list only mentions 2 very old 100mbit cards.
Thanks,
-Ian
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: Driver bounties?
I'm tempted, and I've got no problem with the ASM aspect -- but, as above, my access to any such hardware to test on is minimal.
- gravaera
- Member
- Posts: 737
- Joined: Tue Jun 02, 2009 4:35 pm
- Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.
Re: Driver bounties?
Thanks for this link: I liked the presentation very muchJezze wrote:@pcmattman: It might not be all together that easy... check this out: http://bit.ly/bQepg7
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Re: Driver bounties?
We developed an i8254x driver ourselves. The source can be seen here: http://code.google.com/p/baremetal/sour ... i8254x.asm
It works well within VirtualBox but not in VMware. QEMU seems to be ok but it does not detect the MAC address.
When I get some time I will try to update the wiki: http://wiki.osdev.org/Intel_8254x
I have purchased some physical cards from eBay and will do additional testing with them when they arrive.
Thanks,
-Ian
It works well within VirtualBox but not in VMware. QEMU seems to be ok but it does not detect the MAC address.
When I get some time I will try to update the wiki: http://wiki.osdev.org/Intel_8254x
I have purchased some physical cards from eBay and will do additional testing with them when they arrive.
Thanks,
-Ian
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: Driver bounties?
Looks pretty good (I read it diagonally)
on line 215 i see this code:
Why didnt you use
or even smaller (and same speed?):
on line 215 i see this code:
Code: Select all
bts rax, 24 ; EOP
bts rax, 25 ; IFCS
bts rax, 27 ; RS
Code: Select all
or rax, 1 shl 24 + 1 shl 25 + 1 shl 26
Code: Select all
or eax, 1 shl 24 + 1 shl 25 + 1 shl 26