Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
soc:2009:oremanj:journal:week12 [2009/08/14 13:04] mdc text wrap for narrower screens |
soc:2009:oremanj:journal:week12 [2009/08/15 01:36] (current) rwcr |
||
---|---|---|---|
Line 70: | Line 70: | ||
err = request_firmware(&blob, ctx->fwname, ctx->dev->dev->dev); | err = request_firmware(&blob, ctx->fwname, ctx->dev->dev->dev); | ||
''dev->dev->dev''? Seriously? :-) | ''dev->dev->dev''? Seriously? :-) | ||
+ | |||
+ | Figured out a possible solution for the problem for **xrom** that we can't know about the devices like APICs that don't have their mappings in PCI BARs: just read the entire space we're going to cover with our mapping before we map it. The standard on x86 is for unmapped memory to read all-ones, and designers of MMIO interfaces actively avoid all-ones being normal in a register. If all 128k or whatever read as ''0xFF'', plus we find no overlap in BARs or e820, it's almost certainly safe to map. | ||
+ | |||
+ | The ROM-mapping logic could also be used for UNDI. | ||
+ | |||
+ | Split up the FireWire branch into a more logical separation of commits (first the generic interface, then the gPXE code that uses it, then the host-side utilities to make it useful). Pushed it as **firewire** to my personal repository and removed it from staging, as I have other code there that I think is more important (specifically **linker** and the various things depending on it). | ||
+ | |||
+ | ==== Final Thoughts ==== | ||
+ | |||
+ | Well, Summer of Code is over, and what an adventure it's been. I've immensely enjoyed working on such a mature and well-developed codebase, with a great many talented people, and in a very interesting field with lots of room for innovation. Thank you to everyone who's helped to make it possible! | ||
+ | |||
+ | Things I'd like to still get done, in rough order of priority: | ||
+ | * Merge branch **linker** to mainline. | ||
+ | * Merge branch **wireless** to mainline, with all the crypto and iwmgmt stuff. | ||
+ | * Get branch **firmware** ready for mainline. | ||
+ | * Get branch **firewire** ready for mainline, in one form or another. (It may be a very useful interface for driving gPXE for testing, a la DrV's project.) | ||
+ | * Write **xrom** in a fashion that's remotely valid, doing the grunt work of scanning PCI BARs and e820 and such to look for a valid place to map instead of the ugly and immoral hack I initially went with. | ||
+ | * In the Maybe category: | ||
+ | * Extend branch **eap** into some real support for EAP / WPA Enterprise authentication, with a few common methods implemented. | ||
+ | * Port driver ''ath9k'' or ''b43'' or ''iwlwifi'' from Linux. The latter two require firmware loading, and all are something of a mess. | ||
+ | * Add standardized support for NV options using the VPD area or (on EFI) RuntimeServices->SetVariable(). The storing in EEPROM using NVS is nice, but most cards don't support it because their EEPROM is earmarked for other purposes. With wireless cards especially, another spot is needed for SSID and encryption key. | ||
+ | |||
+ | Final sanity check of local git branches related to the work I've done: | ||
+ | ath5k Merged (ath5k wireless driver) | ||
+ | bigrom-oremanj Merged (small patch to support big ROMs) | ||
+ | sky2 Merged (sky2 wired NIC driver) | ||
+ | mainline-review Merged (initial bout of wireless code) | ||
+ | wiprocfix Merged (small patch to wireless code) | ||
+ | linker In staging (improve linker macros, object-specific config) | ||
+ | firewire Waiting (debugging interface over FireWire) | ||
+ | firmware-pretty Waiting (firmware image embedding and loading) | ||
+ | wireless-pretty Waiting (wireless crypto and improvements) | ||
+ | eap To-do (802.1X authentication, WPA Enterprise) | ||
+ | xrom To-do (load ROM from the PCI card) | ||
+ | ath5k-old History (superseded by ath5k) | ||
+ | firewire-old History (superseded by firewire) | ||
+ | firewire-really-old History (superseded by firewire) | ||
+ | wireless History (superseded by wireless-pretty) | ||
+ | fwtrans Academic interest (load files over firewire debug link) | ||
+ | |||
+ | And so we go, again. | ||
+ | |||
+ | Thank you to everyone who's made this summer great, and I hope to be able to continue contributing! :-) |