diff options
Diffstat (limited to 'linux/Documentation/dvb/firmware.txt')
-rw-r--r-- | linux/Documentation/dvb/firmware.txt | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/linux/Documentation/dvb/firmware.txt b/linux/Documentation/dvb/firmware.txt deleted file mode 100644 index d97852d32..000000000 --- a/linux/Documentation/dvb/firmware.txt +++ /dev/null @@ -1,160 +0,0 @@ -Some DVB cards and many newer frontends require proprietary, -binary-only firmware. - -The DVB drivers will be converted to use the request_firmware() -hotplug interface (see linux/Documentation/firmware_class/). -(CONFIG_FW_LOADER) - -The firmware can be loaded automatically via the hotplug manager -or manually with the steps described below. - -Currently the drivers still use various different methods -to load their firmwares, so here's just a short list of the -current state: - -Drivers using the firmware hotplug interface: -- dvb-ttpci -- tda1004x: - -Proprietary solutions which need to be converted: -- ttusb-budget: firmware is compiled in (dvb-ttusb-dspbootcode.h) -- sp887x: firmware is compiled in (sp887x_firm.h) -- alps_tdlb7: firmware is loaded from path specified by - "mcfile" module parameter; the binary must be - extracted from the Windows driver (Sc_main.mc). -- ttusb-dec: see "ttusb-dec.txt" for details -- vp7041: see vp7041.txt for more information - -0) Getting a usable firmware file - -- For the dvb-ttpci driver/av7110 card you can download the firmware files from -http://linuxtv.org/download/dvb/firmware/ - -Please note that in case of the dvb-ttpci driver this is *not* the "Root" -file you probably know from the 2.4 DVB releases driver. - -The ttpci-firmware utility from linuxtv.org CVS can be used to -convert Dpram and Root files into a usable firmware image. -See dvb-kerrnel/scripts/ in http://linuxtv.org/cvs/. - -> wget http://www.linuxtv.org/download/dvb/firmware/dvb-ttpci-01.fw-261c -> mv dvb-ttpci-01.fw-261c /usr/lib/hotplug/firmware/dvb-ttpci-01.fw - -- The tda1004x driver needs a copy of the DLL "ttlcdacc.dll" from the Haupauge or Technotrend -windows driver. Currently the DLL from v2.15a of the technotrend driver is supported. Other versions can -added reasonably painlessly. - -Windows driver URL: http://www.technotrend.de/ - -> wget http://www.technotrend.de/new/215/TTweb_215a_budget_20_05_2003.zip -> unzip -j TTweb_215a_budget_20_05_2003.zip Software/Oem/PCI/App/ttlcdacc.dll - -Rename "ttlcdacc.dll" to "tda1004x.bin" -- that's currently the default name -for the firmware file. - -1) Automatic firmware loading - -You need to install recent hotplug scripts if your distribution did not do it -for you already, especially the /etc/hotplug/firmware.agent. -http://linux-hotplug.sourceforge.net/ (Call /sbin/hotplug without arguments -to find out if the firmware agent is installed.) - -The firmware.agent script expects firmware binaries in -/usr/lib/hotplug/firmware/. To avoid naming and versioning -conflicts we propose the following naming scheme: - - /usr/lib/hotplug/firmware/dvb-{driver}-{ver}.fw for MPEG decoders etc. - /usr/lib/hotplug/firmware/dvb-fe-{driver}-{ver}.fw for frontends - - {driver} name is the basename of the driver kernel module (e.g. dvb-ttpci) - {ver} is a version number/name that should change only when the - driver/firmware internal API changes (so users are free to install the - latest firmware compatible with the driver). - -Currently the drivers mentionend above support firmware upload through the -hotplug manager. If you have such a card, a simple "modprobe" of the driver -will take care of everything, ie. - -> modprobe dvb-ttpci -or -> modprobe tda1004x - -If you have the hotplug firmware scripts installed, both drivers will ask the hotplug -daemon for their default firmware. If the scripts are there, but the firmware cannot -be found, an error message will be printed immediately. Make sure that the firmware -are in a path where the hotplug manager can find them. - -Please note that the default firmware name of the tda1004x doesn't follow the -naming conventions stated above. It's still called "tda1004x.bin". - -2) Manually loading the firmware into a driver - -Step a) Mount sysfs-filesystem. - -Sysfs provides a means to export kernel data structures, their attributes, -and the linkages between them to userspace. - -For detailed informations have a look at Documentation/filesystems/sysfs.txt -All you need to know at the moment is that firmware loading only works through -sysfs. - -> mkdir /sys -> mount -t sysfs sysfs /sys - -Step b) Exploring the firmware loading facilities - -Firmware_class support is located in -/sys/class/firmware - -> dir /sys/class/firmware - -The "timeout" values specifies the amount of time that is waited before the -firmware upload process is cancelled. The default values is 10 seconds. If -you use a hotplug script for the firmware upload, this is sufficient. If -you want to upload the firmware by hand, however, this might be too fast. - -> echo "180" > /sys/class/firmware/timeout - -Step c) Loading the driver and uploading the firmware manually - -"modprobe" will take care that every needed module will be loaded -automatically - -> modprobe dvb-ttpci -or -> modprobe tda1004x - -If you don't have the hotplug subsystem running, the "modprobe" process will -now hang until -a) you upload the firmware or -b) the timeout occurs. - -Change to another terminal and have a look at - -> dir /sys/class/firmware/ - -total 0 -drwxr-xr-x 2 root root 0 Jul 29 11:00 0000:03:05.0 --rw-r--r-- 1 root root 0 Jul 29 10:41 timeout - -"0000:03:05.0" is the id of the device that needs an firmware upload. - -In this example, this is the pci id of my dvb-c card. It depends on the pci slot, -so it changes if you plug the card to different slots. For the tda1004x, -the id will be an artifical number consisting on the i2c bus the device is on. - -You can upload the firmware like that: - -> export DEVDIR=/sys/class/firmware/0000\:03\:05.0 -> echo 1 > $DEVDIR/loading - -For the dvb-ttpci card: -> cat dvb-ttpci-01.fw > $DEVDIR/data - -For the tda1004x frontend, the path above might be different, but the other things -are the same: -> cat tda1004x.bin > $DEVDIR/data - -> echo 0 > $DEVDIR/loading - -That's it. The driver should be up and running now. |