APPLE_TODO   [plain text]

things that still need to be fixed

update code base to pcmcia-cs-3.2+
	- fix the cardbus code, it should delay the creation of the nub
		- switch CS cardbus to pci "space" addressing instead of the nub
		- make cardbus and 16 bit code more symetric

fix rsrc_mgr.c it should be rewritten in terms of IOKit, ie IORangeAllocator
	- validate_mem (could just skip)
	- find_mem_region
	- release_mem_region(u_long base, u_long num);
	- find_io_region
	- release_io_region(u_long base, u_long num); aka, release_region
	- fix the PCI code to handle the returning of used address space
write and call a new macosx version of exit_pcmcia_cs()
	- the pccard card family doesn't unload yet
write funky cis tuple code
	- look for specific tuple and match against its data
	- default enabler should check for card match and then
	  patch cis data from info in the XML file
	- it would be cool to be specify a specific configuration index 
	  to use on a per card basis in the xml file
	- the entry in xml wouldn't have to specify a class, 
	  it could just do the patch (if that even works?)

write a sample pccard16 driver
	- test different types of matching

write a simple sram driver
	- create a nub of type IOBlockStorageDevice, look at DiskImages
	- ApplePCCardSRAMDevice -> IOBlockStorageDevice -> IOMedia

fix the Zoom Video code, it is not tested/complete.

possible code enhancements - later (much later)

write code to create MTD driver nubs using using JEDEC tuples for matching
	- they would need to get loaded first
	- the MTD is not fully hooked up yet, search for mtd_req
		-it might be easier to ditch the MTD code?
	- workaround: make MTD drivers part of regular memory driver

write a ds style driver interface for the ds ioctls? can probably use
IORegistry and get/setProperties() hook to catch things, or io_connect

write code to support IO offset registers for 16 bit cards, needed for
adding in two cards that have overlapping io space requirements?

implement AddSocketServices
	- to replace register_ss_entry()
	- move i82365.c into a seperate kext

should change socket services to load in card services, ... on card
insert we could have a lite weight dummy driver that adds a flag to
the registry on card detection, and then unloads itself, on the
"rematching" the flag could be used for altering the match scores both
probes (lite weight and real) could toggle the flag during matching

fix IOPCCardBridge::getModuleParameters, it needs to be expanded to
look at more configuration options, ie, most of what is currently
MODULE_PARM()'ed.  These properties could be contained in different
personalties depending on which controller/laptop we end up matching
against. This might fit in well with breaking out socket services into
a seperate kext.

dma? not done on 9, should really do for X