I have taken the ATI Bounty recently. I hope that the deadline of this bounty will motivate me a little bit.
The work will be splitted into several stages, whereas upon completion of every stage a binary driver may be published and the source will be svn-synced with main AROS tree. I hope some of you will be then able to test it and report any issues met.
I have abandoned the idea of universal ATI driver for all cards from this vendor. Instead, the radeon class will be implemented as the first one :). The support for R128 and other ancient models will come a bit later.
It’s time to create new project in my Eclipse IDE 🙂
I have just fixed some annoying bugs in nforce NIC driver. It should behave stable now and not hang whole arostcp if overflooded with packets. Currently the driver puts some debug output about usage of RX and TX queues – 4 messages within every second.
I have been trying to flood my aros machine and my driver with ping. Unfortunatelly 100MBit network was not sufficient to break the driver down. Occasionally, I have tried to flood the attacking machine with pings sent from my aros box, without success too 🙂
Out of almost 2 millions of packets used in this battle, something like 500 have been lost. Really a lot, just because of my debug output displayed on vga16-driven screen (the slowest driver we have). Some packets are lost too due to the gfx benchmark which I started occasionally at the same time.
I need betatesters now. If you can, please help. I’ve attached a link to the newest version of driver (binary file to be used in aros directly).
I have just made my nforce NIC driver working! Horay! After few days of intensive developing my AROS machine may ping other computers, it responds to external pings properly.
Additionally, I have tested our small ftp client over local network. It performs very well. AROS manages to receive data from my old 200MHz PPC server at 7.5MB/s (a bit faster then linux). In order to confirm the quality of transfer, I’ve calculated md5sum of 20MB file before and after transfer – they are the same.
The driver is still not perfect. For example, it survives only one minute of intensive ping flood and then dies. It is caused by completely filled RX ring, and will be fixed soon.
After successful switch to Eclipse IDE (see image) I gave up using the nforce ethernet binary module provided by NVIDIA. Instead, I have used the forcedeth module from linux kernel. It has one disadvantage – the whole nForce ethernet driver has to be GPL’ed. There are however much more advantages.
The driver was reverse-engeneered by kernel hackers. They wrote documentation for it and even fixed some bugs. Moreover, NVIDIA provided recently some patches for this module (sigh!) adding eg. gigabit ethernet support.
The nForce ethernet driver progresses quickly. Since whole source code is available and it is well documented, I may just adapt linux source to SANA-II standard. Currently, only two things are missing. One is the ring buffer support, the another is full SANA-II interface. Nevertheles the development should go way faster than before.
Well, there should be next status update of ATI driver. But there isn’t one. I hope it will change soon.
Well, the fact is, my financial balance does not allow me to concentrate on ATI driver right now. I will focus on the nforce ethernet driver in order to make this extremely delayed bounty complete. Then I will eventually continue on ATI driver. The speed of development depends strictly on the size of Bounty #34. If the bounty is low ($5 now) I work slowly – my family doesn’t see any benefits on spending time for development. If bounty rises up, my family will let me code. I wrote the nVidia driver within two months, whereas basic driver (with very few acceleration) was ready within three weeks.
Well, I look right now like an awful bounty-hunter. Sorry for that. But on the other hand I have to complete my PhD thesis, find new job, get some money, live, eat and such 🙂
Small sweet candy in this bitter post is my current AROS-TODO:
- nforce ethernet driver
- ATI driver
- USB stack
- CABOOM (OOP proposed by Fabio – way faster and simplier than current one)
I’ve just managed to re-use the code, which is remotely common among all video drivers in AROS (well, at least the same is in nVidia.hidd). So at the moment the ATI-compatible card is searched for and, if found, the memory mappings for framebuffer and MMIO are perpared. ATI driver is currently 12KB (KiB?) long and detects all devices supported – from old Rage128 up to the newest R420 GPU’s.
Well, I will have to double the driver, since the Rage128 has to be handled in different way compared to the Radeon family. I hope only that both parts will coexist somehow and share as much code as possible.
Anyway, the next status update should happen soon – and then my ATI card should already show something. Perhaps even Wanderer screen 😀