Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
soc:2009:oremanj:journal:week10 [2009/07/30 15:03]
rwcr
soc:2009:oremanj:journal:week10 [2009/08/01 10:21]
rwcr
Line 31: Line 31:
  
 Suffice it to say, I'm rather confused. Suffice it to say, I'm rather confused.
 +
 +==== Friday, 31 July ====
 +Fixed the noise floor issue, but it's still not receiving packets.
 +  * On branch **ath5k**:
 +    * [[http://​git.etherboot.org/?​p=people/​oremanj/​gpxe.git;​a=commit;​h=d12bf0a20b0e23f0af465291bf2ee7f20c46218e|
 +[802.11] Set channels early on to avoid tuning to an undefined channel]]
 +    * [[http://​git.etherboot.org/?​p=people/​oremanj/​gpxe.git;​a=commit;​h=574a520719942a69db5a2d81127e5243ca42fe71|
 +[802.11] Fix maximum packet length]]
 +    * [[http://​git.etherboot.org/?​p=people/​oremanj/​gpxe.git;​a=commit;​h=918f3b3b7a10e0c5ab68cbc781339fc42529ed19|
 +[ath5k] Fix confusion between bitfield and counter uses of mode variable]]
 +
 +The noise floor issue was just the first manifestation of a bug that would seem completely unrelated to it. In the Linux driver code, the various modes of operation (A, B, G, ATurbo, GTurbo, XR) were defined as monotonically increasing enumeration values 0, 1, 2, ..., and then frequently used to set bitfields. In my initial translation of the code for gPXE, I had thought this bitfield use was //all// that the mode values were put to, and redefined the modes to be powers of two. This worked for everything except part of the initialization sequence where the current mode is used to index an array.
 +
 +For my card, the 802.11g mode had value 3 in the original enumeration,​ and 8 in my power-of-2 modification. The mode value is used to index a 5-element array. The net result was that register A in 802.11g mode would be initialized with the value that should be used for register A+1 in 802.11b mode. As you might guess, this caused... some issues, of which the noise floor calibration failure was simply the first to appear.
 +
 +I've since tested the card in Linux and gotten it to work, so I didn't permanently damage my hardware with this coding bug.
 +
 +Packets are still not being received properly, but the fix will probably reveal itself after slogging through enough diffs and debug statements. I hope to have this driver completely working by the end of next week.

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:2009:oremanj:journal:week10 (generated for current page)