Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
soc:2010:andreif:journal:week1 [2010/05/27 12:47]
andreif
soc:2010:andreif:journal:week1 [2010/05/29 10:39]
andreif
Line 80: Line 80:
  
 At stefanha'​s suggestion i started refactoring the .probe routine a bit, since it was quickly becoming >4 screens long. Even though I've moved around some large code blocks, the routine still has 3 screens because of everything else that I've added. It needs more cowbell. At stefanha'​s suggestion i started refactoring the .probe routine a bit, since it was quickly becoming >4 screens long. Even though I've moved around some large code blocks, the routine still has 3 screens because of everything else that I've added. It needs more cowbell.
 +
 +==== Day 5 ====
 +Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=f77ad7eee94a3d161a2ddf0c94a8906a75169d24|f77ad7eee94a3d161a2ddf0c94a8906a75169d24]]
 +
 +Didn't manage to do as much as I wanted today. The .probe implementation is almost done, there are a few missing pieces such as the debugging code for 0x2620 and 0x2624 and the options settings. The debugging code isn't mandatory for now since I don't have any of those specific chips. I want to keep the .probe implementation as clean as possible since I'll probably be referring to it a lot to see if I forgot to initialize stuff. So for now I'll keep that debugging code out. When all is done, I'll bring the code in. The //options// are used later in the code, so I'll tackle those when I reach the specific sections. Also, the TX and RX descriptors aren't fully initialized yet, I'll do that when I actually implement tx and rx. Other than that :), the .probe routine is pretty much done.
 +
 +Did a test to see if .probe runs all the way through and this gave me an oportunity to fix some bugs, mostly related to the fact that I performed certain initializations after they were required. Gpxe now tells me that the .open routine is unsupported,​ so I guess I'll tackle that next.
 +
 +==== Day 6 ====
 +Git commit: [[http://​git.etherboot.org/?​p=people/​andreif/​gpxe.git;​a=commit;​h=ad2ec93a52650947ce04e55f765456b6e22dcb36|ad2ec93a52650947ce04e55f765456b6e22dcb36]]
 +
 +Today I ran into the first piece of code that I just couldn'​t understand. Starting the .open implementation,​ I had to set up the options field. This field describes some of the NICs capabilities,​ such as: duplex mode, auto negotiation,​ 10/​100Base-T,​ etc. This is all good but the way these options are selected in both the Linux driver and the old driver don't make any sense to me. I spent several hours browsing the source code and the Internet trying to find some answers but this didn't yield any results. After a while I went on with the .open implementation,​ I understand what it does, but the way the options are set is all wrong so nothing I've written so far works how its supposed to.
 +
 +For example, my current chip is an AM79C970A which can do full-duplex. Because of the options, the old driver'​s code ends up taking a path leading to the access of BCR32 which the chip doesn'​t have. I'm not sure if the NIC silently fails when you try to access an inexistent register or something really evil happens :)
 +
 +If I don't figure this out by tomorrow, I'll set the options as they should be for my current chip and after the driver works, I'll go through each other chips' datasheet and figure out the rest.
 +
 +Some other stuff to note:
 +  * AUI - //​Attachment Unit Interface//
 +  * GPSI - //General Purpose Serial Interface//

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code soc:2010:andreif:journal:week1 (generated for current page)