====== Michael Decker: Driver Development ======
==== Week 2 ====
----
=== 4 June ===
* More coding.
* Renamed some functions for more consistency.
* Migrated global state into net_device private data structure.
* Separated some EEPROM code into a separate routine.
* Proliferated comments.
* Encapsulated SCB command routine.
=== 5 June ===
* More code, of course. 8-)
* Shifted defines and enums into a new eepro100.h to reduce the clutter.
* More renaming to enhance organization & match Intel datasheet.
* Added error checking into eepro100_poll()
* Migrated Etherboot packet rx to gXE rx in eepro100_poll()
* Lost power mid-day; discovered need for more frequent commits & pushes :-/
* Git commits [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=b95078936df49852dfe2ef6fc6d2c939b6b53794|b95078936df49852dfe2ef6fc6d2c939b6b53794]] and [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=61c6bdbb2a992879771059bc7b20eb7dfdbbaa91|61c6bdbb2a992879771059bc7b20eb7dfdbbaa91]]
=== 6 June ===
I spoke with mdc & mcb30 this morning during our weekly meeting. My commits contained both code changes and formatting changes, intermingled, which made reviewing the code difficult. So the previous commits need to be respun to make for easier review.
I found that my existing commits contained too much variation to be cleaned up without making more fine-grained commits. Thus, I spent the day working on this. I had some trouble with git, mainly in that I managed to spend a few hours making new commits only to realize I had not replaced the spaces with tabs (argh!). So I had to start over. At this point I'm still respinning so I have no commit to post tonight.
This should be a one-time event as SCM and making commits is all new to me. From now on I plan to make fine-grained commits such that my code is reviewable. (As the ultimate goal of my code is a positive review.)
=== 7 June ===
Spent the day attempting to respin, although it was slow-going as small problems with git added up into redoing things many times. Spent quite some time trying to find the cause of changes git reported that looked like identical lines. Discovered pasting code from Firefox inserts weird line feeds which were getting converted when I reopened the file. Realized git-cherry-pick will create a new commit if it succeeds, but will not create a new commit if it fails. I think. :-? Expect to push soon.
=== 8 June ===
Reached a point where I wouldn't mind pushing, although more respinning is still pending. However, git spat out a mysterious error:
$ git-push personal drivers4
mdeck@rom.etherboot.org's password:
fatal: invalid number of threads specified (0)
$ git-gc
fatal: invalid number of threads specified (0)
error: failed to run repack
I don't know what caused this to suddenly happen, but now I can not push from any repository or branch.
I spent a few hours working with Marty to fix this, but for now we decided I would use a work-around by uploading the repository to rom.etherboot.org and pushing from there, which works.
* Commit: [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=5848ad2b6bed066fe33bcc0a6b07178f7f38094a|[Drivers-eepro100] Updated debug statement functions]]
* Commit: [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=0c2ae838f8fba1d7bcbf4434c78eb1ba61a48a55|[Drivers-eepro100] Removed 'int rx_mode' since gPXE uses ALLMULTI.]]
* Commit: [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=747dc1c55328c14574536402cd8d60acd27f1fcb|[Drivers-eepro100] Skeleton changes from Etherboot -> gPXE conformance.]]
* Commit: [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=de3529d1bc37d98ce3dd488dd7f51478fcd0bf3c|[Drivers-eepro100] Migrated global data from file-scope to instance-scope]]
More commits on the way.
--\\
**Solved!!**\\ Shortly later Marty mentioned something in ''~/.gitconfig'', whereupon I found a setting:[pack]
threads = 0
Which I promptly changed to:[pack]
threads = 1
Which fixed the problem! I must have accidentally changed that setting and caused such headaches.
* Commit: [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=5465d3c55aca68e6014e246eb1292cb5ecde7c13|[Drivers-eepro100] Removed FORCE from eepro100_irq()]]
* Commit: [[http://git.etherboot.org/?p=people/mdeck/gpxe.git;a=commit;h=e2a8baa9aa7f7eede332b655845a3c21e60ae375|[Drivers-eepro100] Created eepro100_scb_cmd() for repetitive sequence.]]