[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Regarding non-free firmware in the kernel....

Fransicso wrote:
>Could you point to a list of firmwares which need attention?

This list is certainly not complete, but here it is.  (No warranty; I may have 
made errors.  Blanket permission to copy, redistribute, and/or modify is 
hereby granted.)  If someone made a Wiki or something to keep track of known 
problems and who was working on them, that would be clearly beneficial.  :-)

I've noted (with an 'easy') some of the drivers which appear (though I'm not 
sure) to load their firmware in process context with interrupts enabled and 
without holding spinlocks; these are the ones which should be easy to 
convert.  :-)

Firmware without proper permission to distribute (dammit):
sound/oss/724hwmcode.h (unused, already removed by Herbert; bug #242500)
sound/oss/Hwmcode.h (unused, already removed by Herbert; bug #242500)
drivers/usb/misc/emi26_fw.h (used by drivers/usb/misc/emi26.c, bug #242895)
sound/oss/ymfpci_image.h (used by sound/oss/ymfpci.c, bug #243022)
sound/pci/ymfpci/ymfpci_image.h (used by sound/pci/ymfpci.c, bug #243022)
drivers/char/drm/r128_cce.c (already patched by me to use userland loading, 
bug 242866)
drivers/char/drm/radeon_cp.c (already patched by me to use userland loading, 
bug 242866)
drivers/net/acenic_firmware.h (bug 242866)

Non-free firmware with clear permission to distribute:
drivers/net/tg3.c (I've mostly dealt with this, but I haven't quite got the 
userland firmware loading working right)
drivers/char/drm/mga_ucode.h (bug 242866; easy)
drivers/net/appletalk/cops_ffdrv.h (bug 242866; used in cops.c; easy)
drivers/net/appletalk/cops_ltdrv.h (used in cops.c; easy)
drivers/net/tokenring/3c359_microcode.h (used in 3c359.c; not necessary for 
all cards; easy; bug 242866)
drivers/net/pcmcia/ositech.h (used in smc91c92_cs.c; not necessary for all 
cards; easy; bug 242866)
drivers/net/typhoon_firmware.c (used in typhoon.c; easy?)

I'm quite sure there's more, but this is more than enough to start on, eh?

We should probably discuss firmware file naming conventions; I think the last 
discussion concluded that the best choice was "(module)/(file)-version" (many 
drivers will have multiple firmware files, and the firmware file version will 
likely be closely linked with the driver version).  The name has to be <= 
FIRMWARE_NAME_MAX chars, which is currently 30.

Reply to: