-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 5434 b: refs/heads/master c: e0d21d9 h: refs/heads/master v: v3
- Loading branch information
Dmitry Torokhov
committed
Jul 11, 2005
1 parent
dc53ef9
commit 29ad0c4
Showing
849 changed files
with
31,489 additions
and
17,149 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: beffbdc2211826b174c68307b1b48c93c05d7ded | ||
refs/heads/master: e0d21d9cca25f424f3129649be48a63c128ed42d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,55 @@ | ||
How to get the Nebula, PCTV and Twinhan DST cards working | ||
========================================================= | ||
How to get the Nebula Electronics DigiTV, Pinnacle PCTV Sat, Twinhan DST + clones working | ||
========================================================================================= | ||
|
||
This class of cards has a bt878a as the PCI interface, and | ||
require the bttv driver. | ||
1) General information | ||
====================== | ||
|
||
Please pay close attention to the warning about the bttv module | ||
options below for the DST card. | ||
This class of cards has a bt878a chip as the PCI interface. | ||
The different card drivers require the bttv driver to provide the means | ||
to access the i2c bus and the gpio pins of the bt8xx chipset. | ||
|
||
1) General informations | ||
======================= | ||
2) Compilation rules for Kernel >= 2.6.12 | ||
========================================= | ||
|
||
These drivers require the bttv driver to provide the means to access | ||
the i2c bus and the gpio pins of the bt8xx chipset. | ||
Enable the following options: | ||
|
||
Because of this, you need to enable | ||
"Device drivers" => "Multimedia devices" | ||
=> "Video For Linux" => "BT848 Video For Linux" | ||
|
||
Furthermore you need to enable | ||
=> "Video For Linux" => "BT848 Video For Linux" | ||
"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" | ||
=> "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards" | ||
=> "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards" | ||
|
||
2) Loading Modules | ||
================== | ||
3) Loading Modules, described by two approaches | ||
=============================================== | ||
|
||
In general you need to load the bttv driver, which will handle the gpio and | ||
i2c communication for us, plus the common dvb-bt8xx device driver. | ||
The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110) and | ||
TwinHan (dst) are loaded automatically by the dvb-bt8xx device driver. | ||
i2c communication for us, plus the common dvb-bt8xx device driver, | ||
which is called the backend. | ||
The frontends for Nebula DigiTV (nxt6000), Pinnacle PCTV Sat (cx24110), | ||
TwinHan DST + clones (dst and dst-ca) are loaded automatically by the backend. | ||
For further details about TwinHan DST + clones see /Documentation/dvb/ci.txt. | ||
|
||
3a) Nebula / Pinnacle PCTV | ||
-------------------------- | ||
3a) The manual approach | ||
----------------------- | ||
|
||
$ modprobe bttv (normally bttv is being loaded automatically by kmod) | ||
$ modprobe dvb-bt8xx (or just place dvb-bt8xx in /etc/modules for automatic loading) | ||
Loading modules: | ||
modprobe bttv | ||
modprobe dvb-bt8xx | ||
|
||
Unloading modules: | ||
modprobe -r dvb-bt8xx | ||
modprobe -r bttv | ||
|
||
3b) TwinHan and Clones | ||
3b) The automatic approach | ||
-------------------------- | ||
|
||
$ modprobe bttv i2c_hw=1 card=0x71 | ||
$ modprobe dvb-bt8xx | ||
$ modprobe dst | ||
|
||
The value 0x71 will override the PCI type detection for dvb-bt8xx, | ||
which is necessary for TwinHan cards. | ||
|
||
If you're having an older card (blue color circuit) and card=0x71 locks | ||
your machine, try using 0x68, too. If that does not work, ask on the | ||
mailing list. | ||
|
||
The DST module takes a couple of useful parameters: | ||
If not already done by installation, place a line either in | ||
/etc/modules.conf or in /etc/modprobe.conf containing this text: | ||
alias char-major-81 bttv | ||
|
||
a. verbose takes values 0 to 5. These values control the verbosity level. | ||
b. debug takes values 0 and 1. You can either disable or enable debugging. | ||
c. dst_addons takes values 0 and 0x20: | ||
- A value of 0 means it is a FTA card. | ||
- A value of 0x20 means it has a Conditional Access slot. | ||
Then place a line in /etc/modules containing this text: | ||
dvb-bt8xx | ||
|
||
The autodetected values are determined by the "response string" | ||
of the card, which you can see in your logs: | ||
e.g.: dst_get_device_id: Recognize [DSTMCI] | ||
Reboot your system and have fun! | ||
|
||
-- | ||
Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
USERSPACE VERBS ACCESS | ||
|
||
The ib_uverbs module, built by enabling CONFIG_INFINIBAND_USER_VERBS, | ||
enables direct userspace access to IB hardware via "verbs," as | ||
described in chapter 11 of the InfiniBand Architecture Specification. | ||
|
||
To use the verbs, the libibverbs library, available from | ||
<http://openib.org/>, is required. libibverbs contains a | ||
device-independent API for using the ib_uverbs interface. | ||
libibverbs also requires appropriate device-dependent kernel and | ||
userspace driver for your InfiniBand hardware. For example, to use | ||
a Mellanox HCA, you will need the ib_mthca kernel module and the | ||
libmthca userspace driver be installed. | ||
|
||
User-kernel communication | ||
|
||
Userspace communicates with the kernel for slow path, resource | ||
management operations via the /dev/infiniband/uverbsN character | ||
devices. Fast path operations are typically performed by writing | ||
directly to hardware registers mmap()ed into userspace, with no | ||
system call or context switch into the kernel. | ||
|
||
Commands are sent to the kernel via write()s on these device files. | ||
The ABI is defined in drivers/infiniband/include/ib_user_verbs.h. | ||
The structs for commands that require a response from the kernel | ||
contain a 64-bit field used to pass a pointer to an output buffer. | ||
Status is returned to userspace as the return value of the write() | ||
system call. | ||
|
||
Resource management | ||
|
||
Since creation and destruction of all IB resources is done by | ||
commands passed through a file descriptor, the kernel can keep track | ||
of which resources are attached to a given userspace context. The | ||
ib_uverbs module maintains idr tables that are used to translate | ||
between kernel pointers and opaque userspace handles, so that kernel | ||
pointers are never exposed to userspace and userspace cannot trick | ||
the kernel into following a bogus pointer. | ||
|
||
This also allows the kernel to clean up when a process exits and | ||
prevent one process from touching another process's resources. | ||
|
||
Memory pinning | ||
|
||
Direct userspace I/O requires that memory regions that are potential | ||
I/O targets be kept resident at the same physical address. The | ||
ib_uverbs module manages pinning and unpinning memory regions via | ||
get_user_pages() and put_page() calls. It also accounts for the | ||
amount of memory pinned in the process's locked_vm, and checks that | ||
unprivileged processes do not exceed their RLIMIT_MEMLOCK limit. | ||
|
||
Pages that are pinned multiple times are counted each time they are | ||
pinned, so the value of locked_vm may be an overestimate of the | ||
number of pages pinned by a process. | ||
|
||
/dev files | ||
|
||
To create the appropriate character device files automatically with | ||
udev, a rule like | ||
|
||
KERNEL="uverbs*", NAME="infiniband/%k" | ||
|
||
can be used. This will create device nodes named | ||
|
||
/dev/infiniband/uverbs0 | ||
|
||
and so on. Since the InfiniBand userspace verbs should be safe for | ||
use by non-privileged processes, it may be useful to add an | ||
appropriate MODE or GROUP to the udev rule. |
Oops, something went wrong.