diff -uNr linux.2.4.14.pristine/Documentation/kbuild/cml2-reference.sgml linux/Documentation/kbuild/cml2-reference.sgml --- linux.2.4.14.pristine/Documentation/kbuild/cml2-reference.sgml Wed Dec 31 19:00:00 1969 +++ linux/Documentation/kbuild/cml2-reference.sgml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,1300 @@ +CML1"> +CML2"> +]> + + + +
+ + CML2 Language Reference + + Eric + Steven + Raymond + + + Thyrsus Enterprises +
+ esr@thyrsus.com +
+
+
+ $Date: 2001/03/31 06:06:11 $ + This is version 0.9.1 + + 2000 + Eric S. Raymond + + + Copyright + Permission is granted to copy, distribute and/or modify + this document under the terms of the Open Publication License, + version 2.0. + + + +This is a reference manual for CML2, the Configuration Menu Language +designed to support Linux kernel configuration. For higher-level +discussion of the language and the concepts behind it, see the +paper The CML2 Language, available at the CML2 project website. +Configuration hackers should read that paper first to get a feel +for the language. + +
+ +Roadmap to This Document +First, there's a section on invoking the &CML2; tools. Then +there's a complete language reference. Then there's a description of +the configuration file output formats. Finally, a document change +history. + +For tips on good menu design, see The CML2 +Language. + + +Running the &CML2; tools + +The &CML2; toolkit consists of two Python programs: +cmlcompile and cmlconfigure. +The compiler, cmlcompile, generates a pickled +representation of a rulebase from one or more files of &CML2; rules. +The interpreter, cmlconfigure, reads in a rulebase +and uses it to inform a configuration dialogue with the user. + +The cmlconfigure program queries its environment to discover +what I/O facilities are available. It will use X if it's on an +X display and Tkinter can be found. Otherwise, it will look for the +curses library and support a full-screen character interface. If it +can't find curses and a TERM in the environment, it +will fall back to a line-oriented mode. + +The end result is a pair of configuration files, the +defconfig and the macrofile. +These are in formats inherited from &CML1; (see for complete specification). The +defconfig consists of a set of variable +definitions in shell syntax; it can be re-read by a future instance of +cmlconfigure to set defaults. The macrofile is a list of C-style +#define macros intended to be included in kernel +C code. + +The compiler, cmlcompiler, requires one or +more &CML2; rules files as arguments. It has two options: + + + + filename + + Set the file to which the compiled rulebase is + written. By default, if no -o option is given, the rulebase goes + to rules.out. + + + + + + Enable debugging output to + stdout. + + + +The interpreter, cmlconfigure, takes at most +one filename argument: the rulebase to be interpreted. If no +argument is specified, it reads from rules.out. +The interpreter recognizes the following options: + + + + + + Batch mode. Read in a compiled rulebase, apply any other command-line + options, and immediately write out the rulebase. Most useful with -D + to change a single option or a small handful of options from the + command line. + + + + + outfile + + Set the location to which cmlconfigure should + write its file of C macros. There is no default; if there is no + , option no macro file is written. + + + + + configfile + + Read in a configuration. The file is expected to be in the same + defconfig format written by cmlconfigure. + Values (including n) are set as though selected + interactively by the user. + + If the file does not exist, complain but continue. This behavior + allows the configurator to look for defaults files which may not exist. + + + + + + configfile + + Read in a configuration. The file is expected to be in the same + defconfig format written by cmlconfigure. Values (including + n) are frozen and will be displayed but not + modifiable during the configure run. + + + + + + + List. Run in batch mode to generate a menu map (that is, a + tree diagram of all the menus and question symbols in the system.) + + + + + outfile + + Set the location to which cmlconfigure should write its defconfig + file of shell variable settings. + This file will be loadable by cmlconfigure. There is no default; + if there is no option no defconfig file is + written. + + + + + + + Force tty (line-oriented) mode. + + + + + + + Force curses (screen-oriented) mode. + + + + + + + Force X (GUI using Tk) mode. + + + + + + + Increment the debug flag. + + + + + + + Preset a symbol. sets + FOO=y at startup. + -DFOO=xxx may be used to + specify a value. The trit values y, m, n are understood. The + value of a preset symbol is frozen; that is, it will never be + queried. + + + + + + + Don't hide elided symbols. When this option is on, suppressions + are ignored. Only symbols that have derived a frozen value from + -D or constraints are skipped. This may be useful if you know + that you want to set configuration symbols deep in the hierarchy + and have their requirements propagate upwards, as opposed to the + normal sequence in which you refine your way down from the top of + the tree with symbols becoming visible only when they are unmasked + by previous questions. + + + + + + + Print the configurator version and exit. + + + + + + + Make undefined symbols in files loaded (e.g. by i or I commands) a + non-fatal rather than fatal error. Useful for reading in old config + files in which some symbols are obsolete. + + + + +The environment variable CML2OPTIONS may specify command-line switches +(but not arguments). Switches taken from CML2OPTIONS are processed +before switches specified on the actual command line. + +The environment variable BROWSER may specify a colon-separated list +of browser commands, to be used in making URLs in the help widgets +live. Each command should have the string "%s" in it where the URL +can be substituted. The &CML2; front end will try the commands in +succession until one succeeds. The default sequence is mozilla, then +any netscape already running, then a new netscape instance, then +lynx, then w3m. + + + +&CML2; Language Elements + +Syntax + +Lexically, a CML program consists of tokens: barewords, +whitespace, strings and punctuation (there is one exception associated +with the icon declaration). A bareword is a token +composed of alphanumeric characters and _ +(underscore). Whitespace is any mix of spaces, tabs, and linefeeds. A +string is delimited by either single or double quotes and may contain +whitespace. Everything else is punctuation. Some pairs of +punctuation characters stick together; ==, +!=, <=, >=. All +other punctuation is treated as single-character tokens. + +Here are lexical rules, regular expressions describing valid tokens: + + ::= [A-Za-z][A-Za-z0-9_]* + ::= '[^']*'|"[^&dquot;]*"; + ::= [0-9]+ + ::= 0x[A-Fa-f0-9]+ + ::= [ymn] +]]> + +base64-data is any number of lines in RFC2045 base64 +format, terminated by a newline or comment. + +Also, note that there is a lexical-level inclusion facility. +The token source is interpreted as a request to treat +the immediately following token as a filename (string quotes are first +stripped if it is a string). Upon encountering this directive, the +compiler opens the file (which may be a relative or absolute +pathname), and reads input from that file until EOF. On +that EOF, the current input source is immediately +popped back to the including file. Relative pathnames are interpreted +relative to the directory of the including file. + +Comments are supported, and run from a # to end-of-line. + +Here is a BNF of the grammar. Following it, each language element +will be described in detail. + + ::= | ;; Integer literal + +;; A CML system consists of a sequence of declarations. +;; + ::= * + +;; A declaration may be of one of the following types: +;; + ::= + | + | + | + | + + | + | + | + | + | + | + | + + | + | + | + + | + | + | + | + +;; A source statement declares a file to be inserted in place of +;; the source statement in the ruleset. +;; + ::= 'source' + +;; A symbols definition creates configuration symbols, +;; and associates prompt strings with them. +;; + ::= 'symbols' { }* + +;; A menus definition creates menu symbols, +;; and associates banner strings with them. +;; + ::= 'menus' { }* + +;; An explanatins declaration creates explanation symbols +;; to be used by requirements +;; + ::= 'explanations' { }* + +;; A helpfile declaration declares a file to be scanned for help text +;; + ::= 'helpfile' + +;; A private declaration declares that the associated symbols should +;; not be exported in the end-result configuration +;; + ::= 'private' * + +;; A visibility rule associates a visibility predicate with symbols. +;; Optionally, it may declare that the suppressed symbols are constrained +;; in value by the predicate symbols. +;; + ::= 'unless' 'suppress' ['dependent'] *; + +;; A menu definition links a sequence or subtree of symbols with a +;; menu identifier. Subtrees generate implied dependency statements. +;; + ::= 'menu' * + ::= + | '{' * '}' + + ::= ;; Empty suffix declares boolean type + | '?' ;; declares trit type + | '!' ;; declares vital trit type + | '%' ;; declares decimal type + | '@' ;; declares hexadecimal type + | '$' ;; declares string type + +;; A radio-menu definition links a choice of symbols with a menu identifier. +;; + ::= 'choices' * 'default' + +;; A derivation binds a symbol to a formula, so the value of that +;; symbol is always the current value of the formula. +;; + ::= 'derive' 'from' + +;; A default definition sets the value a symbol will have unless it is +;; explicitly set by the user's answer to a question. It may have a +;; range or enum specification attached. +;; + ::= 'default' 'from' [] + + ::= 'range' { | { '-' }}+ + | 'enum' { '=' }+ + +;; A requirement definition constrains the value of one or more symbols +;; by requiring that the given expression be true in any valid configuration. +;; + ::= {'require'|'prohibit'} + ['explanation '] + +;; We have to declare a start menu, for the beginning of execution +;; + ::= 'start' + +;; A prefix definition sets a string to be prepended to all symbols +;; when they are named in a configuration file. +;; + ::= 'prefix' + +;; A banner definition sets a string to used in the configurator +;; greeting line. +;; + ::= 'banner' + +;; A condition statement ties a CML2 control flag to a symbol +;; + ::= 'condition' 'on' + +;; A warndepend flags symbols that make dependents dangerous +;; + ::= 'warndepend' * + +;; An icon definition associates data for a graphic icon with the +;; rulebase. +;; + := 'icon' + +;; A debug definition enables debugging output. +;; + ::= 'debug' + +;; An expression is a formula +;; + ::= '+' + | '-' + | '*' + | + + ::= 'or' + | 'and' + | 'implies' + | + + ::= '==' + | '!=' + | '<=' + | '>=' + | + | 'not' + + ::= '|' ;; maximum or sum or union value + | '&' ;; minimum or multiple or intersection value + | '$' ;; similarity value + | + + ::= + | + | + | + | + | '(' ')' +]]> + +Operators have the precedence implied by the above productions. From +least to most binding, precedence classes are: + + =, <=, >, < + 7: &, |, $ +]]> + + +Data types and classes + +&CML2; supports the following data types: + + + + Booleans. These may have the values `y' or `n' + + + + Tristates or trits. These may have the values `y', 'm', or `n' + `Vital' trits have a visibility property described in . + + + + Decimal integers. 32-bit signed integers with decimal I/O formatting. + + + + Hexadecimal integers. 32-bit signed integers with hexadecimal I/O formatting. + + + + Strings. Strings are literal data in the ASCII character set encoding. + + + +Support for trits may be disabled at runtime. See for discussion of the condition/on +declaration. + +There are four classes of symbols; constant symbols, query symbols, +derivation symbols, and frozen symbols. + +A constant is one of the boolean/tristate literals +y or m or +n, or an integer literal, or a string +literal. + +A query symbol is an ordinary, mutable symbol with a prompt string. +Each query must occur exactly once in the menu tree. Query symbols +may be set by the user. + +A derivation is a symbol bound to an expression. Derivation symbols +are immutable, but may vary as the symbols in their formula change +value. Derived symbols have no associated prompt string and may not +appear in the menu tree. + +A frozen symbol is a query symbol which has been immutably bound +to a particular value. Once frozen, the value of a symbol may not be +changed. + + +Meaning of the language elements + + +Source statements + +A source statement declares a file to be +inserted in place of the source statement in the file, and treated as +if the entire contents of that file were present in the current file +at the point of their source statement. + +Any implementation of &CML2; must allow +source statements to be nested to a depth of at +least 15 levels. The reference implementation has no hard +limit. + + +Symbol declarations + +The body of a symbols section consists of +pairs of tokens; a configuration symbol and a prompt string. + +Rationale: Having these name-to-prompt associations be separate from +the dependency rules will help make the text parts of the system +easier to localize for different languages. Declaring all query symbols +up front means we can do better and faster sanity checks. Some +symbols (derivations) are not pre-declared. + + +Menu declarations + +The body of a menus section consists of pairs +of tokens; a menu name and a banner string. The effect of each +declaration is to declare an empty menu (to be filled in later by a +menu definition) and associate a banner string with it. + +Any implementation of &CML2; must allow menus to be nested to a depth of +at least 15 levels. The reference implementation has no hard limit. + +Rationale: Having these menu-to-banner associations be separate from +the dependency rules will help make the text parts of the system +easier to localize for different languages. Declaring all menu names +up front means we can do better and faster sanity checks. + + +Explanation declarations + +The body of an explanation section consists +of pairs of tokens; an explanation symbol and a banner string. +Explanation symbols are used to associate explanatory text with +requirements. + +Rationale: This declaration tells the compiler that it's OK for +the explanation symbol not to occur in a menu. + + +Helpfile declarations + +A helpfile declaration tells the compiler to +mine a given file for help texts. The compiler's assumption is that +the file is in the format of a &CML1; help file: entries are begun by +two lines, the first containing a prompt string and the second +beginning with the symbol prefix (See for +discussion). + +The format of helpfiles may be changed in future releases. + + +Private declarations + +A private declaration sets the +private bit on each symbol of a list of +symbol names. Symbols on which this bit is set are not written to the +final configuration file. + +Rationale: Sometimes you may want to make multiple queries, the +results of which are not used directly in the configuration file but +become independent variables in the derivation of a symbol that is +used. In this kind of case, it is good practice to make the query +symbols private. + + +Visibility rules + +A visibility declaration associates a visibility predicate with a set of +configuration symbols. The fact that several symbols may occur on the +right side of such a rule is just a notational convenience; the rule + + + unless GUARD suppress SYMBOL1 SYMBOL2 SYMBOL3 + + +is exactly equivalent to + + + unless GUARD suppress SYMBOL1 + unless GUARD suppress SYMBOL2 + unless GUARD suppress SYMBOL3 + + +Putting a menu on the right side of a visibility rule suppresses that +menu and all its children. + +Dependence + +Optionally, a rule may declare that the suppressed symbols are +constrained in value by the predicate symbols. That is, if there is a +rule + + + unless GUARD suppress dependent SYMBOL + + +then the value of SYMBOL is constrained by +the value of GUARD in the following way: + + +guard trit bool +----- ------ ------- + y y,m,n y,n + m m,n y,n + n n n + + +The reason for this odd, type-dependent logic table is that we +want to be able to have boolean option symbols that configure options +for modular ancestors. This is why the guard symbol value +m permits a dependent boolean symbol (but not a +dependent modular symbol) to be y. + +If the guard part is an expression, SYMBOL is +made dependent on each symbol that occurs in the guard. Such guards +may not contain alternations or implies. Thus, if +FOO and BAR and +BAZ are trit symbols, + + + unless FOO!=n and BAR==m suppress dependent BAZ + + +is equivalent to the following rules: + + + unless FOO!=n and BAR==m suppress BAZ + require BAZ <= FOO and BAZ <= BAR + + +Putting a menu on the right side of a visibility rule with `dependent' +puts the constraint on all the configuration symbols in that menu. +Any submenus will inherit the constraint and pass it downward to +their submenus. + +Dependency works both ways. If a dependent symbol is set +y or m, the value of the +ancestor symbol may be forced; see + for discussion. + +Rationale: The syntax is unless...suppress +rather than if...query because the normal state of a +symbol or menu is visible. The dependent +construction replaces the dep_tristate and +dep_bool constructs in &CML1;. + + + +Menu definitions + +A menu definition associates a sequence of configuration symbols and +(sub)menu identifiers with a menu identifier (and its banner string). +It is an error for any symbol or menu name to be referenced in more +than one menu. + +Symbol references in menus may have suffixes which change the default +boolean type of the symbol. The suffixes are as follows: + + + ? trit type + ! vital trit type + % decimal type + @ hexadecimal type + $ string type + + +A choices definition associates a choice of boolean +configuration symbols with a menu identifier (and its banner +string). It declares a default symbol to be set to +y at the time the menu is instantiated. + +In a complete &CML2; system, these definitions link all menus together +into a single big tree, which is normally traversed depth-first +(except that visibility predicates may suppress parts of it). + +If the list of symbols has subtrees in it (indicated by curly braces) +then the symbol immediately before the opening curly brace is declared +a visibility and dependency guard for all symbols within the braces. +That is, the menu declaration + + + menu foo + SYM1 SYM2 {SYM3 SYM4} SYM5 + + +not only associates SYM[12345] with foo, it also registers rules +equivalent to + + + unless SYM2 suppress dependent SYM3 SYM4 + + +Such subtree declarations may be nested to any depth. + +It is perfectly legal for a menu-ID to have no child nodes. In &CML2;, +this is how you embed text in menus, by making it the banner of +a menu symbol with no children. + + +Derivations + +A derivation binds a symbol to a formula, so the value of that +symbol is always the current value of the formula. Symbols +may be evaluated either when a menu containing them is instantiated +or at the time the final configuration file is written. + +The compiler performs type inference to deduce the type of a +derived symbol. In particular, derived symbols for which the +top-level expression is an arithmetic operator are deduced to be +decimal. Derived symbols for which the top level of the expression is +a boolean operator are deduced to be bool. Derived +symbols for which the top level of the expression is a +trit operator are deduced to be trit. + +Derived symbols are never set directly by the user and have no +associated prompt string. + + +Defaults + +A default definition sets the value a symbol will have until it is +explicitly set by the user's answer to a question. The right-hand +side of a default is not limited to being a constant value; it +may be any valid expression. + +Defaults may be evaluated either when a menu containing them is +instantiated or at the time the final configuration file is written. + +If a symbol is not explicitly defaulted, it gets the zero value +of its type; n for bools and trits, +0 for decimal and hexadecimal symbols, and the +empty string for strings. + +The optional range or enumeration part may be used to constrain +legal values for decimal or hexadecimal-valued symbol. A default +declaration may have either a range or an enumeration part, but not +both. + + A range specification consists of any number of either single +values or paired upper and lower bounds separated by a dash, +interpreted as inclusive ranges. The symbol has a legal value if it +either matches a specified single value or is contained in one of the +intervals. + +An enumeration consists of a series of pairs separated by '='. +Each pair associates a symbol (which must have been previously +declared in an explanation statement) with an integer value. The +symbol must match one of the values. The front end may use the prompt +value of the symbol in each pair to stand in for the value (e.g. when +generating a pull-down menu of alternatives.) + + +Requirements + +Requirements as sanity checks + +A requirement definition constrains the value of one or more +symbols by requiring that the given expression be true in any valid +configuration. All constraints involving a given configuration symbol +are checked each time that symbol is modified. Every constraint is +checked just before the configuration file is written. + +If the optional explanation clause is present, the string +associated with the specified symbol is taken to be an explanation that +the front end can use if when the constraint is violated. Otherwise, +the explanation will be a display of the constraint expression. + +It is up to individual &CML2; front ends to decide how to handle +constraint violations. Here are some possible policies: + + + + Complain and die. Not recommended, but perhaps appropriate for + a batch-mode front end. + + + Conservative recovery: Disallow the modification that + would violate the constraint. (Thus, earlier answers have priority + over later ones.) Note that front ends using this policy should + back out side-effects of symbol changes as well as the change to + the primary symbol. + + + + Flag-and-continue: visibly flag all symbols involved in a + constraint violation (and unflag them whenever a constraint violation + is fixed). Require the user to resolve all constraint violations + before the configuration file is saved. + + + + Backtracking: Present all the menus involved in the + constraint. Accept modifications of any of them, but do not + allow the modifications to be committed until all constraints are + satisfied. + + + +The reference implementation uses conservative backtracking, +with side-effects being backed out as well. + +A prohibit definition requires that the +attached predicate not be true. This is +syntactic sugar, added to accommodate the fact that human beings have +trouble reasoning about the distribution of negation in complex +predicates. + + +Using requirements to force variables + +Requirements have a second role. Certain kinds of requirements +can be used to deduce values for variables the user has not yet set; +the &CML2; interpreter does this automatically. + +Every time a symbol is changed, the change is tried on each +declared constraint. The constraint is algebraically simplified by +substituting in constant, derived and frozen symbols. If the +simplified constraint forces an expression of the form A == +B to be true, and either A is a query symbol +and B is a constant or the reverse, then the +assignment needed to make A == B true is +forced. + +Thus, given the rules + + +derive SPARC from SPARC32 or SPARC64 +require SPARC implies ISA==n and PCMCIA==n and VT==y and VT_CONSOLE==y + and BUSMOUSE==y and SUN_MOUSE==y and SERIAL==y and SERIAL_CONSOLE==y + and SUN_KEYBOARD==y + + +when either SPARC32 or SPARC64 +changes to y, the nine assignments implied by the +right side of the second rule will be performed automatically. If +this kind of requirement is triggered by a guard consisting entirely +of frozen symbols, all the assigned symbols become frozen. + +If A is a boolean or +trit symbol and B simplifies to a +boolean or trit constant (or vice-versa), +assignments may be similarly forced by other relationals (notably +A != B, A < B, A > +B, A <= B, and A >= +B). If forcing the relational to be true implies only one +possible value for the symbol involved, then that assignment is +forced. + +Note that whether a relational forces a unique value may depend on +whether trits are enabled or not. + + + +Start declaration + +The start definition specifies the name of the +root menu of the hierarchy. One such declaration is required per +&CML2; ruleset. + + +Prefix declaration + +A prefix declaration sets a string to be +prepended to each symbol name whenever it is written out to a result +configuration file. This prefix is also ignored when present as a +prefix of symbol names, whether in a rule file or when read in from a +defconfig file. + +Rationale: This was added so the &CML2; rule system for the +Linux kernel would not have to include the common +CONFIG_ prefix, which adds bulk and makes reading +the rules file visually confusing. The alternative of wiring that +prefix into the code would compromise &CML2;'s potential usefulness +for other applications. Prefix-stripping in rule files was added as +a backward-compatibility hack to permit names such as CONFIG_3C515 +that have leading numerics and would be treated as numbers if +given without prefix. + + +Banner declaration + +A banner definition sets the menu id banner +string to used in the configurator greeting line. The string attached +to the specified menu id should identify the system being +configured. + +Rationale: As for the prefix string. + + +Condition statement + +The condition statement ties a &CML2; feature +flag to a query symbol; that is, the value of the feature flag is the +value of the symbol. The initial value of the flag when a rulebase is +read in is simply the associated symbol's default. If there is no +symbol associated with the the flag, the flag's value is +n. + +At present only one flag, named trits, is +supported. When this flag is n, trit-valued +symbols are treated as booleans and may only assume the values +y and n. + +When this flag is m, modules are enabled +and will be manually queried. + +When this flag is y, questions about +modular symbols that are not `vital' are suppressed (the tied-trit +flag symbol itself is automatically vital). Individual trit-valued +symbols become visible again if they become set to a non-default +value. At configuration-save time, modular symbols are set to +m if they are visible, n if +they are not. + +This flag may affect the front end's presentation of +alternatives for modular symbols. It also affects forcing of ancestor +symbols. When the trits flag is m or +y, setting a boolean symbol only forces its trit +ancestors to the value m; when trits is off, they +are forced to y. See for discussion. + +Rationale: Setting this flag to y says, in +effect, "Don't bother me with questions about modular +drivers. Configure in all the stubs that go with the other choices, e.g. +processor and bus types." It is intended for novice use. The `vital' +property is intended to be attached to devices which can be compiled +modular but which need to be hard-linked in (e.g. so Linux can be +booted...). + + +Warndepend declaration + +The warndepend declaration takes a list of +symbol names. All dependents of each symbol have their prompts +suffixed with the name of the symbol in parentheses to indicate that +they are dependent on it. + +Rationale: Added to support the EXPERIMENTAL +symbol in the Linux kernel configuration. This declaration is better +than tracking experimental status by hand because it guarantees that +subsidiary symbols dependent on an experimental feature will always be +flagged for the user. + + +Icon declaration + +An icon declaration associates graphic data +(encoded in RFC2045 base64) with the rulebase. Front ends may use +this data as an identification icon. + +The reference front-end implementation uses the image to iconify +the configurator when it is minimized while running in X mode. + +The reference front-end accepts the image in GIF format. In the +future (when underlying library support permits) PNG support will be +added and GIF removed. + + +Debug + +This declaration enables debugging output from the compiler (it +has no effect on front-end behavior). It takes an integer value and +uses it to set the current debug level. It may change or be removed +in future releases. + + +Expressions + +All arithmetic is integer. The compiler permits some kinds of +type promotion, described below. + +For purposes of the relational operators, trit values are +strictly ordered with y > +m > n. + +Boolean logical expressions may be used as parts of integer-valued +formulas (e,g in derivations and constraints). The value of true is 1, +and of false is 0. + +It is a compile-time error to apply the logical operators +or/and/implies to trit or numeric values. Also, +expressions occurring in guards (in unless/suppress, +or require/prohibit declarations) must yield a value +of boolean type. The compiler does type propagation in expressions to +check these constraints. + +The purpose of these restriction is to enable compile-time +detection of situations where confusion of trit or +numeric with boolean values might induce subtle errors. For the same +reason, if the symbol FOO is trit-valued it is a +compile-time error to say just FOO in an expression, as +opposed to FOO!=n or some other more explicit +relational. + +Thus, because the symbol SCSI is trit-valued: + + + unless SCSI suppress A2091_SCSI + +is illegal and will raise an error. Write an unambiguous test +instead: + + + unless SCSI>=m suppress A2091_SCSI + + +The obvious booleans operations (and, or) are supported; they are +commutative and associative. An 'implies' operation is also supported: + + + FOO implies BAR <=> not (FOO and (not BAR)) + + +The implies operation is neither commutative nor associative. + +The usual relational tests (==, +!=, >=, <=, +>, <) are supported. +Relationals bind more tightly than boolean operators, so +FOO!=n and BAR==m behaves as expected. Additionally, +and binds more tightly than or, so +that FOO or BAR and BAZ is FOO or (BAR and +BAZ). + +The following additional ternary-logic operations are available. +It is an error to apply these to operands with types other than +bool or trit. + +Max or union; notation |. Here is a truth table: + + + y m n + +------ +y | y y y +m | y m m +n | y m n + + +Min or intersection; notation &. Here is a +truth table: + + + y m n + +------ +y | y m n +m | m m n +n | n n n + + + Similarity; notation $. Here is a truth + table: + + + y m n + +------ +y | y n n +m | n m n +n | n n n + + +The operator precedence implied by the BNF above is implemented +in the parser. + + + +Symbol Assignment and Side +Effects + +Setting a symbol's value may have side-effects on other symbols +in two ways. + +First, it may trigger a change in other variables through +explicit requirements. See for +discussion. + +Second, each symbol has two implicit lists associated with it: +of symbols it depends on (ancestors) and symbols that depend on it +(dependents). Whenever a symbol is changed, any side-effects are +propagated through those lists. Changing the value of the symbol +upward (n to m, or +m to y) may change the value of +ancestors; changing it downward (y to +m or m to n) may +affect the value of dependents. + +See also for discussion of the two +syntactically different ways dependencies can be created, and section +V for discussion of the deduction algorithm. + +&CML2; interpreters are required to implement all-or-nothing side +effects; that is, after an assignment, either the assignment and +all its side-effects have been performed, or (in the event the +new values would violate a requirement) none of them are. + +The reference implementation achieves this by implementing two-phase +commit; the assignment and its side-effects can be made tentatively, +constraints checked, and then either committed or rolled back. + +Side-effect bindings remain linked to the symbol whose value change +triggered them, and are backed out whenever that symbol is changed +again. Backing out a side-effect may expose previous side-effects +on a symbol. To see how this works, consider the following sequence of +actions given the constraints (FOO==y implies BAR==y) and +(BAZ==y implies BAR==n): + + + 1. User sets FOO=y. As a side-effect, this sets BAR=y + 2. User sets BAZ=y. As a side-effect, this sets BAR=n + 3. User sets BAZ=n. This does not have a direct side-effect on BAR. + However, since the value BAZ has changed, its side-effect BAR=n + is backed out. The value of BAR is again y. + + +The reference implementation journals all side-effects and always +looks for the most recent binding of a symbol when evaluating it. + + + + + +&CML2; configuration file formats + + +Defconfig format + +A defconfig file consists of a series +of lines in the format of Unix shell variable assignments. Each line +is led with a symbol name (prefixed if there is a +prefix declaration in the rulebase), continues with a +=, and finishes with a value. The value may be +y, n, or +m for boolean or +tristate symbols. It may be a quoted string for +string literals, or an (unquoted) numeric literal for +decimal or hexadecimal symbols. + +When a symbol FOO has not been set, &CML2; may +emit a comment of the form +#CONFIG_FOO is not set. +In &CML1;, these comments were also emitted +for symbols with the value n. + +In the future, &CML2; will write explicit +FOO=n defconfig lines when a boolean or tristate +symbol has been set by the user (or as a side-effect of user +actions). This change would break compatibility wuith the current +&CML1;-based configuration tools. + +Rationale: The change in treatment of symbols with value n is +important in order to allow defconfigs to contain partial +configurations that suppress features, e.g. such as might be generated +by an autoprobe utility checking for the presence of buses or +controller types. + +In the reference implementation, symbols are written in depth-first +traversal order. Derived symbols are written after the query symbols; +each derived symbol is written out if any of the symbols in its +formula has been set. + + +Macrofile format + +A macrofile is a series of C #define macro lines corresponding to +configuration symbols. The macro corresponding to a symbol has the +same name as that symbol, prefixed if there is a "prefix" declaration +in the rulebase. + +If a boolean or tristate symbol has the value +y, &CML2; generates a line defining the +corresponding macro to have the value 1. + +If a boolean or tristate symbol has the value +n, &CML2; generates a line undefining the +corresponding macro. + +If a boolean or tristate symbol has the value +m, &CML2; generates two lines. The first +undefines the corresponding macro. The second defines a macro with +the same name and the suffix "_MODULE" to be +1. + +Each decimal and hexadecimal symbol generates a line defining the +corresponding macro to the value of the numeric literal. + +Each string symbol generates a line defining the corresponding macro +to the value of the string, as a C string literal in double quotes. + +These format conventions are identical to &CML1;'s. + + + + +Change history + + + 0.1 -- 24 May 2000 + Original &CML2; specification. + + 0.2.0 -- 31 May 2000 + Removed whenever/sets from the language. Everything is now done + with deduction. + + 0.2.1 -- 4 June 2000 + Added warndepend. + + 0.3.0 -- 9 June 2000 + Deduction algorithm rewritten and documented in section + V. + + 0.4.0 -- 20 June 2000: + Value stacking is implemented. + + 0.5.0 -- 26 June 2000: + Fuller support for ranges. Spec format converted to + DocBook. + + 0.6.0 -- 30 June 2000: + Eliminated a lexical class. + + 0.7.0 -- 6 July 2000: + The "options" directive was removed. + + 0.7.0 -- 12 Aug 2000: + Added the `explanation' declaration. + + 0.9.2 -- 15 Jan 2001: + Reference manual split out of the paper. + + 0.9.8 -- 29 Mar 2001: + Module-suppression feature added. + + + +
+ diff -uNr linux.2.4.14.pristine/Documentation/kbuild/cml2-transition.txt linux/Documentation/kbuild/cml2-transition.txt --- linux.2.4.14.pristine/Documentation/kbuild/cml2-transition.txt Wed Dec 31 19:00:00 1969 +++ linux/Documentation/kbuild/cml2-transition.txt Wed Nov 14 17:01:24 2001 @@ -0,0 +1,129 @@ + Transition guide for CML2 + + Prerequisites + +You will need Python 2.0 or later to run CML2. Note: many Linux +distributions still ship with the older Python 1.5.2 version, so you +may find you need to upgrade. I made the jump to requiring 2.0 +because doing so reduces the amount of Python code that will have to +ship with kernels and other CML2-configured systems by almost 500 +lines and should improve the Tcl/Tk support. + +For detailed Python-2.0 installation instructions, see +. You will need the Python-2.0 and +Tkinter-2.0-8.0 packages, but not expat. Note: if you install from +sources, you will have to configure in curses in the Modules/Setup +file in order for `make menuconfig` to work. + + Using CML2 to configure Linux + +The CML2 installation supplies oldconfig, menuconfig, and xconfig make +productions that are drop-in replacements for their CML1 equivalents. +The `make config' production is different in that it tries to pick +the best user interface for your environment rather than doing line mode; +to force line mode, do `make ttyconfig'. The `make advent' production +runs a somewhat different line-oriented configurator. + +You should be aware that the CML2 configurators no longer generate +.config and autoconf.h files directly. Instead, they read and +generate and edit a config.out file that is like a .config except for +having explicit sets to 'n'; that is, where the .config format said "# +FOO is not set" a CML2 config may say "FOO=n". This change supports +passing around partial configurations with drivers and features +explicitly configured out. It is intended to help support tools like +Giacomo Catenazzi's kernel-autoconfiguration program. + +Ordinarily this change should be transparent. The `make *config' +functions automatically follow the configurator run with a run of a +script called configtrans that reads the new-format config.out you +just generated and writes translations in the old format to the right +places (.config and include/linux/autoconf.h). If the `make +oldconfig' and `make editconfig' productions don't find a config.out +but do find an existing .config, they'll copy it. + +When you want to save a configuration, save the config.out file +rather than the .config file. You can always regenerate .config +and include/linux/autoconf.h from it by running `make oldconfig' + + Known Problems + +The xconfig front end does a lot of dynamic window resizing. This +seems to tickle bugs in some window managers (notably in older +versions of Enlightenment, but I have seen very occasional misbehavior +under Sawmill as well). If you find the configurator window is placed +oddly after a menu action, or lacks borders, or can't be moved or +resized, you should probably either upgrade your window manager +version or change window managers. + + How To Report Bugs + +The best way to report an apparent bug varies depending on what kind +it is. Many CML2 `bugs' are actually user-interface feature requests; +many other `bugs' are actually problems with the CML2 rules files (among +other things, the rulesfile controls the shape of the menu hierarchy). + +If you think you've found a rules-file problem, the best kind of bug +report is a rulesfile patch accompanied by an explanation. + +Things that look like deduction bugs are almost always problems in the +rules files. When a symbol BAR seems to have been set incorrectly, try +typing `C BAR' to see all the constraints that symbol participates in. +If you can pin down which rule is at fault, please report that. + +If you think you've found a genuine bug in how CML2 does its +deduction, please send me three things: + +1. Your config.out or .config before. (If you're starting with a + blank slate, no .config or config.out, it's OK to just tell me that.) + +2. A session transcript made with ttyconfig illustrating the problem. + +3. Your config.out or .config afterwards. + +A session transcript made with ttyconfig is usually much more helpful +than your natural-language description of the problem, because when +you try to describe the problem you won't necessarily know what +inmportant information you're leaving out. + +This kind of debugging is what ttyconfig is really for, and it has some +special commants to support making these bug-trace transcripts. Use +'e' to display the state of a symbol. Also, the `y' command has a +suffix form; you can say "y FOO" and symbol FOO will be set to y +without affecting the symbol you're currently being prompted for. +This also works for 'm' and 'n'. + + Kernel tree changes + +All files with the basename Config.in or config.in are obsolete. +The following files can be also deleted once CML2 is in place: + +scripts/Configure +scripts/Makefile +scripts/Menuconfig +scripts/README.Menuconfig +scripts/header.tk +scripts/tail.tk +scripts/tkcond.c +scripts/tkgen.c +scripts/tkparse.c +scripts/tkparse.h +scripts/checkhelp.pl +scripts/checkconfig.pl +scripts/checkincludes.pl +scripts/lxdialog/BIG.FAT.WARNING +scripts/lxdialog/Makefile +scripts/lxdialog/checklist.c +scripts/lxdialog/colors.h +scripts/lxdialog/dialog.h +scripts/lxdialog/inputbox.c +scripts/lxdialog/lxdialog* +scripts/lxdialog/lxdialog.c +scripts/lxdialog/menubox.c +scripts/lxdialog/msgbox.c +scripts/lxdialog/textbox.c +scripts/lxdialog/util.c +scripts/lxdialog/yesno.c +Documentation/kbuild/config-language.txt +Documentation/Configure.help + +The Configure.help information is now part of the CML2 rules files. diff -uNr linux.2.4.14.pristine/arch/alpha/rules.cml linux/arch/alpha/rules.cml --- linux.2.4.14.pristine/arch/alpha/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/alpha/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,88 @@ +# Alpha processors + +# This is the top-level menu for architecture-dependent alpha stuff + +private ALPHA_AVANTI_REAL + +choices alphatype # Alpha system type + ALPHA_GENERIC ALPHA_ALCOR ALPHA_XL ALPHA_BOOK1 ALPHA_AVANTI_REAL + ALPHA_CABRIOLET ALPHA_DP264 ALPHA_EB164 ALPHA_EB64P + ALPHA_EB66 ALPHA_EB66P ALPHA_EIGER ALPHA_JENSEN ALPHA_LX164 + ALPHA_MIATA ALPHA_MIKASA ALPHA_NAUTILUS ALPHA_NONAME ALPHA_NORITAKE + ALPHA_PC164 ALPHA_P2K ALPHA_RAWHIDE ALPHA_RUFFIAN ALPHA_RX164 + ALPHA_SX164 ALPHA_SABLE ALPHA_SHARK ALPHA_TAKARA ALPHA_TITAN + ALPHA_WILDFIRE + default ALPHA_GENERIC + +derive ALPHA_AVANTI from ALPHA_XL or ALPHA_AVANTI_REAL +require ALPHA implies PCI == (ALPHA_JENSEN or ALPHA_WILDFIRE or ALPHA_TITAN) + +derive ALPHA_EV4 from ALPHA_NONAME or ALPHA_BOOK1 or ALPHA_EB66 or ALPHA_EB66P + or ALPHA_P2K or ALPHA_CABRIOLET or ALPHA_AVANTI + or ALPHA_EB64P or ALPHA_XL or + ((ALPHA_MIKASA or ALPHA_NORITAKE) and (ALPHA_PRIMO==n)) + or (ALPHA_SABLE and ALPHA_GAMMA==n) + or ALPHA_JENSEN +derive ALPHA_LCA from ALPHA_NONAME or ALPHA_BOOK1 or ALPHA_EB66 + or ALPHA_EB66P or ALPHA_P2K +derive ALPHA_APECS from ALPHA_CABRIOLET or ALPHA_AVANTI or ALPHA_EB64P + or ALPHA_XL or + ((ALPHA_MIKASA or ALPHA_NORITAKE) and (ALPHA_PRIMO==n)) +derive ALPHA_EV5 from ALPHA_EB164 or ALPHA_PC164 or ALPHA_ALCOR or ALPHA_XL + or ALPHA_TAKARA or ALPHA_PRIMO or ALPHA_GAMMA + or ALPHA_MIATA or ALPHA_LX164 or ALPHA_SX164 + or ALPHA_RUFFIAN or ALPHA_RAWHIDE or ALPHA_RX164 +derive ALPHA_CIA from ALPHA_EB164 or ALPHA_PC164 or ALPHA_ALCOR or ALPHA_XL + or ALPHA_TAKARA or ALPHA_PRIMO or ALPHA_MIATA + or ALPHA_LX164 or ALPHA_SX164 or ALPHA_RUFFIAN + +derive ALPHA_T2 from ALPHA_SABLE +derive ALPHA_PYXIS from ALPHA_MIATA or ALPHA_LX164 + or ALPHA_SX164 or ALPHA_RUFFIAN +derive ALPHA_EV6 from ALPHA_DP264 or ALPHA_EIGER + or ALPHA_NAUTILUS or ALPHA_TITAN or ALPHA_WILDFIRE +derive ALPHA_TSUNAMI from ALPHA_DP264 or ALPHA_EIGER +derive ALPHA_MCPCIA from ALPHA_RAWHIDE +derive ALPHA_POLARIS from ALPHA_RX164 +derive ALPHA_IRONGATE from ALPHA_NAUTILUS + +derive ALPHA_EISA from ALPHA_ALCOR or ALPHA_MIKASA or ALPHA_SABLE + or ALPHA_NORITAKE or ALPHA_RAWHIDE + +derive PCI_CONSOLE from (ALPHA or IA64) and FB +derive ALPHA_BROKEN_IRQ_MASK from ALPHA_GENERIC or ALPHA_PC164 + +require ALPHA_CABRIOLET implies ALPHA_EB64P + +unless ALPHA_DP264 or ALPHA_EIGER suppress ALPHA_EV67 +require ALPHA_WILDFIRE or ALPHA_TITAN or ALPHA_NAUTILUS # or ALPHA_SHARK + implies ALPHA_EV67 + +unless ALPHA_SRM==y suppress SRM_ENV +require SRM_ENV==y implies PROC_FS!=n + +menu alpha # Alpha configuration options + alphatype + ALPHA_EV67 + ALPHA_PRIMO + ALPHA_GAMMA + ALPHA_SRM + BINFMT_EM86? + ALPHA_LEGACY_START_ADDRESS + SRM_ENV? + +unless ALPHA_MIKASA or ALPHA_NORITAKE suppress ALPHA_PRIMO +unless ALPHA_SABLE suppress ALPHA_GAMMA + +derive FORCE_ALPHA_SRM from ALPHA_JENSEN or ALPHA_MIKASA or ALPHA_SABLE + or ALPHA_NORITAKE or ALPHA_DP264 or ALPHA_RAWHIDE + or ALPHA_EIGER or ALPHA_WILDFIRE or ALPHA_TITAN +default ALPHA_SRM from FORCE_ALPHA_SRM +private FORCE_ALPHA_SRM +unless FORCE_ALPHA_SRM==n suppress ALPHA_SRM + +# LARGE_VMALLOC is racy, if you *really* need it then fix it first +derive CONFIG_ALPHA_LARGE_VMALLOC from n + +# End + diff -uNr linux.2.4.14.pristine/arch/arm/rules.cml linux/arch/arm/rules.cml --- linux.2.4.14.pristine/arch/arm/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/arm/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,175 @@ +# ARM machines + +# This is the top-level menu for architecture-dependent ARM stuff + +choices armtype # ARM processor type + ARCH_ANAKIN + ARCH_A5K # This has help attached + ARCH_ARC ARCH_CLPS7500 + ARCH_CLPS711X + ARCH_CO285 ARCH_EBSA110 + ARCH_CAMELOT ARCH_FOOTBRIDGE ARCH_INTEGRATOR ARCH_L7200 + ARCH_RPC ARCH_SA1100 ARCH_SHARK + default ARCH_RPC + +derive ARCH_ARCA5K from ARCH_ARC or ARCH_A5K +derive PCI_INTEGRATOR from ARCH_INTEGRATOR and PCI + +menu clps711xtypes # CLPS711X/EP721X Implementations + ARCH_CDB89712 ARCH_CLEP7312 ARCH_EDB7211 ARCH_P720T + +# XXX Maybe these should indicate register compatibility +# instead of being mutually exclusive. +derive ARCH_EP7211 from ARCH_EDB7211 +derive ARCH_EP7212 from ARCH_P720T + +private SA1100_XP860_REAL + +menu sa1100type # SA1100 implementations + SA1100_ASSABET {ASSABET_NEPONSET} + SA1100_ADSBITSY + SA1100_BRUTUS + SA1100_CERF {cerf_ram cerf_flash SA1100_CERF_CPLD} + SA1100_H3600 + # SA1100_EMPEG + SA1100_EXTENEX1 {SA1100_EXTENEX1_16MB} + SA1100_FLEXANET SA1100_FREEBIRD SA1100_GRAPHICSCLIENT + SA1100_GRAPHICSMASTER SA1100_JORNADA720 SA1100_HUW_WEBPANEL + SA1100_ITSY SA1100_LART SA1100_NANOENGINE SA1100_OMNIMETER + SA1100_PANGOLIN SA1100_PLEB SA1100_SHERMAN SA1100_SIMPAD + SA1100_PFS168 SA1100_VICTOR SA1100_XP860_REAL SA1100_YOPY + +choices cerf_ram # Cerf RAM available + SA1100_CERF_8MB SA1100_CERF_16MB SA1100_CERF_32MB SA1100_CERF_64MB + default SA1100_CERF_8MB + +choices cerf_flash # Cerf flash available + SA1100_CERF_FLASH_8MB SA1100_CERF_FLASH_16MB SA1100_CERF_FLASH_32MB + default SA1100_CERF_FLASH_8MB + +derive SA1111 from ASSABET_NEPONSET or SA1100_XP860 + or SA1100_GRAPHICSMASTER or SA1100_ADSBITSY +derive FORCE_MAX_ZONEORDER from 9 # Only used by SA1111 support +derive SA1100_XP860 from SA1100_XP860_REAL or ASSABET_NEPONSET + +default SA1100_BRUTUS from ARCH_SA1100 + +unless ARCH_FOOTBRIDGE suppress + footbridge ARCH_EBSA285_ADDIN ARCH_EBSA285_HOST + ARCH_CATS ARCH_NETWINDER ARCH_PERSONAL_SERVER +unless ARCH_CLPS711X suppress ARCH_P720T + +require ARCH_FTVPCI or FOOTBRIDGE_HOST implies PCI==y + +# Select CPU types depending on the architecture selected. +# We use this to select which CPUs are supported, and to select +# the compiler tuning options. +unless ARCH_RPC suppress CPU_ARM610 +unless ARCH_CLPS7500==n and ARCH_RPC suppress CPU_ARM710 +#derive CPU_ARM7 from ARCH_CLPS7500 +default CPU_ARM710 from ARCH_CLPS7500 +default CPU_ARM720T from ARCH_CLPS711X or ARCH_L7200 or ARCH_CDB89712 +unless (ARCH_CLPS711X or ARCH_L7200)==n and ARCH_INTEGRATOR suppress CPU_ARM720T +unless ARCH_INTEGRATOR suppress dependent CPU_ARM920T #CPU_ARM1020 +#default CPU_ARM1020 from ARCH_INTEGRATOR +unless ARCH_RPC suppress CPU_SA110 +unless CPU_32 suppress ARTHUR ARM_THUMB +unless ARCH_CLPS711X suppress clps711xtypes +unless ARCH_SA1100 suppress sa1100type + +default CPU_SA110 from ARCH_EBSA110 or ARCH_FTVPCI or FOOTBRIDGE +unless ARCH_EBSA110!=n and ARCH_FTVPCI!=n and FOOTBRIDGE!=n suppress CPU_SA110 + +unless EXPERIMENTAL suppress CPU_FREQ + +menu arm # ARM port + armtype + clps711xtypes + EP72XX_ROM_BOOT + footbridge + ARCH_EBSA285_ADDIN ARCH_EBSA285_HOST + ARCH_CATS ARCH_NETWINDER ARCH_PERSONAL_SERVER + sa1100type + ARCH_FTVPCI + PAGESIZE_16 + CPU_ARM610 CPU_ARM710 CPU_ARM720T + CPU_ARM920T { + CPU_ARM920_CPU_IDLE + CPU_ARM920_D_CACHE_ON CPU_ARM920_I_CACHE_ON + CPU_ARM920_WRITETHROUGH + } + CPU_ARM926T { + CPU_ARM926_CPU_IDLE + CPU_ARM926_D_CACHE_ON CPU_ARM926_I_CACHE_ON + CPU_ARM926_FORCE_WRITETHROUGH + CPU_ARM926_ROUND_ROBIN + } + CPU_ARM1020 { + CPU_ARM1020_CPU_IDLE + CPU_ARM1020_D_CACHE_ON CPU_ARM1020_I_CACHE_ON + CPU_ARM1020_FORCE_WRITETHROUGH + CPU_ARM1020_ROUND_ROBIN + } + CPU_SA110 + ALIGNMENT_TRAP #TEXT_SECTIONS + ARTHUR? ARM_THUMB CPU_FREQ + LEDS {LEDS_TIMER LEDS_CPU} + angelboot_legend ANGELBOOT + +derive FOOTBRIDGE from ARCH_FOOTBRIDGE or ARCH_CO285 +derive FOOTBRIDGE_HOST from ARCH_CATS or ARCH_EBSA285_HOST + or ARCH_NETWINDER or ARCH_PERSONAL_SERVER +derive FOOTBRIDGE_ADDIN from ARCH_CO285 or ARCH_EBSA285_ADDIN +derive ARCH_EBSA285 from ARCH_EBSA285_HOST or ARCH_EBSA285_ADDIN +derive CPU_SA1100 from ARCH_SA1100 + +unless CPU_26 suppress PAGESIZE_16 + +# Easy check for Acorn-style architectures +derive ARCH_ACORN from ARCH_ARCA5K or ARCH_RPC + +# Select our input device +derive ARM_PC_KEYB from FOOTBRIDGE_HOST or ARCH_CLPS7500 +derive PC_KEYMAP from FOOTBRIDGE_HOST or ARCH_SA1100 or ARCH_INTEGRATOR + or ARCH_CLPS7500 or ARCH_P720T +derive KMI_KEYB from ARCH_INTEGRATOR +derive KMI_MOUSE from ARCH_INTEGRATOR + +# Figure out whether this system uses 26-bit or 32-bit CPUs. Nobody has +# ever built a machine that can take both, and now that ARM3 is obsolete +# nobody is likely to either. +derive CPU_26 from ARM and ARCH_ARCA5K +derive CPU_32 from ARM and (CPU_26==n) + +# In CML1, +# `or ARCH_TBOX or ARCH_SHARK or ARCH_NEXUSPCI +# was part of this guard. +derive CPU_32v4 from ARCH_EBSA110 or ARCH_FOOTBRIDGE or ARCH_CLPS711X + or ARCH_SA1100 or ARCH_CLPS7500 + or ARCH_L7200 or ARCH_INTEGRATOR or ARCH_FTVPCI + or ARCH_ANAKIN or ARCH_CAMELOT +derive L7200_KEYB from ARCH_L7200 +derive CPU_32v3 from ARCH_RPC or ARCH_CLPS7500 + +unless CPU_32 and ARCH_EBSA110!=y suppress ALIGNMENT_TRAP #TEXT_SECTIONS +unless CPU_32 suppress ARTHUR + +derive ISA_DMA from FOOTBRIDGE_HOST or ARCH_SHARK or ARCH_CLPS7500 + or ARCH_EBSA110 or ARCH_CDB89712 or ARCH_EDB7211 +require ISA_DMA implies ISA==y + +unless ARCH_NETWINDER or ARCH_EBSA110 or ARCH_EBSA285 or ARCH_FTVPCI + or ARCH_SA1100 or ARCH_CO285 or ARCH_P720T or ARCH_CDB89712 + suppress LEDS +unless ARCH_NETWINDER or ARCH_EBSA285 or ARCH_CO285 + or ARCH_SA1100 or ARCH_P720T suppress LEDS_TIMER LEDS_CPU +default LEDS_TIMER from ARCH_EBSA110 + +derive RPCMOUSE from ARCH_ACORN and BUSMOUSE!=n and ARCH_RPC==y +derive KBDMOUSE from ARCH_ACORN and BUSMOUSE!=n and ARCH_RPC!=y + +# The Future TV card used to be manufactured by Nexus Electronics. +# Remnants of this history still lurk in the kernel sources. +derive ARCH_NEXUSPCI from ARCH_FTVPCI + +# End diff -uNr linux.2.4.14.pristine/arch/cris/rules.cml linux/arch/cris/rules.cml --- linux.2.4.14.pristine/arch/cris/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/cris/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,246 @@ +# This is the top-level menu for architecture-dependent CRIS stuff + +private CRIS + +default ETRAX_DRAM_SIZE from 8 +default ETRAX_FLASH_BUSWIDTH from 2 +default ETRAX_ROOT_DEVICE from "/dev/mtdblock3" +default ETRAX_LED1G from 2 +default ETRAX_LED1R from 3 +default ETRAX_LED2G from 4 +default ETRAX_LED2R from 5 +default ETRAX_LED3R from 2 +default ETRAX_LED3G from 2 +default ETRAX_LED4R from 2 +default ETRAX_LED4G from 2 +default ETRAX_LED5R from 2 +default ETRAX_LED5G from 2 +default ETRAX_LED6R from 2 +default ETRAX_LED6G from 2 +default ETRAX_LED7R from 2 +default ETRAX_LED7G from 2 +default ETRAX_LED8Y from 2 +default ETRAX_LED9Y from 2 +default ETRAX_LED10Y from 2 +default ETRAX_LED11Y from 2 +default ETRAX_LED12R from 2 +default ETRAX_DEF_R_WAITSTATES from 0x95a6 +default ETRAX_DEF_R_BUS_CONFIG from 0x104 +default ETRAX_DEF_R_DRAM_CONFIG from 0x1a200040 +default ETRAX_DEF_R_DRAM_TIMING from 0x5611 +default ETRAX_DEF_R_SDRAM_CONFIG from 0xd2fa7878 +default ETRAX_DEF_R_SDRAM_TIMING from 0x80004801 +default ETRAX_DEF_R_PORT_PA_DIR from 0x1c +default ETRAX_DEF_R_PORT_PA_DATA from 0x00 +default ETRAX_DEF_R_PORT_PB_CONFIG from 0x00 +default ETRAX_DEF_R_PORT_PB_DIR from 0x00 +default ETRAX_DEF_R_PORT_PB_DATA from 0xff +#default ELTEST_IPADR from 0xab1005af +#default ELTEST_NETWORK from 0xab100000 +#default ELTEST_NETMASK from 0xffff0000 +#default ELTEST_BROADCAST from 0xab10ffff +#default ELTEST_GATEWAY from 0xab100101 +#default ELTEST_ETHADR from 0x00408ccd0000 +default ETRAX_SER0_DTR_ON_PB_BIT from 4 +default ETRAX_SER0_RI_ON_PB_BIT from 5 +default ETRAX_SER0_DSR_ON_PB_BIT from 6 +default ETRAX_SER0_CD_ON_PB_BIT from 7 +default ETRAX_SER1_DTR_ON_PB_BIT from 4 +default ETRAX_SER1_RI_ON_PB_BIT from 5 +default ETRAX_SER1_DSR_ON_PB_BIT from 6 +default ETRAX_SER1_CD_ON_PB_BIT from 7 +default ETRAX_SER2_DTR_ON_PA_BIT from 4 +default ETRAX_SER2_RI_ON_PA_BIT from 5 +default ETRAX_SER2_DSR_ON_PA_BIT from 6 +default ETRAX_SER2_CD_ON_PA_BIT from 7 +default ETRAX_RS485_ON_PA_BIT from 3 +default ETRAX_SYNCHRONOUS_SERIAL0_DMA from ETRAX_SYNCHRONOUS_SERIAL_PORT0 +default ETRAX_SYNCHRONOUS_SERIAL1_DMA from ETRAX_SYNCHRONOUS_SERIAL_PORT1 +default ETRAX_PA_BUTTON_BITMASK from 0x02 +default ETRAX_PA_CHANGEABLE_DIR from 0x00 +default ETRAX_PA_CHANGEABLE_BITS from 0xff +default ETRAX_PB_CHANGEABLE_DIR from 0x00 +default ETRAX_PB_CHANGEABLE_BITS from 0x0ff +default ETRAX_PTABLE_SECTOR from 65536 +default ETRAX_DS1302_RSTBIT from 2 +default ETRAX_DS1302_SCLBIT from 1 +default ETRAX_DS1302_SDABIT from 0 +default ETRAX_SHUTDOWN_BIT from 12 +default ETRAX_POWERBUTTON_BIT from 25 +default PROFILE_SHIFT from 2 + +# These used to be questions in the CRIS setup menu. +derive ETRAX_ETHERNET from CRIS and NET_ETHERNET +derive ETRAX_SERIAL from CRIS and SERIAL!=n +derive ETRAX_IDE from CRIS and IDE!=n +derive ETRAX_I2C from CRIS and I2C!=n +derive ETRAX_USB_HOST from CRIS and USB!=n + +unless ETRAX_SERIAL suppress crisserial + +unless ETRAX_SDRAM==n suppress ETRAX_DEF_R_DRAM_CONFIG ETRAX_DEF_R_DRAM_TIMING + +unless ETRAX_ETHERNET suppress cris_net_led +choices cris_net_led # Network LED behavior + ETRAX_NETWORK_LED_ON_WHEN_LINK ETRAX_NETWORK_LED_ON_WHEN_ACTIVITY + default ETRAX_NETWORK_LED_ON_WHEN_ACTIVITY + +menu cris # Axis Communications ETRAX 100LX + cristype + ETRAX_WATCHDOG + BINFMT_JAVA? + ETRAX_DRAM_SIZE% + ETRAX_FLASH_BUSWIDTH% + ETRAX_ROOT_DEVICE$ + crisleds + ETRAX_LED1G% ETRAX_LED1R% + ETRAX_LED2G% ETRAX_LED2R% + ETRAX_LED3R% ETRAX_LED3G% + ETRAX_LED4G% ETRAX_LED4R% + ETRAX_LED5G% ETRAX_LED5R% + ETRAX_LED6R% ETRAX_LED6G% + ETRAX_LED7R% ETRAX_LED7G% + ETRAX_LED8Y% ETRAX_LED9Y% ETRAX_LED10Y% ETRAX_LED11Y% ETRAX_LED12R% + cris_net_led + crisdebug + crisrescue + ETRAX_DEF_R_WAITSTATES@ + ETRAX_DEF_R_BUS_CONFIG@ + ETRAX_SDRAM { + ETRAX_DEF_R_SDRAM_CONFIG@ ETRAX_DEF_R_SDRAM_TIMING@ + } + # else + ETRAX_DEF_R_DRAM_CONFIG@ ETRAX_DEF_R_DRAM_TIMING@ + ETRAX_DEF_R_PORT_PA_DIR@ + ETRAX_DEF_R_PORT_PA_DATA@ + ETRAX_DEF_R_PORT_PB_CONFIG@ + ETRAX_DEF_R_PORT_PB_DIR@ + ETRAX_DEF_R_PORT_PB_DATA@ + ETRAX_ETHERNET_LPSLAVE {ETRAX_ETHERNET_LPSLAVE_HAS_LEDS} + #ETRAX_ETHERNET ETRAX_SERIAL + crisserial + ETRAX_PARPORT {ETRAX_PARALLEL_PORT0 ETRAX_PARALLEL_PORT1} + ETRAX_AXISFLASHMAP {ETRAX_PTABLE_SECTOR%} + ETRAX_I2C_USES_PB_NOT_PB_I2C + ETRAX_I2C_EEPROM etrax_eeprom + ETRAX_GPIO { + ETRAX_PA_BUTTON_BITMASK@ + ETRAX_PA_CHANGEABLE_DIR@ + ETRAX_PA_CHANGEABLE_BITS@ + ETRAX_PB_CHANGEABLE_DIR@ + ETRAX_PB_CHANGEABLE_BITS@ + } + JULIETTE + ETRAX_DS1302 {etrax_rtc} + ETRAX_SOFT_SHUTDOWN {ETRAX_SHUTDOWN_BIT% ETRAX_POWERBUTTON_BIT%} + PROFILE {PROFILE_SHIFT%} + +unless ETRAX_NO_LEDS==n suppress ETRAX_LED1G ETRAX_LED1R ETRAX_LED2G ETRAX_LED2R ETRAX_LED3R ETRAX_LED3G +unless ETRAX_CSP0_LEDS suppress + ETRAX_LED4G ETRAX_LED4R + ETRAX_LED5G ETRAX_LED5R + ETRAX_LED6R ETRAX_LED6G + ETRAX_LED7R ETRAX_LED7G + #ETRAX_LED8Y ETRAX_LED9Y ETRAX_LED10Y ETRAX_LED11Y ETRAX_LED12R + +require ETRAX_ETHERNET==y implies NET_ETHERNET==y +require ETRAX_IDE==y implies BLK_DEV_IDE==y and BLK_DEV_IDEDISK==y and + BLK_DEV_IDECD==y and BLK_DEV_IDEDMA==y + and DMA_NONPCI==y +require ETRAX_USB_HOST implies USB==y + +require ETRAX_PARPORT implies PARPORT==y and PARPORT_1284==y and PRINTER==y + +# Here we define the symbols necessary to enable MTD support for the flash. +require ETRAX_AXISFLASHMAP implies MTD==y and MTD_CFI==y and + MTD_CFI_INTELEXT==n and MTD_CFI_AMDSTD==y and + MTD_CHAR==y +# This is probably an error +#derive MTD_AMDSTD from ETRAX_AXISFLASHMAP +derive MTD_PARITIONS from ETRAX_AXISFLASHMAP + +choices cristype # Processor type + ETRAX100LX ETRAX100LX_V2 SVINTO_SIM + default ETRAX100LX + +choices crisleds # Product LED port + ETRAX_PA_LEDS ETRAX_PB_LEDS ETRAX_CSP0_LEDS ETRAX_NO_LEDS + default ETRAX_PA_LEDS + +choices crisdebug # Product debug port + ETRAX_DEBUG_PORT0 ETRAX_DEBUG_PORT1 ETRAX_DEBUG_PORT2 + ETRAX_DEBUG_PORT3 ETRAX_DEBUG_PORT_NULL + default ETRAX_DEBUG_PORT0 + +choices crisrescue # Product rescue port + ETRAX_RESCUE_SER0 ETRAX_RESCUE_SER1 ETRAX_RESCUE_SER2 ETRAX_RESCUE_SER3 + default ETRAX_RESCUE_SER0 + +default ETRAX_SERIAL_RX_TIMEOUT_TICKS from 5 +derive ETRAX_SERIAL_FAST_TIMER from n # This will change + +menu crisserial # CRIS serial port + ETRAX_SERIAL_PORT0 + # ETRAX_SERIAL_FAST_TIMER { + ETRAX_SERIAL_FLUSH_DMA_FAST {ETRAX_SERIAL_RX_TIMEOUT_TICKS%} + #} + ETRAX_SER0_DTR_RI_DSR_CD_ON_PB { + ETRAX_SER0_DTR_ON_PB_BIT% + ETRAX_SER0_RI_ON_PB_BIT% + ETRAX_SER0_DSR_ON_PB_BIT% + ETRAX_SER0_CD_ON_PB_BIT% + } + ETRAX_SERIAL_PORT1 { + ETRAX_SER1_DTR_RI_DSR_CD_ON_PB { + ETRAX_SER1_DTR_ON_PB_BIT% + ETRAX_SER1_RI_ON_PB_BIT% + ETRAX_SER1_DSR_ON_PB_BIT% + ETRAX_SER1_CD_ON_PB_BIT% + } + } + ETRAX_SERIAL_PORT2 { + ETRAX_SER2_DTR_RI_DSR_CD_ON_PA { + ETRAX_SER2_DTR_ON_PA_BIT% + ETRAX_SER2_RI_ON_PA_BIT% + ETRAX_SER2_DSR_ON_PA_BIT% + ETRAX_SER2_CD_ON_PA_BIT% + } + } + ETRAX_SERIAL_PORT3 + ETRAX_RS485 {ETRAX_RS485_ON_PA {ETRAX_RS485_ON_PA_BIT%} ETRAX_RS485_DISABLE_RECEIVER} + ETRAX_SYNCHRONOUS_SERIAL { + ETRAX_SYNCHRONOUS_SERIAL_PORT0 { + ETRAX_SYNCHRONOUS_SERIAL0_DMA + } + ETRAX_SYNCHRONOUS_SERIAL_PORT1 { + ETRAX_SYNCHRONOUS_SERIAL1_DMA + } + } + +require ETRAX_SER0_DTR_RI_DSR_CD_ON_PB==n or ETRAX_SER1_DTR_RI_DSR_CD_ON_PB==n + explanation crisconflict_complaint + +choices ide_reset # IDE reset pin + ETRAX_IDE_PB7_RESET + ETRAX_IDE_G27_RESET + ETRAX_IDE_CSE1_16_RESET + ETRAX_IDE_CSP0_8_RESET + default ETRAX_IDE_PB7_RESET + +choices etrax_eeprom + ETRAX_I2C_EEPROM_PROBE ETRAX_I2C_EEPROM_2KB + ETRAX_I2C_EEPROM_8KB ETRAX_I2C_EEPROM_16KB + default ETRAX_I2C_EEPROM_PROBE + +menu etrax_rtc + ETRAX_DS1302_RST_ON_GENERIC_PORT + ETRAX_DS1302_RSTBIT% ETRAX_DS1302_SCLBIT% ETRAX_DS1302_SDABIT% + +# Etrax100 LX v1 has a MMU "feature" requiring a low mapping +derive CRIS_LOW_MAP from ETRAX100LX +derive ETRAX_DRAM_VIRTUAL_BASE from CRIS_LOW_MAP ? 0x60000000 : 0xc0000000 + +# Enable the debugger from the kernelhacking menu +derive ETRAX_KGDB from CRIS and KGDB + +# End diff -uNr linux.2.4.14.pristine/arch/i386/rules.cml linux/arch/i386/rules.cml --- linux.2.4.14.pristine/arch/i386/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/i386/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,77 @@ +# from arch/i386/config.in + +#private X86 + +# Perhaps this should default on for 686 clones as well? +default MTRR from M686 or MPENTIUMIII + +# This is the top-level menu for architecture-dependent i386 stuff +menu x86 # Intel options + x86type + MICROCODE? + TOSHIBA? I8K? + X86_MSR? + X86_CPUID? + himem + MTRR + X86_UP_APIC + X86_UP_IOAPIC + MULTIQUAD + # Visual Workstation support is utterly broken. + # If you want to see it working mail an VW540 to hch@infradead.org 8) + #VISWS + +unless M686 suppress MICROCODE +unless SMP!=y suppress X86_UP_APIC X86_UP_IOAPIC +unless SMP!=n suppress MULTIQUAD +#require VISWS implies PCI == y + +derive X86_LOCAL_APIC from X86_UP_IOAPIC + +choices x86type # Intel x86 processor types + M386 M486 M586 M586TSC M586MMX M686 MPENTIUMIII MPENTIUM4 MK6 MK7 + MCRUSOE MWINCHIPC6 MWINCHIP2 MWINCHIP3D MCYRIXIII + default M686 + +choices himem # High Memory Support + NOHIGHMEM HIGHMEM4G HIGHMEM64G + default NOHIGHMEM + +derive X86_WP_WORKS_OK from (M386==n) +derive X86_INVLPG from (M386==n) +derive X86_BSWAP from (M386==n) +derive X86_POPAD_OK from (M386==n) +derive X86_TSC from M586TSC or M586MMX or M686 or MPENTIUMIII or MK6 or MK7 + or MCRUSOE or MWINCHIP2 or MWINCHIP3D or MPENTIUM4 + or MCYRIXIII +derive X86_GOOD_APIC from M586MMX or M686 or MPENTIUMIII or MK7 or MPENTIUM4 +derive X86_PGE from M686 or MPENTIUMIII or MK7 or MPENTIUM4 +derive X86_USE_3DNOW from MK7 or MWINCHIP3D or MCYRIXIII +derive X86_CMPXCHG from M386==n +derive X86_USE_STRING_486 from M486 or M586 or M586TSC or M586MMX +derive X86_ALIGNMENT_16 from M486 or M586 or M586TSC or M586MMX or MK6 + or MWINCHIPC6 or MWINCHIP2 or MWINCHIP3D + or MCYRIXIII +derive X86_USE_PPRO_CHECKSUM from M686 or MPENTIUMIII or MK6 or MK7 + or MWINCHIPC6 or MWINCHIP2 or MWINCHIP3D + or MPENTIUM4 +derive X86_PAE from HIGHMEM64G +derive X86_IO_APIC from X86_UP_IOAPIC or SMP + +#derive X86_LOCAL_APIC from X86 and X86_UP_IOAPIC or SMP # or VISWS +#derive X86_VISWS_APIC from X86 and VISWS +derive X86_XADD from X86 and M386==n + +# There are PCI-only machines out there, but as of 2.40-test1 I'm told +# nobody has tested the kernel with an x86 lacking ISA. Giacomo Catenazzi +# believes that some motherboard chips use the ISA support code anyway even +# if you don't have an ISA bus. +require X86 implies ISA==y + +# Configure.help implies that RTC has to be compiled in hard if SMP is +# on, but compiling it modular is reported to work by hklygre@online.no. +require X86 and SMP implies RTC!=n + +derive X86_L1_CACHE_SHIFT from 5 - (M386 or M486) + (MPENTIUM4 * 2) + MK6 + +# End diff -uNr linux.2.4.14.pristine/arch/ia64/rules.cml linux/arch/ia64/rules.cml --- linux.2.4.14.pristine/arch/ia64/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/ia64/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,75 @@ +# IA64 port + +# This is the top-level menu for architecture-dependent Itanium stuff + +unless EXPERIMENTAL suppress ACPI_KERNEL_CONFIG IA32SUPPORT + +choices ia64type # IA-64 processor type + ITANIUM MCKINLEY + default ITANIUM + +choices ia64system # IA-64 system type + IA64_GENERIC IA64_DIG IA64_HP_SIM + IA64_SGI_SN1 IA64_SGI_SN2 + default IA64_GENERIC + +derive IA64_SGI_SN from IA64_SGI_SN1 or IA64_SGI_SN2 +derive PERCPU_IRQ from IA64_SGI_SN +derive ACPI_EFI from IA64 and ACPI + +# FIXME: This creates a constraint violation in the initial state. +#require IA64_HP_SIM==n implies ACPI_KERNEL_CONFIG==y + + +require IA64_SGI_SN_SIM implies DEVFS_DEBUG==y and DEVFS_FS==y and IA64_MCA==y + +choices pagesize # Kernel page size + IA64_PAGE_SIZE_4KB IA64_PAGE_SIZE_8KB + IA64_PAGE_SIZE_16KB IA64_PAGE_SIZE_64KB + default IA64_PAGE_SIZE_16KB + +choices granularity # Physical memory granularity + IA64_GRANULE_16MB IA64_GRANULE_64MB + default IA64_GRANULE_16MB + +unless IA64_HP_SIM or IA64_GENERIC suppress SIMETH SIM_SERIAL +#unless ITANIUM suppress ITANIUM_ASTEP_SPECIFIC +unless ITANIUM suppress ITANIUM_BSTEP_SPECIFIC +#unless MCKINLEY suppress MCKINLEY_ASTEP_SPECIFIC + +unless IA64_SGI_SN suppress + IA64_SGI_SN_DEBUG IA64_SGI_SN_SIM IA64_SGI_AUTOTEST + SERIAL_SGI_L1_PROTOCOL PCIBA + +menu ia64 # Itanium processors + ia64type + ia64system + pagesize granularity + ITANIUM_ASTEP_SPECIFIC {MCKINLEY_ASTEP_SPECIFIC {MCKINLEY_A0_SPECIFIC}} + ITANIUM_BSTEP_SPECIFIC + #IA64_SGI_SN { + IA64_SGI_SN_DEBUG IA64_SGI_SN_SIM IA64_SGI_AUTOTEST + SERIAL_SGI_L1_PROTOCOL PCIBA? + #} + IA64_MCA ACPI_KERNEL_CONFIG PERFMON + IA64_PALINFO? EFI_VARS? + SIMETH? SIM_SERIAL SCSI_SIM + IA32SUPPORT + +require IA64_SGI_SN implies DISCONTIGMEM==y and NUMA==y + +require SCSI_SIM implies SCSI!=n + +derive IA64_BRL_EMU from ITANIUM or IA64_SGI_SN1 +#derive IA64_SGI_IO from IA64_SGI_SN1 + +unless IA64_DIG suppress + ITANIUM_ASTEP_SPECIFIC + #IA64_AZUSA_HACKS + # IA64_FW_EMU + IA64_MCA + # IA64_IRQ_ACPI + +derive IA64_L1_CACHE_SHIFT from (IA64_SGI_SN1 or MCKINLEY) ? 7 : 6 + +# End diff -uNr linux.2.4.14.pristine/arch/m68k/rules.cml linux/arch/m68k/rules.cml --- linux.2.4.14.pristine/arch/m68k/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/m68k/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,52 @@ +# Motorola 680x0-based machines + +# Derive as much as we can from architecture-independent questions +derive AMIGA_FLOPPY from BLK_DEV_FD & AMIGA +derive ATARI_FLOPPY from BLK_DEV_FD & ATARI + +private M68K + +unless EXPERIMENTAL suppress dependent M68KFPU_EMU AMIGA_PCMCIA +unless EXPERT suppress ADVANCED +unless SUN3!=y suppress SINGLE_MEMORY_CHUNK + +menu m68k # Motorola 68K processor options + MAC + AMIGA {ZORRO {ZORRO_NAMES} AMIGA_PCMCIA STRAM_SWAP STRAM_PROC} + ATARI {HADES} + APOLLO + VME { + MVME147 {MVME147_NET? MVME147_SCSI MVME147_SCC} + MVME16x {MVME16x_NET? MVME16x_SCSI MVME162_SCC} + BVME6000 { + BVME6000_NET? BVME6000_SCSI BVME6000_SCC + } + } + HP300 {DIO} + SUN3 + SUN3X + M68020 {M68030 {M68040 {M68060}}} + M68KFPU_EMU {M68KFPU_EMU_EXTRAPREC M68KFPU_EMU_ONLY} + ADVANCED {RMW_INSNS SINGLE_MEMORY_CHUNK CONFIG_060_WRITETHROUGH} + Q40 + USERIAL + +unless M68060 suppress CONFIG_060_WRITETHROUGH + +require M68K implies (PCI==HADES) +derive NUBUS from MAC +derive M68K_L2_CACHE from MAC + +derive DN_SERIAL from APOLLO and SERIAL==y + +# These were separate questions in CML1 +derive MAC_SCC from MAC & SERIAL +derive SUN3_SCSI from (SUN3 | SUN3X) & SCSI + +derive SUN_MOUSE from SUN3X_ZS +derive SUN_KEYBOARD from SUN3X_ZS + +# Hmmm...this is going to force SERIAL on, I think... +require VME implies SERIAL_CONSOLE==y + +# End diff -uNr linux.2.4.14.pristine/arch/mips/rules.cml linux/arch/mips/rules.cml --- linux.2.4.14.pristine/arch/mips/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/mips/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,142 @@ +# MIPS 32 and 64-bit ports + +# This is the top-level menu for architecture-dependent Mips stuff +# Both MIPS32 and MIPS64 ports are handled here because they have +# lots of port-specific questions in common that would be illegal +# to duplicate across menus. + +unless EXPERIMENTAL suppress dependent + ACER_PICA_61 ALGOR_P4032 BAGET_MIPS DECSTATION DDB5074 NINO + +private MIPS MIPS32 MIPS64 MIPS_PS2_KEYB + +require MIPS implies SMP + +unless EXPERT suppress CPU_HAS_LLSC CPU_HAS_LLDSCD CPU_HAS_WB +unless WIZARD suppress CROSSCOMPILE #MIPS_FPE_MODULE +#unless MODULES!=n suppress MIPS_FPE_MODULE + +unless QTRONIX_KEYBOARD==n suppress MIPS_PS2_KEYB IT8172_SCR0 +unless MIPS_ITE8172 suppress IT8172_REVC MIPS_PS2_KEYB IT8172_SCR1 +unless MIPS_ITE8172 or MIPS_IVR suppress IT8172_SCR0 + +menu mips # MIPS machine selection + mipstype + # MIPS32 items begin here ---------------------------------------- + ACER_PICA_61 ALGOR_P4032 BAGET_MIPS + DECSTATION DDB5074 + MIPS_EV96100 MIPS_EV64120 {EVB_PCI1 galileo_clock} + MIPS_ATLAS MIPS_MALTA + NINO {nino_model} + MIPS_MAGNUM_4000 MOMENCO_OCELOT DDB5476 DDB5477 + OLIVETTI_M700 SGI_IP22 SNI_RM200_PCI + MIPS_ITE8172 MIPS_IVR + QTRONIX_KEYBOARD + # Deal with nasty dependency interlock involving QTRONIX_KEYBOARD + IT8172_REVC + MIPS_PS2_KEYB + IT8172_SCR0 + IT8172_SCR1 + # Back to top level... + MIPS_PB1000 + CPU_HAS_LLSC CPU_HAS_LLDSCD CPU_HAS_WB + CROSSCOMPILE + #MIPS_FPE_MODULE + # MIPS64 items begin here ---------------------------------------- + SGI_IP27 { + SGI_SN0_N_MODE MAPPED_KERNEL + REPLICATE_KTEXT REPLICATE_EXHANDLERS + } + MIPS_INSANE_LARGE MIPS32_COMPAT + +require MOMENCO_OCELOT==y implies SYSCLK_100==y + +derive IT8172_CIR from QTRONIX_KEYBOARD + +choices galileo_clock # Galileo Chip Clock + CONFIG_SYSCLK_75 CONFIG_SYSCLK_83 CONFIG_SYSCLK_100 + default CONFIG_SYSCLK_83 + +choices nino_model # Nino Model Number + NINO_4MB NINO_8MB NINO_16MB + default NINO_8MB + +unless MIPS32 suppress + ACER_PICA_61 ALGOR_P4032 BAGET_MIPS DECSTATION DDB5074 + MIPS_MAGNUM_4000 OLIVETTI_M700 SGI_IP22 SNI_RM200_PCI + CPU_HAS_LLSC CPU_HAS_LLDSCD CPU_HAS_WB +unless MIPS64 suppress + SGI_IP27 SGI_SN0_N_MODE # SGI_SN0_XXL + MIPS_INSANE_LARGE MIPS32_COMPAT + +default CPU_HAS_LLSC from MIPS64 or (CPU_R3000==n) +default CPU_HAS_LLDSCD from MIPS32 +default CPU_HAS_WB from CPU_R3000 and DECSTATION + +require (ALGOR_P4032 or SNI_RM200_PCI or DDB5074) implies PCI==y +require (MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 + or SNI_RM200_PCI or DDB5074) + implies ISA==y +derive MIPS_PC_KEYB from MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 + or SGI_IP22 or SNI_RM200_PCI or FOOTBRIDGE + or MIPS_PS2_KEYB or MIPS_ITE8172 + or (IT8712 and QTRONIX_KEYBOARD==n) +require DDB5074 or SNI_RM200_PCI or SGI_IP27 or MIPS_EV96100 or MIPS_EV64120 + or MIPS_MALTA or MOMENCO_OCELOT or DDB5477 or MIPS_ITE8172 + or MIPS_IVR + implies PCI==y +require DECSTATION or SGI_IP22 implies IDE==n +require (MIPS_MAGNUM_4000 or OLIVETTI_M700) implies FB==y +derive ARC32 from + MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 + or SGI_IP22 or SNI_RM200_PCI + +#derive HAVE_IO_PORTS from MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 +# or SNI_RM200_PCI or DDB5074 +derive MIPS_JAZZ from MIPS_MAGNUM_4000 or OLIVETTI_M700 or ACER_PICA_61 + or MIPS_MAGNUM_4000 or OLIVETTI_M700 +derive FB_G364 from MIPS_MAGNUM_4000 or OLIVETTI_M700 +derive SGI from SGI_IP22 or SGI_IP27 +derive BOOT_ELF32 from SGI_IP22 +derive BOARD_SCACHE from SGI_IP22 +derive ARC_MEMORY from SGI_IP22 +derive BOOT_ELF64 from SGI_IP27 +derive ARC64 from SGI_IP27 +derive COHERENT_IO from SGI_IP27 +derive QL_ISP_A64 from SGI_IP27 + +derive VIDEO_G364 from n + +choices mipstype # MIPS-32 CPU selection + CPU_R3000 CPU_R6000 CPU_VR41XX CPU_R4300 CPU_R4X00 + CPU_R5000 CPU_R5432 CPU_RM7000 CPU_R8000 + CPU_NEVADA CPU_R10000 CPU_SB1 CPU_MIPS32 CPU_MIPS64 + default CPU_R4X00 +unless MIPS32 suppress CPU_R3000 CPU_R6000 + +derive ELF_KERNEL from MIPS + +derive MIPS_GT96100 from MIPS_EV96100 +derive SWAP_IO_SPACE from MIPS_EV96100 or MIPS_ATLAS or MIPS_MALTA + or MOMENCO_OCELOT +derive OLD_TIME_C from MIPS_EV64120 or ALGOR_P4032 or MIPS_MAGNUM_4000 + or OLIVETTI_M700 or MOMENCO_OCELOT or SGI_IP22 or SNI_RM200_PCI +derive NEW_TIME_C from DDB5074 or DDB5477 +derive MIPS_GT64120 from MIPS_EV64120 +derive I8259 from ACER_PICA_61 or MIPS_MALTA or SNI_RM200_PCI or DDB5074 +derive HAVE_STD_PC_SERIAL_PORT from MIPS_MALTA or DDB5074 +derive NEW_IRQ from MIPS_MALTA or MOMENCO_OCELOT or SGI_IP22 + or DDB5477 or MIPS_PB1000 +derive ROTTEN_IRQ from SNI_RM200_PCI or DDB5074 +derive IT8712 from MIPS_ITE8172 +derive MIPS_AU1000 from MIPS_PB1000 +derive NEW_PCI from MIPS_EV96100 or MIPS_ITE8172 +derive PCI_AUTO from MIPS_EV96100 or MIPS_ITE8172 + +# This was a separate query in CML1 +derive MIPS_RTC from MIPS & RTC + +derive L1_CACHE_SHIFT from SGI_IP27 ? 7 : 5 +derive CONFIG_MAPPED_PCI_IO from SGI_IP27 + +# End diff -uNr linux.2.4.14.pristine/arch/parisc/rules.cml linux/arch/parisc/rules.cml --- linux.2.4.14.pristine/arch/parisc/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/parisc/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,20 @@ +# HP PA-RISC port + +#unless PCI suppress GSC_DINO PCI_LBA +#default GSC_DINO from PCI and PARISC + +menu parisc + KWDB + #GSC + IOMMU_CCIO IODC_CONSOLE + GSC_LASI { + PARPORT_GSC? #LASI_82596 + } + GSC_DINO PCI_LBA + +derive IOSAPIC from PCI_LBA +derive IOMMU_SBA from PCI_LBA + +require PARISC implies SMP == n + +# End diff -uNr linux.2.4.14.pristine/arch/ppc/rules.cml linux/arch/ppc/rules.cml --- linux.2.4.14.pristine/arch/ppc/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/ppc/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,84 @@ +# from arch/ppc/config.in + +# This is the top-level menu for architecture-dependent Power PC stuff + +private CONFIG_6xx_GENERIC +unless CONFIG_8xx suppress PCI_QSPAN + +unless DANGEROUS suppress TAU_INT + +choices ppctype # Power PC processor type + CONFIG_6xx CONFIG_4xx POWER3 POWER4 CONFIG_8260 CONFIG_8xx + default CONFIG_6xx + +choices ppc4xxtype + OAK WALNUT + default OAK + +choices ppc6xxtype + CONFIG_6xx_GENERIC GEMINI APUS + default CONFIG_6xx_GENERIC + +choices ppc82xxtype + EST8260 + default EST8260 + +# This doesn't seem to be used in the C code anywhere +derive ABSTRACT_CONSOLE from APUS + +derive FB_CONSOLE from APUS + +choices ppc8xxtype + RPXLITE RPXCLASSIC BSEIP FADS + TQM823L TQM850L TQM855L TQM860L FPS850L TQM860 + SPD823TS IVMS8 IVML24 SM850 MBX WINCEPT + default RPXLITE + +derive TQM8xxL from TQM823L or TQM850L or FPS850L + or TQM855L or TQM860L or SM850 + +#default PCI_PERMEDIA from PCI + +menu ppc + ppctype + ppc82xxtype + ppc4xxtype + ppc6xxtype ALTIVEC + TAU {TAU_INT TAU_AVERAGE} + BOOTX_TEXT PPC601_SYNC_FIX + ppc8xxtype + CONFIG_8xx_COPYBACK CONFIG_8xx_CPU6 UCODE_PATCH + PCI_QSPAN + PCI_PERMEDIA + +unless CONFIG_4xx suppress ppc4xxtype +unless CONFIG_6xx suppress ppc6xxtype ALTIVEC PMAC_PBOOK PMAC_BACKLIGHT + BOOTX_TEXT PPC601_SYNC_FIX +unless CONFIG_8xx suppress ppc8xxtype CONFIG_8xx_COPYBACK CONFIG_8xx_CPU6 PCI_QSPAN +unless CONFIG_8260 suppress ppc82xxtype + +derive PPC_STD_MMU from CONFIG_6xx or POWER3 or POWER4 +derive ALL_PPC from PPC and PPC_STD_MMU==n +derive MACH_SPECIFIC from ALL_PPC +derive PPC64BRIDGE from POWER3 or POWER4 + +require CONFIG_8260 implies CONFIG_6xx==y +require CONFIG_8260 or CONFIG_8xx implies SERIAL_CONSOLE==y +require (APUS or CONFIG_8260) implies PCI +require PCI_QSPAN or PCI_PERMEDIA implies PCI == y +#require PCI_QSPAN implies PCI == y + +#unless APUS suppress PCI_PERMEDIA + +require APUS implies (FB and FB_CONSOLE and AMIGA and ZORRO and AMIGAMOUSE!=n and MOUSE!=n and BUSMOUSE!=n) +unless APUS suppress AMIGA_BUILTIN_SERIAL +require (APUS and (AMIGA_BUILTIN_SERIAL!=n or GVPIOEXT!=n or MULTIFACE_III_TTY!=n)) + implies SERIAL_CONSOLE==y +derive APUS_FAST_EXCEPT from APUS + +require PPC implies ISA==n + +# Not clear this is used anywhere +derive KERNEL_ELF from PPC + +# End diff -uNr linux.2.4.14.pristine/arch/s390/rules.cml linux/arch/s390/rules.cml --- linux.2.4.14.pristine/arch/s390/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/s390/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,26 @@ +# IBM S/390 mainframe port + +# This is the top-level menu for architecture-dependent System 390 stuff + +private S390 S390X + +menu s390 # System 390 processor options + FAST_IRQ + IPL {s390_ipl} + CHANDEV + PROCESS_DEBUG PFAULT SHARED_KERNEL + +choices s390_ipl # IPL method generated into head.S + IPL_TAPE IPL_VM + default IPL_TAPE + +unless ARCH_S390==n suppress + ISA PCI PNP MCA TC PARPORT HOTPLUG IDE SCSI + CD_NO_IDESCSI USB IEEE1394 I2O + +require ARCH_S390 implies ISA==n and PCI==n and PNP==n and MCA==n and TC==n + and PARPORT==n and HOTPLUG==n and IDE==n and SCSI==n + and CD_NO_IDESCSI==n and USB==n and IEEE1394==n and ADB==n + and I2O==n and BINFMT_AOUT==n and KCORE_ELF==y + +# End diff -uNr linux.2.4.14.pristine/arch/sh/rules.cml linux/arch/sh/rules.cml --- linux.2.4.14.pristine/arch/sh/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/sh/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,54 @@ +# SuperH port + +# This is the top-level menu for architecture-dependent SuperH stuff + +# Even on SuperH devices which don't have an ISA bus, +# this variable helps the PCMCIA modules handle +# IRQ requesting properly -- Greg Banks. +require SUPERH implies ISA == y + +default MEMORY_START from 0x08000000 +default HD64461_IRQ from 36 +default HD64465_IRQ from 5 +default HD64465_IOBASE from 0xb0000000 + +choices superhsys # SuperH system type + SH_GENERIC + SH_SOLUTION_ENGINE + SH_7751_SOLUTION_ENGINE + SH_STB1_HARP + SH_STB1_OVERDRIVE + SH_HP620 SH_HP680 SH_HP690 + SH_CQREEK SH_DMIDA SH_EC3104 SH_DREAMCAST SH_CAT68701 + SH_BIGSUR SH_SH2000 + SH_UNKNOWN + default SH_GENERIC + +choices superhtype # SuperH processor type + CPU_SUBTYPE_SH7707 CPU_SUBTYPE_SH7708 CPU_SUBTYPE_SH7709 CPU_SUBTYPE_SH7750 CPU_SUBTYPE_SH7751 CPU_SUBTYPE_ST40STB1 + default CPU_SUBTYPE_SH7708 + +menu superh # SuperH options + superhsys + superhtype + MEMORY_START@ + HD64461 {HD64461_IRQ% HD64461_ENABLER} + HD64465 {HD64465_IRQ% HD64465_IOBASE@} + SH_STANDARD_BIOS + SH_EARLY_PRINTK + CF_ENABLER + +unless SH_GENERIC or SH_SOLUTION_ENGINE or SH_UNKNOWN suppress CF_ENABLER +unless SH_STANDARD_BIOS suppress SH_EARLY_PRINTK +unless HD64461 suppress HD64461_IRQ +unless HD64461 suppress HD64461_ENABLER + +derive CPU_SH3 from CPU_SUBTYPE_SH7707 or CPU_SUBTYPE_SH7708 or CPU_SUBTYPE_SH7709 +derive CPU_SH4 from CPU_SUBTYPE_SH7750 or CPU_SUBTYPE_SH7751 or CPU_SUBTYPE_ST40STB1 +derive SH_HP600 from SH_HP620 or SH_HP680 or SH_HP690 +derive SH_RTC from SH_GENERIC or SH_SOLUTION_ENGINE or SH_STB1_OVERDRIVE or SH_HP620 or SH_HP680 or SH_HP690 or SH_CQREEK or SH_DMIDA or SH_EC3104 or SH_UNKNOWN + +# This was a separate question in CML1. +derive HD64465_PCMCIA from HD64465 & PCMCIA + +# End diff -uNr linux.2.4.14.pristine/arch/sparc/rules.cml linux/arch/sparc/rules.cml --- linux.2.4.14.pristine/arch/sparc/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/arch/sparc/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,37 @@ +# SPARC32 port configuration + +# The CML1 for the Sparc 64 configuration asserted these rules +# for all Sun machines, but it looks like some of them are broken +# by SUN3X boxes. +# +require SPARC implies ISA==n and PCMCIA==n and VT==y and VT_CONSOLE==y + and BUSMOUSE==y and SUN_MOUSE==y and SERIAL==y and SERIAL_CONSOLE==y + and ISAPNP==n +derive SBUS from SPARC or SUN3X +derive SBUSCHAR from SPARC or SUN3X +derive SUN_SERIAL from SPARC or SUN3X +derive SUN_CONSOLE from SPARC +derive SUN_AUXIO from SPARC +derive SUN_IO from SPARC + +unless (SUN4==n) suppress sbus_misc sparcaudio + +unless SPARC32 suppress SUN4 +unless SPARC64 suppress SPARC32_COMPAT + +menu sparc # Sparc processor options + SUN4 + sbus_misc + sparcaudio + SUNOS_EMUL + SOLARIS_EMUL? + SPARC32_COMPAT {BINFMT_AOUT32} + +require (SPARC64 and PCI) implies + BLK_DEV_IDEPCI==y and IDEDMA_NEW_DRIVE_LISTINGS==y and + BLK_DEV_NS87415==y and BLK_DEV_CMD64X==y + # and BLK_DEV_IDEDMA==y + # and BLK_DEV_IDE_MODES==y + # and IDEDMA_AUTO==y + +# End diff -uNr linux.2.4.14.pristine/drivers/acpi/rules.cml linux/drivers/acpi/rules.cml --- linux.2.4.14.pristine/drivers/acpi/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/acpi/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,27 @@ +# Power management support + +default PM from ACPI_KERNEL_CONFIG +default ACPI from ACPI_KERNEL_CONFIG + +#default ACPI_INTERPRETER from ACPI_KERNEL_CONFIG +#unless EXPERIMENTAL suppress dependent ACPI_INTERPRETER +derive ACPI_INTERPRETER from ACPI_KERNEL_CONFIG + +menu pm # Power management + PM { + ACPI { + ACPI_DEBUG + ACPI_BUSMGR? { + ACPI_SYS? ACPI_CPU? ACPI_BUTTON? + ACPI_AC? ACPI_EC? ACPI_CMBATT? ACPI_THERMAL? + } + } + APM? { + APM_IGNORE_USER_SUSPEND APM_DO_ENABLE APM_CPU_IDLE + APM_DISPLAY_BLANK # APM_IGNORE_MULTIPLE_SUSPEND + #APM_IGNORE_SUSPEND_BOUNCE + APM_RTC_IS_GMT APM_ALLOW_INTS + APM_REAL_MODE_POWER_OFF + } + } + diff -uNr linux.2.4.14.pristine/drivers/atm/rules.cml linux/drivers/atm/rules.cml --- linux.2.4.14.pristine/drivers/atm/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/atm/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,61 @@ +# from drivers/atm/Config.in + +unless ATM suppress atm +unless INET suppress ATM_TCP +unless X86 suppress ATM_ZATM_EXACT_TS +unless PCI or SBUS suppress ATM_FORE200E_MAYBE +unless PCI suppress ATM_FORE200E_PCA +unless SBUS suppress ATM_FORE200E_SBA + +unless PCI suppress ATM_ENI # eni.c +unless PCI suppress ATM_ZATM # zatm.c +unless PCI suppress ATM_NICSTAR # nicstar.c +unless PCI suppress ATM_AMBASSADOR # ambassador.c; EISA version is + # not supported +unless PCI suppress ATM_HORIZON # horizon.c +unless PCI suppress ATM_IA # iphase.c + +unless EXPERIMENTAL suppress PPPOATM + +default ATM_FORE200E_DEBUG from 0 +default ATM_FORE200E_TX_RETRY from 16 +default ATM_FORE200E_SBA_FW from "" +default ATM_FORE200E_PCA_FW from "" + +menu atm # ATM drivers + ATM_TCP? ATM_LANAI? + ATM_ENI? { + ATM_ENI_DEBUG ATM_ENI_TUNE_BURST { + ATM_ENI_BURST_TX_16W ATM_ENI_BURST_TX_8W + ATM_ENI_BURST_TX_4W ATM_ENI_BURST_TX_2W + ATM_ENI_BURST_RX_16W ATM_ENI_BURST_RX_8W + ATM_ENI_BURST_RX_4W ATM_ENI_BURST_RX_2W + } + } + ATM_ZATM? {ATM_ZATM_DEBUG ATM_ZATM_EXACT_TS} + ATM_FIRESTREAM? + # ATM_TNETA1570 {ATM_TNETA1570_DEBUG} + ATM_NICSTAR? {ATM_NICSTAR_USE_SUNI ATM_NICSTAR_USE_IDT77105} + ATM_IDT77252? {ATM_IDT77252_RCV_ALL} + ATM_AMBASSADOR? {ATM_AMBASSADOR_DEBUG} + ATM_HORIZON? {ATM_HORIZON_DEBUG} + ATM_IA? {ATM_IA_DEBUG} + ATM_FORE200E_MAYBE? { + ATM_FORE200E_PCA {ATM_FORE200E_PCA_DEFAULT_FW} + ATM_FORE200E_PCA_FW$ + ATM_FORE200E_SBA {ATM_FORE200E_SBA_DEFAULT_FW} + ATM_FORE200E_SBA_FW$ + ATM_FORE200E_TX_RETRY% ATM_FORE200E_DEBUG% + } + PPPOATM? + +derive ATM_FORE200E from ATM & (ATM_FORE200E_MAYBE | m) + +unless ATM_FORE200E_PCA==n suppress ATM_FORE200E_PCA_FW +unless ATM_FORE200E_SBA==n suppress ATM_FORE200E_SBA_FW + +require (ATM_FORE200E_MAYBE!=n and PCI) implies ATM_FORE200E_PCA == y + +derive CONFIG_ATM_IDT77252_USE_SUNI from ATM_IDT77252_RCV_ALL + +# End diff -uNr linux.2.4.14.pristine/drivers/block/paride/rules.cml linux/drivers/block/paride/rules.cml --- linux.2.4.14.pristine/drivers/block/paride/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/block/paride/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,20 @@ +# Parallel-port IDE configuration + +# The parallel-port IDE support (ppIDE) doesn't need PARPORT, but if PARPORT +# is configured as a module, ppIDE must also be a module. This rule replaces +# the bogus CONFIG_PARIDE_PARPORT option that controlled the choices +# given to the user in the old language. +prohibit (PARPORT==m) and (PARIDE==y) + +unless PARIDE_EPAT!=n and EXPERIMENTAL suppress PARIDE_EPATC8 + +menu paride_devices # Parallel-port IDE devices + # Parallel IDE high-level drivers + PARIDE_PD? PARIDE_PCD? PARIDE_PF? PARIDE_PT? PARIDE_PG? + # Parallel IDE protocol modules + PARIDE_ATEN? PARIDE_BPCK? PARIDE_BPCK6? PARIDE_COMM? PARIDE_DSTR? + PARIDE_FIT2? PARIDE_FIT3? PARIDE_EPAT? PARIDE_EPIA? PARIDE_FRIQ? + PARIDE_FRPW? PARIDE_KBIC? PARIDE_KTTI? PARIDE_ON20? PARIDE_ON26? + PARIDE_EPATC8 + +# End diff -uNr linux.2.4.14.pristine/drivers/block/rules.cml linux/drivers/block/rules.cml --- linux.2.4.14.pristine/drivers/block/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/block/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,207 @@ +# Block device configuration + +unless DANGEROUS suppress WDC_ALI15X3 + +unless AMIGA suppress BLK_DEV_GAYLE +unless ATARI suppress BLK_DEV_FALCON_IDE ATARI_ACSI +unless ARCH_ACORN suppress BLK_DEV_IDE_ICSIDE BLK_DEV_IDE_RAPIDE +unless MAC and EXPERIMENTAL suppress BLK_DEV_SWIM_IOP BLK_DEV_MAC_IDE +unless PPC or ARM suppress BLK_DEV_SL82C105 +unless PPC suppress BLK_DEV_IDE_PMAC MAC_FLOPPY +unless X86 or IA64 suppress BLK_DEV_PIIX +unless X86 suppress BLK_DEV_HD_ONLY BLK_DEV_HD_IDE BLK_DEV_SIS5513 +unless CRIS suppress ide_reset ETRAX_IDE_DELAY +unless ARCH_ARCA5K suppress + BLK_DEV_FD1772 BLK_DEV_MFM BLK_DEV_MFM_AUTODETECT +unless ARCH_S390 suppress DASD BLK_DEV_XPRAM +unless ARCH_S390==n suppress BLK_DEV_FD PARIDE +unless ZORRO suppress BLK_DEV_BUDDHA AMIGA_Z2RAM +unless ISAPNP==y suppress BLK_DEV_ISAPNP +unless PCI suppress BLK_DEV_RZ1000 BLK_DEV_IDEPCI + BLK_CPQ_DA BLK_CPQ_CISS_DA BLK_DEV_DAC960 +unless MCA suppress BLK_DEV_PS2 +unless EXPERIMENTAL suppress dependent + IDEDMA_NEW_DRIVE_LISTINGS BLK_DEV_OPTI621 + BLK_DEV_PDC4030 BLK_DEV_BUDDHA +unless ISA suppress BLK_DEV_XD +unless MIPS suppress BLK_DEV_IT8172 +unless Q40 suppress BLK_DEV_Q40IDE + +# Correction from Colin Slater +unless CONFIG_8xx suppress BLK_DEV_MPC8xx_IDE +unless CONFIG_8xx suppress mpc8xxtype +unless BLK_DEV_MPC8xx_IDE suppress mpc8xxtype + +unless NET suppress dependent BLK_DEV_NBD +unless IDE!=n suppress dependent ide_blockdevs + +require DASD_ECKD <= DASD +require DASD_FBA <= DASD +#require DASD_CKD <= DASD +require DASD_DIAG <= DASD + +menu block_devices # Block devices + # Floppies + BLK_DEV_FD? BLK_DEV_SWIM_IOP BLK_DEV_FD1772? MAC_FLOPPY + ide_blockdevs + BLK_DEV_PS2! AMIGA_Z2RAM! + ATARI_ACSI! {ACSI_MULTI_LUN ATARI_SLM!} # Atari + BLK_CPQ_DA! BLK_CPQ_CISS_DA! + BLK_DEV_MFM! {BLK_DEV_MFM_AUTODETECT} # Acorn + add_block_devices + DASD? { + DASD_ECKD? {DASD_AUTO_ECKD} + DASD_FBA? {DASD_AUTO_FBA} + # DASD_CKD? + DASD_DIAG? {DASD_AUTO_DIAG} + } + +# Normally, in a stock Linux tree, we suppress the vendor-specific menu. +# Comment out this line if your source tree includes the right stuff... +derive BLK_DEV_IDEDISK_VENDOR from n +derive BLK_DEV_COMMERIAL from n + +unless BLK_DEV_IDEDISK_VENDOR suppress ide_vendorhooks + +default ETRAX_IDE_DELAY from 15 + +menu ide_blockdevs # IDE block devices + BLK_DEV_IDE! + BLK_DEV_HD_ONLY + ide_options + ide_chipsets + ide_reset # See the cris rulesfile + ETRAX_IDE_DELAY% # Only used on CRIS port, so far + IDE_CHIPSETS {other_ide_chipsets} + BLK_DEV_IDE_PMAC {BLK_DEV_IDEDMA_PMAC {BLK_DEV_IDEDMA_PMAC_AUTO}} # Mac + BLK_DEV_IDE_ICSIDE {BLK_DEV_IDEDMA_ICS {IDEDMA_ICS_AUTO}} + IDEDMA_IVB + BLK_DEV_IDE_RAPIDE + BLK_DEV_GAYLE {BLK_DEV_IDEDOUBLER} + BLK_DEV_BUDDHA BLK_DEV_FALCON_IDE BLK_DEV_MAC_IDE + BLK_DEV_Q40IDE # Q40 + BLK_DEV_MPC8xx_IDE {mpc8xxtype} # PPC + ide_vendorhooks + +choices mpc8xxtype # Type of MPC8xx IDE interface + IDE_8xx_PCCARD IDE_8xx_DIRECT IDE_EXT_DIRECT + default IDE_8xx_PCCARD + +unless BLK_DEV_COMMERIAL==n suppress BLK_DEV_TIVO + +menu ide_vendorhooks # IDE vendor-specific hooks + BLK_DEV_IDEDISK_FUJITSU + BLK_DEV_IDEDISK_IBM + BLK_DEV_IDEDISK_MAXTOR + BLK_DEV_IDEDISK_QUANTUM + BLK_DEV_IDEDISK_SEAGATE + BLK_DEV_IDEDISK_WD + BLK_DEV_TIVO + +derive DMA_NONPCI from BLK_DEV_TIVO + +menu ide_options # IDE options -- see Documentation/ide.txt for help/info + BLK_DEV_HD_IDE + BLK_DEV_IDEDISK! {IDEDISK_MULTI_MODE} + BLK_DEV_IDECS! + BLK_DEV_IDECD! + BLK_DEV_IDETAPE! + BLK_DEV_IDEFLOPPY! + BLK_DEV_IDESCSI! + +menu ide_chipsets # IDE chipset support/bugfixes + BLK_DEV_CMD640 {BLK_DEV_CMD640_ENHANCED} + BLK_DEV_ISAPNP + BLK_DEV_RZ1000 + BLK_DEV_IDEPCI { + IDEPCI_SHARE_IRQ + BLK_DEV_IDEDMA_PCI { + IDEDMA_PCI_AUTO + IDEDMA_NEW_DRIVE_LISTINGS + IDEDMA_PCI_WIP + BLK_DEV_ALI15X3 {WDC_ALI15X3} + BLK_DEV_AMD74XX {AMD74XX_OVERRIDE} + BLK_DEV_HPT34X {HPT34X_AUTODMA} + BLK_DEV_HPT366 + BLK_DEV_PIIX {PIIX_TUNING} + BLK_DEV_IT8172 {IT8172_TUNING} + BLK_DEV_NS87415 + BLK_DEV_PDC202XX {PDC202XX_BURST PDC202XX_FORCE} + BLK_DEV_SVWKS + BLK_DEV_SIS5513 + BLK_DEV_SLC90E66 + BLK_DEV_TRM290 + BLK_DEV_VIA82CXXX + } + BLK_DEV_OFFBOARD + BLK_DEV_AEC62XX {AEC62XX_TUNING} + BLK_DEV_CMD64X + BLK_DEV_CY82C693 + BLK_DEV_CS5530 + BLK_DEV_OPTI621 + BLK_DEV_SL82C105 + } + +derive BLK_DEV_ADMA from BLK_DEV_IDEDMA_PCI + +# Other chipset dependencies +unless EXPERIMENTAL suppress + IDEDMA_PCI_WIP BLK_DEV_NS87415 BLK_DEV_TRM290 +unless IDEDMA_PCI_WIP suppress AMD74XX_OVERRIDE HPT34X_AUTODMA +unless IDEDMA_PCI_AUTO suppress PIIX_TUNING + +menu other_ide_chipsets # Other IDE chipset support (most need boot parameters) + BLK_DEV_4DRIVES BLK_DEV_ALI14XX BLK_DEV_DTC2278 BLK_DEV_HT6560B + BLK_DEV_PDC4030 BLK_DEV_QD65XX BLK_DEV_UMC8672 + +default BLK_DEV_RAM_SIZE from 24576 + +menu add_block_devices # Additional block devices + BLK_DEV_LOOP? + BLK_DEV_NBD? + MD { + BLK_DEV_MD? {MD_LINEAR? MD_RAID0? MD_RAID1? MD_RAID5?} + MD_MULTIPATH? BLK_DEV_LVM? + BLK_DEV_ATARAID? {BLK_DEV_ATARAID_PDC? BLK_DEV_ATARAID_HPT?} + } + BLK_DEV_DAC960? + BLK_DEV_RAM? {BLK_DEV_RAM_SIZE% {BLK_DEV_INITRD}} + BLK_DEV_XPRAM? + BLK_DEV_XD? + PARIDE? {paride_devices} + +unless EXPERIMENTAL and BLK_DEV_IDE!=n suppress BLK_DEV_ATARAID +unless BLK_DEV_IDE==n suppress BLK_DEV_HD_ONLY +unless BLK_DEV_IDE!=n suppress ide_options ide_chipsets other_ide_chipsets +unless BLK_DEV_IDEDISK==y suppress IDEDISK_MULTI_MODE BLK_DEV_PDC4030 + + +unless BLK_DEV_IDE!=n suppress BLK_DEV_IDE_PMAC BLK_DEV_IDE_ICSIDE + +require BLK_DEV_IDEDISK <= BLK_DEV_IDE +require BLK_DEV_IDECS <= BLK_DEV_IDE and BLK_DEV_IDECS <= PCMCIA +require BLK_DEV_IDECD <= BLK_DEV_IDE +require BLK_DEV_IDETAPE <= BLK_DEV_IDE +require BLK_DEV_IDEFLOPPY <= BLK_DEV_IDE +require BLK_DEV_IDESCSI <= BLK_DEV_IDE + +derive BLK_DEV_IDEDMA from BLK_DEV_IDEDMA_PCI or + BLK_DEV_IDEDMA_PMAC or BLK_DEV_IDEDMA_ICS or + (SPARC64 and PCI) +derive IDEDMA_AUTO from IDEDMA_PCI_AUTO or BLK_DEV_IDEDMA_PMAC_AUTO or IDEDMA_ICS_AUTO + or (SPARC64 and PCI) + +derive BLK_DEV_IDE_MODES from + IDE_CHIPSETS or BLK_DEV_AEC62XX or BLK_DEV_ALI15X3 or + BLK_DEV_AMD74XX or BLK_DEV_CMD640 or BLK_DEV_CMD64X or + BLK_DEV_CS5530 or BLK_DEV_CY82C693 or BLK_DEV_HPT34X or + BLK_DEV_HPT366 or BLK_DEV_IDE_PMAC or BLK_DEV_OPTI621 or + BLK_DEV_SVWKS or BLK_DEV_PDC202XX or BLK_DEV_PIIX or + BLK_DEV_SIS5513 or BLK_DEV_SLC90E66 or BLK_DEV_SL82C105 or + BLK_DEV_MPC8xx_IDE or (SPARC64 and PCI) +derive BLK_DEV_HD from BLK_DEV_HD_IDE or BLK_DEV_HD_ONLY + +unless BLK_DEV_IDEDMA_PCI or BLK_DEV_IDEDMA_PMAC or BLK_DEV_IDEDMA_ICS + suppress IDEDMA_IVB + +# End diff -uNr linux.2.4.14.pristine/drivers/bluetooth/rules.cml linux/drivers/bluetooth/rules.cml --- linux.2.4.14.pristine/drivers/bluetooth/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/bluetooth/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,6 @@ +# Bluetooth driver configuration (see also net/bluetooth.cml) + +menu bluetooth_drivers + BLUEZ_HCIUSB? BLUEZ_HCIUART? BLUEZ_HCIVHCI? + +# end diff -uNr linux.2.4.14.pristine/drivers/cdrom/rules.cml linux/drivers/cdrom/rules.cml --- linux.2.4.14.pristine/drivers/cdrom/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/cdrom/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,13 @@ +# from drivers/cdrom/Config.in: + +default MCD_BASE from 0x300 +default MCD_IRQ from 11 + +menu nativecdrom + AZTCD? GSCD? SBPCD? {SBPCD2 {SBPCD3 {SBPCD4}}} + MCD? {MCD_IRQ% MCD_BASE@} + MCDX? OPTCD? CM206? SJCD? ISP16_CDI? CDU31A? CDU535? + +unless SBPCD==y suppress SBPCD2 +unless MCD==y suppress MCD_IRQ MCD_BASE + diff -uNr linux.2.4.14.pristine/drivers/char/ftape/rules.cml linux/drivers/char/ftape/rules.cml --- linux.2.4.14.pristine/drivers/char/ftape/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/char/ftape/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,42 @@ +# Tape configuration + +# From drivers/char/Config.in and drivers/char/ftape/Config.in, continued + +default FT_ALPHA_CLOCK from 0 + +#unless OBSOLETE suppress qic +unless WIZARD and QIC02_TAPE!=n suppress QIC02_DYNCONF +unless EXPERIMENTAL suppress dependent FT_NR_BUFFERS FT_FDC_THR FT_FDC_MAX_RATE +unless ALPHA suppress FT_ALPHA_CLOCK + +default FT_FDC_IRQ from 0 range 0-15 +default FT_FDC_DMA from 0 range 0-5 +default FT_FDC_BASE from 0 +default FT_FDC_MAX_RATE from 2000 +default FT_FDC_THR from 8 +default FT_NR_BUFFERS from 3 +default ZFT_DFLT_BLK_SZ from 10240 + +menu qic # QIC tape support + QIC02_TAPE? QIC02_DYNCONF + FTAPE? {ZFTAPE? {ZFT_DFLT_BLK_SZ%}} + FT_NR_BUFFERS% FT_PROC_FS ftdebug + # Floppy tape hardware configuration + ftcontroller + FT_FDC_BASE@ FT_FDC_IRQ% FT_FDC_DMA% + FT_FDC_THR% FT_FDC_MAX_RATE% FT_ALPHA_CLOCK% + +choices ftdebug # Floppy tape debugging output level + FT_NORMAL_DEBUG FT_FULL_DEBUG FT_NO_TRACE FT_NO_TRACE_AT_ALL + default FT_NORMAL_DEBUG + +choices ftcontroller # Floppy tape controller + FT_STD_FDC FT_MACH2 FT_PROBE_FC10 FT_ALT_FDC + default FT_STD_FDC + +derive ZFT_COMPRESSOR from m & (m | ZFTAPE) +unless FT_STD_FDC suppress FT_FDC_BASE FT_FDC_IRQ FT_FDC_DMA + +require FT_PROC_FS implies PROC_FS == y + +# End diff -uNr linux.2.4.14.pristine/drivers/char/joystick/rules.cml linux/drivers/char/joystick/rules.cml --- linux.2.4.14.pristine/drivers/char/joystick/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/char/joystick/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,31 @@ +# Joysticks + +unless PARPORT!=n suppress INPUT_GAMECON INPUT_DB9 INPUT_TURBOGRAFX +unless AMIGA suppress INPUT_AMIJOY + +menu joysticks # Joystick support + gameports_legend + INPUT_NS558? INPUT_LIGHTNING? INPUT_PCIGAME? INPUT_CS461X? + INPUT_EMU10K1? + port_joystick_legend + INPUT_ANALOG? INPUT_A3D? + INPUT_ADI? INPUT_COBRA? INPUT_GF2K? + INPUT_GRIP? INPUT_INTERACT? INPUT_TMDC? INPUT_SIDEWINDER? + serial_support_legend + INPUT_SERIO? {INPUT_SERPORT?} + serial_joystick_legend + INPUT_WARRIOR? INPUT_MAGELLAN? INPUT_SPACEORB? INPUT_SPACEBALL? + INPUT_STINGER? INPUT_IFORCE_232? INPUT_IFORCE_USB? + parallel_joystick_legend + INPUT_DB9? INPUT_GAMECON? INPUT_TURBOGRAFX? + system_joystick_legend + INPUT_AMIJOY? + +# Must explicitly set to n for drivers/sound/Config.in +derive INPUT_GAMEPORT from JOYSTICK + +require INPUT_IFORCE_USB <= USB +require INPUT_IFORCE_USB <= INPUT +require INPUT_IFORCE_USB <= INPUT_IFORCE_232 + +# End diff -uNr linux.2.4.14.pristine/drivers/char/pcmcia/rules.cml linux/drivers/char/pcmcia/rules.cml --- linux.2.4.14.pristine/drivers/char/pcmcia/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/char/pcmcia/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,11 @@ +# PCMCIA character-device configuration + +unless PCMCIA!=n and SERIAL!=n suppress dependent pcmcia_chardevs +#unless CARDBUS!=n suppress PCMCIA_SERIAL_CB + +menu pcmcia_chardevs # PCMCIA? character device support + PCMCIA_SERIAL_CS? + +derive PCMCIA_CHRDEV from PCMCIA_SERIAL_CS + +# End diff -uNr linux.2.4.14.pristine/drivers/char/rules.cml linux/drivers/char/rules.cml --- linux.2.4.14.pristine/drivers/char/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/char/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,219 @@ +# Character device configuration + +# Console support + +unless X86 or SUPERH or IA64 suppress VIDEO_SELECT MDA_CONSOLE +unless X86 or (ALPHA and VT) + or (MIPS and VT and (SGI_IP22==n)) + or (ALL_PPC and VT) + or (ARM and ARCH_ACORN and ARCH_EBSA110) + suppress VGA_CONSOLE +unless SPARC or SUN3X suppress PROM_CONSOLE +unless SGI_IP22 suppress SGI_PROM_CONSOLE SGI_NEWPORT_CONSOLE +unless ARCH_S390==n suppress INPUT +unless MIPS suppress SGI_NEWPORT_GFX +unless (X86 and VT) or (MIPS and VT and (SGI_IP22==n) and (DECSTATION==n)) + or (ALPHA and VT) or (PPC and VT) + suppress FB +unless PARISC suppress STI_CONSOLE +unless CONFIG_8xx suppress CONFIG_SMC2_UART CONFIG_USE_SCC_IO +unless ALL_PPC suppress MAC_SERIAL +unless ARCH_S390 suppress TN3270 TN3215 +#unless SUN3X_ZS suppress SUN_KEYBOARD +unless CPU_LITTLE_ENDIAN suppress FORWARD_KEYBOARD +unless ARC32 suppress ARC_CONSOLE + +unless VT suppress VGA_CONSOLE + +menu console # Console drivers + VGA_CONSOLE VIDEO_SELECT MDA_CONSOLE? STI_CONSOLE + PROM_CONSOLE SGI_PROM_CONSOLE SGI_NEWPORT_CONSOLE! SGI_NEWPORT_GFX! + TN3270? {TN3270_CONSOLE} # S/390 + TN3215 {TN3215_CONSOLE} # S/390 + HWC {HWC_CONSOLE HWC_CPI?} # S/390 + #SUN_KEYBOARD + FORWARD_KEYBOARD ARC_CONSOLE + FB {framebuffer} + +# According to Helge Deller's STI-console mini-HOWTO... +require STI_CONSOLE==n or SERIAL_CONSOLE==n + +default FB from M68K + +# Serial devices + +unless EXPERIMENTAL suppress dependent CYZ_INTR ISI ATARI_DSP56K +unless EXPERT suppress SERIAL_EXTENDED SERIAL_NONSTANDARD + +unless ARCH_ACORN and SERIAL!=n suppress ATOMWIDE_SERIAL DUALSP_SERIAL +unless MIPS32 suppress DZ +unless MIPS32 and TC suppress ZS +unless ATARI suppress ATARI_MFPSER ATARI_SCC ATARI_MIDI ATARI_DSP56K +unless AMIGA suppress AMIGA_BUILTIN_SERIAL +unless AMIGA_PCMCIA suppress WHIPPET_SERIAL +unless MIPS suppress SGI_SERIAL +unless SUN3 or SUN3X suppress SUN3X_ZS +#unless M68K suppress USERIAL +unless SUPERH suppress SH_SCI +unless FOOTBRIDGE suppress SERIAL_21285 +unless HP300 and DIO suppress HPDCA +unless SPARC64 and SBUS suppress SAB82532 +unless ISA or PCI suppress RIO +unless MIPS suppress SERIAL_TX3912 AU1000_UART +unless IT8712 suppress QTRONIX_KEYBOARD IT8172_SCR0 IT8172_SCR1 +unless EXPERIMENTAL and ZORRO suppress A2232 + +unless DIGIEPCA==n suppress DIGI +#require RIO or SX implies GENERIC_SERIAL == (RIO | SX) +require ISI <= m +require SYNCLINK <= m +require N_HDLC <= m + +private SERIAL_NONSTANDARD SERIAL_EXTENDED DONGLE + +menu rs232c # RS-232 serial devices + ATOMWIDE_SERIAL? DUALSP_SERIAL? SERIAL_ACPI + SERIAL_EXTENDED { + SERIAL_MANY_PORTS SERIAL_SHARE_IRQ + SERIAL_DETECT_IRQ SERIAL_MULTIPORT HUB6 + } + SERIAL_NONSTANDARD { + COMPUTONE? ROCKETPORT? + CYCLADES? {CYZ_INTR} + DIGIEPCA? DIGI? ESPSERIAL? MOXA_INTELLIO? MOXA_SMARTIO? + ISI? SYNCLINK? N_HDLC? RISCOM8? + SPECIALIX? {SPECIALIX_RTSCTS} + SX? STALDRV + RIO? {RIO_OLDPCI} + STALLION? ISTALLION? + SERIAL_TX3912 {SERIAL_TX3912_CONSOLE} + AU1000_UART {AU1000_SERIAL_CONSOLE} + } + SMC2_UART {ALTSMC2 CONS_SMC2} # CONFIG_8xx + USE_SCC_IO # CONFIG_8xx + SUN3X_ZS # Sun3X + MAC_SERIAL? # PowerMac Serial + SERIAL167 # VME + DZ ZS SGI_SERIAL # MIPS only + ATARI_MFPSER? ATARI_SCC? {ATARI_SCC_DMA} # ATARI + ATARI_MIDI? ATARI_DSP56K? + AMIGA_BUILTIN_SERIAL? WHIPPET_SERIAL? A2232? # AMIGA + #USERIAL # MAC + SERIAL_21285 { + SERIAL_21285_CONSOLE SERIAL_21285_OLD + } + HPDCA? # M68K + SAB82532? # Sun Ultra + +# Miscellaneous character devices + +# http://www.rcsys.com/dt.htm (Apple II3 and IIgs and PC104 versions too, +# but this driver looks like it supports ISA only) +unless ISA suppress DTLK + +# PC104 too, but see http://us.applicom-int.com/us/applicom_en/applicom_en.html +unless ISA or PCI suppress APPLICOM + +unless X86 and EXPERIMENTAL suppress SONYPI + +menu char_devs_misc # Miscellaneous character devices + DTLK? R3964? APPLICOM? SONYPI? + +# Character device selection + +unless ARCH_S390 suppress S390_TAPE +unless ARCH_S390==n suppress + VT SERIAL I2C graphics char_devs_misc MOUSE JOYSTICK qic DONGLE +unless TN3270==n suppress TN3215 +unless TN3270==y suppress TN3270_CONSOLE +unless IRDA!=n suppress dependent DONGLE +unless X86 suppress MWAVE + +# The nasty part of this expression is a direct translation of the CML1 +# The structure of the port file suggests that it's not really necessary. +#unless (M68K==n) or APOLLO or (AMIGA or ATARI or MAC or HP300 or SUN3 +# or SUN3X) and +# (ATARI_MFPSER or ATARI_SCC or ATARI_MIDI or MAC_SCC +# or AMIGA_BUILTIN_SERIAL or GVPIOEXT +# or MULTIFACE_III_TTY or HPDCA or SUN3X_ZS or SGI) +# suppress SERIAL_CONSOLE +unless (CONFIG_SMC2_UART or MAC_SERIAL==y or SERIAL==y) suppress SERIAL_CONSOLE + +unless PARPORT!=n suppress dependent PRINTER LP_CONSOLE PPDEV + +default UNIX98_PTY_COUNT from 256 range 0-2048 + +menu cdevs # Character devices + VT {VT_CONSOLE} + SERIAL? {rs232c} + UNIX98_PTYS {UNIX98_PTY_COUNT%} + SH_SCI? # SuperH + console + SERIAL_CONSOLE + INPUT? {input} + pcmcia_chardevs + I2C? {i2c} + VIDEO_DEV? {video radio} + graphics + char_devs_misc + PRINTER? {LP_CONSOLE} + PPDEV? + MOUSE? {mice} + JOYSTICK? {joysticks} + qic + S390_TAPE? { + S390_TAPE_CHAR S390_TAPE_BLOCK S390_TAPE_3490 S390_TAPE_3480 + } + DONGLE {dongles} + MWAVE? + +unless EXPERIMENTAL suppress dependent AGP +unless PCI suppress AGP # agp source files include pci.h +unless PCI suppress DRM_TDFX # From tdfxfb.c +unless SPARC suppress DRM_FFB + +# Graphics + +menu graphics # Kernel-level graphics support + AGP? { + AGP_INTEL AGP_I810 AGP_VIA AGP_AMD AGP_SIS AGP_ALI AGP_SWORKS + } + DRM { + DRM_TDFX? DRM_GAMMA? DRM_R128? DRM_FFB? DRM_RADEON? + DRM_I810? DRM_MGA? + } +unless AGP!=n suppress dependent DRM_I810 DRM_MGA + +# Watchdog cards + +unless X86 suppress WDT PCWATCHDOG ACQUIRE_WDT +unless PCI suppress WDTPCI +unless SPARC64 and PCI suppress WATCHDOG_CP1XXX WATCHDOG_RIO +unless FOOTBRIDGE suppress CONFIG_21285_WATCHDOG +unless FOOTBRIDGE and ARCH_NETWINDER suppress CONFIG_977_WATCHDOG + +menu watchdog # Watchdog cards + SOFT_WATCHDOG? WATCHDOG_NOWAYOUT + WDT? {WDT_501 {WDT_501_FAN}} WDTPCI? + PCWATCHDOG? ACQUIRE_WDT? ADVANTECH_WDT? CONFIG_21285_WATCHDOG? + EUROTECH_WDT? IB700_WDT? I810_TCO? CONFIG_60XX_WDT? W83877F_WDT? + MIXCOMWD? CONFIG_977_WATCHDOG? MACHZ_WDT? + WATCHDOG_CP1XXX? WATCHDOG_RIO? + +# Mice + +unless AMIGA suppress AMIGAMOUSE +unless ATARI suppress ATARIMOUSE +#unless SUN3X_ZS suppress SUN_MOUSE + +menu mice # Mice + BUSMOUSE? {ATIXL_BUSMOUSE? LOGIBUSMOUSE? MS_BUSMOUSE? ADBMOUSE?} + AMIGAMOUSE? ATARIMOUSE? #SUN_MOUSE + PSMOUSE CONFIG_82C710_MOUSE? PC110_PAD? + +require (AMIGA and (AMIGAMOUSE==n)) implies BUSMOUSE == y +require (ATARI and (ATARIMOUSE==n)) implies BUSMOUSE == y +require (SUN3X and (SUN_MOUSE==n)) implies BUSMOUSE == y +require ADBMOUSE <= ADB_KEYBOARD + +# End diff -uNr linux.2.4.14.pristine/drivers/fc4/rules.cml linux/drivers/fc4/rules.cml --- linux.2.4.14.pristine/drivers/fc4/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/fc4/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,20 @@ +# from drivers/fc4/Config.in + +menu fc4 # Fiber Channel support + fc4_drivers_legend + FC4_SOC? FC4_SOCAL? + fc4_targets_legend + SCSI_PLUTO? SCSI_FCAL_SUN? SCSI_FCAL_GENERIC? + +unless SCSI!=n suppress dependent + fc4_targets_legend SCSI_PLUTO SCSI_FCAL_GENERIC SCSI_FCAL_SUN + +derive SCSI_FCAL from SCSI_FCAL_GENERIC | SCSI_FCAL_SUN +private SCSI_FCAL_GENERIC SCSI_FCAL_SUN + +default FC4_SOC from n +default FC4_SOCAL from n +default SCSI_PLUTO from n +default SCSI_FCAL_GENERIC from n +default SCSI_FCAL_SUN from n + diff -uNr linux.2.4.14.pristine/drivers/hotplug/rules.cml linux/drivers/hotplug/rules.cml --- linux.2.4.14.pristine/drivers/hotplug/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/hotplug/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,9 @@ +# Hotplug devices + +unless EXPERIMENTAL suppress CONFIG_HOTPLUG_PCI +unless X86 suppress hotplug_pci + +menu hotplug_pci # Support for PCI Hotplug + HOTPLUG_PCI_COMPAQ {HOTPLUG_PCI_COMPAQ_NVRAM} + +#end diff -uNr linux.2.4.14.pristine/drivers/i2c/rules.cml linux/drivers/i2c/rules.cml --- linux.2.4.14.pristine/drivers/i2c/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/i2c/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,19 @@ +# I2C driver configuration + +unless PARPORT!=n suppress dependent I2C_PHILIPSPAR +unless SPARC64 suppress BBC_I2C +unless (M68K or ALL_PPC) suppress ADBMOUSE +unless MIPS_ITE8172 suppress dependent ITE_I2C_ALGO +unless CONFIG_8xx suppress dependent I2C_ALGO8XX +unless CONFIG_405 suppress dependent I2C_PPC405_ALGO + +menu i2c # I2C? support + BBC_I2C? + I2C_ALGOBIT? {I2C_PHILIPSPAR? I2C_ELV? I2C_VELLEMAN?} + I2C_ALGOPCF? {I2C_ELEKTOR?} I2C_CHARDEV? + ITE_I2C_ALGO? {ITE_I2C_ADAP?} + I2C_ALGO8XX? {I2C_RPXLITE?} + I2C_PPC405_ALGO? {I2C_PPC405_ADAP?} + I2C_PROC? + +# End diff -uNr linux.2.4.14.pristine/drivers/ieee1394/rules.cml linux/drivers/ieee1394/rules.cml --- linux.2.4.14.pristine/drivers/ieee1394/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/ieee1394/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,12 @@ +# from drivers/ieee1394/Config.in + +unless EXPERIMENTAL and PCI suppress ieee1394 + +menu ieee1394 # IEEE 1394 (FireWire) support + IEEE1394_PCILYNX? { IEEE1394_PCILYNX_LOCALRAM IEEE1394_PCILYNX_PORTS } + #IEEE1394_AIC5800? + IEEE1394_OHCI1394? { IEEE1394_VIDEO1394? } + IEEE1394_SBP2? + IEEE1394_RAWIO? + IEEE1394_VERBOSEDEBUG + diff -uNr linux.2.4.14.pristine/drivers/input/rules.cml linux/drivers/input/rules.cml --- linux.2.4.14.pristine/drivers/input/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/input/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,15 @@ +# Input core configuration + +menu input + INPUT_KEYBDEV? + INPUT_MOUSEDEV? {INPUT_MOUSEDEV_SCREEN_X% INPUT_MOUSEDEV_SCREEN_Y%} + INPUT_JOYDEV? INPUT_EVDEV? + +unless NET suppress I2O_LAN +unless SCSI!=n suppress I2O_SCSI +unless PCI suppress I2O_PCI + +menu i2o # I2O? support + I2O_PCI? I2O_BLOCK? I2O_LAN? I2O_SCSI? I2O_PROC? + +# End diff -uNr linux.2.4.14.pristine/drivers/isdn/rules.cml linux/drivers/isdn/rules.cml --- linux.2.4.14.pristine/drivers/isdn/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/isdn/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,77 @@ +# ISDN support + +unless ISDN!=n suppress isdn +unless INET suppress ISDN_PPP +unless X25!=n suppress dependent ISDN_X25 +unless EXPERIMENTAL suppress dependent + HISAX_HFC_SX ISDN_DRV_PCBIT ISDN_DRV_ACT2000 + ISDN_CAPI_MIDDLEWARE ISDN_DRV_AVMB1_B1PCIV4 ISDN_DRV_AVMB1_C4 +unless SPARC suppress HISAX_AMD7930 +unless MODULES!=n suppress HYSDN +unless ISDN_CAPI==n suppress HYSDN_CAPI +unless ISA suppress ISDN_DRV_EICON_ISA +unless PCI!=n suppress ISDN_DRV_EICON_PCI +unless EXPERIMENTAL and PCI==n suppress ISDN_DRV_EICON_DIVAS +unless PCMCIA!=n suppress HISAX_SEDLBAUER_CS +unless PCI suppress ISDN_DRV_TPAM +unless EXPERIMENTAL suppress HISAX_ST5481 + +require HYSDN != n implies PROC_FS == y + +menu isdn + ISDN_PPP {ISDN_PPP_VJ ISDN_MPP ISDN_PPP_BSDCOMP?} + ISDN_AUDIO {ISDN_TTY_FAX} + ISDN_X25 + isdn_features_legend ISDN_DRV_LOOP? ISDN_DIVERSION? + isdn_passive isdn_active + +menu isdn_passive + ISDN_DRV_HISAX? { + isdn_dchannel_legend + HISAX_EURO { + DE_AOC HISAX_NO_SENDCOMPLETE HISAX_NO_LLC + HISAX_NO_KEYPAD + } + HISAX_1TR6 HISAX_NI1 + isdn_hisax_legend + HISAX_16_0 HISAX_16_3 HISAX_TELESPCI HISAX_S0BOX HISAX_AVM_A1 + HISAX_FRITZPCI HISAX_AVM_A1_PCMCIA HISAX_ELSA + HISAX_IX1MICROR2 HISAX_DIEHLDIVA HISAX_ASUSCOM HISAX_TELEINT + HISAX_HFCS HISAX_SEDLBAUER HISAX_ELSA_CS? + HISAX_SPORTSTER HISAX_MIC + HISAX_NETJET HISAX_NETJET_U HISAX_NICCY HISAX_ISURF + HISAX_HSTSAPHIR HISAX_BKM_A4T HISAX_SCT_QUADRO HISAX_GAZEL + HISAX_HFC_PCI HISAX_W6692 HISAX_HFC_SX # HISAX_TESTEMU + HISAX_AMD7930 HISAX_ST5481? + HISAX_DEBUG + } + HISAX_SEDLBAUER_CS? + +unless ISDN_DRV_EICON_OLD==y suppress ISDN_DRV_EICON_DIVAS + +unless ISDN_CAPI_CAPI20!=n suppress dependent ISDN_CAPI_CAPIFS + +menu isdn_active + ISDN_DRV_ICN? ISDN_DRV_PCBIT? ISDN_DRV_SC? ISDN_DRV_ACT2000? + ISDN_DRV_EICON { + ISDN_DRV_EICON_OLD? {ISDN_DRV_EICON_PCI} + ISDN_DRV_EICON_DIVAS? + ISDN_DRV_EICON_ISA + } + ISDN_DRV_TPAM? + ISDN_CAPI? { + ISDN_DRV_AVMB1_VERBOSE_REASON ISDN_CAPI_CAPI20? + ISDN_CAPI_MIDDLEWARE {ISDN_CAPI_CAPIFS} + ISDN_CAPI_CAPIDRV? + ISDN_DRV_AVMB1_B1ISA? + ISDN_DRV_AVMB1_B1PCI? {ISDN_DRV_AVMB1_B1PCIV4} + ISDN_DRV_AVMB1_T1ISA? ISDN_DRV_AVMB1_B1PCMCIA? + ISDN_DRV_AVMB1_AVM_CS? ISDN_DRV_AVMB1_T1PCI? ISDN_DRV_AVMB1_C4? + } + HYSDN? {HYSDN_CAPI} + +derive ISDN_CAPI_CAPIFS_BOOL from ISDN_CAPI_CAPI20!=n and ISDN_CAPI_MIDDLEWARE + +require (ISDN_DRV_EICON_OLD==n) or (ISDN_DRV_EICON_DIVAS==n) + +# End Binary files linux.2.4.14.pristine/drivers/isdn/rules.cml-old and linux/drivers/isdn/rules.cml-old differ diff -uNr linux.2.4.14.pristine/drivers/macintosh/rules.cml linux/drivers/macintosh/rules.cml --- linux.2.4.14.pristine/drivers/macintosh/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/macintosh/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,20 @@ +# Macintosh driver configuration + +unless MACINTOSH_DRIVERS suppress macintosh_drivers +unless ALL_PPC suppress ADB_MACIO ADB_PMU +unless MAC suppress ADB_MACII ADB_MACIISI ADB_IOP ADB_PMU68K + +menu macintosh_drivers + ADB {ADB_MACIO ADB_MACII ADB_MACIISI ADB_IOP ADB_PMU68K + INPUT_ADBHID {MAC_ADBKEYCODES MAC_EMUMOUSEBTN} + ADB_KEYBOARD + } + # Not just ADB support, but other things the chipset does. + ADB_CUDA ADB_PMU {PMAC_PBOOK PMAC_BACKLIGHT} + +require INPUT_ADBHID <= INPUT + +# You can only have one of these. +require INPUT_ADBHID==n or ADB_KEYBOARD==n + +# End diff -uNr linux.2.4.14.pristine/drivers/media/radio/rules.cml linux/drivers/media/radio/rules.cml --- linux.2.4.14.pristine/drivers/media/radio/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/media/radio/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,36 @@ +# Radio card drivers + +unless EXPERIMENTAL suppress RADIO_MIROPCM20_RDS +unless SOUND_ACI_MIXER!=n suppress dependent RADIO_MIROPCM20 + +default RADIO_AZTECH_PORT from 0x350 range 0x350 0x358 +default RADIO_GEMTEK_PORT from 0x34c range 0x20c 0x30c 0x24c 0x34c +default RADIO_RTRACK2_PORT from 0x30c range 0x20f 0x30f +default RADIO_RTRACK_PORT from 0x20f range 0x20c 0x30c +default RADIO_SF16FMI_PORT from 0x284 range 0x284 0x384 +default RADIO_TERRATEC_PORT from 0x590 +default RADIO_TRUST_PORT from 0x350 +default RADIO_TYPHOON_MUTEFREQ from 0x87500 +default RADIO_TYPHOON_PORT from 0x316 range 0x316 0x336 +default RADIO_ZOLTRIX_PORT from 0x20c range 0x20c 0x30c + +menu radio # Radio adapters + RADIO_CADET? + RADIO_RTRACK? {RADIO_RTRACK_PORT@} + RADIO_RTRACK2? {RADIO_RTRACK2_PORT@} + RADIO_AZTECH? {RADIO_AZTECH_PORT@} + RADIO_GEMTEK? {RADIO_GEMTEK_PORT@} RADIO_GEMTEK_PCI? + RADIO_MAXIRADIO? + RADIO_MAESTRO? + RADIO_MIROPCM20? {RADIO_MIROPCM20_RDS?} + RADIO_SF16FMI? {RADIO_SF16FMI_PORT@} + RADIO_TERRATEC? {RADIO_TERRATEC_PORT@} + RADIO_TRUST? {RADIO_TRUST_PORT@} + RADIO_TYPHOON? { + RADIO_TYPHOON_PROC_FS RADIO_TYPHOON_PORT@ RADIO_TYPHOON_MUTEFREQ% + } + RADIO_ZOLTRIX? {RADIO_ZOLTRIX_PORT@} + +require RADIO_TYPHOON_PROC_FS implies PROC_FS == y + +# End diff -uNr linux.2.4.14.pristine/drivers/media/video/rules.cml linux/drivers/media/video/rules.cml --- linux.2.4.14.pristine/drivers/media/video/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/media/video/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,178 @@ +# Video driver configuration + +unless VIDEO_DEV!=n suppress dependent video +unless PARPORT!=n suppress dependent I2C_PARPORT VIDEO_BWQCAM VIDEO_CQCAM +unless I2C!=n suppress dependent I2C_PARPORT VIDEO_ZORAN +unless EXPERIMENTAL suppress dependent VIDEO_CQCAM VIDEO_CPIA VIDEO_VINO +unless USB!=n suppress VIDEO_CPIA_USB +#unless SGI suppress VIDEO_VINO # CML1 doesn't actually define SGI +unless MIPS suppress VIDEO_VINO +unless PCI suppress dependent VIDEO_STRADIS VIDEO_ZORAN VIDEO_DEV +unless PPC suppress VIDEO_PLANB +unless EXPERIMENTAL and PARPORT!=n and PARPORT_1284 suppress VIDEO_W9966 + +require (VIDEO_SAA5249 <= I2C) and (TUNER_3036 <= I2C) +require VIDEO_BT848!=n implies SOUND!=n and PCI==y and I2C_ALGOBIT != n + +menu video # Video For Linux + VIDEO_PROC_FS + I2C_PARPORT? + VIDEO_BT848? VIDEO_PMS? VIDEO_PLANB? + VIDEO_BWQCAM? VIDEO_CQCAM? VIDEO_W9966? + VIDEO_CPIA? {VIDEO_CPIA_PP? VIDEO_CPIA_USB?} + VIDEO_SAA5249? TUNER_3036? VIDEO_VINO? VIDEO_STRADIS? + VIDEO_ZORAN? {VIDEO_ZORAN_BUZ? VIDEO_ZORAN_DC10? VIDEO_ZORAN_LML33?} + + VIDEO_ZR36120? + VIDEO_MEYE? + +# from drivers/video/Config.in + +unless EXPERIMENTAL suppress dependent + FB_RIVA FB_CLGEN FB_PM2 FB_VIRGE FB_RETINAZ3 FB_FM2 FB_HGA + FB_MATROX FB_ATY FB_RADEON FB_ATY128 FB_3DFX FB_SIS FB_VIRTUAL + FB_VOODOO1 +unless PPC or X86 suppress FB_VGA16 +unless ATARI or PCI suppress FB_ATY FB_RADEON FB_ATY128 +unless PCI suppress + FB_RIVA FB_PM2_FIFO_DISCONNECT FB_PM2_PCI FB_MATROX FB_3DFX FB_IMSTT + FB_IGA +unless PCI or AMIGA suppress FB_CLGEN FB_PM2 +unless AMIGA suppress FB_PM2_CVPPC FB_AMIGA FONT_PEARL_8x8 +unless ARCH_ACORN suppress FB_ACORN +#unless ARCH_NETWINDER suppress FB_CYBER2000 +unless ZORRO suppress FB_CYBER FB_VIRGE FB_RETINAZ3 FB_FM2 +unless ATARI suppress FB_ATARI +unless PPC suppress FB_OF FB_CONTROL FB_PLATINUM +unless PPC or MAC suppress FB_VALKYRIE +unless ARM suppress FB_SA1100 +unless ALPHA suppress FB_TGA +unless X86 suppress FB_VESA FB_HGA +#unless VISWS suppress FB_SGIVW +unless SPARC suppress + FB_SBUS FONT_SUN8x16 FONT_SUN12x22 +unless SPARC64 suppress FB_CREATOR +unless SPARC32 suppress FB_TCX FB_CGFOURTEEN FB_P9100 +unless MAC suppress FONT_6x11 +unless ARM or ARCH_ACORN suppress FONT_ACORN_8x8 +unless PPC suppress FB_COMPAT_XPMAC +unless SUPERH and HD64461 suppress FB_HIT +unless SUPERH suppress FB_E1355 +unless SH_DREAMCAST suppress FB_DC FB_PVR2 +unless PARISC suppress FB_STI +unless DECSTATION and TC suppress FB_PMAG_BA FB_PMAGB_B FB_MAXINE +unless NINO suppress FB_TX3912 + +default E1355_REG_BASE from 0xa8000000 +default E1355_FB_BASE from 0xa8200000 + +private FBCON_FONTS + +menu framebuffer + FB_VGA16? FB_ATY? {FB_ATY_GX FB_ATY_CT} + FB_RADEON? FB_ATY128? FB_3DFX? + FB_SIS? {FB_SIS_300 FB_SIS_315} + FB_VOODOO1? FB_RIVA? FB_CLGEN? FB_STI + FB_PM2? {FB_PM2_FIFO_DISCONNECT FB_PM2_PCI FB_PM2_CVPPC} + FB_ACORN FB_CYBER2000? FB_SA1100 + FB_AMIGA? {FB_AMIGA_OCS FB_AMIGA_ECS FB_AMIGA_AGA} + FB_CYBER? FB_VIRGE FB_RETINAZ3? FB_FM2 FB_ATARI + FB_OF FB_CONTROL FB_PLATINUM FB_IMSTT FB_CT65550 FB_S3TRIO + FB_VALKYRIE + FB_COMPAT_XPMAC + FB_TGA? FB_VESA FB_HGA? #FB_SGIVW? + FB_MATROX? { + FB_MATROX_MILLENIUM FB_MATROX_MYSTIQUE + FB_MATROX_G100 {FB_MATROX_G450?} + FB_MATROX_I2C? {FB_MATROX_MAVEN?} + FB_MATROX_MULTIHEAD + } + FB_SBUS {FB_CREATOR FB_CGTHREE FB_TCX FB_CGFOURTEEN FB_P9100 FB_LEO} + FB_BWTWO FB_CGSIX + FB_PVR2? {FB_PVR2_DEBUG} + FB_E1355 {E1355_REG_BASE@ E1355_FB_BASE@} + FB_DC? FB_HIT? + FB_PMAG_BA FB_PMAGB_B FB_MAXINE + FB_TX3912 + FB_IGA FB_VIRTUAL? + FBCON_ADVANCED { + FBCON_MFB? + FBCON_CFB2? FBCON_CFB4? FBCON_CFB8? + FBCON_CFB16? FBCON_CFB24? FBCON_CFB32? + FBCON_AFB? FBCON_ILBM? + FBCON_IPLAN2P2? FBCON_IPLAN2P4? FBCON_IPLAN2P8? + FBCON_MAC? FBCON_VGA_PLANES? FBCON_VGA? FBCON_HGA? + } + FBCON_FONTWIDTH8_ONLY + FONT_SUN8x16 FONT_SUN12x22 + FBCON_FONTS { + FONT_8x8 FONT_8x16 FONT_PEARL_8x8 FONT_ACORN_8x8 FONT_6x11 + } + +unless FB_PM2==y suppress FB_PM2_FIFO_DISCONNECT FB_PM2_PCI FB_PM2_CVPPC +unless FB_OF or MAC suppress FB_VALKYRIE +require FB_MATROX_I2C <= I2C_ALGOBIT +unless FB_MATROX_G100 suppress FB_MATROX_MAVEN FB_MATROX_MULTIHEAD +require X86 implies (VIDEO_SELECT >= FB) +unless FB_SUN3 or FB_SBUS suppress FB_BWTWO FB_CGSIX +unless FB_PCI suppress FB_IGA +unless FBCON_FONTWIDTH8_ONLY==n suppress FONT_SUN12x22 FONT_6x11 + +require FB_MATROX_I2C!=n implies I2C==y + +derive DUMMY_CONSOLE from FB or (SGI_IP22 and (SGI_NEWPORT_CONSOLE==n)) +#derive BUS_I2C from FB and VISWS +derive FB_MAC from FB and MAC +derive FB_HP300 from FB and HP300 +derive FB_APOLLO from FB and APOLLO +derive FB_Q40 from FB and Q40 +# This was a question in CML1, 'Sun3 framebuffer support' +derive FB_SUN3 from FB and (SUN3 or SUN3X) + +# These defaults will set our feature symbols if the user did not select +# them explicitly in FBCON_ADVANCED +default FBCON_MFB from FBCON_ADVANCED | + FB_ACORN | FB_AMIGA | FB_ATARI | FB_CYBER | FB_MAC | + FB_RETINAZ3 | FB_VIRGE | FB_VIRTUAL | FB_BWTWO | FB_CLGEN | + FB_TX3912 +default FBCON_CFB2 from FB_ACORN | FB_MAC | FB_SA1100 | FB_VIRTUAL | FB_TX3912 +default FBCON_CFB4 from FB_ACORN | FB_MAC | FB_VIRTUAL | FB_TX3912 +default FBCON_CFB8 from FB_ACORN | FB_ATARI | FB_ATY | FB_MAC + | FB_OF | FB_TGA | FB_VESA | FB_VIRTUAL | FB_TCX | FB_CGTHREE + | FB_CONTROL | FB_CLGEN | FB_CGFOURTEEN | FB_G364 | FB_VIRGE + | FB_CYBER | FB_VALKYRIE | FB_PLATINUM | FB_IGA | FB_MATROX + | FB_CT65550 | FB_PM2 | FB_P9100 | FB_ATY128 | FB_RIVA # | FB_SGIVW + | FB_CYBER2000 | FB_SA1100 | FB_3DFX | FB_SIS | FB_RADEON + | FB_PMAG_BA | FB_PMAGB_B | FB_MAXINE | FB_TX3912 +default FBCON_CFB16 from FB_ATARI | FB_ATY | FB_MAC | FB_VESA | + FB_VIRTUAL | FB_Q40 | FB_RADEON | FB_CONTROL | FB_CLGEN | + FB_VIRGE | FB_CYBER | FB_VALKYRIE | FB_PLATINUM | + FB_CT65550 | FB_MATROX | FB_PM2 | #FB_SGIVW | + FB_RIVA | FB_ATY128 | FB_CYBER2000 | FB_3DFX | FB_SIS | + FB_PVR2 | FB_VOODOO1 +default FBCON_CFB24 from FB_ATY | FB_VIRTUAL | FB_CLGEN + | FB_VESA | FB_MATROX | FB_PM2 | FB_ATY128 | FB_RADEON + | FB_CYBER2000 | FB_PVR2 | FB_VOODOO1 +default FBCON_CFB32 from FB_ATARI | FB_ATY | FB_VESA | FB_VIRTUAL | + FB_CONTROL | FB_CLGEN | FB_TGA | FB_PLATINUM | FB_MATROX | + FB_PM2 | FB_RIVA | FB_ATY128 | FB_FM2 | FB_3DFX | FB_SIS | + FB_PVR2 # | FB_SGIVW | FB_RADEON | FB_VOODOO1 +default FBCON_AFB from FB_AMIGA +default FBCON_ILBM from FB_AMIGA +default FBCON_IPLAN2P2 from FB_ATARI +default FBCON_IPLAN2P4 from FB_ATARI +default FBCON_IPLAN2P8 from FB_ATARI +#default FBCON_IPLAN2P16 from FB_ATARI +default FBCON_MAC from FB_MAC | FB_VIRTUAL +default FBCON_VGA_PLANES from FB_VGA16 +default FBCON_HGA from FB_HGA +derive FBCON_STI from FB_STI + +# These defaults will set font symbols +default FONT_8x8 from y +default FONT_8x16 from y +default FONT_6x11 from MAC and FBCON_FONTWIDTH8_ONLY==n +default FONT_PEARL_8x8 from AMIGA +default FONT_ACORN_8x8 from (ARM or ARCH_ACORN) + +# End diff -uNr linux.2.4.14.pristine/drivers/message/fusion/rules.cml linux/drivers/message/fusion/rules.cml --- linux.2.4.14.pristine/drivers/message/fusion/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/message/fusion/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,22 @@ +# Fusion MPT drivers + +derive FUSION_BOOT from FUSION & BLK_DEV_SD + +unless NET suppress FUSION_LAN + +menu fusion_mpt # Fusion MPT drivers + FUSION_ISENSE? FUSION_CTL? FUSION_LAN? + +#require FUSION_ISENSE < y and FUSION_CTL < y +#require FUSION_LAN > n implies NET_FC == y + +# In CML1, there isc a comment referring to the three symbols +# in the fusion_mpt menu that says: + + # These be define_tristate, but we leave them define_bool + # for backward compatibility with pre-linux-2.2.15 kernels. + # (Bugzilla:fibrebugs, #384) + +# I have not tried to implement this because I don't grok the error. + +# End diff -uNr linux.2.4.14.pristine/drivers/mtd/rules.cml linux/drivers/mtd/rules.cml --- linux.2.4.14.pristine/drivers/mtd/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/mtd/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,118 @@ +# MTD driver configuration + +unless PPC suppress MTD_RPXLITE MTD_TQM8XXL MTD_DBOX2 MTD_CFI_FLAGADM +unless PCI suppress MTD_PMC551 +unless SUPERH suppress MTD_SOLUTIONENGINE +#unless EXPERIMENTAL suppress MTD_CFI_VIRTUAL_ER +unless SPARC64 suppress MTD_SUN_UFLASH + +unless MTD_DOCPROBE!=n suppress + MTD_DOCPROBE_ADDRESS MTD_DOCPROBE_HIGH MTD_DOCPROBE_55AA + +default MTD_DEBUG_VERBOSE from 0 +default MTDRAM_TOTAL_SIZE from 4096 +default MTDRAM_ERASE_SIZE from 128 +default MTD_PHYSMAP_START from 0x80000000 +default MTD_PHYSMAP_LEN from 0x40000000 +default MTD_PHYSMAP_BUSWIDTH from 2 +default MTD_CSTM_MIPS_IXX_START from 0x80000000 +default MTD_CSTM_MIPS_IXX_LEN from 0x40000000 +default MTD_CSTM_MIPS_IXX_BUSWIDTH from 2 +default MTDRAM_ABS_POS from 0 +default MTD_DOCPROBE_ADDRESS from 0x00000000 + +private MTD_CFI_ADV_OPTIONS MTD_DOCPROBE_ADVANCED + +choices mtd_data_swap # Flash cmd/query data swapping + MTD_CFI_NOSWAP MTD_CFI_BE_BYTE_SWAP MTD_CFI_LE_BYTE_SWAP + default MTD_CFI_NOSWAP + +menu mtd_mapping # Mapping drivers for chip access + MTD_PHYSMAP? { + MTD_PHYSMAP_START@ + MTD_PHYSMAP_LEN@ + MTD_PHYSMAP_BUSWIDTH% + } + +default MTD_CFI_I1 from MTD_CFI_B1 +unless MTD_CFI_B2 or MTD_CFI_B4 suppress MTD_CFI_I1 +unless MTD_CFI!=n suppress mtd_mapping MTD_NORA MTD_RPXLITE MTD_SC520CDP + MTD_NETSC520 MTD_DC21285 MTD_IQ80310 MTD_DBOX2 MTD_CFI_FLAGADM +unless MTD_PARTITIONS!=n suppress MTD_PNC2000 MTD_NETSC520 MTD_SBC_GXX + MTD_ELAN_104NC MTD_DC21285 +unless MTD_CFI_INTELEXT!=n suppress MTD_SBC_GXX MTD_ELAN_104NC MTD_DBOX2 +unless REBOOT_PARTS suppress dependent MTD_SA1100 + +unless ARCH_SA1100 suppress MTD_SA1100 +unless ARCH_FOOTBRIDGE suppress MTD_DC21285 +#unless XSCALE_IQ80310 suppress MTD_IQ80310 +unless MTD_JEDEC!=n suppress dependent MTD_DBOX2 MTD_MIXMEM MTD_OCTAGON MTD_VMAX +unless X86 suppress MTD_PNC2000 MTD_SC520CDP MTD_NETSC520 MTD_SBC_GXX + MTD_ELAN_104NC MTD_MIXMEM MTD_OCTAGON CONFIG_MTD MTD_L440GX +unless ARM and ARCH_P720T suppress MTD_NAND_SPIA +unless MOMENCO_OCELOT suppress MTD_OCELOT +unless ARM suppress MTD_AFS_PARTS MTD_ARM_INTEGRATOR MTD_CDB89712 +unless SA1100_LART suppress MTD_LART + +# This also depended on a nonexistent MTD_CFI_INTELSTD in CML1 +unless MTD_CFI_AMDSTD!=n suppress MTD_DBOX2 + +derive MTD_GEN_PROBE from MTD_CFI | MTD_JEDECPROBE +unless MTD_GEN_PROBE!=n suppress MTD_CFI_ADV_OPTIONS + +menu mtd + MTD_DEBUG {MTD_DEBUG_VERBOSE%} + MTD_PARTITIONS? {MTD_REDBOOT_PARTS? MTD_BOOTLDR_PARTS? MTD_AFS_PARTS?} + + mtd_translation_legend + MTD_CHAR? + MTD_BLOCK? {MTD_BLOCK_RO?} + FTL? {NFTL? {NFTL_RW}} + + mtd_driver_legend + MTD_CFI? MTD_JEDECPROBE? + MTD_CFI_ADV_OPTIONS + { + mtd_data_swap + MTD_CFI_GEOMETRY {MTD_CFI_B1 MTD_CFI_B2 MTD_CFI_B4} + MTD_CFI_I1 MTD_CFI_I2 MTD_CFI_I4 + } + MTD_CFI_INTELEXT? MTD_CFI_AMDSTD? MTD_SHARP? + MTD_RAM? MTD_ROM? MTD_JEDEC? + MTD_ABSENT? MTD_OBSOLETE_CHIPS {MTD_AMDSTD?} + + mtd_mapping + MTD_SUN_UFLASH? MTD_NORA? MTD_PNC2000? MTD_RPXLITE? + MTD_SC520CDP? MTD_NETSC520? + MTD_SBC_GXX? MTD_ELAN_104NC? + MTD_SA1100? {MTD_SA1100_BOOTLDR_PARTITIONS} + MTD_DC21285? MTD_IQ80310? MTD_DBOX2? + MTD_CSTM_MIPS_IXX? { + MTD_CSTM_MIPS_IXX_START@ + MTD_CSTM_MIPS_IXX_LEN@ + MTD_CSTM_MIPS_IXX_BUSWIDTH% + } + MTD_CFI_FLAGADM? MTD_MIXMEM? MTD_OCTAGON? MTD_VMAX? + MTD_SOLUTIONENGINE? # SUPERH + MTD_ARM_INTEGRATOR? MTD_CDB89712? # ARM + + mtd_driver_selfcontained + MTD_L440GX? MTD_OCELOT? + MTD_PMC551? {MTD_PMC551_BUGFIX MTD_PMC551_DEBUG} + MTD_SLRAM? + MTD_LART? MTD_TQM8XXL? + MTD_MTDRAM? {MTDRAM_TOTAL_SIZE% MTDRAM_ERASE_SIZE% MTDRAM_ABS_POS@} + MTD_BLKMTD? + + mtd_docdrivers + MTD_DOC1000? MTD_DOC2000? MTD_DOC2001? + MTD_DOCPROBE_ADVANCED { + MTD_DOCPROBE_ADDRESS@ MTD_DOCPROBE_HIGH MTD_DOCPROBE_55AA + } + + mtd_nand_legend + MTD_NAND? {MTD_NAND_ECC MTD_NAND_VERIFY_WRITE MTD_NAND_SPIA?} + +derive MTD_DOCPROBE from MTD_DOC2000 | MTD_DOC2001 + +# End diff -uNr linux.2.4.14.pristine/drivers/net/appletalk/rules.cml linux/drivers/net/appletalk/rules.cml --- linux.2.4.14.pristine/drivers/net/appletalk/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/appletalk/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,15 @@ +# Appletalk configuration + +unless ISA suppress LTPC # ltpc.c +unless ISA or MCA suppress COPS # cops.c + +unless ATALK!=n suppress dependent COPS IPDDP + +menu appletalk_drivers # Appletalk devices + APPLETALK { + LTPC? + COPS? {COPS_DAYNA COPS_TANGENT} + IPDDP? {IPDDP_ENCAP IPDDP_DECAP} + } + +# End diff -uNr linux.2.4.14.pristine/drivers/net/arcnet/rules.cml linux/drivers/net/arcnet/rules.cml --- linux.2.4.14.pristine/drivers/net/arcnet/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/arcnet/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,17 @@ +# ARCnet configuration + +unless ISA suppress ARCNET_COM90xx # com90xx.c +unless ISA suppress ARCNET_COM90xxIO # com90io.c +unless ISA suppress ARCNET_RIM_I # arc-rimi.c + +menu arcnet_drivers # ARCnet support + ARCNET_1201? ARCNET_1051? ARCNET_RAW? ARCNET_COM90xx? ARCNET_COM90xxIO? + ARCNET_RIM_I? + ARCNET_COM20020? # {ARCNET_COM20020_ISA? ARCNET_COM20020_PCI?} + +# These used to be questions, but there isn't a whole lot of point when +# the answers can be computed. +derive ARCNET_COM20020_ISA from ARCNET_COM20020 & ISA +derive ARCNET_COM20020_PCI from ARCNET_COM20020 & PCI + +# End diff -uNr linux.2.4.14.pristine/drivers/net/fc/rules.cml linux/drivers/net/fc/rules.cml --- linux.2.4.14.pristine/drivers/net/fc/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/fc/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,10 @@ +# Fiber Channel configuration + +unless SCSI!=n suppress dependent IPHASE5526 +unless EXPERIMENTAL suppress dependent RCPCI SHAPER +unless PCI suppress dependent RCPCI #rcpci45.c + +menu fiber_channel # Fiber Channel drivers + IPHASE5526? RCPCI? SHAPER? + +# End \ No newline at end of file diff -uNr linux.2.4.14.pristine/drivers/net/hamradio/rules.cml linux/drivers/net/hamradio/rules.cml --- linux.2.4.14.pristine/drivers/net/hamradio/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/hamradio/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,8 @@ +# Ham Radio configuration + +unless NET suppress HAMRADIO + +menu hamradio # Amateur Radio protocols and drivers + AX25? {AX25_DAMA_SLAVE NETROM? ROSE? ax25} + +# End diff -uNr linux.2.4.14.pristine/drivers/net/irda/rules.cml linux/drivers/net/irda/rules.cml --- linux.2.4.14.pristine/drivers/net/irda/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/irda/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,25 @@ +# IRDA driver configuration + +unless EXPERIMENTAL suppress dependent SMC_IRCC_FIR USB_IRDA ALI_FIR VLSI_FIR +unless ISA or (ISAPNP!=n) suppress NSC_FIR #nsc-ircc.c +unless ISA or (ISAPNP!=n) suppress WINBOND_FIR #w83977af_ir.c +unless PCI suppress TOSHIBA_FIR #toshoboe.c +unless ISA suppress SMC_IRCC_FIR #smc-ircc.c +unless USB!=n suppress dependent USB_IRDA +unless ARCH_EP7211 suppress EP7211_IR +unless ARCH_SA1100 suppress SA1100_FIR + +# All these had a dep_tristate on CONFIG_IRDA +menu irda_drivers # Infrared-port device drivers + # SIR device drivers + IRTTY_SIR? IRPORT_SIR? + # FIR device drivers + USB_IRDA? NSC_FIR? WINBOND_FIR? TOSHIBA_FIR? SMC_IRCC_FIR? ALI_FIR? + VLSI_FIR? SA1100_FIR? + +menu dongles # IRDA dongles + ESI_DONGLE? ACTISYS_DONGLE? TEKRAM_DONGLE? GIRBIL_DONGLE? + LITELINK_DONGLE? OLD_BELKIN_DONGLE? + EP7211_IR? + +# End diff -uNr linux.2.4.14.pristine/drivers/net/pcmcia/rules.cml linux/drivers/net/pcmcia/rules.cml --- linux.2.4.14.pristine/drivers/net/pcmcia/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/pcmcia/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,32 @@ +# PCMCIA configuration + +unless ARCNET!=n suppress dependent ARCNET_COM20020_CS +unless ISA or PCI or PNP!=n or PCMCIA!=n suppress AIRONET4500_NONCS #Configure.help +unless PNP!=n suppress AIRONET4500_PNP #Configure.help +unless PCMCIA!=n suppress AIRONET4500_I365 #Configure.help +unless TR suppress PCMCIA_XIRTULIP +unless IBMTR!=y suppress PCMCIA_IBMTR +unless CARDBUS suppress PCMCIA_XIRCOM PCMCIA_XIRTULIP +unless NET_RADIO suppress NET_PCMCIA_RADIO + +menu pcmcia_drivers # PCMCIA network device support + PCMCIA_3C589? PCMCIA_3C574? PCMCIA_FMVJ18X? PCMCIA_PCNET? PCMCIA_NMCLAN? + PCMCIA_SMC91C92? PCMCIA_XIRC2PS? PCMCIA_AXNET? + ARCNET_COM20020_CS? PCMCIA_IBMTR? + PCMCIA_XIRTULIP? + PCMCIA_XIRCOM? + NET_PCMCIA_RADIO { + PCMCIA_RAYCS? PCMCIA_HERMES? + PCMCIA_NETWAVE? + PCMCIA_WAVELAN? AIRONET4500_CS? + } + +# This was removed in 2.4.6-pre5. Kept for the ac tree. +derive PCMCIA_NETCARD from PCMCIA_3C589==y or PCMCIA_3C574==y or + PCMCIA_FMVJ18X==y or PCMCIA_PCNET==y or + PCMCIA_NMCLAN==y or PCMCIA_SMC91C92==y or + PCMCIA_XIRC2PS==y or PCMCIA_RAYCS==y or + PCMCIA_NETWAVE==y or PCMCIA_WAVELAN==y or + PCMCIA_XIRTULIP==y + +# End diff -uNr linux.2.4.14.pristine/drivers/net/rules.cml linux/drivers/net/rules.cml --- linux.2.4.14.pristine/drivers/net/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,185 @@ +# Network driver configuration + +private NET_ETHERNET NET_POCKET + +unless NETLINK suppress ETHERTAP +unless HOTPLUG==y and PCMCIA!=n suppress dependent pcmcia_drivers +unless X86 or ALPHA or SPARC or PPC suppress + EQUALIZER ETHERTAP NET_SB1000 NET_RADIO WAN ARCNET +unless ISAPNP!=n suppress NET_SB1000 +unless ARCH_S390==n suppress + ethernet_lospeed ethernet_hispeed fddi_drivers tokenring_drivers + NET_FC ATALK NET_PCMCIA +unless X86 or ALPHA or (MIPS and DECSTATION and BAGET_MIPS) or PPC suppress + ISDN +unless ARCH_S390 suppress CTC IUCV +unless X86 or ALPHA or SPARC or PPC or ARCH_S390 suppress FDDI NET_ETHERNET TR +unless PCI or ISA or MCA or ARCH_S390 suppress TR + +menu net_drivers # Network device configuration + DUMMY? BONDING? TUN? EQUALIZER? ETHERTAP? NET_SB1000? + NET_ETHERNET {ethernet_lospeed ethernet_hispeed} + ISDN? {isdn} + FDDI {fddi_drivers} + NET_RADIO {wireless} + TR {tokenring_drivers} + NET_FC {fiber_channel} + WAN {wan_drivers} + ARCNET? {arcnet_drivers} + ATALK? {appletalk_drivers} + NET_PCMCIA {pcmcia_drivers} + CTC? IUCV? + +require NET_PCMCIA <= PCMCIA and NET_PCMCIA <= NET_ETHERNET + +# Low-speed Ethernet + +private NET_VENDOR_3COM NET_VENDOR_SMC NET_VENDOR_RACAL + +unless EXPERIMENTAL suppress dependent + ELMC_II NI5010 AC3200 DM9102 TULIP_MWI + LNE390 NE3210 CONFIG_8139TOO_8129 ES3210 CONFIG_8139CP + EPIC100 SUNDANCE CONFIG_8139CP +#unless OBSOLETE suppress FMV18X SEEQ8005 ZNET ETHERTAP SK_G16 + +unless MCA suppress ELMC ELMC_II ULTRAMCA SKMC NE2_MCA IBMLANA +unless ISA suppress + CONFIG_3C515 EL1 EL2 ELPLUS EL16 WD80x3 ULTRA NET_SB1000 + CS89x0 ATP +unless EISA suppress LNE390 NE3210 +unless ISA or EISA suppress AC3200 +unless ISA or ISAPNP!=n or EISA or MCA suppress EL3 # 3c509 source +unless EISA or PCI or CARDBUS!=n suppress VORTEX # Vortex help screen +unless ISA or ISAPNP!=n or PCI suppress LANCE # Lance source +unless SPARC or SPARC64 suppress SUNLANCE +unless ISA suppress ULTRA # SMC-ULTRA +unless EISA suppress ULTRA32 # SMC-ULTRA32 +unless PCI suppress dependent + PCNET32 TULIP EEPRO100 NE2K_PCI CONFIG_8139TOO CONFIG_8139TOO_8129 + WINBOND_840 HAPPYMEAL ADAPTEC_STARFIRE +unless ISA suppress NI52 #No references to other busses in ni52.c +unless ISA suppress NI65 #No real references to other busses in ni65.c +unless EISA or PCI suppress DE4X5 DGRS DM9102 TLAN +unless ARM and ARCH_ACORN!=y suppress ARM_AM79C961A +unless ARM and ARCH_ACORN==y suppress ARM_ETHER1 ARM_ETHER3 ARM_ETHERH +unless ALL_PPC suppress MACE BMAC GMAC +#unless GEMINI suppress NCR885E +unless PPC suppress NCR885E +unless CONFIG_4xx suppress OAKNET +unless ZORRO suppress ARIADNE ARIADNE2 A2065 HYDRA +unless PARISC suppress LASI_82596 +unless MIPS_JAZZ suppress MIPS_GT96100ETH MIPS_JAZZ_SONIC +unless MIPS suppress MIPS_AU1000_ENET CONFIG_8139CP +unless MIPS and EXPERIMENTAL suppress SGISEEQ # Guard was `SGI' in CML1 +unless SGI_IP27 or IA64_SGI_SN1 suppress SGI_IOC3_ETH +unless X86 suppress ATP +unless X86 or ALPHA or PPC suppress NET_VENDOR_3COM +unless X86 or ALPHA suppress LANCE NET_VENDOR_SMC NET_VENDOR_RACAL + SKMC NET_POCKET +unless ISA or EISA or MCA suppress DEPCA #depca.c +unless ISA or EISA or MCA suppress HP100 +unless ISA or MCA suppress AT1700 #at1700.c +unless SPARC suppress HAPPYMEAL SUNBMAC SUNQE +unless DECSTATION suppress DECLANCE +unless BAGET_MIPS suppress BAGETLANCE +unless (CONFIG_8xx or CONFIG_8260) suppress SCC_ENET FEC_ENET ENET_BIG_BUFFERS +unless AMIGA and PCMCIA!=n suppress APNE +unless APOLLO suppress APOLLO_ELPLUS +unless MAC suppress MAC8390 MACSONIC SMC9194 MAC89x0 MACMACE +unless ATARI suppress ATARILANCE +unless SUN3X or SPARC suppress SUN3LANCE +unless SUN3 suppress SUN3_82586 +unless HP300 suppress HPLANCE +unless SUPERH suppress STNIC +unless ISA suppress NI5010 #ni5010.c +unless ISA suppress E2100 EWRK3 EEXPRESS EEXPRESS_PRO FMV18X HPLAN HPLAN_PLUS + ETH16I NE2000 SEEQ8005 SK_G16 + +menu ethernet_lospeed # Ethernet (10 or 100Mbit) + ARM_AM79C961A ARM_ETHER1? ARM_ETHER3? ARM_ETHERH? # ARM + MACE? {MACE_AAUI_PORT} # PPC + BMAC? GMAC? NCR885E? OAKNET? # PPC + ARIADNE? ARIADNE2? A2065? HYDRA? # ZORRO + LASI_82596? # PARISC + MIPS_JAZZ_SONIC? # MIPS_JAZZ + MIPS_GT96100ETH MIPS_AU1000_ENET # MIPS + SGISEEQ # SGI + SGI_IOC3_ETH # SGI_IP27 + STNIC? # SuperH + SUNLANCE? SUN3LANCE? HAPPYMEAL? SUNBMAC? SUNQE? SUN3_82586? # Sun + DECLANCE BAGETLANCE? # MIPS + SCC_ENET {scc_ethernet} # CONFIG_8xx + ENET_BIG_BUFFERS + FEC_ENET {USE_MDIO FCC1_ENET {FCC2_ENET {FCC3_ENET}}} # CONFIG_8260 + MAC8390 MACSONIC? MAC89x0? MACMACE # MAC + APNE? # AMIGA_PCMCIA + HPLANCE # Generic M68K + ATARILANCE? {ATARI_BIONET? ATARI_PAMSNET?} # ATARI + NET_VENDOR_3COM {eth_3com_drivers} + LANCE? WINBOND_840? + NET_VENDOR_SMC {eth_smc_drivers} + NET_VENDOR_RACAL {eth_racal_drivers} + AT1700? DEPCA? HP100? SKMC? NE2_MCA? IBMLANA? + E2100? EWRK3? EEXPRESS? EEXPRESS_PRO? FMV18X? + HPLAN_PLUS? HPLAN? LP486E? ETH16I? NE2000? SEEQ8005? SK_G16? CS89x0? + AC3200? DE4X5? DGRS? NE3210? ES3210? CONFIG_8139CP? + PCNET32? ADAPTEC_STARFIRE? APRICOT? DM9102? + TULIP? {TULIP_MMIO TULIP_MWI} + EEPRO100? + LNE390? FEALNX? NATSEMI? NE2K_PCI? CONFIG_8139TOO_8129 + CONFIG_8139TOO? {CONFIG_8139TOO_PIO CONFIG_8139TOO_TUNE_TWISTER} + SIS900? TLAN? VIA_RHINE? EPIC100? SUNDANCE? ZNET LAN_SAA9730 + NET_POCKET {eth_pocket_drivers} + +# This was originally a separate question referring to the same hardware +derive NE2K_ZORRO from ARIADNE2 + +choices scc_ethernet + SCC1_ENET SCC2_ENET SCC3_ENET + default SCC1_ENET + +menu eth_3com_drivers # 3Com Ethernet cards + EL1? EL2? ELPLUS? EL16? EL3? CONFIG_3C515? + ELMC? ELMC_II? VORTEX? APOLLO_ELPLUS? + +menu eth_smc_drivers # SMC Ethernet cards + WD80x3? ULTRAMCA? ULTRA? ULTRA32? SMC9194? + +menu eth_racal_drivers # Racal-Interlan (Micom) NI cards + NI5010? NI52? NI65? + +unless PARPORT!=n suppress dependent eth_pocket_drivers +unless X86 and ISA suppress DE600 DE620 + +menu eth_pocket_drivers # Pocket Ethernet adapters + ATP? DE600? DE620? + +# High-speed Ethernet + +unless PCI suppress YELLOWFIN #yellowfin.c +unless PCI suppress ACENIC #acenic.c +unless PCI suppress DL2K +unless PCI suppress SK98LIN #sk98lin/skge.c +unless PCI suppress SUNGEM + +unless EXPERIMENTAL suppress dependent YELLOWFIN +unless SPARC suppress MYRI_SBUS +unless INET suppress HIPPI + +menu ethernet_hispeed # Ethernet (1000 Mbit) + NS83820? HAMACHI? YELLOWFIN? + ACENIC? {ACENIC_OMIT_TIGON_I} + DL2K? SK98LIN? SUNGEM? MYRI_SBUS? + VETH? + +# FDDI + +unless EISA or PCI suppress DEFXX # From defxx.c +unless PCI suppress SKFP # PCI only, according to skfp/skfddi.c +unless PCI suppress ROADRUNNER # rrunner.c + +menu fddi_drivers # FDDI driver support + DEFXX? SKFP? HIPPI {ROADRUNNER? {ROADRUNNER_LARGE_RINGS}} + + +# End diff -uNr linux.2.4.14.pristine/drivers/net/tokenring/rules.cml linux/drivers/net/tokenring/rules.cml --- linux.2.4.14.pristine/drivers/net/tokenring/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/tokenring/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,14 @@ +# Token Ring configuration + +unless MCA suppress MADGEMC +unless ISA or ISAPNP!=n or MCA or PCMCIA!=n suppress IBMTR #ibmtr.c +unless PCI suppress IBMOL #olympic.txt +unless PCI or MCA suppress IBMLS #Mike Phillips +unless ISA or PCI suppress TMS380TR #tms380tr.c +unless ISA or MCA suppress SMCTR #smctr.c + +menu tokenring_drivers # Token Ring devices + IBMTR? IBMLS? IBMOL? TMS380TR? {TMSPCI? TMSISA? ABYSS? +MADGEMC?} SMCTR? + +# End diff -uNr linux.2.4.14.pristine/drivers/net/wan/rules.cml linux/drivers/net/wan/rules.cml --- linux.2.4.14.pristine/drivers/net/wan/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/wan/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,66 @@ +# Wide-Area Networking configuration + +private WAN_ROUTER_DRIVERS + +unless EXPERIMENTAL suppress dependent CYCLADES_SYNC + +unless ISA suppress HOSTESS_SV11 #http://www.comtrol.co.uk/sv24.htm#sv11 +unless ISA suppress COSA # http://www.pavoucek.cz/cosa.html +unless PCI suppress LANMEDIA # lmc/lmc_main.c +unless ISA suppress COMX_HW_LOCOMX # 98% sure from comx-hw-locomx.c +unless ISA suppress COMX_HW_MIXCOM # 98% sure from comx-hw-mixcom.c +unless ISA suppress SEALEVEL_4021 # http://www.sealevel.com/selection.htm +unless ISA or PCI suppress SDLA # sdla*.c; <=s508 is ISA, but there + # appears to be support for PCI s514 +unless ISA suppress CYCLADES_SYNC # 98% sure from cycx* +unless (CYCLADES_SYNC!=n) suppress CYCLOMX_X25 +unless ISA suppress SBNI # sbni.c + +unless WAN_ROUTER!=n suppress WAN_ROUTER_DRIVERS +unless LAPB!=n suppress dependent COMX_PROTO_LAPB + +default DLCI_COUNT from 24 +default DLCI_MAX from 8 + +menu wan_drivers # Wan drivers + HOSTESS_SV11? COSA? LANMEDIA? + COMX? { + COMX_HW_COMX? COMX_HW_LOCOMX? COMX_HW_MIXCOM? + COMX_PROTO_PPP? COMX_PROTO_LAPB? COMX_PROTO_FR? + } + FARSYNC? DSCC4? + SEALEVEL_4021? + SYNCLINK_SYNCPPP? + HDLC? {HDLC_PPP HDLC_X25 N2? C101?} + DLCI? {DLCI_COUNT% DLCI_MAX% SDLA?} + WAN_ROUTER_DRIVERS {wan_router_drivers} + +unless (COMX_HW_LOCOMX!=n) or (COMX_HW_MIXCOM!=n) suppress COMX_PROTO_PPP +unless (COMX_HW_LOCOMX!=n) or (COMX_HW_MIXCOM!=n) suppress COMX_PROTO_LAPB +unless (COMX_HW_LOCOMX!=n) or (COMX_HW_MIXCOM!=n) suppress COMX_PROTO_FR + +menu wan_router_drivers # WAN router drivers + VENDOR_SANGOMA? { + WANPIPE_CHDLC WANPIPE_FR WANPIPE_X25 + WANPIPE_PPP {WANPIPE_MULTPPP} + } + CYCLADES_SYNC? {CYCLOMX_X25} + LAPBETHER? X25_ASY? SBNI? {SBNI_MULTILINE} + +require LAPBETHER <= LAPB and LAPBETHER <= X25 +require X25_ASY <= LAPB and LAPBETHER <= X25 + +# There is no way to detect a Comtrol sv11 - force it modular for now. +require HOSTESS_SV11 <= m explanation hostess_complaint +# The COSA/SRP driver has not been tested as non-modular yet. +require COSA <= m explanation cosa_complaint +# The Etinc driver has not been tested as non-modular yet. +require DSCC4 <= m explanation dscc4_complaint +# There is no way to detect a Sealevel - force it modular for now. +require SEALEVEL_4021 <= m explanation sealevel_complaint +# This constraint is not explained +require SYNCLINK_SYNCPPP <= m +# SDLA must be modular if DLCI is +require SDLA <= DLCI + +# End diff -uNr linux.2.4.14.pristine/drivers/net/wireless/rules.cml linux/drivers/net/wireless/rules.cml --- linux.2.4.14.pristine/drivers/net/wireless/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/net/wireless/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,26 @@ +# Wireless (802.11) support + +unless INET suppress dependent STRIP +unless EXPERIMENTAL suppress dependent AIRONET4500_ISA AIRONET4500_I365 +unless PCI suppress AIRONET4500_PCI PLX_HERMES +unless ISA suppress AIRONET4500_ISA +unless ISA suppress WAVELAN # brief reference to MCA, but Doc.help + # and wavelan.{c|txt} say ISA only. +unless ISA suppress ARLAN # arlan.c +unless ALL_PPC suppress APPLE_AIRPORT + +menu wireless # Wireless LAN + STRIP? WAVELAN? + ARLAN? AIRONET4500? { + AIRONET4500_NONCS? { + AIRONET4500_PNP AIRONET4500_PCI AIRONET4500_ISA + AIRONET4500_I365 AIRONET4500_PROC? + } + } + AIRO? AIRO_CS? + HERMES? APPLE_AIRPORT? PLX_HERMES? + +require AIRONET4500_PROC <= m explanation aironet_complaint + +# yes, this works even when no drivers are selected +derive NET_WIRELESS from ISA or PCI or ALL_PPC or PCMCIA!=n diff -uNr linux.2.4.14.pristine/drivers/parport/rules.cml linux/drivers/parport/rules.cml --- linux.2.4.14.pristine/drivers/parport/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/parport/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,48 @@ +# Parallel-port configuration + +unless PARPORT!=n suppress dependent parport +unless EXPERIMENTAL suppress + PARPORT_PC_FIFO SUN_BPP PARPORT_SUNBPP PARPORT_MFC3 PARPORT_PC_SUPERIO +unless X86 or ALPHA suppress PARPORT_PC +unless ZORRO or APUS suppress GVPIOEXT MULTIFACE_III_TTY +unless SBUS==y suppress SUN_BPP +unless PARPORT_AMIGA==n and ZORRO suppress PARPORT_MFC3 + +menu parport # Parallel port support + PARPORT_PC? {PARPORT_PC_FIFO PARPORT_PC_SUPERIO} + PARPORT_SERIAL? + PARPORT_PC_PCMCIA? + PARPORT_MFC3? SUN_BPP? {PARPORT_SUNBPP?} PARPORT_OTHER PARPORT_1284 + GVPIOEXT? {GVPIOEXT_LP? GVPIOEXT_PLIP?} + MULTIFACE_III_TTY? + +# The CML1 here was +# if [ "$CONFIG_PARPORT_PC" != "n" -a "$CONFIG_SERIAL" != "n" ]; then +# if [ "$CONFIG_SERIAL" = "m" ]; then +# define_tristate CONFIG_PARPORT_PC_CML1 m +# else +# define_tristate CONFIG_PARPORT_PC_CML1 $CONFIG_PARPORT_PC +# fi +private PARPORT_PC_CML1 +derive PARPORT_PC_CML1 from (SERIAL and PARPORT)&(SERIAL==m ? m : PARPORT_PC) +unless PARPORT_PC_CML1!=n suppress dependent PARPORT_SERIAL + +# These used to be separate questions +derive PARPORT_ARC from PARPORT & ARM +derive PARPORT_AMIGA from PARPORT & AMIGA +derive PARPORT_ATARI from PARPORT & ATARI +derive PARIDE_PARPORT from PARPORT | m + +# I'm not sure this is correct. The M68K people have oscillated back and +# forth a few times about whether READBACK and 1284 are equivalent. +derive PRINTER_READBACK from PARPORT_1284 + +# Don't bother with this if parport_pc is a module; it only affects +# the presence or not of some __init's, which are no-ops for modules. +# unless PARPORT_PC==y and HOTPLUG and PCMCIA!=n suppress PARPORT_PC_PCMCIA + +# Force PARPORT_PC on x86 machines but leave the question open on others. +require X86 implies PARPORT_PC==PARPORT +unless X86==n suppress PARPORT_PC + +# End diff -uNr linux.2.4.14.pristine/drivers/pcmcia/rules.cml linux/drivers/pcmcia/rules.cml --- linux.2.4.14.pristine/drivers/pcmcia/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/pcmcia/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,10 @@ +# PCMCIA configuration + +unless PCMCIA!=n suppress pcmcia +unless PCI suppress CARDBUS I82092 +#unless HD64465 suppress HD64465_PCMCIA + +menu pcmcia # PCMCIA/CardBus support + CARDBUS I82092 I82365 TCIC #HD64465_PCMCIA + +# End diff -uNr linux.2.4.14.pristine/drivers/sbus/rules.cml linux/drivers/sbus/rules.cml --- linux.2.4.14.pristine/drivers/sbus/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/sbus/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,22 @@ +# from drivers/sbus/char/Config.in: + +unless SPARC suppress TADPOLE_TS102_UCTRL SUN_JSFLASH +unless EXPERIMENTAL suppress dependent + SUN_VIDEOPIX SUN_AURORA TADPOLE_TS102_UCTRL SUN_JSFLASH + +menu sbus_misc + SUN_OPENPROMIO? SUN_MOSTEK_RTC? #SUN_BPP? + SUN_VIDEOPIX? SUN_AURORA? TADPOLE_TS102_UCTRL? SUN_JSFLASH? + # The CML1 code queried for RTC? and derived APM_RTC_IS_GMT here, + # but we handle that in the architecture-independent features section + +# from drivers/sbus/audio/Config.in: + +unless EXPERIMENTAL suppress dependent sparcaudio + +menu sparcaudio + SPARCAUDIO? { + SPARCAUDIO_AMD7930? SPARCAUDIO_CS4231? + SPARCAUDIO_DBRI? SPARCAUDIO_DUMMY? + } + diff -uNr linux.2.4.14.pristine/drivers/scsi/rules.cml linux/drivers/scsi/rules.cml --- linux.2.4.14.pristine/drivers/scsi/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/scsi/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,212 @@ +# from drivers/scsi/Config.in, +# drivers/acorn/scsi/Config.in, drivers/scsi/pcmcia/Config.in + +private SCSI_PCMCIA + +menu scsi + scsi_devices scsi_drivers + FUSION? {fusion_mpt} + +#unless EXPERIMENTAL suppress dependent SCSI_DEBUG_QUEUES +unless PCI suppress + SCSI_INITIO SCSI_INIA100 SCSI_NCR53C7xx SCSI_NCR53C8XX SCSI_SYM53C8XX +unless PARPORT!=n suppress dependent SCSI_PPA SCSI_IMM +unless PARISC suppress SCSI_ZALON SCSI_LASI SCSI_LASI700 +unless CHR_DEV_ST!=n suppress dependent CHR_DEV_OSST + +menu scsi_devices # SCSI? disk support + BLK_DEV_SD! SD_EXTRA_DEVS% + CHR_DEV_ST? ST_EXTRA_DEVS% + CHR_DEV_OSST? + BLK_DEV_SR! {BLK_DEV_SR_VENDOR} SR_EXTRA_DEVS% + CHR_DEV_SG! + # Some SCSI? devices (e.g. CD jukebox) support multiple LUNs + SCSI_DEBUG_QUEUES SCSI_MULTI_LUN SCSI_CONSTANTS SCSI_LOGGING + +unless BLK_DEV_SD == m suppress SD_EXTRA_DEVS +unless CHR_DEV_ST == m suppress ST_EXTRA_DEVS +unless BLK_DEV_SR == m suppress SR_EXTRA_DEVS + +unless EXPERIMENTAL suppress dependent + SCSI_NCR53C8XX_SYMBIOS_COMPAT SCSI_DEBUG + SCSI_CUMANA_1 SCSI_ECOSCSI SCSI_OAK1 A4000T_SCSI + A4091_SCSI WARPENGINE_SCSI BLZ603EPLUS_SCSI OKTAGON_SCSI +unless ISA suppress SCSI_AHA152X SCSI_AHA1542 +unless PCI suppress + SCSI_AHA1740 + SCSI_QLOGIC_ISP + SCSI_QLOGIC_FC + SCSI_QLOGIC_1280 + SCSI_DC390T BLK_DEV_3W_XXXX_RAID SCSI_INITIO SCSI_INIA100 + SCSI_SEAGATE SCSI_CPQFCTS SCSI_IPS +unless MCA suppress SCSI_FD_MCS SCSI_IBMMCA SCSI_MCA_53C9X SCSI_NCR_D700 +unless HOTPLUG==y and PCMCIA==y suppress SCSI_PCMCIA +#unless CARDBUS!=n suppress PCMCIA_APA1480 +unless PPC suppress SCSI_MESH SCSI_MAC53C94 +unless MIPS_JAZZ suppress JAZZ_ESP +unless ARCH_ACORN suppress SCSI_ACORNSCSI_3 + SCSI_ARXESCSI SCSI_CUMANA_2 SCSI_EESOXSCSI SCSI_POWERTECSCSI + SCSI_CUMANA_1 SCSI_ECOSCSI SCSI_OAK1 +unless MIPS suppress SGIWD93_SCSI # CML1 doesn't actually define SGI +unless DECSTATION==y and TC==y suppress SCSI_DECNCR +unless DECSTATION==y suppress SCSI_DECSII +unless SPARC suppress SCSI_SUNESP SCSI_QLOGICPTI +unless X86 suppress SCSI_IPS SCSI_ULTRASTOR +unless X86 or ALPHA or PPC suppress + SCSI_AIC7XXX SCSI_AIC7XXX_OLD SCSI_ADVANSYS SCSI_NCR53C8XX + SCSI_SYM53C8XX +unless X86 or ALPHA suppress + BLK_DEV_3W_XXXX_RAID SCSI_7000FASST SCSI_ACARD SCSI_IN2000 + SCSI_AM53C974 SCSI_MEGARAID SCSI_BUSLOGIC SCSI_DTC3280 SCSI_EATA + SCSI_FUTURE_DOMAIN SCSI_FD_MCS SCSI_GDTH SCSI_GENERIC_NCR5380 + SCSI_INITIO SCSI_INIA100 SCSI_PAS16 SCSI_PCI2000 SCSI_PCI2220I + SCSI_PSI240I SCSI_QLOGIC_FAS SCSI_QLOGIC_ISP + SCSI_QLOGIC_FC SCSI_QLOGIC_1280 SCSI_SEAGATE SCSI_DC390T SCSI_T128 SCSI_U14_34F +unless AMIGA suppress A3000_SCSI A4000T_SCSI +unless ZORRO suppress + A2091_SCSI GVP11_SCSI + CYBERSTORM_SCSI CYBERSTORMII_SCSI #CYBERSTORMIII_SCSI + BLZ2060_SCSI BLZ1230_SCSI FASTLANE_SCSI A4091_SCSI WARPENGINE_SCSI + BLZ603EPLUS_SCSI OKTAGON_SCSI +unless ATARI suppress ATARI_SCSI +unless HADES suppress TT_DMA_EMUL +unless MAC suppress MAC_SCSI SCSI_MAC_ESP +unless SUN3X suppress SUN3X_ESP + +# The technically legal combinations are: +# +# SCSI_AIC7XXX SCSI_AIC7XXX_OLD +# n n +# n y +# y n +# m m +# m n +# +unless SCSI_AIC7XXX==n suppress SCSI_AIC7XXX_OLD + +default AIC7XXX_CMDS_PER_DEVICE from 253 +default AIC7XXX_OLD_CMDS_PER_DEVICE from 8 +default AIC7XXX_RESET_DELAY_MS from 5000 + +default SCSI_EATA_MAX_TAGS from 16 +default SCSI_MESH_SYNC_RATE from 5 +default SCSI_NCR53C8XX_DEFAULT_TAGS from 8 +default SCSI_NCR53C8XX_MAX_TAGS from 32 +default SCSI_NCR53C8XX_SYNC from 10 +default SCSI_SYM53C8XX_DMA_ADDRESSING_MODE from 1 +default SCSI_SYM53C8XX_DEFAULT_TAGS from 16 +default SCSI_SYM53C8XX_MAX_TAGS from 64 +default SCSI_U14_34F_MAX_TAGS from 8 +default SD_EXTRA_DEVS from 40 +default SR_EXTRA_DEVS from 2 +default ST_EXTRA_DEVS from 2 + +menu scsi_drivers # SCSI low-level drivers + SGIWD93_SCSI! SCSI_DECNCR! SCSI_DECSII! + BLK_DEV_3W_XXXX_RAID! SCSI_7000FASST! + SCSI_ACARD! SCSI_AHA152X! SCSI_AHA1542! SCSI_AHA1740! + SCSI_AIC7XXX! { + AIC7XXX_CMDS_PER_DEVICE% + #AIC7XXX_TCQ_ON_BY_DEFAULT AIC7XXX_PROC_STATS + AIC7XXX_RESET_DELAY_MS% + AIC7XXX_BUILD_FIRMWARE + } + SCSI_AIC7XXX_OLD! { + AIC7XXX_OLD_CMDS_PER_DEVICE% + AIC7XXX_OLD_TCQ_ON_BY_DEFAULT + AIC7XXX_OLD_PROC_STATS + } + SCSI_IPS! SCSI_DPT_I2O! SCSI_ADVANSYS! + SCSI_IN2000! SCSI_AM53C974! SCSI_MEGARAID! + SCSI_BUSLOGIC! {SCSI_OMIT_FLASHPOINT} + SCSI_CPQFCTS? + SCSI_DMX3191D! SCSI_DTC3280! + SCSI_EATA! { + SCSI_EATA_TAGGED_QUEUE SCSI_EATA_LINKED_COMMANDS + SCSI_EATA_MAX_TAGS% SCSI_EATA_DMA! SCSI_EATA_PIO! + } + SCSI_FUTURE_DOMAIN! SCSI_FD_MCS! SCSI_GDTH! + SCSI_GENERIC_NCR5380! {SCSI_GENERIC_NCR53C400 ncr5380} + SCSI_INITIO! SCSI_INIA100! + SCSI_PPA! SCSI_IMM! SCSI_IZIP_EPP16 SCSI_IZIP_SLOW_CTR + SCSI_NCR53C406A! SCSI_SYM53C416! SCSI_SIM710! + SCSI_NCR_D700? SCSI_LASI700? + SCSI_NCR53C7xx! { + SCSI_NCR53C7xx_sync + SCSI_NCR53C7xx_FAST SCSI_NCR53C7xx_DISCONNECT + } + SCSI_ZALON? SCSI_LASI? + SCSI_NCR53C8XX! SCSI_SYM53C8XX! + SCSI_NCR53C8XX_DEFAULT_TAGS% SCSI_NCR53C8XX_MAX_TAGS% + SCSI_NCR53C8XX_SYNC% SCSI_NCR53C8XX_PROFILE SCSI_NCR53C8XX_IOMAPPED + SCSI_NCR53C8XX_PQS_PDS SCSI_NCR53C8XX_NO_DISCONNECT + SCSI_NCR53C8XX_SYMBIOS_COMPAT + SCSI_SYM53C8XX_2? { + SCSI_SYM53C8XX_DMA_ADDRESSING_MODE% + SCSI_SYM53C8XX_DEFAULT_TAGS% + SCSI_SYM53C8XX_MAX_TAGS% + SCSI_SYM53C8XX_IOMAPPED + } + SCSI_IBMMCA! {IBMMCA_SCSI_ORDER_STANDARD IBMMCA_SCSI_DEV_RESET} + SCSI_MCA_53C9X! + SCSI_PAS16! SCSI_PCI2000! SCSI_PCI2220I! SCSI_PSI240I! SCSI_QLOGIC_FAS! + SCSI_QLOGIC_ISP! SCSI_QLOGIC_FC! {SCSI_QLOGIC_FC_FIRMWARE} + SCSI_QLOGIC_1280! SCSI_SEAGATE! + SCSI_DC390T! {SCSI_DC390T_NOGENSUPP} + SCSI_T128! + SCSI_U14_34F! {SCSI_U14_34F_LINKED_COMMANDS SCSI_U14_34F_MAX_TAGS%} + SCSI_ULTRASTOR! + SCSI_MESH! {SCSI_MESH_SYNC_RATE%} + SCSI_MAC53C94! JAZZ_ESP + SCSI_ACORNSCSI_3! {SCSI_ACORNSCSI_TAGGED_QUEUE SCSI_ACORNSCSI_SYNC} + SCSI_ARXESCSI! SCSI_CUMANA_2! SCSI_EESOXSCSI! SCSI_POWERTECSCSI! + SCSI_CUMANA_1! SCSI_ECOSCSI! SCSI_OAK1! + SCSI_PCMCIA { + PCMCIA_AHA152X! PCMCIA_QLOGIC! + PCMCIA_FDOMAIN! PCMCIA_NINJA_SCSI! #PCMCIA_APA1480! + } + # SPARC SCSCI + SCSI_SUNESP! SCSI_QLOGICPTI! + # M68K SCSI! + A3000_SCSI! A4000T_SCSI + A2091_SCSI! GVP11_SCSI! + CYBERSTORM_SCSI! CYBERSTORMII_SCSI! #CYBERSTORMIII_SCSI! + BLZ2060_SCSI! BLZ1230_SCSI! FASTLANE_SCSI! A4091_SCSI WARPENGINE_SCSI + BLZ603EPLUS_SCSI OKTAGON_SCSI! + ATARI_SCSI! { + ATARI_SCSI_TOSHIBA_DELAY ATARI_SCSI_RESET_BOOT TT_DMA_EMUL + } + MAC_SCSI! SCSI_MAC_ESP! SUN3X_ESP + # Debugging + SCSI_DEBUG? + #SCSI_SIM + +derive CONFIG_53C700_IO_MAPPED from SCSI_NCR_D700!=n +derive CONFIG_53C700_MEM_MAPPED from SCSI_LASI700!=n +derive CONFIG_53C700_LE_ON_BE from SCSI_LASI700!=n +derive CONFIG_53C700_USE_CONSISTENT from SCSI_LASI700!=n + +unless SCSI_PPA!=n and SCSI_IMM!=n suppress SCSI_IZIP_EPP16 SCSI_IZIP_SLOW_CTR +unless SCSI_NCR53C7xx!=y suppress SCSI_NCR53C8XX SCSI_SYM53C8XX +unless (PARISC and SCSI_ZALON!=n) or SCSI_NCR53C8XX!=n or SCSI_SYM53C8XX!=n suppress + SCSI_NCR53C8XX_DEFAULT_TAGS SCSI_NCR53C8XX_MAX_TAGS + SCSI_NCR53C8XX_SYNC SCSI_NCR53C8XX_PROFILE SCSI_NCR53C8XX_IOMAPPED +unless SCSI_NCR53C8XX!=n or SCSI_SYM53C8XX!=n suppress + SCSI_NCR53C8XX_PQS_PDS SCSI_NCR53C8XX_NO_DISCONNECT + SCSI_NCR53C8XX_SYMBIOS_COMPAT +unless SCSI_SYM53C8XX!=n suppress dependent SCSI_NCR53C8XX_PQS_PDS +unless ARCH_ARCA5K suppress SCSI_ECOSCSI +#unless IA64 suppress SCSI_SIM +require PCMCIA_AHA152X <= m +require PCMCIA_QLOGIC <= m +require PCMCIA_FDOMAIN <= m +#require PCMCIA_APA1480 <= m +derive PCMCIA_SCSICARD from (PCMCIA_QLOGIC!=n) or (PCMCIA_AHA152X!=n) or + (PCMCIA_FDOMAIN!=n) or (PCMCIA_NINJA_SCSI!=n) + # or (PCMCIA_APA1480!=n) +choices ncr5380 # NCR5380/53c400 mapping method (use Port for T130B) + SCSI_G_NCR5380_PORT SCSI_G_NCR5380_MEM + default SCSI_G_NCR5380_PORT + +# End + diff -uNr linux.2.4.14.pristine/drivers/sound/rules.cml linux/drivers/sound/rules.cml --- linux.2.4.14.pristine/drivers/sound/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/sound/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,172 @@ +# Sound driver configuration + +unless EXPERIMENTAL suppress dependent SOUND_AD1816 +#unless VISWS suppress SOUND_VWSND +unless ISAPNP!=n suppress SOUND_AD1816 #from Documentation/sound/AD1816 +unless ARM or ARCH_CLPS7500 suppress SOUND_VIDC +unless ARM and SOUND_OSS!=n suppress SOUND_WAVEARTIST +unless AMIGA or ATARI or ALL_PPC or APUS suppress DMASOUND # Generic DMA sound +unless ATARI suppress DMASOUND_ATARI # ATARI specific +unless ALL_PPC suppress DMASOUND_AWACS # PowerMac/APUS specific +unless (AMIGA or APUS) suppress DMASOUND_PAULA DMASOUND_Q40 # Amiga specific +unless Q40 suppress DMASOUND_Q40 # Q40 Specific +unless PCI suppress SOUND_CMPCI # PCI only, according to cmpci.c +unless PCI suppress SOUND_EMU10K1 # PCI only, according to emu10k1/main.c +unless PCI suppress SOUND_ES1370 # PCI only, according to es1370.c +unless PCI suppress SOUND_ES1371 # PCI only, according to es1371.c +unless PCI suppress SOUND_ESSSOLO1 # PCI only, according to esssolo1.c +unless PCI suppress SOUND_MAESTRO # PCI only, according to maestro.c + # and from Documentation/sound/Maestro +unless PCI suppress SOUND_MAESTRO3 # PCI only, according to maestro.c + # and from Documentation/sound/Maestro +unless PCI suppress SOUND_SONICVIBES # PCI only, according to sonicvibes.c +unless PCI suppress SOUND_TRIDENT # PCI only, according to trident.c +unless ISA suppress SOUND_MSNDCLAS # From msnd_pinnacle.c + # (supports both clas and pin) +unless ISA or ISAPNP!=n suppress SOUND_MSNDPIN #From msnd_pinnacle.c +unless ISA or (ISAPNP!=n) suppress SOUND_MAD16 #from mad16.c +unless ISAPNP!=n suppress SOUND_CS4232 #from cs4232.c +unless ISAPNP!=n suppress SOUND_SSCAPE #from sscape.c +unless ISA suppress SOUND_ADLIB #from adlib_card.c and opl3.c +unless ISA suppress SOUND_YM3812 #from opl3.c +unless ISA suppress SOUND_WAVEFRONT #from wavfront.c +unless ISA suppress SOUND_MAUI #from maui.c +unless ISA suppress SOUND_AEDSP16 #from aedsp16.c +unless ISA suppress SOUND_PAS #from pas2_card.c +unless PCI suppress SOUND_NM256 #Documentation/sound/NM256, nm256_audio.c +unless ISA suppress SOUND_TRIX #trix.c +unless ISAPNP!=n suppress SOUND_AWE32_SYNTH #Documentation/sound/README.awe, awe_wave.c. Brief reference to PCI. +unless ISA suppress SOUND_SGALAXY #sgalaxy.c +unless ISA or (ISAPNP!=n) suppress SOUND_GUS #Documentation/sound/ultrasound, gus_card.c +unless (ISAPNP!=n) suppress SOUND_OPL3SA2 #Documentation/sound/OPL3-SA2 +unless ISA suppress SOUND_OPL3SA1 #opl3sa.c +unless PCI suppress SOUND_YMFPCI SOUND_YMFPCI_LEGACY #It's legacy PCI support +unless ISA suppress SOUND_PSS #Documentation/sound/PSS, pss.c +unless PCI suppress SOUND_ICH #i810_audio.c +unless PCI suppress SOUND_VIA82CXXX #Documentation/sound/via82cxxx.txt, via82cxxx_audio.c +unless ISA suppress SOUND_DMAP #preallocated buffer only needed for ISA cards. + +# Copied from CML1. +unless DDB5477 suppress SOUND_VRC5477 + +default MAUI_BOOT_FILE from '/etc/sound/oswf.mot' +default TRIX_BOOT_FILE from '/etc/sound/trxpro.hex' + +default SOUND_CMPCI_FMIO from 0x388 range 0x388 0x3c8 0x3e0 0x3e8 +default SOUND_CMPCI_MPUIO from 0x330 range 0x330, 0x320 0x310 0x300 +default SOUND_CMPCI_SPEAKERS from 2 range 2 4 5 6 +default MSNDCLAS_INIT_FILE from '/etc/sound/msndinit.bin' +default MSNDCLAS_IO from 0x290 range 0x210 0x220 0x230 0x240 0x250 0x260 0x290 0x3E0 +default MSNDCLAS_IRQ from 5 range 5 7 9 10 11 12 +default MSNDPIN_IDE_IRQ from 0 +default MSNDPIN_MPU_IRQ from 0 +default MSNDCLAS_MEM from 0xd0000 range 0xB0000 0xC8000 0xD0000 0xD8000 0xE0000 0xE8000 +default MSNDCLAS_PERM_FILE from '/etc/sound/msndperm.bin' +default MSNDPIN_CFG from 0x250 range 0x250 0x260 0x270 +default MSNDPIN_INIT_FILE from '/etc/sound/pndspini.bin' +default MSNDPIN_IO from 0x290 range 0x210 0x220 0x230 0x240 0x250 0x260 0x290 0x3E0 +default MSNDPIN_IRQ from 5 range 5 7 9 10 11 12 +default MSNDPIN_MEM from 0xd0000 range 0xB0000 0xC8000 0xD0000 0xD8000 0xE0000 0xE8000 +default MSNDPIN_PERM_FILE from '/etc/sound/pndsperm.bin' +default MSNDPIN_IDE_IO1 from 0 +default MSNDPIN_IDE_IO0 from 0 +default MSNDPIN_MPU_IO from 0 +default MSNDPIN_JOYSTICK_IO from 0 +default MSND_FIFOSIZE from 128 + +default PSS_BOOT_FILE from '/etc/sound/dsp001.ld' +default SC6600_CDROM from 4 + enum NO_CDROM=4 IDE_CDROM=3 PANASONIC_CDROM=1 SONY_CDROM=0 +default SC6600_CDROMBASE from 0 + +unless SOUND_CMPCI_SPEAKERS != 2 + suppress SOUND_CMPCI_LINE_REAR SOUND_CMPCI_LINE_BASS + +menu sound # Sound support + SOUND_BT878? + SOUND_CMPCI? { + SOUND_CMPCI_FM {SOUND_CMPCI_FMIO@} + SOUND_CMPCI_MIDI {SOUND_CMPCI_MPUIO@} + SOUND_CMPCI_JOYSTICK + SOUND_CMPCI_CM8738 { + SOUND_CMPCI_SPDIFINVERSE SOUND_CMPCI_SPDIFLOOP + SOUND_CMPCI_SPEAKERS% + SOUND_CMPCI_LINE_REAR SOUND_CMPCI_LINE_BASS + } + } + SOUND_EMU10K1? {MIDI_EMU10K1} + SOUND_FUSION? SOUND_CS4281? + SOUND_ES1370? SOUND_ES1371? SOUND_ESSSOLO1? + SOUND_MAESTRO? SOUND_MAESTRO3? SOUND_ICH? SOUND_RME96XX? SOUND_SONICVIBES? + #SOUND_VWSND? + SOUND_VRC5477? + SOUND_TRIDENT? + SOUND_MSNDCLAS? { + msndclas_legend + MSNDCLAS_INIT_FILE$ MSNDCLAS_PERM_FILE$ + MSNDCLAS_IRQ% MSNDCLAS_MEM@ MSNDCLAS_IO@ + } + SOUND_MSNDPIN? { + msndpin_legend + MSNDPIN_INIT_FILE$ MSNDPIN_PERM_FILE$ + MSNDPIN_IRQ% MSNDPIN_MEM@ MSNDPIN_IO@ + MSNDPIN_DIGITAL MSNDPIN_NONPNP { + MSNDPIN_CFG@ MSNDPIN_MPU_IO@ MSNDPIN_MPU_IRQ% + MSNDPIN_IDE_IO0@ MSNDPIN_IDE_IO1@ + MSNDPIN_IDE_IRQ% MSNDPIN_JOYSTICK_IO@ + } + } + MSND_FIFOSIZE% + SOUND_OSS? { + SOUND_TRACEINIT SOUND_DMAP + SOUND_AD1816? SOUND_SGALAXY? SOUND_ADLIB? SOUND_ACI_MIXER? + SOUND_CS4232? + SOUND_SSCAPE? SOUND_GUS? {SOUND_GUS16 SOUND_GUSMAX} + SOUND_VMIDI? + SOUND_TRIX? {TRIX_HAVE_BOOT {TRIX_BOOT_FILE$}} + SOUND_MSS? SOUND_MPU401? SOUND_NM256? + SOUND_MAD16? {MAD16_OLDCARD} + SOUND_PAS? PAS_JOYSTICK + SOUND_PSS? {PSS_MIXER PSS_HAVE_BOOT {PSS_BOOT_FILE$}} + SOUND_SB? SOUND_AWE32_SYNTH? SOUND_WAVEFRONT? + SOUND_MAUI? {MAUI_HAVE_BOOT {MAUI_BOOT_FILE$}} + SOUND_YM3812? SOUND_OPL3SA1? + SOUND_YMFPCI? SOUND_YMFPCI_LEGACY + SOUND_OPL3SA2? SOUND_UART6850? + SOUND_AEDSP16? { + SC6600 {SC6600_JOY SC6600_CDROM% SC6600_CDROMBASE@} + AEDSP16_SBPRO AEDSP16_MSS AEDSP16_MPU401 + SOUND_VIDC? SOUND_WAVEARTIST? + } + SOUND_VIA82CXXX? {MIDI_VIA82CXXX} + } + DMASOUND? { + DMASOUND_ATARI? DMASOUND_AWACS? DMASOUND_PAULA? DMASOUND_Q40? + } + SOUND_TVMIXER? + +unless SOUND_MSNDCLAS!=n or SOUND_MSNDPIN!=n suppress MSND_FIFOSIZE +# Strengthen some dependencies already implied by brackets +unless SOUND_MSNDCLAS==y suppress + msndclas_legend MSNDPIN_IRQ MSNDPIN_MEM MSNDPIN_IO +unless SOUND_MSNDPIN==y suppress + msndpin_legend + MSNDPIN_IRQ MSNDPIN_MEM MSNDPIN_IO MSNDPIN_DIGITAL MSNDPIN_NONPNP +unless SOUND_TRIX==y suppress TRIX_HAVE_BOOT +unless SOUND_MAUI==y suppress MAUI_HAVE_BOOT +unless SOUND_MPU401!=n suppress AEDSP16_MPU401 + +unless SOUND_SB!=n suppress AEDSP16_MSS AEDSP16_SBPRO +require (AEDSP16_SBPRO==n) or (AEDSP16_MSS==n) explanation aed_complaint + +derive MSNDCLAS_HAVE_BOOT from SOUND_MSNDCLAS==y +derive MSNDPIN_HAVE_BOOT from SOUND_MSNDPIN==y + +# If INPUT_GAMEPORT is selected *and* one of the drivers that uses +# gameport is built in then INPUT_GAMEPORT must also be built in. +# Otherwise there is no restriction on INPUT_GAMEPORT. +require (INPUT_GAMEPORT!=n) and (SOUND_ESSSOLO1==y or SOUND_ES1370==y + or SOUND_ES1371==y or SOUND_SONICVIBES==y) + implies INPUT_GAMEPORT==y + +# End diff -uNr linux.2.4.14.pristine/drivers/telephony/rules.cml linux/drivers/telephony/rules.cml --- linux.2.4.14.pristine/drivers/telephony/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/telephony/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,7 @@ +# from drivers/telephony/Config.in + +unless PCMCIA!=n suppress PHONE_IXJ_PCMCIA + +menu telephony # Telephony Support + PHONE? {PHONE_IXJ? PHONE_IXJ_PCMCIA?} + diff -uNr linux.2.4.14.pristine/drivers/usb/rules.cml linux/drivers/usb/rules.cml --- linux.2.4.14.pristine/drivers/usb/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/usb/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,83 @@ +# Universal Serial Bus + +unless EXPERIMENTAL suppress dependent + USB_SERIAL_WHITEHEAT USB_SERIAL_FTDI_SIO USB_SERIAL_DIGI_ACCELEPORT + USB_CATC USB_PEGASUS USB_RIO500 USB_DSBR USB_MDC800 USB_HIDDEV + USB_SERIAL_XIRCOM USB_STORAGE_SDDR09 USB_STORAGE_HP8200e + USB_STORAGE_DATAFAB USB_USBNET USB_BANDWIDTH USB_BLUETOOTH + +unless SCSI!=n suppress USB_MICROTEK +# unless SOUND!=n suppress USB_AUDIO +unless SCSI!=n suppress USB_STORAGE +# unless VIDEO_DEV!=n suppress USB_IBMCAM +# unless VIDEO_DEV!=n suppress USB_OV511 +unless PARPORT!=n suppress USB_USS720 +unless NET!=n suppress USB_CATC USB_PEGASUS +# unless VIDEO_DEV!=n suppress USB_DSBR +unless ETRAX_USB_HOST suppress + usb_etrax_legend ETRAX_USB_HOST_PORT1 ETRAX_USB_HOST_PORT2 +unless USB_UHCI==n suppress USB_UHCI_ALT +#unless USB_UHCI_ALT==n suppress USB_UHCI + +# These constraints avoid forward-declaration problems +require USB_HID!=n or USB_KBD!=n or USB_MOUSE!=n or USB_WACOM!=n + implies INPUT!=n +require USB_IBMCAM!=n or USB_OV511!=n or USB_PWC!=n + or USB_SE401!=n or USB_DSBR!=n implies VIDEO_DEV!=n + +default INPUT_MOUSEDEV_SCREEN_X from 1024 +default INPUT_MOUSEDEV_SCREEN_Y from 768 + +menu usb # USB? support + USB_DEBUG + usb_options_legend + USB_DEVICEFS USB_BANDWIDTH USB_LONG_TIMEOUT + usb_controllers_legend + USB_UHCI? USB_UHCI_ALT? + USB_OHCI? + usb_devices_legend + USB_PRINTER? + USB_AUDIO? USB_ACM? + USB_SERIAL? {usb_serial} + USB_STORAGE! { + USB_STORAGE_DEBUG USB_STORAGE_DATAFAB USB_STORAGE_FREECOM + USB_STORAGE_ISD200 USB_STORAGE_DPCM USB_STORAGE_HP8200e + USB_STORAGE_SDDR09 USB_STORAGE_JUMPSHOT + } + USB_BLUETOOTH? + usb_hid_legend + USB_HID? USB_HIDDEV USB_KBD? USB_MOUSE? + USB_WACOM? + usb_imaging_legend + USB_DC2XX? USB_MDC800? USB_SCANNER? USB_MICROTEK? USB_HPUSBSCSI? + usb_multimedia_legend + USB_IBMCAM? USB_OV511? USB_PWC? USB_SE401? USB_DSBR? USB_DABUSB? + usb_network_legend + USB_KAWETH? USB_CATC? USB_CDCETHER? USB_USBNET? + USB_PEGASUS? + usb_port_legend + USB_USS720? + usb_misc_legend + USB_RIO500? + usb_etrax_legend + ETRAX_USB_HOST_PORT1 ETRAX_USB_HOST_PORT2 + +# FIXME: Video4Linux support is needed for USB Multimedia device support +# require VIDEO_DEV >= (USB_IBMCAM | USB_OV511 | USB_PWC | USB_SE401 | USB_DSBR | USB_DABUSB) + +# FIXME: Networking support is needed for USB Networking device support +# require NET >= (USB_CATC | USB_PEGASUS) + +require (USB_UHCI==n) or (USB_UHCI_ALT==n) or ((USB_UHCI==m) and (USB_UHCI_ALT==m)) + explanation usb_complaint +unless USB_HID!=y suppress USB_KBD USB_MOUSE +require USB_MICROTEK <= SCSI +# require USB_AUDIO <= SOUND +require USB_STORAGE <= SCSI +# require USB_IBMCAM <= VIDEO_DEV +# require USB_OV511 <= VIDEO_DEV +require USB_USS720 <= PARPORT +require USB_PEGASUS <= NET +# require USB_DSBR <= VIDEO_DEV + +# End diff -uNr linux.2.4.14.pristine/drivers/usb/serial/rules.cml linux/drivers/usb/serial/rules.cml --- linux.2.4.14.pristine/drivers/usb/serial/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/drivers/usb/serial/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,27 @@ +# USB serial evices + +unless EXPERIMENTAL suppress + USB_SERIAL_KEYSPAN USB_SERIAL_KEYSPAN_PDA USB_SERIAL_OMNINET + USB_SERIAL_EMPEG USB_SERIAL_MCT_U232 USB_SERIAL_PL2303 + USB_SERIAL_CYBERJACK USB_SERIAL_IR +menu usb_serial # USB serial devices + USB_SERIAL_GENERIC USB_SERIAL_VISOR? USB_SERIAL_IR? + USB_SERIAL_EDGEPORT? USB_SERIAL_DIGI_ACCELEPORT? + USB_SERIAL_EMPEG? USB_SERIAL_WHITEHEAT? USB_SERIAL_FTDI_SIO? + USB_SERIAL_KEYSPAN_PDA? + USB_SERIAL_KEYSPAN? { + USB_SERIAL_KEYSPAN_USA28 + USB_SERIAL_KEYSPAN_USA28X + USB_SERIAL_KEYSPAN_USA28XA + USB_SERIAL_KEYSPAN_USA28XB + USB_SERIAL_KEYSPAN_USA19 + USB_SERIAL_KEYSPAN_USA18X + USB_SERIAL_KEYSPAN_USA19W + USB_SERIAL_KEYSPAN_USA49W + } + USB_SERIAL_MCT_U232? USB_SERIAL_PL2303? USB_SERIAL_CYBERJACK? + USB_SERIAL_XIRCOM? + USB_SERIAL_OMNINET? USB_SERIAL_BELKIN? + USB_SERIAL_DEBUG + +# End diff -uNr linux.2.4.14.pristine/fs/nls/rules.cml linux/fs/nls/rules.cml --- linux.2.4.14.pristine/fs/nls/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/fs/nls/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,38 @@ +# National Language Support + +derive SMB_NLS from (SMB_FS != n) + +default NLS_DEFAULT from "iso8859-1" + +menu nls # National Language Support + NLS_DEFAULT$ + NLS_CODEPAGE_437? + NLS_CODEPAGE_737? + NLS_CODEPAGE_775? + NLS_CODEPAGE_850? + NLS_CODEPAGE_852? + NLS_CODEPAGE_855? + NLS_CODEPAGE_857? + NLS_CODEPAGE_860? + NLS_CODEPAGE_861? NLS_CODEPAGE_862? NLS_CODEPAGE_863? + NLS_CODEPAGE_864? NLS_CODEPAGE_865? NLS_CODEPAGE_866? + NLS_CODEPAGE_869? + NLS_CODEPAGE_936? + NLS_CODEPAGE_950? + NLS_CODEPAGE_932? + NLS_CODEPAGE_949? + NLS_CODEPAGE_874? + NLS_ISO8859_8? + NLS_CODEPAGE_1251? + NLS_ISO8859_1? NLS_ISO8859_2? NLS_ISO8859_3? NLS_ISO8859_4? + NLS_ISO8859_5? NLS_ISO8859_6? NLS_ISO8859_7? + NLS_ISO8859_9? + NLS_ISO8859_13? NLS_ISO8859_14? NLS_ISO8859_15? + NLS_KOI8_R? NLS_KOI8_U? + NLS_UTF8? + +derive NLS from JOLIET==y or FAT_FS!=n or NTFS_FS!=n + or NCPFS_NLS==y or SMB_FS==y +unless NLS!=n suppress nls + +# End diff -uNr linux.2.4.14.pristine/fs/partitions/rules.cml linux/fs/partitions/rules.cml --- linux.2.4.14.pristine/fs/partitions/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/fs/partitions/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,46 @@ +# File partition types + +unless EXPERIMENTAL suppress LDM_PARTITION + +# These defaults are what will take effect +# if the user doesn't select EXPERT +default OSF_PARTITION from ALPHA +default MSDOS_PARTITION from ALPHA or ATARI or MAC or SGI_IP22 or SGI_IP27 +default AMIGA_PARTITION from AMIGA or AFFS_FS +default MAC_PARTITION from MAC +default ACORN_PARTITION from ARCH_ACORN +default ACORN_PARTITION_ADFS from ARCH_ACORN +#default ACORN_PARTITION_CUMANA from ARCH_ACORN +default ACORN_PARTITION_ICS from ARCH_ACORN +default ACORN_PARTITION_POWERTEC from ARCH_ACORN +default ACORN_PARTITION_RISCIX from ARCH_ACORN +default ATARI_PARTITION from ATARI +default IBM_PARTITION from ARCH_S390 +default SGI_PARTITION from SGI_IP22 or SGI_IP27 +default ULTRIX_PARTITION from DECSTATION +default SUN_PARTITION from SPARC + +menu parttypes # Partition types + ACORN_PARTITION { +# ACORN_PARTITION_CUMANA + ACORN_PARTITION_ICS + ACORN_PARTITION_ADFS + ACORN_PARTITION_POWERTEC + ACORN_PARTITION_RISCIX + } + OSF_PARTITION + AMIGA_PARTITION + ATARI_PARTITION + IBM_PARTITION + MAC_PARTITION + MSDOS_PARTITION { + BSD_DISKLABEL MINIX_SUBPARTITION + SOLARIS_X86_PARTITION + UNIXWARE_DISKLABEL + } + LDM_PARTITION {LDM_DEBUG} + SGI_PARTITION + ULTRIX_PARTITION + SUN_PARTITION + +# End diff -uNr linux.2.4.14.pristine/fs/rules.cml linux/fs/rules.cml --- linux.2.4.14.pristine/fs/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/fs/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,77 @@ +# File system configuration + +unless EXPERIMENTAL suppress dependent + ADFS_FS HFS_FS BFS_FS EFS_FS + DEVFS_FS QNX4FS_FS AFFS_FS + NTFS_RW UDF_RW UFS_FS_WRITE INTERMEZZO_FS +unless DANGEROUS suppress ADFS_FS_RW NTFS_RW QNX4FS_RW UDF_RW UFS_FS_WRITE + +unless INET suppress CODA_FS NFS_FS SMB_FS NFSD +unless (IPX!=n or INET!=n) suppress NCP_FS +require ROOT_NFS <= IP_PNP +unless M68K suppress PROC_HARDWARE +unless PPC suppress PROC_DEVICETREE +unless SPARC suppress SUN_OPENPROMFS +unless NET suppress INTERMEZZO_FS + +default JFFS_FS_VERBOSE from 0 +default JFFS2_FS_DEBUG from 0 +default SMB_NLS_REMOTE from "cp437" + +# CONFIG_JBD could be its own option (even modular), but until there are +# other users than ext3, we will simply make it be the same as CONFIG_EXT3_FS +derive JBD from EXT3_FS + +menu ufs # Linux file system options + EXT2_FS! EXT3_FS! {JBD_DEBUG} + QUOTA AUTOFS_FS! AUTOFS4_FS! ROMFS_FS! + REISERFS_FS! {REISERFS_CHECK REISERFS_PROC_INFO} + PROC_FS {PROC_HARDWARE PROC_DEVICETREE SUN_OPENPROMFS?} + DEVFS_FS {DEVFS_MOUNT DEVFS_DEBUG} + DEVPTS_FS + ADFS_FS! {ADFS_FS_RW} + JFFS_FS! {JFFS_FS_VERBOSE% JFFS_PROC_FS} + JFFS2_FS! {JFFS2_FS_DEBUG%} + +menu lfs # Legacy Unix file systems + UFS_FS! {UFS_FS_WRITE} SYSV_FS! + BFS_FS! MINIX_FS! EFS_FS! VXFS_FS! + +menu nfs # Network file systems + CODA_FS? INTERMEZZO_FS NFS_FS! {NFS_V3 ROOT_NFS} NFSD! {NFSD_V3} + SMB_FS? {SMB_NLS_DEFAULT {SMB_NLS_REMOTE$}} + NCP_FS? {ncpfs} + +menu mfs # Microsoft file systems + FAT_FS? {VFAT_FS? MSDOS_FS? {UMSDOS_FS?}} NTFS_FS? {NTFS_RW} + +menu ofs # Other foreign file systems + ISO9660_FS! {JOLIET ZISOFS} + UDF_FS? {UDF_RW} AFFS_FS? HFS_FS? + CRAMFS? TMPFS RAMFS? HPFS_FS? QNX4FS_FS? {QNX4FS_RW} + +derive ZISOFS_FS from ZISOFS & ISO9660_FS +derive ZLIB_FS_INFLATE from CRAMFS | ZISOFS_FS + +menu ncpfs # NCP filesystem configuration + NCPFS_PACKET_SIGNING NCPFS_IOCTL_LOCKING + NCPFS_STRONG NCPFS_NFS_NS NCPFS_OS2_NS NCPFS_SMALLDOS + NCPFS_NLS NCPFS_EXTRAS + +unless EXPERT suppress parttypes + +menu fs # File Systems + ufs lfs nfs mfs ofs parttypes nls + +# Local rules +require ROOT_NFS <= NFS_FS +require DEVPTS_FS <= UNIX98_PTYS +unless NET suppress nfs +unless NCP_FS!=n suppress ncpfs + +# $ = if both y, y; if both m, m; if both n, n; otherwise n +derive SUNRPC from NFS_FS $ NFSD +derive LOCKD from NFS_FS $ NFSD +derive LOCKD_V4 from NFSD_V3 or NFS_V3 + +# End diff -uNr linux.2.4.14.pristine/net/ax25/rules.cml linux/net/ax25/rules.cml --- linux.2.4.14.pristine/net/ax25/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/ax25/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,15 @@ +# AX.25 configuration + +menu ax25 # AX.25 network device drivers + MKISS? CONFIG_6PACK? BPQETHER? DMASCC? + SOUNDMODEM? {soundmodem} + SCC? {SCC_DELAY SCC_TRXECHO} + BAYCOM_SER_FDX? BAYCOM_SER_HDX? BAYCOM_PAR? BAYCOM_EPP? YAM? + +menu soundmodem # Soundcard modem drivers + SOUNDMODEM_SBC SOUNDMODEM_WSS + SOUNDMODEM_AFSK1200 SOUNDMODEM_AFSK2400_7 SOUNDMODEM_AFSK2400_8 + SOUNDMODEM_AFSK2666 SOUNDMODEM_HAPN4800 SOUNDMODEM_PSK4800 + SOUNDMODEM_FSK9600 + +# End diff -uNr linux.2.4.14.pristine/net/bluetooth/rules.cml linux/net/bluetooth/rules.cml --- linux.2.4.14.pristine/net/bluetooth/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/bluetooth/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,6 @@ +# Bluetooth configuration + +menu bluetooth + BLUEZ_L2CAP? bluetooth_drivers + +# end diff -uNr linux.2.4.14.pristine/net/decnet/rules.cml linux/net/decnet/rules.cml --- linux.2.4.14.pristine/net/decnet/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/decnet/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,9 @@ +# DECNET configuration + +unless EXPERIMENTAL suppress dependent DECNET_ROUTER + +unless NETFILTER suppress DECNET_ROUTE_FWMARK +menu decnet # Decnet options + DECNET_SIOCGIFCONF DECNET_ROUTER {DECNET_ROUTE_FWMARK} + +# End diff -uNr linux.2.4.14.pristine/net/ipv4/rules.cml linux/net/ipv4/rules.cml --- linux.2.4.14.pristine/net/ipv4/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/ipv4/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,125 @@ +# IPV4 configuration + +# From net/ipv4/Config.in and net/ipv4/netfilter/Config.in + +private IP_ADVANCED_ROUTER + +# derive RTNETLINK from IP_ADVANCED_ROUTER +# derive NETLINK from IP_ADVANCED_ROUTER + +menu ipv4 # IP Version 4 configuration + IP_MULTICAST + IP_ADVANCED_ROUTER { + IP_MULTIPLE_TABLES IP_ROUTE_FWMARK IP_ROUTE_NAT + IP_ROUTE_MULTIPATH IP_ROUTE_TOS IP_ROUTE_VERBOSE + IP_ROUTE_LARGE_TABLES + } + IP_PNP {IP_PNP_DHCP IP_PNP_BOOTP IP_PNP_RARP} #IP_PNP_ARP + NET_IPIP? NET_IPGRE? NET_IPGRE_BROADCAST + IP_MROUTE {IP_PIMSM_V1 IP_PIMSM_V2} + ARPD INET_ECN SYN_COOKIES + ipv4_netfilter + +unless EXPERIMENTAL and RTNETLINK suppress ARPD +unless NETFILTER suppress IP_ROUTE_FWMARK +unless IP_MULTICAST suppress IP_MROUTE +unless IP_MULTICAST and NET_IPGRE!=n suppress NET_IPGRE_BROADCAST + +menu ipv4_netfilter # IP netfilter configuration + IP_NF_CONNTRACK? {IP_NF_FTP? IP_NF_IRC?} IP_NF_QUEUE? + IP_NF_IPTABLES? { + IP_NF_MATCH_LIMIT? IP_NF_MATCH_MAC? IP_NF_MATCH_MARK? + IP_NF_MATCH_MULTIPORT? IP_NF_MATCH_TOS? IP_NF_MATCH_LENGTH? + IP_NF_MATCH_TTL? IP_NF_MATCH_TCPMSS? IP_NF_MATCH_STATE? + IP_NF_MATCH_UNCLEAN? IP_NF_MATCH_OWNER? + IP_NF_FILTER? {IP_NF_TARGET_REJECT? IP_NF_TARGET_MIRROR?} + IP_NF_NAT? { + IP_NF_TARGET_MASQUERADE? IP_NF_TARGET_REDIRECT? + IP_NF_NAT_SNMP_BASIC? + } + IP_NF_MANGLE? { + IP_NF_TARGET_TOS? IP_NF_TARGET_MARK? + IP_NF_TARGET_LOG? IP_NF_TARGET_TCPMSS? + } + } + IP_NF_COMPAT_IPCHAINS? {IP_NF_COMPAT_IPFWADM?} + +derive IP_NF_NAT_IRC from IP_NF_NAT & IP_NF_IRC + +unless NETFILTER suppress ipv4_netfilter +unless EXPERIMENTAL suppress dependent + IP_NF_MATCH_UNCLEAN IP_NF_MATCH_OWNER IP_NF_TARGET_MIRROR +unless EXPERIMENTAL and NETLINK suppress IP_NF_QUEUE +unless IP_NF_CONNTRACK!=n suppress IP_NF_MATCH_STATE IP_NF_NAT + +# Harald Welte writes: +# +# Basically there are the following dependencies: +# +# 1. you compile connection tracking (IP_NF_CONNTRACK) as module +# a) iptables (IP_NF_IPTABLES) compiled as module +# - you can compile ANY or BOTH of ipchains +# (IP_NF_COMPAT_IPCHAINS), ipfwadm (IP_NF_COMPAT_IPFWADM) as +# module ONLY (not static) + +require IP_NF_CONNTRACK==m and IP_NF_IPTABLES==m + implies IP_NF_COMPAT_IPCHAINS <= m and IP_NF_COMPAT_IPFWADM <= m + +# b) iptables compiled static +# - NO possibility of compiling ipchains or ipfwadm at all, +# either as module or static + +require IP_NF_CONNTRACK==m and IP_NF_IPTABLES==y + implies IP_NF_COMPAT_IPCHAINS == n and IP_NF_COMPAT_IPFWADM == n + +# c) iptables NOT compiled at all +# - you can compile ONE OF ipchains, ipfwadm statically +# - you can compile BOTH of them as modules + +require IP_NF_CONNTRACK==m and IP_NF_IPTABLES==n + implies IP_NF_COMPAT_IPCHAINS != y or IP_NF_COMPAT_IPFWADM != y + +# 2. you compile connection tracking statically into the kernel +# - NO possibility of compiling ipchains or ipfwadm at all, +# either module or static +# - iptables can be compiled modular or static + +require IP_NF_CONNTRACK==y + implies IP_NF_COMPAT_IPCHAINS == n and IP_NF_COMPAT_IPFWADM == n + +# This is a direct translation of the CML1 constraint +require (IP_NF_COMPAT_IPCHAINS != y) or (IP_NF_CONNTRACK != y) + explanation ipchains_complaint + +# +# there's another interesting dependency, I'll describe the problem first: +# +# Netfilter has modules called connection tracking and nat helpers. For +# most protocols, they will appear in pairs (as opposed to only one module +# called ip_masq_XXX in 2.2.x). They are performing independent functionality, +# and you will never need the NAT helper on a non-nat box. +# +# 1. connection tracking (IP_NF_CONNTRACK) is on (M or Y) +# Full NAT (IP_NF_NAT) off +# - if IP_NF_FTP is OFF, none of ip_conntrack_ftp.c/ip_nat_ftp.c +# are compiled +# - if IP_NF_FTP is ON (M or Y), ip_conntrcak_ftp.c is compiled +# (as module or statically, as apropriate) +# 2. connection tracking is on (M or Y), Full NAT is on (M or Y) +# - if IP_NF_FTP is OFF, none of ip_conntrack_ftp.c/ip_nat_ftp.c +# are compiled +# - if IP_NF_FTP is ON (M or Y), both ip_conntrack_ftp.c AND +# ip_nat_ftp.c are compiled (module or static, as user wishes) +# +# I'm asking myself if we now should be proud of having the most complicated +# dependencies of the whole kernel ;) + +# Urrgghhh..is this expressed by the following constraint from CMl1? +# If they want FTP, set to $CONFIG_IP_NF_NAT (m or y), +# or $CONFIG_IP_NF_FTP (m or y), whichever is weaker. Argh. +derive IP_NF_NAT_FTP from IP_NF_FTP & IP_NF_NAT + +derive IP_NF_NAT_NEEDED from + (IP_NF_NAT!=n) or (IP_NF_COMPAT_IPCHAINS!=n) or (IP_NF_COMPAT_IPFWADM!=n) + +# End diff -uNr linux.2.4.14.pristine/net/ipv6/rules.cml linux/net/ipv6/rules.cml --- linux.2.4.14.pristine/net/ipv6/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/ipv6/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,25 @@ +# IPv6 configuration + +unless EXPERIMENTAL suppress IP6_NF_MATCH_OWNER + +unless IPV6!=n and NETLINK and RTNETLINK suppress IPV6_NETLINK +unless NETFILTER and IPV6!=n suppress ipv6_netfilter + +menu ipv6 # IPv6 options + IPV6_NETLINK # RT6_POLICY IPV6_FIREWALL + ipv6_netfilter + +menu ipv6_netfilter # IP netfilter configuration + #IP6_NF_CONNTRACK? {IP6_NF_FTP?} IP6_NF_QUEUE? + IP6_NF_IPTABLES? { + IP6_NF_MATCH_LIMIT? IP6_NF_MATCH_MAC? IP6_NF_MATCH_MULTIPORT? + IP6_NF_MATCH_MARK? IP6_NF_MATCH_OWNER? + IP6_NF_MATCH_TOS? #IP6_NF_MATCH_STATE? + # IP6_NF_MATCH_UNCLEAN? + IP6_NF_FILTER? # {IP6_NF_TARGET_REJECT? IP6_NF_TARGET_MIRROR?} + # IP6_NF_NAT? {IP6_NF_TARGET_MASQUERADE? IP6_NF_TARGET_REDIRECT?} + IP6_NF_MANGLE? {IP6_NF_TARGET_MARK?} + IP6_NF_TARGET_LOG? + } + +# End diff -uNr linux.2.4.14.pristine/net/irda/rules.cml linux/net/irda/rules.cml --- linux.2.4.14.pristine/net/irda/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/irda/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,16 @@ +# IRDA configuration + +# From net/irda/Config.in, net/irda/ircomm/Config.in, +# net/irda/irlan/Config.in, net/irda/compressors/Config.in + +#unless NETDEVICES!=n suppress IRNET +unless IRDA!=n suppress irda + +menu irda # IrDA (infrared) support + IRLAN? IRCOMM? IRDA_ULTRA + IRDA_OPTIONS {IRDA_CACHE_LAST_LSAP IRDA_FAST_RR IRDA_DEBUG} + #IRDA_COMPRESSION {IRDA_DEFLATE?} + IRNET? + irda_drivers + +# End diff -uNr linux.2.4.14.pristine/net/rules.cml linux/net/rules.cml --- linux.2.4.14.pristine/net/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,51 @@ +# Networking configuration + +# From net/Config.h, net/khttpd/Config.in, net/ipx/Config.in + +unless EXPERIMENTAL suppress dependent + IPX IPV6 KHTTPD ATM IPX X25 LAPB LLC NET_DIVERT WAN_ROUTER + NET_FASTROUTE NET_HW_FLOWCONTROL # NET_PROFILE + PPP_MULTILINK VLAN_8021Q + +unless ARCH_S390==n suppress PLIP SLIP PPP IRDA +unless PARPORT!=n suppress dependent PLIP +#unless LLC suppress NETBEUI +unless ARCH_ACORN suppress ECONET +unless INET suppress ATM_MPOA ECONET KHTTPD + +menu net # Networking options + NETLINK {RTNETLINK NETLINK_DEV?} + NETFILTER {NETFILTER_DEBUG} + INET {ipv4} + PPP? {ppp_options} + SLIP? {slip_options} + PLIP? + PACKET? {PACKET_MMAP} + IPV6? {ipv6} + FILTER UNIX? KHTTPD? + ATM {ATM_CLIP {ATM_CLIP_NO_ICMP} ATM_LANE? {ATM_MPOA?}} + IPX? {IPX_INTERN} # SPX? + DECNET? {decnet} + X25? LAPB? BRIDGE? LLC NET_DIVERT + ECONET? {ECONET_AUNUDP ECONET_NATIVE} + WAN_ROUTER? NET_FASTROUTE NET_HW_FLOWCONTROL VLAN_8021Q? + NET_SCHED {netsched} # NET_PROFILE + IRDA? {irda} + BLUEZ? {bluetooth} + NETDEVICES {net_drivers atm} + +# PPP + +unless FILTER suppress dependent PPP_FILTER + +menu ppp_options # PPP options + PPP_MULTILINK PPP_FILTER + PPP_ASYNC? PPP_SYNC_TTY? PPP_DEFLATE? PPP_BSDCOMP? + PPPOE? + +# SLIP + +menu slip_options # SLIP? options + SLIP_COMPRESSED SLIP_SMART SLIP_MODE_SLIP6 + +# End diff -uNr linux.2.4.14.pristine/net/sched/rules.cml linux/net/sched/rules.cml --- linux.2.4.14.pristine/net/sched/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/net/sched/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,26 @@ +# IP scheduling configuration + +private NET_QOS + +unless ATM suppress NET_SCH_ATM +unless NETFILTER suppress NET_SCH_INGRESS + +menu netsched # Traffic control configuration + NET_SCH_CBQ? NET_SCH_CSZ? # NET_SCH_HPFQ? NET_SCH_HFCS? + NET_SCH_ATM NET_SCH_PRIO? NET_SCH_RED? NET_SCH_SFQ? + NET_SCH_TEQL? NET_SCH_TBF? NET_SCH_GRED? + NET_SCH_DSMARK? NET_SCH_INGRESS? + NET_QOS { + NET_ESTIMATOR + NET_CLS { + NET_CLS_TCINDEX? NET_CLS_ROUTE4? NET_CLS_FW? + NET_CLS_U32? NET_CLS_RSVP? NET_CLS_RSVP6? NET_CLS_POLICE + } + } +unless NET_QOS suppress NET_CLS_RSVP NET_CLS_RSVP6 + +require NET_SCHED implies NETLINK==y and RTNETLINK==y + +derive NET_CLS_ROUTE from NET_CLS_ROUTE4!=n + +# End diff -uNr linux.2.4.14.pristine/rules.cml linux/rules.cml --- linux.2.4.14.pristine/rules.cml Wed Dec 31 19:00:00 1969 +++ linux/rules.cml Wed Nov 14 17:01:24 2001 @@ -0,0 +1,470 @@ +# Linux kernel configuration +# +prefix "CONFIG_" # Stripped at read time, prepended at save time + +# Configuration symbols and help texts. In 2.5 these will +# probably be distributed back out to the directories. +source "symbols.cml" + +start main # Start with the menu named 'main' +banner whoami # Use the `welcome' text to ID the configurator +condition trits on MODULES # Only recognize trits when MODULES is on +condition nohelp on EXPERT # Only make undocumented symbols visible when this is on +warndepend EXPERIMENTAL # Append (EXPERIMENTAL) to dependent queries +warndepend DANGEROUS +#warndepend OBSOLETE + +source "fs/rules.cml" +source "fs/nls/rules.cml" +source "fs/partitions/rules.cml" +source "net/ax25/rules.cml" +source "drivers/net/hamradio/rules.cml" +source "net/ipv4/rules.cml" +source "net/rules.cml" +source "net/decnet/rules.cml" +source "net/ipv6/rules.cml" +source "net/sched/rules.cml" +source "net/irda/rules.cml" +source "net/bluetooth/rules.cml" + +source "drivers/net/irda/rules.cml" +source "drivers/net/rules.cml" +source "drivers/net/fc/rules.cml" +source "drivers/net/wan/rules.cml" +source "drivers/net/tokenring/rules.cml" +source "drivers/net/arcnet/rules.cml" +source "drivers/net/pcmcia/rules.cml" +source "drivers/net/appletalk/rules.cml" +source "drivers/mtd/rules.cml" +source "drivers/block/rules.cml" +source "drivers/block/paride/rules.cml" +source "drivers/char/rules.cml" +source "drivers/hotplug/rules.cml" +source "drivers/i2c/rules.cml" +source "drivers/char/joystick/rules.cml" +source "drivers/char/ftape/rules.cml" +source "drivers/media/radio/rules.cml" +source "drivers/media/video/rules.cml" +source "drivers/char/pcmcia/rules.cml" +source "drivers/scsi/rules.cml" +source "drivers/message/fusion/rules.cml" +source "drivers/sound/rules.cml" +source "drivers/cdrom/rules.cml" +source "drivers/isdn/rules.cml" +source "drivers/sbus/rules.cml" +source "drivers/fc4/rules.cml" +source "drivers/usb/rules.cml" +source "drivers/usb/serial/rules.cml" +source "drivers/input/rules.cml" +source "drivers/atm/rules.cml" +source "drivers/parport/rules.cml" +source "drivers/pcmcia/rules.cml" +source "drivers/net/wireless/rules.cml" +source "drivers/telephony/rules.cml" +source "drivers/ieee1394/rules.cml" +source "drivers/acpi/rules.cml" +source "drivers/macintosh/rules.cml" +source "drivers/bluetooth/rules.cml" + +source "arch/i386/rules.cml" +source "arch/alpha/rules.cml" +source "arch/sparc/rules.cml" +source "arch/mips/rules.cml" +source "arch/ppc/rules.cml" +source "arch/m68k/rules.cml" +source "arch/arm/rules.cml" +source "arch/sh/rules.cml" +source "arch/ia64/rules.cml" +source "arch/parisc/rules.cml" +source "arch/s390/rules.cml" +source "arch/cris/rules.cml" + +default NVRAM from ATARI +unless X86 or ATARI suppress NVRAM + +default CMDLINE from "console=ttyS0,9600 console=tty0 root=/dev/sda2" + +unless ARCH_NETWINDER suppress DS1620 NWBUTTON NWBUTTON_REBOOT NWFLASH +unless ALL_PPC + or (ARCH_EBSA110 or ARCH_SA1100 or ARCH_PERSONAL_SERVER or ARCH_CATS) + or MIPS64 or ARCH_P720T or ARCH_CDB89712 or ARCH_CAMELOT or ARCH_ANAKIN + suppress CMDLINE +unless (MIPS and (DECSTATION or DDB5074)) or SUPERH suppress CPU_LITTLE_ENDIAN +unless MIPS suppress SGI_DS1286 # MIPS_FPU_EMULATOR + +unless M386 or M486 or CONFIG_4xx or CONFIG_8xx suppress MATH_EMULATION +unless S390X suppress S390_SUPPORT +unless SPARC64 and PCI suppress ENVCTRL DISPLAY7SEG +unless SPARC64 and SBUS suppress OBP_FLASH +unless EXPERIMENTAL and (ALPHA or IA64 or S390) suppress MATHEMU +unless ARM suppress FPE_NWFPE FPE_FASTFPE +unless APUS or ATARI or AMIGA or HP300 or SH_GENERIC or SH_STB1_OVERDRIVE or SH_SOLUTION_ENGINE suppress HEARTBEAT +unless ARCH_SA1100 or ARCH_EDB7211 or MIPS64 suppress DISCONTIGMEM +unless X86 and PCI suppress INTEL_RNG +unless ALL_PPC suppress PREP_RESIDUAL PPC_RTAS +unless PPC suppress PPC_RTAS GEN_RTC +unless CONFIG_4xx and APUS suppress PPC_RTC +unless ARCH_S390==n and APUS == n suppress RTC +unless MIPS or IA64_SGI_SN1 suppress NUMA +unless MIPS suppress MIPS_FPU_EMULATOR + +require X86 and M386==n and M486==n implies MATH_EMULATION==n +require ARCH_S390 implies RTC==n +require SPARC64 and PCI==y implies RTC==y + +menu archihacks # Architecture-specific hardware hacks + MATH_EMULATION + MATHEMU? + FPE_NWFPE? FPE_FASTFPE? + MIPS_FPU_EMULATOR + S390_SUPPORT + HEARTBEAT + PPC_RTAS PREP_RESIDUAL + CMDLINE$ + CPU_LITTLE_ENDIAN + DISCONTIGMEM {NUMA} + DS1620? + NWBUTTON? {NWBUTTON_REBOOT} NWFLASH? + NVRAM? + INTEL_RNG? + RTC? PPC_RTC? GEN_RTC + SGI_DS1286 + H8 + ENVCTRL? DISPLAY7SEG? + OBP_FLASH? + +# This was a query symbol with the text "EFI Real Time Clock Services" in CML1 +derive EFI_RTC from RTC!=n and EFI_VARS!=n + +default MATHEMU from EXPERIMENTAL and (ALPHA or IA64) + +# This is MIPS32 cruft from CML1 +default CPU_LITTLE_ENDIAN from DECSTATION or DDB5074 or DDB5477 or NINO +derive BINFMT_IRIX from (CPU_LITTLE_ENDIAN and MIPS32) +#derive FORWARD_KEYBOARD from CPU_LITTLE_ENDIAN + +# Choice of architecture and cross-architecture dependencies + +private SPARC + +choices arch # Processor architecture + X86 + ALPHA + SPARC32 + SPARC64 + MIPS32 + MIPS64 + PPC + M68K + ARM + SUPERH + IA64 + PARISC + S390 + S390X + CRIS + default X86 + +derive SPARC from SPARC32 or SPARC64 +derive MIPS from MIPS32 or MIPS64 +derive PPC32 from PPC +derive UID16 from X86 or ALPHA or SPARC32 or PPC or M68K or SUPERH or S390 +derive BINFMT_ELF32 from SPARC32_COMPAT and MIPS32_COMPAT!=n +derive ARCH_S390 from S390 or S390X +derive ARCH_S390X from S390X +derive RWSEM_GENERIC_SPINLOCK from CRIS or M68K or IA64 or MIPS + or PARISC or PPC or ARCH_S390 or SUPERH or SPARC32 +derive CONFIG_RWSEM_XCHGADD_ALGORITHM from (X86 and M386==n) + or ALPHA or SPARC64 or ARM + +# System bus configuration + +#unless OBSOLETE suppress CD_NO_IDESCSI MCA +unless X86 suppress MCA EISA +unless MIPS32 suppress TC +unless (PCI and (X86 or SUPERH)) suppress pci_access +unless (ISA or PCI) suppress IDE +unless PCI suppress USB HOTPLUG_PCI +unless (X86 or ALPHA or MIPS32 or PPC) suppress usb +unless (X86 and PCI and EXPERIMENTAL) or PPC or ARM or SPARC suppress IEEE1394 +unless (M68K or ALL_PPC) suppress MACINTOSH_DRIVERS +unless SPARC suppress FC4 +unless ARCH_S390==n suppress buses + +private CD_NO_IDESCSI + +menu buses # Select system buses and controller types + ISA {EISA} + PCI {PCI_NAMES pci_access} + PNP? {ISAPNP?} + MCA + TC + PARPORT? + HOTPLUG {PCMCIA? pcmcia HOTPLUG_PCI? {hotplug_pci}} + IDE? + SCSI! + CD_NO_IDESCSI + USB! + IEEE1394? + MACINTOSH_DRIVERS + I2O! + MTD! + FC4! + WATCHDOG + +unless ISA suppress dependent ISAPNP + +choices pci_access # PCI access mode + PCI_GOBIOS PCI_GODIRECT PCI_GOANY + default PCI_GOANY + +unless (TC or (MIPS32==n)) suppress PARPORT +derive PCI_BIOS from PCI_GOBIOS or PCI_GOANY +derive PCI_DIRECT from PCI_GODIRECT or PCI_GOANY + +# Feature selections independent across all ports + +unless EXPERIMENTAL or ARCH_S390 suppress kcore + +default BINFMT_ELF from y + +unless PPC and SMP suppress IRQ_ALL_CPUS + +menu generic + MODULES? {KMOD} #{MODVERSIONS KMOD} + NET SYSVIPC BSD_PROCESS_ACCT SYSCTL + kcore + BINFMT_SOM? BINFMT_AOUT? BINFMT_ELF? BINFMT_MISC? + SMP {IRQ_ALL_CPUS} + +require SMP implies (X86 or PPC or ALPHA_SABLE or ALPHA_RAWHIDE + or ALPHA_DP264 or ALPHA_WILDFIRE or ALPHA_TITAN + or ALPHA_GENERIC or SPARC32 or MIPS64 or ARCH_S390) + +unless PARISC suppress BINFMT_SOM +unless X86 or ALPHA or SPARC suppress kcore BINFMT_AOUT BINFMT_ELF +unless X86 or ALPHA or SPARC or ARCH_S390 suppress BINFMT_ELF +unless (ARM==n) or (ARCH_ACORN or PCI) suppress SOUND +unless ARCH_S390==n suppress SOUND +require BINFMT_AOUT!=n or BINFMT_ELF!=n + +choices kcore + KCORE_ELF KCORE_AOUT + default KCORE_ELF + +# Policy options + +private EXPERT WIZARD DANGEROUS #TUNING + +menu policy # Build policy options + EXPERIMENTAL {EXPERT {WIZARD {DANGEROUS}} #TUNING + +# Application support + +unless ISA or PCI suppress telephony + +private HAMRADIO + +menu applications + SOUND? {sound} + telephony + HAMRADIO {hamradio} + +# Kernel hacking + +#default KDB_STBSIZE from 10000 +#default PROFILE_SHIFT from 2 + +unless SERIAL!=n or (ARCH_S390 and CTC==y) suppress REMOTE_DEBUG + +menu kernelhacking # Kernel-hacking options + KGDB + XMON + REMOTE_DEBUG {GDB_CONSOLE} MIPS_UNCACHED + LL_DEBUG + NO_FRAME_POINTER + DEBUG_KERNEL { + MAGIC_SYSRQ + DEBUG_ERRORS DEBUG_USER DEBUG_INFO DEBUG_SLAB DEBUG_SPINLOCK + DEBUG_HIGHMEM DEBUG_IOVIRT DEBUG_BUGVERBOSE + } + NO_PGT_CACHE + DEBUG_LL + DEBUG_DC21285_PORT DEBUG_CLPS711X_UART2 + DEBUG_KERNEL_WITH_GDB_STUB + IA64_EARLY_PRINTK IA64_DEBUG_CMPXCHG IA64_DEBUG_IRQ IA64_PRINT_HAZARDS DISABLE_VHPT + #KDB {KDB_FRAMEPTR KDB_STBSIZE%} + IA32_SUPPORT? + #PROFILE {PROFILE_SHIFT%} + +unless CRIS or PPC suppress KGDB +unless PPC suppress XMON +unless MIPS suppress REMOTE_DEBUG LL_DEBUG MIPS_UNCACHED +unless SMP==n suppress MIPS_UNCACHED +unless ARM suppress NO_FRAME_POINTER DEBUG_ERRORS DEBUG_USER DEBUG_INFO +unless ARM and CPU_26 suppress NO_PGT_CACHE +# These options are only for real kernel hackers +# who want to get their hands dirty. +unless EXPERIMENTAL and ARM suppress DEBUG_LL +unless DEBUG_LL and FOOTBRIDGE suppress DEBUG_DC21285_PORT +unless DEBUG_LL and ARCH_CLPS711X suppress DEBUG_CLPS711X_UART2 +unless (SUPERH and SH_STANDARD_BIOS) suppress DEBUG_KERNEL_WITH_GDB_STUB +unless X86 suppress DEBUG_HIGHMEM DEBUG_IOVIRT DEBUG_BUGVERBOSE +unless IA64 suppress + IA64_EARLY_PRINTK IA64_DEBUG_CMPXCHG IA64_DEBUG_IRQ IA64_PRINT_HAZARDS + IA32_SUPPORT DISABLE_VHPT # KDB + +# Tie architecture-dependent derivations together here + +derive HAVE_DEC_LOCK from (SMP and (ALPHA or X86_CMPXCHG)) or SPARC +derive HIGHMEM from HIGHMEM64G or SPARC +derive MAC_HID from (ALL_PPC and INPUT!=n) or (MAC and INPUT_ADBHID) +derive PC_KEYB from ARM_PC_KEYB or MIPS_PC_KEYB + +# These are either fossils or things 2.4.14 has not filled in yet. +#derive GENERIC_BUST_SPINLOCK from n +#derive GENERIC_ISA_DMA from n + +# Main menu + +unless EXPERIMENTAL suppress dependent MDA_CONSOLE video + +menu main # Configure a Linux kernel + arch + policy + generic + # Per-processor options (selected in arch) + x86 + alpha + sparc + mips + ppc + m68k + arm + superh + ia64 + parisc + s390 + cris + # Buses and controller types + buses + parport + #pcmcia + scsi + nativecdrom + fc4 + usb + ieee1394 + macintosh_drivers + i2o + # Device classes + pm + archihacks + mtd + block_devices + net + applications + cdevs + fs + watchdog + kernelhacking + +default HEARTBEAT from HP300 # Has a dedicated heartbeat LED + +# Some of these may be more restrictive than needed; they are a straight +# translation of the CML1 code (except SGI turns into MIPS) +unless X86 suppress x86 +unless ALPHA suppress alpha +unless SPARC suppress sparc +unless MIPS suppress mips +unless PPC suppress ppc +unless M68K suppress m68k +unless ARM suppress arm +unless SUPERH suppress superh +unless IA64 suppress ia64 +unless PARISC suppress parisc +unless ARCH_S390 suppress s390 +unless CRIS suppress cris +unless ARCH_S390==n suppress parport +# Always query block_devices +unless SCSI!=n suppress dependent scsi +unless CD_NO_IDESCSI suppress dependent nativecdrom +unless I2O!=n suppress dependent i2o +unless X86 or IA64 or (ARM and EXPERIMENTAL) suppress pm +unless MTD!=n suppress mtd +unless ARCH_S390==n suppress applications +unless IEEE1394!=n suppress dependent ieee1394 +unless X86 or ARM or (MIPS and DECSTATION==n and SGI_IP22==n) suppress i2o +unless (MIPS==n) and (DECSTATION==n) and (BAGET_MIPS==n) suppress HAMRADIO +unless X86 or ALPHA or (MIPS and DECSTATION and BAGET_MIPS) or PPC suppress + nativecdrom +unless FC4!=n suppress dependent fc4 +unless USB!=n suppress dependent usb +unless WATCHDOG suppress dependent watchdog +# Always query for fs +unless WIZARD suppress kernelhacking + +# These symbols are here only to reduce the size of the CML1 diff report. +# +# Support for the Visual Workstation has been deprecated by the author; +# this is some debris from that. +derive FB_SGIVW from n +derive SOUND_VWSND from n +derive X86_VISWS_APIC from n +derive BUS_I2C from n +# These are symbols that CML1 used internally but which didn't affect C code. +# When CML2 cutover happens, they should be nuked unless they've actually +# grown a reference in C code or a makefile. +derive CMDLINE_BOOL from n +derive CPU_ADVANCED from EXPERT +derive DRM_AGP from DRM and AGP!=n +derive FB_PCI from FB and PCI +derive NET_ISA from NET_ETHERNET and ISA +derive NET_PCI from NET_ETHERNET and (EISA or PCI) +derive PARTITION_ADVANCED from EXPERT +# MODVERSIONS will not be supported in kbuild 2.5 until KAO releases a version +# of modutils that handles the new symbol format. +derive MODVERSIONS from n + +# Icon for the linux-kernel rulesystem (base64 encoding of a penguin image) +icon +R0lGODlhMQAVAPcEAAEBAgICAwEAAAAABAICBAQDBAQEBAYGBAUFBwUFAQcHCAAADQcICAkJBA0N +BAoKCQwMDQICFg4OEA8PGhMTBBAQBBUVBBcXBBgXBBsbBRkZBB4eAx4eBBERERISEhMTFBcTExYW +FhcXGRQVGBQVHRcYGhkaFhsbGxwcHRERJxwbIh8fIhsbLB0fLh4gIiMjBSEhBCcnAiUlBCUlDioq +BC0tBC4uAiQhGyIiHC4nHC8rHToqBTAmFjExBDU1BDc3BDk5BDo6BD88AD4+BDg4HSEhIScnJyYm +JCYnKSkqJygpKyssKiwsLSkqMTApIDAuKzAwJTMyLjg1LTExNzY2NFs/AEg4F0FBBERDBEVFBEZG +BkJCAkpKBExMBE5OCUtLEFdBDFBAGFBPE1NTBFFRBFRUBFJSDVlWAlpaBV1dBV1bBVxbCVRUHE9P +IVVNKVdXNWlNAmRcAWZdDW9UGG1YFHFSAHZdAWJiBGdnBGtgBWtrBG5qBW1tBG9vFHFhF3JyBXNz +Anp6BHx8BHR2HXZoBmNjJWRkInZkNHFxI39xNlJTWXd3SXt8Q39/foZkBoxuA4hwA5JrBZB0Bpx6 +B4KCBIaGBIyFAoqKBI+PBIiIAImJCoaGFY2HF4mJFpGRBJaXBJGRApyTAZubBJ2dA5SUEIKCLqOj +BKWlBKmpBKyrBK6uBKyjC6ioFLauBrGxBLe3BLW1ALq6BL2+BLy5A7u7Jb+8OICAY4qKfK6uTcHB +BMXGA8bFBMTFDMrKBM3NBM7OAMrJDcbGEcnIGc/SAtfLBNLSBNLUA9bWBNTUAN7eBNnaD9XWENrW +ENvbENjVJd3dLN/gJOPiA+PjBOHhBOXlBObmCOrqBO3tBO7uBunpA/DwBfb2Avf3BPX1BPv6Afv7 +Bfj4BP//AP//A/39BP//BP//BufnN8jJTdjYQ9jYRcfHVpGRkJ+flJeXopSUqJiYpZycq56gkaqq +gKGhmqOjpaSkpKGhqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAKAPcAIf4OTWFkZSB3 +aXRoIEdJTVAALAAAAAAxABUAAAj+AAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC +BAgQIEAgQIAAAQIQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ +IEAggIEPJzoYCECAAAECBAgQIECAAAECBAgQIECAAAECBAwQIECAAAECBAgQIECAAAECBAgQIEAg +gIIiR4ocKWKAAAECBAgQIECAAAECBAgQIECAAAECBAgQaGCAAAECBAgQIECAAAECBAgQIECAQIAT +IwIEeIACRQACBAgQIECAAAECBDjA0MABhgECBAwQyGJtFAECBAgQIECAAAECBAj+ECBAgAABAkcg +BHjQgcARBQEIECBAgAABAgQImLIG7losgBYIEDBAoBI5aRwIECBAgAABAgQIECBAgAABAgQMHFHS +ZIoiBkcgBCBAgAABAgQIECBgQBa5WGSuECBggECFT5iyEDBAgIABAwQIECBgwIABAgQIEEhyg44f +NxCQhAhgwAABAgQIECBAgIAvcqdqOCBAgAABAjS4VCBAoEEFAgQqNCBAgAABAgQMEAjQgscjSXMe +QFERgAABAgQIECBAgICFa+QuOSBggACWU72SWSAQ6JS1QDRyadtVgQCQSqhyWQjwgJWyRIdqLdNW +aAEHWbswECBAwAABIOS48TH+QMAAgR+uyFm70iAQNXLFUKECR44PASCuyEn7QYAIuG2M4p1rJi7Y +Cl3UyKEhQICAAQJ3yEkjQ4AAAQME0pArloUAQAfFyL0CAqQYuU8NCOgh52tLBEPkkCGy16gUuWy8 +NJE5pccAAQIGCHgi1wsIAQMEDBCgRO4VDQIctJH706PBMXKBHBDARM5VjBSbxM1aRG/eu2figImx +oeEHAQIEDBCQRc6VDAIECBgg8IqcKA0ErpCzloaADHLX0hggEIscqBksTpEbZaseO3fqxO368oAA +AQIECBCoII3cJw0EZPiSQUAaOUoVCPAhdywLATLkimUh0EAaOUA4Jvwil+n+Frx286Bt29ZGQgIC +BAgYIFCDHDc8BgjoIXeFBjluaAgQEEVOVg8Cl8i54kCABjluaaZw8ratzzp08syt4iWuU4QABAgY +IGDhFDluqgT9SXaNCxBy5HJVsuCLnCkOBFCRo+YJoAwL3MRVY0aMnDhh6cSRcyYnlLhrpLIQMGCA +QA1Ur3btiiXrVaohBEYdy/WnxqVdlCoQ+NHLl6gfBPhE02UpzyxjsnDRgjWIUKRWw3atMUCAAAEC +HLpwyXLlyhUyMghUINNlCIwGXLg0IECgR5krPwwQ8KImDqRHe86weZNFiKNJdtaYyWKBAAECBAwQ +IECAAAECBAgQIEDAAAGVAgYIECBAwAABAwQIEAjQQYcVMHDq7CBxYgSIKnDCSDFhgAABAgQIECBA +gAABAgQIECBAgAABAgQIECBAgAABAgQIGCBAwIAEF0yi5Hgy5cgSKjmcIIEQgAABAgQIECBAgAAB +AgQIECBAgAABAgQIECBAgAABAgQIECBAgACBAAEMdCgBsEOBAAEejAjRgAABAgQIBAQAOw== +# +# The following sets edit modes for GNU EMACS +# Local Variables: +# compile-command:"scripts/cmlcompile.py rules.cml" +# End: diff -uNr linux.2.4.14.pristine/scripts/cml.py linux/scripts/cml.py --- linux.2.4.14.pristine/scripts/cml.py Wed Dec 31 19:00:00 1969 +++ linux/scripts/cml.py Wed Nov 14 17:01:24 2001 @@ -0,0 +1,323 @@ +""" +cml.py -- types for communication between CML2 compiler and configurators. +""" +import string, sys, os, time + +version="1.8.6" + +class trit: + "A boolean or trit value" + type = "trit" + def __init__(self, value): + if isinstance(value, trit): + value = value.value + self.value = value + def __repr__(self): + return "nmy"[self.value] + def __nonzero__(self): + return self.value + def __hash__(self): + return self.value # This magic needed to make trits valid dictionary keys + def __long__(self): + return self.value != 0 + def __cmp__(self, other): + if not isinstance(other, trit): + return -1 # None < any trit + elif isinstance(other, trit): + diff = self.value - other.value + if diff == 0: + return 0 + else: + return diff / abs(diff) + else: + return None + def __and__(self, other): + return trit(min(self.value, other.value)) + def __or__(self, other): + return trit(max(self.value, other.value)) + +# Trit value constants +y = trit(2) +m = trit(1) +n = trit(0) + +# This describes a configuration symbol... + +class ConfigSymbol: + "Compiled information about a menu or configuration symbol" + def __init__(self, name, type, default=None, prompt=None, file=None, lineno=None): + # Name, location, type, default. + self.name = name + self.file = file # Definition location source file + self.lineno = lineno # Definition location source line + self.type = type # Type of symbol + self.range = None # Range tuple + self.enum = None + self.discrete = None + self.helptext = None # Help reference + self.default = default # Value to use if none has been set. + self.vital = 0 # Force visibility + # Hierarchy location + self.ancestors = [] # Ancestors of symbol (as set up by {}) + self.dependents = [] # Dependents of symbol (as set up by {}) + self.menu = None # Unique parent menu of this symbol + self.depth = 0 # Nesting depth in its subtree + # Auxiliary information + self.prompt = prompt # Associated question string + self.visibility = None # List of explicit visibility rules for symbol + self.items = [] # Menus only -- associated symbols + self.private = 0 # Suppress emission in the config file? + + # Compute the value of a symbol + def eval(self, debug=0): + "Value of symbol; passes back None if the symbol is unset." + if self.default is not None: + result = evaluate(self.default, debug) + if result and self.type =="bool": + result = y + if debug > 3: + sys.stderr.write("...eval(%s)->%s (through default %s)\n" % \ + (`self`, result, self.default)) + return result + else: + if debug > 2: + sys.stderr.write("...eval(%s)->None (default empty)\n" % \ + (`self`)) + return None + + # Access to help. + # + # This is the only place in the front end that knows about the CML1 + # helpfile conventions. + def help(self): + "Is there help for the given symbol?" + if self.helptext: + return self.helptext + # Next five lines implement the CML1 convention for choices help; + # attach it to the first alternative. But they check for help + # attached to the symbol itself first. + if self.menu and self.menu.type == "choices": + self = self.menu + if self.type == "choices" and not self.helptext: + self = self.items[0] + return self.helptext + + # Predicates + def is_derived(self): + "Is this a derived symbol?" + return self.prompt is None + def is_logical(self): + "Is this a logical symbol?" + return self.type in ("bool", "trit") + def is_numeric(self): + "Is this a numeric symbol?" + return self.type in ("decimal", "hexadecimal") + def is_symbol(self): + "Is this a real symbol? (not a menu, not a choices, not a message)" + return self.type in ("bool","trit", "decimal","hexadecimal", "string") + + def __repr__(self): + # So the right thing happens when we print symbols in expressions + return self.name + def dump(self): + res = "'%s', type %s," % (self.prompt, self.type) + if self.range: + res = res + " range %s," % (self.range,) + if self.menu: + res = res + " in %s," % (self.menu.name,) + if self.ancestors: + res = res + " under %s," % (self.ancestors,) + if self.dependents: + res = res + " over %s," % (self.dependents,) + if self.visibility is not None: + res = res + " visibility %s," % (display_expression(self.visibility),) + if self.default is not None: + res = res + " default %s," % (`self.default`,) + if self.items: + res = res + " items %s," % (self.items,) + if self.private: + res = res + " private," + return res + def __str__(self): + # Note that requirements are not shown + res = "%s={" % (self.name) + res = res + self.dump() + return res[:-1] + "}" + +class Requirement: + "A requirement, together with a message to be shown if it's violated." + def __init__(self, wff, message, file, line): + self.predicate = wff + self.message = message + self.file = file + self.line = line + + def str(self): + return display_expression(self.predicate)[1:-1] + + def __repr__(self): + if self.message: + return self.message + else: + return display_expression(self.predicate) + +# This describes an entire configuration. + +class CMLRulebase: + "A dictionary of ConfigSymbols and a set of constraints." + def __init__(self, start="", dict={}, requirements=[], prefix="", banner="", icon=None): + self.version = version + self.start = start # Start menu name + self.dictionary = dict # Configuration symbols + self.prefix = prefix # Prepend this to all symbols + self.banner = banner # ID the configuration domain + self.constraints = requirements # All requirements + self.icon = icon # Icon for this rulebase + self.trit_tie = None # Are trits enabled? + self.help_tie = None # Help required for visibility? + def __repr__(self): + res = "Start menu = %s\n" % (self.start,) + for k in self.dictionary.keys(): + res = res + str(self.dictionary[k]) + "\n" + if self.prefix: + res = res + "Prefix:" + `self.prefix` + if self.banner: + res = res + "Banner:" + `self.banner` + return res + def optimize_constraint_access(self): + "Assign constraints to their associated symbols." + for entry in self.dictionary.values(): + entry.constraints = [] + for requirement in self.reduced: + for symbol in flatten_expr(requirement): + if not requirement in symbol.constraints: + symbol.constraints.append(requirement) + +# These functions are used by both interpreter and compiler + +def evaluate(exp, debug=0): + "Compute current value of an expression." + if debug > 2: + sys.stderr.write("evaluate(%s) begins...\n" % (`exp`,)) + if type(exp) is type(()): + # Ternary operator + if exp[0] == '?': + guard = evaluate(exp[1], debug) + if guard: + return evaluate(exp[2], debug) + else: + return evaluate(exp[3], debug) + # Logical operations -- always trit-valued + elif exp[0] == 'not': + return trit(not evaluate(exp[1], debug)) + elif exp[0] == 'or': + return trit(evaluate(exp[1], debug) or evaluate(exp[2], debug)) + elif exp[0] == 'and': + return trit(evaluate(exp[1], debug) and evaluate(exp[2], debug)) + elif exp[0] == 'implies': + return trit(not ((evaluate(exp[1], debug) and not evaluate(exp[2], debug)))) + elif exp[0] == '==': + return trit(evaluate(exp[1], debug) == evaluate(exp[2], debug)) + elif exp[0] == '!=': + return trit(evaluate(exp[1], debug) != evaluate(exp[2], debug)) + elif exp[0] == '<=': + return trit(evaluate(exp[1], debug) <= evaluate(exp[2], debug)) + elif exp[0] == '>=': + return trit(evaluate(exp[1], debug) >= evaluate(exp[2], debug)) + # Arithmetic operations -- sometimes trit-valued + elif exp[0] == '|': + return evaluate(exp[1], debug) | evaluate(exp[2], debug) + elif exp[0] == '&': + return evaluate(exp[1], debug) & evaluate(exp[2], debug) + elif exp[0] == '$': + left = evaluate(exp[1]) + right = evaluate(exp[2]) + if left != right: + return n + else: + return left + elif exp[0] == '+': + return long(evaluate(exp[1],debug)) + long(evaluate(exp[2],debug)) + elif exp[0] == '-': + return long(evaluate(exp[1],debug)) - long(evaluate(exp[2],debug)) + elif exp[0] == '*': + return long(evaluate(exp[1],debug)) * long(evaluate(exp[2],debug)) + else: + raise SyntaxError, "Unknown operation %s in expression" % (exp[0],) + elif isinstance(exp, trit) or type(exp) in (type(""), type(0), type(0L)): + if debug > 2: + sys.stderr.write("...evaluate(%s) returns itself\n" % (`exp`,)) + return exp + elif isinstance(exp, ConfigSymbol): + result = exp.eval(debug) + if result: + return result + else: + return n + else: + raise ValueError,"unknown object %s %s in expression" % (exp,type(exp)) + +def flatten_expr(node): + "Flatten an expression -- skips the operators" + if type(node) is type(()) or type(node) is type([]): + sublists = map(flatten_expr, node) + flattened = [] + for m in sublists: + flattened = flattened + m + return flattened + elif isinstance(node, ConfigSymbol): + if node.is_derived(): + return flatten_expr(node.default) + else: + return [node] + else: + return [] + +def display_expression(exp): + "Display an expression in canonicalized infix form." + if type(exp) is type(()): + if exp[0] == "not": + return "not " + display_expression(exp[1]) + elif exp[0] == '?': + return "(%s ? %s : %s)" % (display_expression(exp[1]), display_expression(exp[2]), display_expression(exp[3])) + else: + return "(%s %s %s)" % (display_expression(exp[1]), exp[0], display_expression(exp[2])) + elif isinstance(exp, ConfigSymbol): + return exp.name + else: + return `exp` + +class Baton: + "Ship progress indication to stdout." + def __init__(self, prompt, endmsg=None): + sys.stdout.write(prompt + "... \010") + sys.stdout.flush() + self.count = 0 + self.endmsg = endmsg + self.time = time.time() + return + + def twirl(self, ch=None): + if not os.isatty(1): + return + if ch: + sys.stdout.write(ch) + else: + sys.stdout.write("-/|\\"[self.count % 4]) + sys.stdout.write("\010") + self.count = self.count + 1 + sys.stdout.flush() + return + + def announce(self, msg): + if self.count: + sys.stdout.write('\n') + sys.stdout.flush() + + def end(self, msg=None): + if msg == None: + msg = self.endmsg + sys.stdout.write("...(%2.2f sec) %s.\n" % (time.time() - self.time, msg)) + return + +# cml.py ends here. diff -uNr linux.2.4.14.pristine/scripts/cmladvent.py linux/scripts/cmladvent.py --- linux.2.4.14.pristine/scripts/cmladvent.py Wed Dec 31 19:00:00 1969 +++ linux/scripts/cmladvent.py Wed Nov 14 17:01:24 2001 @@ -0,0 +1,851 @@ +#!/usr/bin/env python +# +# cmladvent.py -- CML2 configurator adventure-game front end +# by Eric S. Raymond, +# +# This illustrates how easy it is to wrap a front end around cmlsystem. +# Purely in the interests of science, of course... +# +import sys + +if sys.version[0] < '2': + print "Python 2.0 or later is required for this program." + sys.exit(0) + +import os, string, getopt, cmd, re, time, whrandom, random +import cml, cmlsystem + +# Globals +debug = inclusions = 0 +proflog = partialsave = None +banner = "" +gruestate = darkturns = 0 +lanternloc = None + +directions = ('n','e','s','w','ne','sw','se','nw','dn','up') + +# User-visible strings in the configurator. Separated out in order to +# support internationalization. +_eng = { + # Strings used in the command help -- these should align + "LHELP":"look [target] -- look here or at target (direction or option).", + "NHELP":"nearby -- list nearby rooms (useful with go)", + "GHELP":"go -- go to a named menu (follow with the label).", + "IHELP":"inventory -- show which options you have picked up.", + "THELP":"take [module] -- set options, follow with option names.", + "SETHELP":"set -- set numeric or string; follow with symbol and value.", + "DHELP":"drop -- unset options, follow with option names or `all'.", + "LDHELP":"load -- read in a configuration (follow with the filename).", + "SHELP":"save -- save the configuration (follow with a filename).", + "XYZZY":"xyzzy -- toggle suppression flag.", + "QHELP":"quit -- quit, discarding changes.", + "XHELP":"exit -- exit, saving the configuration.", + # Grue/lantern messages + "BRASSOFF":"A brass lantern (unlit).", + "BRASSON":"A brass lantern (lit).", + "DARK":"It is very dark. If you continue, you are likely to be eaten by a grue.", + "EATEN":"*CHOMP*! You have been eaten by a slavering grue. Game over.", + "GLOW":"The lantern radiates a mellow golden light.", + "LANTERN":"lantern", + "LANTERNDROP":"Lantern: dropped.", + "LANTERNTAKE":"Lantern: taken.", + "LONGLANTERN":"A brass lantern is here.", + "LANTERNHELP":""" +You see a brass lantern with a ring-shaped handle, hooded and paned with +clear glass. A toggle on the lamp connects to a firestriker inside it. +On the bottom is stamped a maker's mark that reads: + + Another fine product of FrobozzCo. + Made in Plumbat, Great Underground Empire +""", + # Other strings + "ABORTED":"Configurator aborted.", + "BADOPTION":"cmladvent: unknown option on command line.\n", + "BOOLEAN":"`y' and `n' can only be applied to booleans or tristates", + "CANNOTSET":" Can't assign this value for bool or trit symbol.", + "CONSTRAINTS":"Constraints:", + "DEFAULT":"Default: ", + "DERIVED":"Symbol %s is derived and cannot be set.", + "DIRHELP":"You can move in compass directions n,e,w,s,ne,nw,se,sw, up, or dn for down.", + "DONE":"Done", + "DROPPED":"%s: dropped.", + "EH?":"Eh?", + "EXIT":"Exit", + "EXITS":"Passages exit up, %s.", + "EXTRAROOMS":"Other nearby rooms are: %s.", + "GOODBYE":"You emerge, blinking, into the daylight.", + "INROOM":"In %s room.", + "INVISIBLE":"Symbol is invisible", + "ISHERE":"There is an option named %s here.", + "LOADFAIL":"Loading '%s' failed, continuing...", + "MDISABLED":"Module-valued symbols are not enabled", + "MNOTVALID":" m is not a valid value for %s", + "NEW":"(NEW)", + "NNOTVALID":" n is not a valid value for %s", + "NOANCEST":"No ancestors.", + "NOBUTTON":"I don't see button %s here.", + "NOCMDLINE":"%s is the wrong type to be set from the command line", + "NODEPS":"No dependents.", + "NODIR":"You see nothing special in that direction.", + "NOFILE":"cmlconfigure: '%s' does not exist or is unreadable.", + "NOHAVE":"You don't have %s.", + "NOHELP":"No help available for %s", + "NOHERE":"I see no `%s' here.", + "NOMATCHES":"No matches.", + "NONEXIST":"No such location.", + "NOSUCHAS":"No such thing as", + "NOTSAVED":"Configuration not saved", + "NOWAY":"You can't go in that direction from here.", + "OUTOFBOUNDS":"Legal values are in %s", + "PARAMS":" Config = %s, prefix = %s", + "PASSAGEALL":"Passages lead off in all directions.", + "PASSAGEUP":"A passage leads upwards.", + "PHELP":"press -- press a button (follow with the button name).", + "POSTMORTEM":"The ruleset was inconsistent. A state dump is in the file `post.mortem'.", + "REALLY":"Really exit without saving?", + "ROLLBACK":"%s=%s would have violated these requirements:", + "ROOMBANNER":"The %s room. A sign reads `%s'.", + "SAVEAS":"Save As...", + "SAVEEND":"Done", + "SAVESTART":"Saving %s", + "SAVING":"Saving...", + "SHOW_ANC":"Show ancestors of symbol: ", + "SHOW_DEP":"Show dependents of symbol: ", + "SIDEEFFECTS":"Side Effects", + "SIDEFROM":"Side effects from %s:", + "SUPPRESSOFF":"Suppression turned off.", + "SUPPRESSON":"Suppression turned on.", + "SYMUNKNOWN":"cmlconfigure: unknown symbol %s\n", + "TAKEN":"%s: taken.", + "TRIT":"`m' can only be applied to tristates", + "TRYPRESS":"That doesn't work. You might try pressing another button.", + "TWISTY":"You are in a maze of twisty little %s menus, all different.", + "USESET":"What? Configure %s with your bare hands?", + "VALUE":"Value of %s is %s.", + "VISIBLE":"Symbol is visible.", + "VISIBILITY":"Visibility: ", + "WALLCHOICE":"There is a row of buttons on the wall of this room. They read:", + "WALLDEFAULT":"The button marked %s is pressed.", + "WELCOME":"Welcome to CML2 Adventure, version %s.", + # General help + "GENHELP":"""Welcome to the adventure configurator. For a command summary, type `commands'. +In general, a three-letter abbreviation of any command word is sufficient +to identify it to the parser. + +This interface emulates the style of classic text adventure games such as +Colossal Cave Adventure and Zork. Configuration menus are rooms, and +configuration options are objects that can be taken and dropped (except +for choice/radiobutton symbols, which become buttons on various room walls). +Objects and rooms may silently appear and disappear as visibilities +change. + +Have fun, and beware of the lurking grue! +""" +} + +grafitti = ( + 'N tensvggb ernqf: "Gur Jhzchf jnf urer. Nera\'g lbh tynq ur\'f abg urer abj?"', + 'N tensvggb ernqf: "Uryyb, fnvybe!"', + 'N tensvggb ernqf: "Sebqb yvirf!"', + 'N tensvggb ernqf: "Guvf fcnpr sbe erag."', + 'N tensvggb ernqf: "Guvf Jnl gb gur Rterff..."', + # Bofpher Pbybffny Pnir Nqiragher ersreraprf ortva urer. + 'Ba bar jnyy vf n tynff-sebagrq obk ubyqvat na nkr.\aBa gur tynff vf jevggra: "OERNX TYNFF VA PNFR BS QJNEIRF"', + 'N tensvggb ernqf: "Srr svr sbr sbb!', + # Bofpher Mbex ersreraprf ortva urer. + 'N tensvggb ernqf: "Ragunevba gur Jvfr fyrcg urer."', + 'N tensvggb ernqf: "N mbexzvq fnirq vf n mbexzvq rnearq."', + 'Bar jnyy qvfcynlf n sbezny cbegenvg bs W. Cvrecbag Syngurnq.', + 'Bar jnyy qvfcynlf n qhfgl cbegenvg bs gur Rzcrebe Zhzob VV.', + 'Bar jnyy qvfcynlf n cvpgher bs gur terng tenabyn fzrygref bs Cyhzong.', + 'Bar jnyy qvfcynlf n gnpxl oynpx-iryirg cnvagvat bs n tbyqra-sheerq zvak jvgu uhtr rlrf.', + # Bofpher Q&Q ersreraprf ortva urer + 'N tensvggb ernqf: "Vg pbhyq bayl or orggre ng Pnfgyr Terlunjx"', + 'N tensvggb ernqf: "Cnenylfvf vf va gur rlr bs gur orubyqre"', + # Bofpher wbxr sbe QrPnzc/Cengg snaf + 'N tensvggb ernqf: "Lativ vf n ybhfr!"', + # Abg-fb-bofpher Yvahk ersreraprf ortva urer. + 'Ba bar jnyy vf n cubgbtencu bs Yvahf Gbeinyqf, qevaxvat Thvaarff.', + 'N jnyy oenpxrg ubyqf n qvfpneqrq cnve bs Nyna Pbk\'f fhatynffrf. Oebamrq.', + 'Ba bar jnyy vf n cbegenvg bs EZF va shyy Fg. Vtahpvhf qent.', + 'Ba bar jnyy vf n cvpgher bs Yneel Jnyy ubyqvat n ynetr chzcxva.', + 'Ba bar jnyy vf jung nccrnef gb or n cubgbtencu bs Thvqb\'f gvzr znpuvar.', + 'Gur sybbe vf yvggrerq jvgu fcrag .45 furyyf. Revp Enlzbaq zhfg unir orra urer.', + ) +grafittishuffle = [] +grafitticount = 0 + +# Eventually, do more intelligent selection using LOCALE +lang = _eng + +def roll(n): + "Return a random number in the range 0..n-1." + return random.randrange(n) + +def shuffle(size): + "Generate a random permutation of 0...(size - 1)." + shuffle = range(size) + for i in range(1, size+1): + j = random.randrange(i) + holder = shuffle[i - 1] + shuffle[i - 1] = shuffle[j] + shuffle[j] = holder + return shuffle + +def rot13(str): + res = "" + for c in str: + if c in string.uppercase: + res += chr(ord('A') + ((ord(c)-ord('A')) + 13) % 26) + elif c in string.lowercase: + res += chr(ord('a') + ((ord(c)-ord('a')) + 13) % 26) + else: + res += c + return res + +def newroom(room): + # There is a chance of grafitti + global grafitticount, grafittishuffle + if grafitticount < len(grafitti): + if not hasattr(room, "visits") and roll(3) == 0: + room.grafitti = grafitti[grafittishuffle[grafitticount]] + grafitticount += 1 + # State machine for lantern and grue + global lanternloc, gruestate, darkturns + if gruestate == 0: # Initial state + if not hasattr(room, "visits") and roll(4) == 0: + gruestate += 1 + lanternloc = room + elif gruestate == 1: # Lantern has been placed + if roll(4) == 0: + gruestate += 1 + elif gruestate == 2: # It's dark now + darkturns += 1 + if darkturns > 2 and roll(4) == 0: + print lang["EATEN"] + raise SystemExit + +def visit(room, level=0): + "Visit a room, and describe at any of four verbosity levels." + # 0 = quiet, 1 = name only, 2 = name + help, + # 3 = name + help + exits, 4 = name + help + exits + contents + configuration.visit(room) + # Compute visible exits + room.exits = filter(lambda x: x.type in ("menu", "choices"), room.items) + room.exits = filter(configuration.is_visible, room.exits) + # This way of assigning directions has the defect that they may + # change as submenus become visible/invisible. Unfortunately, + # the alternative is not being able to assign directions at all + # for long menus. + room.directions = {} + for (dir,other) in zip(directions[:-1], room.exits): + room.directions[dir] = other + if level == 0: + return + elif level == 1: + print lang["INROOM"] % room.name + else: + print lang["ROOMBANNER"] % (room.name, room.prompt) + # Only display room exits at level 3 or up + if level >= 3: + if len(room.exits) > 9: + print lang["PASSAGEALL"] + elif room.exits: + print lang["EXITS"] % ", ".join(room.directions.keys()) + elif room != configuration.start: + print lang["PASSAGEUP"] + print + # Display help at level 2 or up + help = room.help() + if help: + sys.stdout.write(help) + # Display grafitti at level 2 or up. + if hasattr(room, "grafitti"): + print rot13(room.grafitti) + "\n" + # Only display other contents of room at level 4 or up + if level >= 4: + if room.type == "choices": + print lang["WALLCHOICE"] + print ", ".join(map(lambda x:x.name, room.items)) + print lang["WALLDEFAULT"] % room.menuvalue.name + else: + for symbol in room.items: + if symbol.is_symbol() and configuration.is_visible(symbol) and not symbol.eval(): + print lang["ISHERE"] % symbol.name + # Some things are always shown + if lanternloc == room: + print lang["LONGLANTERN"] + if gruestate == 2: + print lang["DARK"] + +def inventory(): + # Write mutable symbols, including defaulted modular symbols. + configuration.module_suppress = 0 + if lanternloc == 'user': + if gruestate == 3: + print lang["BRASSON"] + else: + print lang["BRASSOFF"] + __inventory_recurse(configuration.start) + if configuration.trit_tie: + configuration.module_suppress = (configuration.trit_tie.eval() == cml.m) + # Write all derived symbols + #config_sh.write(configuration.lang["SHDERIVED"]) + #for entry in configuration.dictionary.values(): + # if entry.is_derived(): + # __inventory_recurse(entry, config_sh) + +def __inventory_recurse(node): + if not configuration.saveable(node): + return + elif node.items: + for child in node.items: + __inventory_recurse(child) + elif node.type != 'message': + symname = configuration.prefix + node.name + value = node.eval(configuration.debug) + if not value or not node.setcount: + return + try: + if node.type == "decimal": + sys.stdout.write("%s=%d\n" % (symname, value)) + elif node.type == "hexadecimal": + sys.stdout.write("%s=0x%x\n" % (symname, value)) + elif node.type == "string": + sys.stdout.write("%s=\"%s\"\n" % (symname, value)) + elif node.type in ("bool", "trit"): + sys.stdout.write("%s=%s\n" % (symname, `value`)) + except: + (errtype, errval, errtrace) = sys.exc_info() + print "Internal error %s while writing %s." % (errtype, node) + raise SystemExit, 1 + +class advent_menu(cmd.Cmd): + "Adventure-game interface class." + + def set_symbol(self, symbol, value, freeze=0): + "Set the value of a symbol -- line-oriented error messages." + if symbol.is_numeric() and symbol.range: + if not configuration.range_check(symbol, value): + print lang["OUTOFBOUNDS"] % (symbol.range,) + return 0 + (ok, explanation) = configuration.set_symbol(symbol, value, freeze) + if not ok: + print lang["ROLLBACK"] % (symbol.name, value) + if explanation: + sys.stdout.writelines(string.join(explanation, "\n") + "\n") + return ok + + def __init__(self, config=None, banner=""): + cmd.Cmd.__init__(self) + self.config = config + if banner and configuration.banner.find("%s") > -1: + self.banner = configuration.banner % banner + elif banner: + self.banner = banner + else: + self.banner = configuration.banner + self.current = configuration.start; + self.prompt = "> " + print lang["TWISTY"]%(configuration.banner,) + self.last = None + visit(configuration.start, 4) + + def do_look(self, line): + if not line: # Look at where we are + visit(self.current, 4) + elif line == "up": # Look up + if self.current == configuration.start: + print lang["NODIR"] + else: + visit(self.current.menu, 2) + elif line in directions: # Look in a direction + if line in self.current.directions.keys(): + visit(self.current.directions[line], 2) + else: + print lang["NODIR"] + # Look at an option + elif line in map(lambda x: x.name, filter(lambda x: x.is_logical(), self.current.items)): + symbol = configuration.dictionary[line] + print lang["VALUE"] % (line, symbol.eval()) + help = symbol.help() + if help: + sys.stdout.write(help) + else: + print lang["NOHERE"] % line + do_loo = do_look + + def do_nearby(self, line): + if self.current != configuration.start: + print lang["ROOMBANNER"] % (self.current.menu.name, self.current.menu.prompt) + for (dir, symbol) in self.current.directions.items(): + if symbol.type in ("menu", "choices") and configuration.is_visible(symbol): + print ("%-2s: " % dir) + lang["ROOMBANNER"] % (symbol.name, symbol.prompt) + if len(self.current.exits) > len(directions): + print lang["EXTRAROOMS"] % ", ".join(map(lambda x: x.name, self.current.exits[9:])) + print + do_nea = do_nearby + + def do_go(self, line): + if not line: + print lang["EH?"] + return + symbol = configuration.dictionary.get(line) + if symbol and symbol.type in ("menu", "choices"): + self.current = symbol + if not configuration.is_visible(self.current) and not self.current.frozen: + print lang["SUPPRESSOFF"] + self.suppressions = 0 + else: + print lang["NONEXIST"] + + def do_dir(self, dir): + to = self.current.directions.get(dir) + if to: + self.current = to + else: + print lang["NOWAY"] + def do_n(self, line): self.do_dir('n') + def do_e(self, line): self.do_dir('e') + def do_w(self, line): self.do_dir('w') + def do_s(self, line): self.do_dir('s') + def do_ne(self, line): self.do_dir('ne') + def do_nw(self, line): self.do_dir('nw') + def do_se(self, line): self.do_dir('se') + def do_sw(self, line): self.do_dir('sw') + def do_u(self, line): self.do_up(line) + def do_d(self, line): self.do_dir('dn') + + def do_up(self, line): + if self.current == configuration.start: + print lang["GOODBYE"] + raise SystemExit + else: + self.current = self.current.menu + + def do_inventory(self, line): + inventory() + do_inv = do_inventory + + def do_drop(self, line): + if not line: + print lang["EH?"] + return + words = line.lower().split() + if words == ["all"] and self.current.type != "choices": + words = map(lambda x:x.name, filter(lambda x:x.is_logical() and configuration.is_visible(x) and not x.eval(), self.current.items)) + if lanternloc == 'user': + words.append(lang["LANTERN"]) + for thing in words: + if thing == lang["LANTERN"]: + lanternloc = self.current + gruestate = 1 + print lang["LANTERNDROP"] + else: + symbolname = thing.upper() + symbol = configuration.dictionary.get(symbolname) + if not symbol: + print lang["NOSUCHAS"], symbolname + continue + elif not symbol.eval(): + print lang["NOHAVE"] % symbolname + continue + elif symbol.menu.type == "choices": + if symbol.menu != self.current: + print lang["NOBUTTON"] % symbolname + else: + print lang["TRYPRESS"] + return + elif symbol.is_logical(): + ok = self.set_symbol(symbol, cml.n) + elif symbol.is_numeric(): + ok = self.set_symbol(symbol, 0) + elif symbol.type == "string": + ok = self.set_symbol(symbol, "") + if ok: + print lang["DROPPED"] % symbol.name + do_dro = do_drop + + def do_take(self, line): + global lanternloc + if not line: + print lang["EH?"] + return + words = line.lower().split() + if words == ["all"] and self.current.type != "choices": + words = map(lambda x:x.name, filter(lambda x:x.is_logical() and configuration.is_visible(x) and not x.eval(), self.current.items)) + if lanternloc == self.current: + words.append(lang["LANTERN"]) + if ("module" in words): + tritval = cml.m + words.remove("module") + else: + tritval = cml.y + for thing in words: + if thing == lang["LANTERN"]: + lanternloc = 'user' + print lang["LANTERNTAKE"] + else: + symbolname = thing.upper() + symbol = configuration.dictionary.get(symbolname) + if not symbol: + print lang["NOSUCHAS"], symbolname + elif symbol.menu != self.current: + print lang["NOHERE"] % symbol.name + elif symbol.is_logical(): + if self.set_symbol(symbol, tritval): + print lang["TAKEN"] % symbol.name + else: + print lang["USESET"] % symbol.name + do_tak = do_take + + def do_press(self, line): + if not line: + print lang["EH?"] + else: + symbol = configuration.dictionary.get(line) + if not symbol or symbol.menu != self.current: + print lang["NOHERE"] % line + else: + self.set_symbol(symbol, cml.y) + do_pus = do_push = do_pre = do_press + + def do_light(self, line): + global gruestate + if lanternloc == 'user': + print lang["GLOW"] + gruestate = 3 + else: + print lang["NOHERE"] % lang["LANTERN"] + do_lig = do_light + + def do_set(self, line): + try: + (symname, value) = line.split() + except: + print lang["EH?"] + if not symbol: + print lang["NOSUCHAS"], symbol.name + elif symbol.menu != self.current: + print lang["NOHERE"] % symbol.name + elif symbol.menu.type == "choices" or symbol.is_logical(): + print lang["CANTDO"] + elif symbol.is_numeric(): + self.set_symbol(symbol, int(value)) + elif symbol.type == "string": + self.set_symbol(symbol, value) + + def do_xyzzy(self, line): + # Toggle the suppressions flag + configuration.suppressions = not configuration.suppressions + if configuration.suppressions: + print lang["SUPPRESSON"] + else: + print lang["SUPPRESSOFF"] + return 0 + + def do_load(self, line): + if not line: + print lang["EH?"] + return + file = string.strip(line) + if file.find(' ') > -1: + (file, option) = file.split(' ') + try: + (changes, errors) = configuration.load(file, freeze=(option == "frozen")) + except IOError: + print lang["LOADFAIL"] % file + else: + if errors: + print errors + print lang["INCCHANGES"] % (changes,file) + if configuration.side_effects: + sys.stdout.writelines(string.join(configuration.side_effects, "\n") + "\n") + do_loa = do_load + + def do_save(self, line): + if not line: + print lang["EH?"] + return + file = string.strip(line) + failure = configuration.save(file, cml.Baton(lang["SAVESTART"] % file, lang["SAVEEND"])) + if failure: + print failure + do_sav = do_save + + def do_exit(self, line): + # Terminate this cmd instance, saving configuration + self.do_s(config) + return 1 + do_exi = do_exit + + def do_quit(self, line): + # Terminate this cmd instance, not saving configuration + return 1 + do_qui = do_quit + + # Debugging commands -- not documented + def do_verbose(self, line): + # Set the debug flag + if not line: + configuration.debug += 1 + else: + configuration.debug = int(line) + return 0 + do_ver = do_verbose + + def do_examine(self, line): + # Examine the state of a given symbol + symbol = string.strip(line) + if configuration.dictionary.has_key(symbol): + entry = configuration.dictionary[symbol] + print entry + if entry.constraints: + print lang["CONSTRAINTS"] + for wff in entry.constraints: + print cml.display_expression(wff) + if configuration.is_visible(entry): + print lang["VISIBLE"] + else: + print lang["INVISIBLE"] + help = entry.help() + if help: + print help + else: + print lang["NOHELP"] % (entry.name,) + elif symbol == "lantern": + if lanternloc == "user" or lanternloc == self.current: + print lang["LANTERNHELP"] + else: + print lang["NOHERE"] % lang["LANTERN"] + else: + print lang["NOSUCHAS"], symbol + return 0 + do_exa = do_examine + + def emptyline(self): + return 0 + def do_commands(self, line): + print string.join(map(lambda x: lang[x], + ("LHELP", "NHELP", "GHELP", "IHELP", + "DHELP", "THELP", "PHELP", "SETHELP", + "LDHELP", "SHELP", "XYZZY", + "QHELP", "XHELP", "DIRHELP")), + "\n") + def help_look(self): + print lang["LHELP"] + help_loo = help_look + def help_nearby(self): + print lang["NHELP"] + help_nea = help_nearby + def help_go(self): + print lang["GHELP"] + def help_inventory(self): + print lang["IHELP"] + help_inv = help_inventory + def help_drop(self): + print lang["DHELP"] + help_dro = help_drop + def help_take(self): + print lang["THELP"] + help_tak = help_take + def help_press(self): + print lang["PHELP"] + help_pus = help_push = help_pre = help_press + def help_set(self): + print lang["SETHELP"] + def help_xyzzy(self): + print lang["XYZZY"] + def help_load(self): + print lang["LDHELP"] + help_loa = help_load + def help_save(self): + print lang["SHELP"] + help_sav = help_save + def help_quit(self): + print lang["QHELP"] + help_qui = help_quit + def help_exit(self): + print lang["XHELP"] + help_exi = help_exit + def do_help(self, line): + print lang["GENHELP"] + def postcmd(self, stop, line): + if stop: + return stop + if self.current != self.last: + newroom(self.current) + visit(self.current, 4 - 3 * hasattr(self.current, 'visits')) + self.last = self.current + return None + +# Rulebase loading and option processing + +def load_system(cmd_options, cmd_arguments): + "Read in the rulebase and handle command-line arguments." + global debug, config, inclusions + debug = inclusions = 0; + config = None + + if not cmd_arguments: + rulebase = "rules.out" + else: + rulebase = cmd_arguments[0] + try: + open(rulebase, 'rb') + except IOError: + print lang["NOFILE"] % (rulebase,) + raise SystemExit + configuration = cmlsystem.CMLSystem(rulebase) + + process_options(configuration, cmd_options) + + configuration.debug_emit(1, lang["PARAMS"] % (config,configuration.prefix)) + + # Perhaps the user needs modules enabled initially + if configuration.trit_tie and cml.evaluate(configuration.trit_tie): + configuration.trits_enabled = 1 + + # Don't count all these automatically generated settings + # for purposes of figuring out whether we should confirm a quit. + configuration.commits = 0 + + return configuration + +def process_include(configuration, file, freeze): + "Process a -i or -I inclusion option." + # Failure to find an include file is non-fatal + try: + (changes, errors) = configuration.load(file, freeze) + except IOError: + print lang["LOADFAIL"] % file + return + if errors: + print errors + elif configuration.side_effects: + print lang["SIDEFROM"] % file + sys.stdout.writelines(string.join(configuration.side_effects, "\n") + "\n") + +def process_define(configuration, val, freeze): + "Process a -d=xxx or -D=xxx option." + parts = string.split(val, "=") + sym = parts[0] + if configuration.dictionary.has_key(sym): + sym = configuration.dictionary[sym] + else: + configuration.errout.write(lang["SYMUNKNOWN"] % (`sym`,)) + sys.exit(1) + if sym.is_derived(): + configuration.debug_emit(1, lang["DERIVED"] % (`sym`,)) + sys.exit(1) + elif sym.is_logical(): + if len(parts) == 1: + val = 'y' + elif parts[1] == 'y': + val = 'y' + elif parts[1] == 'm': + configuration.trits_enabled = 1 + val = 'm' + elif parts[1] == 'n': + val = 'n' + elif len(parts) == 1: + print lang["NOCMDLINE"] % (`sym`,) + sys.exit(1) + else: + val = parts[1] + (ok, explanation) = configuration.set_symbol(sym, + configuration.value_from_string(sym, val), + freeze) + if not ok: + print lang["ROLLBACK"] % (symbol.name, value) + if configuration.side_effects: + sys.stdout.writelines(string.join(explanation,"\n")+"\n") + +def process_options(configuration, options): + # Process command-line options second so they override + global list, config, debug, inclusions, banner + config = "config.out" + for (switch, val) in options: + if switch == '-b': + force_batch = 1 + elif switch == '-B': + banner = val + elif switch == '-d': + process_define(configuration, val, freeze=0) + elif switch == '-D': + process_define(configuration, val, freeze=1) + elif switch == '-i': + process_include(configuration, val, freeze=0) + inclusions += 1 + elif switch == '-I': + process_include(configuration, val, freeze=1) + inclusions += 1 + elif switch == '-l': + list = 1 + elif switch == '-o': + config = val + elif switch == '-v': + debug = debug + 1 + configuration.debug = configuration.debug + 1 + elif switch == '-S': + configuration.suppressions = 0 + +# Main sequence -- isolated here so we can profile it + +def main(options, arguments): + global configuration + + try: + configuration = load_system(options, arguments) + except KeyboardInterrupt: + raise SystemExit + + # Set seed for random-number functions + whrandom.seed(int(time.time()) % 256, os.getpid() % 256, 23) + global grafittishuffle + grafittishuffle = shuffle(len(grafitti)) + + print lang["WELCOME"] % cml.version + configuration.errout = sys.stdout + advent_menu(config, banner).cmdloop() + +if __name__ == '__main__': + try: + runopts = "abB:cD:d:h:i:I:lo:P:R:StVvWx" + (options,arguments) = getopt.getopt(sys.argv[1:], runopts) + if os.environ.has_key("CML2OPTIONS"): + (envopts, envargs) = getopt.getopt( + os.environ["CML2OPTIONS"].split(), + runopts) + options = envopts + options + except: + print lang["BADOPTION"] + sys.exit(1) + + for (switch, val) in options: + if switch == "-V": + print "cmladvent", cml.version + raise SystemExit + elif switch == '-P': + proflog = val + try: + import readline + except: + pass + + try: + if proflog: + import profile, pstats + profile.run("main(options, arguments)", proflog) + else: + main(options, arguments) + except KeyboardInterrupt: + #if configuration.commits > 0: + # print lang["NOTSAVED"] + print lang["ABORTED"] + except "UNSATISFIABLE": + #configuration.save("post.mortem") + print lang["POSTMORTEM"] + raise SystemExit, 1 + +# That's all, folks! diff -uNr linux.2.4.14.pristine/scripts/cmlcompile.py linux/scripts/cmlcompile.py --- linux.2.4.14.pristine/scripts/cmlcompile.py Wed Dec 31 19:00:00 1969 +++ linux/scripts/cmlcompile.py Wed Nov 14 17:01:24 2001 @@ -0,0 +1,1174 @@ +#!/usr/bin/env python +""" +Compiler for CML2 + +by Eric S. Raymond, +""" +import sys + +if sys.version[0] < '2': + print "Python 2.0 or later is required for this program." + sys.exit(0) + +import string, os, getopt, shlex, cPickle, cml, cStringIO + +# Globals +debug = 0; errors = 0; profile = 0 +outfile = "rules.out" +requirements = [] +dictionary = {} +bad_symbols = {} +bool_tests = [] +help_dict = {} +depth = 0 +start = prefix = banner = "" +trit_tie = help_tie = icon = None +warndepend = [] +forward_private = [] +explicit_ancestors = {} +expression_parser = None # Just to make this a global + +# Lexical analysis +_keywords = ( + 'banner', 'choices', 'condition', 'debug', + 'default', 'dependent', 'derive', 'enum', + 'explanation', 'explanations', 'icon', 'menu', + 'menus', 'nohelp', 'on', 'prefix', + 'private', 'prohibit', 'range', 'require', + 'start', 'suppress', 'symbols', 'text', + 'trits', 'unless', 'warndepend' + ) +_ternaryops = ('?', ':') +_arithops = ('*', '+', '-') +_boolops = ('and', 'or', 'implies') +_relops = ('==', '!=', '<', '>', '>=', '<=') +_termops = ('|', '&', '$') # min, max, similarity +_operators = _termops + _relops + _boolops + _arithops + _ternaryops + ("(", ")") +_tritvals = ("n", "m", "y") +_atoms = ("trit", "string", "decimal", "hexadecimal") +_suffixes = ("&", "?", "!", "%", "@", "$") + +class Token: + "CML2's internal token type." + def __init__(self, type, attr=None): + self.type = type + self.attr = attr + if debug > 1: print "CML token: ", `self` + def __repr__(self): + if self.type == "EOF": + return "EOF" + elif self.attr is not None: + return self.type + "=" + `self.attr` + else: + return self.type + def __cmp__(self, o): + return cmp(self.type, o) + def __getitem__(self, i): + raise IndexError + +class lexwrapper(shlex.shlex): + "Lexer subclass that returns Tokens with type-annotation information." + def __init__(self, stream, file): + # This is a speed hack.... + file_contents = cStringIO.StringIO(stream.read()) + stream.close() + shlex.shlex.__init__(self, file_contents, file) + + def lex_token(self): + # Get a (type, attr) token tuple, handling inclusion + raw = self.get_token() + if type(raw) is not type(""): # Pushed-back token + return raw + elif not raw: + return Token("EOF") + elif raw[0] in self.quotes: + return Token('string', raw[1:-1]) + elif raw in _tritvals: + return Token('trit', raw) + elif len(raw) > 2 and \ + raw[0] == '0' and raw[1] == 'x' and raw[2] in string.hexdigits: + return Token('hexadecimal', long(raw[2:], 16)) + elif raw[0] in string.digits: + return Token('decimal', int(raw)) + elif raw in ('!', '=', '<', '>'): # Relational tests + next = self.get_token() + if next == '=': + return Token(raw+next) + else: + self.push_token(next) + return Token('word', raw) + elif raw == 'text': + data = "" + while 1: + line = self.instream.readline() + if line == "" or line == ".\n": # Terminated by dot. + break + if line[0] == '.': + line = line[1:] + data = data + line + return Token("text", data) + elif raw == 'icon': + data = "" + while 1: + line = self.instream.readline() + if line == "" or line == "\n": # Terminated by blank line + break + data = data + line + self.push_token(data) + return Token(raw) + elif raw in _keywords or raw in _operators: + return Token(raw) + else: + # Nasty hack alert. If there is a declared prefix for the + # rulebase, ignore it as a prefix of names. This will + # enable us to be backward-compatible with names like like + # CONFIG_3C515 that have leading numerics when stripped. + if prefix and raw[:len(prefix)] == prefix: + raw = raw[len(prefix):] + return Token('word', raw) + + def complain(self, str): + # Report non-fatal parse error; format like C compiler message. + global errors + if not debug and not errors: + sys.stderr.write('\n') + sys.stderr.write(self.error_leader() + " " + str + "\n") + errors = errors + 1 + + def croak(self, str): + # Report a fatal parse error and die + self.complain(str) + sys.exit(1) + + def demand(self, type, attr=None): + # Require a given token or token type, croak if we don't get it + tok = self.lex_token() + if tok.type == "EOF": + self.croak("premature EOF") + elif attr is not None and tok.attr != attr: + self.croak("syntax error, saw `%s' while expecting `%s'" % (tok, attr)) + elif tok.type != type: + self.croak("syntax error, expecting token of type `%s' (actually saw %s=%s)" % (type, tok.type, tok.attr)) + else: + return tok.attr + + def sourcehook(self, newfile): + # Override the hook in the shlex class + try: + if newfile[0] == '"': + newfile = newfile[1:-1] + # This implements cpp-like semantics for relative-path inclusion. + if type(self.infile) is type("") and not os.path.isabs(newfile): + newfile = os.path.join(os.path.dirname(self.infile), newfile) + return (newfile, open(newfile, "r")) + except IOError: + self.complain("I/O error while opening '%s'" % (newfile,)) + sys.exit(1) + +# Parsing + +class ExpressionError: + "Express a compile-time error." + def __init__(self, explain): + self.args = ("expression error " + explain,) + +def parse_atom(input): + if debug >= 2: print "entering parse_atom..." + op = input.lex_token() + if op.type in _atoms: + if debug >= 2: print "parse_atom returns", op.attr + return op + elif op.type == '(': + sub = parse_expr_inner(input) + close = input.lex_token() + if close != ')': + raise ExpressionError, "while expecting a close paren" + else: + if debug >= 2: print "parse_atom returns singleton", sub + return sub + elif op.type in _keywords: + raise ExpressionError, "keyword %s while expecting atom" % op.type + elif op.type == 'word': + if debug >= 2: print "parse_atom returns", op.attr + return op + +def parse_term(input): + if debug >= 2: print "entering parse_term..." + left = parse_atom(input) + op = input.lex_token() + if op.type not in _termops: + input.push_token(op) + if debug >= 2: print "parse_term returns singleton", left + return left + right = parse_term(input) + expr = (op.type, left, right) + if debug >= 2: print "parse_term returns", expr + return expr + +def parse_relational(input): + if debug >= 2: print "entering parse_relational..." + left = parse_term(input) + op = input.lex_token() + if op.type not in _relops: + input.push_token(op) + if debug >= 2: print "parse_relational returns singleton", left + return left + right = parse_term(input) + expr = (op.type, left, right) + if debug >= 2: print "parse_relational returns", expr + return(op.type, left, right) + +def parse_assertion(input): + if debug >= 2: print "entering parse_assertion..." + negate = input.lex_token() + if negate.type == 'not': + return ('not', parse_relational(input)) + input.push_token(negate) + return parse_relational(input) + +def parse_conjunct(input): + if debug >= 2: print "entering parse_conjunct..." + left = parse_assertion(input) + op = input.lex_token() + if op.type != 'and': + input.push_token(op) + if debug >= 2: print "parse_conjunct returns singleton", left + return left + else: + expr = ('and', left, parse_conjunct(input)) + if debug >= 2: print "parse_conjunct returns", expr + return expr + +def parse_disjunct(input): + if debug >= 2: print "entering parse_disjunct..." + left = parse_conjunct(input) + op = input.lex_token() + if op.type != 'or': + input.push_token(op) + if debug >= 2: print "parse_disjunct returns singleton", left + return left + else: + expr = ('or', left, parse_disjunct(input)) + if debug >= 2: print "parse_disjunct returns", expr + return expr + +def parse_factor(input): + if debug >= 2: + print "entering parse_factor..." + left = parse_disjunct(input) + op = input.lex_token() + if op.type != 'implies': + input.push_token(op) + if debug >= 2: print "parse_factor returns singleton", left + return left + else: + expr = ('implies', left, parse_disjunct(input)) + if debug >= 2: print "parse_factor returns", expr + return expr + +def parse_summand(input): + if debug >= 2: print "entering parse_summand..." + left = parse_factor(input) + op = input.lex_token() + if op.type != '*': + input.push_token(op) + if debug >= 2: print "parse_summand returns singleton", left + return left + else: + expr = ('*', left, parse_expr_inner(input)) + if debug >= 2: print "parse_summand returns", expr + return expr + +def parse_ternary(input): + if debug >= 2: print "entering parse_ternary..." + guard = parse_summand(input) + op = input.lex_token() + if op.type != '?': + input.push_token(op) + if debug >= 2: print "parse_ternary returns singleton", guard + return guard + else: + trueval = parse_summand(input) + op = input.lex_token() + if op.type != ':': + raise ExpressionError("while expecting : in ternary") + falseval = parse_summand(input) + expr = ('?', guard, trueval, falseval) + if debug >= 2: print "parse_ternary returns", expr + return expr + +def parse_expr_inner(input): + if debug >= 2: print "entering parse_inner_expr..." + left = parse_ternary(input) + op = input.lex_token() + if op.type not in ('+', '-'): + input.push_token(op) + if debug >= 2: print "parse_expr_inner returns singleton", left + return left + else: + expr = (op.type, left, parse_expr_inner(input)) + if debug >= 2: print "parse_expr_inner returns", expr + return expr + +def parse_expr(input): + "Parse an expression." + try: + exp = parse_expr_inner(input) + return exp + except ExpressionError, exp: + input.croak(exp.args[0]) + return None + +# Expression parsing ends here + +def pure_conjunction(guard): + if type(guard) is not type(()): + return 1 + elif guard[0] == 'and' or guard[0] in _relops: + return pure_conjunction(guard[1]) and pure_conjunction(guard[2]) + else: + return 0 + +def make_dependent(guard, symbol): + "Create a dependency lnk, indirecting properly through menus." + if debug > 2: + print "Making %s dependent on %s" % (symbol.name, guard.name) + # If symbol is a menu, we'd really like to create a dependency link + # for each of its children. But they won't be defined at this point + # if the reference is forward. + symbol.ancestors.append(guard) + guard.dependents.append(symbol) + +def parse(input, baton): + # Parse an entire CML program + global debug, start, requirements, dictionary, bad_symbols, depth + global help_dict, prefix, banner, icon, trit_tie, help_tie + global warndepend, explicit_ancestors + input.source = "source" + if debug: + print "Calling parse()" + input.debug = 1 + while 1: + if not debug and not errors: + baton.twirl() + leader = input.lex_token() + if debug > 1: print "Parsing declaration beginning with %s..." % (leader,) + if leader.type == "EOF": + break + elif leader.type == "start": + start = input.lex_token().attr + elif leader.type in ("symbols", "menus", "explanations"): + deduced_type = None + if leader.type == "menus": + deduced_type = "menu" + elif leader.type == "explanations": + deduced_type = "explanation" + while 1: + tok = input.lex_token() + if tok.type == "word": + name = tok.attr + else: + input.push_token(tok) + break + prompt = input.demand("string") + + if dictionary.has_key(name): + ref = dictionary[name] + input.complain('duplicate symbols %s (see "%s", line %d)' + % (name, ref.file, ref.lineno)) + else: + dictionary[name] = cml.ConfigSymbol(name, + deduced_type, + None, prompt, + input.infile, + input.lineno) + explicit_ancestors[dictionary[name]] = [] + # These symbols may be followed by optional help text + tok = input.lex_token() + if tok.type == "text": + dictionary[name].helptext = tok.attr + else: + input.push_token(tok) + if debug: + print "%d symbols read" % (len(dictionary),) + elif leader.type == "unless": + guard = parse_expr(input) + bool_tests.append((guard, input.infile, input.lineno)) + input.demand("suppress") + dependent = input.lex_token() + make_dep = 0 + if dependent.type == "dependent": + make_dep = 1 + if not pure_conjunction(guard): + input.complain("illegal guard clause") + else: + input.push_token(dependent) + list = parse_wordlist(input) + list.reverse() + for symbol in list: + if make_dep: + #if debug: print "Creating dependencies on %s" % (guard,) + explicit_ancestors[symbol].append(guard) + else: + # Add it to ordinary visibility constraints + if symbol.visibility: + symbol.visibility = ('and', guard, symbol.visibility) + else: + symbol.visibility = guard + elif leader.type == "menu": + name = input.demand("word") + list = parse_wordlist(input, 1) + if not dictionary.has_key(name): + input.complain("%s is not a declared menu ID" % name) + #elif dictionary[name].items: + # input.complain("more than one declaration of %s" % name) + else: + entry = dictionary[name] + entry.items += list + for symbol in list: + if symbol.menu: + input.complain("symbol %s in %s occurs in another menu (%s)" + % (symbol.name, name, symbol.menu.name)) + else: + symbol.menu = dictionary[name] + elif leader.type == "choices": + name = input.demand("word") + list = parse_wordlist(input) + input.demand('default') + default = input.demand("word") + if not dictionary.has_key(name): + input.complain("%s is not a declared menu ID" % (name,)) + elif not dictionary.has_key(default): + input.complain("default %s must be a known symbol"%(`default`,)) + elif dictionary[default] not in list: + input.complain("default %s must be in the menu" % (`default`,)) + else: + dictionary[name].default = dictionary[default] + dictionary[name].items = list + dictionary[name].type = "choices" + for symbol in list: + if symbol.menu: + input.complain("symbol %s occurs in another menu (%s)" + % (symbol.name, symbol.menu.name)) + else: + symbol.menu = dictionary[name] + elif leader.type == "derive": + name = input.demand("word") + input.demand("word", "from") + expr = parse_expr(input) + if dictionary.has_key(name): + input.complain("symbol %s is already defined" % (name,)) + else: + dictionary[name] = cml.ConfigSymbol(name, + None, expr, None, + input.infile, input.lineno) + if name in forward_private: + dictionary[name].private = 1 + forward_private.remove(name) + elif leader.type in ("require", "prohibit"): + expr = parse_expr(input) + if leader.type == "prohibit": + expr = ('==', expr, cml.n) + next = input.lex_token() + if next.type != 'explanation': + input.push_token(next) + msg = None + else: + expl = input.lex_token() + if expl.type != 'word': + input.complain("while expecting a word of explanation, I see %s" % (`expl`,)) + continue + if not dictionary.has_key(expl.attr): + input.complain("unknown symbol where explanation expected") + elif dictionary[expl.attr].type != 'explanation': + input.complain("expecting an explanation symbol here") + else: + msg = dictionary[expl.attr].prompt + requirements.append(cml.Requirement(expr, msg, input.infile, input.lineno)) + bool_tests.append((expr, input.infile, input.lineno)) + elif leader.type == "default": + symbol = input.demand("word") + input.demand("word", "from") + expr = parse_expr(input) + if not dictionary.has_key(symbol): + input.complain("%s is not a valid symbol to default"%(symbol,)) + elif dictionary[symbol].default: + input.complain("%s already has a default" % (symbol,)) + else: + entry = dictionary[symbol] + entry.default = expr + next = input.lex_token() + if next.type == "range": + entry.range = [] + while 1: + low = input.lex_token() + if low.type in _keywords: + input.push_token(low) + break + elif low.type in ("decimal", "hexadecimal"): + low = low.attr + else: + input.complain("bad token %s where range literal expected" % (low.attr)) + rangesep = input.lex_token() + if rangesep.type in _keywords: + entry.range.append(low) + input.push_token(rangesep) + break + elif rangesep.type in ("decimal", "hexadecimal"): + entry.range.append(low) + input.push_token(rangesep) + continue + elif rangesep.type == '-': + high = input.lex_token() + if high.type in ("decimal", "hexadecimal"): + high = high.attr + entry.range.append((low, high)) + continue + else: + input.croak("malformed range") + break + elif next.type == "enum": + entry.range = [] + entry.enum = 1 + while 1: + name = input.lex_token() + if name.type in _keywords: + input.push_token(name) + break + elif name.type != 'word': + input.complain("bad token %s where enum name expected" % (name.attr)) + continue + elif not dictionary.has_key(name.attr): + input.croak("unknown symbol in enum") + else: + name = dictionary[name.attr].prompt + input.demand('word', "=") + value = input.lex_token() + if value.type in ("decimal", "hexadecimal"): + value = value.attr + entry.range.append((name, value)) + continue + else: + input.croak("malformed enum") + else: + input.push_token(next) + continue + elif leader.type == 'private': + while 1: + nxt = input.lex_token() + if nxt.type != 'word': + input.push_token(nxt) + break + if dictionary.has_key(nxt.attr): + dictionary[nxt.attr].private = 1 + else: + forward_private.append(nxt.attr) + elif leader.type == 'debug': + debug = input.lex_token().attr + elif leader.type == 'prefix': + prefix = input.lex_token().attr + elif leader.type == 'banner': + banner = dictionary[input.lex_token().attr].prompt + elif leader.type == 'icon': + if icon: + input.complain("multiple icon declarations") + icon = input.lex_token().attr + elif leader.type == 'condition': + flag = input.lex_token() + input.demand("on") + val = None + switch = input.lex_token() + if switch.type in ("decimal", "hexadecimal"): + val = int(switch.attr) + elif switch.type == "string": + val = switch.attr + elif switch.type == "trit": + val = (switch.attr == "y") # No flag is module-valued yet + elif not dictionary.has_key(switch.attr): + input.complain("unknown symbol in condition starement") + continue + # Someday is today + if flag == "trits": + if val: + trit_tie = val + else: + trit_tie = dictionary[switch.attr] + trit_tie.vital = 1 + elif flag == "nohelp": + help_tie = dictionary[switch.attr] + else: + input.complain("unknown flag %s in condition statement" % (flag,)) + elif leader.type == 'warndepend': + iffy = parse_wordlist(input) + for symbol in iffy: + warndepend.append(symbol) + else: + input.croak("syntax error, unknown statement %s" % (leader.attr,)) + +def parse_wordlist(input, do_nesting=None): + # Get a nonempty list of config symbols and menu ids. + # Interpret the {} shorthand if second argument is nonempty + global requirements + condition_stack = [] # Stack of active conditions for {} shorthand + list = [] # Result list + entry = None # Last symbol resolved + while 1: + symbol = input.lex_token() + if not symbol.type in ("word",) + _suffixes: + #if debug > 1: + # print "parse_wordlist() terminates returning %s and pushes keyword %s" % (list, symbol.type) + input.push_token(symbol) + break + elif symbol.attr == '}': + if not do_nesting: + input.complain("sublists aren't allowed outside menus") + elif entry: + condition_stack = condition_stack[0:-1] + continue + elif symbol.type == '?': # This is also an operator + if not do_nesting: + input.complain("? type suffix is not allowed outside menus") + elif entry: + entry.type = 'trit' + continue + elif symbol.attr == '!': + if not do_nesting: + input.complain("! type suffix is not allowed outside menus") + elif entry: + entry.type = 'trit' + entry.vital = 1 + continue + elif symbol.attr == '%': + if not do_nesting: + input.complain("% type suffix is not allowed outside menus") + elif entry: + entry.type = 'decimal' + continue + elif symbol.attr == '@': + if not do_nesting: + input.complain("@ type suffix is not allowed outside menus") + elif entry: + entry.type = 'hexadecimal' + continue + elif symbol.type == '$': # This is also an operator + if not do_nesting: + input.complain("$ type suffix is not allowed outside menus") + elif entry: + entry.type = 'string' + continue + elif symbol.attr == '{': + if not do_nesting: + input.complain("sublists aren't allowed outside menus") + elif entry: + if entry.type == "string": + input.complain("string symbol is not a legal submenu guard") + else: + condition_stack.append(entry) + continue + elif dictionary.has_key(symbol.attr): + entry = dictionary[symbol.attr] + if entry.type is None: + entry.type = "bool" + list.append(entry) + if do_nesting: + entry.depth = len(condition_stack) + if condition_stack: + make_dependent(condition_stack[-1], entry) + else: + input.complain("unknown symbol %s in wordlist" % (symbol,)) + # Fall through here in case there is a following {. + # The wrong condition will end up getting set, but + # at least the parse can continue detecting errors. + # input.croak("unknown symbol %s in wordlist" % (symbol,)) + #raise SystemExit, 1 + if not list: + input.complain("syntax error, expected a nonempty word list") + # Because word lists are always the trailing element of a declaration, + # we don't need to resync on error here. Returning an empty list + # will allow the parse to proceed, catching more errors. + return list + +# Functions for validating the parse tree + +def simple_error(file, line, errmsg): + global errors + if not debug and not errors: + sys.stderr.write('\n') + sys.stderr.write(error_leader(file, line) + errmsg) + errors = errors + 1 + +def validate_boolean(expr, file, line, ok=0): + # Check for ambiguous boolean expr terms. + if isinstance(expr, cml.ConfigSymbol): + if expr.type in ("trit", "decimal", "hexadecimal") and not ok: + simple_error(file, line, "test of %s is ambiguous\n" % (expr.name,)) + elif type(expr) is type(()): + validate_boolean(expr[1], file, line, expr[0] in _relops) + validate_boolean(expr[2], file, line, expr[0] in _relops) + +def validate_expr(expr, file, line): + # Check for bad type combinations in expressions + global errors + # Return a leaf node type, inaccurate but good enough for + # consistency checking. + if isinstance(expr, cml.ConfigSymbol): + if expr.is_numeric(): + return "integer" + elif expr.is_logical(): + return "trit" + else: + return expr.type + elif isinstance(expr, cml.trit): + return "trit" + elif type(expr) in (type(0), type(0L)): + return "integer" + elif type(expr) == type(""): + return "string" + elif expr[0] == '?': + left = validate_expr(expr[2], file, line) + right = validate_expr(expr[3], file, line) + if left != right: + simple_error(file, line, "types %s and %s don't match in ternary expression\n" % (left, right)) + return left + elif expr[0] in _arithops: + left = validate_expr(expr[1], file, line) + if left not in ("integer", "trit"): + simple_error(file, line, "bad %s left operand for arithmetic operator %s\n" % (left, expr[0])) + right = validate_expr(expr[2], file, line) + if right not in ("integer", "trit"): + simple_error(file, line, "bad %s right operand for arithmetic operator %s\n" % (right, expr[0])) + return "integer" + elif expr[0] in _boolops or expr[0] in _termops: + left = validate_expr(expr[1], file, line) + if left != "trit": + simple_error(file, line, "bad %s left operand for trit operator %s\n" % (left, expr[0])) + right = validate_expr(expr[2], file, line) + if right != "trit": + simple_error(file, line, "bad %s right operand for trit operator %s\n" % (right, expr[0])) + return "trit" + elif expr[0] in _relops: + left = validate_expr(expr[1], file, line) + right = validate_expr(expr[2], file, line) + if left != right: + simple_error(file, line, "types %s and %s don't match in %s expression\n" % (expr[0], left, right)) + return "trit" + else: + if not debug and not errors: + sys.stderr.write('\n') + sys.stderr.write(error_leader(file, line) + \ + "internal error: unexpected node %s in expression\n" % expr[0]) + errors = errors + 1 + +def symbols_by_preorder(node): + # Get a list of config symbols in natural traverse order + if node.items: + sublists = map(symbols_by_preorder, node.items) + flattened = [] + for m in sublists: + flattened = flattened + m + return flattened + else: + return [node.name] + +def resolve(exp): + # Replace symbols in an expr with resolved versions + global bad_symbols, errors + if type(exp) is type(()): + if exp[0] == 'not': + return ('not', resolve(exp[1])) + elif exp[0] == '?': + return ('?', resolve(exp[1]), resolve(exp[2]), resolve(exp[3])) + else: + return (exp[0], resolve(exp[1]), resolve(exp[2])) + elif isinstance(exp, cml.ConfigSymbol): # Symbol, already resolved + return exp + elif isinstance(exp, cml.trit): # Trit, already resolved + return exp + elif type(exp) in (type(0), type("")): # Constant, already resolved + return exp + elif not hasattr(exp, "type"): + sys.stderr.write("Symbol %s has no type.\n" % (exp,)) + errors = errors + 1 + return None + elif exp.type == 'trit': + if exp.attr == 'y': + return cml.y + elif exp.attr == 'm': + return cml.m + elif exp.attr == 'n': + return cml.n + elif exp.type in _atoms: + return exp.attr + elif dictionary.has_key(exp.attr): + return dictionary[exp.attr] + else: + bad_symbols[exp.attr] = 1 + return None + +def ancestry_check(symbol, counts): + # Check for circular ancestry chains + # print "Checking ancestry of %s: %s" % (symbol, symbol.ancestors) + counts[symbol] = 1 + for ancestor in symbol.ancestors: + if counts.has_key(ancestor.name): + raise NameError, symbol.name + " through " + ancestor.name + else: + map(lambda symbol, counts=counts: ancestry_check(symbol, counts), symbol.ancestors) + +def circularity_check(name, exp, counts): + # Recursive circularity check... + # print "Expression check of %s against %s" % (name, exp) + if type(exp) is type(()): + if exp[0] == '?': + circularity_check(name, exp[1], counts) + circularity_check(name, exp[2], counts) + circularity_check(name, exp[3], counts) + else: + circularity_check(name, exp[1], counts) + circularity_check(name, exp[2], counts) + elif isinstance(exp, cml.ConfigSymbol) and name == exp.name: + raise NameError, name + elif hasattr(exp, "default"): + vars = cml.flatten_expr(exp.default) + # print "Components of %s default: %s" % (exp.name vars) + for v in vars: + if v.name == name: + raise NameError, name + elif counts.has_key(v.name): + pass # Already checked this branch + else: + counts[v.name] = 1 + circularity_check(name, v.name, counts) + +def transitive_depends(guard, entry): + "Test transitive completion of dependency." + # We don't also check visibility, because visibility guards can + # have disjunctions and it would be wrong to propagate up both branches. + if entry.menu: + searchpath = entry.ancestors + entry.menu.ancestors + else: + searchpath = entry.ancestors + if guard in searchpath: + return 1 + for x in searchpath: + if transitive_depends(x, guard): + return 1 + return 0 + +def error_leader(file, line): + global errors + return '"%s", line %d:' % (file, line) + +def postcomplain(msg): + global errors + if not debug and not errors: + sys.stderr.write('\n') + sys.stderr.write("cmlcompile: " + msg) + errors += 1 + +def main(debug, outfile, arguments): + "Sequence a compilation" + global profile, expression_parser, requirements, bad_symbols, errors + + if not debug: + baton = cml.Baton("Compiling rules, please wait") + else: + baton = None + + if profile: + import time + now = zerotime = basetime = time.time(); + + # Parse everything + try: + if not arguments: + parse(lexwrapper(sys.stdin, "stdin"), baton) + else: + for file in arguments: + parse(lexwrapper(open(file), file), baton) + except IOError, details: + sys.stderr.write("cmlcompile: I/O error, %s\n" % (details,)) + raise SystemExit, 1 + + + if profile: + now = time.time(); + print "Rule parsing:", now - basetime + basetime = now + if not debug and not errors: + baton.twirl() + + # Sanity and consistency checks: + + # We need a main menu declaration + if not start: + postcomplain("missing a start declaration.\n") + raise SystemExit, 1 + elif not dictionary.has_key(start): + postcomplain("declared start menu '%s' does not exist.\n"%(start,)) + raise SystemExit, 1 + if not debug and not errors: + baton.twirl() + + # Check for unfulfilled forward declarations + if forward_private: + postcomplain("symbols declared private but never defined: %s\n" % forward_private) + + # Check that all symbols other than those on the right side of + # derives are either known or themselves derived. + for entry in dictionary.values(): + if entry.visibility: + entry.visibility = resolve(entry.visibility) + if entry.default: + entry.default = resolve(entry.default) + requirements = map(lambda x: cml.Requirement(resolve(x.predicate), x.message, x.file, x.line), requirements) + if bad_symbols: + postcomplain("%d symbols could not be resolved:\n"%(len(bad_symbols),)) + sys.stderr.write(`bad_symbols.keys()` + "\n") + if not debug and not errors: + baton.twirl() + + # Now associate a type with all derived symbols. Since such symbols + # are never queried, the only place this is used is in formatting + # the symbol's appearance in the final configuration file. + # + # (The outer loop forces this to keep spinning until it has done all + # possible deductions, even in the presence of forward declarations.) + while 1: + deducecount = 0 + for entry in dictionary.values(): + if entry.is_derived() and not entry.type: + derived_type = None + if entry.default == cml.m: + derived_type = "trit" + elif entry.default == cml.n or entry.default == cml.y: + derived_type = "bool" + elif type(entry.default) is type(()): + if entry.default[0] in _boolops + _relops: + derived_type = "bool" + elif entry.default[0] in _termops: + derived_type = "trit" + elif entry.default[0] in _arithops: + derived_type = "decimal" + elif entry.default[0] == '?': + if isinstance(entry.default[2], cml.ConfigSymbol): + derived_type = entry.default[2].type + elif isinstance(entry.default[2], cml.trit): + derived_type = "trit" + elif type(entry.default[2]) in (type(0), type(0L)): + derived_type = "decimal" + elif type(entry.default[2]) is type(""): + derived_type = "string" + elif type(entry.default) is type(0): + derived_type = "decimal" # Could be hex + elif isinstance(entry.default, cml.ConfigSymbol): + derived_type = entry.default.type + if derived_type: + entry.type = derived_type + deducecount = 1 + if not deducecount: + break + + for entry in dictionary.values(): + if entry.is_derived() and not entry.type: + postcomplain(error_leader(entry.file, entry.lineno) + \ + 'can\'t deduce type for derived symbol %s\n' % (entry.name,)) + if not debug and not errors: + baton.twirl() + + # Now run our ambiguity check on all unless expressions. + for (guard, file, line) in bool_tests: + validate_boolean(resolve(guard), file, line) + if not debug and not errors: + baton.twirl() + + # Handle explicit dependencies + for symbol in explicit_ancestors.keys(): + for guard in explicit_ancestors[symbol]: + for guardsymbol in cml.flatten_expr(resolve(guard)): + make_dependent(guardsymbol, symbol) + if not debug and not errors: + baton.twirl() + + + # Check that every symbol in the table is referenced from a menu + # exactly once (except explanations). We checked for multiple + # inclusions at parse-tree generation time. Now... + bad_symbols = {} + for entry in dictionary.values(): + if entry.prompt and entry.type!='explanation' and not entry.menu and \ + entry.name != start and entry.prompt != banner: + bad_symbols[entry.name] = 1 + if bad_symbols: + postcomplain("%d symbols have no menus"%(len(bad_symbols),)) + sys.stderr.write("\n" +`bad_symbols.keys()` + "\n") + if not debug and not errors: + baton.twirl() + + # Check for forward references in visibility constraints. + # Note: this is *not* a fatal error. + preorder = symbols_by_preorder(dictionary[start]) + for i in range(len(preorder)): + key = preorder[i] + forwards = [] + for guards in cml.flatten_expr(dictionary[key].visibility): + if guards.name in preorder[i+1:]: + forwards.append(guards.name) + if forwards: + sym = dictionary[key] + postcomplain('"%s", line %d: %s requires %s forward\n' % (sym.file, sym.lineno, key, forwards)) + errors -= 1 + if not debug and not errors: + baton.twirl() + + # Check for circularities in derives and defaults. + try: + for entry in dictionary.values(): + if entry.default: + expr_counts = {} + circularity_check(entry.name, entry.default, expr_counts) + if entry.visibility: + expr_counts = {} + circularity_check(entry.name, entry.visibility, expr_counts) + if entry.ancestors: + ancestor_counts = {} + ancestry_check(entry, ancestor_counts) + except NameError: + postcomplain("%s depends on itself\n"%(sys.exc_value,)) + if not debug and not errors: + baton.twirl() + + # Various small hacks combined here to save traversal overhead. + for entry in dictionary.values(): + # Validate the formulas for boolean derived symbols. + if entry.is_derived(): + if entry.menu: + postcomplain("menu %s contains derived symbol %s\n"%(entry.menu.name, `entry`)) + if entry.type == "bool": + validate_boolean(entry.default, entry.file, entry.lineno) + else: + validate_expr(entry.default, entry.file, entry.lineno) + continue + #if not entry.default is None: + # validate_expr(entry.default, entry.file, entry.lineno) + # Give childless menus the `message' type. This will make + # it easier for the front end to do special things with these objects. + if entry.type == 'menu': + if not entry.items: + entry.type = 'message' + continue + # Check for type messages between symbols and their defaults. + if entry.is_symbol() and not entry.default is None: + if type(entry.default) in (type(0L),type(0)) and not entry.is_numeric(): + postcomplain("%s is not of numeric type but has numeric constant default\n" % entry.name) + elif type(entry.default) == type("") and not entry.type == "string": + postcomplain("%s is not of string type but has string constant default\n" % entry.name) + + # Symbols with decimal/hexadecimal/string type must have a default. + if entry.type in ("decimal", "hexadecimal", "string"): + if entry.default is None: + postcomplain("%s needs a default\n"%(`entry`,)) + elif entry.range: + # This member can be used by front ends to determine whether the + # entry's value should be queried with a pulldown of its values. + entry.discrete = not filter(lambda x: type(x) is type(()), entry.range) + # This member can be used by front ends to determine whether the + # entry's value should be queried with a pulldown of enums. + entry.enum = type(entry.range[0]) is type(()) \ + and type(entry.range[0][0]) is type("") + # Now hack the prompts of anything dependent on a warndepend symbol + for guard in warndepend: + if entry.prompt and transitive_depends(guard, entry): + entry.prompt = entry.prompt + " (" + guard.name + ")" + if not debug and not errors: + baton.twirl() + + # Check for constraint violations. If the defaults set up by the + # rule file are not consistent, it's not likely the user will make + # a consistent one. Don't try this if we've seen syntax errors, as + # they tend to produce Nones in expressions that this will barf on. + if not errors: + for wff in requirements: + if not cml.evaluate(wff.predicate, debug): + postcomplain(error_leader(wff.file, wff.line) + " constraint violation: %s\n" % `wff`) + if not debug and not errors: + baton.twirl() + + # Now integrate the help references + for key in dictionary.keys(): + if help_dict.has_key(key): + dictionary[key].helptext = help_dict[key] + del help_dict[key] + if debug: + missing = [] + for entry in dictionary.values(): + if not entry.type in ("message", "menu", "choices", "explanation") and entry.prompt and not entry.help(): + missing.append(entry.name) + if missing: + postcomplain("The following symbols lack help entries: %s\n" % missing) + orphans = help_dict.keys() + if orphans: + postcomplain("The following help entries do not correspond to symbols: %s\n" % orphans) + if not debug and not errors: + baton.end("Done") + + if profile: + now = time.time(); + print "Sanity checks:", now - basetime + basetime = now + + # Package everything up for pickling + if errors: + postcomplain("rulebase write suppressed due to errors.\n") + raise SystemExit, 1 + else: + system = cml.CMLRulebase(dictionary[start], dictionary, requirements, prefix, banner, icon) + system.trit_tie = trit_tie + system.help_tie = help_tie + + # Precomputation to speed up the configurator's load time + system.reduced = map(lambda x: x.predicate, system.constraints) + system.optimize_constraint_access() + if debug: + cc = dc = tc = 0 + for symbol in system.dictionary.values(): + if not symbol.is_derived(): + tc = tc + 1 + if symbol.dependents: + dc = dc + 1 + if symbol.constraints: + cc = cc + 1 + print "%d total symbols; %d symbols are involved in constraints; %d in dependencies." % (tc, cc, dc) + + try: + if debug: print "cmlcompile: output directed to %s" % (outfile) + out = open(outfile, "wb") + cPickle.dump(system, out, 1) + out.close() + except: + postcomplain('couldn\'t open output file "%s"\n' % (outfile,)) + sys.exit(1) + + if profile: + now = time.time(); + print "Rulebase output:", now - basetime + basetime = now + print "Total time:", now - zerotime + +if __name__ == '__main__': + (options, arguments) = getopt.getopt(sys.argv[1:], "o:Pv") + for (switch, val) in options: + if switch == '-o': + outfile = val + elif switch == '-P': + profile = 1 + elif switch == '-v': + debug = debug + 1 + + if profile: + import profile + profile.run("main(debug, outfile, arguments)") + else: + main(debug, outfile, arguments) + +# That's all, folks! diff -uNr linux.2.4.14.pristine/scripts/cmlconfigure.py linux/scripts/cmlconfigure.py --- linux.2.4.14.pristine/scripts/cmlconfigure.py Wed Dec 31 19:00:00 1969 +++ linux/scripts/cmlconfigure.py Wed Nov 14 17:01:24 2001 @@ -0,0 +1,2701 @@ +#!/usr/bin/env python +# +# cmlconfigure.py -- CML2 configurator front ends +# by Eric S. Raymond, +# +# Here is the actual code for the configurator front ends. +# +import sys + +if sys.version[0] < '2': + print "Python 2.0 or later is required for this program." + raise SystemExit, 1 + +import os, string, getopt, cmd, re, time +import cml, cmlsystem, webbrowser + +# Globals +debug = list = inclusions = 0 +force_batch = force_tty = force_curses = force_x = None +readlog = proflog = None +banner = "" + +# User-visible strings in the configurator. Separated out in order to +# support internationalization. +_eng = { + "ABORTED":"Configurator aborted.", + "ANCESTORBUTTON":"Show ancestors of...", + "BACKBUTTON":"Back", + "BADOPTION":"cmlconfigure: unknown option on command line.\n", + "BADREQUIRE":"Some requirements are violated: ", + "BOOLEAN":"`y' and `n' can only be applied to booleans or tristates", + "CANCEL":"Cancel", + "CANNOTSET":" Can't assign this value for bool or trit symbol.", + "CANTGO":"Cannot go to that symbol (it's probably derived).", + "CHARINVAL":"Invalid character in numeric field", + "CMDHELP":"Command summary", + "CONFIRM":"Confirmation", + "CONSTRAINTS":"Constraints:", + "CURSQUERY":"Type '?' for help", + "CURSESSET":"Curses mode set symbol %s to value %s", + "DEFAULT":"Default: ", + "DEPENDENTBUTTON":"Show dependents of...", + "DERIVED":"Symbol %s is derived and cannot be set.", + "DONE":"Done", + "EDITING":"Editing %s", + "EFFECTS":"Side effects:", + "EMPTYSEARCH":"You must enter a regular expression to search for", + "SUPPRESSBUTTON":"Suppress", + "SUPPRESSOFF":"Suppression turned off", + "SUPPRESSON":"Suppression turned on", + "EXIT":"Exit", + "EXITCONFIRM":"[Press q to exit, any other key to continue]", + "FIELDEDIT":"Field Editor help", + "FILEBUTTON":"File", + "FREEZEBUTTON":"Freeze", + "FREEZE":"Freeze all symbols with a user-supplied value?", + "FREEZELABEL":"(FROZEN)", + "FROZEN":"This symbol has been frozen and cannot be modified.", + "GHELP":"g -- go to a named symbol or menu (follow g with the label)", + "GO":"Go", + "GOBUTTON":"Go to...", + "GOTOBYNAME":"Go to symbol by name: ", + "GPROMPT":"Symbol to set or edit: ", + "HELPBUTTON":"Help", + "HELPFOR":"Help for %s", + "HSEARCHBUTTON":"Search help text", + "ICAPHELP":"I -- read in and freeze a configuration (follow I with the filename)", + "IHELP":"i -- read in a configuration (follow i with the filename)", + "INCCHANGES":"%d change(s) from %s", + "INFO":"Information", + "INVISIBLE":"Symbol is invisible", + "LOADFILE":"Load configuration from: ", + "LOADBUTTON":"Load", + "LOADFAIL":"Loading '%s' failed, continuing...", + "LOADFREEZE":"Load frozen configuration from: ", + "MDISABLED":"Module-valued symbols are not enabled", + "MHELP":"m -- set the value of the current symbol to m", + "MNOTVALID":" m is not a valid value for %s", + "MORE":"(More lines omitted...)", + "NAVBUTTON":"Navigation", + "NEW":"(NEW)", + "NHELP":"n -- set the value of the current symbol to n", + "NNOTVALID":" n is not a valid value for %s", + "NOANCEST":"No ancestors.", + "NOCMDLINE":"%s is the wrong type to be set from the command line", + "NOCURSES":"Your Python seems to be lacking curses support.", + "NODEPS":"No dependents.", + "NOFILE":"cmlconfigure: '%s' does not exist or is unreadable.", + "NOHELP":"No help available for %s", + "NOMATCHES":"No matches.", + "NONEXIST":"No such symbol or menu.", + "NOPOP":"Can't pop back further", + "NOSUCHAS":"No such symbol as", + "NOSYMBOL":"No symbol is currently selected.", + "NOTKINTER":"Can't find the tkinter, falling back to curses mode...", + "NOTSAVED":"Configuration not saved", + "OK":"Operation complete", + "OUTOFBOUNDS":"Legal values are in %s", + "PAGEPROMPT":"[Press Enter to continue] ", + "PARAMS":" Config = %s, prefix = %s", + "POSTMORTEM":"The ruleset was inconsistent. A state dump is in the file `post.mortem'.", + "PHELP":"p -- back up to previous symbol", + "PRESSANY":"[Press any key to continue]", + "PROBLEM":"Problem", + "QHELP":"q -- quit, discarding changes", + "QUITBUTTON":"Quit", + "QUITCONFIRM":"Really exit without saving?", + "RADIOBAD":" That's not a valid selection.", + "DISCRETEVALS":"%s may have these values:\n", + "REALLY":"Really exit without saving?", + "ROLLBACK":"%s=%s would have violated these requirements:", + "SAVEAS":"Save As...", + "SAVEBUTTON":"Save & Exit", + "SAVECONFIRM":"Save confirmation", + "SAVEEND":"Done", + "SAVEFILE":"Save configuration to: ", + "SAVESTART":"Saving %s", + "SAVING":"Saving...", + "SEARCHBUTTON":"Search symbols", + "SEARCHFAIL":"No matches.", + "SEARCHHELP":"Search help text for: ", + "SEARCHSYMBOLS":"Search symbols for regular expression: ", + "SHELP":"s -- save the configuration (follow with a filename)", + "SHOW_ANC":"Show ancestors of symbol: ", + "SHOW_DEP":"Show dependents of symbol: ", + "SIDEEFFECTS":"Side Effects", + "SIDEFROM":"Side effects from %s:", + "SKIPCALLED":" Skip-to-query called from %s", + "SKIPEXIT":" Skip-to-query arrived at %s", + "SYMUNKNOWN":"cmlconfigure: unknown symbol %s\n", + "TERMNOTSET":"TERM is not set.", + "TERMTOOSMALL":"Your terminal is too small to support curses mode.", + "TOOLONG":"String is too long to edit. Use cmlconfigure -t.", + "TRIT":"`m' can only be applied to tristates", + "TTYQUERY":"Type '?' at any prompt for help, 'h' for command help.", + "TTYSUMMARY":" Command summary:", + "UNSUPPRESSBUTTON":"Unsuppress", + "UNKNOWN":"Unknown command %s -- type `h' for a command summary", + "UPBUTTON":"Up", + "VERSION":", version %s.", + "VISIBLE":"Symbol is visible", + "VISIBILITY":"Visibility: ", + "WELCOME":"Welcome to the %s", + "XHELP":"x -- exit, saving the configuration", + "YHELP":"y -- set the value of the current symbol to y", + "YNOTVALID":" y is not a valid value for %s", + + "TTYHELP":""" +Type '?' to see help text associated with the current symbol. +Typing Return accepts the default for the query. + +Each prompt consists of a label, followed by a colon, followed by prompt text, +followed by a value and a bracketed range indication. The brackets indicate +whether the symbol is bool [] modular <> or integer/string (). The current +value in the brackets may be blank (indicating bool or trit n), 'M' (indicating +trit m) or an integer or string literal. If `?' follows, it means help is +available for this symbol. +""", + "CURSHELP":"""\ +Use up- and down-arrows to change the current selection. Use spacebar, Enter +to enter a selected sub-menu, or to toggle the value of a selected boolean +symbol, or to cycle through the possible y/m/n values of a selected tristate +symbol, or to begin editing the value of a symbol that has string or decimal +or hexadecimal type. Use left-arrow to back out of a menu. +Ctrl-L refreshes the screen. + +'y', 'm', and 'n' set boolean or trit symbols to the corresponding values. + +When you are editing a symbol value, the highlight on its value field will +switched off. A subset of Emacs's default key bindings is available to edit +the field; to see details, enter such a field (by typing a space with the +symbol selected) and press your tab key. Other characters will usually be +inserted at the cursor location. Press up-arrow or down-arrow or Enter to +stop editing a field. + +Type `x' to save configuration and exit, `q' to exit without saving, `s' to +save the configuration to a named file, and `i' to read in a configuration by +filename. -I reads in a configuration and freezes the variables. + +Type '?' to see any help text associated with the current symbol. Type 'h' +to see this command summary again. Some expert commands are documented +in separate help; press TAB from this help screen to see it.\ +""", + "EDITHELP":"""\ +Numbers and short strings can be edited in their display fields near the +left edge of the screen. To edit longer strings, enter a right arrow at the +left edge of the display field. This will pop up a wide window in which you +can edit the value. The field editor supports a subset of Emacs's default +key bindings. + + Ctrl-A Go to left edge of window. + Ctrl-B Cursor left, wrapping to previous line if appropriate. + Ctrl-D Delete character under cursor. + Ctrl-E Go to right edge (nospaces off) or end of line (nospaces on). + Ctrl-F Cursor right, wrapping to next line when appropriate. + Ctrl-H Delete character backward. + Ctrl-J Terminate if the window is 1 line, otherwise insert newline. + Ctrl-K If line is blank, delete it, otherwise clear to end of line. + Ctrl-L Refresh screen + Ctrl-N Cursor down; move down one line. + Ctrl-O Insert a blank line at cursor location. + Ctrl-P Cursor up; move up one line. + KEY_LEFT = Ctrl-B, KEY_RIGHT = Ctrl-F, KEY_UP = Ctrl-P, KEY_DOWN = Ctrl-N + KEY_BACKSPACE = Ctrl-h + +To leave the field editor, press Enter or carriage return, or use the up and +down arrows. Ctrl-g leaves the field editor ant revers to the unedited value.\ +""", + "EXPERTHELP":"""\ +Here are the expert commands: + +/ -- Search for symbols matching a given regular expression in either + the symbol name or prompt text. + +g -- Go to symbol. Go directly to symbol. Do not pass go, do not collect $200. + If the target symbol is suppressed, clear the suppression flag. + +i -- Load a configuration. Set all the variables in the given config file. + +I -- Load a configuration. Set all the variables in the config file, + then freeze them so they can't be overridden. + +e -- Examine the value of the named symbol. + +S -- Toggle the suppression flag (normally on). When the suppression flag + is off, invisible symbols are not skipped. + +Type 'h' to see the help for ordinary commands. +""", + "TKCMDHELP":"""\ +The main window is a configuration menu browser. It presents you with a menu of +symbols and sub-menu buttons. If there is help available for a symbol or menu, +there will be an active `Help' button off to the right. In the help window, +URLS are live; clicking on them will launch a browser. + +You can set boolean or tristate symbols simply by clicking on the appropriate +value. You can change the values of numeric and string symbols by editing +their fill-in fields. + +In the file menu, the `Load' command allows you to load a configuration file. +Values in the configuration file are set as though the user had selected them. + +In the file menu, the `Freeze' command freezes all symbols that have +been set by user actions (including loading configuration files) so they +won't be queried again and cannot subsequently be overridden. + +In the File menu, the `Save' command saves the configuration file to the +location specified by configurator command-line options). The `Save As...' +command saves the defconfig file (only) to a named location. + +The Back command in the Navigation menu (and the toolbar button) returns you to +the menu visited before this one. When you back out of a sub-menu, the label +on its button is highlighted in blue. + +The Go command in the Navigation menu moves you to a named menu, or to the +menu containing a named symbol. After a `Go' command the target is +highlighted blue. + +The Search command in the Navigation menu matches a given regular expression +against the names and prompt text of all configuration symbols. It generates +a menu that includes all hits, and turns off the elisions flag. + +The Suppress/Unsuppress command in the Navigation toggles whether suppressed +symbols are visible or not. Normally, suppressed symbols are invisible and the +menu entry reads `Unsuppress'. The suppression flag may also be cleared by +using the `Go' command to visit a suppressed symbol, or by doing a Search. +""" +} + +# Eventually, do more intelligent selection using LOCALE +lang = _eng + +# Shared code + +def cgenprompt(symbol): + "Generate an appropriate prompt for the given symbol." + value = symbol.eval() + if symbol.type in ("bool", "trit"): + if symbol.type == "trit" and configuration.trits_enabled: + format = "<%s>" + else: + format = "[%s]" + if value == cml.y: + return format % "Y" + elif value == cml.m: + return format % "m" + elif value == cml.n: + return format % " " + elif symbol.type == "choices": + if symbol.menuvalue: + return symbol.menuvalue.name + elif symbol.default: + return symbol.default.name + else: + return "??" + elif symbol.type in ("message", "menu"): + return "" + elif symbol.type in ("decimal", "hexadecimal", "string"): + return str(value) + else: + return "??" + +# Line-oriented interface + +class tty_style_menu(cmd.Cmd): + "A class for browsing a CML2 menu subtree with line_oriented commands." + + def skip_to_query(self, function, showbase=0): + configuration.debug_emit(2, lang["SKIPCALLED"] % (self.current.name,)) + if showbase: + if self.current.type == "menu": + self.menu_banner(self.current) + configuration.visit(self.current) + while 1: + self.current = function(self.current) + if self.current == configuration.start: + break; + elif self.current.frozen: + sys.stdout.write(self.generate_prompt(self.current) + lang["FREEZELABEL"] + "\n") + continue + elif not configuration.is_visible(self.current): + continue + elif self.current.type == "message": + print self.current.prompt + elif self.current.type in ("menu", "choices"): + self.menu_banner(self.current) + configuration.visit(self.current) + if not self.current.type in ("message", "menu"): + break; + configuration.debug_emit(2, lang["SKIPEXIT"] % (self.current.name,)) + if self.current == configuration.start: + self.do_s(config) + raise SystemExit + + def menu_banner(self, menu): + sys.stdout.write("*\n* %s: %s\n*\n" % (menu.name, menu.prompt)) + + def generate_prompt(self, symbol): + leader = " " * symbol.depth + genpart = cgenprompt(symbol) + if symbol.help and not symbol.frozen: + havehelp = "?" + else: + havehelp = "" + if inclusions and not symbol.included and symbol.is_symbol(): + genpart += " " + lang["NEW"] + if symbol.type in ("bool", "trit"): + return leader+"%s: %s %s%s: " % (symbol.name, symbol.prompt, genpart, havehelp) + elif symbol.enum: + dflt = cml.evaluate(symbol, debug) + if symbol.frozen: + p = "" + else: + p = leader + lang["DISCRETEVALS"] % (symbol.prompt,) + selected = "" + for (label, value) in symbol.range: + if value == dflt: + selected = "(" + label + ")" + if not symbol.frozen: + p = p + leader + "%2d: %s\n" % (value, label) + return p + leader + "%s: %s %s%s: " % (symbol.name, symbol.prompt,selected, havehelp) + + elif symbol.type in ("decimal", "hexadecimal", "string"): + dflt = cml.evaluate(symbol, debug) + return leader + "%s: %s (%s)%s: " % (symbol.name, symbol.prompt, dflt, havehelp) + elif symbol.type == "choices": + if symbol.frozen: + p = "" + else: + p = leader + lang["DISCRETEVALS"] % (symbol.prompt) + index = 0 + selected= "" + for v in symbol.items: + index = index + 1 + if not symbol.frozen: + p = p + leader + "%2d: %s%s%s\n" % (index, v.name, " " * (32 - len(v.name)), v.prompt) + if v.eval(): + selected = v.name + return p + leader + "%s: %s (%s)%s: " % (symbol.name, symbol.prompt,selected, havehelp) + + def set_symbol(self, symbol, value, freeze=0): + "Set the value of a symbol -- line-oriented error messages." + if symbol.is_numeric() and symbol.range: + if not configuration.range_check(symbol, value): + print lang["OUTOFBOUNDS"] % (symbol.range,) + return + (ok, effects, violation) = configuration.set_symbol(symbol, value, freeze) + if effects: + print lang["EFFECTS"] + sys.stdout.writelines(string.join(effects, "\n") + "\n\n") + if not ok: + print lang["ROLLBACK"] % (symbol.name, value) + if violation: + sys.stdout.writelines(string.join(violation, "\n") + "\n") + + def page(self, text): + text = string.split(text, "\n") + pagedepth = os.environ.get("LINES") + if pagedepth: + pagedepth = int(pagedepth) + else: + pagedepth = 24 + base = 0 + try: + while base < len(text): + for i in range(base, base+pagedepth): + if i >= len(text): + break; + print text[i] + base = base + pagedepth + raw_input(lang["PAGEPROMPT"]) + except KeyboardInterrupt: + print "" + + def __init__(self, config=None, banner=""): + cmd.Cmd.__init__(self) + self.config = config + if banner and configuration.banner.find("%s") > -1: + self.banner = configuration.banner % banner + elif banner: + self.banner = banner + else: + self.banner = configuration.banner + self.current = configuration.start; + self.skip_to_query(configuration.next_node, 1) + # This handles the case that all variables were frozen. + self.prompt = self.generate_prompt(self.current) + + def do_g(self, line): + if configuration.dictionary.has_key(line): + self.current = configuration.dictionary[line] + configuration.visit(self.current) + if not configuration.is_visible(self.current) and not self.current.frozen: + print lang["SUPPRESSOFF"] + self.suppressions = 0 + if self.current.type in ("menu", "message"): + self.skip_to_query(configuration.next_node, 1) + else: + print lang["NONEXIST"] + def do_i(self, line): + file = string.strip(line) + try: + (changes, errors) = configuration.load(file, freeze=0) + except IOError: + print lang["LOADFAIL"] % file + else: + if errors: + print errors + print lang["INCCHANGES"] % (changes,file) + if configuration.side_effects: + sys.stdout.writelines(string.join(configuration.side_effects, "\n") + "\n") + def do_I(self, line): + file = string.strip(line) + try: + (changes, errors) = configuration.load(file, freeze=1) + except IOError: + print lang["LOADFAIL"] % file + else: + if errors: + print errors + print lang["INCCHANGES"] % (changes,file) + if configuration.side_effects: + sys.stdout.writelines(string.join(configuration.side_effects, "\n") + "\n") + def do_y(self, line): + if not line: + target = self.current + else: + # Undocumented feature -- "y FOO" sets FOO to y. + # No skip is done afterwards. + line = string.strip(line) + if not configuration.dictionary.has_key(line): + print lang["NONEXIST"] + return + else: + target = configuration.dictionary[line] + if not target.type in ("trit", "bool"): + print lang["YNOTVALID"] % (target.name) + else: + self.set_symbol(target, cml.y) + if target == self.current: + self.skip_to_query(configuration.next_node) + return None + def do_m(self, line): + if not line: + target = self.current + else: + # Undocumented feature -- "m FOO" sets FOO to m. + # No skip is done afterwards. + line = string.strip(line) + if not configuration.dictionary.has_key(line): + print lang["NONEXIST"] + return + else: + target = configuration.dictionary[line] + if not target.type == "trit": + print lang["MNOTVALID"] % (target.name) + elif not configuration.trits_enabled and not target.vital: + print lang["MNOTVALID"] % (target.name) + else: + self.set_symbol(target, cml.m) + if target == self.current: + self.skip_to_query(configuration.next_node) + return None + def do_n(self, line): + if not line: + target = self.current + else: + # Undocumented feature -- "n FOO" sets FOO to n. + # No skip is done afterwards. + line = string.strip(line) + if not configuration.dictionary.has_key(line): + print lang["NONEXIST"] + return + else: + target = configuration.dictionary[line] + if not target.type in ("trit", "bool"): + print lang["NNOTVALID"] % (target.name) + else: + self.set_symbol(target, cml.n) + if target == self.current: + self.skip_to_query(configuration.next_node) + return None + def do_p(self, line): + self.skip_to_query(configuration.previous_node) + return None + def do_s(self, line): + file = string.strip(line) + failure = configuration.save(file, cml.Baton(lang["SAVESTART"] % file, lang["SAVEEND"])) + if failure: + print failure + def do_x(self, line): + # Terminate this cmd instance, saving configuration + self.do_s(config) + return 1 + def do_C(self, line): + # Undocumented -- present for debugging. + filter = None + if line: + line = line.strip() + if configuration.dictionary.has_key(line): + filter = configuration.dictionary[line] + for i in range(len(configuration.constraints)): + constraint = configuration.constraints[i].predicate + reduced = configuration.reduced[i] + if reduced in (cml.n, cml.m, cml.y): + continue + if filter and filter not in cml.flatten_expr(constraint): + continue + if constraint == reduced: + print cml.display_expression(reduced)[1:-1] + else: + print "%s -> %s" % (constraint,cml.display_expression(reduced)[1:-1]) + return 0 + def do_q(self, line): + # Terminate this cmd instance, not saving configuration + raise SystemExit, 1 + # Debugging commands -- not documented + def do_v(self, line): + # Set the debug flag + if not line: + configuration.debug += 1 + else: + configuration.debug = int(line) + return 0 + def do_e(self, line): + # Examine the state of a given symbol + symbol = string.strip(line) + if configuration.dictionary.has_key(symbol): + entry = configuration.dictionary[symbol] + print entry + if entry.constraints: + print lang["CONSTRAINTS"] + for wff in entry.constraints: + print cml.display_expression(wff) + if configuration.is_visible(entry): + print lang["VISIBLE"] + else: + print lang["INVISIBLE"] + help = entry.help() + if help: + print help + else: + print lang["NOHELP"] % (entry.name,) + else: + print lang["NOSUCHAS"], symbol + return 0 + def do_E(self, line): + # Dump the state of the bindings stack (undocumented) + print configuration.binddump() + return 0 + def do_S(self, line): + # Toggle the suppressions flag + configuration.suppressions = not configuration.suppressions + if configuration.suppressions: + print lang["SUPPRESSON"] + else: + print lang["SUPPRESSOFF"] + return 0 + def emptyline(self): + if self.current and self.current.type == "choices": + if self.current.default: + # print lang["TTYSETTING"] % (`self.current.default`) + self.set_symbol(self.current.default, cml.y) + self.skip_to_query(configuration.next_node) + return 0 + def default(self, line): + v = string.strip(line) + if v == "h": + self.page(string.join(map(lambda x: lang[x], + ("TTYSUMMARY", + "GHELP", "IHELP", "ICAPHELP", "YHELP", + "MHELP", "NHELP", "PHELP", "SHELP", + "QHELP", "XHELP", "TTYHELP")), "\n")) + elif self.current.type == 'choices': + try: + ind = string.atoi(v) + except ValueError: + ind = -1 + if ind <= 0 or ind > len(self.current.items): + print lang["RADIOBAD"] + else: + # print lang["TTYSETTING"] % (`self.current.items[ind - 1]`) + self.set_symbol(self.current.items[ind - 1], cml.y) + self.skip_to_query(configuration.next_node) + elif self.current.type in ("bool", "trit"): + print lang["CANNOTSET"] + else: + self.set_symbol(self.current, v) + self.skip_to_query(configuration.next_node) + return None + def help_g(self): + print lang["GHELP"] + def help_i(self): + print lang["IHELP"] + def help_I(self): + print lang["ICAPHELP"] + def help_y(self): + print lang["YHELP"] + def help_m(self): + print lang["MHELP"] + def help_n(self): + print lang["NHELP"] + def help_p(self): + print lang["PHELP"] + def help_s(self): + print lang["SHELP"] + def help_q(self): + print lang["QHELP"] + def help_x(self): + print lang["XHELP"] + def do_help(self, line): + help = self.current.help() + if help: + self.page(help) + else: + print lang["NOHELP"] % (self.current.name,) + + def postcmd(self, stop, line): + if stop: + return stop + self.prompt = self.generate_prompt(self.current) + return None + +# Curses interface + +class MenuBrowser: + "Support abstract browser operations on a stack of indexable objects." + def __init__(self, debug=0, errout=sys.stderr): + self.page_stack = [] + self.selection_stack = [] + self.viewbase_stack = [] + self.viewport_height = 0 + self.debug = debug + self.errout = errout + + def match(self, a, b): + "Browseable-object comparison." + return a == b + + def push(self, browseable, selected=None): + "Push a browseable object onto the location stack." + if self.debug: + self.errout.write("MenuBrowser.push(): pushing %s=@%d, selection=%s\n" % (browseable, id(browseable), `selected`)) + selnum = 0 + if selected == None: + if self.debug: + self.errout.write("MenuBrowser.push(): selection defaulted\n") + else: + for i in range(len(browseable)): + selnum = len(browseable) - i - 1 + if self.match(browseable[selnum], selected): + break + if self.debug: + self.errout.write("MenuBrowser.push(): selection set to %d\n" % (selnum)) + self.page_stack.append(browseable) + self.selection_stack.append(selnum) + self.viewbase_stack.append(selnum - selnum % self.viewport_height) + if self.debug: + object = self.page_stack[-1] + selection = self.selection_stack[-1] + viewbase = self.viewbase_stack[-1] + self.errout.write("MenuBrowser.push(): pushed %s=@%d->%d, selection=%d, viewbase=%d\n" % (object, id(object), len(self.page_stack), selection, viewbase)) + + def pop(self): + "Pop a browseable object off the location stack." + if not self.page_stack: + if self.debug: + self.errout.write("MenuBrowser.pop(): stack empty\n") + return None + else: + item = self.page_stack[-1] + self.page_stack = self.page_stack[:-1] + self.selection_stack = self.selection_stack[:-1] + self.viewbase_stack = self.viewbase_stack[:-1] + if self.debug: + if len(self.page_stack) == 0: + self.errout.write("MenuBrowser.pop(): stack is empty.") + else: + self.errout.write("MenuBrowser.pop(): new level %d, object=@%d, selection=%d, viewbase=%d\n" % (len(self.page_stack), id(self.page_stack[-1]), self.selection_stack[-1], self.viewbase_stack[-1])) + return item + + def stackdepth(self): + "Return the current stack depth." + return len(self.page_stack) + + def list(self): + "Return all elements of the current object that ought to be visible." + if not self.page_stack: + return None + object = self.page_stack[-1] + viewbase = self.viewbase_stack[-1] + + if self.debug: + self.errout.write("MenuBrowser.list(): stack level %d. object @%d, listing %s\n" % (len(self.page_stack)-1, id(object), object[viewbase:viewbase+self.viewport_height])) + + # This requires a slice method + return object[viewbase:viewbase+self.viewport_height] + + def top(self): + "Return the top-of-stack menu" + if self.debug >= 2: + self.errout.write("MenuBrowser.top(): level=%d, @%d\n" % (len(self.page_stack)-1,id(self.page_stack[-1]))) + return self.page_stack[-1] + + def selected(self): + "Return the currently selected element in the top menu." + object = self.page_stack[-1] + selection = self.selection_stack[-1] + if self.debug: + self.errout.write("MenuBrowser.selected(): at %d, object=@%d, %s\n" % (len(self.page_stack)-1, id(object), self.selection_stack[-1])) + return object[selection] + + def viewbase(self): + "Return the viewport base of the current menu." + object = self.page_stack[-1] + base = self.viewbase_stack[-1] + if self.debug: + self.errout.write("MenuBrowser.viewbase(): at level=%d, object=@%d, %d\n" % (len(self.page_stack)-1, id(object), base,)) + return base + + def thumb(self): + "Return top and bottom boundaries of a thumb scaled to the viewport." + object = self.page_stack[-1] + windowscale = float(self.viewport_height) / float(len(object)) + thumb_top = self.viewbase() * windowscale + thumb_bottom = thumb_top + windowscale * self.viewport_height - 1 + return (thumb_top, thumb_bottom) + + def move(self, delta=1, wrap=0): + "Move the selection on the current item downward." + if delta == 0: + return + object = self.page_stack[-1] + oldloc = self.selection_stack[-1] + + # Change the selection. Requires a length method + if oldloc + delta in range(len(object)): + newloc = oldloc + delta + elif wrap: + newloc = (oldloc + delta) % len(object) + elif delta > 0: + newloc = len(object) - 1 + else: + newloc = 0 + return self.goto(newloc) + + def goto(self, newloc): + "Move the selection to the menu item with the given number." + oldloc = self.selection_stack[-1] + self.selection_stack[-1] = newloc + # When the selection is moved out of the viewport, move the viewbase + # just part enough to track it. + oldbase = self.viewbase_stack[-1] + if newloc in range(oldbase, oldbase + self.viewport_height): + pass + elif newloc < oldbase: + self.viewbase_stack[-1] = newloc + else: + self.scroll(newloc - (oldbase + self.viewport_height) + 1) + if self.debug: + self.errout.write("MenuBrowser.down(): at level=%d, object=@%d, old selection=%d, new selection = %d, new base = %d\n" % (len(self.page_stack)-1, id(self.page_stack[-1]), oldloc, newloc, self.viewbase_stack[-1])) + return (oldloc != newloc) + + def scroll(self, delta=1, wrap=0): + "Scroll the viewport up or down in the current option." + object = self.page_stack[-1] + if not wrap: + oldbase = self.viewbase_stack[-1] + if delta > 0 and oldbase+delta > len(object)-self.viewport_height: + return + elif delta < 0 and oldbase + delta < 0: + return + self.viewbase_stack[-1] = (self.viewbase_stack[-1] + delta) % len(object) + + def dump(self): + "Dump the whole stack of objects." + self.errout.write("Viewport height: %d\n" % (self.viewport_height,)) + for i in range(len(self.page_stack)): + self.errout.write("Page: %d\n" % (i,)) + self.errout.write("Selection: %d\n" % (self.selection_stack[i],)) + self.errout.write(`self.page_stack[i]` + "\n"); + + def next(self, wrap=0): + return self.move(1, wrap) + + def previous(self, wrap=0): + return self.move(-1, wrap) + + def page_down(self): + return self.move(2*self.viewport_height-1) + + def page_up(self): + return self.move(-(2*self.viewport_height-1)) + +class PopupBaton: + "A popup window with a twirly-baton." + def __init__(self, startmsg, master): + self.subwin = master.window.subwin(3, len(startmsg)+3, + (master.lines-3)/2, + (master.columns-len(startmsg)-3)/2) + self.subwin.clear() + self.subwin.box() + self.subwin.addstr(1,1, startmsg) + self.subwin.refresh() + self.count = 0 + + def twirl(self, ch=None): + if ch: + self.subwin.addch(ch) + else: + self.subwin.addch("-/|\\"[self.count % 4]) + self.subwin.addch("\010") + self.subwin.refresh() + self.count = self.count + 1 + + def announce(self, msg): + pass + + def end(self, msg=None): + pass + +class WindowBaton: + "Put a twirly-baton at the upper right corner to indicate activity." + def __init__(self, master): + self.master = master + self.count = 0 + + def twirl(self, ch=None): + if ch: + self.master.window.addch(0, self.master.columns-1, ch) + else: + self.master.window.addch(0, self.master.columns-1, "-/|\\"[self.count % 4]) + self.master.window.addch("\010") + self.master.window.refresh() + self.count = self.count + 1 + + def announce(self, msg): + pass + + def end(self, msg=None): + self.master.window.addch(0, self.master.columns-1, " ") + self.master.window.refresh() + pass + +class curses_style_menu: + "Command interpreter for line-oriented configurator." + input_nmatch = re.compile(r">>>.*\(([0-9]+)\)$") + valwidth = 8 # This is a constant + + def __init__(self, stdscr, config, banner): + if banner and configuration.banner.find("%s") > -1: + self.banner = configuration.banner % banner + elif banner: + self.banner = banner + else: + self.banner = configuration.banner + self.input_queue = [] + self.menus = self.values = self.textbox = None + self.window = stdscr + self.msgbuf = "" + self.lastmenu = None + + menudebug = 0 + if configuration.debug > 1: + menudebug = configuration.debug - 2 + self.menus = MenuBrowser(menudebug,configuration.errout) + + (self.lines, self.columns) = self.window.getmaxyx() + if self.lines < 9 or self.columns < 60: + raise "TERMTOOSMALL" + self.menus.viewport_height = self.lines-1 + + if curses.has_colors(): + curses.init_pair(curses.COLOR_BLUE, curses.COLOR_BLUE, curses.COLOR_BLACK) + curses.init_pair(curses.COLOR_GREEN, curses.COLOR_GREEN, curses.COLOR_BLACK) + self.window.clear() + self.window.scrollok(0) + self.window.idlok(1) + + # Most of the work gets done here + self.interact(config) + + # Input (with logging support) + + def getch(self, win): + if not readlog: + try: + ch = win.getch() + except KeyboardInterrupt: + curses.endwin() + raise + else: + time.sleep(1) + if input_queue: + ch = self.input_queue[0] + input_queue = input_queue[1:] + while 1: + line = readlog.readline() + if line == "": + ch = -1 + break + m = curses_style_menu.input_nmatch.match(line) + if m: + ch = string.atoi(m.group(1)) + break + if configuration.debug: + configuration.debug_emit(1, ">>> '%s' (%d)"% (curses.keyname(ch), ch)) + return ch + + def ungetch(self, c): + if readlog: + self.input_queue = c + self.input_queue + else: + curses.ungetch(c) + + # Notification + + def help_popup(self, instructions, msglist, beep=1): + "Pop up a help message." + if configuration.debug: + configuration.errout.write("***" + lang[instructions] + "\n") + configuration.errout.write(string.join(msglist, "\n")) + msgwidth = 0 + pad = 2 # constant, must be >= 1 + msgparts = [] + for line in msglist: + unemitted = line + ww = self.columns - pad + while unemitted: + msgparts.append(unemitted[:ww]) + unemitted = unemitted[ww:] + if len(msgparts) > self.lines - pad*2 - 1: + msgparts = msgparts[:self.lines - pad*2 - 2] + [lang["MORE"]] + for msg in msgparts: + if len(msg) > msgwidth: + msgwidth = len(msg) + msgwidth = min(self.columns - pad*2, msgwidth) + start_x = (self.columns - msgwidth) / 2 + start_y = (self.lines - len(msgparts)) / 2 + leave = lang[instructions] + msgwidth = max(msgwidth, len(leave)) + subwin = self.window.subwin(len(msgparts)+1+pad*2, msgwidth+pad*2, + start_y-pad, start_x-pad) + subwin.clear() + for i in range(len(msgparts)): + subwin.addstr(pad+i, pad+(msgwidth-len(msgparts[i]))/2, + msgparts[i], curses.A_BOLD) + subwin.addstr(pad*2+len(msgparts)-1, pad+(msgwidth-len(leave))/2, + leave) + subwin.box() + if beep: + curses.beep() + self.window.noutrefresh() + subwin.noutrefresh() + curses.doupdate() + value = self.getch(self.window) + subwin.clear() + subwin.noutrefresh() + self.window.noutrefresh() + curses.doupdate() + return value + + def query_popup(self, prompt, initval=None): + "Pop up a window to accept a string." + maxsymwidth = 30 # Constant + if initval and len(initval) > maxsymwidth: + self.help_popup("PRESSANY", (lang["TOOLONG"],), beep=1) + return initval + gwinwidth = (len(prompt) + maxsymwidth) + start_y = self.lines/2-3 + start_x = (self.columns - gwinwidth)/2 + subwin = self.window.subwin(3, 2+gwinwidth, start_y-1, start_x-1) + subwin.clear() + subwin.box() + self.window.addstr(start_y, start_x, prompt, curses.A_BOLD) + self.window.refresh() + subwin.refresh() + subsubwin = subwin.subwin(1,maxsymwidth,start_y,start_x+len(prompt)) + if initval: + subsubwin.addstr(0, 0, initval[:maxsymwidth-1]) + subsubwin.touchwin() + configuration.debug_emit(1, "+++ %s"% (prompt,)) + textbox = curses.textpad.Textbox(subsubwin) + popupval = textbox.edit() + self.window.touchwin() + if initval and textbox.lastcmd == curses.ascii.BEL: + return initval + else: + return popupval + + # Symbol state changes + + def set_symbol(self, sym, val, freeze=0): + "Try to set a symbol, display constraints in a popup if it fails." + configuration.debug_emit(1, lang["CURSESSET"] % (sym.name, val)) + (ok, effects, violation) = configuration.set_symbol(sym, val, freeze) + if not ok: + effects.append("\n") + self.help_popup("PRESSANY", + effects + [lang["BADREQUIRE"]] + violation, beep=1) + elif violation: + self.help_popup("PRESSANY", violation, beep=0) + + # User interaction + + def in_menu(self): + "Return 1 if we're in a symbol menu, 0 otherwise" + return isinstance(self.menus.selected(), cml.ConfigSymbol) + + def recompute(self, here): + "Recompute the visible-members set for the given menu." + # First, make sure any choices menus immediately + # below this one get their defaults asserted. Has + # to be done here because the visibility of stuff + # in a menu may depend on a choice submenu before + # it, so we need the default value to be hardened, + map(configuration.visit, here.items) + # Now compute visibilities. + visible = filter(lambda x: configuration.is_visible(x), here.items) + lookingat = self.menus.selected() + if lookingat in visible: + selected = self.menus.selected() + self.menus.pop() + self.menus.push(visible, selected) + self.seek_mutable(1) + else: + if configuration.suppressions: + configuration.debug_emit(1, lang["SUPPRESSOFF"]) + configuration.suppressions = 0 + self.menus.pop() + self.menus.push(here.items) + # We've recomputed the top-of-stack item, + # so we must regenerate all associated prompts. + self.values = map(cgenprompt, self.menus.top()) + + def redisplay(self, repaint): + "Repaint the screen." + sel_symbol = current_line = None + if self.banner and self.in_menu(): + title = self.msgbuf + (" " * (self.columns - len(self.msgbuf) - len(self.banner) -1)) + self.banner + else: + title = (" " * ((self.columns-len(self.msgbuf)) / 2)) + self.msgbuf + self.window.move(0, 0) + self.window.clrtoeol() + self.window.addstr(title, curses.A_BOLD) + + (thumb_top, thumb_bottom) = self.menus.thumb() + + # Display the current band of entries + screenlines = self.menus.list() + if self.in_menu(): + screenvals = self.values[self.menus.viewbase():self.menus.viewbase()+self.menus.viewport_height] + configuration.debug_emit(1, "screenvals: " + `screenvals`) + else: + current_prompt = None + + for i in range(self.lines - 1): + self.window.move(i+1, 0) + self.window.clrtoeol() + if len(self.menus.top()) <= self.lines - 1: + thumb = None + elif i <= thumb_bottom and i >= thumb_top: + thumb = curses.ACS_CKBOARD + else: + thumb = curses.ACS_VLINE + if i < len(screenlines): + child = screenlines[i] + if type(child) is type(""): + self.window.addstr(i+1, 0, child) + elif child.type == "message": + self.window.addstr(i+1, 0, child.prompt + " ") + self.window.hline(i+1, len(child.prompt) + 2, + curses.ACS_HLINE, self.columns-len(child.prompt)-3) + else: + if child == self.menus.selected(): + lpointer = ">" + rpointer = "<" + highlight = curses.A_REVERSE + current_line = i + current_prompt = screenvals[i] + sel_symbol = child + else: + lpointer = rpointer = " " + highlight = curses.A_NORMAL + if curses.has_colors(): + if child.frozen: + highlight=curses.color_pair(curses.COLOR_BLUE) + elif child.inspected: + highlight=curses.color_pair(curses.COLOR_GREEN) + elif child.setcount or child.included: + highlight=curses.color_pair(curses.COLOR_GREEN) + # OK, now assemble the rest of the line + leftpart = (" " * child.depth) + child.prompt + if inclusions and not child.included and child.is_symbol(): + leftpart = leftpart + " " + lang["NEW"] + if child.frozen: + leftpart = leftpart + " " + lang["FREEZELABEL"] + if child.help(): + helpflag = "?" + else: + helpflag = "" + rightpart = "(" + child.name + helpflag + ")" + # Now make sure the information will fit in the line + fixedlen = 1+curses_style_menu.valwidth+1+len(rightpart)+(thumb!=None) + 1 + leftpart = leftpart[:self.columns-fixedlen] + filler = " " * (self.columns - len(leftpart) - fixedlen) + line = leftpart + filler + rightpart + # Write it + self.window.move(i+1, 0) + self.window.addstr(lpointer) + if "edit" in repaint and child == self.menus.selected(): + self.window.move(i+1, curses_style_menu.valwidth+2) + self.window.attron(highlight) + else: + self.window.attron(highlight) + valstring = screenvals[i][:curses_style_menu.valwidth] + self.window.addstr(valstring + (" " * (curses_style_menu.valwidth - len(valstring))) + " ") + self.window.addstr(line) + self.window.attroff(highlight) + + # Ignore error from writing to last cell of + # last line; the old curses module in 1.5.2 + # doesn't like this. The try/catch around the + # thumb write does the same thing. + try: + self.window.addstr(rpointer) + except: + pass + if thumb: + try: + self.window.addch(i+1, self.columns-1, thumb) + except: + pass + + if type(self.menus.selected()) is not type(""): + self.window.move(current_line + 1, 0) + if "main" in repaint or "edithelp" in repaint: + self.window.noutrefresh() + if "edit" in repaint: + self.textbox.win.touchwin() + self.textbox.win.noutrefresh() + curses.doupdate() + return (current_line, current_prompt, sel_symbol) + + def accept_field(self, selected, value, oldval): + "Process the contents of a field edit." + if selected.type == "hexadecimal": + if oldval[:2] != "0x": + value = "0x" + value + value = string.strip(value) + if selected.is_numeric(): + value = string.atoi(value, 0) + if not configuration.range_check(selected, value): + self.help_popup("PRESSANY", + (lang["OUTOFBOUNDS"] % (selected.range,),)) + return + self.set_symbol(selected, value) + + def symbol_menu_command(self, cmd, operand): + "Handle commands that don't directly hack the screen or exit." + recompute = 0 + if cmd == curses.KEY_LEFT: + if self.menus.stackdepth() <= 1: + self.msgbuf = lang["NOPOP"] + else: + self.menus.pop() + self.lastmenu = self.menus.selected() + recompute = 1 + elif cmd == ord('y'): + if not self.in_menu(): + self.help_popup("PRESSANY", (lang["NOSYMBOL"],)) + elif operand.type in ("bool", "trit"): + self.set_symbol(operand, cml.y) + else: + self.help_popup("PRESSANY", (lang["BOOLEAN"],)) + recompute = 1 + if operand.menu.type != "choices": + self.ungetch(curses.KEY_DOWN) + elif cmd == ord('m'): + if not self.in_menu(): + self.help_popup("PRESSANY", (lang["NOSYMBOL"],)) + elif not configuration.trits_enabled: + self.help_popup("PRESSANY", (lang["MDISABLED"],)) + elif operand.type == "trit": + self.set_symbol(operand, cml.m) + elif operand.type == "bool": + self.set_symbol(operand, cml.y) # Shortcut from old menuconfig + else: + self.help_popup("PRESSANY", (lang["TRIT"],)) + recompute = 1 + if operand.menu.type != "choices": + self.ungetch(curses.KEY_DOWN) + elif cmd == ord('n'): + if not self.in_menu(): + self.help_popup("PRESSANY", (lang["NOSYMBOL"],)) + elif operand.type in ("bool", "trit") and \ + operand.menu.type != "choices": + self.set_symbol(operand, cml.n) + else: + self.help_popup("PRESSANY", (lang["BOOLEAN"],)) + recompute = 1 + if operand.menu.type != "choices": + self.ungetch(curses.KEY_DOWN) + elif cmd == ord('i'): + file = self.query_popup(lang["LOADFILE"]) + try: + (changes, errors) = configuration.load(file, freeze=0) + except: + self.help_popup("PRESSANY", [lang["LOADFAIL"] % file]) + else: + if errors: + self.help_popup("PRESSANY", (errors,)) + else: + # Note, we don't try to display side effects here. + # From a file include, there are very likely to + # be more of them than can fit in a popup. + self.help_popup("PRESSANY", + [lang["INCCHANGES"]%(changes,file)], beep=0) + recompute = 1 + elif cmd == ord('I'): + file = self.query_popup(lang["LOADFILE"]) + try: + (changes, errors) = configuration.load(file, freeze=0) + except: + self.help_popup("PRESSANY", [lang["LOADFAIL"] % file]) + else: + if errors: + self.help_popup("PRESSANY", (errors,)) + else: + # Note, we don't try to display side effects here. + # From a file include, there are very likely to + # be more of them than can fit in a popup. + self.help_popup("PRESSANY", + [lang["INCCHANGES"]%(changes,file)], beep=0) + recompute = 1 + elif cmd == ord('S'): + configuration.suppressions = not configuration.suppressions + recompute = 1 + elif cmd == ord('/'): + pattern = self.query_popup(lang["SEARCHSYMBOLS"]) + if pattern: + hits = configuration.symbolsearch(pattern) + configuration.debug_emit(1, "hits: " + str(hits)) + if len(hits.items): + configuration.suppressions = 0 + self.menus.push(hits.items) + else: + self.help_popup("PRESSANY", (lang["SEARCHFAIL"],)) + recompute = 1 + elif cmd == ord('s'): + failure = configuration.save(config) + if failure: + self.help_popup("PRESSANY", [failure]) + else: + self.help_popup("PRESSANY", + (lang["UNKNOWN"]%(curses.keyname(cmd)),)) + return recompute + + def seek_mutable(self, direction, movefirst=0): + if movefirst: + self.menus.move(delta=direction, wrap=1) + while self.menus.selected().type =="message" \ + or self.menus.selected().frozen: + self.menus.move(delta=direction, wrap=1) + + def interact(self, config): + "Configuration through a curses-based UI" + self.menus.push(configuration.start.items) + recompute = 1 + repaint = ["main"] + curses.ungetch(curses.ascii.TAB) # Get to a help screen. + while 1: + if isinstance(self.menus.selected(), cml.ConfigSymbol): + # In theory we could optimize this by only computing + # visibilities for children we have space to display, + # but never mind. We'll settle for recomputing only + # when a variable changes value. + here = self.menus.selected().menu + configuration.visit(here) + if recompute: + self.recompute(here) + recompute = 0 + # Clear the decks, issue the current menu title + self.msgbuf = here.prompt + sel_symbol = None + + # Repaint the screen + (current_line,current_prompt,sel_symbol) = self.redisplay(repaint) + newval = current_prompt + + # OK, here is the command interpretation + if "edit" in repaint: + cmd = self.getch(self.textbox.win) + else: + cmd = self.getch(self.window) + + if "edithelp" in repaint: + repaint = ["main", "edit"] + self.textbox.win.move(oldy, oldx) + self.menus.pop() + continue + elif "edit" in repaint: + if cmd in (curses.KEY_DOWN, curses.KEY_UP, curses.KEY_ENTER, + curses.ascii.NL, curses.ascii.CR, curses.ascii.BEL, + ord(curses.ascii.ctrl('p')), ord(curses.ascii.ctrl('n'))): + if cmd != curses.ascii.BEL: + newval = self.textbox.gather() + self.accept_field(sel_symbol, + newval, + current_prompt) + # allow window to be deallocated + self.textbox = None + recompute = 1 + repaint = ["main"] + self.msgbuf = "" + if cmd in (curses.KEY_DOWN, curses.KEY_UP): + self.ungetch(cmd) + elif curses.ascii.isprint(cmd): + if sel_symbol.type == "decimal" and not curses.ascii.isdigit(cmd): + curses.beep() + elif sel_symbol.type == "hexadecimal" and not curses.ascii.isxdigit(cmd): + curses.beep() + else: + self.textbox.do_command(cmd) + elif cmd == curses.ascii.TAB: + self.msgbuf = lang["FIELDEDIT"] + self.menus.push(string.split(lang["EDITHELP"], "\n")) + (oldy, oldx) = self.textbox.win.getyx() + repaint = ["edithelp"] + continue + elif cmd == curses.KEY_RIGHT and self.textbox.win.getyx()[1]>=curses_style_menu.valwidth: + oldval = newval + newval = self.query_popup(sel_symbol.name+": ", oldval) + if newval: + self.accept_field(sel_symbol, newval, oldval) + self.textbox.win.clear() + self.textbox.win.addstr(0, 0, newval[0:curses_style_menu.valwidth]) + recompute = 1 + self.textbox = None + repaint = ["main"] + else: + self.textbox.do_command(cmd) + else: + if cmd == curses.ascii.FF: + self.window.touchwin() + self.window.refresh() + elif cmd == curses.KEY_RESIZE or cmd == -1: + # Second test works around a bug in the old curses module + # it gives back a -1 on resizes instead of KEY_RESIZE. + (self.lines, self.columns) = self.window.getmaxyx() + self.menus.viewport_height = self.lines-1 + recompute = 1 + elif cmd in (curses.ascii.TAB, ord('h')): + if self.in_menu(): + self.menus.push(string.split(lang["CURSHELP"], "\n")) + self.msgbuf = lang["WELCOME"] % (configuration.banner) \ + + lang["VERSION"] % (cml.version,) \ + + " " + lang["CURSQUERY"] + self.helpmode = 1 + elif self.helpmode == 1: + self.menus.pop() + self.menus.push(string.split(lang["EXPERTHELP"], "\n")) + self.msgbuf = lang["CMDHELP"] + self.helpmode = 2 + else: + self.menus.pop() + recompute = 1 + elif cmd == ord('e'): + if not self.in_menu(): + self.help_popup("PRESSANY", (lang["NOSYMBOL"],)) + else: + self.help_popup("PRESSANY", (str(sel_symbol),), beep=0) + elif cmd == ord('g'): + symname = self.query_popup(lang["GPROMPT"]) + if not configuration.dictionary.has_key(symname): + self.help_popup("PRESSANY", (lang["NONEXIST"],)) + else: + entry = configuration.dictionary[symname] + if entry.type in ("menu", "choices"): + self.menus.push(entry.items) + recompute = 1 + elif entry.type == "message" or not entry.menu: + self.help_popup("PRESSANY", (lang["CANTGO"],)) + else: + self.menus.push(entry.menu.items, entry) + recompute = 1 + elif cmd == ord('?'): + if not self.in_menu(): + self.help_popup("PRESSANY", (lang["NOSYMBOL"],)) + else: + help = sel_symbol.help() + if help: + self.msgbuf = lang["HELPFOR"] % (sel_symbol.name,) + self.menus.push(string.split(help, "\n")) + else: + self.help_popup("PRESSANY", + (lang["NOHELP"] % (sel_symbol.name,),)) + elif cmd in (curses.KEY_DOWN, curses.ascii.ctrl('n')): + if not self.in_menu(): + self.menus.scroll(1) + else: + self.seek_mutable(1, 1) + elif cmd == curses.KEY_UP: + if not self.in_menu(): + self.menus.scroll(-1) + else: + self.seek_mutable(-1, 1) + elif cmd in (curses.KEY_NPAGE, curses.ascii.ctrl('p')): + if self.in_menu(): + self.menus.page_down() + notlast = (self.menus.selected() != self.menus.list()[-1]) + self.seek_mutable(notlast) + elif cmd == curses.KEY_PPAGE: + if self.in_menu(): + self.menus.page_up() + notlast = (self.menus.selected() != self.menus.list()[-1]) + self.seek_mutable(notlast) + elif cmd == curses.KEY_HOME: + if self.in_menu(): + self.menus.goto(0) + self.seek_mutable(0) + elif cmd == curses.KEY_END: + if self.in_menu(): + self.menus.goto(len(self.menus.list())-1) + self.seek_mutable(0) + # This guard intercepts all other commands in helpmode + elif not self.in_menu(): + if self.menus.stackdepth() == 1: + here = configuration.start.items[0] + while not configuration.is_visible(here): + here = configuration.next_node(here) + self.menus.push(here.menu.items, here) + else: + self.menus.pop() + # Following commands are not executed in helpmode + elif cmd == ord('x'): + failure = configuration.save(config, + PopupBaton(lang["SAVING"], self)) + if failure: + self.help_popup("PRESSANY", [failure]) + break + elif cmd == ord('q'): + if configuration.commits == 0: + break + cmd = self.help_popup("EXITCONFIRM", (lang["REALLY"],), beep=0) + if cmd == ord('q'): + raise SystemExit, 1 + elif cmd in (curses.KEY_ENTER,ord(' '),ord('\r'),ord('\n'),curses.KEY_RIGHT) : + # Operate on the current object + if sel_symbol.type == "message": + curses.beep() + elif sel_symbol.type in ("menu", "choices"): + self.menus.push(sel_symbol.items) + sel_symbol.inspected += 1 + while not configuration.is_visible(self.menus.selected()) or self.menus.selected().type == "message": + if not self.menus.move(1, 0): + break + elif here.type == "choices" and sel_symbol.eval(): + pass + elif cmd == curses.KEY_RIGHT: + pass + elif sel_symbol.type == "bool" or (sel_symbol.type == "trit" and not configuration.trits_enabled): + if sel_symbol.eval() == cml.y: + toggled = cml.n + else: + toggled = cml.y + self.set_symbol(sel_symbol, toggled) + elif sel_symbol.type == "trit": + if sel_symbol.eval() == cml.y: + toggled = cml.n + elif sel_symbol.eval() == cml.m: + toggled = cml.y + else: + toggled = cml.m + self.set_symbol(sel_symbol, toggled) + else: + win = curses.newwin(1, curses_style_menu.valwidth+1, current_line+1, 1) + self.textbox = curses.textpad.Textbox(win) + self.textbox.win.addstr(0, 0, current_prompt[:curses_style_menu.valwidth]) + newval = current_prompt + self.textbox.win.move(0, 0) + self.msgbuf = lang["EDITING"] % (sel_symbol.name[:self.columns-1],) + repaint = ["main", "edit"] + recompute = 1 + else: + recompute = self.symbol_menu_command(cmd, sel_symbol) + +# Tkinter interface + +# This is wrapped in try/expect in case the Tkinter import fails. +# We need the import here because these classes have Frame as a parent. +try: + from Tkinter import * + + class ValidatedField(Frame): + "Accept a string, decimal or hex value in a labeled field." + def __init__(self, master, symbol, prompt, variable, hook): + Frame.__init__(self, master) + self.symbol = symbol + self.hook = hook + self.fieldval = variable + self.L = Label(self, text=prompt, anchor=W) + self.L.pack(side=LEFT) + self.E = Entry(self, textvar=self.fieldval) + self.E.pack({'side':'left', 'expand':YES, 'fill':X}) + self.E.bind('', self.handlePost) + self.E.bind('', self.handleEnter) + self.fieldval.set(str(cml.evaluate(symbol))) + self.errorwin = None + def handleEnter(self, event): + self.E.bind('', self.handlePost) + def handlePost(self, event): + if self.errorwin: + return + self.E.bind('', lambda e: None) + result = string.strip(self.fieldval.get()) + if self.symbol.type == "decimal": + if not re.compile("[" + string.digits +"]+$").match(result): + self.error_popup(title=lang["PROBLEM"], + banner=self.symbol.name, + text=lang["CHARINVAL"]) + return + elif self.symbol.type == "hexadecimal": + if not re.compile("(0x)?["+string.hexdigits+"]+$").match(result): + self.error_popup(title=lang["PROBLEM"], + banner=self.symbol.name, + text=lang["CHARINVAL"]) + return + apply(self.hook, (self.symbol, result)) + def error_popup(self, title, banner, text): + self.errorwin = Toplevel() + self.errorwin.title(title) + self.errorwin.iconname(title) + Label(self.errorwin, text=banner).pack() + Label(self.errorwin, text=text).pack() + Button(self.errorwin, text=lang["DONE"], + command=lambda x=self.errorwin: Widget.destroy(x), bd=2).pack() + + + class PromptGo(Frame): + "Accept a string value in a browser-like prompt window." + def __init__(self, master, label, command): + Frame.__init__(self, master) + # We really want to do this to make the window appear + # within the workframe: + #self.promptframe = Frame(master) + # Unfortunately, the scroll function in the canvas seems + # to get confused when we try this + self.promptframe = Frame(Toplevel()) + self.promptframe.master.bind('', self.handleDestroy); + self.fieldval = StringVar(self.promptframe) + self.promptframe.L = Label(self.promptframe, + text=lang[label], anchor=W) + self.promptframe.L.pack(side=LEFT) + self.promptframe.E = Entry(self.promptframe, textvar=self.fieldval) + self.promptframe.E.pack({'side':'left', 'expand':YES, 'fill':X}) + self.promptframe.E.bind('', self.dispatch) + self.promptframe.E.focus_set() + self.command = command + Button(self.promptframe, text=lang["GO"], + command=self.dispatch, bd=2).pack() + self.promptframe.pack() + # Scroll to top of canvas and refresh/resize + self.master.menuframe.resetscroll() + self.master.refresh() + def dispatch(self, event=None): + apply(self.command, (self.fieldval.get(),)) + # if PromptGo is implemented as top level widget this is not + # sufficient: + #self.promptframe.destroy() + # instead the top level widget must be destroyed + self.promptframe.master.destroy() + def handleDestroy(self, event=None): + apply(self.command, (None,)) + + + class ScrolledFrame(Frame): + "A Frame object with a scrollbar on the right." + def __init__(self, master, **kw): + apply(Frame.__init__, (self, master), kw) + + self.scrollbar = Scrollbar(self, orient=VERTICAL) + self.canvas = Canvas(self, yscrollcommand=self.scrollbar.set) + self.scrollbar.config(command=self.canvas.yview) + self.scrollbar.pack(fill=Y, side=RIGHT) + self.canvas.pack(side=LEFT, fill=BOTH, expand=YES) + + # create the inner frame + self.inner = Frame(self.canvas) + + # track changes to its size + self.inner.bind('', self.__configure) + + # place the frame inside the canvas + # (this also runs the __configure method) + self.canvas.create_window(0, 0, window=self.inner, anchor=NW) + + def showscroll(self, flag): + if flag: + self.scrollbar.pack(fill=Y, side=RIGHT) + else: + self.scrollbar.pack_forget() + + def resetscroll(self, loc=0.0): + self.canvas.yview("moveto", loc) + + def __configure(self, event): + # update the scrollbars to match the size of the inner frame + size = self.inner.winfo_reqwidth(), self.inner.winfo_reqheight() + self.canvas.config(scrollregion="0 0 %s %s" % size) + + + def helpwin(title, banner, text): + # help message window with a self-destruct button + helpwin = Toplevel() + helpwin.title(title) + helpwin.iconname(title) + if banner: + Label(helpwin, text=banner).pack() + textframe = Frame(helpwin) + scroll = Scrollbar(textframe) + helpwin.textwidget = Text(textframe, setgrid=TRUE) + textframe.pack(side=TOP, expand=YES, fill=BOTH) + helpwin.textwidget.config(yscrollcommand=scroll.set) + helpwin.textwidget.pack(side=LEFT, expand=YES, fill=BOTH) + scroll.config(command=helpwin.textwidget.yview) + scroll.pack(side=RIGHT, fill=BOTH) + Button(helpwin, text=lang["DONE"], + command=lambda x=helpwin: x.destroy(), bd=2).pack() + helpwin.textwidget.tag_config('url', foreground='blue', underline=YES) + helpwin.textwidget.tag_bind('url', '', launch_browser) + helpwin.textwidget.tag_bind('url', '', lambda event, x=helpwin.textwidget: x.config(cursor='hand2')) + helpwin.textwidget.tag_bind('url', '', lambda event, x=helpwin.textwidget: x.config(cursor='xterm')) + tag_urls(helpwin.textwidget, text) + helpwin.textwidget.config(state=DISABLED) # prevent editing + helpwin.lift() + + def tag_urls(textwidget, text): + getURL = re.compile('((?:http|ftp|mailto|file)://[-.~/_?=#%\w]+\w)') + textlist = getURL.split(text) + for n in range(len(textlist)): + if n % 2 == 1: + textwidget.insert(END, textlist[n], ('url', textlist[n])) + else: + textwidget.insert(END, textlist[n]) + + def launch_browser(event): + url = event.widget.tag_names(CURRENT)[1] + webbrowser.open(url) + + def make_icon_window(base, image): + try: + # Some older pythons will error out on this + icon_image = PhotoImage(data=image) + icon_window = Toplevel() + Label(icon_window, image=icon_image, bg='black').pack() + base.master.iconwindow(icon_window) + # Avoid TkInter brain death. PhotoImage objects go out of + # scope when the enclosing function returns. Therefore + # we have to explicitly link them to something. + base.keepalive.append(icon_image) + except: + pass + + + class ConfigMenu(Frame): + "Top-level CML2 configurator object." + def __init__(self, menu, config, banner): + Frame.__init__(self, master=None) + self.config = config + announce = configuration.banner + lang["VERSION"] % cml.version + if banner and announce.find("%s") > -1: + announce %= banner + self.master.title(announce) + self.master.iconname(announce) + self.master.resizable(FALSE, TRUE) + Pack.config(self, fill=BOTH, expand=YES) + self.keepalive = [] # Use this to anchor the PhotoImage object + if configuration.icon: + make_icon_window(self, configuration.icon) + self.menustack = [] + self.locstack = [] + + ## Test icon display with the following: + # icon_image = PhotoImage(data=configuration.icon) + # Label(self, image=icon_image).pack(side=TOP, pady=10) + # self.keepalive.append(icon_image) + self.header = Frame(self) + self.header.pack(side=TOP, fill=X) + + self.menubar = Frame(self.header, relief=RAISED, bd=2) + self.menubar.pack(side=TOP, fill=X, expand=YES) + self.filemenu = self.makeMenu(lang["FILEBUTTON"], + (("LOADBUTTON", self.load), + ("FREEZEBUTTON", self.freeze), + ("SAVEBUTTON", self.save), + ("SAVEAS", self.save_as), + ("QUITBUTTON", self.leave), + )) + self.navmenu = self.makeMenu(lang["NAVBUTTON"], + (("BACKBUTTON", self.pop), + ("UPBUTTON", self.up), + ("GOBUTTON", self.goto), + ("SEARCHBUTTON", self.symbolsearch), + ("HSEARCHBUTTON", self.helpsearch), + ("UNSUPPRESSBUTTON",self.toggle_suppress), + ("ANCESTORBUTTON",self.show_ancestors), + ("DEPENDENTBUTTON",self.show_dependents), + )) + self.helpmenu = self.makeMenu(lang["HELPBUTTON"], + (("HELPBUTTON", self.cmdhelp),)) + self.menulabel=Label(self.menubar) + self.menulabel.pack(side=RIGHT) + + self.toolbar = Frame(self.header, relief=RAISED, bd=2) + self.backbutton = Button(self.toolbar, text=lang["BACKBUTTON"], + command=self.pop) + self.backbutton.pack(side=LEFT) + self.helpbutton = Button(self.toolbar, text=lang["HELPBUTTON"], + command=lambda self=self: self.help(self.menustack[-1])) + self.helpbutton.pack(side=RIGHT) + + self.menuframe = ScrolledFrame(self) + self.menuframe.pack(side=BOTTOM, fill=BOTH, expand=YES) + + self.workframe = None + + # Time to set up the main menu + self.lastmenu = None + self.push(configuration.start) + + def makeMenu(self, label, ops): + mbutton = Menubutton(self.menubar, text=label, underline=0) + mbutton.pack(side=LEFT) + dropdown = Menu(mbutton) + for (legend, function) in ops: + dropdown.add_command(label=lang[legend], command=function) + mbutton['menu'] = dropdown + return dropdown + + # Repainting + + def build(self): + "Build widgets for all symbols in a menu, but don't pack them." + + if self.workframe: + Widget.destroy(self.workframe) + self.workframe = Frame(self.menuframe.inner) + self.visible = [] + + menu = self.menustack[-1] + w = Label(self.workframe, text=menu.prompt) + w.pack(side=TOP, fill=X, expand=YES) + self.menulabel.config(text="(" + menu.name +")") + + self.symbol2widget = {} + self.ties = {} + self.textparts = {} + for node in menu.items: + id = node.name + ": " + node.prompt + if inclusions and not node.included and node.is_symbol(): + id += " " + lang["NEW"] + myframe = Frame(self.workframe) + if node.type == "message": + new = Label(myframe, text=node.prompt) + self.textparts[node.name] = new + elif node.frozen: + value = str(node.eval(debug)) + new = Label(myframe, text=node.name + ": " + \ + node.prompt + " = " + value) + self.textparts[node.name] = new + new.config(fg='blue') + elif node.type == "menu": + new = Button(myframe, text=node.prompt, + command=lambda x=self,y=node:x.push(y)) + self.textparts[node.name] = new + elif node.type == "choices": + new = Menubutton(myframe, relief=RAISED, + text=node.prompt) + self.textparts[node.name] = new + cmenu = Menu(new, tearoff=0) + self.ties[node.name] = StringVar(self.workframe) + for alt in node.items: + cmenu.add_radiobutton( + label=alt.name+": "+alt.prompt, + variable=self.ties[node.name], value=alt.name, + command=lambda self=self, x=alt:self.setchoice(x)) + # This is inelegant, but it will get the job done... + self.symbol2widget[alt] = new + new.config(menu=cmenu) + elif node.type in ("trit", "bool"): + new = Frame(myframe) + self.ties[node.name] = IntVar(self.workframe) + if configuration.trits_enabled: + w = Radiobutton(new, text="y", relief=GROOVE, + variable=self.ties[node.name], value=cml.y, + command=lambda x=node, self=self: \ + self.set_symbol(x, cml.y)) + w.pack(anchor=W, side=LEFT) + w = Radiobutton(new, text="m", relief=GROOVE, + variable=self.ties[node.name], value=cml.m, + command=lambda x=node, self=self: \ + self.set_symbol(x, cml.m)) + if node.type == "bool": + w.config(state=DISABLED, text="-") + w.pack(anchor=W, side=LEFT) + w = Radiobutton(new, text="n", relief=GROOVE, + variable=self.ties[node.name], value=cml.n, + command=lambda x=node, self=self: \ + self.set_symbol(x, cml.n)) + w.pack(anchor=W, side=LEFT) + else: + w = Checkbutton(new, relief=GROOVE, + variable=self.ties[node.name], + command=lambda x=node, self=self: \ + self.set_symbol(x, (cml.n, cml.y)[self.ties[x.name].get()])) + w.pack(anchor=W, side=LEFT) + tw = Label(new, text=id, relief=GROOVE, anchor=W) + tw.pack(anchor=E, side=LEFT, fill=X, expand=YES) + self.textparts[node.name] = tw + elif node.discrete: + new = Menubutton(myframe, relief=RAISED, + text=node.name+": "+node.prompt, + anchor=W) + self.textparts[node.name] = new + cmenu = Menu(new, tearoff=0) + self.ties[node.name] = StringVar(self.workframe) + for value in node.range: + if node.type == "decimal": + label=`value` + elif node.type == "hexadecimal": + label = "0x%x" % value + cmenu.add_radiobutton(label=label, value=label, + variable=self.ties[node.name], + command=lambda self=self, symbol=node, label=label:self.set_symbol(symbol, label)) + new.config(menu=cmenu) + elif node.enum: + new = Menubutton(myframe, relief=RAISED, + text=node.name+": "+node.prompt, + anchor=W) + self.textparts[node.name] = new + cmenu = Menu(new, tearoff=0) + self.ties[node.name] = StringVar(self.workframe) + for (label, value) in node.range: + cmenu.add_radiobutton(label=label, value=value, + variable=self.ties[node.name], + command=lambda self=self, symbol=node, label=label, value=value:self.set_symbol(symbol, value)) + new.config(menu=cmenu) + elif node.type == "decimal": + self.ties[node.name] = StringVar(self.workframe) + new = ValidatedField(myframe, node, + id, self.ties[node.name], + lambda n, v, s=self: s.set_symbol(n, int(v))) + self.textparts[node.name] = new.L + elif node.type == "hexadecimal": + self.ties[node.name] = StringVar(self.workframe) + new = ValidatedField(myframe, node, + id, self.ties[node.name], + lambda n, v, s=self: s.set_symbol(n, int(v, 16))) + self.textparts[node.name] = new.L + elif node.type == "string": + self.ties[node.name] = StringVar(self.workframe) + new = ValidatedField(myframe, node, + id, self.ties[node.name], + self.set_symbol) + self.textparts[node.name] = new.L + new.pack(side=LEFT, anchor=W, fill=X, expand=YES) + help = Button(myframe, text=lang["HELPBUTTON"], + command=lambda symbol=node, self=self: self.help(symbol)) + help.pack(side=RIGHT, anchor=E) + if not node.help(): + help.config(state=DISABLED) + myframe.pack(side=TOP, fill=X, expand=YES) + self.symbol2widget[node] = myframe + + # This isn't widget layout, it grays out the Back buttons + if len(self.menustack) <= 1: + self.backbutton.config(state=DISABLED) + self.navmenu.entryconfig(1, state=DISABLED) + else: + self.backbutton.config(state=NORMAL) + self.navmenu.entryconfig(1, state=NORMAL) + + # Likewise, this grays out the help button when appropriate. + here = self.menustack[-1] + if isinstance(here, cml.ConfigSymbol) and here.help(): + self.helpbutton.config(state=NORMAL) + else: + self.helpbutton.config(state=DISABLED) + + # This grays out the "up" button + if not here.menu: + self.navmenu.entryconfig(2, state=DISABLED) + else: + self.navmenu.entryconfig(2, state=NORMAL) + + # Pan canvas to the top of the widget list + self.menuframe.resetscroll() + + def setchoice(self, symbol): + # Handle a choice-menu selection. + self.set_symbol(symbol, cml.y) + self.lastmenu = symbol + + def refresh(self): + self.workframe.update() + + # Dynamic resizing. This code can flake out in some odd + # ways, notably by where it puts the resized window (this + # is probably tickling a window-manager bug). We want + # normal placement somewhere in an unused area of the root + # window. What we get too often (at least under + # Enlightenment) is the window placed where the top of + # frame isn't visible -- which is annoying, because it + # makes it hard to move the window to a better spot. + widgetheight = self.workframe.winfo_reqheight() + # Allow 50 vertical pixels for window frame cruft. + maxheight = self.winfo_screenheight() - 50 + oversized = widgetheight > maxheight + self.menuframe.showscroll(oversized) + if oversized: + # This assumes the scrollbar widget will be < 25 pixels wide + newwidth = self.workframe.winfo_width() + 25 + newheight = maxheight + else: + newwidth = self.workframe.winfo_width() + newheight = widgetheight + \ + self.menubar.winfo_height()+self.menubar.winfo_height() + self.master.geometry("%dx%d" % (newwidth, newheight)) + + self.workframe.lift() + + def display(self): + menu = self.menustack[-1].items + newvisible = filter(lambda x: configuration.is_visible(x), menu) + # Insert all widgets that must newly become visible + for symbol in menu: + # Color the menu text + textpart = self.textparts[symbol.name] + if symbol.type in ("menu", "choices"): + if symbol.inspected: + textpart.config(fg='dark green') + elif not symbol.frozen: + textpart.config(fg='black') + elif symbol.type in ("trit", "bool"): + if symbol.setcount or symbol.included: + textpart.config(fg='dark green') + # Fill in the menu value + if self.ties.has_key(symbol.name): + if symbol.type == "choices": + self.ties[symbol.name].set(symbol.menuvalue.name) + elif symbol.type in ("string", "decimal") or symbol.enum: + self.ties[symbol.name].set(str(symbol.eval())) + elif symbol.type == "hexadecimal": + self.ties[symbol.name].set("0x%x" % symbol.eval()) + else: + enumval = symbol.eval() + if not configuration.trits_enabled and symbol.is_logical(): + enumval = min(enumval.value, cml.m.value) + self.ties[symbol.name].set(enumval) + # Now hack the widget visibilities + if symbol in newvisible and symbol not in self.visible: + argdict = {'anchor':W, 'side':TOP} + if self.menustack[-1].type != "choices": + argdict['expand'] = YES + argdict['fill'] = X + # Fiendishly clever hack alert: avoid excessive screen + # updating by repacking widgets in place as they pop + # in and out of visibility. Look for a first visible symbol + # after the current one. If you find one, use it to + # generate a "before" option for packing. Otherwise, + # generate an "after" option that packs after the last + # visible item. + if self.visible: + foundit = 0 + for anchor in menu[menu.index(symbol):]: + if anchor in self.visible: + argdict['before'] = self.symbol2widget[anchor] + foundit = 1 + break + if not foundit: + argdict['after'] = self.symbol2widget[self.visible[-1]] + self.visible.append(symbol) + self.symbol2widget[symbol].pack(argdict) + # We've used all the anchor points, clean up invisible ones + for symbol in menu: + if symbol not in newvisible: + self.symbol2widget[symbol].pack_forget() + elif symbol.type == "choices": + if symbol.menuvalue: + self.symbol2widget[symbol].winfo_children()[0].config(text="%s (%s)" % (symbol.prompt, symbol.menuvalue.name)) + elif symbol.discrete: + self.symbol2widget[symbol].winfo_children()[0].config(text="%s: %s (%s)" % (symbol.name, symbol.prompt, str(symbol.eval()))) + self.workframe.pack(side=BOTTOM) + self.toolbar.pack(side=BOTTOM, fill=X, expand=YES) + self.visible = newvisible + + self.refresh() + + # Operations on symbols and menus + + def set_symbol(self, symbol, value): + "Set symbol, checking validity." + #print "set_symbol(%s, %s)" % (symbol.name, value) + if symbol.is_numeric() and symbol.range: + if not configuration.range_check(symbol, value): + Dialog(self, + title = lang["PROBLEM"], + text = lang["OUTOFBOUNDS"] % (symbol.range,), + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + return + old_tritflag = configuration.trits_enabled + # The set_grab() is an attempt to head off race conditions. + # We don't want the symbol widgets to accept new input + # events while the side-effects of a symbol set are still + # being computed. + self.master.grab_set() + (ok, effects, violation) = configuration.set_symbol(symbol,value) + self.master.grab_release() + if not ok: + explain = "" + if effects: + explain = lang["EFFECTS"] + "\n" \ + + string.join(effects, "\n") + "\n" + explain += lang["ROLLBACK"] % (symbol.name, value) + \ + "\n" + string.join(violation, "\n") + "\n" + Dialog(self, + title = lang["PROBLEM"], + text = explain, + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + else: + if old_tritflag != configuration.trits_enabled: + self.build() + if violation: + Dialog(self, + title = lang["SIDEEFFECTS"], + text = string.join(violation, "\n"), + bitmap = 'info', + default = 0, + strings = (lang["DONE"],)) + self.display() + + def help(self, symbol): + helpwin(title=lang["HELPBUTTON"], + banner=lang["HELPFOR"] % (symbol.name), + text = symbol.help()) + + def push(self, menu, highlight=None): + configuration.visit(menu) + self.menustack.append(menu) + self.locstack.append(self.menuframe.canvas.canvasy(0)) + self.build() + self.lastmenu = highlight + self.display() + menu.inspected += 1 + + def pop(self): + if len(self.menustack) > 1: + from_menu = self.menustack[-1] + self.menustack = self.menustack[:-1] + self.build() + self.lastmenu = from_menu + self.display() + from_loc = self.locstack[-1] + self.locstack = self.locstack[:-1] + self.menuframe.resetscroll(from_loc) + + # File menu operations + + def enable_file_ops(self, ok): + if ok: + self.filemenu.entryconfig(1, state=NORMAL) + self.filemenu.entryconfig(2, state=NORMAL) + self.filemenu.entryconfig(3, state=NORMAL) + self.filemenu.entryconfig(4, state=NORMAL) + #self.filemenu.entryconfig(5, state=NORMAL) + else: + self.filemenu.entryconfig(1, state=DISABLED) + self.filemenu.entryconfig(2, state=DISABLED) + self.filemenu.entryconfig(3, state=DISABLED) + self.filemenu.entryconfig(4, state=DISABLED) + #self.filemenu.entryconfig(5, state=DISABLED) + + def load(self): + self.enable_file_ops(0) + PromptGo(self, "LOADFILE", self.load_internal) + def load_internal(self, file): + "Load a configuration file." + if file: + old_tritflag = configuration.trits_enabled + try: + (changes, errors) = configuration.load(file, freeze=0) + except IOError: + Dialog(self, + title = lang["PROBLEM"], + text = lang["LOADFAIL"] % file, + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + else: + if errors: + Dialog(self, + title = lang["PROBLEM"], + text = errors, + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + else: + # Note, we don't try to display side effects here. + # From a file include, there are very likely to + # be more of them than can fit in a popup. + Dialog(self, + title = lang["OK"], + text = lang["INCCHANGES"] % (changes,file), + bitmap = 'hourglass', + default = 0, + strings = (lang["DONE"],)) + self.enable_file_ops(1) + def freeze(self): + ans = Dialog(self, + title = lang["CONFIRM"], + text = lang["FREEZE"], + bitmap = 'questhead', + default = 0, + strings = (lang["FREEZEBUTTON"], lang["CANCEL"])) + if ans.num == 0: + for key in configuration.dictionary.keys(): + entry = configuration.dictionary[key] + if entry.eval(): + entry.final = 1 + + def save_internal(self, config): + failure = configuration.save(config) + if not failure: + return 1 + else: + ans = Dialog(self, + title = lang["PROBLEM"], + text = failure, + bitmap = 'error', + default = 0, + strings = (lang["CANCEL"], lang["DONE"])) + return ans.num + + def save(self): + if self.save_internal(self.config): + self.quit() + + def save_as(self): + # Disable everything but quit while this is going on + self.enable_file_ops(0) + PromptGo(self, "SAVEFILE", self.save_as_internal) + def save_as_internal(self, file): + if file: + self.save_internal(file) + self.enable_file_ops(1) + + def leave(self): + if configuration.commits == 0: + self.quit() + else: + ans = Dialog(self, + title = lang["QUITCONFIRM"], + text = lang["REALLY"], + bitmap = 'questhead', + default = 0, + strings = (lang["EXIT"], lang["CANCEL"])) + if ans.num == 0: + self.quit() + raise SystemExit, 1 + + # Navigation menu options + + def enable_nav_ops(self, ok): + if ok: + self.navmenu.entryconfig(1, state=NORMAL) + self.navmenu.entryconfig(2, state=NORMAL) + self.navmenu.entryconfig(3, state=NORMAL) + self.navmenu.entryconfig(4, state=NORMAL) + #self.navmenu.entryconfig(5, state=NORMAL) + self.navmenu.entryconfig(6, state=NORMAL) + self.navmenu.entryconfig(7, state=NORMAL) + else: + self.navmenu.entryconfig(1, state=DISABLED) + self.navmenu.entryconfig(2, state=DISABLED) + self.navmenu.entryconfig(3, state=DISABLED) + self.navmenu.entryconfig(4, state=DISABLED) + #self.navmenu.entryconfig(5, state=DISABLED) + self.navmenu.entryconfig(6, state=DISABLED) + self.navmenu.entryconfig(7, state=DISABLED) + + def up(self): + here = self.menustack[-1] + if here.menu: + self.push(here.menu, here) + + def goto(self): + self.enable_nav_ops(0) + PromptGo(self, "GOTOBYNAME", self.goto_internal) + def goto_internal(self, symname): + if symname: + if not configuration.dictionary.has_key(symname): + Dialog(self, + title = lang["PROBLEM"], + text = lang["NONEXIST"], + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + else: + symbol = configuration.dictionary[symname] + # We can't go to a symbol in a choices menu directly; + # instead we must go to its parent. + if symbol.menu and symbol.menu.type == "choices": + symbol = symbol.menu + if not configuration.is_mutable(symbol): + Dialog(self, + title = lang["PROBLEM"], + text = lang["FROZEN"], + bitmap = 'hourglass', + default = 0, + strings = (lang["DONE"],)) + elif not configuration.is_visible(symbol): + configuration.suppressions = 0 + if symbol.type in ("menu", "choices"): + self.push(symbol) + else: + self.push(symbol.menu, symbol) + self.enable_nav_ops(1) + + def symbolsearch(self): + self.enable_nav_ops(0) + PromptGo(self, "SEARCHSYMBOLS", self.symbolsearch_internal) + def symbolsearch_internal(self, pattern): + if not pattern is None: + if pattern: + hits = configuration.symbolsearch(pattern) + hits.inspected = 0 + if hits.items: + configuration.suppressions = 0 + self.push(hits) + else: + Dialog(self, + title = lang["PROBLEM"], + text = lang["NOMATCHES"], + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + else: + Dialog(self, + title = lang["PROBLEM"], + text = lang["EMPTYSEARCH"], + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + self.enable_nav_ops(1) + + def helpsearch(self): + self.enable_nav_ops(0) + PromptGo(self, "SEARCHHELP", self.helpsearch_internal) + def helpsearch_internal(self, pattern): + if not pattern is None: + if pattern: + hits = configuration.helpsearch(pattern) + hits.inspected = 0 + if hits.items: + configuration.suppressions = 0 + self.push(hits) + else: + Dialog(self, + title = lang["PROBLEM"], + text = lang["NOMATCHES"], + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + else: + Dialog(self, + title = lang["PROBLEM"], + text = lang["EMPTYSEARCH"], + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + self.enable_nav_ops(1) + + def show_ancestors(self): + self.enable_nav_ops(0) + PromptGo(self, "SHOW_ANC", self.show_ancestors_internal) + def show_ancestors_internal(self, symname): + if symname: + entry = configuration.dictionary.get(symname) + if not entry: + Dialog(self, + title = lang["INFO"], + text = lang["NONEXIST"], + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + elif not entry.ancestors: + Dialog(self, + title = lang["PROBLEM"], + text = lang["NOANCEST"], + bitmap = 'info', + default = 0, + strings = (lang["DONE"],)) + else: + hits = cml.ConfigSymbol("ancestors", "menu") + hits.items = entry.ancestors + # Give result a parent only if all members have same parent + hits.menu = None + hits.frozen = 0 + hits.inspected = 0 + for symbol in hits.items: + if not configuration.is_visible(symbol): + configuration.suppressions = 0 + if hits.menu == None: + hits.menu = symbol.menu + elif symbol.menu != hits.menu: + hits.menu = None + break + self.push(hits) + self.enable_nav_ops(1) + + def show_dependents(self): + self.enable_nav_ops(0) + PromptGo(self, "SHOW_ANC", self.show_dependents_internal) + def show_dependents_internal(self, symname): + if symname: + entry = configuration.dictionary.get(symname) + if not entry: + Dialog(self, + title = lang["INFO"], + text = lang["NONEXIST"], + bitmap = 'error', + default = 0, + strings = (lang["DONE"],)) + elif not entry.dependents: + Dialog(self, + title = lang["PROBLEM"], + text = lang["NOANCEST"], + bitmap = 'info', + default = 0, + strings = (lang["DONE"],)) + else: + hits = cml.ConfigSymbol("dependents", "menu") + hits.items = entry.dependents + # Give result a parent only if all members have same parent + hits.menu = None + hits.frozen = 0 + hits.inspected = 0 + for symbol in hits.items: + if not configuration.is_visible(symbol): + configuration.suppressions = 0 + if hits.menu == None: + hits.menu = symbol.menu + elif symbol.menu != hits.menu: + hits.menu = None + break + self.push(hits) + self.enable_nav_ops(1) + + def toggle_suppress(self): + configuration.suppressions = not configuration.suppressions + if configuration.suppressions: + self.navmenu.entryconfig(6, label=lang["UNSUPPRESSBUTTON"]) + else: + self.navmenu.entryconfig(6, label=lang["SUPPRESSBUTTON"]) + self.build() + self.display() + + # Help menu operations + + def cmdhelp(self): + helpwin(title=lang["HELPBUTTON"], + banner=lang["HELPFOR"] % (configuration.banner,), + text=lang["TKCMDHELP"]) + +except ImportError: + pass + +def tkinter_style_menu(config, banner): + "X front end for configurator." + ConfigMenu(configuration.start, config, banner).mainloop() + +# Report generator + +def menu_tree_list(node, indent): + "Print a map of a menu subtree." + totalindent = (indent + 4 * node.depth) + trailer = (" " * (40 - totalindent - len(node.name))) + `node.prompt` + print " " * totalindent, node.name, trailer + if configuration.debug: + if node.visibility: + print " " * 41, lang["VISIBILITY"], cml.display_expression(node.visibility) + if node.default: + print " " * 41, lang["DEFAULT"], cml.display_expression(node.default) + if node.items: + for child in node.items: + menu_tree_list(child, indent + 4) + +# Environment probes + +def is_under_X(): + # It would be nice to just check WINDOWID, but some terminal + # emulators don't set it. One of those is kvt. + if os.environ.has_key("WINDOWID"): + return 1 + else: + import commands + (status, output) = commands.getstatusoutput("xdpyinfo") + return status == 0 + +# Rulebase loading and option processing + +def load_system(cmd_options, cmd_arguments): + "Read in the rulebase and handle command-line arguments." + global debug, config, inclusions + debug = inclusions = 0; + config = None + + if not cmd_arguments: + rulebase = "rules.out" + else: + rulebase = cmd_arguments[0] + try: + open(rulebase, 'rb') + except IOError: + print lang["NOFILE"] % (rulebase,) + raise SystemExit + configuration = cmlsystem.CMLSystem(rulebase) + + process_options(configuration, cmd_options) + + configuration.debug_emit(1, lang["PARAMS"] % (config,configuration.prefix)) + + # Perhaps the user needs modules enabled initially + if configuration.trit_tie and cml.evaluate(configuration.trit_tie): + configuration.trits_enabled = 1 + + # Don't count all these automatically generated settings + # for purposes of figuring out whether we should confirm a quit. + configuration.commits = 0 + + return configuration + +def process_include(configuration, file, freeze): + "Process a -i or -I inclusion option." + # Failure to find an include file is non-fatal + try: + (changes, errors) = configuration.load(file, freeze) + except IOError: + print lang["LOADFAIL"] % file + return + if errors: + print errors + elif configuration.side_effects: + print lang["SIDEFROM"] % file + sys.stdout.writelines(string.join(configuration.side_effects, "\n") + "\n") + +def process_define(configuration, val, freeze): + "Process a -d=xxx or -D=xxx option." + parts = string.split(val, "=") + sym = parts[0] + if configuration.dictionary.has_key(sym): + sym = configuration.dictionary[sym] + else: + configuration.errout.write(lang["SYMUNKNOWN"] % (`sym`,)) + sys.exit(1) + if sym.is_derived(): + configuration.debug_emit(1, lang["DERIVED"] % (`sym`,)) + sys.exit(1) + elif sym.is_logical(): + if len(parts) == 1: + val = 'y' + elif parts[1] == 'y': + val = 'y' + elif parts[1] == 'm': + configuration.trits_enabled = 1 + val = 'm' + elif parts[1] == 'n': + val = 'n' + elif len(parts) == 1: + print lang["NOCMDLINE"] % (`sym`,) + sys.exit(1) + else: + val = parts[1] + (ok, effects, violation) = configuration.set_symbol(sym, + configuration.value_from_string(sym, val), + freeze) + if not ok: + if effects: + print lang["EFFECTS"] + sys.stdout.writelines(string.join(effects,"\n")+"\n") + print lang["ROLLBACK"] % (symbol.name, value) + if configuration.side_effects: + sys.stdout.writelines(string.join(violation,"\n")+"\n") + +def process_options(configuration, options): + # Process command-line options second so they override + global list, config + global force_batch, force_x, force_tty, force_curses, debug + global readlog, inclusions, banner + config = "config.out" + for (switch, val) in options: + if switch == '-b': + force_batch = 1 + elif switch == '-B': + banner = val + elif switch == '-d': + process_define(configuration, val, freeze=0) + elif switch == '-D': + process_define(configuration, val, freeze=1) + elif switch == '-i': + process_include(configuration, val, freeze=0) + inclusions += 1 + elif switch == '-I': + process_include(configuration, val, freeze=1) + inclusions += 1 + elif switch == '-l': + list = 1 + elif switch == '-o': + config = val + elif switch == '-v': + debug = debug + 1 + configuration.debug = configuration.debug + 1 + elif switch == '-S': + configuration.suppressions = 0 + elif switch == '-R': + readlog = open(val, "r") + +# Main sequence -- isolated here so we can profile it + +def main(options, arguments): + global force_batch, force_x, force_curses, force_tty + global configuration + + try: + configuration = load_system(options, arguments) + except KeyboardInterrupt: + raise SystemExit + + if list: + try: + menu_tree_list(configuration.start, 0) + except EnvironmentError: + pass # Don't emit a traceback when we interrupt the listing + raise SystemExit + # Perhaps we're in batchmode. If so, only process options. + if force_batch: + # Have to realize all choices values first... + for entry in configuration.dictionary.values(): + if entry.type == "choices": + configuration.visit(entry) + configuration.save(config) + return + + # Next, try X + if force_x: + tkinter_style_menu(config, banner) + return + + # Next, try curses + if force_curses and not force_tty: + try: + curses.wrapper(curses_style_menu, config, banner) + return + except "TERMTOOSMALL": + print lang["TERMTOOSMALL"] + force_tty = 1 + + # If both failed, go glass-tty + if force_tty: + print lang["WELCOME"]%(configuration.banner,) + lang["VERSION"]%(cml.version,) + configuration.errout = sys.stdout + print lang["TTYQUERY"] + tty_style_menu(config, banner).cmdloop() + +if __name__ == '__main__': + try: + runopts = "bB:cD:d:h:i:I:lo:P:R:StVvWx" + (options,arguments) = getopt.getopt(sys.argv[1:], runopts) + if os.environ.has_key("CML2OPTIONS"): + (envopts, envargs) = getopt.getopt( + os.environ["CML2OPTIONS"].split(), + runopts) + options = envopts + options + except: + print lang["BADOPTION"] + sys.exit(1) + + for (switch, val) in options: + if switch == "-V": + print "cmlconfigure", cml.version + raise SystemExit + elif switch == '-P': + proflog = val + elif switch == '-x': + force_x = 1 + elif switch == '-t': + force_tty = 1 + elif switch == '-c': + force_curses = 1 + + # Probe the environment to see if we can use X for the front end. + if not force_tty and not force_curses and not force_x: + force_x = is_under_X() + + # Do we see X capability? + if force_x: + try: + from Tkinter import * + from Dialog import * + except: + print lang["NOTKINTER"] + time.sleep(5) + force_curses = 1 + force_x = 0 + + # Probe the environment to see if we can come up in ncurses mode + if not force_tty and not force_x: + if not os.environ.has_key('TERM'): + print lang["TERMNOTSET"] + force_tty = 1 + else: + import traceback + try: + import curses, curses.textpad, curses.wrapper + force_curses = 1 + except: + ImportError + print lang["NOCURSES"] + force_tty = 1 + + if force_tty: + # It's been reported that this import fails under some 1.5.2s. + # No disaster; it's just a convenience to have command history + # in the line-oriented mode. + try: + import readline + except: + pass + + try: + if proflog: + import profile, pstats + profile.run("main(options, arguments)", proflog) + else: + main(options, arguments) + except KeyboardInterrupt: + #if configuration.commits > 0: + # print lang["NOTSAVED"] + print lang["ABORTED"] + raise SystemExit, 2 + except "UNSATISFIABLE": + #configuration.save("post.mortem") + print lang["POSTMORTEM"] + raise SystemExit, 3 + +# That's all, folks! diff -uNr linux.2.4.14.pristine/scripts/cmlsystem.py linux/scripts/cmlsystem.py --- linux.2.4.14.pristine/scripts/cmlsystem.py Wed Dec 31 19:00:00 1969 +++ linux/scripts/cmlsystem.py Wed Nov 14 17:01:24 2001 @@ -0,0 +1,1111 @@ +""" +cmlsystem.py -- CML2 configurator front-end support + +by Eric S. Raymond, + +Mode-independent code for front ends. This supplies one big class that you +initialize by loading a compiled rulebase. The class provides functions for +doing tests and manipulations on the rulebase, and for writing out +configuration files. +""" + +import os, sys, re +import cml + +_eng = { + "ABOUT":"About to write %s=%s (type %s)", + "BADEQUALS":"bad token `%s' while expecting '='.", + "BADVERSION":"Compiler/configurator version mismatch, recompile the rulebase please.\n", + "BADTOKEN":"bad token `%s' while expecting symbol.", + "BADTRIT":"Boolean symbol %s cannot have value m.", + "BINDING":" Binding from constraint: %s (source %s)", + "CHECKDONE":" ...menu %s check done", + "CHECKING":" Checking menu %s...", + "COMMIT":" Committing new bindings.", + "CONSTRAINT":" Value %s for %s failed constraint %s", + #"DERIVED":"Cannot set derived symbol %s", + "EXCLUDED":" %s value %s excluded by %s", + "FAILREQ":" Failed constraint %s", + #"FORBIDDEN":"%s=%s would violate %s", + "FROZEN":" (frozen)", + "HELPFLAG":"Help-required flag is %s", + "INCONST":"Symbol %s forced to n during recovery attempt.\n", + "INVISANC":" %s not visible, ancestor %s false", + "INVISME":" %s not visible, %s guard %s is false", + "INVISSTART":" is_visible(%s) called", + "MODULESN":"All M-valued symbols will be forced to Y.", + "MODULESM":"All tristate symbols will default to M.", + "MODULESY":"Tristate symbols won't default to M.", + "NOHELP":" %s not visible, it has no help", + "RADIOINVIS":" Query of choices menu %s elided, button pressed", + "READING":"Reading configuration from %s", + "RECOVERY":"Attempting recovery from invalid configuration:", + "RECOVEROK":"Recovery OK.", + "REDUNDANT":" Redundant assignment forced by %s", + "RENAME":"Attempt to rename %s to %s failed.", + "ROLLBACK":" Rolling back new bindings: ", + "SAVEEND":"#\n# That's all, folks!\n", + "SETTING":"%s=%s", + "SHAUTOGEN":"#\n# Automatically generated, don't edit\n#\n", + "SHDERIVED":"#\n# Derived symbols\n#\n", + "SIDEEFFECT":" (deduced from %s)", + "SUBINVIS":" %s not visible, all subqueries invisible.", + "TRIGGER":" Set of %s = %s triggered by guard %s", + "TRITFLAG":"Trit flag is now %s", + "TRITSOFF":" %s not visible, trits are suppressed", + "TYPEUNKNOWN":"Node %s unknown value type: %s %s", + "UNCHANGED":" Symbol %s unchanged", + "UNLOAD1":"File load violated these constraints:", + "UNLOAD2":"Undoing file loads, recovery failed these constraints:", + #"UNSATISFIABLE":"Ruleset found unsatisfiable while setting %s", + "USERSETTING":"User action on %s.", + "VALIDRANGE":" Valid range of %s is %s", + "VALUNKNOWN":"Node %s %s has unknown value: %s", + "VISIBLE":" Query of %s *not* elided", +} + +class CMLSystem(cml.CMLRulebase): + "A rulebase, from the point of view of a front end." + def __init__(self, rulebase): + import cPickle + rules = cPickle.load(open(rulebase, "rb")) + + # Copy the symbol table, adding runtime value state. + self.__dict__ = rules.__dict__ + for entry in self.dictionary.values(): + entry.frozen = 0 # True if it has been frozen + if entry.type == "choices": + entry.menuvalue = entry.default + else: + entry.menuvalue = None + entry.inspected = 0 # Track menu inspections + entry.setcount = 0 # Should this symbol be written? + entry.included = 0 # Seen in an inclusion? + entry.bindingstack = [] # Symbol's value stack + self.oldbindings = {} + self.newbindings = {} + self.chilled = {} + self.touched = [] # Does it have an uncommitted binding? + + # Enhance the ConfigSymbol methods to deal with the value state + cml.ConfigSymbol.oldeval = cml.ConfigSymbol.eval + def _neweval(symbol, debug=0, self=self): # Not a method! + value = self.__bindeval(symbol, debug=debug) + if value != None: + return value + value = cml.ConfigSymbol.oldeval(symbol, debug) + if value != None: + return value + elif symbol.type in ("decimal", "hexadecimal"): + return 0 + elif symbol.type == "string": + return "" + elif symbol.type == "bool": + return cml.n + elif symbol.type == "trit": + if self.module_default and not symbol.constraints: + return cml.m + else: + return cml.n + else: + return None # for menu, choices, and message-valued symbols + cml.ConfigSymbol.eval = _neweval + + def _newstr(symbol): # Not a method! + res = "%s={" % (symbol.name) + res = res + symbol.dump() + value = symbol.eval() + if value != None: + res = res + " value " + str(value) + "," + if symbol.frozen: + res = res + " frozen," + return res[:-1] + "}" + cml.ConfigSymbol.__str__ = _newstr + + # Extra state for the configuration object + self.debug = 0 # Initially, no status logging + self.errout = sys.stderr # Where to do status logging + self.suppressions = 1 # Yes, do visibility checks + self.inclusion = 0 # Are we doing a file inclusion? + self.trits_enabled = 0 # Initially, support booleans only + self.commits = 0 # Value sets since last save + self.lang = _eng # Someday we'll support more languages. + self.side_effects = [] # Track side effects + self.module_suppress = 0 # Make trits invisible + self.module_default = 0 # Should we default to modular? + + if rules.version != cml.version: + sys.stderr.write(self.lang["BADVERSION"]) + raise SystemExit, 1 + + # Utility code + + def debug_emit(self, threshold, msg): + "Conditionally emit a debug message to the designated error stream." + if self.debug >= threshold: + self.errout.write(msg + "\n") + + # Handling of symbol bindings is encapsulated here. The semantics we + # want is for every side-effect to be associated with the symbol + # whose user-specified change in value triggered it. That way, if + # and when the user changes the symbol's value again, we can back out' + # all previous side-effects contingent on that symbol. + # + # Essentially what we're doing here is journalling all bindings. + # It has to be this way, because different values of the same symbol + # could trigger completely different side effects depending on + # how the constraints are written. + class __Binding: + def __init__(self, symbol, value, source, link): + self.symbol = symbol + self.value = value + self.source = source + self.link = link + self.visible = 1 + + def __bindeval(self, symbol, debug=0): + "Get the most recent visible value for symbol off the binding stack." + #self.debug_emit(2, " bindeval(%s)" % (symbol.name)) + if not hasattr(symbol, "bindingstack"): + return None + for binding in symbol.bindingstack: + if binding.visible: + return binding.value + def __bindsymbol(self, symbol, value, source=None): + "Bind symbol to a given value." + self.debug_emit(2, " bindsymbol(%s, %s, %s)" % (symbol.name, value, `source`)) + if not source: + source = symbol + # Here is the actual binding-stack hack + newbinding = self.__Binding(symbol,value, source,self.newbindings.get(source)) + self.newbindings[source] = newbinding + symbol.bindingstack = [newbinding] + symbol.bindingstack + # Side-effect tracking + if source == None or source == symbol: + side = "" + else: + side = self.lang["SIDEEFFECT"] % (`source`,) + side = self.lang["SETTING"] % (symbol.name, value) + side + if source and source != symbol: + self.side_effects.append(side) + if symbol == self.trit_tie: + if value == cml.n: + self.side_effects.append(self.lang["MODULESN"]) + elif value == cml.m: + self.side_effects.append(self.lang["MODULESM"]) + elif value == cml.y: + self.side_effects.append(self.lang["MODULESY"]) + # Debugging support + if self.debug: + self.debug_emit(1, " " + side) + # Mark it to be written + menu = symbol + while menu: + menu.setcount += 1 + menu = menu.menu + def __unbindsymbol(self, symbol, context): + "Remove all bindings of a given symbol from a given context" + listhead = context.get(symbol) + if listhead: + while listhead: + listhead.symbol.bindingstack.remove(listhead) + listhead = listhead.link + del context[symbol] + if symbol.menu.type == "choices": + for sibling in symbol.menu.items: + if sibling.eval(): + symbol.menu.menuvalue = sibling + break + def __bindcommit(self): + "Commit all new bindings." + undo = [] + # When we undo side-effects from a choice symbol, all the side-effects + # from setting its siblings have to be backed out too. + for primary in self.newbindings.keys(): + if primary.menu.type == "choices": + undo.extend(primary.menu.items) + else: + undo.append(primary) + # This is the magic moment that undoes side-effects + for symbol in undo: + self.__unbindsymbol(symbol, self.oldbindings) + self.oldbindings.update(self.newbindings) + self.newbindings.clear() + self.commits = self.commits + 1 + def __bindreveal(self, primary): + "Make every old binding of symbol visible." + bindings = self.oldbindings.get(primary) + if bindings: + listhead = bindings + while listhead: + listhead.visible = 1 + listhead = listhead.link + def __bindconceal(self, primary): + "Temporarily make old bindings hanging on a given primary invisible." + bindings = self.oldbindings.get(primary) + if bindings: + listhead = bindings + while listhead: + listhead.visible = 0 + listhead = listhead.link + def binddump(self, context=None): + "Dump the state of the bindings stack." + res = "" + if context == None: + context=self.oldbindings + for (primary, bindings) in context.items(): + res = res + "# %s(%s, touched=%d): " % (primary.name,("inactive","active")[bindings.visible], primary in self.touched) + while bindings: + res = res + bindings.symbol.name + "=" + `bindings.value` + ", " + bindings = bindings.link + res = res[:-2] + "\n" + return res + + # + # Loading and saving + # + def load(self, file, freeze=0): + "Load bindings from a defconfig-format configuration file." + import shlex + stream = shlex.shlex(open(file), file) + self.debug_emit(1, self.lang["READING"] % (file,)) + changes = 0 + errors = "" + self.inclusion = 1 + self.side_effects = [] # Not needed if we're using set_symbol below + while 1: + dobind = 1 + symname = stream.get_token() + if not symname: + break + if len(self.prefix) and symname[0:len(self.prefix)] == self.prefix: + symname = symname[len(self.prefix):] + if self.dictionary.has_key(symname): + symbol = self.dictionary[symname] + else: + symbol = None + errmsg = stream.error_leader()+self.lang["BADTOKEN"]%(symname) + errors = errors + errmsg + "\n" + dobind = 0 + + sep = stream.get_token() + if sep != '=': + errmsg = stream.error_leader()+self.lang["BADEQUALS"]%(sep,) + errors = errors + errmsg + "\n" + dobind = 0 + value = stream.get_token() + + # Do this check early to avoid Python errors if the file + # is malformed. + if not dobind: + continue + + if value[0] in stream.quotes: + value = value[1:-1] + + if not symbol: + continue + # We can't permit these files to override derivations + if symbol.is_derived(): + #errmsg = stream.error_leader()+self.lang["DERIVED"]%(symbol.name,) + #errors = errors + errmsg + "\n" + continue + + # Michael Chastain's case -- treat variable as new if + # value is m but the type cas been changed to bool + if value == 'm' and symbol.type == "bool": + errmsg = stream.error_leader()+self.lang["BADTRIT"]%(symbol,) + errors = errors + errmsg + "\n" + continue + + # Note that we've seen this in an inclusion -- it's not new. + symbol.included = 1 + + # If we load a configuration with trit values, + # force those to be enabled. + if symbol.type == "trit" and value == "m": + self.trits_enabled = 1 + + # Don't count changes to variables that are already set at the + # desired value. Do them, though, so they can be frozen. + oldval = symbol.eval() + # Use this for consistency checking by file + self.__set_symbol_internal(symbol, + self.value_from_string(symbol,value)) + self.chilled.clear() + if value != oldval: + changes = changes + 1 + + stream.instream.close() + self.inclusion = 0 + violations = self.sanecheck() + if not violations: + self.__commit(freeze) + else: + errors += self.lang["UNLOAD1"]+"\n" + "\n".join(violations) + "\n" + # This is an attempt to recover from inconsistent + # configurations. (Unusual case -- typically happens only + # when a new constraint is added to a rulebase, not in the + # more common case of new symbols.) General recovery is + # very hard, it involves constrained satisfaction problems + # for which there are not just no good algorithms, there + # are no clean definitions. We settle for a simple, + # stupid hack. Force all the unfrozen symbols in the + # violated constraints to n and see what happens. + nukem = [] + self.debug_emit(1, self.lang["RECOVERY"]) + for i in range(len(self.constraints)): + if not cml.evaluate(self.reduced[i], self.debug): + flattened = cml.flatten_expr(self.constraints[i].predicate) + for sym in flattened: + if not sym in nukem and not sym.frozen and sym.is_logical(): + nukem.append(sym) + if nukem: + errors += self.lang["RECOVERY"] + "\n" + for sym in nukem: + errors += self.lang["INCONST"] % (sym.name,) + self.__set_symbol_internal(sym, cml.n) + self.chilled.clear() + violations = self.sanecheck() + if not violations: + self.__commit(freeze) + errors += self.lang["RECOVEROK"] + else: + self.__rollback() + errors += self.lang["UNLOAD2"]+"\n" + "\n".join(violations) + "\n" + return (changes, errors) + + def saveable(self, node): + "Should this symbol be visible in the configuration written out?" + if node.setcount: + return 1 + if node.visibility == cml.n: # Result of variable freezes + return 0 + elif node.ancestors and node.ancestors[-1].eval() == cml.n: + return 0 + return 1 + + def save(self, config, baton=None): + "Save a configuration to the named output file." + newbindings = None + if self.newbindings: + newbindings = self.newbindings + self.newbindings = {} + try: + shelltemp = ".tmpconfig%d.sh" % os.getpid() + config_sh = open(shelltemp, "w") + config_sh.write(self.lang["SHAUTOGEN"]) + # Write mutable symbols, including defaulted modular symbols. + self.module_suppress = 0 + self.__save_recurse(self.start, config_sh, baton=None) + if self.trit_tie: + self.module_suppress = (self.trit_tie.eval() == cml.m) + # Write all derived symbols + config_sh.write(self.lang["SHDERIVED"]) + for entry in self.dictionary.values(): + if entry.is_derived(): + if baton: + baton.twirl() + self.__save_recurse(entry, config_sh) + # Perhaps this is a crash dump from an inconsistent ruleset? + if newbindings: + self.newbindings = newbindings + config_sh.write("#\n# Uncommitted bindings\n#\n") + config_sh.write(self.binddump(self.newbindings)) + config_sh.write(self.lang["SAVEEND"]) + config_sh.close() + try: + os.rename(shelltemp, config) + except OSError: + reason = self.lang["RENAME"] % (shelltemp, config,) + raise IOError, reason + self.commits = 0 + if baton: + baton.end() + return None + except IOError, details: + return details.args[0] + + def __save_recurse(self, node, shellstream, baton=None): + if not self.saveable(node): + return + elif node.items: + shellstream.write("\n#\n# %s\n#\n" % (node.prompt,)) + for child in node.items: + self.__save_recurse(child, shellstream) + shellstream.write("\n") + elif node.type != 'message': + symname = self.prefix + node.name + value = node.eval(self.debug) + self.debug_emit(2, self.lang["ABOUT"] %(symname,value,type(value))) + try: + if node.type == "decimal": + shellstream.write("%s=%d\n" % (symname, value)) + elif node.type == "hexadecimal": + shellstream.write("%s=0x%x\n" % (symname, value)) + elif node.type == "string": + shellstream.write("%s=\"%s\"\n" % (symname, value)) + elif node.type in ("bool", "trit"): + shellstream.write("%s=%s\n" % (symname, `value`)) + elif value == None and node.is_logical(): + shellstream.write("%s=n\n" % (symname,)) + else: + raise ValueError, self.lang["VALUNKNOWN"] % (node,node.type,value) + except: + (errtype, errval, errtrace) = sys.exc_info() + print "Internal error %s while writing %s." % (errtype, node) + raise SystemExit, 1 + if baton: + baton.twirl() + + # Symbol predicates. + + def is_mutable(self, symbol): + "Is a symbol mutable (not frozen, not derived)?" + return isinstance(symbol, cml.ConfigSymbol) and not symbol.is_derived() and not symbol.frozen + + def is_visible(self, query): + "Should we ask this question?" + self.debug_emit(2, self.lang["INVISSTART"] % (query.name,)) + # Maybe we're not doing elisions + if not self.suppressions: + return 1 + # Maybe we're suppressing trits entirely. + if not self.__trit_visible(query): + return 0 + # Maybe it has no help. + if not self.__help_visible(query): + return 0 + # Check to see if the symbol or any menu in the chain above it + # is suppressed by a visibility constraint. + if not self.__upward_visible(query): + return 0 + # OK, now check that all ancestors are visible + if not self.__dep_visible(query): + return 0 + # Now check ancestors of the containing menu + if query.menu and not self.__dep_visible(query.menu): + return 0 + # Elide a menu if all subqueries are invisible, or a choices if one is. + if not self.__subqueries_visible(query): + return 0 + # All tests passed, it's visible + self.debug_emit(2, self.lang["VISIBLE"] % (query.name)) + return 1 + + def is_visible_choices_item(self, query): + # Maybe we're not doing elisions + if not self.suppressions: + return 1 + # The query should be a symbol + if not query.is_symbol(): + return 0 + # Is the 'choices menu' visible ? + # Is the query really in a menu ? + if not query.menu: + return 0 + # Is the query really in a 'choices menu' ? + if not query.menu.type == "choices": + return 0 + # Check to see if the symbol or any menu in the chain above it + # is suppressed by a visibility constraint. + if not self.__upward_visible(query.menu): + return 0 + # OK, now check that all ancestors are visible + if not self.__dep_visible(query.menu): + return 0 + # Now check ancestors of the containing menu + if query.menu.menu and not self.__dep_visible(query.menu.menu): + return 0 + # The 'choices menu' seems to be visible. + # Now check that the query is visible. + # Maybe it has no help. + if not self.__help_visible(query): + return 0 + # OK, now check that all ancestors are visible + if not self.__dep_visible(query): + return 0 + # All tests passed, it's visible + return 1 + + def is_visible_menus_choices(self, query): + # Maybe we're not doing elisions + if not self.suppressions: + return 1 + # Maybe we're suppressing trits entirely. + if not self.__trit_visible(query): + return 0 + # Maybe it has no help. + if not self.__help_visible(query): + return 0 + # OK, now check that all ancestors are visible + if not self.__dep_visible(query): + return 0 + # Elide a menu if all subqueries are invisible, or a choices if one is. + if not self.__subqueries_visible(query): + return 0 + # All tests passed, it's visible + return 1 + # + # All the properties of visibility are implemented here + # + def __trit_visible(self, query): + if query.type == "trit": + if self.module_suppress and not query.vital and not query.constraints and not query.setcount: + self.debug_emit(2, self.lang["TRITSOFF"] % query.name) + return 0 + return 1 + + def __help_visible(self, query): + if query.is_symbol() and not query.help() and self.help_tie and not self.help_tie.eval(): + self.debug_emit(2, self.lang["NOHELP"] % query.name) + return 0 + return 1 + + def __upward_visible(self, query): + upward = query + while upward != self.start: + if upward.visibility != None and not cml.evaluate(upward.visibility): + self.debug_emit(2, self.lang["INVISME"] % (query.name, upward.name, cml.display_expression(upward.visibility))) + return 0 + upward = upward.menu + return 1 + + def __subqueries_visible(self, query): + if query.items: + setcount = 0 + if query.type == 'menu' or query.type == 'choices': + for child in query.items: + if child.type != "message": + if self.is_visible_menus_choices(child): + setcount = 1 + break + if setcount == 0: + return 0 + return 1 + + # + # All the properties of the dependency relationship are implemented here + # + def __dep_value_ok(self, symbol, value): + "Do ancestry relationships allow given value of given symbol" + for ancestor in symbol.ancestors: + v = cml.evaluate(ancestor, self.debug) + if (symbol.type == "trit" and value > v): + break + elif (symbol.type =="bool" and value > (v != cml.n)): + break + else: + return 1 # Tricky use of for-else + self.debug_emit(2, self.lang["EXCLUDED"] % (`symbol`, `cml.trit(value)`, `ancestor`)) + return 0 + + def __dep_visible(self, symbol): + "Do ancestry relations allow a symbol to be visible?" + # Note: we don't need to recurse here, assuming dependencies + # get propagated correctly. + for super in symbol.ancestors: + if not cml.evaluate(super): + self.debug_emit(2,self.lang["INVISANC"]%(symbol.name,super.name)) + return 0 + return 1 + + def __dep_force_ancestors(self, dependent, dependvalue, ancestor): + "Force a symbol's ancestors based on the symbol's value." + self.debug_emit(2, " dep_force_ancestors(%s, %s, %s)" % (`dependent`, `dependvalue`, `ancestor`)) + if dependent.type in ("bool", "trit") and ancestor.is_logical(): + anctype = ancestor.type + ancvalue = cml.evaluate(ancestor) + if dependvalue > ancvalue: + if dependent.type == anctype or not self.trits_enabled: + self.__set_symbol_internal(ancestor, dependvalue,dependent) + elif dependent.type == "trit": + self.__set_symbol_internal(ancestor, dependvalue,dependent) + # Recurse upwards, first through ancestors... + for upper in ancestor.ancestors: + self.__dep_force_ancestors(dependent, dependvalue, upper) + # ...and then through the containing menu. + for upper in ancestor.menu.ancestors: + self.__dep_force_ancestors(dependent, dependvalue, upper) + + def __dep_force_dependents(self, guard, guardvalue, dependent): + self.debug_emit(2, " dep_force_dependents(%s, %s, %s)" % (`guard`, `guardvalue`, `dependent`)) + if guard.type in ("bool", "trit") and dependent.is_logical(): + deptype = dependent.type + depvalue = cml.evaluate(dependent) + if guardvalue < depvalue: + if guard.type == deptype or not self.trits_enabled: + self.__set_symbol_internal(dependent, guardvalue, guard) + elif deptype == "trit": + self.__set_symbol_internal(dependent, guardvalue, guard) + elif guardvalue == cml.n: + self.__set_symbol_internal(dependent, guardvalue, guard) + # Recurse downwards... + if dependent.items: + for child in dependent.items: + self.__dep_force_dependents(guard, guardvalue, child) + else: + for lower in dependent.dependents: + self.__dep_force_dependents(guard, guardvalue, lower) + + # + # The following methods handle variable bindings + # + def __rollback(self): + "Roll back all new bindings." + self.debug_emit(1, self.lang["ROLLBACK"] + `self.touched`) + self.touched = [] + for symbol in self.newbindings.keys(): + self.__unbindsymbol(symbol, self.newbindings) + self.side_effects = [] + + def __commit(self, freeze=0, baton=None): + "Commit all new bindings." + if freeze: + self.debug_emit(1, self.lang["COMMIT"] + self.lang["FROZEN"]) + else: + self.debug_emit(1, self.lang["COMMIT"]) + if self.trit_tie and self.trit_tie in self.touched: + self.trits_enabled = cml.evaluate(self.trit_tie) + self.module_suppress = self.module_default = (self.trits_enabled == cml.m) + self.debug_emit(1, self.lang["TRITFLAG"] % (`cml.trit(self.trits_enabled)`,)) + if self.help_tie and self.help_tie in self.touched: + self.debug_emit(1, self.lang["HELPFLAG"] % self.help_tie.eval()) + for entry in self.touched: + if freeze: + entry.frozen = freeze + if entry.menu.type == "choices": + entry.menu.frozen = 1 + entry.menu.value = entry.name + for sibling in entry.menu.items: + sibling.frozen = freeze + self.touched = [] + if baton: + baton.twirl("#") + if freeze: + # Optimization hack -- undo this if variables can ever be unfrozen. + # In the meantime, this greatly reduces the amount of expression + # evaluation needed after variables have been frozen. + for i in range(len(self.reduced)): + simplified = self.__eval_frozen(self.reduced[i]) + if simplified != None: + self.reduced[i] = simplified + self.optimize_constraint_access() + if baton: + baton.twirl("#") + # Must do this *after* checking freezes + self.__bindcommit() # The magic moment + if baton: + baton.end() + + def sanecheck(self): + "Sanity-check a configuration and report on its side effects." + violations = [] + for i in range(len(self.constraints)): + if not cml.evaluate(self.reduced[i], self.debug): + violations.append(repr(self.constraints[i])); + self.debug_emit(1, self.lang["FAILREQ"]%(self.constraints[i],)) + return violations + + def set_symbol(self, symbol, value, freeze=0): + "Bind a symbol, tracking side effects." + self.debug_emit(1, self.lang["USERSETTING"] % (symbol.name,)) + self.side_effects = [] + self.__set_symbol_internal(symbol, value) + self.chilled.clear() + violations = self.sanecheck() + if not violations: + self.__commit(freeze) + return (1, self.side_effects, []) + else: + effects = self.side_effects + self.__rollback() # This will clear self.side_effects + return (0, effects, violations) + + def __set_symbol_internal(self, symbol, value, source=None): + "Recursively bind a symbol, with side effects." + self.debug_emit(2, " set_symbol_internal(%s, %s, %s)" % (symbol.name, value, `source`)) + if not source: + source = symbol + # The "touched" property marks this symbol changed for freeze purposes. + # It has to stay on until the next commit. + self.touched.append(symbol) + # If it already has the desired value, we're done. + if symbol.eval(self.debug) == value: + self.debug_emit(1, self.lang["UNCHANGED"] % (symbol.name,)) + return + # Barf on attempt to change the value of a changed value + if self.chilled.has_key(symbol): + self.__bindsymbol(symbol, value, source) # record for debugging + raise "UNSATISFIABLE" + # Membership in chilled means we should treat the binding as frozen for + # simplification purposes. It has to be turned off when the current + # call to set_symbol is done; otherwise side effects from inclusion + # sequences would collide with each other. + self.chilled[symbol] = 1 + # Here's where the value actually gets set + self.__bindsymbol(symbol, value, source) + # Make the side-effects of this symbol's previous bindings + # temporarily invisible while computing side effects. This + # is necessary because things like dependent suppressions + # need to be calculated according to the effects they would + # have when the old bindings are removed, as they will be + # if this change is committed (whew!) + self.__bindconceal(symbol) + # If this symbol was in a choices and is being set true, + # then unset and chill all its siblings. + if symbol.menu.type == "choices" and value: + symbol.menu.menuvalue = symbol + for sibling in symbol.menu.items: + if sibling != symbol: + self.__set_symbol_internal(sibling, cml.n, source) + # Other side effects... + if self.trit_tie and symbol == self.trit_tie and value == cml.n: + for entry in self.dictionary.values(): + if entry.type == "trit" and not entry.is_derived() and entry.eval() == cml.m: + self.__set_symbol_internal(entry, cml.y, source) + # Now propagate the value change through ancestry chains + if symbol.is_logical(): + if value > cml.n: + for ancestor in symbol.ancestors + symbol.menu.ancestors: + self.__dep_force_ancestors(symbol, value, ancestor) + if value < cml.y: + for dependent in symbol.dependents: + self.__dep_force_dependents(symbol, value, dependent) + # Perhaps we can deduce other values through explicit constraints? + # This is where we'd plug in a full SAT algorithm if we were going + # to use one. + if not self.inclusion and symbol.visibility: + self.__bind_from_constraint(symbol.visibility, source) + # Now loop through the constraints associated with this + # symbol, simplifying out assigned variables and trying to + # freeze more variables each time. The outer loop guarantees + # that as long as the constraints imply at least one more + # tentative setting, we'll keep going. + while 1: + cc = 0 + for wff in symbol.constraints: + cc += self.__bind_from_constraint(wff, source) + if not cc: + break; + # OK, now make the old bindings of this symbol visible again + # (the change we just made might get rolled back later). + self.__bindreveal(symbol) + + def value_from_string(self, sym, val): + "Set symbol from string according to the symbol type." + if sym.is_logical(): + if val == "y": + val = cml.y + elif val == "m": + val = cml.m + elif val == "n": + val = cml.n + elif sym.type == "decimal": + val = int(val) + elif sym.type == "hexadecimal": + val = long(val, 16) + return val + + def __eval_frozen(self, wff): + "Test whether a given expr is entirely constant, chilled or frozen." + if isinstance(wff,cml.trit) or type(wff) in (type(0),type(0L),type("")): + return wff + elif isinstance(wff, cml.ConfigSymbol): + if wff.frozen or self.chilled.has_key(wff): + return wff.eval() + elif wff.is_derived(): + return self.__eval_frozen(wff.default) + else: + return None + elif wff[0] == 'not': + below = self.__eval_frozen(wff[1]) + if below == None: + return None + else: + return cml.trit(not below) + elif wff[0] == '?': + guard = self.__eval_frozen(wff[1]) + if guard == None: + return None + if guard: + return self.__eval_frozen(wff[2]) + else: + return self.__eval_frozen(wff[3]) + else: + left = self.__eval_frozen(wff[1]) + right = self.__eval_frozen(wff[2]) + if left != None and right != None: + return cml.evaluate((wff[0], left, right)) + elif left == None and right == None: + return None + # OK, now the grotty part starts + elif wff[0] == 'and': + if left == cml.n or right == cml.n: + return cml.n + elif left in (cml.y, cml.m): + return right + elif right in (cml.y, cml.m): + return left + else: + return None + elif wff[0] == 'or': + if left in (cml.y, cml.m) or right in (cml.y, cml.m): + return cml.y + elif left == cml.n: + return right + elif right == cml.n: + return left + else: + return None + elif wff[0] == 'implies': + if left in (cml.y, cml.m): + return right + elif left == cml.n: + return cml.y + elif right == cml.n: + return not left + else: + return None + else: + return None + + def __bind_from_constraint(self, wff, source): + "Set symbols based on asserted equalities or inequalities." + self.debug_emit(2, self.lang["BINDING"] % (cml.display_expression(wff), `source`)) + if not wff or self.__eval_frozen(wff) != None: + return 0 + elif isinstance(wff, cml.ConfigSymbol): + return 0 + op = wff[0] + left = wff[1] + right = wff[2] + if op == '?': + guard = self.__eval_frozen(left) + if guard == None: + return 0 + elif guard: + return self.__bind_from_constraint(right, source) + else: + return self.__bind_from_constraint(wff[3], source) + elif op == 'implies': + if self.__eval_frozen(left): + return self.__bind_from_constraint(right, source) + elif self.__eval_frozen(right) == cml.n: + return self.__bind_from_constraint(('==',right,cml.n), source) + elif op == 'and': + return self.__bind_from_constraint(left, source) or self.__bind_from_constraint(right, source) + elif op == '<': + return self.__bind_from_constraint(('>=', right, left), source) + elif op == '>': + return self.__bind_from_constraint(('<=', right, left), source) + else: + # Before we can force a binding, we need exactly one operand + # to be mutable... + left_mutable = self.is_mutable(left) and not self.chilled.has_key(left) + right_mutable = self.is_mutable(right) and not self.chilled.has_key(right) + if left_mutable == right_mutable: + self.debug_emit(3, "0 or 2 mutables in %s, %s" % (left, right)) + return 0 + # We need to keep the recursion from spinning forever. + leftval = cml.evaluate(left) + if isinstance(left, cml.ConfigSymbol): + leftnonnull = left.eval() + else: + leftnonnull = leftval + rightval = cml.evaluate(right) + if isinstance(right, cml.ConfigSymbol): + rightnonnull = right.eval() + else: + rightnonnull = rightval + # Now we may have the conditions to force a binding. + # The bindsymbols in the `redundant' assignments are need in order + # to make the backout logic work when a binding is unset. + if op == '==': + if left_mutable: + if leftnonnull == rightval: + self.__bindsymbol(left, rightval, source) + self.debug_emit(2, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(left, rightval, source) + return 1 + elif right_mutable: + if rightnonnull == leftval: + self.__bindsymbol(right, leftval, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(right, leftval, source) + return 1 + elif op == '<=': + if left_mutable and rightval == cml.n: + if leftnonnull == cml.n: + self.__bindsymbol(left, cml.n, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(left, cml.n, source) + return 1 + if right_mutable and leftval == cml.y: + if rightnonnull == cml.y: + self.__bindsymbol(right, cml.y, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(right, cml.y, source) + return 1 + elif op == '>=': + if left_mutable and rightval == cml.y: + if leftnonnull == cml.y: + self.__bindsymbol(left, cml.y, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(left, cml.y, source) + return 1 + if right_mutable and leftval == cml.y: + if rightnonnull == cml.y: + self.__bindsymbol(right, cml.y, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(right, cml.y, source) + return 1 + elif op == '!=': + if left_mutable and rightval == cml.y and (left.type == "bool" or not self.trits_enabled): + if leftnonnull == cml.n: + self.__bindsymbol(left, cml.n, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(left, cml.n, source) + return 1 + if right_mutable and left == cml.y and (right.type == "bool" or not self.trits_enabled): + if rightnonnull == cml.n: + self.__bindsymbol(right, cml.n, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(right, cml.n, source) + return 1 + if left_mutable and rightval == cml.n and (left.type == "bool" or not self.trits_enabled): + if leftnonnull == cml.y: + self.__bindsymbol(left, cml.y, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(left, cml.y, source) + return 1 + if right_mutable and leftval == cml.n and (right.type == "bool" or not self.trits_enabled): + if rightnonnull == cml.y: + self.__bindsymbol(right, cml.y, source) + self.debug_emit(1, self.lang["REDUNDANT"] % (wff,)) + return 0 + else: + self.__set_symbol_internal(right, cml.y, source) + return 1 + return 0 + + # + # Navigation helpers + # + + def visit(self, entry): + "Register the fact that we've visited a menu." + #self.debug_emit(1, "Visiting %s (%s) starts"%(entry.name,entry.type)) + if not hasattr(entry, "visits"): + entry.visits = 1 + else: + entry.visits = entry.visits + 1 + # Set choices defaults -- do it now for the side-effects + # (If you do it sooner you can get weird constraint failures) + if entry.visits == 1 and entry.type == "choices" and not entry.frozen: + if entry.default and self.is_visible_choices_item(entry.default): + self.set_symbol(entry.default, cml.y) + #self.debug_emit(1, "Visiting %s (%s) ends" % (entry.name,entry.type)) + + def next_node(self, here): + "Return the next menu or symbol in depth-first order." + if here.type == 'menu' and not here.default: + here = here.items[0]; + else: + while here.menu: + up = here.menu + where = up.items.index(here) + if where >= len(here.menu.items) - 1: + here = up + else: + here = up.items[where+1] + break + if here == None: + here = self.start + return here + + def previous_node(self, here): + "Return the previous menu or symbol in depth-first order." + if here.type == 'menu' and not here.default: + here = here.items[0]; + else: + while here.menu: + up = here.menu + where = up.items.index(here) + if where == 0: + here = up + else: + here = up.items[where-1] + break + if here == None: + here = self.start + return here + + def search(self, pattern, hook): + "Return a menu composed of symbols matching a given regexp." + regexp = re.compile(pattern) + hits = cml.ConfigSymbol("search", "menu") + for entry in self.dictionary.values(): + if entry.prompt and entry.type != "message": + text = hook(entry) + if text == None: + continue + elif regexp.search(text): + hits.items.append(entry) + # Give the result menu a parent only if all members have same parent + hits.menu = None + hits.frozen = 0 + for symbol in hits.items: + if hits.menu == None: + hits.menu = symbol.menu + elif symbol.menu != hits.menu: + hits.menu = None + break + return hits + + def symbolsearch(self, pattern): + "Return a menu composed of symbols matching a given regexp." + return self.search(pattern, lambda x: x.name + x.prompt) + + def helpsearch(self, pattern): + "Return a menu composed of symbols matching a given regexp." + return self.search(pattern, lambda x: x.help()) + + # Input validation + + def range_check(self, symbol, value): + "Check whether a value is within a symbol's specified valid range." + if not symbol.range: + return 1 + elif symbol.enum: + for (label, possibility) in symbol.range: + if value == possibility: + return 1 + else: + for span in symbol.range: + if type(span) is type(0): + if value == span: + return 1 + elif value >= span[0] and value <= span[1]: + return 1 + return 0 + +# End diff -uNr linux.2.4.14.pristine/scripts/configtrans.py linux/scripts/configtrans.py --- linux.2.4.14.pristine/scripts/configtrans.py Wed Dec 31 19:00:00 1969 +++ linux/scripts/configtrans.py Wed Nov 14 17:01:24 2001 @@ -0,0 +1,113 @@ +#!/usr/bin/env python +""" +configtrans.py -- translate between CML1 and CML2 config formats. + +This handles the impedance mismatch between CML2's explicit NAME=VALUE +output format and the formats expected by the Linux build machinery. + +Note: it also makes backups whenever it touches a file. + +configtrans.py -h includeout -s configout cml2file +configtrans.py -t oldconfig +""" +import sys, os, getopt, re + +def linetrans(hook, instream, outstream, trailer=None): + "Line-by-line translation between streams." + if not hasattr(instream, "readline"): + instream = open(instream, "r") + if not hasattr(outstream, "readline"): + outstream = open(outstream, "w") + while 1: + line = instream.readline() + if not line: + break + new = hook(line) + if new: + outstream.write(new) + instream.close() + if trailer: + outstream.write(trailer) + outstream.close() + +def write_include(line): + "Transform a SYMBOL=VALUE line to CML1 include format." + match = isnotset.match(line) + if match: + return "#undef %s\n" % match.group(1) + if line == "#\n": + return None + elif line[0] == "#": + return "/* " + line[1:].strip() + " */\n" + eq = line.find("=") + if eq == -1: + return line + else: + symbol = line[:eq] + value = line[eq+1 :].strip() + if value == 'y': + return "#define %s 1\n" % symbol + elif value == 'm': + return "#undef %s\n#define %s_MODULE 1\n" % (symbol, symbol) + elif value == 'n': + return "#undef %s\n" % symbol + else: + return "#define %s %s\n" % (symbol, value) + +def write_defconfig(line): + "Transform a SYMBOL=VALUE line to CML1 defconfig format." + eq = line.find("=") + if eq == -1: + return line + else: + symbol = line[:eq] + value = line[eq+1:].strip() + if value == 'n': + return "# %s is not set\n" % symbol + else: + return line + +def revert(line): + "Translate a CML1 defconfig file to CML2 format." + match = isnotset.match(line) + if match: + return "%s=n\n" % match.group(1) + else: + return line + +if __name__ == '__main__': + isnotset = re.compile("^# (.*) is not set") + include = defconfig = translate = None + (options, arguments) = getopt.getopt(sys.argv[1:], "h:s:t") + for (switch, val) in options: + if switch == '-h': + includefile = val + try: + os.rename(val, val + ".old") + except OSError: + pass + elif switch == '-s': + defconfig = val + try: + os.rename(val, val + ".old") + except OSError: + pass + elif switch == '-t': + translate = 1 + if len(arguments) > 0: + try: + if includefile: + linetrans(write_include, arguments[0], includefile, "#define AUTOCONF_INCLUDED\n") + if defconfig: + linetrans(write_defconfig, arguments[0], defconfig) + except IOError, args: + sys.stderr.write("configtrans: " + args[1] + "\n"); + raise SystemExit, 1 + elif translate: + linetrans(revert, sys.stdin, sys.stdout) + else: + print "usage: configtrans.py -t [-h includefile] [-s defconfig] file" + raise SystemExit, 1 + +# That's all, folks! + diff -uNr linux.2.4.14.pristine/scripts/kxref.py linux/scripts/kxref.py --- linux.2.4.14.pristine/scripts/kxref.py Wed Dec 31 19:00:00 1969 +++ linux/scripts/kxref.py Wed Nov 14 17:01:24 2001 @@ -0,0 +1,578 @@ +#!/usr/bin/env python +""" +kxref.py -- generate configuration symbol cross-reference for the kernel tree + +This is a report generator intended to catch problems and inconsistencies +in the configuration-symbol namespace. It uses information generated by +the CML2 compiler -- notably, it relies on the compiler's scanning of +help files. + +All this does is generate cross-reference reports on configuration +symbols. But they can be filtered and presented in various +interesting ways. Basic usage is like this: + + kxref.py [-e | -f filter | -h] [-l] [-x symbol] [-n re] [sourcetree] + +You can set a filter using a boolean-expression minilanguage. The predicates +available are as follows: + + c -- select all symbols present in code (.c, .h, .S files) + m -- select all symbols present in makefiles + n -- select all symbols defined in CML2 rulesfiles + h -- select all symbols for which help is available + d -- select all symbols that occur in defconfigs + x -- select all symbols that are derived in CML2. + p -- select all symbols that are private in CML2. + o -- select all symbols present in CML1 configuration files + a -- select all symbols declared in CML1 configuration files + +Operations available are as follows: + + & -- and (set intersection) + | -- or (set intersection) + ~ -- not (set complement). + +You may use parentheses for expression grouping. + +The most interesting report is probably ~((c|m)&(h|x)&o), which flags +all "exceptional" symbols -- that is, everything that doesn't both +occurs in code or makefiles, and either has help or is derived, and +occur in a CML1 configuration file. When the configuration system is +properly cleaned up this set should be empty. This is the filter you +get if you specify -e. + +This program caches a cross-reference database in a file named +xref.out, So all reports after the first are generated really fast. +You should remove this file whenever you apply a patch. + +The -i option inverts the report so it's keyed by file, rather than +by symbol. + +The -g option generates a patch removing file lines containing the +reported (presumably orphaned) symbols. Use with caution...it's +really only safe for hacking defconfigs. + +The -x option is for debugging. It generates a report on an individual +symbol specified as an argument to the option. Flag letters are as +above, with f= giving the value of the computed filter predicate. + +The -h option checks for duplicate or superfluous file inclusions +in the source tree. + +The -l switch suppresses printing printing of cross-references; +only symbols matching the given filter(s) are listed. + +The -n suppresses listing of files matching the given regexp. +If all the files a symbol occurs in are excluded, it will be omitted +from the listings. + +The -t option produces a listing of symbols which either have +inconsistent CML1 types or types that differ between CML1 and CML2. + +The program has some knowledge of file syntax. It ignores the +contents of comments in C, CML1, and CML2 files (e.g. does not +cross-reference symbols in such comments). + +Some interesting reports: + +n&~p&~a -- identifies CML2 symbols no longer declared or defined in CML1 + +""" +import sys, os, re, getopt, cPickle, cmlsystem + +xrefs = None +cml1types = None +rulebase = None + +def suffix(haystack, *needle): + "Does a filename have any of the given suffixes?" + for suf in needle: + if haystack[-len(suf):] == suf: + return 1 + return 0 + +def prefix(haystack, *needle): + "Does a filename have any of the given prefixes?" + for pre in needle: + if haystack[len(pre):] == pre: + return 1 + return 0 + +# Code for recognizing symbols and stripping out comments + +# It's OK that this matches _MODULE symbols, we'll filter those out later. +configpref = re.compile("(? -1: + findit = configre.search(lines[0]) + symbol = namestrip(findit.group(0)) + if not mycml1types.has_key(symbol): + mycml1types[symbol] = [] + mycml1types[symbol].append(("choice", file)) + if lines[0].find('" ') > -1: + break + lines.pop(0) + + for file in files: + node = os.path.join(dir, file)[2:] + if os.path.isfile(node) and not ignore(node): + filevisitor(dict, node) + + xrefdict = {} + here = os.getcwd() + os.chdir(sourcetree) + os.path.walk(".", xrefvisit, xrefdict) + os.chdir(here) + # Data reduction -- collapse CML1 cross references of identical type + for (key, value) in mycml1types.items(): + if len(value) <= 1: + continue # Only interested in the multiples + else: + tdict = {} + for (type, file) in value: + tdict[type] = [] + for (type, file) in value: + tdict[type].append(file) + reslist = [] + for type in tdict: + reslist.append((type, tdict[type])) + mycml1types[key] = reslist + return (xrefdict, mycml1types) + +# Predicates for filtering the reports + +def namestrip(name): + if rulebase.prefix and name[:len(rulebase.prefix)] == rulebase.prefix: + return name[len(rulebase.prefix):] + else: + return name + +def in_code(name): + "Does a name occur in code?" + if not xrefs.has_key(name): + return 0 + for file in xrefs[name]: + if suffix(file, ".c", ".S") or (suffix(file, ".h") and not suffix(file, "autoconf.h")): + return 1 + return 0 + +def in_help(name): + "Does a name occur in some help file?" + # Catch choice names that aren't in Configure.help directly. + entry = rulebase.dictionary.get(namestrip(name)) + if entry and entry.help(): + return 1 + # This catches names that are in a helpfile but not known to CML2. + if not xrefs.has_key(name): + return 0 + for file in xrefs[name]: + if suffix(file, ".help"): + return 1 + # False negative if there is ever a choice name that CML2 + # doesn't know about. + return 0 + +def in_makefile(name): + "Does a name occur in a makefile?" + if not xrefs.has_key(name): + return 0 + for file in xrefs[name]: + if suffix(file, "akefile"): + return 1 + return 0 + +def in_cml1(name): + "Does a name occur in a CML1 file?" + if not xrefs.has_key(name): + return 0 + for file in xrefs[name]: + if suffix(file, "onfig.in"): + return 1 + return 0 + +def cml1_declared(name): + "Is a name declared (assigned a type) in a CML1 file?" + return cml1types.has_key(name) + +def in_defconfig(name): + if not xrefs.has_key(name): + return 0 + "Does a this symbol occur in a defconfig?" + for file in xrefs[name]: + if file.find("defconfig") > -1 or file.find("configs/") > -1: + return 1 + return 0 + +def in_cml2(name): + "Is this a valid CML2 symbol?" + return rulebase.dictionary.has_key(namestrip(name)) + +def is_derived(name): + "Is this a CML2 derived name?" + entry = rulebase.dictionary.get(namestrip(name)) + if entry and entry.is_derived(): + return 1 + else: + return 0 + +def is_private(name): + "Is this a CML2 private symbol?" + entry = rulebase.dictionary.get(namestrip(name)) + if entry and entry.private: + return 1 + else: + return 0 + +# Report generation + +def setfilter(filterspec): + "Set the filter function." + if not filterspec: + function = "def myfilter(name): return 1" + else: + expression = "" + for c in filterspec: + if c == "(" or c == ")": + expression += c + elif c == "a": + expression += " cml1_declared(name)" + elif c == "c": + expression += " in_code(name)" + elif c == "h": + expression += " in_help(name)" + elif c == 'm': + expression += " in_makefile(name)" + elif c == "o": + expression += " in_cml1(name)" + elif c == "n": + expression += " in_cml2(name)" + elif c == "d": + expression += " in_defconfig(name)" + elif c == "x": + expression += " is_derived(name)" + elif c == "p": + expression += " is_private(name)" + elif c == "~": + expression += " not" + elif c == "&": + expression += " and" + elif c == "|": + expression += " or" + function = "def myfilter(name): return" + expression + #sys.stderr.write("Filter function: " + function + "\n") + exec function in globals() + +def report(keys, norefs=0): + "Generate a filtered report on the cross-references." + for symbol in keys: + refs = filter(lambda x: not (suppress and suppress.search(x)), xrefs[symbol]) + if refs: + if norefs: + print symbol + else: + sys.stdout.write(symbol + ":") + for file in refs: + sys.stdout.write(" " + file) + sys.stdout.write("\n") + +def generate_patch(file, symbols): + "Generate a patch deleting the given symbols from the given file." + pfp = open(file, "rb") + contents = pfp.read() + pfp.close() + for symbol in symbols: + contents = re.compile("^.*" + symbol + "[^A-Z0-9].*\n", re.M).sub("", contents) + pfp = open(file + ".tweaked", "wb") + pfp.write(contents) + pfp.close() + os.system("diff -u %s %s.tweaked; rm %s.tweaked" % (file, file, file)) + +# Inclusion checking. This lives here because we use the CML2 rulebase to +# check which CONFIG_ symbols are defined (just checking for a CONFIG_ stem +# isn't reliable as CML2 doesn't completely own that namespace). + +includere = re.compile(r'^\s*#\s*include\s*[<"](\S*)[>"]', re.M) + +def includecheck(tree): + "Check the inclusion structure of a source tree." + def includevisit(dummy, dir, files): + "Visit a directory on behalf of the inclusion checker." + def filevisitor(dummy, file): + "Visit a file on behalf of the inclusion checker." + fp = open(file) + contents = fp.read() + fp.close() + # First get the list of included files + inclusions = includere.findall(contents) + # This strips slashes, so it has to be done after + contents = c_comment_strip(contents) + # Check to see if we have defined CONFIG_ symbols in the file + matched = [] + for match in configpref.findall(contents): + if suffix(match, "_MODULE"): + match = match[:-7] + match = namestrip(match) # Strip prefix + if rulebase.dictionary.has_key(match) and match not in matched: + matched.append(match) + # Check for duplicates + dups = {} + for header in inclusions: + dups[header] = 0 + for header in inclusions: + dups[header] += 1 + for header in inclusions: + if dups[header] > 1: + print "%s: %s is included %d times" % (file, header, dups[header]) + # OK, check to see if we have autoconf inclusion. + have_autoconf = 0 + for header in inclusions: + if header == "autoconf.h" or header == "linux/config.h": + have_autoconf = 1 + break + if not matched and have_autoconf: + print "%s: has unnecessary configure file inclusion" % file + elif matched and not have_autoconf: + print "%s: needs configure file inclusion for %s" % (file, matched) + + for file in files: + if suffix(file, ".c", ".h", ".S"): + node = os.path.join(dir, file)[2:] + if os.path.isfile(node) and not ignore(node): + filevisitor(None, node) + + here = os.getcwd() + os.chdir(sourcetree) + os.path.walk(".", includevisit, None) + os.chdir(here) + +# The main program + +def load_context(tree): + "Load context, including CML2 rulebase and cross-reference database." + global rulebase, xrefs, cml1types + + # Get a CML2 rulebase. + if not os.path.exists(os.path.join(tree, "rules.out")): + print "This program requires a CML2 rulebase in the source tree." + raise SystemExit, 1 + else: + rulebase = cmlsystem.CMLSystem(os.path.join(tree, "rules.out")) + + # Try to find a saved cross-reference database. If no such database + # exists, generate one and cache it. + xref_file = os.path.join(tree, "xref.out") + if os.path.exists(xref_file): + sys.stderr.write("Reading cross-reference database...") + ifp = open(xref_file, "rb") + (xrefs, cml1types) = cPickle.load(ifp) + ifp.close() + sys.stderr.write("done.\n") + else: + sys.stderr.write("Regenerating cross-reference database...") + (xrefs, cml1types) = makexref(tree) + ofp = open(xref_file, "w") + cPickle.dump((xrefs, cml1types), ofp, 1) + ofp.close() + sys.stderr.write("done.\n") + +if __name__ == "__main__": + setfilter(None) + examine = "" + norefs = 0 + typecheck = 0 + suppress = None + invert = genpatch = checkincludes = 0 + (options, arguments) = getopt.getopt(sys.argv[1:], "ef:ghiln:x:t") + for (switch, val) in options: + if switch == '-f': + setfilter(val) + elif switch == '-e': + setfilter("~((c|m)&(h|x)&o)") + elif switch == '-i': + invert = 1 + elif switch == '-g': + invert = genpatch = 1 + elif switch == '-h': + checkincludes = 1 + elif switch == '-l': + norefs = 1 + elif switch == '-n': + suppress = re.compile(val) + elif switch == '-t': + typecheck = 1 + elif switch == '-x': + examine = val + + + if len(arguments) < 1: + sourcetree = "." + else: + sourcetree = arguments[0] + + # Load or regenerate the cross-reference database + load_context(sourcetree) + + if not checkincludes: + # OK, now filter the database + keys = filter(myfilter, xrefs.keys()) + keys.sort() + + # If invert was specified, invert the database so it's keyed by file + if invert: + inverted = {} + for key in keys: + for file in xrefs[key]: + if not inverted.has_key(file): + inverted[file] = [] + if key not in inverted[file]: + inverted[file].append(key) + xrefs = inverted + keys = inverted.keys() + keys.sort() + + if genpatch: + for file in keys: + generate_patch(file, xrefs[file]) + elif checkincludes: + includecheck(sourcetree) + elif examine: + shortname = namestrip(examine) + if not rulebase.dictionary.has_key(shortname) and not cml1types.has_key(examine): + print "%s: no such symbol" % examine + else: + print "%s: a=%d c=%d h=%d o=%d n=%d m=%d d=%d x=%s f=%d" % (examine, cml1_declared(examine), in_code(examine), in_help(examine), in_cml1(examine), in_cml2(examine), in_makefile(examine), in_defconfig(examine), is_derived(examine), myfilter(examine)) + elif typecheck: + print "CML1 type consistency report:" + hits = [] + ok = 0 + for (key, item) in cml1types.items(): + if len(item) == 1: + ok += 1 + else: + hits.append(key) + print "%d symbols have consistent type declarations." % ok + if hits: + print "Non-declared or multiply-declared symbols:" + for symbol in hits: + print "%s:" % symbol + for (type, locs) in cml1types[symbol]: + print " %-8s: %s" % (type, " ".join(locs)) + print "CML2 type cross-check:" + typematch = 0 + missing = 0 + matching = 0 + typemap = {"bool":"bool", "trit":"tristate", "string":"string", "decimal":"int", "hexadecimal":"hex"} + for (key, item) in cml1types.items(): + if not rulebase.dictionary.has_key(namestrip(key)): + missing += 1 + continue + elif len(item) != 1: + continue + cml2symbol = rulebase.dictionary[namestrip(key)] + cml1type = item[0][0] + if typemap[cml2symbol.type] == cml1type: + matching += 1 + elif cml2symbol.menu and cml2symbol.menu.type=="choices" and cml1type=="choice": + matching += 1 + else: + print '"%s", line %d: %s, %s -> %s' % (cml2symbol.file, cml2symbol.lineno, key, item[0][0], cml2symbol.type) + print "%d CML1 symbols missing, %d type matches" % (missing, matching) + else: + # OK, list the filtered symbols + try: + report(keys, norefs) + except KeyboardInterrupt, IOError: + pass # In case we break a pipe by interrupting + +# That's all, folks! diff -uNr linux.2.4.14.pristine/symbols.cml linux/symbols.cml --- linux.2.4.14.pristine/symbols.cml Wed Dec 31 19:00:00 1969 +++ linux/symbols.cml Fri Nov 16 00:13:58 2001 @@ -0,0 +1,18966 @@ +# Linux kernel configuration symbols and help texts +# +# Maintained by: +# Eric S. Raymond +# Steven Cole +# +# Translations of this file available on the WWW: +# +# - Japanese, maintained by the JF Project , at +# +# - Russian, by , at +# +# - French, by Pierre Tane , at +# +# - Polish, by Cezar Cichocki , at +# +# - German, by SuSE, at . This patch +# also includes infrastructure to support different languages. +# +# To access a document on the WWW, you need to have a direct Internet +# connection and a browser program such as netscape or lynx. If you +# only have email access, you can still use FTP and WWW servers: send +# an email to with the text +# send usenet/news.answers/internet-services/access-via-email +# in the body of the message. +# +# Information about what a kernel is, what it does, how to patch and +# compile it and much more is contained in the Kernel-HOWTO, available +# at . Before you start +# compiling, make sure that you have the necessary versions of all +# programs and libraries required to compile and run this kernel; they +# are listed in the . Make sure to read the +# toplevel kernel README file as well. +# +# The format of this file is described in the CML2 Reference Manual. +# To be nice to menuconfig, limit your line length to 70 characters. +# Use emacs's kfill.el to edit and ispell.el to spell check this file. +# +# Comments of the form "# Choice:" followed by a menu name are used +# internally by the maintainers' consistency-checking tools. +# +# When adding a help text to this file, please try to be as gentle as +# possible. Don't use unexplained acronyms and generally write for the +# hypothetical ignorant but intelligent user who has just bought a PC, +# removed Windows, installed Linux and is now recompiling the kernel +# for the first time. Tell them what to do if they're unsure. Technical +# information should go in a README in the Documentation directory. +# +# Mention all the relevant READMEs and HOWTOs in the help text. +# Make them file URLs relative to the top level of the source tree so +# that help browsers can turn them into hotlinks. All URLs ahould be +# surrounded by <>. +# +# Repetitions are fine since the help texts are not meant to be read +# in sequence. It is good style to include URLs pointing to more +# detailed technical information, pictures of the hardware, etc. +# +# The most important thing to include in a help entry is *motivation*. +# Explain why someone configuring a kernel might want to select your +# option. +# +# All this was shamelessly stolen from several different sources. Many +# thanks to all the contributors. Feel free to use these help texts in +# your own kernel configuration tools. The texts are copyrighted (c) +# 2001 by Eric S. Raymond and many others and are governed by the GNU +# General Public License. + +symbols +# +# External prerequisites (not yet implemented). +# +# GCC_VERSION "GNU CC version (get with gcc --version)" +# GMAKE_VERSION "GNU MAKE version (get with `make --version')" +# BINUTILS_VERSION "Binutils version (get with `ld -v')" +# UTIL_VERSION "Linux utilities (get with `fdformat --version`)" +# MODUTILS_VERSION "Module utilities version (get with `insmod -V')" +# E2FSPROGS_VERSION "EFS2 programs version (get with `tune2fs')" +# REISERPROGS_VERSION "Reiser utils version (get with `reiserfsck 2>&1|grep reiserfsprogs')" +# PCMCIA_CS_VERSION "PCMCIA tools version (get with `cardmgr -V')" +# PPP_VERSION "PPP version (get with `pppd --version')" +# ISDN4K_UTILS_VERSION "ISDN tools version (get with `isdnctrl 2>&1|grep version')" +# +# General query classes +# +# To see *all* questions, check *all* of these +EXPERIMENTAL 'Prompt for development and/or incomplete code/drivers' +text +Some of the various things that Linux supports (such as network +drivers, file systems, network protocols, etc.) can be in a state +of development where the functionality, stability, or the level of +testing is not yet high enough for general use. This is usually +known as the "alpha-test" phase amongst developers. If a feature is +currently in alpha-test, then the developers usually discourage +uninformed widespread use of this feature by the general public to +avoid "Why doesn't this work?" type mail messages. However, active +testing and use of these systems is welcomed. Just be aware that it +may not meet the normal level of reliability or it may fail to work +in some special cases. Detailed bug reports from people familiar +with the kernel internals are usually welcomed by the developers +(before submitting bug reports, please read the documents README, +MAINTAINERS, REPORTING-BUGS, Documentation/BUG-HUNTING, and +Documentation/oops-tracing.txt in the kernel source). + +This option will also make obsoleted drivers available. These are +drivers that have been replaced by something else, and/or are +scheduled to be removed in a future kernel release. + +Unless you intend to help test and develop a feature or driver that +falls into this category, or you have a situation that requires +using these features, you should probably say N here, which will +cause this configure script to present you with fewer choices. If +you say Y here, you will be offered the choice of using features or +drivers that are currently considered to be in the alpha-test phase. +. +#OBSOLETE 'Prompt for drivers for obsolete features and hardware' +EXPERT 'Prompt for expert choices (those with no help attached)' text + +Show user configuration choices that have no associated help. These are +presumed to be expert-level choices that most people will not want to see. +. +WIZARD 'Prompt for features that require kernel source changes.' text + +If you enable this configuration switch, kernel-hacking choices +will become available. These are not for the faint of heart... +. +DANGEROUS 'Prompt for features that can trash data.' text + +This condition includes configuration options for dangerous code -- that +is bleeding-edge experimental stuff that could trash or corrupt your data. +. +# TUNING 'Prompt for performance tweaks' +# +# Platform-independent questions +MODULES 'Enable loadable module support' text +Kernel modules are small pieces of compiled code which can be +inserted in or removed from the running kernel, using the programs +insmod and rmmod. This is described in the file +Documentation/modules.txt, including the fact that you have to say +"make modules" in order to compile the modules that you chose during +kernel configuration. Modules can be device drivers, file systems, +binary executable formats, and so on. If you think that you may want +to make use of modules with this kernel in the future, then say Y +here. If unsure, say Y. +. +#MODVERSIONS 'Set version information on all symbols for modules' +KMOD 'Kernel module loader support' text +Normally when you have selected some drivers and/or file systems to +be created as loadable modules, you also have the responsibility to +load the corresponding modules (using the programs insmod or +modprobe) before you can use them. If you say Y here however, the +kernel will be able to load modules for itself: when a part of the +kernel needs a module, it runs modprobe with the appropriate +arguments, thereby loading the module if it is available. (This is a +replacement for kerneld.) Say Y here and read about configuring it +in Documentation/kmod.txt. +. +NET 'Networking support' text +Unless you really know what you are doing, you should say Y here. +The reason is that some programs need kernel networking support even +when running on a stand-alone machine that isn't connected to any +other computer. If you are upgrading from an older kernel, you +should consider updating your networking tools too because changes +in the kernel and the tools often go hand in hand. The tools are +contained in the package net-tools, the location and version number +of which are given in Documentation/Changes. + +For a general introduction to Linux networking, it is highly +recommended to read the NET-3-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . +. +NETDEVICES 'Network device support' text +You can say N here if you don't intend to connect your Linux box to +any other computer at all or if all your connections will be over a +telephone line with a modem either via UUCP (UUCP is a protocol to +forward mail and news between unix hosts over telephone lines; read +the UUCP-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto ) or dialing up a shell +account or a BBS, even using term (term is a program which gives you +almost full Internet connectivity if you have a regular dial up +shell account on some Internet connected Unix computer. Read +http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html ). + +You'll have to say Y if your computer contains a network card that +you want to use under Linux (make sure you know its name because you +will be asked for it and read the Ethernet-HOWTO (especially if you +plan to use more than one network card under Linux)) or if you want +to use SLIP (Serial Line Internet Protocol is the protocol used to +send Internet traffic over telephone lines or null modem cables) or +CSLIP (compressed SLIP) or PPP (Point to Point Protocol, a better +and newer replacement for SLIP) or PLIP (Parallel Line Internet +Protocol is mainly used to create a mini network by connecting the +parallel ports of two local machines) or AX.25/KISS (protocol for +sending Internet traffic over amateur radio links). + +Make sure to read the NET-3-HOWTO. Eventually, you will have to read +Olaf Kirch's excellent and free book "Network Administrator's +Guide", to be found in http://www.linuxdoc.org/docs.html#guide . If +unsure, say Y. +. +SYSVIPC 'System V IPC' text +Inter Process Communication is a suite of library functions and +system calls which let processes (running programs) synchronize and +exchange information. It is generally considered to be a good thing, +and some programs won't run unless you say Y here. In particular, if +you want to run the DOS emulator dosemu under Linux (read the +DOSEMU-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto ), you'll need to say Y +here. + +You can find documentation about IPC with "info ipc" and also in +section 6.4 of the Linux Programmer's Guide, available from +http://www.linuxdoc.org/docs.html#guide . +. +BSD_PROCESS_ACCT 'BSD Process Accounting' text +If you say Y here, a user level program will be able to instruct the +kernel (via a special system call) to write process accounting +information to a file: whenever a process exits, information about +that process will be appended to the file by the kernel. The +information includes things such as creation time, owning user, +command name, memory usage, controlling terminal etc. (the complete +list is in the struct acct in include/linux/acct.h). It is up to the +user level program to do useful things with this information. This +is generally a good idea, so say Y. +. +SYSCTL 'Sysctl support' text +The sysctl interface provides a means of dynamically changing +certain kernel parameters and variables on the fly without requiring +a recompile of the kernel or reboot of the system. The primary +interface consists of a system call, but if you say Y to "/proc +file system support", a tree of modifiable sysctl entries will be +generated beneath the /proc/sys directory. They are explained in the +files in Documentation/sysctl/. Note that enabling this option will +enlarge the kernel by at least 8 KB. + +As it is generally a good thing, you should say Y here unless +building a kernel for install/rescue disks or your system is very +limited in memory. +. +BINFMT_AOUT 'Kernel support for a.out binaries' text +A.out (Assembler.OUTput) is a set of formats for libraries and +executables used in the earliest versions of UNIX. Linux used the +a.out formats QMAGIC and ZMAGIC until they were replaced with the +ELF format. + +As more and more programs are converted to ELF, the use for a.out +will gradually diminish. If you disable this option it will reduce +your kernel by one page. This is not much and by itself does not +warrant removing support. However its removal is a good idea if you +wish to ensure that absolutely none of your programs will use this +older executable format. If you don't know what to answer at this +point then answer Y. If someone told you "You need a kernel with +QMAGIC support" then you'll have to say Y here. You may answer M to +compile a.out support as a module and later load the module when you +want to use a program or library in a.out format. The module will be +called binfmt_aout.o. Saying M or N here is dangerous though, +because some crucial programs on your system might still be in A.OUT +format. +. +BINFMT_SOM 'Kernel support for SOM binaries' + +BINFMT_ELF 'Kernel support for ELF binaries' text +ELF (Executable and Linkable Format) is a format for libraries and +executables used across different architectures and operating +systems. Saying Y here will enable your kernel to run ELF binaries +and enlarge it by about 13 KB. ELF support under Linux has now all +but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC) +because it is portable (this does *not* mean that you will be able +to run executables from different architectures or operating systems +however) and makes building run-time libraries very easy. Many new +executables are distributed solely in ELF format. You definitely +want to say Y here. + +Information about ELF is contained in the ELF HOWTO available from +http://www.linuxdoc.org/docs.html#howto . + +If you find that after upgrading from Linux kernel 1.2 and saying Y +here, you still can't run any ELF binaries (they just crash), then +you'll have to install the newest ELF runtime libraries, including +ld.so (check the file Documentation/Changes for location and latest +version). + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called binfmt_elf.o. Saying M or N here is dangerous because some +crucial programs on your system might be in ELF format. +. +BINFMT_MISC 'Kernel support for MISC binaries' text +If you say Y here, it will be possible to plug wrapper-driven binary +formats into the kernel. You will like this especially when you use +programs that need an interpreter to run like Java, Python or +Emacs-Lisp. It's also useful if you often run DOS executables under +the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto ). Once you have +registered such a binary class with the kernel, you can start one of +those programs simply by typing in its name at a shell prompt; Linux +will automatically feed it to the correct interpreter. + +You can do other nice things, too. Read the file +Documentation/binfmt_misc.txt to learn how to use this feature, and +Documentation/java.txt for information about how to include Java +support. + +You must say Y to "/proc file system support" (CONFIG_PROC_FS) to +use this part of the kernel. + +You may say M here for module support and later load the module when +you have use for it; the module is called binfmt_misc.o. If you +don't know what to answer at this point, say Y. +. +BINFMT_JAVA 'Kernel support for JAVA binaries' + +SMP 'Symmetric Multi-Processing support' text +This enables support for systems with more than one CPU. If you have +a system with only one CPU, like most personal computers, say N. If +you have a system with more than one CPU, say Y. + +If you say N here, the kernel will run on single and multiprocessor +machines, but will use only one CPU of a multiprocessor machine. If +you say Y here, the kernel will run on many, but not all, +singleprocessor machines. On a singleprocessor machine, the kernel +will run faster if you say N here. + +Note that if you say Y here and choose architecture "586" or +"Pentium" under "Processor family", the kernel will not work on 486 +architectures. Similarly, multiprocessor kernels for the "PPro" +architecture may not work on all Pentium based boards. + +People using multiprocessor machines who say Y here should also say +Y to "Enhanced Real Time Clock Support", below. The "Advanced Power +Management" code will be disabled if you say Y here. + +See also the files Documentation/smp.tex, Documentation/smp.txt, +Documentation/i386/IO-APIC.txt, Documentation/nmi_watchdog.txt and the +SMP-FAQ on the WWW at http://www.irisa.fr/prive/mentre/smp-faq/ . + +If you don't know what to do here, say N. +. +IRQ_ALL_CPUS 'Distribute interrupts on all CPUs by default' + +VGA_CONSOLE 'VGA text console' text +Saying Y here will allow you to use Linux in text mode through a +display that complies with the generic VGA standard. Virtually +everyone wants that. + +The program SVGATextMode can be used to utilize SVGA video cards to +their full potential in text mode. Download it from +ftp://metalab.unc.edu/pub/Linux/utils/console . + +Say Y. +. +SOUND 'Sound card support' text +If you have a sound card in your computer, i.e. if it can say more +than an occasional beep, say Y. Be sure to have all the information +about your sound card and its configuration down (I/O port, +interrupt and DMA channel), because you will be asked for it. + +You want to read the Sound-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . General information +about the modular sound system is contained in the files +Documentation/sound/Introduction. The file +Documentation/sound/README.OSS contains some slightly outdated but +still useful information as well. + +If you have a PnP sound card and you want to configure it at boot +time using the ISA PnP tools (read +http://www.roestock.demon.co.uk/isapnptools/ ), then you need to +compile the sound card support as a module ( = code which can be +inserted in and removed from the running kernel whenever you want) +and load that module after the PnP configuration is finished. To do +this, say M here and read Documentation/modules.txt as well as +Documentation/sound/README.modules; the module will be called +soundcore.o. + +I'm told that even without a sound card, you can make your computer +say more than an occasional beep, by programming the PC speaker. +Kernel patches and supporting utilities to do that are in the pcsp +package, available at ftp://ftp.infradead.org/pub/pcsp/ . +. +# +# Architecture-dependent hardware hacks +PPC_RTAS 'RTAS (RunTime Abstraction Services) in /proc' text +When you use this option, you will be able to use RTAS from +userspace. + +RTAS stands for RunTime Abstraction Services and should +provide a portable way to access and set system information. This is +commonly used on RS/6000 (pSeries) computers. + +You can access RTAS via the special proc filesystem entry rtas. +Don't confuse this rtas entry with the one in /proc/device-tree/rtas +which is readonly. + +If you don't know if you can use RTAS look into +/proc/device-tree/rtas. If there are some entries, it is very likely +that you will be able to use RTAS. + +You can do cool things with rtas. To print out information about +various sensors in the system, just do a + + $ cat /proc/rtas/sensors + +or if you power off your machine at night but want it running when +you enter your office at 7:45 am, do a + + # date -d 'tomorrow 7:30' +%s > /proc/rtas/poweron + +and shutdown. + +If unsure, say Y +. +PREP_RESIDUAL 'Support for PReP Residual Data' text +Some PReP systems have residual data passed to the kernel by the +firmware. This allows detection of memory size, devices present and +other useful pieces of information. Sometimes this information is not +present or incorrect. + +Unless you expect to boot on a PReP system, there is not need to select +yes. +. +#CMDLINE_BOOL 'Default bootloader kernel arguments' +CMDLINE 'Initial kernel command line' text +On some architectures (EBSA110 and CATS), there is currently no way +for the boot loader to pass arguments to the kernel. For these +architectures, you should supply some command-line options at build +time by entering them here. As a minimum, you should specify the +memory size and the root device (e.g., mem=64M root=/dev/nfs) +. +CPU_LITTLE_ENDIAN 'Generate little endian code' text +Some MIPS machines can be configured for either little or big endian +byte order. These modes require different kernels. Say Y if your +machine is little endian, N if it's a big endian machine. +. +MIPS_FPU_EMULATOR 'Kernel floating-point emulation' text +This option enables the MIPS software floatingpoint support. Due to the +way floatingpoint works you should always enable this option unless +you exactly know what you're doing. +. +HEARTBEAT 'Use power LED as a heartbeat' + +DISCONTIGMEM 'Discontiguous Memory Support' + +# Kernel core (/proc/kcore) format (default is ELF) +KCORE_ELF 'ELF' text +If you enabled support for /proc file system then the file +/proc/kcore will contain the kernel core image. This can be used +in gdb: + +$ cd /usr/src/linux ; gdb vmlinux /proc/kcore + +You have two choices here: ELF and A.OUT. Selecting ELF will make +/proc/kcore appear in ELF core format as defined by the Executable +and Linking Format specification. Selecting A.OUT will choose the +old "a.out" format which may be necessary for some old versions +of binutils or on some architectures. + +This is especially useful if you have compiled the kernel with the +"-g" option to preserve debugging information. It is mainly used +for examining kernel data structures on the live kernel so if you +don't understand what this means or are not a kernel hacker, just +leave it at its default value ELF. +. +KCORE_AOUT 'a.out' + +# +# PCI access modes used in multiple ports +PCI_GOBIOS 'BIOS' text +On PCI systems, the BIOS can be used to detect the PCI devices and +determine their configuration. However, some old PCI motherboards +have BIOS bugs and may crash if this is done. Also, some embedded +PCI-based systems don't have any BIOS at all. Linux can also try to +detect the PCI hardware directly without using the BIOS. + +With this option, you can specify how Linux should detect the PCI +devices. If you choose "BIOS", the BIOS will be used, if you choose +"Direct", the BIOS won't be used, and if you choose "Any", the +kernel will try the direct access method and falls back to the BIOS +if that doesn't work. If unsure, go with the default, which is +"Any". +. +PCI_GODIRECT 'Direct' + +PCI_GOANY 'Any' + +# +# System busses +ISA 'Support for ISA-bus hardware' + +EISA 'Support for EISA-bus hardware' text +The Extended Industry Standard Architecture (EISA) bus was +developed as an open alternative to the IBM MicroChannel bus. + +The EISA bus provided some of the features of the IBM MicroChannel +bus while maintaining backward compatibility with cards made for +the older ISA bus. The EISA bus saw limited use between 1988 and 1995 +when it was made obsolete by the PCI bus. + +Say Y here if you are building a kernel for an EISA-based machine. + +Otherwise, say N. +. +PCI 'Support for PCI bus hardware' text +Find out whether you have a PCI motherboard. PCI is the name of a +bus system, i.e. the way the CPU talks to the other stuff inside +your box. Other bus systems are ISA, EISA, Microchannel (MCA) or +VESA. If you have PCI, say Y, otherwise N. + +The PCI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , contains valuable +information about which PCI hardware does work under Linux and which +doesn't. +. +PCI_NAMES 'PCI device name database' text +By default, the kernel contains a database of all known PCI device +names to make the information in /proc/pci, /proc/ioports and +similar files comprehensible to the user. This database increases +size of the kernel image by about 80KB, but it gets freed after the +system boots up, so it doesn't take up kernel memory. Anyway, if you +are building an installation floppy or kernel for an embedded system +where kernel image size really matters, you can disable this feature +and you'll get device ID numbers instead of names. + +When in doubt, say Y. +. +IDE 'ATA/IDE/MFM/RLL support' text +If you say Y here, your kernel will be able to manage low cost mass +storage units such as ATA/(E)IDE and ATAPI units. The most common +cases are IDE hard drives and ATAPI CDROM drives. + +If your system is pure SCSI and doesn't use these interfaces, you +can say N here. + +Integrated Disk Electronics (IDE aka ATA-1) is a connecting standard +for mass storage units such as hard disks. It was designed by +Western Digital and Compaq Computer in 1984. It was then named +ST506. Quite a number of disks use the IDE interface. + +AT Attachment (ATA) is the superset of the IDE specifications. +ST506 was also called ATA-1. + +Fast-IDE is ATA-2 (also named Fast ATA), Enhanced IDE (EIDE) is +ATA-3. It provides support for larger disks (up to 8.4GB by means of +the LBA standard), more disks (4 instead of 2) and for other mass +storage units such as tapes and cdrom. UDMA/33 (aka UltraDMA/33) is +ATA-4 and provides faster (and more CPU friendly) transfer modes +than previous PIO (Programmed processor Input/Output) from previous +ATA/IDE standards by means of fast DMA controllers. + +ATA Packet Interface (ATAPI) is a protocol used by EIDE tape and +CDROM drives, similar in many respects to the SCSI protocol. + +SMART IDE (Self Monitoring, Analysis and Reporting Technology) was +designed in order to prevent data corruption and disk crash by +detecting pre hardware failure conditions (heat, access time, and +the like...). Disks built since June 1995 may follow this +standard. The kernel itself don't manage this; however there are +quite a number of user programs such as smart that can query the +status of SMART parameters disk. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ide.o. + +For further information, please read Documentation/ide.txt. + +If unsure, say Y. +. +SCSI 'SCSI support' text +If you want to use a SCSI hard disk, SCSI tape drive, SCSI CDROM or +any other SCSI device under Linux, say Y and make sure that you know +the name of your SCSI host adapter (the card inside your computer +that "speaks" the SCSI protocol, also called SCSI controller), +because you will be asked for it. + +You also need to say Y here if you want support for the parallel +port version of the 100 MB IOMEGA ZIP drive. + +Please read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . The +SCSI-Programming-HOWTO contains information about how to add or +remove an SCSI device from a running Linux machine without +rebooting. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called scsi_mod.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt and +Documentation/scsi.txt. However, do not compile this as a module if +your root file system (the one containing the directory /) is +located on a SCSI device. +. +CD_NO_IDESCSI 'Support CD-ROM drives that are not SCSI or IDE/ATAPI' +text +If you have a CDROM drive that is neither SCSI nor IDE/ATAPI, say Y +here, otherwise N. Read the CDROM-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Note that the answer to this question doesn't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about these CDROM drives. If you are unsure what you +have, say Y and find out whether you have one of the following +drives. + +For each of these drivers, a file Documentation/cdrom/ +exists. Especially in cases where you do not know exactly which kind +of drive you have you should read there. Most of these drivers use a +file drivers/cdrom/.h where you can define your +interface parameters and switch some internal goodies. + +All these CDROM drivers are also usable as a module ( = code which +can be inserted in and removed from the running kernel whenever you +want). If you want to compile them as module, say M instead of Y and +read Documentation/modules.txt. + +If you want to use any of these CDROM drivers, you also have to +answer Y or M to "ISO 9660 CDROM file system support" below (this +answer will get "defaulted" for you if you enable any of the Linux +CDROM drivers). +. +HOTPLUG 'Support for hot-pluggable devices' text +Say Y here if you want to plug devices into your computer while +the system is running, and be able to use them quickly. In many +cases, the devices can likewise be unplugged at any time too. + +One well known example of this is PCMCIA- or PC-cards, credit-card +size devices such as network cards, modems or hard drives which are +plugged into slots found on all modern laptop computers. Another +example, used on modern desktops as well as laptops, is USB. + +Enable HOTPLUG and KMOD, and build a modular kernel. Get agent +software (at http://linux-hotplug.sourceforge.net) and install it. +Then your kernel will automatically call out to a user mode "policy +agent" (/sbin/hotplug) to load modules and set up software needed +to use devices as you hotplug them. +. +PRINTER 'Parallel printer support' text +If you intend to attach a printer to the parallel port of your Linux +box (as opposed to using a serial printer; if the connector at the +printer has 9 or 25 holes ["female"], then it's serial), say Y. Also +read the Printing-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +It is possible to share one parallel port among several devices +(e.g. printer and ZIP drive) and it is safe to compile the +corresponding drivers into the kernel. If you want to compile this +driver as a module however ( = code which can be inserted in and +removed from the running kernel whenever you want), say M here and +read Documentation/modules.txt and Documentation/parport.txt. The +module will be called lp.o. + +If you have several parallel ports, you can specify which ports to +use with the "lp" kernel command line option. (Try "man bootparam" +or see the documentation of your boot loader (lilo or loadlin) about +how to pass options to the kernel at boot time.) The syntax of the +"lp" command line option can be found in drivers/char/lp.c. + +If you have more than 8 printers, you need to increase the LP_NO +macro in lp.c and the PARPORT_MAX macro in parport.h. +. +# +HOTPLUG_PCI 'Generic PCI hotplug support' + +HOTPLUG_PCI_COMPAQ 'Compaq PCI Hotplug driver' + +HOTPLUG_PCI_COMPAQ_NVRAM 'Save configuration into NVRAM on Compaq servers' + +# +# Kernel debugging +MAGIC_SYSRQ 'Magic System Request Key support' text +If you say Y here, you will have some control over the system even +if the system crashes for example during kernel debugging (e.g., you +will be able to flush the buffer cache to disk, reboot the system +immediately or dump some status information). This is accomplished +by pressing various keys while holding SysRq (Alt+PrintScreen). It +also works on a serial console (on PC hardware at least), if you +send a BREAK and then within 5 seconds a command keypress. The +keys are documented in Documentation/sysrq.txt. Don't say Y unless +you really know what this hack does. +. +#DEBUG_MALLOC 'Debug kmalloc/kfree' +REMOTE_DEBUG 'Remote GDB kernel debugging' text +If you say Y here, it will be possible to remotely debug the MIPS +kernel using gdb. This enlarges your kernel image disk size by +several megabytes and requires a machine with more than 16 MB, +better 32 MB RAM to avoid excessive linking time. This is only +useful for kernel hackers. If unsure, say N. +. +GDB_CONSOLE 'Console output to GDB' + +LL_DEBUG 'Low-level debugging' + +MIPS_UNCACHED 'Run uncached' text +If you say Y here there kernel will disable all CPU caches. This will +reduce the system's performance dramatically but can help finding +otherwise hard to track bugs. It can also useful if you're doing +hardware debugging with a logic analyzer and need to see all traffic +on the bus. +. +DEBUG_KERNEL 'Kernel debugging' + +DEBUG_HIGHMEM 'Debug high memory support' text +This options enables addition error checking for high memory systems. +Disable for production systems. +. +DEBUG_IOVIRT 'Memory mapped I/O debugging' + +DEBUG_BUGVERBOSE 'Verbose BUG() reporting (adds 70K)' + +# +# File system configuration +QUOTA 'Quota support' text +If you say Y here, you will be able to set per user limits for disk +usage (also called disk quotas). Currently, it works only for the +ext2 file system. You need additional software in order to use quota +support; for details, read the Quota mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Probably the quota +support is only useful for multi user systems. If unsure, say N. +. +AUTOFS_FS 'Kernel automounter support' text +The automounter is a tool to automatically mount remote file systems +on demand. This implementation is partially kernel-based to reduce +overhead in the already-mounted case; this is unlike the BSD +automounter (amd), which is a pure user space daemon. + +To use the automounter you need the user-space tools from the autofs +package; you can find the location in Documentation/Changes. You +also want to answer Y to "NFS file system support", below. + +If you want to use the newer version of the automounter with more +features, say N here and say Y to "Kernel automounter v4 support", +below. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called autofs.o. + +If you are not a part of a fairly large, distributed network, you +probably do not need an automounter, and can say N here. +. +AUTOFS4_FS 'Kernel automounter version 4 support (also supports v3)' +text +The automounter is a tool to automatically mount remote file systems +on demand. This implementation is partially kernel-based to reduce +overhead in the already-mounted case; this is unlike the BSD +automounter (amd), which is a pure user space daemon. + +To use the automounter you need the user-space tools from +ftp://ftp.kernel.org/pub/linux/daemons/autofs/testing-v4 ; you also +want to answer Y to "NFS file system support", below. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called autofs4.o. You will need to add "alias autofs autofs4" to +your modules configuration file. + +If you are not a part of a fairly large, distributed network or +don't have a laptop which needs to dynamically reconfigure to the +local network, you probably do not need an automounter, and can say +N here. +. +REISERFS_FS 'Reiserfs support' text + +Stores not just filenames but the files themselves in a balanced +tree. Uses journaling. + +Balanced trees are more efficient than traditional +filesystem architectural foundations. + +In general, ReiserFS is as fast as ext2, but is very efficient +with large directories and small files. Additional patches are +needed for NFS and quotas, please see www.reiserfs.org for +links. + +It is more easily extended to have features currently found in +database and keyword search systems than block allocation based +filesystems are. The next version will be so extended, and will +support plugins consistent with our motto ``It takes more than a +license to make source code open.'' + +Read www.reiserfs.org to learn more about reiserfs. + +Sponsored by Threshold Networks, Emusic.com, and Bigstorage.com. + +If you like it, you can pay us to add new features to it that you +need, buy a support contract, or pay us to port it to another OS. +. +REISERFS_CHECK 'Enable extra Reiserfs consistency checks' text +If you set this to yes, then ReiserFS will perform every check it +can possibly imagine of its internal consistency throughout its +operation. It will also go substantially slower. More than once we +have forgotten that this was on, and then gone despondent over the +latest benchmarks.:-) Use of this option allows our team to go all +out in checking for consistency when debugging without fear of its +effect on end users. If you are on the verge of sending in a bug +report, say yes and you might get a useful error message. Almost +everyone should say no. +. +REISERFS_PROC_INFO ' Stats in /proc/fs/reiserfs' + +ADFS_FS 'ADFS file system support' text +The Acorn Disc Filing System is the standard file system of the +RiscOS operating system which runs on Acorn's ARM-based Risc PC +systems and the Acorn Archimedes range of machines. If you say Y +here, Linux will be able to read from ADFS partitions on hard drives +and from ADFS-formatted floppy discs. If you also want to be able to +write to those devices, say Y to "ADFS write support" below. + +The ADFS partition should be the first partition (i.e., +/dev/[hs]d?1) on each of your drives. Please read the file +Documentation/filesystems/adfs.txt for further details. + +This code is also available as a module called adfs.o ( = code which +can be inserted in and removed from the running kernel whenever you +want). If you want to compile it as a module, say M here and read +Documentation/modules.txt. + +If unsure, say N. +. +ADFS_FS_RW 'ADFS write support' text +If you say Y here, you will be able to write to ADFS partitions on +hard drives and ADFS-formatted floppy disks. This is experimental +codes, so if you're unsure, say N. +. +AFFS_FS 'Amiga FFS file system support' text +The Fast File System (FFS) is the common file system used on hard +disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y +if you want to be able to read and write files from and to an Amiga +FFS partition on your hard drive. Amiga floppies however cannot be +read with this driver due to an incompatibility of the floppy +controller used in an Amiga and the standard floppy controller in +PCs and workstations. Read Documentation/filesystems/affs.txt and +fs/affs/Changes. + +With this driver you can also mount disk files used by Bernd +Schmidt's Un*X Amiga Emulator (http://www.freiburg.linux.de/~uae/ ). +If you want to do this, you will also need to say Y or M to "Loop +device support", above. + +This file system is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called affs.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. If unsure, say N. +. +HFS_FS 'Apple Macintosh file system support' text +If you say Y here, you will be able to mount Macintosh-formatted +floppy disks and hard drive partitions with full read-write access. +Please read fs/hfs/HFS.txt to learn about the available mount +options. + +This file system support is also available as a module ( = code +which can be inserted in and removed from the running kernel +whenever you want). The module is called hfs.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. +. +BFS_FS 'BFS file system support' text +Boot File System (BFS) is a file system used under SCO UnixWare to +allow the bootloader access to the kernel image and other important +files during the boot process. It is usually mounted under /stand +and corresponds to the slice marked as "STAND" in the UnixWare +partition. You should say Y if you want to read or write +the files on your /stand slice from within Linux. You then also +need to say Y to "UnixWare slices support", below. More information +about the BFS file system is contained in the file +Documentation/filesystems/bfs.txt. + +If you don't know what this is about, say N. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called bfs.o. Note that the file system of your root partition (the +one containing the directory /) cannot be compiled as a module. +. +# +# MS-DOS file systems +FAT_FS 'DOS FAT fs support' text +If you want to use one of the FAT-based file systems (the MS-DOS, +VFAT (Windows 95) and UMSDOS (used to run Linux on top of an +ordinary DOS partition) file systems), then you must say Y or M here +to include FAT support. You will then be able to mount partitions or +diskettes with FAT-based file systems and transparently access the +files on them, i.e. MSDOS files will look and behave just like all +other Unix files. + +This FAT support is not a file system in itself, it only provides +the foundation for the other file systems. You will have to say Y or +M to at least one of "MSDOS fs support" or "VFAT fs support" in +order to make use of it. + +Another way to read and write MSDOS floppies and hard drive +partitions from within Linux (but not transparently) is with the +mtools ("man mtools") program suite. You don't need to say Y here in +order to do that. + +If you need to move large files on floppies between a DOS and a +Linux box, say Y here, mount the floppy under Linux with an MSDOS +file system and use GNU tar's M option. GNU tar is a program +available for Unix and DOS ("man tar" or "info tar"). + +It is now also becoming possible to read and write compressed FAT +file systems; read Documentation/filesystems/fat_cvf.txt for +details. + +The FAT support will enlarge your kernel by about 37 KB. If unsure, +say Y. + +If you want to compile this as a module however ( = code which can +be inserted in and removed from the running kernel whenever you +want), say M here and read Documentation/modules.txt. The module +will be called fat.o. Note that if you compile the FAT support as a +module, you cannot compile any of the FAT-based file systems into +the kernel -- they will have to be modules as well. The file system +of your root partition (the one containing the directory /) cannot +be a module, so don't say M here if you intend to use UMSDOS as your +root file system. +. +MSDOS_FS 'MSDOS fs support' text +This allows you to mount MSDOS partitions of your hard drive (unless +they are compressed; to access compressed MSDOS partitions under +Linux, you can either use the DOS emulator DOSEMU, described in the +DOSEMU-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , or try dmsdosfs in +ftp://metalab.unc.edu/pub/Linux/system/filesystems/dosfs . If you +intend to use dosemu with a non-compressed MSDOS partition, say Y +here) and MSDOS floppies. This means that file access becomes +transparent, i.e. the MSDOS files look and behave just like all +other Unix files. + +If you want to use UMSDOS, the Unix-like file system on top of a +DOS file system, which allows you to run Linux from within a DOS +partition without repartitioning, you'll have to say Y or M here. + +If you have Windows 95 or Windows NT installed on your MSDOS +partitions, you should use the VFAT file system (say Y to "VFAT fs +support" below), or you will not be able to see the long filenames +generated by Windows 95 / Windows NT. + +This option will enlarge your kernel by about 7 KB. If unsure, +answer Y. This will only work if you said Y to "DOS FAT fs support" +as well. If you want to compile this as a module however ( = code +which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called msdos.o. +. +UMSDOS_FS 'Unix-like file system on top of standard MSDOS fs' text +Say Y here if you want to run Linux from within an existing DOS +partition of your hard drive. The advantage of this is that you can +get away without repartitioning your hard drive (which often implies +backing everything up and restoring afterwards) and hence you're +able to quickly try out Linux or show it to your friends; the +disadvantage is that Linux becomes susceptible to DOS viruses and +that UMSDOS is somewhat slower than ext2fs. Another use of UMSDOS +is to write files with long unix filenames to MSDOS floppies; it +also allows Unix-style soft-links and owner/permissions of files on +MSDOS floppies. You will need a program called umssync in order to +make use of UMSDOS; read Documentation/filesystems/umsdos.txt. + +To get utilities for initializing/checking UMSDOS file system, or +latest patches and/or information, visit the UMSDOS home page at +http://www.voyager.hr/~mnalis/umsdos/ . + +This option enlarges your kernel by about 28 KB and it only works if +you said Y to both "DOS FAT fs support" and "MSDOS fs support" +above. If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called umsdos.o. Note that the file system of your root partition +(the one containing the directory /) cannot be a module, so saying M +could be dangerous. If unsure, say N. +. +VFAT_FS 'VFAT (Windows-95) fs support' text +This option provides support for normal Windows file systems with +long filenames. That includes non-compressed FAT-based file systems +used by Windows 95, Windows 98, Windows NT 4.0, and the Unix +programs from the mtools package. + +You cannot use the VFAT file system for your Linux root partition +(the one containing the directory /); use UMSDOS instead if you +want to run Linux from within a DOS partition (i.e. say Y to +"UMSDOS: Unix like fs on top of std MSDOS fs", below). + +The VFAT support enlarges your kernel by about 10 KB and it only +works if you said Y to the "DOS FAT fs support" above. Please read +the file Documentation/filesystems/vfat.txt for details. If unsure, +say Y. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called vfat.o. +. +EFS_FS 'EFS file system support (read-only)' text +EFS is an older file system used for non-ISO9660 CDROMs and hard +disk partitions by SGI's IRIX operating system (IRIX 6.0 and newer +uses the XFS file system for hard disk partitions however). + +This implementation only offers read-only access. If you don't know +what all this is about, it's safe to say N. For more information +about EFS see its home page at http://aeschi.ch.eu.org/efs/ . + +If you want to compile the EFS file system support as a module ( = +code which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called efs.o. +. +JFFS_FS 'Journalling Flash File System (JFFS) support' text +JFFS is the Journaling Flash File System developed by Axis +Communications in Sweden, aimed at providing a crash/powerdown-safe +filesystem for disk-less embedded devices. Further information is +available at (http://developer.axis.com/software/jffs/). +. +JFFS_FS_VERBOSE 'JFFS debugging verbosity (0 = quiet, 3 = noisy)' text +Determines the verbosity level of the JFFS debugging messages. +. +JFFS_PROC_FS 'JFFS stats available in /proc filesystem' + +JFFS2_FS 'Journalling Flash File System v2 (JFFS2) support' + +JFFS2_FS_DEBUG 'JFFS2 debugging verbosity (0 = quiet, 3 = noisy)' + +CRAMFS 'Compressed ROM file system support' text +Saying Y here includes support for CramFs (Compressed ROM File +System). Cramfs is designed to be a simple, small, and compressed +file system for ROM based embedded systems. CramFs is read-only, +limited to 256MB file systems (with 16MB files), and doesn't support +16/32 bits uid/gid, hard links and timestamps. + +See Documentation/filesystems/cramfs.txt and fs/cramfs/README +for further information. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called cramfs.o. Note that the root file system (the one containing +the directory /) cannot be compiled as a module. + +If unsure, say N. +. +TMPFS 'Virtual memory file system support' text +Tmpfs is a file system which keeps all files in virtual memory. + +In contrast to RAM disks, which get allocated a fixed amount of +physical RAM, tmpfs grows and shrinks to accommodate the files it +contains and is able to swap unneeded pages out to swap space. + +Everything is "virtual" in the sense that no files will be created +on your hard drive; if you reboot, everything in tmpfs will be +lost. + +You should mount the filesystem somewhere to be able to use +POSIX shared memory. Adding the following line to /etc/fstab should +take care of things: + +tmpfs /dev/shm tmpfs defaults 0 0 + +Remember to create the directory that you intend to mount tmpfs on +if necessary (/dev/shm is automagically created if you use devfs). + +You can set limits for the number of blocks and inodes used by the +filesystem with the mount options "size", "nr_blocks" and +"nr_inodes". These parameters accept a suffix k, m or g for kilo, +mega and giga and can be changed on remount. + +The initial permissions of the root directory can be set with the +mount option "mode". +. +RAMFS 'Simple RAM-based file system support' text +Ramfs is a file system which keeps all files in RAM. It allows +read and write access. + +It is more of an programming example than a useable filesystem. If +you need a file system which lives in RAM with limit checking use +tmpfs. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ramfs.o. +. +ISO9660_FS 'ISO 9660 CD-ROM file system support' text +This is the standard file system used on CDROMs. It was previously +known as "High Sierra File System" and is called "hsfs" on other +Unix systems. The so-called Rock-Ridge extensions which allow for +long Unix filenames and symbolic links are also supported by this +driver. If you have a CDROM drive and want to do more with it than +just listen to audio CDs and watch its LEDs, say Y (and read +Documentation/filesystems/isofs.txt and the CDROM-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto ), thereby enlarging +your kernel by about 27 KB; otherwise say N. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called isofs.o. +. +JOLIET 'Microsoft Joliet CD-ROM extensions' text +Joliet is a Microsoft extension for the ISO 9660 CDROM file system +which allows for long filenames in unicode format (unicode is the +new 16 bit character code, successor to ASCII, which encodes the +characters of almost all languages of the world; see +http://www.unicode.org for more information). Say Y here if you want +to be able to read Joliet CDROMs under Linux. +. +ZISOFS 'Transparent decompression extension' text +This is a Linux-specific extension to RockRidge which lets you store +data in compressed form on a CD-ROM and have it transparently +decompressed when the CD-ROM is accessed. See + for the tools +necessary to create such a filesystem. Say Y here if you want to be +able to read such compressed CD-ROMs. +. +MINIX_FS 'Minix fs support' text +Minix is a simple operating system used in many classes about OS's. +The minix file system (method to organize files on a hard disk +partition or a floppy disk) was the original file system for Linux, +but has been superseded by the second extended file system ext2fs. +You don't want to use the minix file system on your hard disk +because of certain built-in restrictions, but it is sometimes found +on older Linux floppy disks. This option will enlarge your kernel by +about 28 KB. If unsure, say N. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called minix.o. Note that the file system of your root partition +(the one containing the directory /) cannot be compiled as a module. +. +VXFS_FS 'FreeVxFS file system support (VERITAS VxFS(TM) compatible)' +text +FreeVxFS is a filesystem driver that support the VERITAS VxFS(TM) +filesystem format. VERITAS VxFS(TM) is the standard filesystem +of SCO UnixWare (and possibly others) and optionally available +for Sunsoft Solaris, HP-UX and many other operating systems. +Currently only readonly access is supported. + +NOTE: the filesystem type as used by mount(1), mount(2) and fstab(5) + is 'vxfs' as it describes the filesystem format, not the + actual driver. + +This file system is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called freevxfs.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. If unsure, say N. +. +NTFS_FS 'NTFS file system support (read-only)' text +NTFS is the file system of Microsoft Windows NT. Say Y if you want +to get read access to files on NTFS partitions of your hard drive. +The Linux NTFS driver supports most of the mount options of the VFAT +driver, see . Saying Y here +will give you read-only access to NTFS partitions. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ntfs.o. If you want to compile it as a +module, say M here and read . +. +NTFS_RW 'NTFS write support' text +If you say Y here, you will (maybe) be able to write to NTFS file +systems as well as read from them. The read-write support in NTFS +is far from being complete and is not well tested. If you say Y +here, back up your NTFS volume first, since it will probably get +damaged. Also, download the Linux-NTFS project distribution from +Sourceforge at and always run the +included ntfsfix utility after writing to an NTFS partition from +Linux to fix some of the damage done by the driver. You should run +ntfsfix _after_ unmounting the partition in Linux but _before_ +rebooting into Windows. When Windows next boots, chkdsk will be +run automatically to fix the remaining damage. +Please note that write support is limited to Windows NT4 and +earlier versions. + +If unsure, say N. +. +HPFS_FS 'OS/2 HPFS file system support' text +OS/2 is IBM's operating system for PC's, the same as Warp, and HPFS +is the file system used for organizing files on OS/2 hard disk +partitions. Say Y if you want to be able to read files from and +write files to an OS/2 HPFS partition on your hard drive. OS/2 +floppies however are in regular MSDOS format, so you don't need this +option in order to be able to read them. Read +Documentation/filesystems/hpfs.txt. + +This file system is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called hpfs.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. If unsure, say N. +. +PROC_FS '/proc file system support' text +This is a virtual file system providing information about the status +of the system. "Virtual" means that it doesn't take up any space on +your hard disk: the files are created on the fly by the kernel when +you try to access them. Also, you cannot read the files with older +version of the program less: you need to use more or cat. + +It's totally cool; for example, "cat /proc/interrupts" gives +information about what the different IRQs are used for at the moment +(there is a small number of Interrupt ReQuest lines in your computer +that are used by the attached devices to gain the CPU's attention -- +often a source of trouble if two devices are mistakenly configured +to use the same IRQ). The program procinfo to display some +information about your system gathered from the /proc file system. + +Before you can use the /proc file system, it has to be mounted, +meaning it has to be given a location in the directory hierarchy. +That location should be /proc. A command such as "mount -t proc proc +/proc" or the equivalent line in /etc/fstab does the job. + +The /proc file system is explained in the file +Documentation/filesystems/proc.txt and on the proc(5) manpage ("man +5 proc"). + +This option will enlarge your kernel by about 67 KB. Several +programs depend on this, so everyone should say Y here. +. +DEVFS_FS '/dev file system support' text +This is support for devfs, a virtual file system (like /proc) which +provides the file system interface to device drivers, normally found +in /dev. Devfs does not depend on major and minor number +allocations. Device drivers register entries in /dev which then +appear automatically, which means that the system administrator does +not have to create character and block special device files in the +/dev directory using the mknod command (or MAKEDEV script) anymore. + +This is work in progress. If you want to use this, you *must* read +the material in Documentation/filesystems/devfs/, especially the +file README there. + +If unsure, say N. +. +DEVFS_MOUNT 'Automatically mount devfs at boot time' text +This option appears if you have CONFIG_DEVFS_FS enabled. Setting +this to 'Y' will make the kernel automatically mount devfs onto /dev +when the system is booted, before the init thread is started. +You can override this with the "devfs=nomount" boot option. + +If unsure, say N. +. +DEVFS_DEBUG 'Debug devfs' text +If you say Y here, then the /dev file system code will generate +debugging messages. See the file +Documentation/filesystems/devfs/boot-options for more details. + +If unsure, say N. +. +DEVPTS_FS '/dev/pts file system for Unix98 PTYs' text +You should say Y here if you said Y to "Unix98 PTY support" above. +You'll then get a virtual file system which can be mounted on +/dev/pts with "mount -t devpts". This, together with the pseudo +terminal master multiplexer /dev/ptmx, is used for pseudo terminal +support as described in The Open Group's Unix98 standard: in order +to acquire a pseudo terminal, a process opens /dev/ptmx; the number +of the pseudo terminal is then made available to the process and the +pseudo terminal slave can be accessed as /dev/pts/. What was +traditionally /dev/ttyp2 will then be /dev/pts/2, for example. + +The GNU C library glibc 2.1 contains the requisite support for this +mode of operation; you also need client programs that use the Unix98 +API. Please read Documentation/Changes for more information about +the Unix98 pty devices. + +Note that the experimental "/dev file system support" +(CONFIG_DEVFS_FS) is a more general facility. +. +QNX4FS_FS 'QNX4 file system support (read only)' text +This is the file system used by the operating system QNX 4. Say Y if +you intend to mount QNX hard disks or floppies. Unless you say Y to +"QNX4FS read-write support" below, you will only be able to read +these file systems. + +This file system support is also available as a module ( = code +which can be inserted in and removed from the running kernel +whenever you want). The module is called qnx4.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. + +If you don't know whether you need it, then you don't need it: +answer N. +. +QNX4FS_RW 'QNX4FS write support' text +Say Y if you want to test write support for QNX4 file systems. +. +ROMFS_FS 'ROM file system support' text +This is a very small read-only file system mainly intended for +initial ram disks of installation disks, but it could be used for +other read-only media as well. Read +Documentation/filesystems/romfs.txt for details. + +This file system support is also available as a module ( = code +which can be inserted in and removed from the running kernel +whenever you want). The module is called romfs.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. Note that the file system of your root +partition (the one containing the directory /) cannot be a module. + +If you don't know whether you need it, then you don't need it: +answer N. +. +EXT2_FS 'Second extended fs support' text +This is the de facto standard Linux file system (method to organize +files on a storage device) for hard disks. + +You want to say Y here, unless you intend to use Linux exclusively +from inside a DOS partition using the UMSDOS file system. The +advantage of the latter is that you can get away without +repartitioning your hard drive (which often implies backing +everything up and restoring afterwards); the disadvantage is that +Linux becomes susceptible to DOS viruses and that UMSDOS is somewhat +slower than ext2fs. Even if you want to run Linux in this fashion, +it might be a good idea to have ext2fs around: it enables you to +read more floppy disks and facilitates the transition to a *real* +Linux partition later. Another (rare) case which doesn't require +ext2fs is a diskless Linux box which mounts all files over the +network using NFS (in this case it's sufficient to say Y to "NFS +file system support" below). Saying Y here will enlarge your kernel +by about 44 KB. + +The Ext2fs-Undeletion mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , gives information about +how to retrieve deleted files on ext2fs file systems. + +To change the behavior of ext2 file systems, you can use the tune2fs +utility ("man tune2fs"). To modify attributes of files and +directories on ext2 file systems, use chattr ("man chattr"). + +Ext2fs partitions can be read from within DOS using the ext2tool +command line tool package (available via FTP (user: anonymous) from +ftp://metalab.unc.edu/pub/Linux/system/filesystems/ext2 ) and from +within Windows NT using the ext2nt command line tool package from +ftp://metalab.unc.edu/pub/Linux/utils/dos . Explore2fs is a +graphical explorer for ext2fs partitions which runs on Windows 95 +and Windows NT and includes experimental write support; it is +available from +http://jnewbigin-pc.it.swin.edu.au/Linux/Explore2fs.htm . + +If you want to compile this file system as a module ( = code which +can be inserted in and removed from the running kernel whenever you +want), say M here and read Documentation/modules.txt. The module +will be called ext2.o. Be aware however that the file system of your +root partition (the one containing the directory /) cannot be +compiled as a module, and so this could be dangerous. Most everyone +wants to say Y here. +. +EXT3_FS 'Ext3 journalling file system support' + +JBD_DEBUG 'JBD (ext3) debugging support' + +SYSV_FS 'System V/Xenix/V7/Coherent file system support (read only)' +text +SCO, Xenix and Coherent are commercial Unix systems for Intel +machines, and Version 7 was used on the DEC PDP-11. Saying Y +here would allow you to read from their floppies and hard disk +partitions. If you also want to write to these media, say Y to +"SYSV file system write support" below. + +If you have floppies or hard disk partitions like that, it is likely +that they contain binaries from those other Unix systems; in order +to run these binaries, you will want to install linux-abi which is a +a set of kernel modules that lets you run SCO, Xenix, Wyse, UnixWare, +Dell Unix and System V programs under Linux. It's available via FTP +(user: ftp) from ftp://ftp.openlinux.org/pub/people/hch/linux-abi). +NOTE: that will work only for binaries from Intel-based systems; +PDP ones will have to wait until somebody ports Linux to -11 ;-) + +If you only intend to mount files from some other Unix over the +network using NFS, you don't need the System V file system support +(but you need NFS file system support obviously). + +Note that this option is generally not needed for floppies, since a +good portable way to transport files and directories between unixes +(and even other operating systems) is given by the tar program ("man +tar" or preferably "info tar"). Note also that this option has +nothing whatsoever to do with the option "System V IPC". Read about +the System V file system in Documentation/filesystems/sysv-fs.txt. +Saying Y here will enlarge your kernel by about 27 KB. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called sysv.o. + +If you haven't heard about all of this before, it's safe to say N. +. +UDF_FS 'UDF file system support (read-only)' text +This is the new file system used on some CDROMs and DVDs. Say Y if +you intend to mount DVD discs or CDRW's written in packet mode, or +if written to by other UDF utilities, such as DirectCD. This UDF +file system support is read-only. If you want to write to UDF +file systems on some media, you need to say Y to "UDF read-write +support" below in addition. Please read +Documentation/filesystems/udf.txt. + +This file system support is also available as a module ( = code +which can be inserted in and removed from the running kernel +whenever you want). The module is called udf.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. + +If unsure, say N. +. +UDF_RW 'UDF write support' text +Say Y if you want to test write support for UDF file systems. +Due to lack of support for writing to CDR/CDRW's, this option +is only supported for hard discs, DVD-RAM, and loopback files. +. +UFS_FS 'UFS file system support (read-only)' text +BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD, +OpenBSD and NeXTstep) use a file system called UFS. Some System V +Unixes can create and mount hard disk partitions and diskettes using +this file system as well. Saying Y here will allow you to read from +these partitions; if you also want to write to them, say Y to the +experimental "UFS file system write support", below. Please read the +file Documentation/filesystems/ufs.txt for more information. + +If you only intend to mount files from some other Unix over the +network using NFS, you don't need the UFS file system support (but +you need NFS file system support obviously). + +Note that this option is generally not needed for floppies, since a +good portable way to transport files and directories between unixes +(and even other operating systems) is given by the tar program ("man +tar" or preferably "info tar"). + +When accessing NeXTstep files, you may need to convert them from the +NeXT character set to the Latin1 character set; use the program +recode ("info recode") for this purpose. + +If you want to compile the UFS file system support as a module ( = +code which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called ufs.o. + +If you haven't heard about all of this before, it's safe to say N. +. +UFS_FS_WRITE 'UFS file system write support' text +Say Y here if you want to try writing to UFS partitions. This is +experimental, so you should back up your UFS partitions beforehand. +. +CODA_FS 'Coda file system support (advanced network fs)' text +Coda is an advanced network file system, similar to NFS in that it +enables you to mount file systems of a remote server and access them +with regular Unix commands as if they were sitting on your hard +disk. Coda has several advantages over NFS: support for disconnected +operation (e.g. for laptops), read/write server replication, +security model for authentication and encryption, persistent client +caches and write back caching. + +If you say Y here, your Linux box will be able to act as a Coda +*client*. You will need user level code as well, both for the client +and server. Servers are currently user level, i.e. they need no +kernel support. Please read Documentation/filesystems/coda.txt and +check out the Coda home page http://www.coda.cs.cmu.edu . + +If you want to compile the coda client support as a module ( = code +which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called coda.o. +. +INTERMEZZO_FS 'InterMezzo file system support (replicating fs)' + +NFS_FS 'NFS file system support' text +If you are connected to some other (usually local) Unix computer +(using SLIP, PLIP, PPP or Ethernet) and want to mount files residing +on that computer (the NFS server) using the Network File Sharing +protocol, say Y. "Mounting files" means that the client can access +the files with usual UNIX commands as if they were sitting on the +client's hard disk. For this to work, the server must run the +programs nfsd and mountd (but does not need to have NFS file system +support enabled in its kernel). NFS is explained in the Network +Administrator's Guide, available from +http://www.linuxdoc.org/docs.html#guide , on its man page: "man +nfs", and in the NFS-HOWTO. + +A superior but less widely used alternative to NFS is provided by +the Coda file system; see "Coda file system support" below. + +If you say Y here, you should have said Y to TCP/IP networking also. +This option would enlarge your kernel by about 27 KB. + +This file system is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called nfs.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. + +If you are configuring a diskless machine which will mount its root +file system over NFS at boot time, say Y here and to "IP: kernel +level autoconfiguration" above and to "Root file system on NFS" +below. You cannot compile this driver as a module in this case. +There are two packages designed for booting diskless machines over +the net: netboot and etherboot, both available via FTP from +ftp://metalab.unc.edu/pub/Linux/system/boot/ethernet/ . + +If you don't know what all this is about, say N. +. +NFS_V3 'Provide NFSv3 client support' text +Say Y here if you want your NFS client to be able to speak the newer +version 3 of the NFS protocol. + +If unsure, say N. +. +ROOT_NFS 'Root file system on NFS' text +If you want your Linux box to mount its whole root file system (the +one containing the directory /) from some other computer over the +net via NFS (presumably because your box doesn't have a hard disk), +say Y. Read Documentation/nfsroot.txt for details. It is likely that +in this case, you also want to say Y to "IP: kernel level +autoconfiguration" so that your box can discover its network address +at boot time. + +Most people say N here. +. +NFSD 'NFS server support' text +If you want your Linux box to act as an NFS *server*, so that other +computers on your local network which support NFS can access certain +directories on your box transparently, you have two options: you can +use the self-contained user space program nfsd, in which case you +should say N here, or you can say Y and use the kernel based NFS +server. The advantage of the kernel based solution is that it is +faster. + +In either case, you will need support software; the respective +locations are given in the file Documentation/Changes in the NFS +section. + +If you say Y here, you will get support for version 2 of the NFS +protocol (NFSv2). If you also want NFSv3, say Y to the next question +as well. + +Please read the NFS-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +The NFS server is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called nfsd.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. If unsure, say N. +. +NFSD_V3 'Provide NFSv3 server support' text +If you would like to include the NFSv3 server as well as the NFSv2 +server, say Y here. If unsure, say Y. +. +SMB_FS 'SMB file system support (to mount Windows shares etc.)' text +SMB (Server Message Block) is the protocol Windows for Workgroups +(WfW), Windows 95/98, Windows NT and OS/2 Lan Manager use to share +files and printers over local networks. Saying Y here allows you to +mount their file systems (often called "shares" in this context) and +access them just like any other Unix directory. Currently, this +works only if the Windows machines use TCP/IP as the underlying +transport protocol, and not NetBEUI. For details, read +Documentation/filesystems/smbfs.txt and the SMB-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . + +Note: if you just want your box to act as an SMB *server* and make +files and printing services available to Windows clients (which need +to have a TCP/IP stack), you don't need to say Y here; you can use +the program samba (available via FTP (user: anonymous) in +ftp://metalab.unc.edu/pub/Linux/system/network/samba ) for that. + +General information about how to connect Linux, Windows machines and +Macs is on the WWW at http://www.eats.com/linux_mac_win.html . + +If you want to compile the SMB support as a module ( = code which +can be inserted in and removed from the running kernel whenever you +want), say M here and read Documentation/modules.txt. The module +will be called smbfs.o. Most people say N, however. +. +SMB_NLS_DEFAULT 'Use a default NLS' text +Enabling this will make smbfs use nls translations by default. You +need to specify the local charset (CONFIG_NLS_DEFAULT) in the nls +settings and you need to give the default nls for the SMB server as +CONFIG_SMB_NLS_REMOTE. + +The nls settings can be changed at mount time, if your smbmount +supports that, using the codepage and iocharset parameters. + +smbmount from samba 2.2.0 or later supports this. +. +NCP_FS 'NCP file system support (to mount NetWare volumes)' text +NCP (NetWare Core Protocol) is a protocol that runs over IPX and is +used by Novell NetWare clients to talk to file servers. It is to IPX +what NFS is to TCP/IP, if that helps. Saying Y here allows you to +mount NetWare file server volumes and to access them just like any +other Unix directory. For details, please read the file +Documentation/filesystems/ncpfs.txt in the kernel source and the +IPX-HOWTO from http://www.linuxdoc.org/docs.html#howto . + +You do not have to say Y here if you want your Linux box to act as a +file *server* for Novell NetWare clients. + +General information about how to connect Linux, Windows machines and +Macs is on the WWW at http://www.eats.com/linux_mac_win.html . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ncpfs.o. Say N unless you are connected to a Novell network. +. +SMB_NLS_REMOTE 'Default Remote NLS Option' text +This setting allows you to specify a default value for which +codepage the server uses. If this field is left blank no +translations will be done by default. The local codepage/charset +default to CONFIG_NLS_DEFAULT. + +The nls settings can be changed at mount time, if your smbmount +supports that, using the codepage and iocharset parameters. + +smbmount from samba 2.2.0 or later supports this. +. +# +# NCP Filesystem configuration +NCPFS_PACKET_SIGNING 'Packet signatures' text +NCP allows packets to be signed for stronger security. If you want +security, say Y. Normal users can leave it off. To be able to use +packet signing you must use ncpfs > 2.0.12. +. +NCPFS_IOCTL_LOCKING 'Proprietary file locking' text +Allows locking of records on remote volumes. Say N unless you have +special applications which are able to utilize this locking scheme. +. +NCPFS_STRONG 'Clear remove/delete inhibit when needed' text +Allows manipulation of files flagged as Delete or Rename Inhibit. To +use this feature you must mount volumes with the ncpmount parameter +"-s" (ncpfs-2.0.12 and newer). Say Y unless you are not mounting +volumes with -f 444. +. +NCPFS_NFS_NS 'Use NFS namespace if available' text +Allows you to utilize NFS namespace on NetWare servers. It brings +you case sensitive filenames. Say Y. You can disable it at +mount-time with the `-N nfs' parameter of ncpmount. +. +NCPFS_OS2_NS 'Use LONG (OS/2) namespace if available' text +Allows you to utilize OS2/LONG namespace on NetWare servers. +Filenames in this namespace are limited to 255 characters, they are +case insensitive, and case in names is preserved. Say Y. You can +disable it at mount time with the -N os2 parameter of ncpmount. +. +NCPFS_SMALLDOS 'Lowercase DOS filenames on LONG namespace volume' text +If you say Y here, every filename on a NetWare server volume using +the OS2/LONG namespace and created under DOS or on a volume using +DOS namespace will be converted to lowercase characters. +Saying N here will give you these filenames in uppercase. + +This is only a cosmetic option since the OS2/LONG namespace is case +insensitive. The only major reason for this option is backward +compatibility when moving from DOS to OS2/LONG namespace support. +Long filenames (created by Win95) will not be affected. + +This option does not solve the problem that filenames appear +differently under Linux and under Windows, since Windows does an +additional conversions on the client side. You can achieve similar +effects by saying Y to "Allow using of Native Language Support" +below. +. +NCPFS_NLS 'Use Native Language Support' text +Allows you to use codepages and I/O charsets for file name +translation between the server file system and input/output. This +may be useful, if you want to access the server with other operating +systems, e.g. Windows 95. See also NLS for more Information. + +To select codepages and I/O charsets use ncpfs-2.2.0.13 or newer. +. +NCPFS_EXTRAS 'Symbolic links and mode permission bits' text +This enables the use of symbolic links and an execute permission +bit on NCPFS. The file server need not have long name space or NFS +name space loaded for these to work. + +To use the new attributes, it is recommended to use the flags +'-f 600 -d 755' on the ncpmount command line. +. +# +# Native language support configuration +NLS_DEFAULT 'Default NLS Option' text +The default NLS used when mounting file system. Currently, the valid +values are: +big5, cp437, cp737, cp775, cp850, cp852, cp855, cp857, cp860, cp861, +cp862, cp863, cp864, cp865, cp866, cp869, cp874, cp932, cp936, +cp949, cp950, euc-jp, euc-kr, gb2312, iso8859-1, iso8859-2, iso8859-3, +iso8859-4, iso8859-5, iso8859-6, iso8859-7, iso8859-8, iso8859-9, +iso8859-14, iso8859-15, koi8-r, sjis +If you specify a wrong value, it will use the built-in NLS; compatible +with iso8859-1. + +If unsure, specify it as "iso8859-1". +. +NLS_CODEPAGE_437 'Codepage 437 (United States, Canada)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored +in so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage that is used in +the United States and parts of Canada. This is recommended. +. +NLS_CODEPAGE_737 'Codepage 737 (Greek)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored +in so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage that is used for +Greek. If unsure, say N. +. +NLS_CODEPAGE_775 'Codepage 775 (Baltic Rim)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored +in so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage that is used +for the Baltic Rim Languages. If unsure, say N. +. +NLS_CODEPAGE_850 'Codepage 850 (Europe)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage that is used for +much of Europe -- United Kingdom, Germany, Spain, Italy, and [add +more countries here]. It has some characters useful to many European +languages that are not part of the US codepage 437. + +If unsure, say Y. +. +NLS_CODEPAGE_852 'Codepage 852 (Central/Eastern Europe)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the Latin 2 codepage used by DOS +for much of Central and Eastern Europe. It has all the required +characters for these languages: Albanian, Croatian, Czech, English, +Finnish, Hungarian, Irish, German, Polish, Romanian, Serbian (Latin +transcription), Slovak, Slovenian, and Sorbian. +. +NLS_CODEPAGE_855 'Codepage 855 (Cyrillic)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Cyrillic. +. +NLS_CODEPAGE_857 'Codepage 857 (Turkish)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Turkish. +. +NLS_CODEPAGE_860 'Codepage 860 (Portuguese)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Portuguese. +. +NLS_CODEPAGE_861 'Codepage 861 (Icelandic)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Icelandic. +. +NLS_CODEPAGE_862 'Codepage 862 (Hebrew)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Hebrew. +. +NLS_CODEPAGE_863 'Codepage 863 (Canadian French)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Canadian +French. +. +NLS_CODEPAGE_864 'Codepage 864 (Arabic)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Arabic. +. +NLS_CODEPAGE_865 'Codepage 865 (Norwegian, Danish)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for the Nordic +European countries. +. +NLS_CODEPAGE_866 'Codepage 866 (Cyrillic/Russian)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for +Cyrillic/Russian. +. +NLS_CODEPAGE_869 'Codepage 869 (Greek)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Greek. +. +NLS_CODEPAGE_936 'Simplified Chinese charset (CP936, GB2312)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Simplified +Chinese(GBK). +. +NLS_CODEPAGE_950 'Traditional Chinese charset (Big5)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Traditional +Chinese(Big5). +. +NLS_CODEPAGE_932 'Japanese charsets (Shift-JIS, EUC-JP)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Shift-JIS +or EUC-JP. To use EUC-JP, you can use 'euc-jp' as mount option or +NLS Default value during kernel configuration , instead of 'cp932' +. +NLS_CODEPAGE_949 'Korean charset (CP949, EUC-KR)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for UHC. +. +NLS_CODEPAGE_874 'Thai charset (CP874, TIS-620)' text +The Microsoft FAT file system family can deal with filenames in +native language character sets. These character sets are stored in +so-called DOS codepages. You need to include the appropriate +codepage if you want to be able to read/write these filenames on +DOS/Windows partitions correctly. This does apply to the filenames +only, not to the file contents. You can include several codepages; +say Y here if you want to include the DOS codepage for Thai. +. +NLS_ISO8859_8 'Hebrew charsets (ISO-8859-8, CP1255)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for ISO8859-8, the Hebrew +character set. +. +NLS_CODEPAGE_1251 'Windows CP1251 (Bulgarian, Belarusian)' + +NLS_ISO8859_1 'NLS ISO 8859-1 (Latin 1; Western European Languages)' +text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the Latin 1 character +set, which covers most West European languages such as Albanian, +Catalan, Danish, Dutch, English, Faeroese, Finnish, French, German, +Galician, Irish, Icelandic, Italian, Norwegian, Portuguese, Spanish, +and Swedish. It is also the default for the US. If unsure, say Y. +. +NLS_ISO8859_2 'NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)' +text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the Latin 2 character +set, which works for most Latin-written Slavic and Central European +languages: Czech, German, Hungarian, Polish, Rumanian, Croatian, +Slovak, Slovene. +. +NLS_ISO8859_3 'NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish)' +text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the Latin 3 character +set, which is popular with authors of Esperanto, Galician, Maltese, +and Turkish. +. +NLS_ISO8859_4 'NLS ISO 8859-4 (Latin 4; old Baltic charset)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the Latin 4 character +set which introduces letters for Estonian, Latvian, and +Lithuanian. It is an incomplete predecessor of Latin 6. +. +NLS_ISO8859_5 'NLS ISO 8859-5 (Cyrillic)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for ISO8859-5, a Cyrillic +character set with which you can type Bulgarian, Byelorussian, +Macedonian, Russian, Serbian, and Ukrainian. Note that the charset +KOI8-R is preferred in Russia. +. +NLS_ISO8859_6 'NLS ISO 8859-6 (Arabic)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for ISO8859-6, the Arabic +character set. +. +NLS_ISO8859_7 'NLS ISO 8859-7 (Modern Greek)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for ISO8859-7, the Modern +Greek character set. +. +NLS_ISO8859_9 'NLS ISO 8859-9 (Latin 5; Turkish)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the Latin 5 character +set, and it replaces the rarely needed Icelandic letters in Latin 1 +with the Turkish ones. Useful in Turkey. +. +NLS_ISO8859_13 'NLS ISO 8859-13 (Latin 7; Baltic)' + +NLS_ISO8859_14 'NLS ISO 8859-14 (Latin 8; Celtic)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the Latin 8 character +set, which adds the last accented vowels for Welsh (aka Cymraeg) +(and Manx Gaelic) hat were missing in Latin 1. +http://linux.speech.cymru.org/ has further information. +. +NLS_ISO8859_15 'NLS ISO 8859-15 (Latin 9; Western European languages with Euro)' +text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the Latin 9 character +set, which covers most West European languages such as Albanian, +Catalan, Danish, Dutch, English, Estonian, Faeroese, Finnish, +French, German, Galician, Irish, Icelandic, Italian, Norwegian, +Portuguese, Spanish, and Swedish. Latin 9 is an update to +Latin 1 (ISO 8859-1) that removes a handful of rarely used +characters and instead adds support for Estonian, corrects the +support for French and Finnish, and adds the new Euro character. If +unsure, say Y. +. +NLS_KOI8_R 'NLS KOI8-R (Russian)' text +If you want to display filenames with native language characters +from the Microsoft FAT file system family or from JOLIET CDROMs +correctly on the screen, you need to include the appropriate +input/output character sets. Say Y here for the preferred Russian +character set. +. +NLS_KOI8_U 'NLS KOI8-U/RU (Ukrainian, Belarusian)' + +NLS_UTF8 'NLS UTF8' + +# +# Partition configuration +#PARTITION_ADVANCED 'Advanced partition selection' +ACORN_PARTITION 'Acorn partition support' + +#ACORN_PARTITION_CUMANA 'Cumana partition support' +ACORN_PARTITION_ICS 'ICS partition support' + +ACORN_PARTITION_ADFS 'Native filecore partition support' + +ACORN_PARTITION_POWERTEC 'PowerTec partition support' + +ACORN_PARTITION_RISCIX 'RISCiX partition support' + +OSF_PARTITION 'Alpha OSF partition support' text +Say Y here if you would like to use hard disks under Linux which +were partitioned on an Alpha machine. +. +AMIGA_PARTITION 'Amiga partition table support' + +ATARI_PARTITION 'Atari partition table support' + +IBM_PARTITION 'IBM disk label and partition support' + +MAC_PARTITION 'Macintosh partition map support' text +Say Y here if you would like to use hard disks under Linux which +were partitioned on a Macintosh. +. +MSDOS_PARTITION 'PC BIOS (MSDOS partition tables) support' text +Say Y here if you would like to use hard disks under Linux which +were partitioned on an x86 PC (not necessarily by DOS). +. +BSD_DISKLABEL 'BSD disklabel (FreeBSD partition tables) support' text +FreeBSD uses its own hard disk partition scheme on your PC. It +requires only one entry in the primary partition table of your disk +and manages it similarly to DOS extended partitions, putting in its +first sector a new partition table in BSD disklabel format. Saying Y +here allows you to read these disklabels and further mount FreeBSD +partitions from within Linux if you have also said Y to "UFS +file system support", above. If you don't know what all this is +about, say N. +. +MINIX_SUBPARTITION 'Minix subpartition support' text +Minix 2.0.0/2.0.2 subpartition table support for Linux. +Say Y here if you want to mount and use Minix 2.0.0/2.0.2 +subpartitions. +. +SOLARIS_X86_PARTITION 'Solaris (x86) partition table support' text +Like most systems, Solaris x86 uses its own hard disk partition +table format, incompatible with all others. Saying Y here allows you +to read these partition tables and further mount Solaris x86 +partitions from within Linux if you have also said Y to "UFS +file system support", above. +. +UNIXWARE_DISKLABEL 'UnixWare slices support' text +Like some systems, UnixWare uses its own slice table inside a +partition (VTOC - Virtual Table of Contents). Its format is +incompatible with all other OSes. Saying Y here allows you to read +VTOC and further mount UnixWare partitions read-only from within +Linux if you have also said Y to "UFS file system support" or +"System V and Coherent file system support", above. + +This is mainly used to carry data from a UnixWare box to your +Linux box via a removable medium like magneto-optical, ZIP or +removable IDE drives. Note, however, that a good portable way to +transport files and directories between unixes (and even other +operating systems) is given by the tar program ("man tar" or +preferably "info tar"). + +If you don't know what all this is about, say N. +. +LDM_PARTITION 'Windows Logical Disk Manager (Dynamic Disk) support' +text +Say Y here if you would like to use hard disks under Linux which +were partitioned using Windows 2000's or XP's Logical Disk Manager. +They are also known as "Dynamic Disks". + +Windows 2000 introduced the concept of Dynamic Disks to get around +the limitations of the PC's partitioning scheme. The Logical Disk +Manager allows the user to repartion a disk and create spanned, +mirrored, striped or RAID volumes, all without the need for +rebooting. + +Normal partitions are now called Basic Disks under Windows 2000 and XP. + +Technical documentation to accompany this driver is available from: + + +If unsure, say N. +. +LDM_DEBUG 'Windows LDM extra logging' text +Say Y here if you would like LDM to log verbosely. This could be +helpful if the driver doesn't work as expected and you'd like to +report a bug. + +If unsure, say N. +. +SGI_PARTITION 'SGI partition support' text +Say Y here if you would like to be able to read the hard disk +partition table format used by SGI machines. +. +ULTRIX_PARTITION 'Ultrix partition table support' text +Say Y here if you would like to be able to read the hard disk +partition table format used by DEC (now Compaq) Ultrix machines. +Otherwise, say N. +. +SUN_PARTITION 'Sun partition table support' text +Like most systems, SunOS uses its own hard disk partition table +format, incompatible with all others. Saying Y here allows you to +read these partition tables and further mount SunOS partitions from +within Linux if you have also said Y to "UFS file system support", +above. This is mainly used to carry data from a SPARC under SunOS to +your Linux box via a removable medium like magneto-optical or ZIP +drives; note however that a good portable way to transport files and +directories between unixes (and even other operating systems) is +given by the tar program ("man tar" or preferably "info tar"). If +you don't know what all this is about, say N. +. +# +# Amateur Radio protocols and AX.25 device configuration +HAMRADIO 'Amateur Radio support' text +If you want to connect your Linux box to an amateur radio, answer Y +here. You want to read http://www.tapr.org/tapr/html/pkthome.html +and the HAM-HOWTO and the AX25-HOWTO, both available from +http://www.linuxdoc.org/docs.html#howto . + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about amateur radio. +. +AX25 'Amateur Radio AX.25 Level 2 protocol' text +This is the protocol used for computer communication over amateur +radio. It is either used by itself for point-to-point links, or to +carry other protocols such as tcp/ip. To use it, you need a device +that connects your Linux box to your amateur radio. You can either +use a low speed TNC (a Terminal Node Controller acts as a kind of +modem connecting your computer's serial port to your radio's +microphone input and speaker output) supporting the KISS protocol or +one of the various SCC cards that are supported by the generic Z8530 +or the DMA SCC driver. Another option are the Baycom modem serial +and parallel port hacks or the sound card modem (supported by their +own drivers). If you say Y here, you also have to say Y to one of +those drivers. + +Information about where to get supporting software for Linux amateur +radio as well as information about how to configure an AX.25 port is +contained in the AX25-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . You might also want to +check out the file Documentation/networking/ax25.txt in the kernel +source. More information about digital amateur radio in general is +on the WWW at http://www.tapr.org/tapr/html/pkthome.html . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ax25.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +AX25_DAMA_SLAVE 'AX.25 DAMA Slave support' text +DAMA is a mechanism to prevent collisions when doing AX.25 +networking. A DAMA server (called "master") accepts incoming traffic +from clients (called "slaves") and redistributes it to other slaves. +If you say Y here, your Linux box will act as a DAMA slave; this is +transparent in that you don't have to do any special DAMA +configuration. (Linux cannot yet act as a DAMA server.) If unsure, +say N. +. +#AX25_DAMA_MASTER 'AX.25 DAMA Master support' +NETROM 'Amateur Radio NET/ROM support' text +NET/ROM is a network layer protocol on top of AX.25 useful for +routing. + +A comprehensive listing of all the software for Linux amateur radio +users as well as information about how to configure an AX.25 port is +contained in the AX25-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . You also might want to +check out the file Documentation/networking/ax25.txt. More +information about digital amateur radio in general is on the WWW at +http://www.tapr.org/tapr/html/pkthome.html . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called netrom.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +ROSE 'Amateur Radio X.25 PLP (Rose)' text +The Packet Layer Protocol (PLP) is a way to route packets over X.25 +connections in general and amateur radio AX.25 connections in +particular, essentially an alternative to NET/ROM. + +A comprehensive listing of all the software for Linux amateur radio +users as well as information about how to configure an AX.25 port is +contained in the AX25-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . You also might want to +check out the file Documentation/networking/ax25.txt. More +information about digital amateur radio in general is on the WWW at +http://www.tapr.org/tapr/html/pkthome.html . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called rose.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +# +# IP configuration +IP_MULTICAST 'IP multicasting' text +This is code for addressing several networked computers at once, +enlarging your kernel by about 2 KB. You need multicasting if you +intend to participate in the MBONE, a high bandwidth network on top +of the Internet which carries audio and video broadcasts. More +information about the MBONE is on the WWW at +http://www-itg.lbl.gov/mbone/ . Information about the multicast +capabilities of the various network cards is contained in +Documentation/networking/multicast.txt. For most people, it's safe +to say N. +. +IP_ADVANCED_ROUTER 'Advanced router' text +If you intend to run your Linux box mostly as a router, i.e. as a +computer that forwards and redistributes network packets, say Y; you +will then be presented with several options that allow more precise +control about the routing process. + +The answer to this question won't directly affect the kernel: +answering N will just cause this configure script to skip all the +questions about advanced routing. + +Note that your box can only act as a router if you enable IP +forwarding in your kernel; you can do that by saying Y to "/proc +file system support" and "Sysctl support" below and executing the +line + + echo "1" > /proc/sys/net/ipv4/ip_forward + +at boot time after the /proc file system has been mounted. + +If you turn on IP forwarding, you will also get the rp_filter, which +automatically rejects incoming packets if the routing table entry +for their source address doesn't match the network interface they're +arriving on. This has security advantages because it prevents the +so-called IP spoofing, however it can pose problems if you use +asymmetric routing (packets from you to a host take a different path +than packets from that host to you) or if you operate a non-routing +host which has several IP addresses on different interfaces. To turn +rp_filter off use: + + echo 0 > /proc/sys/net/ipv4/conf//rp_filter +or + echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter + +If unsure, say N here. +. +IP_MULTIPLE_TABLES 'Policy routing' text +Normally, a router decides what to do with a received packet based +solely on the packet's final destination address. If you say Y here, +the Linux router will also be able to take the packet's source +address into account. Furthermore, if you also say Y to "IP: use TOS +value as routing key" below, the TOS (Type-Of-Service) field of the +packet can be used for routing decisions as well. In addition, if +you say Y here and to "IP: fast network address translation" below, +the router will also be able to modify source and destination +addresses of forwarded packets. + +If you are interested in this, please see the preliminary +documentation at http://www.compendium.com.ar/policy-routing.txt and +ftp://post.tepkom.ru/pub/vol2/Linux/docs/advanced-routing.tex . You +will need supporting software from ftp://ftp.inr.ac.ru/ip-routing/ + +If unsure, say N. +. +IP_ROUTE_FWMARK 'Use netfilter MARK value as routing key' text +If you say Y here, you will be able to specify different routes for +packets with different mark values (see iptables(8), MARK target). +. +IP_ROUTE_NAT 'Fast network address translation' text +If you say Y here, your router will be able to modify source and +destination addresses of packets that pass through it, in a manner +you specify. General information about Network Address Translation +can be gotten from the document +http://www.csn.tu-chemnitz.de/~mha/linux-ip-nat/diplom/nat.html +. +IP_ROUTE_MULTIPATH 'Equal cost multipath' text +Normally, the routing tables specify a single action to be taken in +a deterministic manner for a given packet. If you say Y here +however, it becomes possible to attach several actions to a packet +pattern, in effect specifying several alternative paths to travel +for those packets. The router considers all these paths to be of +equal "cost" and chooses one of them in a non-deterministic fashion +if a matching packet arrives. +. +IP_ROUTE_TOS 'Use TOS value as routing key' text +The header of every IP packet carries a TOS (Type Of Service) value +with which the packet requests a certain treatment, e.g. low latency +(for interactive traffic), high throughput, or high reliability. If +you say Y here, you will be able to specify different routes for +packets with different TOS values. +. +IP_ROUTE_VERBOSE 'Verbose route monitoring' text +If you say Y here, which is recommended, then the kernel will print +verbose messages regarding the routing, for example warnings about +received packets which look strange and could be evidence of an +attack or a misconfigured system somewhere. The information is +handled by the klogd daemon which is responsible for kernel messages +("man klogd"). +. +IP_ROUTE_LARGE_TABLES 'Large routing tables' text +If you have routing zones that grow to more than about 64 entries, +you may want to say Y here to speed up the routing process. +. +IP_PNP 'Kernel level IP autoconfiguration' text +This enables automatic configuration of IP addresses of devices and +of the routing table during kernel boot, based on either information +supplied on the kernel command line or by BOOTP or RARP protocols. +You need to say Y only for diskless machines requiring network +access to boot (in which case you want to say Y to "Root file system +on NFS" as well), because all other machines configure the network +in their startup scripts. +. +IP_PNP_DHCP 'DHCP support' + +IP_PNP_BOOTP 'BOOTP support' text +If you want your Linux box to mount its whole root file system (the +one containing the directory /) from some other computer over the +net via NFS and you want the IP address of your computer to be +discovered automatically at boot time using the BOOTP protocol (a +special protocol designed for doing this job), say Y here. In case +the boot ROM of your network card was designed for booting Linux and +does BOOTP itself, providing all necessary information on the kernel +command line, you can say N here. If unsure, say Y. Note that if you +want to use BOOTP, a BOOTP server must be operating on your network. +Read Documentation/nfsroot.txt for details. +. +IP_PNP_RARP 'RARP support' text +If you want your Linux box to mount its whole root file system (the +one containing the directory /) from some other computer over the +net via NFS and you want the IP address of your computer to be +discovered automatically at boot time using the RARP protocol (an +older protocol which is being obsoleted by BOOTP and DHCP), say Y +here. Note that if you want to use RARP, a RARP server must be +operating on your network. Read Documentation/nfsroot.txt for +details. +. +#IP_PNP_ARP 'ARP support' +NET_IPIP 'IP tunneling' text +Tunneling means encapsulating data of one protocol type within +another protocol and sending it over a channel that understands the +encapsulating protocol. This particular tunneling driver implements +encapsulation of IP within IP, which sounds kind of pointless, but +can be useful if you want to make your (or some other) machine +appear on a different network than it physically is, or to use +mobile-IP facilities (allowing laptops to seamlessly move between +networks without changing their IP addresses; check out +http://anchor.cs.binghamton.edu/~mobileip/LJ/index.html ). + +Saying Y to this option will produce two modules ( = code which can +be inserted in and removed from the running kernel whenever you +want). Most people won't need this and can say N. +. +NET_IPGRE 'GRE tunnels over IP' text +Tunneling means encapsulating data of one protocol type within +another protocol and sending it over a channel that understands the +encapsulating protocol. This particular tunneling driver implements +GRE (Generic Routing Encapsulation) and at this time allows +encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure. +This driver is useful if the other endpoint is a Cisco router: Cisco +likes GRE much better than the other Linux tunneling driver ("IP: +tunneling" above). In addition, GRE allows multicast redistribution +through the tunnel. +. +NET_IPGRE_BROADCAST 'Broadcast GRE over IP' text +One application of GRE/IP is to construct a broadcast WAN (Wide Area +Network), which looks like a normal Ethernet LAN (Local Area +Network), but can be distributed all over the Internet. If you want +to do that, say Y here and to "IP: multicast routing" below. +. +IP_MROUTE 'IP multicast routing' text +This is used if you want your machine to act as a router for IP +packets that have several destination addresses. It is needed on the +MBONE, a high bandwidth network on top of the Internet which carries +audio and video broadcasts. In order to do that, you would most +likely run the program mrouted. Information about the multicast +capabilities of the various network cards is contained in +Documentation/networking/multicast.txt. If you haven't heard about +it, you don't need it. +. +IP_PIMSM_V1 'PIM-SM version 1 support' text +Kernel side support for Sparse Mode PIM (Protocol Independent +Multicast) version 1. This multicast routing protocol is used widely +because Cisco supports it. You need special software to use it +(pimd-v1). Please see http://netweb.usc.edu/pim/ for more +information about PIM. + +Say Y if you want to use PIM-SM v1. Note that you can say N here if +you just want to use Dense Mode PIM. +. +IP_PIMSM_V2 'PIM-SM version 2 support' text +Kernel side support for Sparse Mode PIM version 2. In order to use +this, you need an experimental routing daemon supporting it (pimd or +gated-5). This routing protocol is not used widely, so say N unless +you want to play with it. +. +ARPD 'ARP daemon support' text +Normally, the kernel maintains an internal cache which maps IP +addresses to hardware addresses on the local network, so that +Ethernet/Token Ring/ etc. frames are sent to the proper address on +the physical networking layer. For small networks having a few +hundred directly connected hosts or less, keeping this address +resolution (ARP) cache inside the kernel works well. However, +maintaining an internal ARP cache does not work well for very large +switched networks, and will use a lot of kernel memory if TCP/IP +connections are made to many machines on the network. + +If you say Y here, the kernel's internal ARP cache will never grow +to more than 256 entries (the oldest entries are expired in a LIFO +manner) and communication will be attempted with the user space ARP +daemon arpd. Arpd then answers the address resolution request either +from its own cache or by asking the net. + +This code is experimental and also obsolete. If you want to use it, +you need to find a version of the daemon arpd on the net somewhere, +and you should also say Y to "Kernel/User network link driver", +below. If unsure, say N. +. +INET_ECN 'TCP Explicit Congestion Notification support' text +Explicit Congestion Notification (ECN) allows routers to notify +clients about network congestion, resulting in fewer dropped packets +and increased network performance. This option adds ECN support to the +Linux kernel, as well as a sysctl (/proc/sys/net/ipv4/tcp_ecn) which +allows ECN support to be disabled at runtime. + +Note that, on the Internet, there are many broken firewalls which +refuse connections from ECN-enabled machines, and it may be a while +before these firewalls are fixed. Until then, to access a site behind +such a firewall (some of which are major sites, at the time of this +writing) you will have to disable this option, either by saying N now +or by using the sysctl. + +If in doubt, say N. +. +SYN_COOKIES 'SYN flood protection' text +Normal TCP/IP networking is open to an attack known as "SYN +flooding". This denial-of-service attack prevents legitimate remote +users from being able to connect to your computer during an ongoing +attack and requires very little work from the attacker, who can +operate from anywhere on the Internet. + +SYN cookies provide protection against this type of attack. If you +say Y here, the TCP/IP stack will use a cryptographic challenge +protocol known as "SYN cookies" to enable legitimate users to +continue to connect, even when your machine is under attack. There +is no need for the legitimate users to change their TCP/IP software; +SYN cookies work transparently to them. For technical information +about SYN cookies, check out +ftp://koobera.math.uic.edu/syncookies.html . + +If you are SYN flooded, the source address reported by the kernel is +likely to have been forged by the attacker; it is only reported as +an aid in tracing the packets to their actual source and should not +be taken as absolute truth. + +SYN cookies may prevent correct error reporting on clients when the +server is really overloaded. If this happens frequently better turn +them off. + +If you say Y here, note that SYN cookies aren't enabled by default; +you can enable them by saying Y to "/proc file system support" and +"Sysctl support" below and executing the command + + echo 1 >/proc/sys/net/ipv4/tcp_syncookies + +at boot time after the /proc file system has been mounted. + +If unsure, say Y. +. +#SPX 'SPX networking' +# +# IPX configuration +IPX_INTERN 'Full internal IPX network' text +Every IPX network has an address that identifies it. Sometimes it is +useful to give an IPX "network" address to your Linux box as well +(for example if your box is acting as a file server for different +IPX networks: it will then be accessible from everywhere using the +same address). The way this is done is to create a virtual internal +"network" inside your box and to assign an IPX address to this +network. Say Y here if you want to do this; read the IPX-HOWTO at +http://www.linuxdoc.org/docs.html#howto for details. + +The full internal IPX network enables you to allocate sockets on +different virtual nodes of the internal network. This is done by +evaluating the field sipx_node of the socket address given to the +bind call. So applications should always initialize the node field +to 0 when binding a socket on the primary network. In this case the +socket is assigned the default node that has been given to the +kernel when the internal network was created. By enabling the full +internal IPX network the cross-forwarding of packets targeted at +'special' sockets to sockets listening on the primary network is +disabled. This might break existing applications, especially RIP/SAP +daemons. A RIP/SAP daemon that works well with the full internal net +can be found on ftp://ftp.gwdg.de/pub/linux/misc/ncpfs . + +If you don't know what you are doing, say N. +. +# +# Network configuration +PACKET 'Packet socket' text +The Packet protocol is used by applications which communicate +directly with network devices without an intermediate network +protocol implemented in the kernel, e.g. tcpdump. If you want them +to work, choose Y. + +This driver is also available as a module called af_packet.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt; if you use modprobe or +kmod, you may also want to add "alias net-pf-17 af_packet" to +/etc/modules.conf. + +If unsure, say Y. +. +PACKET_MMAP 'Packet socket: mmapped IO' text +If you say Y here, the Packet protocol driver will use an IO +mechanism that results in faster communication. + +If unsure, say N. +. +NETLINK 'Kernel/User network link driver' text +This driver allows for two-way communication between the kernel and +user processes. It does so by creating a new socket family, PF_NETLINK. +Over this socket, the kernel can send and receive datagrams carrying +information. It is documented on many systems in netlink(7), a HOWTO is +provided as well, for example on +http://snafu.freedom.org/linux2.2/docs/netlink-HOWTO.html + +So far, the kernel uses this feature to publish some network related +information if you say Y to "Routing messages", below. You also need +to say Y here if you want to use arpd, a daemon that helps keep the +internal ARP cache (a mapping between IP addresses and hardware +addresses on the local network) small. The ethertap device, which +lets user space programs read and write raw Ethernet frames, also +needs the network link driver. + +If unsure, say Y. +. +RTNETLINK 'Routing messages' text +If you say Y here, user space programs can receive some network +related routing information over the netlink. 'rtmon', supplied +with the iproute2 package (ftp://ftp.inr.ac.ru), can read and +interpret this data. Information sent to the kernel over this link +is ignored. +. +NETLINK_DEV 'Netlink device emulation' text +This option will be removed soon. Any programs that want to use +character special nodes like /dev/tap0 or /dev/route (all with major +number 36) need this option, and need to be rewritten soon to use +the real netlink socket. +This is a backward compatibility option, choose Y for now. +. +NETFILTER 'Network packet filtering (replaces ipchains)' text +Netfilter is a framework for filtering and mangling network packets +that pass through your Linux box. + +The most common use of packet filtering is to run your Linux box as +a firewall protecting a local network from the Internet. The type of +firewall provided by this kernel support is called a "packet +filter", which means that it can reject individual network packets +based on type, source, destination etc. The other kind of firewall, +a "proxy-based" one, is more secure but more intrusive and more +bothersome to set up; it inspects the network traffic much more +closely, modifies it and has knowledge about the higher level +protocols, which a packet filter lacks. Moreover, proxy-based +firewalls often require changes to the programs running on the local +clients. Proxy-based firewalls don't need support by the kernel, but +they are often combined with a packet filter, which only works if +you say Y here. + +You should also say Y here if you intend to use your Linux box as +the gateway to the Internet for a local network of machines without +globally valid IP addresses. This is called "masquerading": if one +of the computers on your local network wants to send something to +the outside, your box can "masquerade" as that computer, i.e. it +forwards the traffic to the intended outside destination, but +modifies the packets to make it look like they came from the +firewall box itself. It works both ways: if the outside host +replies, the Linux box will silently forward the traffic to the +correct local computer. This way, the computers on your local net +are completely invisible to the outside world, even though they can +reach the outside and can receive replies. It is even possible to +run globally visible servers from within a masqueraded local network +using a mechanism called portforwarding. Masquerading is also often +called NAT (Network Address Translation). + +Another use of Netfilter is in transparent proxying: if a machine on +the local network tries to connect to an outside host, your Linux +box can transparently forward the traffic to a local server, +typically a caching proxy server. + +Various modules exist for netfilter which replace the previous +masquerading (ipmasqadm), packet filtering (ipchains), transparent +proxying, and portforwarding mechanisms. Please see +Documentation/Changes under "iptables" for the location of these +packages. + +Make sure to say N to "Fast switching" below if you intend to say Y +here, as Fast switching currently bypasses netfilter. + +Chances are that you should say Y here if you compile a kernel which +will run as a router and N for regular hosts. If unsure, say N. +. +NETFILTER_DEBUG 'Network packet filtering debugging' text +You can say Y here if you want to get additional messages useful in +debugging the netfilter code. +. +FILTER 'Socket filtering' text +The Linux Socket Filter is derived from the Berkeley Packet Filter. +If you say Y here, user-space programs can attach a filter to any +socket and thereby tell the kernel that it should allow or disallow +certain types of data to get through the socket. Linux Socket +Filtering works on all socket types except TCP for now. See the text +file Documentation/networking/filter.txt for more information. + +You need to say Y here if you want to use PPP packet filtering +(see the CONFIG_PPP_FILTER option below). + +If unsure, say N. +. +UNIX 'Unix domain sockets' text +If you say Y here, you will include support for Unix domain sockets; +sockets are the standard Unix mechanism for establishing and +accessing network connections. Many commonly used programs such as +the X Window system and syslog use these sockets even if your +machine is not connected to any network. Unless you are working on +an embedded system or something similar, you therefore definitely +want to say Y here. + +However, the socket support is also available as a module ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. The module will be called +unix.o. If you try building this as a module and you have said Y to +"Kernel module loader support" above, be sure to add 'alias net-pf-1 +unix' to your /etc/modules.conf file. Note that several important +services won't work correctly if you say M here and then neglect to +load the module. + +Say Y unless you know what you are doing. +. +INET 'TCP/IP networking' text +These are the protocols used on the Internet and on most local +Ethernets. It is highly recommended to say Y here (this will enlarge +your kernel by about 144 KB), since some programs (e.g. the X window +system) use TCP/IP even if your machine is not connected to any +other computer. You will get the so-called loopback device which +allows you to ping yourself (great fun, that!). + +For an excellent introduction to Linux networking, please read the +NET-3-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This option is also necessary if you want to use the full power of +term (term is a program which gives you almost full Internet +connectivity if you have a regular dial up shell account on some +Internet connected Unix computer; for more information, read +http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html ). + +If you say Y here and also to "/proc file system support" and +"Sysctl support" below, you can change various aspects of the +behavior of the TCP/IP code by writing to the (virtual) files in +/proc/sys/net/ipv4/*; the options are explained in the file +Documentation/networking/ip-sysctl.txt. + +Short answer: say Y. +. +IPV6 'The IPv6 protocol' text +This is experimental support for the next version of the Internet +Protocol: IP version 6 (also called IPng "IP next generation"). +Features of this new protocol include: expanded address space, +authentication and privacy, and seamless interoperability with the +current version of IP (IP version 4). For general information about +IPv6, see http://playground.sun.com/pub/ipng/html/ipng-main.html ; +for specific information about IPv6 under Linux read the HOWTO at +http://www.bieringer.de/linux/IPv6/ and the file net/ipv6/README in +the kernel source. + +If you want to use IPv6, please upgrade to the newest net-tools as +given in Documentation/Changes. You will still be able to do regular +IPv4 networking as well. + +This protocol support is also available as a module ( = code which +can be inserted in and removed from the running kernel whenever you +want). The module will be called ipv6.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. + +It is safe to say N here for now. +. +ATM 'Asynchronous Transfer Mode (ATM)' text +ATM is a high-speed networking technology for Local Area Networks +and Wide Area Networks. It uses a fixed packet size and is +connection oriented, allowing for the negotiation of minimum +bandwidth requirements. + +In order to participate in an ATM network, your Linux box needs an +ATM networking card. If you have that, say Y here and to the driver +of your ATM card below. + +Note that you need a set of user-space programs to actually make use +of ATM. See the file Documentation/networking/atm.txt for further +details. +. +ATM_CLIP 'Classical IP over ATM' text +Classical IP over ATM for PVCs and SVCs, supporting InARP and +ATMARP. If you want to communication with other IP hosts on your ATM +network, you will typically either say Y here or to "LAN Emulation +(LANE)" below. +. +ATM_CLIP_NO_ICMP 'Do NOT send ICMP if no neighbour' text +Normally, an "ICMP host unreachable" message is sent if a neighbour +cannot be reached because there is no VC to it in the kernel's +ATMARP table. This may cause problems when ATMARP table entries are +briefly removed during revalidation. If you say Y here, packets to +such neighbours are silently discarded instead. +. +ATM_LANE 'LAN Emulation (LANE) support' text +LAN Emulation emulates services of existing LANs across an ATM +network. Besides operating as a normal ATM end station client, Linux +LANE client can also act as an proxy client bridging packets between +ELAN and Ethernet segments. You need LANE if you want to try MPOA. +. +ATM_MPOA 'Multi-Protocol Over ATM (MPOA) support' text +Multi-Protocol Over ATM allows ATM edge devices such as routers, +bridges and ATM attached hosts establish direct ATM VCs across +subnetwork boundaries. These shortcut connections bypass routers +enhancing overall network performance. +. +IPX 'The IPX protocol' text +This is support for the Novell networking protocol, IPX, commonly +used for local networks of Windows machines. You need it if you want +to access Novell NetWare file or print servers using the Linux +Novell client ncpfs (available from +ftp://metalab.unc.edu/pub/Linux/system/filesystems/ ) or from within +the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto ). In order to do the +former, you'll also have to say Y to "NCP file system support", +below. + +IPX is similar in scope to IP, while SPX, which runs on top of IPX, +is similar to TCP. There is also experimental support for SPX in +Linux (see "SPX networking", below). + +To turn your Linux box into a fully featured NetWare file server and +IPX router, say Y here and fetch either lwared from +ftp://metalab.unc.edu/pub/Linux/system/network/daemons/ or mars_nwe +from ftp://ftp.gwdg.de/pub/linux/misc/ncpfs . For more information, +read the IPX-HOWTO available from +http://www.linuxdoc.org/docs.html#howto . + +General information about how to connect Linux, Windows machines and +Macs is on the WWW at http://www.eats.com/linux_mac_win.html . + +The IPX driver would enlarge your kernel by about 16 KB. This driver +is also available as a module ( = code which can be inserted in and +removed from the running kernel whenever you want). The module will +be called ipx.o. If you want to compile it as a module, say M here +and read Documentation/modules.txt. Unless you want to integrate +your Linux box with a local Novell network, say N. +. +ATALK 'AppleTalk protocol support' text +AppleTalk is the way Apple computers speak to each other on a +network. If your Linux box is connected to such a network and you +want to join the conversation, say Y. You will need to use the +netatalk package so that your Linux box can act as a print and file +server for Macs as well as access AppleTalk printers. Check out +http://www.zettabyte.net/netatalk/ on the WWW for details. EtherTalk +is the name used for AppleTalk over Ethernet and the cheaper and +slower LocalTalk is AppleTalk over a proprietary Apple network using +serial links. EtherTalk and LocalTalk are fully supported by Linux. + +General information about how to connect Linux, Windows machines and +Macs is on the WWW at http://www.eats.com/linux_mac_win.html . The +NET-3-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , contains valuable +information as well. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called appletalk.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. You almost +certainly want to compile it as a module so you can restart your +AppleTalk stack without rebooting your machine. I hear that the +GNU boycott of Apple is over, so even politically correct people +are allowed to say Y here. +. +APPLETALK 'AppleTalk interfaces support' text +AppleTalk is the way Apple computers speak to each other on a +network. If your Linux box is connected to such a network and you +want to join the conversation, say Y. +. +DECNET 'DECnet networking' text +The DECnet networking protocol was used in many products made by +Digital (now Compaq). It provides reliable stream and sequenced +packet communications over which run a variety of services similar +to those which run over TCP/IP. + +To find some tools to use with the kernel layer support, please +look at Patrick Caulfield's web site: +http://linux.dreamtime.org/decnet/ + +More detailed documentation is available in the +Documentation/networking/decnet.txt file. + +Be sure to say Y to "/proc file system support" and "Sysctl support" +below when using DECnet, since you will need sysctl support to aid +in configuration at run time. + +The DECnet code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called decnet.o. +. +X25 'CCITT X.25 Packet Layer' text +X.25 is a set of standardized network protocols, similar in scope to +frame relay; the one physical line from your box to the X.25 network +entry point can carry several logical point-to-point connections +(called "virtual circuits") to other computers connected to the X.25 +network. Governments, banks, and other organizations tend to use it +to connect to each other or to form Wide Area Networks (WANs). Many +countries have public X.25 networks. X.25 consists of two +protocols: the higher level Packet Layer Protocol (PLP) (say Y here +if you want that) and the lower level data link layer protocol LAPB +(say Y to "LAPB Data Link Driver" below if you want that). + +You can read more about X.25 at http://www.sangoma.com/x25.htm and +http://www.cisco.com/univercd/data/doc/software/11_0/rpcg/cx25.htm . +Information about X.25 for Linux is contained in the files +Documentation/networking/x25.txt and +Documentation/networking/x25-iface.txt. + +One connects to an X.25 network either with a dedicated network card +using the X.21 protocol (not yet supported by Linux) or one can do +X.25 over a standard telephone line using an ordinary modem (say Y +to "X.25 async driver" below) or over Ethernet using an ordinary +Ethernet card and either the 802.2 LLC protocol (say Y to "802.2 +LLC" below) or LAPB over Ethernet (say Y to "LAPB Data Link Driver" +and "LAPB over Ethernet driver" below). + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called x25.o. If unsure, say N. +. +LAPB 'LAPB Data Link Driver' text +Link Access Procedure, Balanced (LAPB) is the data link layer (i.e. +the lower) part of the X.25 protocol. It offers a reliable +connection service to exchange data frames with one other host, and +it is used to transport higher level protocols (mostly X.25 Packet +Layer, the higher part of X.25, but others are possible as well). +Usually, LAPB is used with specialized X.21 network cards, but Linux +currently supports LAPB only over Ethernet connections. If you want +to use LAPB connections over Ethernet, say Y here and to "LAPB over +Ethernet driver" below. Read +Documentation/networking/lapb-module.txt for technical details. + +If you want to compile this driver as a module though ( = code which +can be inserted in and removed from the running kernel whenever you +want), say M here and read Documentation/modules.txt. The module +will be called lapb.o. If unsure, say N. +. +BRIDGE '802.1d Ethernet Bridging' text +If you say Y here, then your Linux box will be able to act as an +Ethernet bridge, which means that the different Ethernet segments it +is connected to will appear as one Ethernet to the participants. +Several such bridges can work together to create even larger +networks of Ethernets using the IEEE 802.1 spanning tree algorithm. +As this is a standard, Linux bridges will cooperate properly with +other third party bridge products. + +In order to use the ethernet bridge, you'll need the bridge +configuration tools; see Documentation/networking/bridge.txt for +location. Please read the Bridge mini-HOWTO for more information. + +Note that if your box acts as a bridge, it probably contains several +Ethernet devices, but the kernel is not able to recognize more than +one at boot time without help; for details read the Ethernet-HOWTO, +available from in http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this code as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called bridge.o. + +If unsure, say N. +. +LLC '802.2 LLC' text +This is a Logical Link Layer protocol used for X.25 connections over +Ethernet, using ordinary Ethernet cards. +. +#NETBEUI 'Netbeui' +NET_DIVERT 'Frame Diverter' text +The Frame Diverter allows you to divert packets from the +network, that are not aimed at the interface receiving it (in +promisc. mode). Typically, a Linux box setup as an ethernet bridge +with the Frames Diverter on, can do some *really* transparent www +caching using a Squid proxy for example. + +This is very useful when you don't want to change your router's +config (or if you simply don't have access to it). + +The other possible usages of diverting Ethernet Frames are numberous: + - reroute smtp traffic to another interface + - traffic-shape certain network streams + - transparently proxy smtp connections + - etc... + +For more informations, please refer to: + http://www.freshmeat.net/projects/etherdivert + http://perso.wanadoo.fr/magpie/EtherDivert.html + +If unsure, say N +. +ECONET 'Acorn Econet/AUN protocols' text +Econet is a fairly old and slow networking protocol mainly used by +Acorn computers to access file and print servers. It uses native +Econet network cards. AUN is an implementation of the higher level +parts of Econet that runs over ordinary Ethernet connections, on +top of the UDP packet protocol, which in turn runs on top of the +Internet protocol IP. + +If you say Y here, you can choose with the next two options whether +to send Econet/AUN traffic over a UDP Ethernet connection or over +a native Econet network card. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called econet.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +ECONET_AUNUDP 'AUN over UDP' text +Say Y here if you want to send Econet/AUN traffic over a UDP +connection (UDP is a packet based protocol that runs on top of the +Internet protocol IP) using an ordinary Ethernet network card. +. +ECONET_NATIVE 'Native Econet' text +Say Y here if you have a native Econet network card installed in +your computer. +. +WAN_ROUTER 'WAN router' text +Wide Area Networks (WANs), such as X.25, frame relay and leased +lines, are used to interconnect Local Area Networks (LANs) over vast +distances with data transfer rates significantly higher than those +achievable with commonly used asynchronous modem connections. +Usually, a quite expensive external device called a `WAN router' is +needed to connect to a WAN. + +As an alternative, WAN routing can be built into the Linux kernel. +With relatively inexpensive WAN interface cards available on the +market, a perfectly usable router can be built for less than half +the price of an external router. If you have one of those cards and +wish to use your Linux box as a WAN router, say Y here and also to +the WAN driver for your card, below. You will then need the +wan-tools package which is available from ftp://ftp.sangoma.com . +Read Documentation/networking/wan-router.txt for more information. + +The WAN routing support is also available as a module called +wanrouter.o ( = code which can be inserted in and removed from the +running kernel whenever you want). If you want to compile it as a +module, say M here and read Documentation/modules.txt. + +If unsure, say N. +. +NET_FASTROUTE 'Fast switching (read help!)' text +Saying Y here enables direct NIC-to-NIC (NIC = Network Interface +Card) data transfers on the local network, which is fast. + +IMPORTANT NOTE: This option is NOT COMPATIBLE with "Network packet +filtering" (CONFIG_NETFILTER). Say N here if you say Y there. + +However, it will work with all options in the "IP: advanced router" +section (except for "IP: use TOS value as routing key" and +"IP: use FWMARK value as routing key"). + +At the moment, few devices support fast switching (tulip is one of +them, a modified 8390 driver can be found at +ftp://ftp.inr.ac.ru/ip-routing/fastroute/fastroute-8390.tar.gz ). + +If unsure, say N. +. +NET_HW_FLOWCONTROL 'Forwarding between high speed interfaces' text +This option enables NIC (Network Interface Card) hardware throttling +during periods of extremal congestion. At the moment only a couple +of device drivers support it (really only one -- tulip, a modified +8390 driver can be found at +ftp://ftp.inr.ac.ru/ip-routing/fastroute/fastroute-8390.tar.gz ). + +Really, this option is applicable to any machine attached to a fast +enough network, and even a 10 Mb NIC is able to kill a not very slow +box, such as a 120MHz Pentium. + +However, do not say Y here if you did not experience any serious +problems. +. +VLAN_8021Q '802.1Q VLAN Support' + +NET_SCHED 'QoS and/or fair queueing' text +When the kernel has several packets to send out over a network +device, it has to decide which ones to send first, which ones to +delay, and which ones to drop. This is the job of the packet +scheduler, and several different algorithms for how to do this +"fairly" have been proposed. + +If you say N here, you will get the standard packet scheduler, which +is a FIFO (first come, first served). If you say Y here, you will be +able to choose from among several alternative algorithms which can +then be attached to different network devices. This is useful for +example if some of your network devices are real time devices that +need a certain minimum data flow rate, or if you need to limit the +maximum data flow rate for traffic which matches specified criteria. +This code is considered to be experimental. + +To administer these schedulers, you'll need the user-level utilities +from the package iproute2+tc at ftp://ftp.inr.ac.ru/ip-routing/ . +That package also contains some documentation; for more, check out +http://snafu.freedom.org/linux2.2/iproute-notes.html . + +This Quality of Service (QoS) support will enable you to use +Differentiated Services (diffserv) and Resource Reservation Protocol +(RSVP) on your Linux router if you also say Y to "QoS support", +"Packet classifier API" and to some classifiers below. Documentation +and software is at http://icawww1.epfl.ch/linux-diffserv/ . + +If you say Y here and to "/proc file system" below, you will be able +to read status information about packet schedulers from the file +/proc/net/psched. + +The available schedulers are listed in the following questions; you +can say Y to as many as you like. If unsure, say N now. +. +#NET_PROFILE 'Network code profiler' +PPPOATM 'PPP over ATM' + +# +# IPv4 filtering configuration +IP_NF_CONNTRACK 'Connection tracking (required for masq/NAT)' text +Connection tracking keeps a record of what packets have passed +through your machine, in order to figure out how they are related +into connections. + +This is required to do Masquerading or other kinds of Network +Address Translation (except for Fast NAT). It can also be used to +enhance packet filtering (see `Connection state match support' +below). + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_FTP 'FTP protocol support' text +Tracking FTP connections is problematic: special helpers are +required for tracking them, and doing masquerading and other forms +of Network Address Translation on them. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `Y'. +. +IP_NF_IRC 'IRC protocol support' text +There is a commonly-used extension to IRC called +Direct Client-to-Client Protocol (DCC). This enables users to send +files to each other, and also chat to each other without the need +of a server. DCC Sending is used anywhere you send files over IRC, +and DCC Chat is most commonly used by Eggdrop bots. If you are +using NAT, this extension will enable you to send files and initiate +chats. Note that you do NOT need this extension to get files or +have others initiate chats, or everything else in IRC. + +If you want to compile it as a module, say 'M' here and read +Documentation/modules.txt. If unsure, say 'N'. +. +IP_NF_QUEUE 'User space queueing via NETLINK' text +Netfilter has the ability to queue packets to user space: the +netlink device can be used to access them using this driver. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_IPTABLES 'IP tables support (required for filtering/masq/NAT)' +text +iptables is a general, extensible packet identification framework. +The packet filtering and full NAT (masquerading, port forwarding, +etc) subsystems now use this: say `Y' or `M' here if you want to use +either of those. +. +IP_NF_MATCH_LIMIT 'limit match support' text +limit matching allows you to control the rate at which a rule can be +matched: mainly useful in combination with the LOG target ("LOG +target support", below) and to avoid some Denial of Service attacks. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_MAC 'MAC address match support' text +mac matching allows you to match packets based on the source +ethernet address of the packet. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_MARK 'Netfilter MARK match support' text +Netfilter mark matching allows you to match packets based on the +`nfmark' value in the packet. This can be set by the MARK target +(see below). + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_MULTIPORT 'Multiple port match support' text +Multiport matching allows you to match TCP or UDP packets based on +a series of source or destination ports: normally a rule can only +match a single range of ports. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_TOS 'TOS match support' text +TOS matching allows you to match packets based on the Type Of +Service fields of the IP packet. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_LENGTH 'LENGTH match support' text +This option allows you to match the length of a packet against a +specific value or range of values. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_TTL 'TTL match support' text +This adds CONFIG_IP_NF_MATCH_TTL option, which enabled the user +to match packets by their TTL value. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_TCPMSS 'TCPMSS match support' text +This option adds a `tcpmss' match, which allows you to examine the +MSS value of TCP SYN packets, which control the maximum packet size +for that connection. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_STATE 'Connection state match support' text +Connection state matching allows you to match packets based on their +relationship to a tracked connection (ie. previous packets). This +is a powerful tool for packet classification. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_UNCLEAN 'Unclean match support' text +Unclean packet matching matches any strange or invalid packets, by +looking at a series of fields in the IP, TCP, UDP and ICMP headers. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MATCH_OWNER 'Owner match support' text +Packet owner matching allows you to match locally-generated packets +based on who created them: the user, group, process or session. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_FILTER 'Packet filtering' text +Packet filtering defines a table `filter', which has a series of +rules for simple packet filtering at local input, forwarding and +local output. See the man page for iptables(8). + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_REJECT 'REJECT target support' text +The REJECT target allows a filtering rule to specify that an ICMP +error should be issued in response to an incoming packet, rather +than silently being dropped. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_MIRROR 'MIRROR target support' text +The MIRROR target allows a filtering rule to specify that an +incoming packet should be bounced back to the sender. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_NAT 'Full NAT (Network Address Translation)' text +The Full NAT option allows masquerading, port forwarding and other +forms of full Network Address Port Translation. It is controlled by +the `nat' table in iptables: see the man page for iptables(8). + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_MASQUERADE 'MASQUERADE target support' text +Masquerading is a special case of NAT: all outgoing connections are +changed to seem to come from a particular interface's address, and +if the interface goes down, those connections are lost. This is +only useful for dialup accounts with dynamic IP address (ie. your IP +address will be different on next dialup). + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_REDIRECT 'REDIRECT target support' text +REDIRECT is a special case of NAT: all incoming connections are +mapped onto the incoming interface's address, causing the packets to +come to the local machine instead of passing through. This is +useful for transparent proxies. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_NAT_SNMP_BASIC 'Basic SNMP-ALG support' text + +This module implements an Application Layer Gateway (ALG) for +SNMP payloads. In conjunction with NAT, it allows a network +management system to access multiple private networks with +conflicting addresses. It works by modifying IP addresses +inside SNMP payloads to match IP-layer NAT mapping. + +This is the "basic" form of SNMP-ALG, as described in RFC 2962 + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_MANGLE 'Packet mangling' text +This option adds a `mangle' table to iptables: see the man page for +iptables(8). This table is used for various packet alterations +which can effect how the packet is routed. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_TOS 'TOS target support' text +This option adds a `TOS' target, which allows you to create rules in +the `mangle' table which alter the Type Of Service field of an IP +packet prior to routing. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_MARK 'MARK target support' text +This option adds a `MARK' target, which allows you to create rules +in the `mangle' table which alter the netfilter mark (nfmark) field +associated with the packet packet prior to routing. This can change +the routing method (see `IP: use netfilter MARK value as routing +key') and can also be used by other subsystems to change their +behavior. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_LOG 'LOG target support' text +This option adds a `LOG' target, which allows you to create rules in +any iptables table which records the packet header to the syslog. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_TARGET_TCPMSS 'TCPMSS target support' text +This option adds a `TCPMSS' target, which allows you to alter the +MSS value of TCP SYN packets, to control the maximum size for that +connection (usually limiting it to your outgoing interface's MTU +minus 40). + +This is used to overcome criminally braindead ISPs or servers which +block ICMP Fragmentation Needed packets. The symptoms of this +problem are that everything works fine from your Linux +firewall/router, but machines behind it can never exchange large +packets: + 1) Web browsers connect, then hang with no data received. + 2) Small mail works fine, but large emails hang. + 3) ssh works fine, but scp hangs after initial handshaking. + +Workaround: activate this option and add a rule to your firewall +configuration like: + + iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \ + -j TCPMSS --clamp-mss-to-pmtu + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_COMPAT_IPCHAINS 'ipchains (2.2-style) support' text +This option places ipchains (with masquerading and redirection +support) back into the kernel, using the new netfilter +infrastructure. It is not recommended for new installations (see +`Packet filtering'). With this enabled, you should be able to use +the ipchains tool exactly as in 2.2 kernels. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP_NF_COMPAT_IPFWADM 'ipfwadm (2.0-style) support' text +This option places ipfwadm (with masquerading and redirection +support) back into the kernel, using the new netfilter +infrastructure. It is not recommended for new installations (see +`Packet filtering'). With this enabled, you should be able to use +the ipfwadm tool exactly as in 2.0 kernels. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +# +# IPv6 filtering configuration +#IP6_NF_CONNTRACK 'Connection tracking (required for masq/NAT)' +#IP6_NF_FTP 'FTP protocol support' +#IP6_NF_QUEUE 'Userspace queueing via NETLINK' +IP6_NF_IPTABLES 'IPv6 tables support (required for filtering/masq/NAT)' +text +ip6tables is a general, extensible packet identification framework. +Currently only the packet filtering and packet mangling subsystem +for IPv6 use this, but connection tracking is going to follow. +Say 'Y' or 'M' here if you want to use either of those. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP6_NF_MATCH_LIMIT 'IPv6 limit match support' text +limit matching allows you to control the rate at which a rule can be +matched: mainly useful in combination with the LOG target ("LOG +target support", below) and to avoid some Denial of Service attacks. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP6_NF_MATCH_MAC 'MAC address match support' text +mac matching allows you to match packets based on the source +ethernet address of the packet. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP6_NF_MATCH_MARK 'Netfilter MARK match support' text +Netfilter mark matching allows you to match packets based on the +`nfmark' value in the packet. This can be set by the MARK target +(see below). + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP6_NF_MATCH_MULTIPORT 'Multiple port match support' text +Multiport matching allows you to match TCP or UDP packets based on +a series of source or destination ports: normally a rule can only +match a single range of ports. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP6_NF_MATCH_TOS 'TOS match support' + +#IP6_NF_MATCH_STATE 'Connection state match support' +#IP6_NF_MATCH_UNCLEAN 'Unclean match support' +IP6_NF_MATCH_OWNER 'Owner match support' text +Packet owner matching allows you to match locally-generated packets +based on who created them: the user, group, process or session. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP6_NF_FILTER 'Packet filtering' text +Packet filtering defines a table `filter', which has a series of +rules for simple packet filtering at local input, forwarding and +local output. See the man page for iptables(8). + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +#IP6_NF_TARGET_REJECT 'REJECT target support' +#IP6_NF_TARGET_MIRROR 'MIRROR target support' +IP6_NF_MANGLE 'Packet mangling' text +This option adds a `mangle' table to iptables: see the man page for +iptables(8). This table is used for various packet alterations +which can effect how the packet is routed. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +#IP6_NF_TARGET_TOS 'TOS target support' +IP6_NF_TARGET_MARK 'MARK target support' text +This option adds a `MARK' target, which allows you to create rules +in the `mangle' table which alter the netfilter mark (nfmark) field +associated with the packet packet prior to routing. This can change +the routing method (see `IP: use netfilter MARK value as routing +key') and can also be used by other subsystems to change their +behavior. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +IP6_NF_TARGET_LOG 'LOG target support' text +This option adds a `LOG' target, which allows you to create rules in +any ip6tables table which records the packet header to the syslog. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. If unsure, say `N'. +. +# +# DECnet configuration +DECNET_SIOCGIFCONF 'DECnet SIOCFIGCONF support' text + This option should only be turned on if you are really sure that + you know what you are doing. It can break other applications which + use this system call and the proper way to get the information + provided by this call is to use rtnetlink. + + If unsure, say N. +. +DECNET_ROUTER 'DECnet router support' text + Add support for turning your DECnet Endnode into a level 1 or 2 + router. This is an unfinished option for developers only. If you do + say Y here, then make sure that you also say Y to "Kernel/User + network link driver", "Routing messages" and "Network packet + filtering". The first two are required to allow configuration via + rtnetlink (currently you need Alexey Kuznetsov's iproute2 package + from ftp://ftp.inr.ac.ru). The "Network packet filtering" option + will be required for the forthcoming routing daemon to work. + + See Documentation/networking/decnet.txt for more information. +. +DECNET_ROUTE_FWMARK 'Use FWMARK value as DECnet routing key' text +If you say Y here, you will be able to specify different routes for +packets with different FWMARK ("firewalling mark") values +(see ipchains(8), "-m" argument). +. +# +# IPv6 configuration +IPV6_NETLINK 'IPv6: routing messages via old netlink' text +You can say Y here to receive routing messages from the IPv6 code +through the old netlink interface. However, a better option is to +say Y to "Kernel/User network link driver" and to "Routing +messages" instead. +. +#RT6_POLICY 'IPv6: flow policy support' +#IPV6_FIREWALL 'IPv6: firewall support' +# +# Traffic control configuration. +NET_SCH_CBQ 'CBQ packet scheduler' text +Say Y here if you want to use the Class-Based Queueing (CBQ) packet +scheduling algorithm for some of your network devices. This +algorithm classifies the waiting packets into a tree-like hierarchy +of classes; the leaves of this tree are in turn scheduled by +separate algorithms (called "disciplines" in this context). + +See the top of net/sched/sch_cbq.c for references about the CBQ +algorithm. + +CBQ is a commonly used scheduler, so if you're unsure, you should +say Y here. Then say Y to all the queueing algorithms below that you +want to use as CBQ disciplines. Then say Y to "Packet classifier +API" and say Y to all the classifiers you want to use; a classifier +is a routine that allows you to sort your outgoing traffic into +classes based on a certain criterion. + +This code is also available as a module called sch_cbq.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_SCH_CSZ 'CSZ packet scheduler' text +Say Y here if you want to use the Clark-Shenker-Zhang (CSZ) packet +scheduling algorithm for some of your network devices. At the +moment, this is the only algorithm that can guarantee service for +real-time applications (see the top of net/sched/sch_csz.c for +details and references about the algorithm). + +Note: this scheduler is currently broken. + +This code is also available as a module called sch_csz.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +#NET_SCH_HPFQ 'H-PFQ packet scheduler' +#NET_SCH_HFCS 'H-FSC packet scheduler' +NET_SCH_ATM 'ATM pseudo-scheduler' + +NET_SCH_PRIO 'The simplest PRIO pseudo-scheduler' text +Say Y here if you want to use an n-band priority queue packet +"scheduler" for some of your network devices or as a leaf discipline +for the CBQ scheduling algorithm. If unsure, say Y. + +This code is also available as a module called sch_prio.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_SCH_RED 'RED queue' text +Say Y here if you want to use the Random Early Detection (RED) +packet scheduling algorithm for some of your network devices (see +the top of net/sched/sch_red.c for details and references about the +algorithm). + +This code is also available as a module called sch_red.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_SCH_SFQ 'SFQ queue' text +Say Y here if you want to use the Stochastic Fairness Queueing (SFQ) +packet scheduling algorithm for some of your network devices or as a +leaf discipline for the CBQ scheduling algorithm (see the top of +net/sched/sch_sfq.c for details and references about the SFQ +algorithm). + +This code is also available as a module called sch_sfq.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_SCH_TEQL 'TEQL queue' text +Say Y here if you want to use the True Link Equalizer (TLE) packet +scheduling algorithm for some of your network devices or as a leaf +discipline for the CBQ scheduling algorithm. This queueing +discipline allows the combination of several physical devices into +one virtual device. (see the top of net/sched/sch_teql.c for +details). + +This code is also available as a module called sch_teql.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_SCH_TBF 'TBF queue' text +Say Y here if you want to use the Simple Token Bucket Filter (TBF) +packet scheduling algorithm for some of your network devices or as a +leaf discipline for the CBQ scheduling algorithm (see the top of +net/sched/sch_tbf.c for a description of the TBF algorithm). + +This code is also available as a module called sch_tbf.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_SCH_GRED 'GRED queue' + +NET_SCH_DSMARK 'Diffserv field marker' + +NET_SCH_INGRESS 'Ingress Qdisc' + +NET_QOS 'QoS support' text +Say Y here if you want to include Quality Of Service scheduling +features, which means that you will be able to request certain +rate-of-flow limits for your network devices. + +This Quality of Service (QoS) support will enable you to use +Differentiated Services (diffserv) and Resource Reservation Protocol +(RSVP) on your Linux router if you also say Y to "Packet classifier +API" and to some classifiers below. Documentation and software is at +http://icawww1.epfl.ch/linux-diffserv/ . + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about QoS support. +. +NET_ESTIMATOR 'Rate estimator' text +In order for Quality of Service scheduling to work, the current +rate-of-flow for a network device has to be estimated; if you say Y +here, the kernel will do just that. +. +NET_CLS 'Packet classifier API' text +The CBQ scheduling algorithm requires that network packets which are +scheduled to be sent out over a network device be classified +according to some criterion. If you say Y here, you will get a +choice of several different packet classifiers with the following +questions. + +This will enable you to use Differentiated Services (diffserv) and +Resource Reservation Protocol (RSVP) on your Linux router. +Documentation and software is at +http://icawww1.epfl.ch/linux-diffserv/ . +. +NET_CLS_TCINDEX 'TC index classifier' + +NET_CLS_ROUTE4 'Routing tables based classifier' text +If you say Y here, you will be able to classify outgoing packets +according to the route table entry they matched. If unsure, say Y. + +This code is also available as a module called cls_route.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_CLS_FW 'Firewall based classifier' text +If you say Y here, you will be able to classify outgoing packets +according to firewall criteria you specified. + +This code is also available as a module called cls_fw.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NET_CLS_U32 'U32 classifier' text +If you say Y here, you will be able to classify outgoing packets +according to their destination address. If unsure, say Y. + +This code is also available as a module called cls_u32.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt +. +NET_CLS_RSVP 'Special RSVP classifier' text +The Resource Reservation Protocol (RSVP) permits end systems to +request a minimum and maximum data flow rate for a connection; this +is important for real time data such as streaming sound or video. + +Say Y here if you want to be able to classify outgoing packets based +on their RSVP requests. + +This code is also available as a module called cls_rsvp.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt +. +NET_CLS_RSVP6 'Special RSVP classifier for IPv6' text +The Resource Reservation Protocol (RSVP) permits end systems to +request a minimum and maximum data flow rate for a connection; this +is important for real time data such as streaming sound or video. + +Say Y here if you want to be able to classify outgoing packets based +on their RSVP requests and you are using the new Internet Protocol +IPv6 as opposed to the older and more common IPv4. + +This code is also available as a module called cls_rsvp6.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt +. +NET_CLS_POLICE 'Traffic policing (needed for in/egress)' + +# +# IrDA protocol configuration +IRDA 'IrDA subsystem support' text +Say Y here if you want to build support for the IrDA (TM) protocols. +The Infrared Data Associations (tm) specifies standards for wireless +infrared communication and is supported by most laptops and PDA's. + +To use Linux support for the IrDA (tm) protocols, you will also need +some user-space utilities like irattach. For more information, see the file +Documentation/networking/irda.txt. You also want to read the +IR-HOWTO, available at http://www.linuxdoc.org/docs.html#howto . + +This support is also available as a module called irda.o. If you +want to compile it as a module, say M here and read +Documentation/modules.txt. +. +IRDA_ULTRA 'Ultra (connectionless) protocol' + +IRDA_OPTIONS 'IrDA protocol options' text +Say Y here if you want to configure any of the following IrDA options. +. +IRDA_CACHE_LAST_LSAP 'IrDA cache last LSAP' text +Say Y here if you want IrLMP to cache the last LSAP used. This makes +sense since most frames will be sent/received on the same +connection. Enabling this option will save a hash-lookup per frame. + +If unsure, say Y. +. +IRDA_FAST_RR 'IrDA Fast RRs' text +Say Y here is you want IrLAP to send fast RR (Receive Ready) frames +when acting as a primary station. This will make IrLAP send out a RR +frame immediately when receiving a frame if its own transmit queue +is currently empty. This will give a lot of speed improvement when +receiving much data since the secondary station will not have to +wait the max. turn around time before it is allowed to transmit the +next time. If the transmit queue of the secondary is also empty the +primary will back off waiting longer for sending out the RR frame +until the timeout reaches the normal value. Enabling this option +will make the IR-diode burn more power and thus reduce your battery +life. + +If unsure, say N. +. +IRDA_DEBUG 'IrDA debugging information' text +Say Y here if you want the IrDA subsystem to write debug information +to your syslog. You can change the debug level in +/proc/sys/net/irda/debug + +If unsure, say Y (since it makes it easier to find the bugs). +. +#IRDA_COMPRESSION 'IrLAP compression support' +#IRDA_DEFLATE 'IrLAP Deflate compression' +IRCOMM 'IrCOMM protocol' text +Say Y here if you want to build support for the IrCOMM protocol. If +you want to compile it as a module (you will get ircomm.o and +ircomm-tty.o), say M here and read Documentation/modules.txt. IrCOMM +implements serial port emulation, and makes it possible to use all +existing applications that understands TTY's with an infrared link. +Thus you should be able to use application like PPP, minicom and +others. Enabling this option will create two modules called ircomm +and ircomm_tty. +. +IRLAN 'IrLAN protocol' text +Say Y here if you want to build support for the IrLAN protocol. If +you want to compile it as a module (irlan.o), say M here and read +Documentation/modules.txt. IrLAN emulates an Ethernet and makes it +possible to put up a wireless LAN using infrared beams. + +The IrLAN protocol can be used to talk with infrared access points +like the HP NetbeamIR, or the ESI JetEye NET. You can also connect +to another Linux machine running the IrLAN protocol for ad-hoc +networking! +. +IRNET 'IrNET protocol' text +Say Y here if you want to build support for the IrNET protocol. If +you want to compile it as a module (irnet.o), say M here and read +Documentation/modules.txt. IrNET is a PPP driver, so you will also +need a working PPP subsystem (driver, daemon and config)... + +IrNET is an alternate way to tranfer TCP/IP traffic over IrDA. It +uses synchronous PPP over a set of point to point IrDA sockets. You +can use it between Linux machine or with W2k. +. +# +# kHTTPd +# +KHTTPD 'Kernel httpd acceleration' text +The kernel httpd acceleration daemon (kHTTPd) is a (limited) web +server built into the kernel. It is limited since it can only serve +files from the file system and cannot deal with executable content +such as CGI scripts. Serving files is sped up if you use kHTTPd. +If kHTTPd is not able to fulfill a request, it can transparently +pass it through to a user space web server such as apache. + +Saying "M" here builds the kHTTPd module; this is NOT enough to have +a working kHTTPd. For safety reasons, the module has to be activated +by doing a "echo 1 > /proc/sys/net/khttpd/start" after inserting the +module. + +Before using this, read the README in net/khttpd ! + +The kHTTPd is experimental. Be careful when using it on a production +machine. Also note that kHTTPd doesn't support virtual servers yet. +. +# +# Network device configuration +DUMMY 'Dummy net driver support' text +This is essentially a bit-bucket device (i.e. traffic you send to +this device is consigned into oblivion) with a configurable IP +address. It is most commonly used in order to make your currently +inactive SLIP address seem like a real address for local programs. +If you use SLIP or PPP, you might want to say Y here. Since this +thing often comes in handy, the default is Y. It won't enlarge your +kernel either. What a deal. Read about it in the Network +Administrator's Guide, available from +http://www.linuxdoc.org/docs.html#guide . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called dummy.o. If you want to use more than one dummy device at a +time, you need to compile this driver as a module. Instead of +'dummy', the devices will then be called 'dummy0', 'dummy1' etc. +. +BONDING 'Bonding driver support' text +Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet +Channels together. This is called 'Etherchannel' by Cisco, +'Trunking' by Sun, and 'Bonding' in Linux. + +If you have two ethernet connections to some other computer, you can +make them behave like one double speed connection using this driver. +Naturally, this has to be supported at the other end as well, either +with a similar Bonding Linux driver, a Cisco 5500 switch or a +SunTrunking SunSoft driver. + +This is similar to the EQL driver, but it merges Ethernet segments +instead of serial lines. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called bonding.o. +. +TUN 'Universal TUN/TAP device driver support' text +TUN/TAP provides packet reception and transmission for user space programs. +It can be viewed as a simple Point-to-Point or Ethernet device, which +instead of receiving packets from a physical media, receives them from +user space program and instead of sending packets via physical media +writes them to the user space program. + +When a program opens /dev/net/tun, driver creates and registers +corresponding net device tunX or tapX. After a program closed above +devices, driver will automatically delete tunXX or tapXX device and all +routes corresponding to it. + +Please read Documentation/networking/tuntap.txt for more information. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called tun.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. + +If you don't know what to use this for, you don't need it. +. +EQUALIZER 'EQL (serial line load balancing) support' text +If you have two serial connections to some other computer (this +usually requires two modems and two telephone lines) and you use +SLIP (the protocol for sending Internet traffic over telephone +lines) or PPP (a better SLIP) on them, you can make them behave like +one double speed connection using this driver. Naturally, this has +to be supported at the other end as well, either with a similar EQL +Linux driver or with a Livingston Portmaster 2e. + +Say Y if you want this and read Documentation/networking/eql.txt. +You may also want to read section 6.2 of the NET-3-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called eql.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +ETHERTAP 'Ethertap network tap' text +If you say Y here (and have said Y to "Kernel/User network link +driver", above) and create a character special file /dev/tap0 with +major number 36 and minor number 16 using mknod ("man mknod"), you +will be able to have a user space program read and write raw +Ethernet frames from/to that special file. tap0 can be configured +with ifconfig and route like any other Ethernet device but it is not +connected to any physical LAN; everything written by the user to +/dev/tap0 is treated by the kernel as if it had come in from a LAN +to the device tap0; everything the kernel wants to send out over the +device tap0 can instead be read by the user from /dev/tap0: the user +mode program replaces the LAN that would be attached to an ordinary +Ethernet device. Please read the file +Documentation/networking/ethertap.txt for more information. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ethertap.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. + +If you don't know what to use this for, you don't need it. +. +NET_SB1000 'General Instruments Surfboard 1000' text +This is a driver for the General Instrument (also known as +NextLevel) SURFboard 1000 internal +cable modem. This is an ISA card which is used by a number of cable +TV companies to provide cable modem access. It's a one-way +downstream-only cable modem, meaning that your upstream net link is +provided by your regular phone modem. + +At present this driver only compiles as a module, so say M here if +you have this card. The module will be called sb1000.o. Then read +Documentation/networking/README.sb1000 for information on how to use +this module, as it needs special ppp scripts for establishing a +connection. Further documentation and the necessary scripts can be +found at: + +http://www.jacksonville.net/~fventuri/ +http://home.adelphia.net/~siglercm/sb1000.html +http://linuxpower.cx/~cable/ + +If you don't have this card, of course say N. +. +# +# Ethernet +NET_ETHERNET 'Ethernet (10 or 100Mbit)' text +Ethernet (also called IEEE 802.3 or ISO 8802-2) is the most common +type of Local Area Network (LAN) in universities and companies. + +Common varieties of Ethernet are: 10BASE-2 or Thinnet (10 Mbps over +coaxial cable, linking computers in a chain), 10BASE-T or twisted +pair (10 Mbps over twisted pair cable, linking computers to central +hubs), 10BASE-F (10 Mbps over optical fiber links, using hubs), +100BASE-TX (100 Mbps over two twisted pair cables, using hubs), +100BASE-T4 (100 Mbps over 4 standard voice-grade twisted pair +cables, using hubs), 100BASE-FX (100 Mbps over optical fiber links) +[the 100BASE varieties are also known as Fast Ethernet], and Gigabit +Ethernet (1 Gbps over optical fiber or short copper links). + +If your Linux machine will be connected to an Ethernet and you have +an Ethernet network interface card (NIC) installed in your computer, +say Y here and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . You will then also have +to say Y to the driver for your particular NIC. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about Ethernet network cards. If unsure, say N. +. +ARM_AM79C961A 'EBSA-110 Ethernet interface (AM79C961A)' text +If you wish to compile a kernel for the EBSA-110, then you should +always answer Y to this. +. +MACE 'MACE (Power Mac Ethernet) support' text +Power Macintoshes and clones with Ethernet built-in on the +motherboard will usually use a MACE (Medium Access Control for +Ethernet) interface. Say Y to include support for the MACE chip. + +This driver is also available as a module called mace.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +MACE_AAUI_PORT 'Use AAUI port instead of TP by default' text +Some Apple machines (notably the Apple Network Server) which use the +MACE ethernet chip have an Apple AUI port (small 15-pin connector), +instead of an 8-pin RJ45 connector for twisted-pair ethernet. Say +Y here if you have such a machine. If unsure, say N. +The driver will default to AAUI on ANS anyway, and if you use it as +a module, you can provide the port_aaui=0|1 to force the driver +setting. +. +BMAC 'BMAC (G3 Ethernet) support' text +Say Y for support of BMAC Ethernet interfaces. These are used on G3 +computers. + +This driver is also available as a module called bmac.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +GMAC 'GMAC (G4/iBook Ethernet) support' text +Say Y for support of GMAC Ethernet interfaces. These are used on G4 +and iBook computers. + +This driver is also available as a module called gmac.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +NCR885E 'Symbios 53c885 (Synergy Ethernet) support' + +OAKNET 'National DP83902AV (Oak Ethernet) support' text +Say Y if your machine has this type of Ethernet network card. + +This driver is also available as a module called oaknet.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +ARIADNE 'Ariadne support' text +If you have a Village Tronic Ariadne Ethernet adapter, say Y. +Otherwise, say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module is called ariadne.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +ARIADNE2 'Ariadne II and X-Surf support' text +This driver is for the Village Tronic Ariadne II and the Individual +Computers X-Surf Ethernet cards. If you have such a card, say Y. +Otherwise, say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ariadne2.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +A2065 'A2065 support' text +If you have a Commodore A2065 Ethernet adapter, say Y. Otherwise, +say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module is called a2065.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +HYDRA 'Hydra support' text +If you have a Hydra Ethernet adapter, say Y. Otherwise, say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module is called hydra.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +LASI_82596 'Lasi ethernet' + +MIPS_JAZZ_SONIC 'MIPS JAZZ onboard SONIC Ethernet support' text +This is the driver for the onboard card of MIPS Magnum 4000, +Acer PICA, Olivetti M700-10 and a few other identical OEM systems. +. +#MIPS_GT96100 'MIPS GT96100 support' +MIPS_GT96100ETH 'MIPS GT96100 Ethernet support' + +MIPS_AU1000_ENET 'MIPS AU1000 Ethernet support' + +SGI_IOC3_ETH 'SGI IOC3 Ethernet' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . +. +STNIC 'National Semiconductor DP83902AV support' text +If you have a network adaptor with National Semiconductor DP83902AV, +say Y or M (for module). + +If unsure, say N. +. +NET_VENDOR_3COM '3COM cards' text +If you have a network (Ethernet) card belonging to this class, say Y +and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Note that the answer to this question doesn't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about 3COM cards. If you say Y, you will be asked for +your specific card in the following questions. +. +EL1 '3c501 "EtherLink" support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Also, consider buying a +new card, since the 3c501 is slow, broken, and obsolete: you will +have problems. Some people suggest to ping ("man ping") a nearby +machine every minute ("man cron") when using this card. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 3c501.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +EL2 '3c503 "EtherLink II" support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 3c503.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ELPLUS '3c505 "EtherLink Plus" support' text +Information about this network (Ethernet) card can be found in +Documentation/networking/3c505.txt. If you have a card of this type, +say Y and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +3c505.o. +. +EL16 '3c507 (EtherLink 16) support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 3c507.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +EL3 '3c509/3c529 (MCA)/3c579 "EtherLink III" support' text +If you have a network (Ethernet) card belonging to the 3Com +EtherLinkIII series, say Y and read the Ethernet-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . + +If your card is not working you may need to use the DOS +setup disk to disable Plug & Play mode, and to select the default +media type. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +3c509.o. +. +CONFIG_3C515 '3c515 ISA Fast EtherLink' text +If you have a 3Com ISA EtherLink XL "Corkscrew" 3c515 Fast Ethernet +network card, say Y and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +3c515.o. +. +ELMC '3c523 "EtherlinkMC" support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 3c523.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ELMC_II '3c527 "EtherLink/MC 32" support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 3c527.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +VORTEX '3c590/3c900 series (592/595/597) "Vortex/Boomerang/Cyclone" support' +text +This option enables driver support for a large number of 10mbps and +10/100mbps EISA, PCI and PCMCIA 3Com network cards: + +"Vortex" (Fast EtherLink 3c590/3c592/3c595/3c597) EISA and PCI +"Boomerang" (EtherLink XL 3c900 or 3c905) PCI +"Cyclone" (3c540/3c900/3c905/3c980/3c575/3c656) PCI and Cardbus +"Tornado" (3c905) PCI +"Hurricane" (3c555/3cSOHO) PCI + +If you have such a card, say Y and read the Ethernet-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . More specific +information is in Documentation/networking/vortex.txt and in the +comments at the beginning of drivers/net/3c59x.c. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +LANCE 'AMD LANCE and PCnet (AT1500 and NE2100) support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Some LinkSys cards are +of this type. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called lance.o. +. +NET_VENDOR_SMC 'Western Digital/SMC cards' text +If you have a network (Ethernet) card belonging to this class, say Y +and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Note that the answer to this question doesn't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about Western Digital cards. If you say Y, you will be +asked for your specific card in the following questions. +. +WD80x3 'WD80*3 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called wd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ULTRAMCA 'SMC Ultra MCA support' text +If you have a network (Ethernet) card of this type and are running +an MCA based system (PS/2), say Y and read the Ethernet-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called smc-mca.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ULTRA 'SMC Ultra support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Important: There have been many reports that, with some motherboards +mixing an SMC Ultra and an Adaptec AHA154x SCSI card (or compatible, +such as some BusLogic models) causes corruption problems with many +operating systems. The Linux smc-ultra driver has a work-around for +this but keep it in mind if you have such a SCSI card and have +problems. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called smc-ultra.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ULTRA32 'SMC Ultra32 EISA support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called smc-ultra32.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt as well +as Documentation/networking/net-modules.txt. +. +SMC9194 'SMC 9194 support' text +This is support for the SMC9xxx based Ethernet cards. Choose this +option if you have a DELL laptop with the docking station, or +another SMC9192/9194 based chipset. Say Y if you want it compiled +into the kernel, and read the file +Documentation/networking/smc9.txt and the Ethernet-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module will be called smc9194.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt as +well as Documentation/networking/net-modules.txt. +. +NET_VENDOR_RACAL 'Racal-Interlan (Micom) NI cards' text +If you have a network (Ethernet) card belonging to this class, such +as the NI5010, NI5210 or NI6210, say Y and read the Ethernet-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +Note that the answer to this question doesn't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about NI cards. If you say Y, you will be asked for +your specific card in the following questions. +. +NI5010 'NI5010 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Note that this is still +experimental code. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ni5010.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +NI52 'NI5210 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ni52.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +NI65 'NI6510 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ni65.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +AT1700 'AT1700/1720 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +at1700.o. +. +DEPCA 'DEPCA, DE10x, DE200, DE201, DE202, DE422 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto as well as +drivers/net/depca.c. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +depca.o. +. +E2100 'Cabletron E21xx support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called e2100.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +EWRK3 'EtherWORKS 3 (DE203, DE204, DE205) support' text +This driver supports the DE203, DE204 and DE205 network (Ethernet) +cards. If this is for you, say Y and read +Documentation/networking/ewrk3.txt in the kernel source as well as +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +ewrk3.o. +. +EEXPRESS 'EtherExpress 16 support' text +If you have an EtherExpress16 network (Ethernet) card, say Y and +read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Note that the Intel +EtherExpress16 card used to be regarded as a very poor choice +because the driver was very unreliable. We now have a new driver +that should do better. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +eexpress.o. +. +EEXPRESS_PRO 'EtherExpressPro support/EtherExpress 10 (i82595) support' +text +If you have a network (Ethernet) card of this type, say Y. This +driver supports intel i82595{FX,TX} based boards. Note however +that the EtherExpress PRO/100 Ethernet card has its own separate +driver. Please read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called eepro.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +FMV18X 'FMV-181/182/183/184 support' text +If you have a Fujitsu FMV-181/182/183/184 network (Ethernet) card, +say Y and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you use an FMV-183 or FMV-184 and it is not working, you may need +to disable Plug & Play mode of the card. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called fmv18x.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +HPLAN_PLUS 'HP PCLAN+ (27247B and 27252A) support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called hp-plus.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +HPLAN 'HP PCLAN (27245 and other 27xxx series) support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called hp.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +LP486E 'LP486E on board Ethernet' + +HP100 'HP 10/100VG PCLAN (ISA, EISA, PCI) support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +hp100.o. +. +ETH16I 'ICL EtherTeam 16i/32 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called eth16i.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +NE2000 'NE2000/NE1000 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Many Ethernet cards +without a specific driver are compatible with NE2000. + +If you have a PCI NE2000 card however, say N here and Y to "PCI +NE2000 support", above. If you have a NE2000 card and are running on +an MCA system (a bus system used on some IBM PS/2 computers and +laptops), say N here and Y to "NE/2 (ne2000 MCA version) support", +below. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ne.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +SEEQ8005 'SEEQ8005 support' text +This is a driver for the SEEQ 8005 network (Ethernet) card. If this +is for you, read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +ewrk3.o. +. +SK_G16 'SK_G16 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . +. +SKMC 'SKnet MCA support' text +These are Micro Channel ethernet adapters. You need to say Y to "MCA +support" in order to use this driver. Supported cards are the SKnet +Junior MC2 and the SKnet MC2(+). The driver automatically +distinguishes between the two cards. Note that using multiple boards +of different type hasn't been tested with this driver. Say Y if you +have one of these ethernet adapters. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called sk_mca.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +NE2_MCA 'NE/2 (ne2000 MCA version) support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ne2.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +IBMLANA 'IBM LAN Adapter/A support' text +This is a Micro Channel ethernet adapter. You need to set CONFIG_MCA +to use this driver. It is both available as an in-kernel driver and +as a module ( = code which can be inserted in and removed from the +running kernel whenever you want). If you want to compile it as a module, +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. If you plan to use more than +one network card under linux, read the Multiple-Ethernet-mini-HOWTO, +available from sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. The only +currently supported card is the IBM LAN Adapter/A for Ethernet. It will +both support 16K and 32K memory windows, however a 32K window gives +a better security against packet losses. Usage of multiple boards with +this driver should be possible, but has not been tested up to now due +to lack of hardware. +. +PCNET32 'AMD PCnet32 (VLB and PCI) support' text +If you have a PCnet32 or PCnetPCI based network (Ethernet) card, +answer Y here and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called pcnet32.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ADAPTEC_STARFIRE 'Adaptec Starfire support' text +Say Y here if you have an Adaptec Starfire (or DuraLAN) PCI network +adapter. The DuraLAN chip is used on the 64 bit PCI boards from +Adaptec e.g. the ANA-6922A. The older 32 bit boards use the tulip +driver. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called starfire.o. +. +AC3200 'Ansel Communications EISA 3200 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ac3200.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +APRICOT 'Apricot Xen-II on board Ethernet' text +If you have a network (Ethernet) controller of this type, say Y and +read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +apricot.o. +. +CS89x0 'CS89x0 support (Daynaport CS and LC cards)' text +Support for CS89x0 chipset based Ethernet cards. If you have a +network (Ethernet) card of this type, say Y and read the +Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto as well as +Documentation/networking/cs89x0.txt. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +cs89x.o. +. +DE4X5 'Generic DECchip & DIGITAL EtherWORKS PCI/EISA' text +This is support for the DIGITAL series of PCI/EISA Ethernet cards. +These include the DE425, DE434, DE435, DE450 and DE500 models. If +you have a network card of this type, say Y and read the +Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . More specific +information is contained in Documentation/networking/de4x5.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called de4x5.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +TULIP 'DECchip Tulip (dc21x4x) PCI support' text +This driver is developed for the SMC EtherPower series Ethernet +cards and also works with cards based on the DECchip +21040/21041/21140 (Tulip series) chips. Some LinkSys PCI cards are +of this type. (If your card is NOT SMC EtherPower 10/100 PCI +(smc9332dst), you can also try the driver for "Generic DECchip" +cards, above. However, most people with a network card of this type +will say Y here.) Do read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . More specific +information is contained in Documentation/networking/tulip.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called tulip.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +TULIP_MWI 'New Tulip bus configuration' text +This configures your Tulip card specifically for the card and +system cache line size type you are using. + +This is experimental code, not yet tested on many boards. + +If unsure, say N. +. +TULIP_MMIO 'Use PCI shared mem for NIC registers' + +DGRS 'Digi Intl. RightSwitch SE-X support' text +This is support for the Digi International RightSwitch series of +PCI/EISA Ethernet switch cards. These include the SE-4 and the SE-6 +models. If you have a network card of this type, say Y and read the +Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . More specific +information is contained in Documentation/networking/dgrs.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dgrs.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +DM9102 'Davicom DM910x/DM980x support' text +This driver is for DM9102(A)/DM9132/DM9801 compatible PCI cards from +Davicom ( http://www.davicom.com.tw ). If you have such a network +(Ethernet) card, say Y. Some information is contained in the file +Documentation/networking/dmfe.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dmfe.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +EEPRO100 'EtherExpress Pro/100 support' text +If you have an Intel EtherExpress PRO/100 PCI network (Ethernet) +card, say Y and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called eepro100.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +#EEPRO100_PM 'Enable Power Management' +FEALNX 'Myson MTD-8xx PCI Ethernet support' + +LNE390 'Mylex EISA LNE390A/LNE390B support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called lne390.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +NE3210 'Novell/Eagle/Microdyne NE3210 EISA support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Note that this driver +will NOT WORK for NE3200 cards as they are completely different. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ne3210.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +NATSEMI 'National Semiconductor DP8381x series PCI Ethernet support' +text +This driver is for the National Semiconductor DP83810 series, +including the 83815 chip. +More specific information and updates are available from +http://www.scyld.com/network/natsemi.html +. +NE2K_PCI 'PCI NE2000 and clones support' text +This driver is for NE2000 compatible PCI cards. It will not work +with ISA NE2000 cards (they have their own driver, "NE2000/NE1000 +support" below). If you have a PCI NE2000 network (Ethernet) card, +say Y and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver also works for the following NE2000 clone cards: + RealTek RTL-8029 Winbond 89C940 Compex RL2000 KTI ET32P2 + NetVin NV5000SC Via 86C926 SureCom NE34 Winbond + Holtek HT80232 Holtek HT80229 + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ne2k-pci.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +CONFIG_8139TOO 'RealTek RTL-8139 PCI Fast Ethernet Adapter support' +text +This is a driver for the Fast Ethernet PCI network cards based on +the RTL8139 chips. If you have one of those, say Y and read +Documentation/networking/8139too.txt as well as the Ethernet-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called 8139too.o. +. +CONFIG_8139TOO_PIO 'Use PIO instead of MMIO' text +This instructs the driver to use programmed I/O ports (PIO) instead +of PCI shared memory (MMIO). This can possibly solve some problems in +case your mainboard has memory consistency issues. If unsure, say N. +. +CONFIG_8139TOO_TUNE_TWISTER 'Support for automatic channel equalization' +text +This implements a function which might come in handy in case you are +using low quality on long cabling. It tries to match the transceiver +to the cable characteristics. This is experimental since hardly +documented by the manufacturer. If unsure, say N. +. +CONFIG_8139TOO_8129 'Support for older RTL-8129/8130 boards' text +This enables support for the older and uncommon RTL-8129 and +RTL-8130 chips, which support MII via an external transceiver, instead +of an internal one. Disabling this option will save some memory +by making the code size smaller. If unsure, say Y. +. +SIS900 'SiS 900/7016 PCI Fast Ethernet Adapter support' text +This is a driver for the Fast Ethernet PCI network cards based on +the SiS 900 and SiS 7016 chips. The SiS 900 core is also embedded in +SiS 630 and SiS 540 chipsets. If you have one of those, say Y and +read the Ethernet-HOWTO, available at +http://www.linuxdoc.org/docs.html#howto . Please read +Documentation/networking/sis900.txt and comments at the beginning of +drivers/net/sis900.c for more information. + +This driver also supports AMD 79C901 HomePNA so that you can use +your phone line as a network cable. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called sis900.o. +. +TLAN 'TI ThunderLAN support' text +If you have a PCI Ethernet network card based on the ThunderLAN chip +which is supported by this driver, say Y and read the +Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Devices currently supported by this driver are Compaq Netelligent, +Compaq NetFlex and Olicom cards. Please read the file +Documentation/networking/tlan.txt for more details. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called tlan.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. + +Please email feedback to torben.mathiasen@compaq.com. +. +VIA_RHINE 'VIA Rhine support' text +If you have a VIA "rhine" based network card (Rhine-I (3043) or +Rhine-2 (VT86c100A)), say Y here. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called via-rhine.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ES3210 'Racal-Interlan EISA ES3210 support' text +If you have a network (Ethernet) card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called es3210.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +CONFIG_8139CP 'RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support' +text +This is a driver for the Fast Ethernet PCI network cards based on +the RTL8139C+ chips. If you have one of those, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called 8139cp.o. +. +EPIC100 'SMC EtherPower II' text +This driver is for the SMC EtherPower II 9432 PCI Ethernet NIC, +which is based on the SMC83c17x (EPIC/100). +More specific information and updates are available from +http://www.scyld.com/network/epic100.html +. +SUNDANCE 'Sundance Alta PCI Ethernet support' text +This driver is for the Sundance "Alta" chip. +More specific information and updates are available from +http://www.scyld.com/network/sundance.html +. +ZNET 'Zenith Z-Note support' text +The Zenith Z-Note notebook computer has a built-in network +(Ethernet) card, and this is the Linux driver for it. Note that the +IBM Thinkpad 300 is compatible with the Z-Note and is also supported +by this driver. Read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . +. +LAN_SAA9730 'Philips SAA9730 Ethernet support' + +NET_POCKET 'Pocket and portable adapters' text +Cute little network (Ethernet) devices which attach to the parallel +port ("pocket adapters"), commonly used with laptops. If you have +one of those, say Y and read the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to plug a network (or some other) card into the PCMCIA +(or PC-card) slot of your laptop instead (PCMCIA is the standard for +credit card size extension cards used by all modern laptops), you +need the pcmcia-cs package (location contained in the file +Documentation/Changes) and you can say N here. + +Laptop users should read the Linux Laptop home page at +http://www.cs.utexas.edu/users/kharker/linux-laptop/ . + +Note that the answer to this question doesn't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about this class of network devices. If you say Y, you +will be asked for your specific device in the following questions. +. +ATP 'AT-LAN-TEC/RealTek pocket adapter support' text +This is a network (Ethernet) device which attaches to your parallel +port. Read drivers/net/atp.c as well as the Ethernet-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto , if you +want to use this. If you intend to use this driver, you should have +said N to the "Parallel printer support", because the two drivers +don't like each other. + +If you want to compile this driver as a module however ( = code +which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called atp.o. +. +DE600 'D-Link DE600 pocket adapter support' text +This is a network (Ethernet) device which attaches to your parallel +port. Read Documentation/networking/DLINK.txt as well as the +Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , if you want to use +this. It is possible to have several devices share a single parallel +port and it is safe to compile the corresponding drivers into the +kernel. + +If you want to compile this driver as a module however ( = code +which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called de600.o. +. +DE620 'D-Link DE620 pocket adapter support' text +This is a network (Ethernet) device which attaches to your parallel +port. Read Documentation/networking/DLINK.txt as well as the +Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , if you want to use +this. It is possible to have several devices share a single parallel +port and it is safe to compile the corresponding drivers into the +kernel. + +If you want to compile this driver as a module however ( = code +which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called de620.o. +. +# +# Gigabit Ethernet +MYRI_SBUS 'MyriCOM Gigabit Ethernet support' text +This driver supports MyriCOM Sbus gigabit ethernet cards. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called myri_sbus.o. +. +NS83820 'National Semiconduct DP83820 support' + +HAMACHI 'Packet Engines Hamachi GNIC-II support' text +If you have a Gigabit Ethernet card of this type, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +hamachi.o. +. +YELLOWFIN 'Packet Engines Yellowfin Gigabit-NIC support' text +Say Y here if you have a Packet Engines G-NIC PCI Gigabit Ethernet +adapter or the SYM53C885 Ethernet controller. The Gigabit adapter is +used by the Beowulf Linux cluster project. See +http://cesdis.gsfc.nasa.gov/linux/drivers/yellowfin.html for more +information about this driver in particular and Beowulf in general. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called yellowfin.o. +. +ACENIC 'Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support' text +Say Y here if you have an Alteon AceNIC, 3Com 3C985(B), NetGear +GA620, SGI Gigabit or Farallon PN9000-SX PCI Gigabit Ethernet +adapter. The driver allows for using the Jumbo Frame option (9000 +bytes/frame) however it requires that your switches can handle this +as well. To enable Jumbo Frames, add `mtu 9000' to your ifconfig +line. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called acenic.o. +. +DL2K 'D-Link DL2000-based Gigabit Ethernet support' text +This driver supports D-Link 2000-based gigabit ethernet cards, which +includes + D-Link DGE-550T Gigabit Ethernet Adapter. + D-Link DL2000-based Gigabit Ethernet Adapter. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called dl2k.o. +. +ACENIC_OMIT_TIGON_I 'Omit support for old Tigon I based AceNICs' text +Say Y here if you only have Tigon II based AceNICs and want to leave +out support for the older Tigon I based cards which are no longer +being sold (ie. the original Alteon AceNIC and 3Com 3C985 (non B +version)). This will reduce the size of the driver object by +app. 100KB. If you are not sure whether your card is a Tigon I or a +Tigon II, say N here. + +The safe and default value for this is N. +. +SK98LIN 'SysKonnect SK-98xx support' text +Say Y here if you have a SysKonnect SK-98xx Gigabit Ethernet Server +Adapter. The following adapters are supported by this driver: +- SK-9841 (single link 1000Base-LX) +- SK-9842 (dual link 1000Base-LX) +- SK-9843 (single link 1000Base-SX) +- SK-9844 (dual link 1000Base-SX) +- SK-9821 (single link 1000Base-T) +- SK-9822 (dual link 1000Base-T) +- SK-9861 (single link Volition connector) +- SK-9862 (dual link Volition connector) +The driver also supports the following adapters from Allied Telesyn: +- AT2970... + +The dual link adapters support a link-failover feature. +Read Documentation/networking/sk98lin.txt for information about +optional driver parameters. +Questions concerning this driver may be addressed to: + linux@syskonnect.de + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called sk98lin.o. +. +SUNGEM 'Sun GEM support' + +FDDI 'FDDI driver support' text +Fiber Distributed Data Interface is a high speed local area network +design; essentially a replacement for high speed Ethernet. FDDI can +run over copper or fiber. If you are connected to such a network and +want a driver for the FDDI card in your computer, say Y here (and +then also Y to the driver for your FDDI card, below). Most people +will say N. +. +DEFXX 'Digital DEFEA and DEFPA adapter support' text +This is support for the DIGITAL series of EISA (DEFEA) and PCI +(DEFPA) controllers which can connect you to a local FDDI network. +. +SKFP 'SysKonnect FDDI PCI support' text +Say Y here if you have a SysKonnect FDDI PCI adapter. +The following adapters are supported by this driver: +- SK-5521 (SK-NET FDDI-UP) +- SK-5522 (SK-NET FDDI-UP DAS) +- SK-5541 (SK-NET FDDI-FP) +- SK-5543 (SK-NET FDDI-LP) +- SK-5544 (SK-NET FDDI-LP DAS) +- SK-5821 (SK-NET FDDI-UP64) +- SK-5822 (SK-NET FDDI-UP64 DAS) +- SK-5841 (SK-NET FDDI-FP64) +- SK-5843 (SK-NET FDDI-LP64) +- SK-5844 (SK-NET FDDI-LP64 DAS) +- Netelligent 100 FDDI DAS Fibre SC +- Netelligent 100 FDDI SAS Fibre SC +- Netelligent 100 FDDI DAS UTP +- Netelligent 100 FDDI SAS UTP +- Netelligent 100 FDDI SAS Fibre MIC + +Read Documentation/networking/skfp.txt for information about +the driver. + +Questions concerning this driver can be addressed to: + linux@syskonnect.de + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called skfp.o. +. +HIPPI 'HIgh Performance Parallel Interface (HIPPI) support' text +HIgh Performance Parallel Interface (HIPPI) is a 800Mbit/sec and +1600Mbit/sec dual-simplex switched or point-to-point network. HIPPI +can run over copper (25m) or fiber (300m on multi-mode or 10km on +single-mode). HIPPI networks are commonly used for clusters and to +connect to super computers. If you are connected to a HIPPI network +and have a HIPPI network card in your computer that you want to use +under Linux, say Y here (you must also remember to enable the driver +for your HIPPI card below). Most people will say N here. +. +ROADRUNNER 'Essential RoadRunner HIPPI PCI adapter support' text +Say Y here if this is your PCI HIPPI network card. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called rrunner.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +ROADRUNNER_LARGE_RINGS 'Use large TX/RX rings' text +If you say Y here, the RoadRunner driver will preallocate up to 2 MB +of additional memory to allow for fastest operation, both for +transmitting and receiving. This memory cannot be used by any other +kernel code or by user space programs. Say Y here only if you have +the memory. +. +VETH 'iSeries Virtual Ethernet driver support' + +# +# IP-over-serial and IP-over-parallel support +PLIP 'PLIP (parallel port) support' text +PLIP (Parallel Line Internet Protocol) is used to create a +reasonably fast mini network consisting of two (or, rarely, more) +local machines. A PLIP link from a Linux box is a popular means to +install a Linux distribution on a machine which doesn't have a CDROM +drive (a minimal system has to be transferred with floppies first). +The kernels on both machines need to have this PLIP option enabled +for this to work. + +The PLIP driver has two modes, mode 0 and mode 1. The parallel ports +(the connectors at the computers with 25 holes) are connected with +"null printer" or "Turbo Laplink" cables which can transmit 4 bits +at a time (mode 0) or with special PLIP cables, to be used on +bidirectional parallel ports only, which can transmit 8 bits at a +time (mode 1); you can find the wiring of these cables in +Documentation/networking/PLIP.txt. The cables can be up to 15m long. +Mode 0 works also if one of the machines runs DOS/Windows and has +some PLIP software installed, e.g. the Crynwr PLIP packet driver +(http://oak.oakland.edu/simtel.net/msdos/pktdrvr-pre.html ) and +winsock or NCSA's telnet. + +If you want to use PLIP, say Y and read the PLIP mini-HOWTO as well +as the NET-3-HOWTO, both available from +http://www.linuxdoc.org/docs.html#howto . Note that the PLIP +protocol has been changed and this PLIP driver won't work together +with the PLIP support in Linux versions 1.0.x. This option enlarges +your kernel by about 8 KB. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +plip.o. If unsure, say Y or M, in case you buy a laptop later. +. +PPP 'PPP (point-to-point protocol) support' text +PPP (Point to Point Protocol) is a newer and better SLIP. It serves +the same purpose: sending Internet traffic over telephone (and other +serial) lines. Ask your access provider if they support it, because +otherwise you can't use it; most internet access providers these +days support PPP rather than SLIP. + +To use PPP, you need an additional program called pppd as described +in Documentation/networking/ppp.txt and in the PPP-HOWTO, available +at http://www.linuxdoc.org/docs.html#howto . If you upgrade +from an older kernel, you might need to upgrade pppd as well. The +PPP option enlarges your kernel by about 16 KB. + +There are actually two versions of PPP: the traditional PPP for +asynchronous lines, such as regular analog phone lines, and +synchronous PPP which can be used over digital ISDN lines for +example. If you want to use PPP over phone lines or other +asynchronous serial lines, you need to say Y (or M) here and also to +the next option, "PPP support for async serial ports". For PPP over +synchronous lines, you should say Y (or M) here and to "Support +synchronous PPP", below. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you said Y to "Version information on all symbols" above, then +you cannot compile the PPP driver into the kernel; you can then only +compile it as a module. The module will be called ppp_generic.o. If +you want to compile it as a module, say M here and read +Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +PPP_MULTILINK 'PPP multilink support' text +PPP multilink is a protocol (defined in RFC 1990) which allows you +to combine several (logical or physical) lines into one logical PPP +connection, so that you can utilize your full bandwidth. + +This has to be supported at the other end as well and you need a +version of the pppd daemon which understands the multilink protocol. + +If unsure, say N. +. +PPP_FILTER 'PPP filtering' text +Say Y here if you want to be able to filter the packets passing over +PPP interfaces. This allows you to control which packets count as +activity (i.e. which packets will reset the idle timer or bring up +a demand-dialled link) and which packets are to be dropped entirely. +You need to say Y here if you wish to use the pass-filter and +active-filter options to pppd. + +If unsure, say N. +. +PPP_ASYNC 'PPP support for async serial ports' text +Say Y (or M) here if you want to be able to use PPP over standard +asynchronous serial ports, such as COM1 or COM2 on a PC. If you use +a modem (not a synchronous or ISDN modem) to contact your ISP, you +need this option. + +This code is also available as a module (code which can be inserted +into and removed from the running kernel). If you want to compile +it as a module, say M here and read Documentation/modules.txt. + +If unsure, say Y. +. +PPP_SYNC_TTY 'PPP support for sync tty ports' text +Say Y (or M) here if you want to be able to use PPP over synchronous +(HDLC) tty devices, such as the SyncLink adapter. These devices +are often used for high-speed leased lines like T1/E1. + +This code is also available as a module (code which can be inserted +into and removed from the running kernel). If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +PPP_DEFLATE 'PPP Deflate compression' text +Support for the Deflate compression method for PPP, which uses the +Deflate algorithm (the same algorithm that gzip uses) to compress +each PPP packet before it is sent over the wire. The machine at the +other end of the PPP link (usually your ISP) has to support the +Deflate compression method as well for this to be useful. Even if +they don't support it, it is safe to say Y here. + +This code is also available as a module (code which can be inserted +into and removed from the running kernel). If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +PPP_BSDCOMP 'PPP BSD-Compress compression' text +Support for the BSD-Compress compression method for PPP, which uses +the LZW compression method to compress each PPP packet before it is +sent over the wire. The machine at the other end of the PPP link +(usually your ISP) has to support the BSD-Compress compression +method as well for this to be useful. Even if they don't support it, +it is safe to say Y here. + +The PPP Deflate compression method ("PPP Deflate compression", +above) is preferable to BSD-Compress, because it compresses better +and is patent-free. + +Note that the BSD compression code will always be compiled as a +module; it is called bsd_comp.o and will show up in the directory +modules once you have said "make modules". If unsure, say N. +. +PPPOE 'PPP over Ethernet' text +Support for PPP over Ethernet. + +This driver requires a specially patched pppd daemon. The patch to +pppd, along with binaries of a patched pppd package can be found at: +http://www.shoshin.uwaterloo.ca/~mostrows +. +SLIP 'SLIP (serial line) support' text +Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to +connect to your Internet service provider or to connect to some +other local Unix box or if you want to configure your Linux box as a +Slip/CSlip server for other people to dial in. SLIP (Serial Line +Internet Protocol) is a protocol used to send Internet traffic over +serial connections such as telephone lines or null modem cables; +nowadays, the protocol PPP is more commonly used for this same +purpose. + +Normally, your access provider has to support SLIP in order for you +to be able to use it, but there is now a SLIP emulator called SLiRP +around (available via FTP (user: anonymous) from +ftp://metalab.unc.edu/pub/Linux/system/network/serial/ ) which +allows you to use SLIP over a regular dial up shell connection. If +you plan to use SLiRP, make sure to say Y to CSLIP, below. The +NET-3-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , explains how to +configure SLIP. Note that you don't need this option if you just +want to run term (term is a program which gives you almost full +Internet connectivity if you have a regular dial up shell account on +some Internet connected Unix computer. Read +http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html ). SLIP +support will enlarge your kernel by about 4 KB. If unsure, say N. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. The module will be called +slip.o. +. +SLIP_COMPRESSED 'CSLIP compressed headers' text +This protocol is faster than SLIP because it uses compression on the +TCP/IP headers (not on the data itself), but it has to be supported +on both ends. Ask your access provider if you are not sure and +answer Y, just in case. You will still be able to use plain SLIP. If +you plan to use SLiRP, the SLIP emulator (available from +ftp://metalab.unc.edu/pub/Linux/system/network/serial/ ) which +allows you to use SLIP over a regular dial up shell connection, you +definitely want to say Y here. The NET-3-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , explains how to configure +CSLIP. This won't enlarge your kernel. +. +SLIP_SMART 'Keepalive and linefill' text +Adds additional capabilities to the SLIP driver to support the +RELCOM line fill and keepalive monitoring. Ideal on poor quality +analogue lines. +. +SLIP_MODE_SLIP6 'Six bit SLIP encapsulation' text +Just occasionally you may need to run IP over hostile serial +networks that don't pass all control characters or are only seven +bit. Saying Y here adds an extra mode you can use with SLIP: +"slip6". In this mode, SLIP will only send normal ASCII symbols over +the serial device. Naturally, this has to be supported at the other +end of the link as well. It's good enough, for example, to run IP +over the async ports of a Camtec JNT Pad. If unsure, say N. +. +# +# Wireless LAN +NET_RADIO 'Wireless LAN (non-hamradio)' text +Support for wireless LANs and everything having to do with radio, +but not with amateur radio or FM broadcasting. + +Saying Y here also enables the Wireless Extensions (creates +/proc/net/wireless and enables ifconfig access). The Wireless +Extension is a generic API allowing a driver to expose to the user +space configuration and statistics specific to common Wireless LANs. +The beauty of it is that a single set of tool can support all the +variations of Wireless LANs, regardless of their type (as long as +the driver supports Wireless Extension). Another advantage is that +these parameters may be changed on the fly without restarting the +driver (or Linux). If you wish to use Wireless Extensions with +wireless PCMCIA (PC-) cards, you need to say Y here; you can fetch +the tools from +http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html . + +Some user-level drivers for scarab devices which don't require +special kernel support are available from +ftp://shadow.cabi.net/pub/Linux . +. +STRIP 'STRIP (Metricom Starmode radio IP)' text +Say Y if you have a Metricom radio and intend to use Starmode Radio +IP. STRIP is a radio protocol developed for the MosquitoNet project +(on the WWW at http://mosquitonet.stanford.edu/ ) to send Internet +traffic using Metricom radios. Metricom radios are small, battery +powered, 100kbit/sec packet radio transceivers, about the size and +weight of a cellular telephone. (You may also have heard them called +"Metricom modems" but we avoid the term "modem" because it misleads +many people into thinking that you can plug a Metricom modem into a +phone line and use it as a modem.) + +You can use STRIP on any Linux machine with a serial port, although +it is obviously most useful for people with laptop computers. If you +think you might get a Metricom radio in the future, there is no harm +in saying Y to STRIP now, except that it makes the kernel a bit +bigger. + +You can also compile this as a module ( = code which can be inserted +in and removed from the running kernel whenever you want), say M +here and read Documentation/modules.txt. The module will be called +strip.o. +. +WAVELAN 'AT&T WaveLAN & DEC RoamAbout DS support' text +The Lucent WaveLAN (formerly NCR and AT&T; or DEC RoamAbout DS) is +a Radio LAN (wireless Ethernet-like Local Area Network) using the +radio frequencies 900 MHz and 2.4 GHz. + +This driver support the ISA version of the WaveLAN card. A separate +driver for the PCMCIA (PC-card) hardware is available in David +Hinds' pcmcia-cs package (see the file Documentation/Changes for +location). + +If you want to use an ISA WaveLAN card under Linux, say Y and read +the Ethernet-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Some more specific +information is contained in Documentation/networking/wavelan.txt and +in the source code drivers/net/wavelan.p.h. + +You will also need the wireless tools package available from +http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html . +Please read the man pages contained therein. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called wavelan.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ARLAN 'Aironet Arlan 655 & IC2200 DS support' text +Aironet makes Arlan, a class of wireless LAN adapters. These use the +www.Telxon.com chip, which is also used on several similar cards. +This driver is tested on the 655 and IC2200 series cards. Look at +http://www.ylenurme.ee/~elmer/655/ for the latest information. + +The driver is built as two modules, arlan and arlan-proc. The latter +is the /proc interface and is not needed most of time. + +On some computers the card ends up in non-valid state after some +time. Use a ping-reset script to clear it. +. +AIRONET4500 'Aironet 4500/4800 series adapters' text +www.aironet.com (recently bought by Cisco) makes these 802.11 DS +adapters. Driver by Elmer Joandi (elmer@ylenurme.ee). + +Say Y here if you have such an adapter, and then say Y below to +the option that applies to your particular type of card (PCI, ISA, +or PCMCIA). + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called aironet4500_core.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. + +quick config parameters: + SSID=tsunami - "The Password" + adhoc=1 there are no Access Points around + master=1 Adhoc master (the one who creates network + sync) + slave=1 Adhoc slave (btw, it is still forming own net + sometimes, and has problems with firmware... + change IbssJoinNetTimeout from /proc...) + channel=1..? meaningful in adhoc mode + +If you have problems with screwing up card, both_bap_lock=1 is a +conservative value (performance hit 15%). + +All other parameters can be set via the proc interface. +. +AIRONET4500_NONCS 'Aironet 4500/4800 ISA/PCI/PNP/365 support' text +If you have an ISA, PCI or PCMCIA Aironet 4500/4800 wireless LAN +card, say Y here, and then also to the options below that apply +to you. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called aironet4500_card.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt +. +AIRONET4500_PNP 'Aironet 4500/4800 PNP support' text +If you have an ISA Aironet 4500/4800 card which you want to use in +PNP (Plug and Play) mode, say Y here. This is the recommended mode +for ISA cards. Remember however to enable the PNP jumper on the +board if you say Y here. +. +AIRONET4500_PCI 'Aironet 4500/4800 PCI support' text +If you have an PCI Aironet 4500/4800 card, say Y here. +. +AIRONET4500_ISA 'Aironet 4500/4800 ISA broken support' text +If you have an ISA Aironet 4500/4800 card which you want to run in +non-PNP mode, say Y here. This is not recommended and does not work +correctly at this point. Say N. +. +AIRONET4500_I365 'Aironet 4500/4800 I365 broken support' text +If you have a PCMCIA Aironet 4500/4800 card which you want to use +without the standard PCMCIA cardservices provided by the pcmcia-cs +package, say Y here. This is not recommended, so say N. +. +AIRONET4500_PROC 'Aironet 4500/4800 PROC interface' text +If you say Y here (and to the "/proc file system" below), you will +be able to configure your Aironet card via the +/proc/sys/aironet4500 interface. + +Additional info: look in drivers/net/aironet4500_rids.c. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called aironet4500_proc.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. + +NOTE: the proc interface uses a lot of memory, so it is recommended + to compile it as a module and remove the module after + configuration. +. +AIRO 'Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards' text +This is the standard Linux driver to support Cisco/Aironet ISA +and PCI 802.11 wireless cards. +It supports the new 802.11b cards from Cisco (Cisco 34X, Cisco 35X +- with or without encryption) as well as card before the Cisco +aquisition (Aironet 4500, Aironet 4800, Aironet 4800B). + +This driver support both the standard Linux Wireless Extensions +and Cisco proprietary API, so both the Linux Wireless Tools and the +Cisco Linux utilities can be used to configure the card. + +The driver can be compiled as a module and will be named "airo.o". +. +AIRO_CS 'Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards' text +This is the standard Linux driver to support Cisco/Aironet PCMCIA +802.11 wireless cards. This driver is the same as the Aironet +driver part of the Linux Pcmcia package. +It supports the new 802.11b cards from Cisco (Cisco 34X, Cisco 35X +- with or without encryption) as well as card before the Cisco +aquisition (Aironet 4500, Aironet 4800, Aironet 4800B). It also +supports OEM of Cisco such as the DELL TrueMobile 4800 and Xircom +802.11b cards. + +This driver support both the standard Linux Wireless Extensions +and Cisco proprietary API, so both the Linux Wireless Tools and the +Cisco Linux utilities can be used to configure the card. + +To use your PC-cards, you will need supporting software from David +Hinds' pcmcia-cs package (see the file Documentation/Changes for +location). You also want to check out the PCMCIA-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . +. +HERMES 'Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)' text +A driver for 802.11b wireless cards based based on the "Hermes" or +Intersil HFA384x (Prism 2) MAC controller. This includes the vast +majority of the PCMCIA 802.11b cards (which are nearly all rebadges) +- except for the Cisco/Aironet cards. Cards supported include the +Apple Airport (not a PCMCIA card), WavelanIEEE/Orinoco, +Cabletron/EnteraSys Roamabout, ELSA AirLancer, MELCO Buffalo, Avaya, +IBM High Rate Wireless, Farralon Syyline, Samsung MagicLAN, Netgear +MA401, LinkSys WPC-11, D-Link DWL-650, 3Com AirConnect, Intel +PRO/Wireless, and Symbol Spectrum24 High Rate amongst others. + +This option includes the guts of the driver, but in order to +actually use a card you will also need to enable support for PCMCIA +Hermes cards, PLX9052 based PCI adaptors or the Apple Airport below. + +You will also very likely also need the Wireless Tools in order to +configure your card and that /etc/pcmcia/wireless.opts works : + http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html +. +APPLE_AIRPORT 'Apple Airport support (built-in)' text +Enable support for the Apple Airport card (which is essentially a +Lucent Orinoco card with a non-standard interface) built into some +newer Apple Macintosh machines. +. +PLX_HERMES 'Hermes in PLX9052 based PCI adaptor support (Netgear MA301 etc.)' +text +Enable support for PCMCIA cards supported by the "Hermes" (aka +orinoco_cs) driver when used in PLX9052 based PCI adaptors. These +adaptors are not a full PCMCIA controller but act as a more limited +PCI <-> PCMCIA bridge. Several vendors sell such adaptors so that +802.11b PCMCIA cards can be used in desktop machines. The Netgear +MA301 is such an adaptor. + +Support for these adaptors is so far still incomplete and buggy. +You have been warned. +. + +# +# WAN devices configuration +WAN 'Wan interfaces support' text +Wide Area Networks (WANs), such as X.25, frame relay and leased +lines, are used to interconnect Local Area Networks (LANs) over vast +distances with data transfer rates significantly higher than those +achievable with commonly used asynchronous modem connections. +Usually, a quite expensive external device called a `WAN router' is +needed to connect to a WAN. + +As an alternative, a relatively inexpensive WAN interface card can +allow your Linux box to directly connect to a WAN. If you have one +of those cards and wish to use it under Linux, say Y here and also +to the WAN driver for your card, below. + +If unsure, say N. +. +HOSTESS_SV11 'Comtrol Hostess SV-11 support' text +This is a network card for low speed synchronous serial links, at +up to 256Kbps. It supports both PPP and Cisco HDLC. + +At this point, the driver can only be compiled as a module. +. +COSA 'COSA/SRP sync serial board support' text +This is a driver for COSA and SRP synchronous serial boards. These +boards allow to connect synchronous serial devices (for example +base-band modems, or any other device with the X.21, V.24, V.35 or +V.36 interface) to your Linux box. The cards can work as the +character device, synchronous PPP network device, or the Cisco HDLC +network device. + +To actually use the COSA or SRP board, you will need user-space +utilities for downloading the firmware to the cards and to set them +up. Look at the http://www.fi.muni.cz/~kas/cosa/ for more +information about the cards (including the pointer to the user-space +utilities). You can also read the comment at the top of the +drivers/net/cosa.c for details about the cards and the driver +itself. + +The driver will be compiled as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called cosa.o. For general information about +modules read Documentation/modules.txt. +. +LANMEDIA 'LanMedia Corp. serial boards (SSI/V.35, T1/E1, HSSI, T3)' +text +This is a driver for the following Lan Media family of serial boards. + +LMC 1000 board allows you to connect synchronous serial devices (for +example base-band modems, or any other device with the X.21, V.24, +V.35 or V.36 interface) to your Linux box. + +LMC 1200 with on board DSU board allows you to connect your Linux +box dirrectly to a T1 or E1 circuit. + +LMC 5200 board provides a HSSI interface capable of runnig up to +52 mbits per second. + +LMC 5245 board connects directly to a T3 circuit saving the +additional external hardware. + +To change setting such as syncPPP vs cisco HDLC or clock source you +will need lmcctl. It it available at ftp.lanmedia.com. + +This code is also available as a module called lmc.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +COMX 'MultiGate (COMX) synchronous serial board support' text +Say Y if you want to use any board from the MultiGate (COMX) family. +These boards are synchronous serial adapters for the PC, +manufactured by ITConsult-Pro Co, Hungary. + +Read linux/Documentation/networking/comx.txt for help on configuring +and using COMX interfaces. Further info on these cards can be found +at http://www.itc.hu or . + +You must say Y to "/proc file system support" (CONFIG_PROC_FS) to +use this driver. + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called comx.o. +. +COMX_HW_COMX 'Support for COMX/CMX/HiCOMX boards' text +Hardware driver for the 'CMX', 'COMX' and 'HiCOMX' boards from the +MultiGate family. Say Y if you have one of these. + +You will need additional firmware to use these cards, which are +downloadable from ftp://ftp.itc.hu/. + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called comx-hw-comx.o. +. +COMX_HW_LOCOMX 'Support for LoCOMX board' text +Hardware driver for the 'LoCOMX' board from the MultiGate family. +Say Y if you have a board like this. + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called +comx-hw-locomx.o. +. +COMX_HW_MIXCOM 'Support for MixCOM board' text +Hardware driver for the 'MixCOM' board from the MultiGate family. +Say Y if you have a board like this. + +If you want to use the watchdog device on this card, you should +select it in the Watchdog Cards section of the Character Devices +configuration. The ISDN interface of this card is Teles 16.3 +compatible, you should enable it in the ISDN configuration menu. The +driver for the flash ROM of this card is available separately on +ftp://ftp.itc.hu/. + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called +comx-hw-mixcom.o. +. +COMX_PROTO_PPP 'Support for HDLC and syncPPP protocols on MultiGate boards' +text +Cisco-HDLC and synchronous PPP protocol driver for all MultiGate +boards. Say Y if you want to use either protocol on your MultiGate +boards. + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called +comx-proto-ppp.o. +. +COMX_PROTO_LAPB 'Support for LAPB protocol on MultiGate boards' text +LAPB protocol driver for all MultiGate boards. Say Y if you +want to use this protocol on your MultiGate boards. + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called +comx-proto-lapb.o. +. +COMX_PROTO_FR 'Support for Frame Relay on MultiGate boards' text +Frame Relay protocol driver for all MultiGate boards. Say Y if you +want to use this protocol on your MultiGate boards. + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called +comx-proto-fr.o. +. +DSCC4 'Etinc PCISYNC serial board support' text +This is a driver for Etinc PCISYNC boards based on the Infineon +(ex. Siemens) DSCC4 chipset. It is supposed to work with the four +ports card. Take a look at http://www.cogenit.fr/dscc4 +for further informations about the driver and his configuration. + +The driver will be compiled as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dscc4.o. For general information about +modules read Documentation/modules.txt. +. +FARSYNC 'FarSync T-Series X.21 (and V.35/V.24) cards' + +SEALEVEL_4021 'Sealevel Systems 4021 support' text +This is a driver for the Sealevel Systems ACB 56 serial I/O adapter. + +This driver can only be compiled as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to do that, say M here. The module will be called +sealevel.o. +. +SYNCLINK_SYNCPPP 'SyncLink HDLC/SYNCPPP support' text +Enables HDLC/SYNCPPP support for the SyncLink WAN driver. +Normally the SyncLink WAN driver works with the main PPP +driver (ppp.c) and pppd program. HDLC/SYNCPPP support allows use +of the Cisco HDLC/PPP driver (syncppp.c). +The SyncLink WAN driver (in character devices) must also be enabled. +. +HDLC 'Generic HDLC driver' text +Say Y to this option if your Linux box contains a WAN card supported +by this driver and you are planning to connect the box to a WAN +( = Wide Area Network). You will need supporting software from +http://hq.pm.waw.pl/hdlc/. +Generic HDLC driver currently supports raw HDLC, Cisco HDLC, Frame +Relay, synchronous Point-to-Point Protocol (PPP) and X.25. + +If unsure, say N here. +. +HDLC_PPP 'Synchronous Point-to-Point Protocol (PPP) support' text +Say Y to this option if you want generic HDLC driver to support +PPP over WAN (Wide Area Network) connections. + +If unsure, say N here. +. +HDLC_X25 'CCITT X.25 over HDLC support' text +Say Y to this option if you want generic HDLC driver to support +X.25 protocol over WAN (Wide Area Network) connections. + +If unsure, say N here. +. +N2 'SDL RISCom/N2 support' text +This driver is for RISCom/N2 single or dual channel ISA cards +made by SDL Communications Inc. If you have such a card, +say Y here and see http://hq.pm.waw.pl/pub/hdlc/ + +Note that N2csu and N2dds cards are not supported by this driver. + +If unsure, say N here. +. +C101 'Moxa C101 support' text +This driver is for C101 SuperSync ISA cards made by Moxa +Technologies Co., Ltd. If you have such a card, +say Y here and see http://hq.pm.waw.pl/pub/hdlc/ + +If unsure, say N here. +. +DLCI 'Frame Relay (DLCI) support' text +This is support for the frame relay protocol; frame relay is a fast +low-cost way to connect to a remote Internet access provider or to +form a private wide area network. The one physical line from your +box to the local "switch" (i.e. the entry point to the frame relay +network, usually at the phone company) can carry several logical +point-to-point connections to other computers connected to the frame +relay network. For a general explanation of the protocol, check out +http://www.frforum.com/ on the WWW. To use frame relay, you need +supporting hardware (called FRAD) and certain programs from the +net-tools package as explained in +Documentation/networking/framerelay.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dlci.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +DLCI_COUNT 'Max open DLCI' text +This is the maximal number of logical point-to-point frame relay +connections (the identifiers of which are called DCLIs) that +the driver can handle. The default is probably fine. +. +DLCI_MAX 'Max DLCI per device' text +You can specify here how many logical point-to-point frame relay +connections (the identifiers of which are called DCLIs) should be +handled by each of your hardware frame relay access devices. Go with +the default. +. +SDLA 'SDLA (Sangoma S502/S508) support' text +Say Y here if you need a driver for the Sangoma S502A, S502E, and +S508 Frame Relay Access Devices. These are multi-protocol cards, but +only frame relay is supported by the driver at this time. Please +read Documentation/framerelay.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sdla.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +WAN_ROUTER_DRIVERS 'WAN router drivers' text +If you have a WAN interface card and you want your Linux box to act +as a WAN router, thereby connecting you Local Area Network to the +outside world over the WAN connection, say Y here and then to the +driver for your card below. In addition, you need to say Y to "Wan +Router". + +You will need the wan-tools package which is available from +ftp://ftp.sangoma.com . Read Documentation/networking/wan-router.txt +for more information. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about WAN router drivers. If unsure, say N. +. +VENDOR_SANGOMA 'Sangoma WANPIPE(tm) multiprotocol cards' text + +WANPIPE from Sangoma Technologies Inc. (http://www.sangoma.com) +is a family of intelligent multiprotocol WAN adapters with data +transfer rates up to 4Mbps. They are also known as Synchronous +Data Link Adapters (SDLA) and are designated as S514-PCI or S508-ISA. +These cards support + + - X.25, Frame Relay, PPP, Cisco HDLC protocols. + + - API support for protocols like HDLC (LAPB), + HDLC Streaming, X.25, Frame Relay and BiSync. + + - Ethernet Bridging over Frame Relay protocol. + + - MULTILINK PPP + + - Async PPP (Modem Dialup) + +If you have one or more of these cards, say M to this option; you +may then also want to read the file +Documentation/networking/wanpipe.txt. The next questions will ask +you about the protocols you want the driver to support. + +The driver will be compiled as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called wanpipe.o. For general information about +modules read Documentation/modules.txt. +. +WANPIPE_X25 'WANPIPE X.25 support' text +Say Y to this option if you are planning to connect a WANPIPE card +to an X.25 network. Note, this feature also includes the X.25 API +support used to develope custom applications over the X.25 protocol. +If you say N, the X.25 support will not be included in the driver. +The X.25 option is supported on S514-PCI and S508-ISA cards. +. +WANPIPE_CHDLC 'WANPIPE Cisco HDLC support' text +Say Y to this option if you are planning to connect a WANPIPE card +to a leased line using the Cisco HDLC protocol. This now supports +Dual Port Cisco HDLC on the S514-PCI/S508-ISA cards. +This support also allows user to build applications using the +HDLC streaming API. + +CHDLC Streaming driver also supports MULTILINK PPP +support that can bind multiple WANPIPE T1 cards into +a single logical channel. + +If you say N, the Cisco HDLC support and +HDLC streaming API and MULTILINK PPP will not be +included in the driver. +. +WANPIPE_FR 'WANPIPE Frame Relay support' text +Say Y to this option if you are planning to connect a WANPIPE card +to a frame relay network, or use frame relay API to develope +custom applications over the Frame Relay protocol. +This feature also contains the Ethernet Bridging over Frame Relay, +where a WANPIPE frame relay link can be directly connected to the Linux +kernel bridge. If you say N, the frame relay support will +not be included in the driver. The Frame Relay option is +supported on S514-PCI and S508-ISA cards. +. +WANPIPE_PPP 'WANPIPE PPP support' text +Say Y to this option if you are planning to connect a WANPIPE card +to a leased line using Point-to-Point protocol (PPP). If you say N, +the PPP support will not be included in the driver. The PPP option +is supported on S514-PCI/S508-ISA cards. +. +WANPIPE_MULTPPP 'WANPIPE Multi-Port PPP support' text +Say Y to this option if you are planning to connect a WANPIPE card +to a leased line using Point-to-Point protocol (PPP). Note, the +MultiPort PPP uses the Linux Kernel SyncPPP protocol over the Sangoma +HDLC Streaming adapter. In this case each Sangoma adapter port +can support an independent PPP connection. For example, a single +Quad-Port PCI adapter can support up to four independent +PPP links. If you say N,the PPP support will not be included +in the driver. The PPP option is supported on S514-PCI/S508-ISA cards. +. +CYCLADES_SYNC 'Cyclom 2X(tm) multiprotocol cards' text +Cyclom 2X from Cyclades Corporation (http://www.cyclades.com and +http://www.cyclades.com.br) is an intelligent multiprotocol WAN +adapter with data transfer rates up to 512 Kbps. These cards support +the X.25 and SNA related protocols. If you have one or more of these +cards, say Y to this option. The next questions will ask you about +the protocols you want the driver to support (for now only X.25 is +supported). + +While no documentation is available at this time please grab the +wanconfig tarball in http://www.conectiva.com.br/~acme/cycsyn-devel +(with minor changes to make it compile with the current wanrouter +include files; efforts are being made to use the original package +available at ftp://ftp.sangoma.com ). + +Feel free to contact me or the cycsyn-devel mailing list at +acme@conectiva.com.br and cycsyn-devel@bazar.conectiva.com.br for +additional details, I hope to have documentation available as soon +as possible. (Cyclades Brazil is writing the Documentation). + +The driver will be compiled as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called cyclomx.o. For general information about +modules read Documentation/modules.txt. +. +CYCLOMX_X25 'Cyclom 2X X.25 support' text +Say Y to this option if you are planning to connect a Cyclom 2X card +to an X.25 network. + +If you say N, the X.25 support will not be included in the driver +(saves about 11 KB of kernel memory). +. +# X.25 network drivers +LAPBETHER 'LAPB over Ethernet driver' text +This is a driver for a pseudo device (typically called /dev/lapb0) +which allows you to open an LAPB point-to-point connection to some +other computer on your Ethernet network. In order to do this, you +need to say Y or M to the driver for your Ethernet card as well as +to "LAPB Data Link Driver". + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called lapbether.o. If unsure, say N. +. +X25_ASY 'X.25 async driver' text +This is a driver for sending and receiving X.25 frames over regular +asynchronous serial lines such as telephone lines equipped with +ordinary modems. Experts should note that this driver doesn't +currently comply with the asynchronous HDLS framing protocols in +CCITT recommendation X.25. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called x25_asy.o. If unsure, say N. +. +SBNI 'SBNI12-xx support' text +This is a driver for ISA SBNI12-xx cards which are low cost +alternatives to leased line modems. Say Y if you want to insert +the driver into the kernel or say M to compile it as a module (the +module will be called sbni.o). + +You can find more information and last versions of drivers and +utilities at http://www.granch.ru . If you have any question you +can send email to sbni@granch.ru. + +Say N if unsure. +. +SBNI_MULTILINE 'Multiple line feature support' + +NET_FC 'Fibre Channel driver support' text +Fibre Channel is a high speed serial protocol mainly used to connect +large storage devices to the computer; it is compatible with and +intended to replace SCSI. + +If you intend to use Fibre Channel, you need to have a Fibre channel +adaptor card in your computer; say Y here and to the driver for your +adaptor below. You also should have said Y to "SCSI support" and +"SCSI generic support". +. +IPHASE5526 'Interphase 5526 Tachyon chipset based adaptor support' text +Say Y here if you have a Fibre Channel adaptor of this kind. + +The driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called iph5526.o. For general information about +modules read Documentation/modules.txt. +. +RCPCI 'Red Creek Hardware VPN' text +This is a driver for hardware which provides a Virtual Private +Network (VPN). Say Y if you have it. + +This code is also available as a module called rcpci.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SHAPER 'Traffic Shaper' text +The traffic shaper is a virtual network device that allows you to +limit the rate of outgoing data flow over some other network device. +The traffic that you want to slow down can then be routed through +these virtual devices. See Documentation/networking/shaper.txt for +more information. + +An alternative to this traffic shaper is the experimental +Class-Based Queueing (CBQ) scheduling support which you get if you +say Y to "QoS and/or fair queueing" above. + +To set up and configure shaper devices, you need the shapecfg +program, available from ftp://shadow.cabi.net/pub/Linux in the +shaper package. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called shaper.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +# +# Token Ring driver configuration +TR 'Token Ring driver support' text +Token Ring is IBM's way of communication on a local network; the +rest of the world uses Ethernet. To participate on a Token Ring +network, you need a special Token ring network card. If you are +connected to such a Token Ring network and want to use your Token +Ring card under Linux, say Y here and to the driver for your +particular card below and read the Token-Ring mini-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . Most people can +say N here. +. +IBMTR 'IBM Tropic chipset based adapter support' text +This is support for all IBM Token Ring cards that don't use DMA. If +you have such a beast, say Y and read the Token-Ring mini-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +Warning: this driver will almost definitely fail if more than one +active Token Ring card is present. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ibmtr.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +IBMOL 'IBM Olympic chipset PCI adapter support' text +This is support for all non-Lanstreamer IBM PCI Token Ring Cards. +Specifically this is all IBM PCI, PCI Wake On Lan, PCI II, PCI II +Wake On Lan, and PCI 100/16/4 adapters. + +If you have such an adapter, say Y and read the Token-Ring +mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called olympic.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. + +Also read the file Documentation/networking/olympic.txt or check the +Linux Token Ring Project site for the latest information at +http://www.linuxtr.net . +. +IBMLS 'IBM Lanstreamer chipset PCI adapter support' text +This is support for IBM Lanstreamer PCI Token Ring Cards. + +If you have such an adapter, say Y and read the Token-Ring +mini-HOWTO available via FTP (user:anonymous) from +ftp://metalab.unc/edu/pub/Linux/docs/HOWTO. + +This driver is also available as a modules ( = code which can be +inserted in and removed from the running kernel whenever you want). +The modules will be called lanstreamer.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +TMS380TR 'Generic TMS380 Token Ring ISA/PCI/MCA/EISA adapter support' +text +This driver provides generic support for token ring adapters +based on the Texas Instruments TMS380 series chipsets. This +includes the SysKonnect TR4/16(+) ISA (SK-4190), SysKonnect +TR4/16(+) PCI (SK-4590), SysKonnect TR4/16 PCI (SK-4591), +Compaq 4/16 PCI, Thomas-Conrad TC4048 4/16 PCI, and several +Madge adapters. If you say Y here, you will be asked to select +which cards to support below. If you're using modules, each +class of card will be supported by a separate module. + +If you have such an adapter and would like to use it, say Y and +read the Token-Ring mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Also read the file Documentation/networking/tms380tr.txt or +check http://www.auk.cx/tms380tr/ . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called tms380tr.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +TMSPCI 'Generic TMS380 PCI support' text +This tms380 module supports generic TMS380-based PCI cards. + +These cards are known to work: + - Compaq 4/16 TR PCI + - SysKonnect TR4/16 PCI (SK-4590/SK-4591) + - Thomas-Conrad TC4048 PCI 4/16 + - 3Com Token Link Velocity + +This driver is available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called tmspci.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +TMSISA 'Generic TMS380 ISA support' + +ABYSS 'Madge Smart 16/4 PCI Mk2 support' text +This tms380 module supports the Madge Smart 16/4 PCI Mk2 +cards (51-02). + +This driver is available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called abyss.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +MADGEMC 'Madge Smart 16/4 Ringnode MicroChannel' text +This tms380 module supports the Madge Smart 16/4 MC16 and MC32 +MicroChannel adapters. + +This driver is available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called madgemc.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +SMCTR 'SMC ISA/MCA Token Ring adapter support' text +This is support for the ISA and MCA SMC Token Ring cards, +specifically SMC TokenCard Elite (8115T) and SMC TokenCard Elite/A +(8115T/A) adapters. + +If you have such an adapter and would like to use it, say Y or M and +read the Token-Ring mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto and the file +Documentation/networking/smctr.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called smctr.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +MKISS 'Serial port KISS driver for AX.25' text +KISS is a protocol used for the exchange of data between a computer +and a Terminal Node Controller (a small embedded system commonly +used for networking over AX.25 amateur radio connections; it +connects the computer's serial port with the radio's microphone +input and speaker output). + +Although KISS is less advanced than the 6pack protocol, it has +the advantage that it is already supported by most modern TNCs +without the need for a firmware upgrade. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called mkiss.o. +. +CONFIG_6PACK 'Serial port 6PACK driver for AX.25' text +6pack is a transmission protocol for the data exchange between your +PC and your TNC (the Terminal Node Controller acts as a kind of +modem connecting your computer's serial port to your radio's +microphone input and speaker output). This protocol can be used as +an alternative to KISS for networking over AX.25 amateur radio +connections, but it has some extended functionality. + +Note that this driver is still experimental and might cause +problems. For details about the features and the usage of the +driver, read Documentation/networking/6pack.txt. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called 6pack.o. +. +BPQETHER 'BPQ Ethernet driver' text +AX.25 is the protocol used for computer communication over amateur +radio. If you say Y here, you will be able to send and receive AX.25 +traffic over Ethernet (also called "BPQ AX.25"), which could be +useful if some other computer on your local network has a direct +amateur radio connection. +. +DMASCC 'High-speed (DMA) SCC driver for AX.25' text +This is a driver for high-speed SCC boards, i.e. those supporting +DMA on one port. You usually use those boards to connect your +computer to an amateur radio modem (such as the WA4DSY 56kbps +modem), in order to send and receive AX.25 packet radio network +traffic. + +Currently, this driver supports Ottawa PI/PI2, Paccomm/Gracilis +PackeTwin, and S5SCC/DMA boards. They are detected automatically. +If you have one of these cards, say Y here and read the AX25-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +This driver can operate multiple boards simultaneously. If you +compile it as a module (by saying M instead of Y), it will be called +dmascc.o. If you don't pass any parameter to the driver, all +possible I/O addresses are probed. This could irritate other devices +that are currently not in use. You may specify the list of addresses +to be probed by "dmascc=addr1,addr2,..." (when compiled into the +kernel image) or "io=addr1,addr2,..." (when loaded as a module). The +network interfaces will be called dmascc0 and dmascc1 for the board +detected first, dmascc2 and dmascc3 for the second one, and so on. + +Before you configure each interface with ifconfig, you MUST set +certain parameters, such as channel access timing, clock mode, and +DMA channel. This is accomplished with a small utility program, +dmascc_cfg, available at +http://www.nt.tuwien.ac.at/~kkudielk/Linux/ . Please be sure to get +at least version 1.27 of dmascc_cfg, as older versions will not +work with the current driver. +. +SCC 'Z8530 SCC driver for AX.25' text +These cards are used to connect your Linux box to an amateur radio +in order to communicate with other computers. If you want to use +this, read Documentation/networking/z8530drv.txt and the AX25-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . Also +make sure to say Y to "Amateur Radio AX.25 Level 2" support. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called scc.o. +. +SCC_DELAY 'Additional delay for PA0HZP OptoSCC compatible boards' text +Say Y here if you experience problems with the SCC driver not +working properly; please read Documentation/networking/z8530drv.txt +for details. If unsure, say N. +. +SCC_TRXECHO 'Support for TRX that feedback the tx signal to rx' + +BAYCOM_SER_FDX 'BAYCOM ser12 full-duplex driver for AX.25' text +This is one of two drivers for Baycom style simple amateur radio +modems that connect to a serial interface. The driver supports the +ser12 design in full duplex mode. In addition, it allows the +baudrate to be set between 300 and 4800 baud (however not all modems +support all baudrates). This is the preferred driver. The next +driver, "BAYCOM ser12 half duplex driver for AX.25" is the old +driver and still provided in case this driver does not work with +your serial interface chip. To configure the driver, use the sethdlc +utility available in the standard ax25 utilities package. For +information on the modems, see http://www.baycom.de and +Documentation/networking/baycom.txt. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called baycom_ser_fdx.o. +. +BAYCOM_SER_HDX 'BAYCOM ser12 half-duplex driver for AX.25' text +This is one of two drivers for Baycom style simple amateur radio +modems that connect to a serial interface. The driver supports the +ser12 design in full duplex mode. This is the old driver. It is +still provided in case your serial interface chip does not work with +the full duplex driver. This driver is depreciated. To configure the +driver, use the sethdlc utility available in the standard ax25 +utilities package. For information on the modems, see +http://www.baycom.de and Documentation/networking/baycom.txt. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called baycom_ser_hdx.o. +. +BAYCOM_PAR 'BAYCOM picpar and par96 driver for AX.25' text +This is a driver for Baycom style simple amateur radio modems that +connect to a parallel interface. The driver supports the picpar and +par96 designs. To configure the driver, use the sethdlc utility +available in the standard ax25 utilities package. For information on +the modems, see http://www.baycom.de and the file +Documentation/networking/baycom.txt. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called baycom_par.o. +. +BAYCOM_EPP 'BAYCOM EPP driver for AX.25' text +This is a driver for Baycom style simple amateur radio modems that +connect to a parallel interface. The driver supports the EPP +designs. To configure the driver, use the sethdlc utility available +in the standard ax25 utilities package. For information on the +modems, see http://www.baycom.de and the file +Documentation/networking/baycom.txt. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called baycom_par.o. +. +SOUNDMODEM 'Sound card modem driver for AX.25' text +This experimental driver allows a standard Sound Blaster or +WindowsSoundSystem compatible sound card to be used as a packet +radio modem (NOT as a telephone modem!), to send digital traffic +over amateur radio. + +To configure the driver, use the sethdlc, smdiag and smmixer +utilities available in the standard ax25 utilities package. For +information on how to key the transmitter, see +http://www.ife.ee.ethz.ch/~sailer/pcf/ptt_circ/ptt.html and +Documentation/networking/soundmodem.txt. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. This is recommended. +The module will be called soundmodem.o. +. +SOUNDMODEM_SBC 'Sound card modem support for Sound Blaster and compatible cards' +text +This option enables the soundmodem driver to use Sound Blaster and +compatible cards. If you have a dual mode card (i.e. a WSS cards +with a Sound Blaster emulation) you should say N here and Y to +"Sound card modem support for WSS and Crystal cards", below, because +this usually results in better performance. This option also +supports SB16/32/64 in full duplex mode. +. +SOUNDMODEM_WSS 'Sound card modem support for WSS and Crystal cards' +text +This option enables the soundmodem driver to use WindowsSoundSystem +compatible cards. These cards feature a codec chip from either +Analog Devices (such as AD1848, AD1845, AD1812) or Crystal +Semiconductors (such as CS4248, CS423x). This option also supports +the WSS full duplex operation which currently works with Crystal +CS423x chips. If you don't need full duplex operation, do not enable +it to save performance. +. +SOUNDMODEM_AFSK1200 'Sound card modem support for 1200 baud AFSK modulation' +text +This option enables the soundmodem driver 1200 baud AFSK modem, +compatible to popular modems using TCM3105 or AM7911. The +demodulator requires about 12% of the CPU power of a Pentium 75 CPU +per channel. +. +SOUNDMODEM_AFSK2400_7 'Sound card modem support for 2400 baud AFSK modulation (7.3728MHz crystal)' +text +This option enables the soundmodem driver 2400 baud AFSK modem, +compatible to TCM3105 modems (over-)clocked with a 7.3728MHz +crystal. Note that the availability of this driver does _not_ imply +that I recommend building such links. It is only here since users +especially in eastern Europe have asked me to do so. In fact this +modulation scheme has many disadvantages, mainly its incompatibility +with many transceiver designs and the fact that the TCM3105 (if +used) is operated widely outside its specifications. +. +SOUNDMODEM_AFSK2400_8 'Sound card modem support for 2400 baud AFSK modulation (8MHz crystal)' +text +This option enables the soundmodem driver 2400 baud AFSK modem, +compatible to TCM3105 modems (over-)clocked with an 8MHz crystal. +Note that the availability of this driver does _not_ imply that I +recommend building such links. It is only here since users +especially in eastern Europe have asked me to do so. In fact this +modulation scheme has many disadvantages, mainly its incompatibility +with many transceiver designs and the fact that the TCM3105 (if +used) is operated widely outside its specifications. +. +SOUNDMODEM_AFSK2666 'Sound card modem support for 2666 baud AFSK modulation' +text +This option enables the soundmodem driver 2666 baud AFSK modem. +This modem is experimental, and not compatible to anything +else I know of. +. +SOUNDMODEM_HAPN4800 'Sound card modem support for 4800 baud HAPN-1 modulation' +text +This option enables the soundmodem driver 4800 baud HAPN-1 +compatible modem. This modulation seems to be widely used 'down +under' and in the Netherlands. Here, nobody uses it, so I could not +test if it works. It is compatible to itself, however :-) +. +SOUNDMODEM_PSK4800 'Sound card modem support for 4800 baud 8PSK modulation' +text +This option enables the soundmodem driver 4800 baud 8PSK modem. +This modem is experimental, and not compatible to anything +else I know of. +. +SOUNDMODEM_FSK9600 'Sound card modem support for 9600 baud FSK G3RUH modulation' +text +This option enables the soundmodem driver 9600 baud FSK modem, +compatible to the G3RUH standard. The demodulator requires about 4% +of the CPU power of a Pentium 75 CPU per channel. You can say Y to +both 1200 baud AFSK and 9600 baud FSK if you want (but obviously you +can only use one protocol at a time, depending on what the other end +can understand). +. +YAM 'YAM driver for AX.25' text +The YAM is a modem for packet radio which connects to the serial +port and includes some of the functions of a Terminal Node +Controller. If you have one of those, say Y here. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. +. +# +# Arcnet configuration +ARCNET 'Generic ARCnet support' text +If you have a network card of this type, say Y and check out the +(arguably) beautiful poetry in Documentation/networking/arcnet.txt. + +You need both this driver, and the driver for the particular ARCnet +chipset of your card. If you don't know, then it's probably a +COM90xx type card, so say Y (or M) to "ARCnet COM90xx chipset +support" below. + +You might also want to have a look at the Ethernet-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto (even though ARCnet +is not really Ethernet). + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called arcnet.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ARCNET_1201 'Enable standard ARCNet packet format (RFC 1201)' + +ARCNET_1051 'Enable old ARCNet packet format (RFC 1051)' text +This allows you to use RFC1051 with your ARCnet card via the virtual +arc0s device. You only need arc0s if you want to talk to ARCnet +software complying with the "old" standard, specifically, the DOS +arcnet.com packet driver, Amigas running AmiTCP, and some variants +of NetBSD. You do not need to say Y here to communicate with +industry-standard RFC1201 implementations, like the arcether.com +packet driver or most DOS/Windows ODI drivers. RFC1201 is included +automatically as the arc0 device. Please read the ARCnet +documentation in Documentation/networking/arcnet.txt for more +information about using arc0e and arc0s. +. +ARCNET_RAW 'Enable raw mode packet interface' + +ARCNET_COM90xx 'ARCnet COM90xx (normal) chipset driver' text +This is the chipset driver for the standard COM90xx cards. If you +have always used the old ARCnet driver without knowing what type of +card you had, this is probably the one for you. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called com90xx.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ARCNET_COM90xxIO 'ARCnet COM90xx (IO mapped) chipset driver' text +This is the chipset driver for the COM90xx cards, using them in +IO-mapped mode instead of memory-mapped mode. This is slower than +the normal driver. Only use it if your card doesn't support shared +memory. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called com90io.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +ARCNET_RIM_I 'ARCnet COM90xx (RIM I) chipset driver' text +This is yet another chipset driver for the COM90xx cards, but this +time only using memory-mapped mode, and no IO ports at all. This +driver is completely untested, so if you have one of these cards, +please mail dwmw2@infradead.org, especially if it works! + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module will be called arc-rimi.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt as +well as Documentation/networking/net-modules.txt. +. +ARCNET_COM20020 'ARCnet COM20020 chipset driver' text +This is the driver for the new COM20020 chipset. It supports such +things as promiscuous mode, so packet sniffing is possible, and +extra diagnostic information. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called com20020.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt as well as +Documentation/networking/net-modules.txt. +. +#ARCNET_COM20020_ISA 'Support for COM20020 on ISA' +#ARCNET_COM20020_PCI 'Support for COM20020 on PCI' +# IRDA support +IRTTY_SIR 'IrTTY IrDA Device Driver' text +Say Y here if you want to build support for the IrTTY line +discipline. If you want to compile it as a module (irtty.o), say M +here and read Documentation/modules.txt. IrTTY makes it possible to +use Linux's own serial driver for all IrDA ports that are 16550 +compatible. Most IrDA chips are 16550 compatible so you should +probably say Y to this option. Using IrTTY will however limit the +speed of the connection to 115200 bps (IrDA SIR mode) + +If unsure, say Y. +. +IRPORT_SIR 'IrPORT IrDA serial driver' text +Say Y here if you want to build support for the IrPORT IrDA device +driver. If you want to compile it as a module (irport.o), say M here +and read Documentation/modules.txt. IrPORT can be used instead of +IrTTY and sometimes this can be better. One example is if your IrDA +port does not have echo-canceling, which will work OK with IrPORT +since this driver is working in half-duplex mode only. You don't +need to use irattach with IrPORT, but you just insert it the same +way as FIR drivers (insmod irport io=0x3e8 irq=11). Notice that +IrPORT is a SIR device driver which means that speed is limited to +115200 bps. + +If unsure, say Y. +. +USB_IRDA 'USB IrDA FIR dongle Device Driver' + +NSC_FIR 'NSC PC87108/PC87338 IrDA Device Driver' text +Say Y here if you want to build support for the NSC PC87108 and +PC87338 IrDA chipsets. This driver supports SIR, +MIR and FIR (4Mbps) speeds. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. The module will be called nsc-ircc.o. +. +WINBOND_FIR 'Winbond W83977AF IrDA Device Driver' text +Say Y here if you want to build IrDA support for the Winbond +W83977AF super-io chipset. This driver should be used for the IrDA +chipset in the Corel NetWinder. The driver supports SIR, MIR and FIR +(4Mbps) speeds. + +If you want to compile it as a module, say M here and read +Documentation/modules.txt. The module will be called w83977af_ir.o. +. +TOSHIBA_FIR 'Toshiba Type-O IR Port device driver' text +Say Y here if you want to build support for the Toshiba Type-O IR +chipset. This chipset is used by the Toshiba Libretto 100CT, and +many more laptops. If you want to compile it as a module, say M here +and read Documentation/modules.txt. The module will be called +toshoboe.o. +. +SMC_IRCC_FIR 'SMC IrCC' text +Say Y here if you want to build support for the SMC Infrared +Communications Controller. It is used in the Fujitsu Lifebook 635t +and Sony PCG-505TX. If you want to compile it as a module, say M +here and read Documentation/modules.txt. The module will be called +smc-ircc.o. +. +ALI_FIR 'ALi M5123 FIR' + +VLSI_FIR 'VLSI 82C147 SIR/MIR/FIR' text +Say Y here if you want to build support for the VLSI 82C147 +PCI-IrDA Controller. This controller is used by the HP OmniBook 800 +and 5500 notebooks. The driver provides support for SIR, MIR and +FIR (4Mbps) speeds. + +If you want to compile it as a module, say M here and read +. The module will be called vlsi_ir.o. +. +# Dongles +DONGLE 'Serial dongle support' text +Say Y here if you have an infrared device that connects to your +computer's serial port. These devices are called dongles. Then say Y +or M to the driver for your particular dongle below. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about serial dongles. +. +ESI_DONGLE 'ESI JetEye PC dongle' text +Say Y here if you want to build support for the Extended Systems +JetEye PC dongle. If you want to compile it as a module, say M here +and read Documentation/modules.txt. The ESI dongle attaches to the +normal 9-pin serial port connector, and can currently only be used +by IrTTY. To activate support for ESI dongles you will have to +start irattach like this: "irattach -d esi". +. +ACTISYS_DONGLE 'ACTiSYS IR-220L and IR220L+ dongle' text +Say Y here if you want to build support for the ACTiSYS +IR-220L and IR220L+ dongles. If you want to compile it as a module, +say M here and read Documentation/modules.txt. The ACTiSYS dongles +attaches to the normal 9-pin serial port connector, and can +currently only be used by IrTTY. To activate support for ACTiSYS +dongles you will have to start irattach like this: +"irattach -d actisys" or "irattach -d actisys+". +. +TEKRAM_DONGLE 'Tekram IrMate 210B dongle' text +Say Y here if you want to build support for the Tekram IrMate 210B +dongle. If you want to compile it as a module, say M here +and read Documentation/modules.txt. The Tekram dongle attaches to +the normal 9-pin serial port connector, and can currently only be +used by IrTTY. To activate support for Tekram dongles you will have +to start irattach like this: "irattach -d tekram". +. +GIRBIL_DONGLE 'Greenwich GIrBIL dongle' text +Say Y here if you want to build support for the Greenwich GIrBIL +dongle. If you want to compile it as a module, say M here and read +Documentation/modules.txt. The Greenwich dongle attaches to the +normal 9-pin serial port connector, and can currently only be used +by IrTTY. To activate support for Greenwich dongles you will have to +insert "irattach -d girbil" in the /etc/irda/drivers script. +. +LITELINK_DONGLE 'Parallax LiteLink dongle' text +Say Y here if you want to build support for the Parallax Litelink +dongle. If you want to compile it as a module, say M here and read +Documentation/modules.txt. The Parallax dongle attaches to the +normal 9-pin serial port connector, and can currently only be used +by IrTTY. To activate support for Parallax dongles you will have to +start irattach like this "irattach -d litelink". +. +OLD_BELKIN_DONGLE 'Old Belkin dongle' text +Say Y here if you want to build support for the Adaptec Airport 1000 +and 2000 dongles. If you want to compile it as a module, say M here +and read Documentation/modules.txt. The module will be called +old_belkin.o. Some information is contained in the comments at the +top of drivers/net/irda/old_belkin.c. +. +EP7211_IR 'EP7211 I/R support' + +SA1100_FIR 'SA1100 Internal IR' + +# Miscellaneous character devices +MWAVE 'ACP Modem (Mwave) support' text +The ACP modem (Mwave) for Linux is a WinModem. It is composed of a +kernel driver and a user level application. Together these components +support direct attachment to public switched telephone networks (PSTNs) +and support selected world wide countries. + +This version of the ACP Modem driver supports the IBM Thinkpad 600E, +600, and 770 that include on board ACP modem hardware. + +The modem also supports the standard communications port interface +(ttySx) and is compatible with the Hayes AT Command Set. + +The user level application needed to use this driver can be found at +the IBM Linux Technology Center (LTC) web site: +http://www.ibm.com/linux/ltc/ + +If you own one of the above IBM Thinkpads which has the Mwave chipset +in it, say Y. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called mwave.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +# +# PCMCIA Network device configuration +NET_PCMCIA 'PCMCIA network device support' text +Say Y if you would like to include support for any PCMCIA or CardBus +network adapters, then say Y to the driver for your particular card +below. PCMCIA- or PC-cards are credit-card size devices often used +with laptops computers; CardBus is the newer and faster version of +PCMCIA. + +To use your PC-cards, you will need supporting software from David +Hinds' pcmcia-cs package (see the file Documentation/Changes for +location). You also want to check out the PCMCIA-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . + +If unsure, say N. +. +PCMCIA_3C589 '3Com 3c589 PCMCIA support' text +Say Y here if you intend to attach a 3Com 3c589 or compatible PCMCIA +(PC-card) Ethernet card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 3c589_cs.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_3C574 '3Com 3c574 PCMCIA support' text +Say Y here if you intend to attach a 3Com 3c574 or compatible PCMCIA +(PC-card) Fast Ethernet card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 3c574_cs.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_FMVJ18X 'Fujitsu FMV-J18x PCMCIA support' text +Say Y here if you intend to attach a Fujitsu FMV-J18x or compatible +PCMCIA (PC-card) Ethernet card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called fmvj18x_cs.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_PCNET 'NE2000 compatible PCMCIA support' text +Say Y here if you intend to attach an NE2000 compatible PCMCIA +(PC-card) Ethernet or Fast Ethernet card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called pcnet_cs.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_NMCLAN 'New Media PCMCIA support' text +Say Y here if you intend to attach a New Media Ethernet or LiveWire +PCMCIA (PC-card) Ethernet card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called nmclan_cs.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_SMC91C92 'SMC 91Cxx PCMCIA support' text +Say Y here if you intend to attach an SMC 91Cxx compatible PCMCIA +(PC-card) Ethernet or Fast Ethernet card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called smc91c92_cs.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. If +unsure, say N. +. +PCMCIA_XIRC2PS 'Xircom 16-bit PCMCIA support' text +Say Y here if you intend to attach a Xircom 16-bit PCMCIA +(PC-card) Ethernet or Fast Ethernet card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called xirc2ps_cs.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_AXNET 'Broken NS8390-cards support' + +ARCNET_COM20020_CS 'COM20020 ARCnet PCMCIA support' text +Say Y here if you intend to attach this type of ARCnet PCMCIA card +to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called com20020_cs.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. If +unsure, say N. +. +PCMCIA_IBMTR 'IBM PCMCIA Token Ring adapter support' text +Say Y here if you intend to attach this type of Token Ring PCMCIA +card to your computer. You then also need to say Y to "Token Ring +driver support". + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ibmtr_cs.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +PCMCIA_XIRTULIP 'Xircom Tulip-like CardBus support (old driver)' text +This driver is for the Digital "Tulip" Ethernet CardBus adapters. +It should work with most DEC 21*4*-based chips/ethercards, as well +as with work-alike chips from Lite-On (PNIC) and Macronix (MXIC) and +ASIX. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called xircom_tulip_cb.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. If +unsure, say N. +. +PCMCIA_XIRCOM 'Xircom CardBus support (new driver)' + +NET_PCMCIA_RADIO 'PCMCIA Wireless LAN' text +Say Y here if you would like to use a PCMCIA (PC-card) device to +connect to a wireless local area network. Then say Y to the driver +for your particular card below. + +To use your PC-cards, you will need supporting software from David +Hinds' pcmcia-cs package (see the file Documentation/Changes for +location). You also want to check out the PCMCIA-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . +. +PCMCIA_RAYCS 'Aviator/Raytheon 2.4MHz wireless support' text +Say Y here if you intend to attach an Aviator/Raytheon PCMCIA +(PC-card) wireless Ethernet networking card to your computer. +Please read the file Documentation/networking/ray_cs.txt for +details. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ray_cs.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_HERMES 'Hermes support (Orinoco/WavelanIEEE/PrismII/Symbol 802.11b cards)' +text +A driver for "Hermes" chipset based PCMCIA wireless adaptors, such +as the Lucent WavelanIEEE/Orinoco cards and their OEM (Cabletron/ +EnteraSys RoamAbout 802.11, ELSA Airlancer, Melco Buffalo and others). +It should also be usable on various Prism II based cards such as the +Linksys, D-Link and Farallon Skyline. It should also work on Symbol +cards such as the 3Com AirConnect and Ericsson WLAN. + +To use your PC-cards, you will need supporting software from David +Hinds' pcmcia-cs package (see the file Documentation/Changes for +location). You also want to check out the PCMCIA-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . + +You will also very likely also need the Wireless Tools in order to +configure your card and that /etc/pcmcia/wireless.opts works : + http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html +. +PCMCIA_NETWAVE 'Xircom Netwave AirSurfer wireless support' text +Say Y here if you intend to attach this type of PCMCIA (PC-card) +wireless Ethernet networking card to your computer. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called netwave_cs.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +PCMCIA_WAVELAN 'AT&T/Lucent Wavelan wireless support' text +Say Y here if you intend to attach an AT&T/Lucent Wavelan PCMCIA +(PC-card) wireless Ethernet networking card to your computer. This +driver is for the non-IEEE-802.11 Wavelan cards. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called wavelan_cs.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +AIRONET4500_CS 'Aironet 4500/4800 PCMCIA support' text +Say Y here if you have a PCMCIA Aironet 4500/4800 card which you +want to use with the standard PCMCIA cardservices provided by the +pcmcia-cs package. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called aironet4500_cs.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. +. +# +# AppleTalk driver configuration +LTPC 'Apple/Farallon LocalTalk PC card support' text +This allows you to use the AppleTalk PC card to connect to LocalTalk +networks. The card is also known as the Farallon PhoneNet PC card. +If you are in doubt, this card is the one with the 65C02 chip on it. +You also need version 1.3.3 or later of the netatalk package. +This driver is experimental, which means that it may not work. +See the file Documentation/networking/ltpc.txt. +. +COPS 'COPS LocalTalk PC card support' text +This allows you to use COPS AppleTalk cards to connect to LocalTalk +networks. You also need version 1.3.3 or later of the netatalk +package. This driver is experimental, which means that it may not +work. This driver will only work if you choose "AppleTalk DDP" +networking support, above. +Please read the file Documentation/networking/cops.txt. +. +COPS_DAYNA 'Dayna firmware support' text +Support COPS compatible cards with Dayna style firmware (Dayna +DL2000/ Daynatalk/PC (half length), COPS LT-95, Farallon PhoneNET PC +III, Farallon PhoneNET PC II). +. +COPS_TANGENT 'Tangent firmware support' text +Support COPS compatible cards with Tangent style firmware (Tangent +ATB_II, Novell NL-1000, Daystar Digital LT-200. +. +IPDDP 'AppleTalk-IP driver support' text +This allows IP networking for users who only have AppleTalk +networking available. This feature is experimental. With this +driver, you can encapsulate IP inside AppleTalk (e.g. if your Linux +box is stuck on an AppleTalk only network) or decapsulate (e.g. if +you want your Linux box to act as an Internet gateway for a zoo of +AppleTalk connected Macs). Please see the file +Documentation/networking/ipddp.txt for more information. + +If you say Y here, the AppleTalk-IP support will be compiled into +the kernel. In this case, you can either use encapsulation or +decapsulation, but not both. With the following two questions, you +decide which one you want. + +If you say M here, the AppleTalk-IP support will be compiled as a +module ( = code which can be inserted in and removed from the +running kernel whenever you want, read Documentation/modules.txt). +The module is called ipddp.o. In this case, you will be able to use +both encapsulation and decapsulation simultaneously, by loading two +copies of the module and specifying different values for the module +option ipddp_mode. +. +IPDDP_ENCAP 'IP to AppleTalk-IP Encapsulation support' text +If you say Y here, the AppleTalk-IP code will be able to encapsulate +IP packets inside AppleTalk frames; this is useful if your Linux box +is stuck on an AppleTalk network (which hopefully contains a +decapsulator somewhere). Please see +Documentation/networking/ipddp.txt for more information. If you said +Y to "AppleTalk-IP driver support" above and you say Y here, then +you cannot say Y to "AppleTalk-IP to IP Decapsulation support", +below. +. +IPDDP_DECAP 'AppleTalk-IP to IP Decapsulation support' text +If you say Y here, the AppleTalk-IP code will be able to decapsulate +AppleTalk-IP frames to IP packets; this is useful if you want your +Linux box to act as an Internet gateway for an AppleTalk network. +Please see Documentation/networking/ipddp.txt for more information. +If you said Y to "AppleTalk-IP driver support" above and you say Y +here, then you cannot say Y to "IP to AppleTalk-IP Encapsulation +support", above. +. +# +# Floppy drives +BLK_DEV_FD 'Normal floppy disk support' text +If you want to use the floppy disk drive(s) of your PC under Linux, +say Y. Information about this driver, especially important for IBM +Thinkpad users, is contained in Documentation/floppy.txt. That file +also contains the location of the Floppy driver FAQ as well as +location of the fdutils package used to configure additional +parameters of the driver at run time. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called floppy.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +#AMIGA_FLOPPY 'Amiga floppy support' +#ATARI_FLOPPY 'Atari floppy support' +BLK_DEV_SWIM_IOP 'Macintosh IIfx/Quadra 900/Quadra 950 floppy support' + +BLK_DEV_IDE 'Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support' text +If you say Y here, you will use the full-featured IDE driver to +control up to ten ATA/IDE interfaces, each being able to serve a +"master" and a "slave" device, for a total of up to twenty ATA/IDE +disk/cdrom/tape/floppy drives. + +Useful information about large (>540 MB) IDE disks, multiple +interfaces, what to do if ATA/IDE devices are not automatically +detected, sound card ATA/IDE ports, module support, and other +topics, is contained in Documentation/ide.txt. For detailed +information about hard drives, consult the Disk-HOWTO and the +Multi-Disk-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +To fine-tune ATA/IDE drive/interface parameters for improved +performance, look for the hdparm package at +http://www.ibiblio.org/pub/Linux/system/hardware . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt and +Documentation/ide.txt. The module will be called ide-mod.o. Do not +compile this driver as a module if your root file system (the one +containing the directory /) is located on an IDE device. + +If you have one or more IDE drives, say Y or M here. If your system +has no IDE drives, or if memory requirements are really tight, you +could say N here, and select the "Old hard disk driver" below +instead to save about 13 KB of memory in the kernel. +. +# +# Memory Technology Device (MTD) support +MTD 'Memory Technology Device (MTD) support' text +Memory Technology Devices are flash, RAM and similar chips, often +used for solid state filesystems on embedded devices. This option +will provide the generic support for MTD drivers to register +themselves with the kernel and for potential users of MTD devices +to enumerate the devices which are present and obtain a handle on +them. It will also allow you to select individual drivers for +particular hardware and users of MTD devices. If unsure, say N. +. +MTD_DEBUG 'MTD debugging support' text +This turns on low-level debugging for the entire MTD sub-system. +Normally, you should say 'N'. +. +MTD_DEBUG_VERBOSE 'MTD debugging verbosity (0 = quiet, 3 = noisy)' text +Determines the verbosity level of the MTD debugging messages. +. +MTD_PARTITIONS 'MTD partitioning support' text +If you have a device which needs to divide its flash chip(s) up +into multiple 'partitions', each of which appears to the user as +a separate MTD device, you require this option to be enabled. If +unsure, say 'Y'. + +Note, however, that you don't need this option for the DiskOnChip +devices. Partitioning on NFTL 'devices' is a different - that's the +'normal' form of partitioning used on a block device. +. +MTD_REDBOOT_PARTS 'RedBoot partition table parsing' text +RedBoot is a ROM monitor and bootloader which deals with multiple +'images' in flash devices by putting a table in the last erase +block of the device, similar to a partition table, which gives +the offsets, lengths and names of all the images stored in the +flash. + +If you need code which can detect and parse this table, and register +MTD 'partitions' corresponding to each image in the table, enable +this option. + +You will still need the parsing functions to be called by the driver +for your particular device. It won't happen automatically. The +SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for +example. +. +MTD_BOOTLDR_PARTS 'Compaq bootldr partition table parsing' text +The Compaq bootldr deals with multiple 'images' in flash devices +by putting a table in one of the first erase blocks of the device, +similar to a partition table, which gives the offsets, lengths and +names of all the images stored in the flash. + +If you need code which can detect and parse this table, and register +MTD 'partitions' corresponding to each image in the table, enable +this option. + +You will still need the parsing functions to be called by the driver +for your particular device. It won't happen automatically. The +SA1100 map driver (CONFIG_MTD_SA1100) has an option for this, for +example. +. +MTD_AFS_PARTS 'ARM Firmware Suite partition parsing' text +The ARM Firmware Suite allows the user to divide flash devices into +multiple 'images'. Each such image has a header containing its name +and offset/size etc. + +If you need code which can detect and parse these tables, and register +MTD 'partitions' corresponding to each image detected, enable +this option. + +You will still need the parsing functions to be called by the driver +for your particular device. It won't happen automatically. The +'armflash' map driver (CONFIG_MTD_ARMFLASH) does this, for example. +. +MTD_CHAR 'Direct chardevice access to MTD devices' text +This provides a character device for each MTD device present in +the system, allowing the user to read and write directly to the +memory chips, and also use ioctl() to obtain information about +the device, or to erase parts of it. +. +MTD_BLOCK 'Caching block device access to MTD devices' text +Although most flash chips have an erase size too large to be useful +as block devices, it is possible to use MTD devices which are based +on RAM chips in this manner. This block device is a user of MTD devices +performing that function. + +At the moment, it is also required for the Journalling Flash File +System(s) to obtain a handle on the MTD device when it's mounted +(although JFFS and JFFS2 don't actually use any of the functionality +of the mtdblock device). + +Later, it may be extended to perform read/erase/modify/write cycles +on flash chips to emulate a smaller block size. Needless to say, +this is very unsafe, but could be useful for filesystems which are +almost never written to. + +You do not need this option for use with the DiskOnChip devices. For +those, enable NFTL support (CONFIG_NFTL) instead. +. +MTD_BLOCK_RO 'Readonly block device access to MTD devices' text +This allows you to mount read-only filesystems (such as cramfs) from +an MTD device, without the overhead (and danger) of the caching +driver. + +You do not need this option for use with the DiskOnChip devices. For +those, enable NFTL support (CONFIG_NFTL) instead. +. +FTL 'FTL (Flash Translation Layer) support' text +This provides support for the original Flash Translation Layer which +is part of the PCMCIA specification. It uses a kind of pseudo- +filesystem on a flash device to emulate a block device with 512-byte +sectors, on top of which you put a 'normal' filesystem. + +You may find that the algorithms used in this code are patented +unless you live in the Free World where software patents aren't +legal - in the USA you are only permitted to use this on PCMCIA +hardware, although under the terms of the GPL you're obviously +permitted to copy, modify and distribute the code as you wish. Just +not use it. +. +NFTL 'NFTL (NAND Flash Translation Layer) support' text +This provides support for the NAND Flash Translation Layer which is +used on M-Systems' DiskOnChip devices. It uses a kind of pseudo- +filesystem on a flash device to emulate a block device with 512-byte +sectors, on top of which you put a 'normal' filesystem. + +You may find that the algorithms used in this code are patented +unless you live in the Free World where software patents aren't +legal - in the USA you are only permitted to use this on DiskOnChip +hardware, although under the terms of the GPL you're obviously +permitted to copy, modify and distribute the code as you wish. Just +not use it. +. +NFTL_RW 'Write support for NFTL' text +If you're lucky, this will actually work. Don't whinge if it doesn't. +Send mail to the MTD mailing list if +you want to help to make it more reliable. +. +MTD_CFI 'Detect flash chips by Common Flash Interface (CFI) probe' +text +The Common Flash Interface specification was developed by Intel, +AMD and other flash manufactures that provides a universal method +for probing the capabilities of flash devices. If you wish to +support any device that is CFI-compliant, you need to enable this +option. Visit (http://www.amd.com/products/nvd/overview/cfi.html) +for more information on CFI. +. +MTD_JEDECPROBE 'Detect non-CFI AMD/JEDEC-compatible flash chips' + +#MTD_CFI_VIRTUAL_ER 'CFI Virtual erase regions' +MTD_CFI_ADV_OPTIONS 'CFI Advanced configuration options' text +If you need to specify a specific endianness for access to flash +chips, or if you wish to reduce the size of the kernel by including +support for only specific arrangements of flash chips, say 'Y'. This +option does not directly affect the code, but will enable other +configuration options which allow you to do so. + +If unsure, say 'N'. +. +MTD_CFI_NOSWAP 'None' text +This option defines the way in which the CPU attempts to arrange +data bits when writing the 'magic' commands to the chips. Saying +'NO', which is the default when CONFIG_MTD_CFI_ADV_OPTIONS isn't +enabled, means that the CPU will not do any swapping; the chips +are expected to be wired to the CPU in 'host-endian' form. +Specific arrangements are possible with the BIG_ENDIAN_BYTE and +LITTLE_ENDIAN_BYTE, if the bytes are reversed. + +If you have a LART, on which the data (and address) lines were +connected in a fashion which ensured that the nets were as short +as possible, resulting in a bit-shuffling which seems utterly +random to the untrained eye, you need the LART_ENDIAN_BYTE option. + +Yes, there really exists something sicker than PDP-endian :) +. +MTD_CFI_BE_BYTE_SWAP 'Big-endian byte' + +MTD_CFI_LE_BYTE_SWAP 'Little-endian byte' + +#MTD_CFI_LART_BIT_SWAP 'LART-endian byte' +MTD_CFI_GEOMETRY 'Specific CFI Flash geometry selection' text +This option does not affect the code directly, but will enable +some other configuration options which would allow you to reduce +the size of the kernel by including support for only certain +arrangements of CFI chips. If unsure, say 'N' and all options +which are supported by the current code will be enabled. +. +MTD_CFI_B1 'Support 8-bit buswidth' text +If you wish to support CFI devices on a physical bus which is +8 bits wide, say 'Y'. +. +MTD_CFI_B2 'Support 16-bit buswidth' text +If you wish to support CFI devices on a physical bus which is +16 bits wide, say 'Y'. +. +MTD_CFI_B4 'Support 32-bit buswidth' text +If you wish to support CFI devices on a physical bus which is +32 bits wide, say 'Y'. +. +MTD_CFI_I1 'Support 1-chip flash interleave' text +If your flash chips are not interleaved - i.e. you only have one +flash chip addressed by each bus cycle, then say 'Y'. +. +MTD_CFI_I2 'Support 2-chip flash interleave' text +If your flash chips are interleaved in pairs - i.e. you have two +flash chips addressed by each bus cycle, then say 'Y'. +. +MTD_CFI_I4 'Support 4-chip flash interleave' text +If your flash chips are interleaved in fours - i.e. you have four +flash chips addressed by each bus cycle, then say 'Y'. +. +MTD_CFI_INTELEXT 'CFI support for Intel/Sharp Extended Command Set chips' +text +The Common Flash Interface defines a number of different command +sets which a CFI-compliant chip may claim to implement. This code +provides support for one of those command sets, used on Intel +StrataFlash and other parts. +. +MTD_CFI_AMDSTD 'CFI support for AMD/Fujitsu Standard Command Set chips' +text +The Common Flash Interface defines a number of different command +sets which a CFI-compliant chip may claim to implement. This code +provides support for one of those command sets, used on chips +chips including the AMD Am29LV320. +. +MTD_SHARP 'pre-CFI Sharp chip support' text +This option enables support for flash chips using Sharp-compatible +commands, including some which are not CFI-compatible and hence +cannot be used with the CONFIG_MTD_CFI_INTELxxx options. +. +MTD_RAM 'Support for RAM chips in bus mapping' text +This option enables basic support for RAM chips accessed through +a bus mapping driver. +. +MTD_ROM 'Support for ROM chips in bus mapping' text +This option enables basic support for ROM chips accessed through +. +MTD_JEDEC 'JEDEC device support' text +Enable older older JEDEC flash interface devices for self programming +flash. It is commonly used in older AMD chips. It is only called +JEDEC because the JEDEC association (http://www.jedec.org/) +distributes the identification codes for the chips. WARNING!!!! This +code does not compile and is incomplete as are the specific JEDEC +devices drivers. +. +MTD_ABSENT 'Support for absent chips in bus mapping' + +MTD_OBSOLETE_CHIPS 'Older (theoretically obsoleted now) drivers for non-CFI chips' + +MTD_AMDSTD 'AMD compatible flash chip support (non-CFI)' text +This option enables support for flash chips using AMD-compatible +commands, including some which are not CFI-compatible and hence +cannot be used with the CONFIG_MTD_CFI_AMDSTD option. + +It also works on AMD compatible chips that do conform to CFI. +. +MTD_PHYSMAP 'Flash chip mapping in physical memory' text +This provides a 'mapping' driver which allows the CFI probe and +command set driver code to communicate with flash chips which +are mapped physically into the CPU's memory. You will need to +configure the physical address and size of the flash chips on +your particular board as well as the bus width. +. +MTD_PHYSMAP_START 'Physical start location of flash chip mapping' text +This is the physical memory location at which the flash chips +are mapped on your particular target board. Refer to the +memory map which should hopefully be in the documentation for +your board. +. +MTD_PHYSMAP_LEN 'Physical length of flash chip mapping' text +This is the total length of the mapping of the flash chips on +your particular board. If there is space, or aliases, in the +physical memory map between the chips, this could be larger +than the total amount of flash present. Refer to the memory +map which should hopefully be in the documentation for your +. +MTD_PHYSMAP_BUSWIDTH 'Buswidth of flash in bytes' text +This is the total width of the data bus of the flash devices +in octets. For example, if you have a data bus width of 32 +bits, you would set the bus width octect value to 4. This is +used internally by the CFI drivers. +. +MTD_SUN_UFLASH 'Flash chip mapping on Sun Microsystems boardsets' text +This provides a 'mapping' driver which supports the way in +which user-programmable flash chips are connected on various +Sun Microsystems boardsets. This driver will require CFI support +in the kernel, so if you did not enable CFI previously, do that now. +. +MTD_NORA 'Flash chip mapping on Nora' text +If you had to ask, you don't have one. Say 'N'. +. +MTD_PNC2000 'Flash chip mapping on Photron PNC-2000' text +PNC-2000 is the name of Network Camera product from PHOTRON +Ltd. in Japan. It uses CFI-compliant flash. +. +MTD_RPXLITE 'Flash chip mapping on RPXlite or CLLF PPC board' text +The RPXLite PowerPC board has CFI-compliant chips mapped in +a strange sparse mapping. This 'mapping' driver supports that +arrangement, allowing the CFI probe and command set driver code +to communicate with the chips on the RPXLite board. More at +(http://www.embeddedplanet.com/rpx_lite_specification_sheet.htm). +. +MTD_SC520CDP 'Flash chip mapping on AMD SC520 CDP board' text +The SC520 CDP board has two banks of CFI-compliant chips and one +Dual-in-line JEDEC chip. This 'mapping' driver supports that +arrangement, implementing three MTD devices. +. +MTD_NETSC520 'CFI Flash device mapped on AMD NetSc520' + +MTD_SBC_GXX 'Flash chip mapping on Arcom Control Systems SBC-MediaGX' + +MTD_ELAN_104NC 'Flash chip mapping on Arcom Control Systems ELAN-104NC' +text +This provides a driver for the on-board flash of the Arcom Control +System's ELAN-104NC development board. By default the flash +is split into 3 partitions which are accessed as separate MTD +devices. This board utilizes Intel StrataFlash. More info at +(http://www.arcomcontrols.com/products/icp/pc104/processors/). +. +MTD_SA1100 'CFI Flash device mapped on StrongARM SA11x0' text +This enables access to the flash chips on most platforms based on the +SA1100 and SA1110, including the Assabet and the Compaq iPAQ. If you +. +MTD_SA1100_BOOTLDR_PARTITIONS 'Support for Compaq bootldr partition tables on SA11x0' + +MTD_DC21285 'Flash chip mapping on Compaq iPAQ/Bitsy' text +This provides a driver for the flash accessed using Intel's +21285 bridge used with Intel's StrongARM processors. More info at +(http://developer.intel.com/design/bridge/quicklist/dsc-21285.htm). +. +MTD_IQ80310 'CFI Flash device mapped on the XScale IQ80310 board' + +MTD_DBOX2 'CFI Flash device mapped on D-Box2' + +MTD_CSTM_MIPS_IXX 'Flash chip mapping on ITE QED-4N-S01B, Globespan IVR or custom board' +text +This provides a mapping driver for the Integrated Tecnology +Express, Inc (ITE) QED-4N-S01B eval board and the Globespan IVR Reference +Board. It provides the necessary addressing, length, buswidth, vpp code +and addition setup of the flash device for these boards. In addition, +this mapping driver can be used for other boards via setting of the +CONFIG_MTD_CSTM_MIPS_IXX_START/LEN/BUSWIDTH parameters. This mapping +will provide one mtd device using one partition. The start address can +be offset from the beginning of flash and the len can be less than the +total flash device size to allow a window into the flash. Both CFI and +JEDEC probes are called. +. +MTD_CSTM_MIPS_IXX_START 'Physical start location of flash chip mapping' +text +This is the physical memory location that the MTD driver will +use for the flash chips on your particular target board. +Refer to the memory map which should hopefully be in the +documentation for your board. +. +MTD_CSTM_MIPS_IXX_LEN 'Physical length of flash chip mapping' text +This is the total length that the MTD driver will use for the +flash chips on your particular board. Refer to the memory +map which should hopefully be in the documentation for your +board. +. +MTD_CSTM_MIPS_IXX_BUSWIDTH 'Buswidth of flash in bytes' text +This is the total bus width of the mapping of the flash chips +on your particular board. +. +MTD_CFI_FLAGADM 'CFI Flash device mapping on the Flaga Digital Module' +text +Mapping for the Flaga digital module. If you don´t have one, ignore this +setting. +. +MTD_OCELOT 'Momenco Ocelot boot flash device' + +MTD_PMC551 'Ramix PMC551 PCI Mezzanine ram card support' text +This provides a MTD device driver for the Ramix PMC551 RAM PCI card +from Ramix Inc. (http://www.ramix.com/products/memory/pmc551.html). +These devices come in memory configurations from 32M - 1G. If you +have one, you probably want to enable this. + +If this driver is compiled as a module you get the ability to select the +size of the aperture window pointing into the devices memory. What this +means is that if you have a 1G card, normally the kernel will use a 1G +memory map as it's view of the device. As a module, you can select a +1M window into the memory and the driver will "slide" the window around +the PMC551's memory. This was particularly useful on the 2.2 kernels +on PPC architectures as there was limited kernel space to deal with. +. +MTD_PMC551_BUGFIX 'PMC551 256M DRAM Bugfix' text +Some of Ramix's PMC551 boards with 256M configurations have invalid column +and row mux values. This option will fix them, but will break other memory +configurations. If unsure say N. +. +MTD_PMC551_DEBUG 'PMC551 Debugging' text +This option makes the PMC551 more verbose during it's operation and is only +really usefull if you are developing on this driver or suspect a possible +hardware or driver bug. If unsure say N. +. +MTD_DOC1000 'M-Systems Disk-On-Chip 1000 support' text +This provides an MTD device driver for the M-Systems DiskOnChip +1000 devices, which are obsolete so you probably want to say 'N'. +. +MTD_DOC2000 'M-Systems Disk-On-Chip 2000 and Millennium support' text +This provides an MTD device driver for the M-Systems DiskOnChip +2000 and Millennium devices. Originally designed for the DiskOnChip +2000, it also now includes support for the DiskOnChip Millennium. +If you have problems with this driver and the DiskOnChip Millennium, +you may wish to try the alternative Millennium driver below. To use +the alternative driver, you will need to undefine DOC_SINGLE_DRIVER +in the drivers/mtd/devices/docprobe.c source code. + +If you use this device, you probably also want to enable the NFTL +'NAND Flash Translation Layer' option below, which is used to emulate +a block device by using a kind of filesystem on the flash chips. +. +MTD_DOC2001 'Alternative Disk-On-Chip Millennium support' text +This provides an alternative MTD device driver for the M-Systems +DiskOnChip Millennium devices. Use this if you have problems with +the combined DiskOnChip 2000 and Millennium driver above. To get +the DiskOnChip probe code to load and use this driver instead of +the other one, you will need to undefine DOC_SINGLE_DRIVER near +the beginning of drivers/mtd/devices/docprobe.c + +If you use this device, you probably also want to enable the NFTL +'NAND Flash Translation Layer' option below, which is used to emulate +a block device by using a kind of filesystem on the flash chips. +. +MTD_DOCPROBE_ADVANCED 'Advanced detection options for DiskOnChip' text +This option allows you to specify nonstandard address at which to +probe for a DiskOnChip, or to change the detection options. You're +unlikely to need any of this unless you're using LinuxBIOS. Say 'N'. +. +MTD_DOCPROBE_ADDRESS 'Physical address of DiskOnChip' text +By default, the probe for DiskOnChip devices will look for a DiskOnChip +at every multiple of 0x2000 between 0xC8000 and 0xEE000. This option +allows you to specify a single address at which to probe for the device, +which is useful if you have other devices in that range which get upset +when they're probed. + +(Note that on PowerPC, the normal probe will only check at 0xE4000000.) + +Normally, you should leave this set to zero, to allow the probe at the +normal addresses. +. +MTD_DOCPROBE_HIGH 'Probe high addresses' text +By default, the probe for DiskOnChip devices will look for a DiskOnChip +at every multiple of 0x2000 between 0xC8000 and 0xEE000. This option +changes to make it probe between 0xFFFC8000 and 0xFFFEE000. Unless +you're using LinuxBIOS, this is unlikely to be useful to you. Say 'N'. +. +MTD_DOCPROBE_55AA 'Probe for 0x55 0xAA BIOS Extension Signature' text +Check for the 0x55 0xAA signature of a DiskOnChip, and do not continue +with probing if it is absent. The signature will always be present for +a DiskOnChip 2000 or a normal DiskOnChip Millennium. Only if you have +overwritten the first block of a DiskOnChip Millennium will it be +absent. Enable this option if you are using LinuxBIOS or if you need +to recover a DiskOnChip Millennium on which you have managed to wipe +the first block. +. +MTD_SLRAM 'Use extra onboard system memory as MTD device' text +If your CPU cannot cache all of the physical memory in your machine, +you can still use it for storage or swap by using this driver to +present it to the system as a Memory Technology Device. +. +MTD_LART '28F160xx flash driver for LART' + +MTD_MTDRAM 'Debugging RAM test driver' text +This enables a test MTD device driver which uses vmalloc() to +provide storage. You probably want to say 'N' unless you're +testing stuff. +. +MTDRAM_TOTAL_SIZE 'MTDRAM device size in KB' text +This allows you to configure the total size of the MTD device +emulated by the MTDRAM driver. If the MTDRAM driver is built +as a module, it is also possible to specify this as a parameter when +loading the module. +. +MTDRAM_ERASE_SIZE 'MTDRAM erase block size in KB' text +This allows you to configure the size of the erase blocks in the +device emulated by the MTDRAM driver. If the MTDRAM driver is built +as a module, it is also possible to specify this as a parameter when +loading the module. +. +MTDRAM_ABS_POS 'SRAM Hexadecimal Absolute position or 0' text +If you have system RAM accessible by the CPU but not used by Linux +in normal operation, you can give the physical address at which the +available RAM starts, and the MTDRAM driver will use it instead of +allocating space from Linux's available memory. Otherwise, leave +this set to zero. Most people will want to leave this as zero. +. +MTD_BLKMTD 'MTD emulation using block device' + +MTD_MIXMEM 'JEDEC Flash device mapped on Mixcom piggyback card' text +This supports the paging arrangement for access to flash chips +on the MixCOM piggyback card, allowing the flash chip drivers +to get on with their job of driving the flash chips without +having to know about the paging. If you have one of these boards, +you probably want to enable this mapping driver. More info is at +(http://www.itc.hu/). +. +MTD_OCTAGON 'JEDEC Flash device mapped on Octagon 5066 SBC' text +This provides a 'mapping' driver which supports the way in which +the flash chips are connected in the Octagon-5066 Single Board +Computer. More information on the board is available at +(http://www.octagonsystems.com/Products/5066/5066.html). +. +MTD_VMAX 'JEDEC Flash device mapped on Tempustech VMAX SBC301' text +This provides a 'mapping' driver which supports the way in which +the flash chips are connected in the Tempustech VMAX SBC301 Single +Board Computer. More information on the board is available at +(http://www.tempustech.com/tt301.htm). +. +MTD_L440GX 'BIOS flash chip on Intel L440GX boards' + +MTD_TQM8XXL 'CFI Flash device mapped on TQM8XXL' + +MTD_SOLUTIONENGINE 'CFI Flash device mapped on Hitachi SolutionEngine' + +MTD_ARM_INTEGRATOR 'CFI Flash device mapped on ARM Integrator/P720T' + +MTD_CDB89712 'Cirrus CDB89712 evaluation board mappings' + +MTD_NAND 'Support for NAND flash devices' text +This enables support for accessing all type of NAND flash +devices. +. +MTD_NAND_ECC 'Support for software ECC algorithm' text +This enables software-based ECC for use with NAND flash chips. It +can detect and correct 1 bit errors per 256 byte blocks. This +should be used to increase the reliability of the data stored and +read on the device. +. +MTD_NAND_VERIFY_WRITE 'Support for verify read after write' text +This adds an extra check when data is written to the flash. The +NAND flash device internally checks only bits transitioning +from 1 to 0. There is a rare possibility that even though the +device thinks the write was successful, a bit could have been +flipped accidentaly due to device wear, gamma rays, whatever. +Enable this if you are really paranoid. +. +MTD_NAND_SPIA 'Support for the SPIA board' text +If you had to ask, you don't have one. Say 'N'. +. +# +# Block device driver configuration +BLK_DEV_HD_ONLY 'Old hard disk (MFM/RLL/IDE) driver' text +There are two drivers for MFM/RLL/IDE hard disks. Most people use +the newer enhanced driver, but this old one is still around for two +reasons. Some older systems have strange timing problems and seem to +work only with the old driver (which itself does not work with some +newer systems). The other reason is that the old driver is smaller, +since it lacks the enhanced functionality of the new one. This makes +it a good choice for systems with very tight memory restrictions, or +for systems with only older MFM/RLL/ESDI drives. Choosing the old +driver can save 13 KB or so of kernel memory. + +If you are unsure, then just choose the Enhanced IDE/MFM/RLL driver +instead of this one. For more detailed information, read the +Disk-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . +. +BLK_DEV_HD_IDE 'Use old disk-only driver on primary interface' text +There are two drivers for MFM/RLL/IDE disks. Most people use just +the new enhanced driver by itself. This option however installs the +old hard disk driver to control the primary IDE/disk interface in +the system, leaving the new enhanced IDE driver to take care of only +the 2nd/3rd/4th IDE interfaces. Doing this will prevent you from +having an IDE/ATAPI CDROM or tape drive connected to the primary IDE +interface. Choosing this option may be useful for older systems +which have MFM/RLL/ESDI controller+drives at the primary port +address (0x1f0), along with IDE drives at the secondary/3rd/4th port +addresses. + +Normally, just say N here; you will then use the new driver for all +4 interfaces. +. +BLK_DEV_IDEDISK 'Include IDE/ATA-2 DISK support' text +This will include enhanced support for MFM/RLL/IDE hard disks. If +you have a MFM/RLL/IDE disk, and there is no special reason to use +the old hard disk driver instead, say Y. If you have an SCSI-only +system, you can say N here. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ide-disk.o. Do not compile this driver as a module if your +root file system (the one containing the directory /) is located on +the IDE disk. If unsure, say Y. +. +IDEDISK_MULTI_MODE 'Use multi-mode by default' text +If you get this error, try to say Y here: + +hda: set_multmode: status=0x51 { DriveReady SeekComplete Error } +hda: set_multmode: error=0x04 { DriveStatusError } + +If in doubt, say N. +. +BLK_DEV_IDECS 'PCMCIA IDE support' + +BLK_DEV_IDECD 'Include IDE/ATAPI CD-ROM support' text +If you have a CDROM drive using the ATAPI protocol, say Y. ATAPI is +a newer protocol used by IDE CDROM and TAPE drives, similar to the +SCSI protocol. Most new CDROM drives use ATAPI, including the +NEC-260, Mitsumi FX400, Sony 55E, and just about all non-SCSI +double(2X) or better speed drives. + +If you say Y here, the CDROM drive will be identified at boot time +along with other IDE devices, as "hdb" or "hdc", or something +similar (check the boot messages with dmesg). If this is your only +CDROM drive, you can say N to all other CDROM options, but be sure +to say Y or M to "ISO 9660 CDROM file system support". + +Read the CDROM-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto and the file +Documentation/cdrom/ide-cd. Note that older versions of lilo (the +Linux boot loader) cannot properly deal with IDE/ATAPI CDROMs, so +install lilo-16 or higher, available from +ftp://metalab.unc.edu/pub/Linux/system/boot/lilo . + +If you want to compile the driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ide-cd.o. +. +BLK_DEV_IDETAPE 'Include IDE/ATAPI TAPE support' text +If you have an IDE tape drive using the ATAPI protocol, say Y. +ATAPI is a newer protocol used by IDE tape and CDROM drives, similar +to the SCSI protocol. If you have an SCSI tape drive however, you +can say N here. + +You should also say Y if you have an OnStream DI-30 tape drive; this +will not work with the SCSI protocol, until there is support for the +SC-30 and SC-50 versions. + +If you say Y here, the tape drive will be identified at boot time +along with other IDE devices, as "hdb" or "hdc", or something +similar, and will be mapped to a character device such as "ht0" +(check the boot messages with dmesg). Be sure to consult the +drivers/ide/ide-tape.c and Documentation/ide.txt files for usage +information. + +If you want to compile the driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ide-tape.o. +. +BLK_DEV_IDEFLOPPY 'Include IDE/ATAPI FLOPPY support' text +If you have an IDE floppy drive which uses the ATAPI protocol, +answer Y. ATAPI is a newer protocol used by IDE CDROM/tape/floppy +drives, similar to the SCSI protocol. + +The LS-120 and the IDE/ATAPI Iomega ZIP drive are also supported by +this driver. For information about jumper settings and the question +of when a ZIP drive uses a partition table, see +http://www.win.tue.nl/~aeb/linux/zip/zip-1.html . +(ATAPI PD-CD/CDR drives are not supported by this driver; support +for PD-CD/CDR drives is available if you answer Y to +"SCSI emulation support", below). + +If you say Y here, the FLOPPY drive will be identified along with +other IDE devices, as "hdb" or "hdc", or something similar (check +the boot messages with dmesg). + +If you want to compile the driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ide-floppy.o. +. +BLK_DEV_IDESCSI 'SCSI emulation support' text +This will provide SCSI host adapter emulation for IDE ATAPI devices, +and will allow you to use a SCSI device driver instead of a native +ATAPI driver. + +This is useful if you have an ATAPI device for which no native +driver has been written (for example, an ATAPI PD-CD or CDR drive); +you can then use this emulation together with an appropriate SCSI +device driver. In order to do this, say Y here and to "SCSI support" +and "SCSI generic support", below. You must then provide the kernel +command line "hdx=scsi" (try "man bootparam" or see the +documentation of your boot loader (lilo or loadlin) about how to +pass options to the kernel at boot time) for devices if you want the +native EIDE sub-drivers to skip over the native support, so that +this SCSI emulation can be used instead. This is required for use of +CD-RW's. + +Note that this option does NOT allow you to attach SCSI devices to a +box that doesn't have a SCSI host adapter installed. + +If both this SCSI emulation and native ATAPI support are compiled +into the kernel, the native support will be used. +. +BLK_DEV_CMD640 'CMD640 chipset bugfix/support' text +The CMD-Technologies CMD640 IDE chip is used on many common 486 and +Pentium motherboards, usually in combination with a "Neptune" or +"SiS" chipset. Unfortunately, it has a number of rather nasty +design flaws that can cause severe data corruption under many common +conditions. Say Y here to include code which tries to automatically +detect and correct the problems under Linux. This option also +enables access to the secondary IDE ports in some CMD640 based +systems. + +This driver will work automatically in PCI based systems (most new +systems have PCI slots). But if your system uses VESA local bus +(VLB) instead of PCI, you must also supply a kernel boot parameter +to enable the CMD640 bugfix/support: "ide0=cmd640_vlb". (Try "man +bootparam" or see the documentation of your boot loader about how to +pass options to the kernel.) + +The CMD640 chip is also used on add-in cards by Acculogic, and on +the "CSA-6400E PCI to IDE controller" that some people have. For +details, read Documentation/ide.txt. +. +BLK_DEV_CMD640_ENHANCED 'CMD640 enhanced support' text +This option includes support for setting/autotuning PIO modes and +prefetch on CMD640 IDE interfaces. For details, read +Documentation/ide.txt. If you have a CMD640 IDE interface and your +BIOS does not already do this for you, then say Y here. Otherwise +say N. +. +BLK_DEV_ISAPNP 'ISA-PNP EIDE support' text +If you have an ISA EIDE card that is PnP (Plug and Play) and +requires setup first before scanning for devices, say Y here. + +If unsure, say N. +. +BLK_DEV_RZ1000 'RZ1000 chipset bugfix/support' text +The PC-Technologies RZ1000 IDE chip is used on many common 486 and +Pentium motherboards, usually along with the "Neptune" chipset. +Unfortunately, it has a rather nasty design flaw that can cause +severe data corruption under many conditions. Say Y here to include +code which automatically detects and corrects the problem under +Linux. This may slow disk throughput by a few percent, but at least +things will operate 100% reliably. +. +BLK_DEV_IDEPCI 'Generic PCI IDE chipset support' text +Say Y here for PCI systems which use IDE drive(s). +This option helps the IDE driver to automatically detect and +configure all PCI-based IDE interfaces in your system. +. +IDEPCI_SHARE_IRQ 'Support for sharing PCI IDE interrupts' text +Some ATA/IDE chipsets have hardware support which allows for +sharing a single IRQ with other cards. To enable support for +this in the ATA/IDE driver, say Y here. + +It is safe to say Y to this question, in most cases. +If unsure, say N. +. +BLK_DEV_IDEDMA_PCI 'Generic PCI bus-master DMA support' text +If your PCI system uses IDE drive(s) (as opposed to SCSI, say) and +is capable of bus-master DMA operation (most Pentium PCI systems), +you will want to say Y here to reduce CPU overhead. You can then use +the "hdparm" utility to enable DMA for drives for which it was not +enabled automatically. By default, DMA is not enabled automatically +for these drives, but you can change that by saying Y to the +following question "Use DMA by default when available". You can get +the latest version of the hdparm utility from +ftp://metalab.unc.edu/pub/Linux/system/hardware/ . + +Read the comments at the beginning of drivers/ide/ide-dma.c and +the file Documentation/ide.txt for more information. + +It is safe to say Y to this question. +. +IDEDMA_PCI_AUTO 'Use PCI DMA by default when available' text +Prior to kernel version 2.1.112, Linux used to automatically use +DMA for IDE drives and chipsets which support it. Due to concerns +about a couple of cases where buggy hardware may have caused damage, +the default is now to NOT use DMA automatically. To revert to the +previous behaviour, say Y to this question. + +If you suspect your hardware is at all flakey, say N here. +Do NOT email the IDE kernel people regarding this issue! + +It is normally safe to answer Y to this question unless your +motherboard uses a VIA VP2 chipset, in which case you should say N. +. +IDEDMA_NEW_DRIVE_LISTINGS 'Good-Bad DMA Model-Firmware' text +If you say Y here, the model and firmware revision of your drive +will be compared against a blacklist of buggy drives that claim to +be (U)DMA capable but aren't. This is a blanket on/off test with no +speed limit options. + +Straight GNU GCC 2.7.3/2.8.X compilers are known to be safe; +whereas, many versions of EGCS have a problem and miscompile if you +say Y here. + +If in doubt, say N. +. +IDEDMA_PCI_WIP 'ATA Work(s) In Progress' text +If you enable this you will be able to use and test highly +developmental projects. If you say N, this configure script will +simply skip those options. + +It is SAFEST to say N to this question. +. +BLK_DEV_OFFBOARD 'Boot off-board chipsets first support' text +Normally, IDE controllers built into the motherboard (on-board +controllers) are assigned to ide0 and ide1 while those on add-in PCI +cards (off-board controllers) are relegated to ide2 and ide3. +Answering Y here will allow you to reverse the situation, with +off-board controllers on ide0/1 and on-board controllers on ide2/3. +This can improve the usability of some boot managers such as lilo +when booting from a drive on an off-board controller. + +If you say Y here, and you actually want to reverse the device scan +order as explained above, you also need to issue the kernel command +line option "ide=reverse". (Try "man bootparam" or see the +documentation of your boot loader (lilo or loadlin) about how to +pass options to the kernel at boot time.) + +Note that, if you do this, the order of the hd* devices will be +rearranged which may require modification of fstab and other files. + +If in doubt, say N. +. +BLK_DEV_AEC62XX 'AEC62XX chipset support' text +This driver adds up to 4 more EIDE devices sharing a single +interrupt. This add-on card is a bootable PCI UDMA controller. In +order to get this card to initialize correctly in some cases, you +should say Y here, and preferably also to "Use DMA by default when +available". + +The ATP850U/UF is an UltraDMA 33 chipset base. +The ATP860 is an UltraDMA 66 chipset base. +The ATP860M(acintosh) version is an UltraDMA 66 chipset base. + +Please read the comments at the top of drivers/ide/aec62xx.c +If you say Y here, then say Y to "Use DMA by default when available" as +well. +. +AEC62XX_TUNING 'AEC62XX Tuning support' text +Please read the comments at the top of drivers/ide/aec62xx.c +If unsure, say N. +. +BLK_DEV_ALI15X3 'ALI M15x3 chipset support' text +This driver ensures (U)DMA support for ALI 1533, 1543 and 1543C +onboard chipsets. It also tests for Simplex mode and enables +normal dual channel support. + +If you say Y here, you also need to say Y to "Use DMA by default +when available", above. +Please read the comments at the top of drivers/ide/alim15x3.c + +If unsure, say N. +. +WDC_ALI15X3 'ALI M15x3 WDC support' text +This allows for UltraDMA support for WDC drives that ignore CRC +checking. You are a fool for enabling this option, but there have +been requests. DO NOT COMPLAIN IF YOUR DRIVE HAS FS CORRUPTION, IF +YOU ENABLE THIS! No one will listen, just laugh for ignoring this +SERIOUS WARNING. + +Using this option can allow WDC drives to run at ATA-4/5 transfer +rates with only an ATA-2 support structure. + +SAY NO! +. +BLK_DEV_AMD74XX 'AMD Viper (7401/7409/7411) chipset support' + +AMD74XX_OVERRIDE 'AMD Viper ATA-66 Override support (WIP)' + +BLK_DEV_CMD64X 'CMD64X chipset support' text +Say Y here if you have an IDE controller which uses any of these +chipsets: CMD643, CMD646, or CMD648. +. +BLK_DEV_CY82C693 'CY82C693 chipset support' text +This driver adds detection and support for the CY82C693 chipset +used on Digital's PC-Alpha 164SX boards. + +If you say Y here, you need to say Y to "Use DMA by default +when available" as well. +. +BLK_DEV_CS5530 'Cyrix CS5530 MediaGX chipset support' text +Include support for UDMA on the Cyrix MediaGX 5530 chipset. This +will automatically be detected and configured if found. + +It is safe to say Y to this question. + +People with SCSI-only systems should say N here. If unsure, say Y. +. +BLK_DEV_HPT34X 'HPT34X chipset support' text +This driver adds up to 4 more EIDE devices sharing a single +interrupt. The HPT343 chipset in its current form is a non-bootable +controller; the HPT345/HPT363 chipset is a bootable (needs BIOS FIX) +PCI UDMA controllers. This driver requires dynamic tuning of the +chipset during the ide-probe at boot time. It is reported to support +DVD II drives, by the manufacturer. +. +HPT34X_AUTODMA 'HPT34X AUTODMA support (WIP)' text +This is a dangerous thing to attempt currently! Please read the +comments at the top of drivers/ide/hpt34x.c If you say Y here, +then say Y to "Use DMA by default when available" as well. + +If unsure, say N. +. +BLK_DEV_HPT366 'HPT366 chipset support' text +HPT366 is an Ultra DMA chipset for ATA-66. +HPT368 is an Ultra DMA chipset for ATA-66 RAID Based. +HPT370 is an Ultra DMA chipset for ATA-100. + +This driver adds up to 4 more EIDE devices sharing a single +interrupt. + +The HPT366 chipset in its current form is bootable. One solution +for this problem are special LILO commands for redirecting the +reference to device 0x80. The other solution is to say Y to "Boot +off-board chipsets first support" (CONFIG_BLK_DEV_OFFBOARD) unless +your mother board has the chipset natively mounted. Regardless one +should use the fore mentioned option and call at LILO or include +"ide=reverse" in LILO's append-line. + +This driver requires dynamic tuning of the chipset during the +ide-probe at boot. It is reported to support DVD II drives, by the +manufacturer. +. +#HPT366_FIP 'HPT366 Fast Interrupts (WIP)' +#HPT366_MODE3 'HPT366 mode Three (WIP)' +BLK_DEV_PIIX 'Intel PIIXn chipsets support' text +This driver adds PIO mode setting and tuning for all PIIX IDE +controllers by Intel. Since the BIOS can sometimes improperly tune +PIO 0-4 mode settings, this allows dynamic tuning of the chipset +via the standard end-user tool 'hdparm'. + +Please read the comments at the top of drivers/ide/piix.c. + +If you say Y here, you should also say Y to "PIIXn Tuning support", +below. + +If unsure, say N. +. +PIIX_TUNING 'PIIXn Tuning support' text +This driver extension adds DMA mode setting and tuning for all PIIX +IDE controllers by Intel. Since the BIOS can sometimes improperly +set up the device/adapter combination and speed limits, it has +become a necessity to back/forward speed devices as needed. + +Case 430HX/440FX PIIX3 need speed limits to reduce UDMA to DMA mode +2 if the BIOS can not perform this task at initialization. + +If unsure, say N. +. +BLK_DEV_IT8172 'IT8172 IDE support' + +IT8172_TUNING 'IT8172 IDE Tuning support' + +BLK_DEV_NS87415 'NS87415 chipset support' text +This driver adds detection and support for the NS87415 chip +(used in SPARC64, among others). + +Please read the comments at the top of drivers/ide/ns87415.c. +. +BLK_DEV_OPTI621 'OPTi 82C621 chipset enhanced support' text +This is a driver for the OPTi 82C621 EIDE controller. +Please read the comments at the top of drivers/ide/opti621.c. +. +BLK_DEV_PDC202XX 'PROMISE PDC20246/PDC20262/PDC20265/PDC20267/PDC20268 support' +text +Promise Ultra33 or PDC20246 +Promise Ultra66 or PDC20262 +Promise Ultra100 or PDC20265/PDC20267 + +This driver adds up to 4 more EIDE devices sharing a single +interrupt. This add-on card is a bootable PCI UDMA controller. Since +multiple cards can be installed and there are BIOS ROM problems that +happen if the BIOS revisions of all installed cards (three-max) do +not match, the driver attempts to do dynamic tuning of the chipset +at boot-time for max-speed. Ultra33 BIOS 1.25 or newer is required +for more than one card. This card may require that you say Y to +"Special UDMA Feature (EXPERIMENTAL)". + +If you say Y here, you need to say Y to "Use DMA by default when +available" as well. + +Please read the comments at the top of drivers/ide/pdc202xx.c + +If unsure, say N. +. +PDC202XX_BURST 'Special UDMA Feature' text +For PDC20246, PDC20262, PDC20265 and PDC20267 Ultra DMA chipsets. +Designed originally for PDC20246/Ultra33 that has BIOS setup +failures when using 3 or more cards. + +Unknown for PDC20265/PDC20267 Ultra DMA 100. + +Please read the comments at the top of drivers/ide/pdc202xx.c + +If unsure, say N. +. +PDC202XX_FORCE 'Special FastTrak Feature' + +BLK_DEV_SVWKS 'ServerWorks OSB4/CSB5 chipsets support' + +BLK_DEV_SIS5513 'SiS5513 chipset support' text +This driver ensures (U)DMA support for SIS5513 chipset based +mainboards. SiS620/530 UDMA mode 4, SiS5600/5597 UDMA mode 2, all +other DMA mode 2 limited chipsets are unsupported to date. + +If you say Y here, you need to say Y to "Use DMA by default when +available" as well. + +Please read the comments at the top of drivers/ide/sis5513.c +. +BLK_DEV_SLC90E66 'SLC90E66 chipset support' text +This driver ensures (U)DMA support for Victroy66 SouthBridges for +SMsC with Intel NorthBridges. This is an Ultra66 based chipset. +The nice thing about it is that you can mix Ultra/DMA/PIO devices +and it will handle timing cycles. Since this is an improved look-a-like +to the PIIX4 it should be a nice addition. + +If you say Y here, you need to say Y to "Use DMA by default when +available" as well. + +Please read the comments at the top of drivers/ide/slc90e66.c +. +BLK_DEV_TRM290 'Tekram TRM290 chipset support' text +This driver adds support for bus master DMA transfers +using the Tekram TRM290 PCI IDE chip. Volunteers are +needed for further tweaking and development. +Please read the comments at the top of drivers/ide/trm290.c. +. +BLK_DEV_VIA82CXXX 'VIA82CXXX chipset support' text +This allows you to configure your chipset for a better use while +running (U)DMA: it will allow you to enable efficiently the second +channel dma usage, as it may not be set by BIOS. It allows you to +pass a kernel command line at boot time in order to set fifo +config. If no command line is provided, it will try to set fifo +configuration at its best. It will allow you to get information from +/proc/ide/via provided you enabled "proc" support. + +Please read the comments at the top of drivers/ide/via82cxxx.c + +If you say Y here, then say Y to "Use DMA by default when available" +as well. + +If unsure, say N. +. +BLK_DEV_SL82C105 'Winbond SL82c105 support' text +If you have a Winbond SL82c105 IDE controller, say Y here to enable +special configuration for this chip. This is common on various CHRP +motherboards, but could be used elsewhere. If in doubt, say Y. +. +BLK_DEV_IDE_PMAC 'Builtin PowerMac IDE support' text +This driver provides support for the built-in IDE controller on most +of the recent Apple Power Macintoshes and PowerBooks. +If unsure, say Y. +. +BLK_DEV_IDEDMA_PMAC 'PowerMac IDE DMA support' text +This option allows the driver for the built-in IDE controller on +Power Macintoshes and PowerBooks to use DMA (direct memory access) +to transfer data to and from memory. Saying Y is safe and improves +performance. +. +BLK_DEV_IDEDMA_PMAC_AUTO 'Use DMA by default' text +This option allows the driver for the built-in IDE controller on +Power Macintoshes and PowerBooks to use DMA automatically, without +it having to be explicitly enabled. This option is provided because +of concerns about a couple of cases where using DMA on buggy PC +hardware may have caused damage. Saying Y should be safe on all +Apple machines. +. +BLK_DEV_IDE_ICSIDE 'ICS IDE interface support' text +On Acorn systems, say Y here if you wish to use the ICS IDE +interface card. This is not required for ICS partition support. +If you are unsure, say N to this. +. +BLK_DEV_IDEDMA_ICS 'ICS DMA support' text +Say Y here if you want to add DMA (Direct Memory Access) support to +the ICS IDE driver. +. +IDEDMA_ICS_AUTO 'Use ICS DMA by default' text +Prior to kernel version 2.1.112, Linux used to automatically use +DMA for IDE drives and chipsets which support it. Due to concerns +about a couple of cases where buggy hardware may have caused damage, +the default is now to NOT use DMA automatically. To revert to the +previous behaviour, say Y to this question. + +If you suspect your hardware is at all flakey, say N here. +Do NOT email the IDE kernel people regarding this issue! +. +BLK_DEV_IDE_RAPIDE 'RapIDE interface support' + +IDE_CHIPSETS 'Other IDE chipset support' text +Say Y here if you want to include enhanced support for various IDE +interface chipsets used on motherboards and add-on cards. You can +then pick your particular IDE chip from among the following options. +This enhanced support may be necessary for Linux to be able to +access the 3rd/4th drives in some systems. It may also enable +setting of higher speed I/O rates to improve system performance with +these chipsets. Most of these also require special kernel boot +parameters to actually turn on the support at runtime; you can find +a list of these in the file Documentation/ide.txt. + +People with SCSI-only systems can say N here. +. +BLK_DEV_4DRIVES 'Generic 4 drives/port support' text +Certain older chipsets, including the Tekram 690CD, use a single set +of I/O ports at 0x1f0 to control up to four drives, instead of the +customary two drives per port. Support for this can be enabled at +runtime using the "ide0=four" kernel boot parameter if you say Y +here. +. +BLK_DEV_ALI14XX 'ALI M14xx support' text +This driver is enabled at runtime using the "ide0=ali14xx" kernel +boot parameter. It enables support for the secondary IDE interface +of the ALI M1439/1443/1445/1487/1489 chipsets, and permits faster +I/O speeds to be set as well. See the files Documentation/ide.txt +and drivers/ide/ali14xx.c for more info. +. +BLK_DEV_DTC2278 'DTC-2278 support' text +This driver is enabled at runtime using the "ide0=dtc2278" kernel +boot parameter. It enables support for the secondary IDE interface +of the DTC-2278 card, and permits faster I/O speeds to be set as +well. See the Documentation/ide.txt and drivers/ide/dtc2278.c +files for more info. +. +BLK_DEV_HT6560B 'Holtek HT6560B support' text +This driver is enabled at runtime using the "ide0=ht6560b" kernel +boot parameter. It enables support for the secondary IDE interface +of the Holtek card, and permits faster I/O speeds to be set as well. +See the Documentation/ide.txt and drivers/ide/ht6560b.c files for +more info. +. +BLK_DEV_PDC4030 'PROMISE DC4030 support' text +This driver provides support for the secondary IDE interface and +cache of Promise IDE chipsets, e.g. DC4030 and DC5030. This driver +is known to incur timeouts/retries during heavy I/O to drives +attached to the secondary interface. CDROM and TAPE devices are not +supported yet. This driver is enabled at runtime using the +"ide0=dc4030" kernel boot parameter. See the Documentation/ide.txt +and drivers/ide/pdc4030.c files for more info. +. +BLK_DEV_QD65XX 'QDI QD65XX support' + +BLK_DEV_UMC8672 'UMC 8672 support' text +This driver is enabled at runtime using the "ide0=umc8672" kernel +boot parameter. It enables support for the secondary IDE interface +of the UMC-8672, and permits faster I/O speeds to be set as well. +See the files Documentation/ide.txt and drivers/ide/umc8672.c for +more info. +. +BLK_DEV_GAYLE 'Amiga Gayle IDE interface support' text +This is the IDE driver for the builtin IDE interface on some Amiga +models. It supports both the `A1200 style' (used in A600 and A1200) +and `A4000 style' (used in A4000 and A4000T) of the Gayle IDE +interface. Say Y if you have such an Amiga model and want to use IDE +devices (hard disks, CD-ROM drives, etc.) that are connected to the +builtin IDE interface. +. +BLK_DEV_IDEDOUBLER 'Amiga IDE Doubler support' text +This driver provides support for the so-called `IDE doublers' (made +by various manufacturers, e.g. Eyetech) that can be connected to the +builtin IDE interface of some Amiga models. Using such an IDE +doubler, you can connect up to four instead of two IDE devices on +the Amiga's builtin IDE interface. + +Note that the normal Amiga Gayle IDE driver may not work correctly +if you have an IDE doubler and don't enable this driver! + +Say Y if you have an IDE doubler. The driver is enabled at kernel +runtime using the "ide=doubler" kernel boot parameter. +. +BLK_DEV_BUDDHA 'Buddha/Catweasel IDE interface support' text +This is the IDE driver for the IDE interfaces on the Buddha and +Catweasel expansion boards. It supports up to two interfaces on the +Buddha and three on the Catweasel. + +Say Y if you have a Buddha or Catweasel expansion board and want to +use IDE devices (hard disks, CD-ROM drives, etc.) that are connected +to one of its IDE interfaces. +. +BLK_DEV_FALCON_IDE 'Falcon IDE interface support' text +This is the IDE driver for the builtin IDE interface on the Atari +Falcon. Say Y if you have a Falcon and want to use IDE devices (hard +disks, CD-ROM drives, etc.) that are connected to the builtin IDE +interface. +. +BLK_DEV_MAC_IDE 'Macintosh Quadra/Powerbook IDE interface support' text +This is the IDE driver for the builtin IDE interface on some m68k +Macintosh models. It supports both the `Quadra style' (used in +Quadra/ Centris 630 and Performa 588 models) and `Powerbook style' +(used in the Powerbook 150 and 190 models) IDE interface. + +Say Y if you have such an Macintosh model and want to use IDE +devices (hard disks, CD-ROM drives, etc.) that are connected to the +builtin IDE interface. +. +BLK_DEV_Q40IDE 'Q40/Q60 IDE interface support' + +BLK_DEV_PS2 'PS/2 ESDI hard disk support' text +Say Y here if you have a PS/2 machine with a MCA bus and an ESDI +hard disk. + +If you want to compile the driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ps2esdi.o. +. +AMIGA_Z2RAM 'Amiga Zorro II ramdisk support' text +This enables support for using Chip RAM and Zorro II RAM as a +ramdisk or as a swap partition. Say Y if you want to include this +driver in the kernel. This driver is also available as a module +( = code which can be inserted in and removed from the running +kernel whenever you want). The module is called z2ram.o. If you want +to compile it as a module, say M here and read +Documentation/modules.txt. +. +ATARI_ACSI 'Atari ACSI support' text +This enables support for the Atari ACSI interface. The driver +supports hard disks and CD-ROMs, which have 512-byte sectors, or can +be switched to that mode. Due to the ACSI command format, only disks +up to 1 GB are supported. Special support for certain ACSI to SCSI +adapters, which could relax that, isn't included yet. The ACSI +driver is also the basis for certain other drivers for devices +attached to the ACSI bus: Atari SLM laser printer, BioNet-100 +Ethernet, and PAMsNet Ethernet. If you want to use one of these +devices, you need ACSI support, too. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called acsi.o. +. +ACSI_MULTI_LUN 'Probe all LUNs on each ACSI device' text +If you have a ACSI device that supports more than one LUN (Logical +Unit Number), e.g. a CD jukebox, you should say Y here so that all +will be found by the ACSI driver. An ACSI device with multiple LUNs +acts logically like multiple ACSI devices. The vast majority of ACSI +devices have only one LUN, and so most people can say N here and +should in fact do so, because it is safer. +. +ATARI_SLM 'Atari SLM laser printer support' text +If you have an Atari SLM laser printer, say Y to include support for +it in the kernel. Otherwise, say N. This driver is also available as +a module ( = code which can be inserted in and removed from the +running kernel whenever you want). The module will be called +acsi_slm.o. Be warned: the driver needs much ST-RAM and can cause +problems due to that fact! +. +BLK_CPQ_DA 'Compaq SMART2 support' text + This is the driver for Compaq Smart Array controllers. + Everyone using these boards should say Y here. + See the file Documentation/cpqarray.txt for the current list of + boards supported by this driver, and for further information + on the use of this driver. +. +BLK_CPQ_CISS_DA 'Compaq Smart Array support' text + This is the driver for Compaq Smart Array 5xxx controllers. + Everyone using these boards should say Y here. + See Documentation/cciss.txt for the current list of + boards supported by this driver, and for further information + on the use of this driver. +. +BLK_DEV_LOOP 'Loopback device support' text +Saying Y here will allow you to use a regular file as a block +device; you can then create a file system on that block device and +mount it just as you would mount other block devices such as hard +drive partitions, CDROM drives or floppy drives. The loop devices +are block special device files with major number 7 and typically +called /dev/loop0, /dev/loop1 etc. + +This is useful if you want to check an ISO 9660 file system before +burning the CD, or if you want to use floppy images without first +writing them to floppy. Furthermore, some Linux distributions avoid +the need for a dedicated Linux partition by keeping their complete +root file system inside a DOS FAT file using this loop device +driver. + +The loop device driver can also be used to "hide" a file system in a +disk partition, floppy, or regular file, either using encryption +(scrambling the data) or steganography (hiding the data in the low +bits of, say, a sound file). This is also safe if the file resides +on a remote file server. If you want to do this, you will first have +to acquire and install a kernel patch from +ftp://ftp.kerneli.org/pub/kerneli/ , and then you need to +say Y to this option. + +Note that alternative ways to use encrypted file systems are +provided by the cfs package, which can be gotten from +ftp://ftp.kerneli.org/pub/kerneli/net-source/ , and the newer tcfs +package, available at http://tcfs.dia.unisa.it/ . You do not need to +say Y here if you want to use one of these. However, using cfs +requires saying Y to "NFS file system support" below while using +tcfs requires applying a kernel patch. An alternative steganography +solution is provided by StegFS, also available from +ftp://ftp.kerneli.org/pub/kerneli/net-source/ . + +To use the loop device, you need the losetup utility and a recent +version of the mount program, both contained in the util-linux +package. The location and current version number of util-linux is +contained in the file Documentation/Changes. + +Note that this loop device has nothing to do with the loopback +device used for network connections from the machine to itself. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called loop.o. + +Most users will answer N here. +. +BLK_DEV_NBD 'Network block device support' text +Saying Y here will allow your computer to be a client for network +block devices, i.e. it will be able to use block devices exported by +servers (mount file systems on them etc.). Communication between +client and server works over TCP/IP networking, but to the client +program this is hidden: it looks like a regular local file access to +a block device special file such as /dev/nd0. + +Network block devices also allows you to run a block-device in +userland (making server and client physically the same computer, +communicating using the loopback network device). + +Read Documentation/nbd.txt for more information, especially about +where to find the server code, which runs in user space and does not +need special kernel support. + +Note that this has nothing to do with the network file systems NFS +or Coda; you can say N here even if you intend to use NFS or Coda. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called nbd.o. + +If unsure, say N. +. +MD 'Multiple devices driver support (RAID and LVM)' + +BLK_DEV_MD 'Multiple devices driver support' text +This driver lets you combine several hard disk partitions into one +logical block device. This can be used to simply append one +partition to another one or to combine several redundant hard disks +into a RAID1/4/5 device so as to provide protection against hard +disk failures. This is called "Software RAID" since the combining of +the partitions is done by the kernel. "Hardware RAID" means that the +combining is done by a dedicated controller; if you have such a +controller, you do not need to say Y here. + +More information about Software RAID on Linux is contained in the +Software-RAID mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . There you will also +learn where to get the supporting user space utilities raidtools. + +If unsure, say N. +. +MD_LINEAR 'Linear (append) mode' text +If you say Y here, then your multiple devices driver will be able to +use the so-called linear mode, i.e. it will combine the hard disk +partitions by simply appending one to the other. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called linear.o. + +If unsure, say Y. +. +MD_RAID0 'RAID-0 (striping) mode' text +If you say Y here, then your multiple devices driver will be able to +use the so-called raid0 mode, i.e. it will combine the hard disk +partitions into one logical device in such a fashion as to fill them +up evenly, one chunk here and one chunk there. This will increase +the throughput rate if the partitions reside on distinct disks. + +Information about Software RAID on Linux is contained in the +Software-RAID mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . There you will also +learn where to get the supporting user space utilities raidtools. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called raid0.o. + +If unsure, say Y. +. +MD_RAID1 'RAID-1 (mirroring) mode' text +A RAID-1 set consists of several disk drives which are exact copies +of each other. In the event of a mirror failure, the RAID driver +will continue to use the operational mirrors in the set, providing +an error free MD (multiple device) to the higher levels of the +kernel. In a set with N drives, the available space is the capacity +of a single drive, and the set protects against a failure of (N - 1) +drives. + +Information about Software RAID on Linux is contained in the +Software-RAID mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . There you will also +learn where to get the supporting user space utilities raidtools. + +If you want to use such a RAID-1 set, say Y. This code is also +available as a module called raid1.o ( = code which can be inserted +in and removed from the running kernel whenever you want). If you +want to compile it as a module, say M here and read +Documentation/modules.txt. + +If unsure, say Y. +. +MD_RAID5 'RAID-4/RAID-5 mode' text +A RAID-5 set of N drives with a capacity of C MB per drive provides +the capacity of C * (N - 1) MB, and protects against a failure +of a single drive. For a given sector (row) number, (N - 1) drives +contain data sectors, and one drive contains the parity protection. +For a RAID-4 set, the parity blocks are present on a single drive, +while a RAID-5 set distributes the parity across the drives in one +of the available parity distribution methods. + +Information about Software RAID on Linux is contained in the +Software-RAID mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . There you will also +learn where to get the supporting user space utilities raidtools. + +If you want to use such a RAID-4/RAID-5 set, say Y. This code is +also available as a module called raid5.o ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. + +If unsure, say Y. +. +MD_MULTIPATH 'Multipath I/O support' + +BLK_DEV_LVM 'Logical Volume Manager (LVM) support' text +This driver lets you combine several hard disks, hard disk +partitions, multiple devices or even loop devices (for evaluation +purposes) into a volume group. Imagine a volume group as a kind of +virtual disk. Logical volumes, which can be thought of as virtual +partitions, can be created in the volume group. You can resize +volume groups and logical volumes after creation time, corresponding +to new capacity needs. Logical volumes are accessed as block +devices named /dev/VolumeGroupName/LogicalVolumeName. + +For details see Documentation/LVM-HOWTO. You will need supporting +user space software; location is in Documentation/Changes. + +If you want to compile this support as a module ( = code which can +be inserted in and removed from the running kernel whenever you +want), say M here and read Documentation/modules.txt. The module +will be called lvm-mod.o. +. +BLK_DEV_ATARAID 'Support for IDE Raid controllers' + +BLK_DEV_ATARAID_PDC 'Support Promise software RAID (Fasttrak(tm))' + +BLK_DEV_ATARAID_HPT 'Highpoint 370 software RAID' + +BLK_DEV_RAM 'RAM disk support' text +Saying Y here will allow you to use a portion of your RAM memory as +a block device, so that you can make file systems on it, read and +write to it and do all the other things that you can do with normal +block devices (such as hard drives). It is usually used to load and +store a copy of a minimal root file system off of a floppy into RAM +during the initial install of Linux. + +Note that the kernel command line option "ramdisk=XX" is now +obsolete. For details, read Documentation/ramdisk.txt. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M and read Documentation/modules.txt. The module will be called +rd.o. + +Most normal users won't need the RAM disk functionality, and can +thus say N here. +. +BLK_DEV_RAM_SIZE 'Default RAM disk size' text +The default value is 4096. Only change this if you know what are +you doing. If you are using IBM S/390, then set this to 8192. +. +BLK_DEV_INITRD 'Initial RAM disk (initrd) support' text +The initial RAM disk is a RAM disk that is loaded by the boot loader +(loadlin or lilo) and that is mounted as root before the normal boot +procedure. It is typically used to load modules needed to mount the +"real" root file system, etc. See Documentation/initrd.txt for +details. +. +BLK_DEV_XPRAM 'XPRAM disk support' + +BLK_DEV_XD 'XT hard disk support' text +Very old 8 bit hard disk controllers used in the IBM XT computer +will be supported if you say Y here. + +If you want to compile the driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called xd.o. + +It's pretty unlikely that you have one of these: say N. +. +BLK_DEV_DAC960 'Mylex DAC960/DAC1100 PCI RAID Controller support' text +This driver adds support for the Mylex DAC960, AcceleRAID, and +eXtremeRAID PCI RAID controllers. See the file +Documentation/README.DAC960 for further information about this +driver. + +If you want to compile the driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called DAC960.o. +. +IDEDMA_IVB 'IGNORE word93 Validation BITS' text +Since various rules were applied and created ... et al. as it relates +the detection of valid cable signals. This is a result of unclear terms +in ATA-4 and ATA-5 standards. + +It is normally safe to answer Y; however, the default is N. +. +# +# PARIDE configuration +PARIDE 'Parallel port IDE device support' text +There are many external CD-ROM and disk devices that connect through +your computer's parallel port. Most of them are actually IDE devices +using a parallel port IDE adapter. This option enables the PARIDE +subsystem which contains drivers for many of these external drives. +Read Documentation/paride.txt for more information. + +If you have said Y to the "Parallel-port support" configuration +option, you may share a single port between your printer and other +parallel port devices. Answer Y to build PARIDE support into your +kernel, or M if you would like to build it as a loadable module. If +your parallel port support is in a loadable module, you must build +PARIDE as a module. If you built PARIDE support into your kernel, +you may still build the individual protocol modules and high-level +drivers as loadable modules. If you build this support as a module, +it will be called paride.o. + +To use the PARIDE support, you must say Y or M here and also to at +least one high-level driver (e.g. "Parallel port IDE disks", +"Parallel port ATAPI CD-ROMs", "Parallel port ATAPI disks" etc.) and +to at least one protocol driver (e.g. "ATEN EH-100 protocol", +"MicroSolutions backpack protocol", "DataStor Commuter protocol" +etc.). +. +PARIDE_PD 'Parallel port IDE disks' text +This option enables the high-level driver for IDE-type disk devices +connected through a parallel port. If you chose to build PARIDE +support into your kernel, you may answer Y here to build in the +parallel port IDE driver, otherwise you should answer M to build +it as a loadable module. The module will be called pd.o. You +must also have at least one parallel port protocol driver in your +system. Among the devices supported by this driver are the SyQuest +EZ-135, EZ-230 and SparQ drives, the Avatar Shark and the backpack +hard drives from MicroSolutions. +. +PARIDE_PCD 'Parallel port ATAPI CD-ROMs' text +This option enables the high-level driver for ATAPI CD-ROM devices +connected through a parallel port. If you chose to build PARIDE +support into your kernel, you may answer Y here to build in the +parallel port ATAPI CD-ROM driver, otherwise you should answer M to +build it as a loadable module. The module will be called pcd.o. You +must also have at least one parallel port protocol driver in your +system. Among the devices supported by this driver are the +MicroSolutions backpack CD-ROM drives and the Freecom Power CD. If +you have such a CD-ROM drive, you should also say Y or M to "ISO +9660 CDROM file system support" below, because that's the file +system used on CDROMs. +. +PARIDE_PF 'Parallel port ATAPI disks' text +This option enables the high-level driver for ATAPI disk devices +connected through a parallel port. If you chose to build PARIDE +support into your kernel, you may answer Y here to build in the +parallel port ATAPI disk driver, otherwise you should answer M +to build it as a loadable module. The module will be called pf.o. +You must also have at least one parallel port protocol driver in +your system. Among the devices supported by this driver are the +MicroSolutions backpack PD/CD drive and the Imation Superdisk +LS-120 drive. +. +PARIDE_PT 'Parallel port ATAPI tapes' text +This option enables the high-level driver for ATAPI tape devices +connected through a parallel port. If you chose to build PARIDE +support into your kernel, you may answer Y here to build in the +parallel port ATAPI disk driver, otherwise you should answer M +to build it as a loadable module. The module will be called pt.o. +You must also have at least one parallel port protocol driver in +your system. Among the devices supported by this driver is the +parallel port version of the HP 5GB drive. +. +PARIDE_PG 'Parallel port generic ATAPI devices' text +This option enables a special high-level driver for generic ATAPI +devices connected through a parallel port. The driver allows user +programs, such as cdrecord, to send ATAPI commands directly to a +device. + +If you chose to build PARIDE support into your kernel, you may +answer Y here to build in the parallel port generic ATAPI driver, +otherwise you should answer M to build it as a loadable module. The +module will be called pg.o. + +You must also have at least one parallel port protocol driver in +your system. + +This driver implements an API loosely related to the generic SCSI +driver. See include/linux/pg.h for details. + +You can obtain the most recent version of cdrecord from +ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ . Versions 1.6.1a3 and +later fully support this driver. +. +PARIDE_ATEN 'ATEN EH-100 protocol' text +This option enables support for the ATEN EH-100 parallel port IDE +protocol. This protocol is used in some inexpensive low performance +parallel port kits made in Hong Kong. If you chose to build PARIDE +support into your kernel, you may answer Y here to build in the +protocol driver, otherwise you should answer M to build it as a +loadable module. The module will be called aten.o. You must also +have a high-level driver for the type of device that you want to +support. +. +PARIDE_BPCK 'Micro Solutions BACKPACK Series 5 protocol' text +This option enables support for the Micro Solutions BACKPACK parallel +port Series 5 IDE protocol. (Most BACKPACK drives made before 1999 were +Series 5) Series 5 drives will NOT always have the Series noted on the +bottom of the drive. Series 6 drivers will. + +In other words, if your BACKPACK drive dosen't say "Series 6" on the +bottom, enable this option. + +If you chose to build PARIDE support into your kernel, you may answer Y +here to build in the protocol driver, otherwise you should answer M to +build it as a loadable module. The module will be called bpck.o. You +must also have a high-level driver for the type of device that you want +to support. +. +PARIDE_BPCK6 'Micro Solutions BACKPACK Series 6 protocol' text +This option enables support for the Micro Solutions BACKPACK parallel +port Series 6 IDE protocol. (Most BACKPACK drives made after 1999 were +Series 6) Series 6 drives will have the Series noted on the bottom of +the drive. Series 5 drivers don't always have it noted. + +In other words, if your BACKPACK drive says "Series 6" on the bottom, +enable this option. + +If you chose to build PARIDE support into your kernel, you may answer Y +here to build in the protocol driver, otherwise you should answer M to +build it as a loadable module. The module will be called bpck6.o. You +must also have a high-level driver for the type of device that you want +to support. +. +PARIDE_COMM 'DataStor Commuter protocol' text +This option enables support for the Commuter parallel port IDE +protocol from DataStor. If you chose to build PARIDE support +into your kernel, you may answer Y here to build in the protocol +driver, otherwise you should answer M to build it as a loadable +module. The module will be called comm.o. You must also have +a high-level driver for the type of device that you want to support. +. +PARIDE_DSTR 'DataStor EP-2000 protocol' text +This option enables support for the EP-2000 parallel port IDE +protocol from DataStor. If you chose to build PARIDE support +into your kernel, you may answer Y here to build in the protocol +driver, otherwise you should answer M to build it as a loadable +module. The module will be called dstr.o. You must also have +a high-level driver for the type of device that you want to support. +. +PARIDE_FIT2 'FIT TD-2000 protocol' text +This option enables support for the TD-2000 parallel port IDE +protocol from Fidelity International Technology. This is a simple +(low speed) adapter that is used in some portable hard drives. If +you chose to build PARIDE support into your kernel, you may answer Y +here to build in the protocol driver, otherwise you should answer M +to build it as a loadable module. The module will be called ktti.o. +You must also have a high-level driver for the type of device that +you want to support. +. +PARIDE_FIT3 'FIT TD-3000 protocol' text +This option enables support for the TD-3000 parallel port IDE +protocol from Fidelity International Technology. This protocol is +used in newer models of their portable disk, CD-ROM and PD/CD +devices. If you chose to build PARIDE support into your kernel, you +may answer Y here to build in the protocol driver, otherwise you +should answer M to build it as a loadable module. The module will be +called fit3.o. You must also have a high-level driver for the type +of device that you want to support. +. +PARIDE_EPAT 'Shuttle EPAT/EPEZ protocol' text +This option enables support for the EPAT parallel port IDE protocol. +EPAT is a parallel port IDE adapter manufactured by Shuttle +Technology and widely used in devices from major vendors such as +Hewlett-Packard, SyQuest, Imation and Avatar. If you chose to build +PARIDE support into your kernel, you may answer Y here to build in +the protocol driver, otherwise you should answer M to build it as a +loadable module. The module will be called epat.o. You must also +have a high-level driver for the type of device that you want to +support. +. +PARIDE_EPIA 'Shuttle EPIA protocol' text +This option enables support for the (obsolete) EPIA parallel port +IDE protocol from Shuttle Technology. This adapter can still be +found in some no-name kits. If you chose to build PARIDE support +into your kernel, you may answer Y here to build in the protocol +driver, otherwise you should answer M to build it as a loadable +module. The module will be called epia.o. You must also have a +high-level driver for the type of device that you want to support. +. +PARIDE_FRIQ 'Freecom IQ ASIC-2 protocol' text +This option enables support for version 2 of the Freecom IQ parallel +port IDE adapter. This adapter is used by the Maxell Superdisk +drive. If you chose to build PARIDE support into your kernel, you +may answer Y here to build in the protocol driver, otherwise you +should answer M to build it as a loadable module. The module will be +called friq.o. You must also have a high-level driver for the type +of device that you want to support. +. +PARIDE_FRPW 'FreeCom power protocol' text +This option enables support for the Freecom power parallel port IDE +protocol. If you chose to build PARIDE support into your kernel, you +may answer Y here to build in the protocol driver, otherwise you +should answer M to build it as a loadable module. The module will be +called frpw.o. You must also have a high-level driver for the type +of device that you want to support. +. +PARIDE_KBIC 'KingByte KBIC-951A/971A protocols' text +This option enables support for the KBIC-951A and KBIC-971A parallel +port IDE protocols from KingByte Information Corp. KingByte's +adapters appear in many no-name portable disk and CD-ROM products, +especially in Europe. If you chose to build PARIDE support into your +kernel, you may answer Y here to build in the protocol driver, +otherwise you should answer M to build it as a loadable module. The +module will be called kbic.o. You must also have a high-level driver +for the type of device that you want to support. +. +PARIDE_KTTI 'KT PHd protocol' text +This option enables support for the "PHd" parallel port IDE protocol +from KT Technology. This is a simple (low speed) adapter that is +used in some 2.5" portable hard drives. If you chose to build PARIDE +support into your kernel, you may answer Y here to build in the +protocol driver, otherwise you should answer M to build it as a +loadable module. The module will be called ktti.o. You must also +have a high-level driver for the type of device that you want to +support. +. +PARIDE_ON20 'OnSpec 90c20 protocol' text +This option enables support for the (obsolete) 90c20 parallel port +IDE protocol from OnSpec (often marketed under the ValuStore brand +name). If you chose to build PARIDE support into your kernel, you +may answer Y here to build in the protocol driver, otherwise you +should answer M to build it as a loadable module. The module will +be called on20.o. You must also have a high-level driver for the +type of device that you want to support. +. +PARIDE_ON26 'OnSpec 90c26 protocol' text +This option enables support for the 90c26 parallel port IDE protocol +from OnSpec Electronics (often marketed under the ValuStore brand +name). If you chose to build PARIDE support into your kernel, you +may answer Y here to build in the protocol driver, otherwise you +should answer M to build it as a loadable module. The module will be +called on26.o. You must also have a high-level driver for the type +of device that you want to support. +. +PARIDE_EPATC8 'Support c7/c8 chips' text +This option enables support for the newer Shuttle EP1284 (aka c7 and +c8) chip. You need this if you are using any recent Imation SuperDisk +(LS-120) drive. +. +# +# Character device configuration +VT 'Virtual terminal' text +If you say Y here, you will get support for terminal devices with +display and keyboard devices. These are called "virtual" because you +can run several virtual terminals (also called virtual consoles) on +one physical terminal. This is rather useful, for example one +virtual terminal can collect system messages and warnings, another +one can be used for a text-mode user session, and a third could run +an X session, all in parallel. Switching between virtual terminals +is done with certain key combinations, usually Alt-. + +The setterm command ("man setterm") can be used to change the +properties (such as colors or beeping) of a virtual terminal. The +man page console_codes(4) ("man console_codes") contains the special +character sequences that can be used to change those properties +directly. The fonts used on virtual terminals can be changed with +the setfont ("man setfont") command and the key bindings are defined +with the loadkeys ("man loadkeys") command. + +You need at least one virtual terminal device in order to make use +of your keyboard and monitor. Therefore, only people configuring an +embedded system would want to say N here in order to save some +memory; the only way to log into such a system is then via a serial +or network connection. + +If unsure, say Y, or else you won't be able to do much with your new +shiny Linux system :-) +. +VT_CONSOLE 'Support for console on virtual terminal' text +The system console is the device which receives all kernel messages +and warnings and which allows logins in single user mode. If you +answer Y here, a virtual terminal (the device used to interact with +a physical terminal) can be used as system console. This is the most +common mode of operations, so you should say Y here unless you want +the kernel messages be output only to a serial port (in which case +you should say Y to "Console on serial port", below). + +If you do say Y here, by default the currently visible virtual +terminal (/dev/tty0) will be used as system console. You can change +that with a kernel command line option such as "console=tty3" which +would use the third virtual terminal as system console. (Try "man +bootparam" or see the documentation of your boot loader (lilo or +loadlin) about how to pass options to the kernel at boot time.) + +If unsure, say Y. +. +STI_CONSOLE 'STI console' + +SERIAL 'Standard/generic (8250/16550 and compatible UARTs) serial support' +text +This selects whether you want to include the driver for the standard +serial ports. The standard answer is Y. People who might say N here +are those that are setting up dedicated Ethernet WWW/FTP servers, or +users that have one of the various bus mice instead of a serial +mouse and don't intend to use their machine's standard serial port +for anything. (Note that the Cyclades and Stallion multi serial port +drivers do not need this driver built in for them to work.) + +If you want to compile this driver as a module, say M here and read +Documentation/modules.txt. The module will be called serial.o. +[WARNING: Do not compile this driver as a module if you are using +non-standard serial ports, since the configuration information will +be lost when the driver is unloaded. This limitation may be lifted +in the future.] + +BTW1: If you have a mouseman serial mouse which is not recognized by +the X window system, try running gpm first. + +BTW2: If you intend to use a software modem (also called Winmodem) +under Linux, forget it. These modems are crippled and require +proprietary drivers which are only available under Windows. + +Most people will say Y or M here, so that they can use serial mice, +modems and similar devices connecting to the standard serial ports. +. +SERIAL_CONSOLE 'Support for console on serial port' text +If you say Y here, it will be possible to use a serial port as the +system console (the system console is the device which receives all +kernel messages and warnings and which allows logins in single user +mode). This could be useful if some terminal or printer is connected +to that serial port. + +Even if you say Y here, the currently visible virtual console +(/dev/tty0) will still be used as the system console by default, but +you can alter that using a kernel command line option such as +"console=ttyS1". (Try "man bootparam" or see the documentation of +your boot loader (lilo or loadlin) about how to pass options to the +kernel at boot time.) + +If you don't have a VGA card installed and you say Y here, the +kernel will automatically use the first serial line, /dev/ttyS0, as +system console. + +If unsure, say N. +. +ATOMWIDE_SERIAL 'Atomwide serial port support' text +If you have an Atomwide Serial card for an Acorn system, say Y to +this option. The driver can handle 1, 2, or 3 port cards. +If unsure, say N +. +DUALSP_SERIAL 'Dual serial port support' text +If you have the Serial Port's dual serial card for an Acorn system, +say Y to this option. If unsure, say N +. +SERIAL_ACPI 'Support for serial ports defined by ACPI tables' + +SERIAL_EXTENDED 'Extended dumb serial driver options' text +If you wish to use any non-standard features of the standard "dumb" +driver, say Y here. This includes HUB6 support, shared serial +interrupts, special multiport support, support for more than the +four COM 1/2/3/4 boards, etc. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about serial driver options. If unsure, say N. +. +SERIAL_MANY_PORTS 'Support more than 4 serial ports' text +Say Y here if you have dumb serial boards other than the four +standard COM 1/2/3/4 ports. This may happen if you have an AST +FourPort, Accent Async, Boca (read the Boca mini-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto ), or other custom +serial port hardware which acts similar to standard serial port +hardware. If you only use the standard COM 1/2/3/4 ports, you can +say N here to save some memory. You can also say Y if you have an +"intelligent" multiport card such as Cyclades, Digiboards, etc. +. +SERIAL_SHARE_IRQ 'Support for sharing serial interrupts' text +Some serial boards have hardware support which allows multiple dumb +serial ports on the same board to share a single IRQ. To enable +support for this in the serial driver, say Y here. +. +SERIAL_DETECT_IRQ 'Auto-detect IRQ on standard ports (unsafe)' text +Say Y here if you want the kernel to try to guess which IRQ +to use for your serial port. + +This is considered unsafe; it is far better to configure the IRQ in +a boot script using the setserial command. + +If unsure, say N. +. +SERIAL_MULTIPORT 'Support special multiport boards' text +Some multiport serial ports have special ports which are used to +signal when there are any serial ports on the board which need +servicing. Say Y here to enable the serial driver to take advantage +of those special I/O ports. +. +HUB6 'Support the Bell Technologies HUB6 card' text +Say Y here to enable support in the dumb serial driver to support +the HUB6 card. +. +SERIAL_NONSTANDARD 'Non-standard serial port support' text +Say Y here if you have any non-standard serial boards -- boards +which aren't supported using the standard "dumb" serial driver. +This includes intelligent serial boards such as Cyclades, +Digiboards, etc. These are usually used for systems that need many +serial ports because they serve many terminals or dial-in +connections. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about non-standard serial boards. + +Most people can say N here. +. +COMPUTONE 'Computone IntelliPort Plus serial support' text +This driver supports the entire family of Intelliport II/Plus +controllers with the exception of the MicroChannel controllers and +products previous to the Intelliport II. These are multiport cards, +which give you many serial ports. You would need something like +this to connect more than two modems to your Linux box, for +instance in order to become a dial-in server. If you have a +card like that, say Y here and read Documentation/computone.txt. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. You will get two +modules called ip2.o and ip2main.o. +. +ROCKETPORT 'Comtrol Rocketport support' text +This is a driver for the Comtrol Rocketport cards which provide +multiple serial ports. You would need something like this to connect +more than two modems to your Linux box, for instance in order to +become a dial-in server. + +If you want to compile this driver as a module, say M here and read +Documentation/modules.txt. The module will be called rocket.o. +. +CYCLADES 'Cyclades async mux support' text +This is a driver for a card that gives you many serial ports. You +would need something like this to connect more than two modems to +your Linux box, for instance in order to become a dial-in server. +For information about the Cyclades-Z card, read +drivers/char/README.cycladesZ. + +As of 1.3.9x kernels, this driver's minor numbers start at 0 instead +of 32. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called cyclades.o. + +If you haven't heard about it, it's safe to say N. +. +CYZ_INTR 'Cyclades-Z interrupt mode operation' text +The Cyclades-Z family of multiport cards allows 2 (two) driver op +modes: polling and interrupt. In polling mode, the driver will check +the status of the Cyclades-Z ports every certain amount of time +(which is called polling cycle and is configurable). In interrupt +mode, it will use an interrupt line (IRQ) in order to check the +status of the Cyclades-Z ports. The default op mode is polling. If +unsure, say N. +. +DIGIEPCA 'Digiboard Intelligent async support' text +This is a driver for Digi International's Xx, Xeve, and Xem series +of cards which provide multiple serial ports. You would need +something like this to connect more than two modems to your Linux +box, for instance in order to become a dial-in server. This driver +supports the original PC (ISA) boards as well as PCI, and EISA. If +you have a card like this, say Y here and read the file +Documentation/digiepca.txt. + +NOTE: There is another, separate driver for the Digiboard PC boards: +"Digiboard PC/Xx Support" below. You should (and can) only select +one of the two drivers. + +If you want to compile this driver as a module, say M here and read +Documentation/modules.txt. The module will be called epca.o. +. +DIGI 'Digiboard PC/Xx Support' text +This is a driver for the Digiboard PC/Xe, PC/Xi, and PC/Xeve cards +that give you many serial ports. You would need something like this +to connect more than two modems to your Linux box, for instance in +order to become a dial-in server. If you have a card like that, say +Y here and read the file Documentation/digiboard.txt. + +If you want to compile this driver as a module, say M here and read +Documentation/modules.txt. The module will be called pcxx.o. +. +ESPSERIAL 'Hayes ESP serial port support' text +This is a driver which supports Hayes ESP serial ports. Both single +port cards and multiport cards are supported. Make sure to read +Documentation/hayes-esp.txt. + +To compile this driver as a module ( = code which can be inserted in +and removed from the running kernel whenever you want), say M here +and read Documentation/modules.txt. The module will be called esp.o. +If unsure, say N. +. +MOXA_INTELLIO 'Moxa Intellio support' text +Say Y here if you have a Moxa Intellio multiport serial card. + +This driver can also be built as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called moxa.o. If you want to do that, say M +here. +. +MOXA_SMARTIO 'Moxa SmartIO support' text +Say Y here if you have a Moxa SmartIO multiport serial card. + +This driver can also be built as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called mxser.o. If you want to do that, say M +here. +. +ISI 'Multi-Tech multiport card support' text +This is a driver for the Multi-Tech cards which provide several +serial ports. The driver is experimental and can currently only be +built as a module ( = code which can be inserted in and removed from +the running kernel whenever you want). Please read +Documentation/modules.txt. The module will be called isicom.o +. +SYNCLINK 'Microgate SyncLink adapter support' text +Provides support for the SyncLink ISA and PCI +multiprotocol serial adapters. These adapters +support asynchronous and HDLC bit synchronous +communication up to 10Mbps (PCI adapter). + +This driver can only be built as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called synclink.o. If you want to do that, say M +here. +. +N_HDLC 'Synchronous HDLC line discipline support' +RISCOM8 'SDL RISCom/8 card support' text +This is a driver for the SDL Communications RISCom/8 multiport card, +which gives you many serial ports. You would need something like +this to connect more than two modems to your Linux box, for instance +in order to become a dial-in server. If you have a card like that, +say Y here and read the file Documentation/riscom8.txt. + +Also it's possible to say M here and compile this driver as kernel +loadable module; the module will be called riscom8.o. +. +SPECIALIX 'Specialix IO8+ card support' text +This is a driver for the Specialix IO8+ multiport card (both the +ISA and the PCI version) which gives you many serial ports. You +would need something like this to connect more than two modems to +your Linux box, for instance in order to become a dial-in server. + +If you have a card like that, say Y here and read the file +Documentation/specialix.txt. Also it's possible to say M here and +compile this driver as kernel loadable module which will be called +specialix.o. +. +SPECIALIX_RTSCTS 'Specialix DTR/RTS pin is RTS' text +The Specialix card can only support either RTS or DTR. If you say N +here, the driver will use the pin as "DTR" when the tty is in +software handshake mode. If you say Y here or hardware handshake is +on, it will always be RTS. Read the file Documentation/specialix.txt +for more information. +. +SX 'Specialix SX (and SI) card support' text +This is a driver for the SX and SI multiport serial cards. +Please read the file Documentation/sx.txt for details. + +This driver can only be built as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sx.o. If you want to do that, say M here. +. +STALDRV 'Stallion multiport serial support' text +Stallion cards give you many serial ports. You would need something +like this to connect more than two modems to your Linux box, for +instance in order to become a dial-in server. If you say Y here, you +will be asked for your specific card model in the next questions. +Make sure to read drivers/char/README.stallion in this case. If you +have never heard about all this, it's safe to say N. +. +RIO 'Specialix RIO system support' + +RIO_OLDPCI 'Support really old RIO/PCI cards' + +SH_SCI 'SuperH SCI (serial) support' text +Selecting this option will allow the Linux kernel to transfer +data over SCI (Serial Communication Interface) and/or SCIF +which are built into the Hitachi SuperH processor. + +If unsure, say N. +. +STALLION 'Stallion EasyIO or EC8/32 support' text +If you have an EasyIO or EasyConnection 8/32 multiport Stallion +card, then this is for you; say Y. Make sure to read +Documentation/stallion.txt. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called stallion.o. +. +ISTALLION 'Stallion EC8/64, ONboard, Brumby support' text +If you have an EasyConnection 8/64, ONboard, Brumby or Stallion +serial multiport card, say Y here. Make sure to read +Documentation/stallion.txt. + +To compile it as a module ( = code which can be inserted in and +removed from the running kernel whenever you want), say M here and +read Documentation/modules.txt. The module will be called +istallion.o. +. +SERIAL_TX3912 'TMPTX3912/PR31700 serial port support' + +SERIAL_TX3912_CONSOLE 'Console on TMPTX3912/PR31700 serial port' + +AU1000_UART 'Enable Au1000 UART Support' + +AU1000_SERIAL_CONSOLE 'Enable Au1000 serial console' + +UNIX98_PTYS 'Unix98 PTY support' text +A pseudo terminal (PTY) is a software device consisting of two +halves: a master and a slave. The slave device behaves identical to +a physical terminal; the master device is used by a process to +read data from and write data to the slave, thereby emulating a +terminal. Typical programs for the master side are telnet servers +and xterms. + +Linux has traditionally used the BSD-like names /dev/ptyxx for +masters and /dev/ttyxx for slaves of pseudo terminals. This scheme +has a number of problems. The GNU C library glibc 2.1 and later, +however, supports the Unix98 naming standard: in order to acquire a +pseudo terminal, a process opens /dev/ptmx; the number of the pseudo +terminal is then made available to the process and the pseudo +terminal slave can be accessed as /dev/pts/. What was +traditionally /dev/ttyp2 will then be /dev/pts/2, for example. + +The entries in /dev/pts/ are created on the fly by a virtual +file system; therefore, if you say Y here you should say Y to +"/dev/pts file system for Unix98 PTYs" as well. + +If you want to say Y here, you need to have the C library glibc 2.1 +or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*"). +Read the instructions in Documentation/Changes pertaining to pseudo +terminals. It's safe to say N. +. +UNIX98_PTY_COUNT 'Maximum number of Unix98 PTYs in use (0-2048)' text +The maximum number of Unix98 PTYs that can be used at any one time. +The default is 256, and should be enough for desktop systems. Server +machines which support incoming telnet/rlogin/ssh connections and/or +serve several X terminals may want to increase this: every incoming +connection and every xterm uses up one PTY. + +When not in use, each additional set of 256 PTYs occupy +approximately 8 KB of kernel memory on 32-bit architectures. +. +LP_CONSOLE 'Support for console on line printer' text +If you want kernel messages to be printed out as they occur, you +can have a console on the printer. This option adds support for +doing that; to actually get it to happen you need to pass the +option "console=lp0" to the kernel at boot time. + +If the printer is out of paper (or off, or unplugged, or too +busy..) the kernel will stall until the printer is ready again. +By defining CONSOLE_LP_STRICT to 0 (at your own risk) you +can make the kernel continue when this happens, +but it'll lose the kernel messages. + +If unsure, say N. +. +PPDEV 'Support for user-space parallel port device drivers' text +Saying Y to this adds support for /dev/parport device nodes. This +is needed for programs that want portable access to the parallel +port, for instance deviceid (which displays Plug-and-Play device +IDs). + +This is the parallel port equivalent of SCSI generic support (sg). +It is safe to say N to this -- it is not needed for normal printing +or parallel port CD-ROM/disk support. + +This support is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called ppdev.o. + +If unsure, say N. +. +BUSMOUSE 'Bus Mouse Support' text +Say Y here if your machine has a bus mouse as opposed to a serial +mouse. Most people have a regular serial MouseSystem or +Microsoft mouse (made by Logitech) that plugs into a COM port +(rectangular with 9 or 25 pins). These people say N here. If you +have something else, read the Busmouse-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , and say Y here. + +If you have a laptop, you either have to check the documentation or +experiment a bit to find out whether the trackball is a serial mouse +or not; it's best to say Y here for you. + +This is the generic bus mouse driver code. If you have a bus mouse, +you will have to say Y here and also to the specific driver for your +mouse below. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called busmouse.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +ATIXL_BUSMOUSE 'ATIXL busmouse support' text +This is a rare type of busmouse that is connected to the back of an +ATI video card. Say Y if you have one of those. Note however that +most mice by ATI are actually Microsoft busmice; you should say Y to +"Microsoft busmouse support" above if you have one of those. Read +the Busmouse-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called atixlmouse.o. + +If you are unsure, say N and read the HOWTO nevertheless: it will +tell you what you have. +. +LOGIBUSMOUSE 'Logitech busmouse support' text +Logitech mouse connected to a proprietary interface card. It's +generally a round connector with 9 pins. Note that the newer mice +made by Logitech don't use the Logitech protocol anymore; for those, +you don't need this option. You want to read the Busmouse-HOWTO , +available from http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called busmouse.o. If you are unsure, say N and read the HOWTO +nevertheless: it will tell you what you have. +. +MS_BUSMOUSE 'Microsoft busmouse support' text +These animals (also called Inport mice) are connected to an +expansion board using a round connector with 9 pins. If this is what +you have, say Y and read the Busmouse-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you are unsure, say N and read the HOWTO nevertheless: it will +tell you what you have. Also be aware that several vendors talk +about 'Microsoft busmouse' and actually mean PS/2 busmouse -- so +count the pins on the connector. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called msbusmouse.o. +. +MOUSE 'Mouse Support (not serial and bus mice)' text +This is for machines with a mouse which is neither a serial nor a +bus mouse. Examples are PS/2 mice (such as the track balls on some +laptops) and some digitizer pads. Most people have a regular serial +MouseSystem or Microsoft mouse (made by Logitech) that plugs into a +COM port (rectangular with 9 or 25 pins). These people say N here. +If you have something else, read the Busmouse-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . This HOWTO contains +information about all non-serial mice, not just bus mice. + +If you have a laptop, you either have to check the documentation or +experiment a bit to find out whether the trackball is a serial mouse +or not; it's best to say Y here for you. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about non-serial mice. If unsure, say Y. +. +PSMOUSE 'PS/2 mouse (aka "auxiliary device") support' text +The PS/2 mouse connects to a special mouse port that looks much like +the keyboard port (small circular connector with 6 pins). This way, +the mouse does not use any serial ports. This port can also be used +for other input devices like light pens, tablets, keypads. Compaq, +AST and IBM all use this as their mouse port on currently shipping +machines. The trackballs of some laptops are PS/2 mice also. In +particular, the C&T 82C710 mouse on TI Travelmates is a PS/2 mouse. + +Although PS/2 mice are not technically bus mice, they are explained +in detail in the Busmouse-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +When using a PS/2 mouse, you can get problems if you want to use the +mouse both on the Linux console and under X. Using the "-R" option +of the Linux mouse managing program gpm (available from +ftp://metalab.unc.edu/pub/Linux/system/mouse ) solves this +problem, or you can get the "mconv2" utility from the same location. +. +CONFIG_82C710_MOUSE 'C&T 82C710 mouse port support (as on TI Travelmate)' +text +This is a certain kind of PS/2 mouse used on the TI Travelmate. If +you are unsure, try first to say N here and come back if the mouse +doesn't work. Read the Busmouse-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . +. +PC110_PAD 'PC110 digitizer pad support' text +This drives the digitizer pad on the IBM PC110 palmtop. It can turn +the digitizer pad into a PS/2 mouse emulation with tap gestures or +into an absolute pad. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called pc110pad.o. +. +QIC02_TAPE 'QIC-02 tape support' text +If you have a non-SCSI tape drive like that, say Y. Or, if you want +to compile this driver as a module ( = code which can be inserted in +and removed from the running kernel whenever you want), say M here +and read Documentation/modules.txt. The module will be called +tpqic02.o. +. +QIC02_DYNCONF 'Do you want runtime configuration for QIC-02' text +You can either configure this driver once and for all by editing a +header file (include/linux/tpqic02.h), in which case you should +say N, or you can fetch a program via anonymous FTP which is able +to configure this driver during runtime. The program to do this is +called 'qic02conf' and it is part of the tpqic02-support-X.Y.tar.gz +support package. + +If you want to use the qic02conf program, say Y. +. +WATCHDOG 'Watchdog Timer Support' text +If you say Y here (and to one of the following options) and create a +character special file /dev/watchdog with major number 10 and minor +number 130 using mknod ("man mknod"), you will get a watchdog, i.e.: +subsequently opening the file and then failing to write to it for +longer than 1 minute will result in rebooting the machine. This +could be useful for a networked machine that needs to come back +online as fast as possible after a lock-up. There's both a watchdog +implementation entirely in software (which can sometimes fail to +reboot the machine) and a driver for hardware watchdog boards, which +are more robust and can also keep track of the temperature inside +your computer. For details, read Documentation/watchdog.txt in the +kernel source. + +The watchdog is usually used together with the watchdog daemon +which is available via FTP (user: anonymous) from +ftp://tsx-11.mit.edu/pub/linux/sources/sbin/ . This daemon can also +monitor NFS connections and can reboot the machine when the process +table is full. + +If unsure, say N. +. +WATCHDOG_NOWAYOUT 'Disable watchdog shutdown on close' text +The default watchdog behaviour (which you get if you say N here) is +to stop the timer if the process managing it closes the file +/dev/watchdog. It's always remotely possible that this process might +get killed. If you say Y here, the watchdog cannot be stopped once +it has been started. +. +WDT 'WDT Watchdog timer' text +If you have a WDT500P or WDT501P watchdog board, say Y here, +otherwise N. It is not possible to probe for this board, which means +that you have to inform the kernel about the IO port and IRQ using +the "wdt=" kernel option (try "man bootparam" or see the +documentation of your boot loader (lilo or loadlin) about how to +pass options to the kernel at boot time). + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called wdt.o. +. +WDTPCI 'WDT PCI Watchdog timer' text +If you have a PCI WDT500/501 watchdog board, say Y here, +otherwise N. It is not possible to probe for this board, which means +that you have to inform the kernel about the IO port and IRQ using +the "wdt=" kernel option (try "man bootparam" or see the +documentation of your boot loader (lilo or loadlin) about how to +pass options to the kernel at boot time). + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called wdt_pci.o. +. +WDT_501 'WDT501 features' text +Saying Y here and creating a character special file /dev/temperature +with major number 10 and minor number 131 ("man mknod") will give +you a thermometer inside your computer: reading from +/dev/temperature yields one byte, the temperature in degrees +Fahrenheit. This works only if you have a WDT501P watchdog board +installed. +. +WDT_501_FAN 'Fan Tachometer' text +Enable the Fan Tachometer on the WDT501. Only do this if you have a +fan tachometer actually set up. +. +SOFT_WATCHDOG 'Software Watchdog' text +A software monitoring watchdog. This will fail to reboot your system +from some situations that the hardware watchdog will recover +from. Equally it's a lot cheaper to install. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. The module will be called softdog.o. +. +PCWATCHDOG 'Berkshire Products PC Watchdog' text +This is the driver for the Berkshire Products PC Watchdog card. +This card simply watches your kernel to make sure it doesn't freeze, +and if it does, it reboots your computer after a certain amount of +time. This driver is like the WDT501 driver but for different +hardware. Please read Documentation/pcwd-watchdog.txt. The PC +watchdog cards can be ordered from http://www.berkprod.com . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called pcwd.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. + +Most people will say N. +. +ACQUIRE_WDT 'Acquire SBC Watchdog Timer' text +This is the driver for the hardware watchdog on the PSC-6x86 Single +Board Computer produced by Acquire Inc (and others). This watchdog +simply watches your kernel to make sure it doesn't freeze, and if +it does, it reboots your computer after a certain amount of time. + +This driver is like the WDT501 driver but for different hardware. +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called pscwdt.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. Most people +will say N. +. +ADVANTECH_WDT 'Advantech SBC Watchdog Timer' + +EUROTECH_WDT 'Eurotech CPU-1220/1410 Watchdog Timer' + +IB700_WDT 'IB700 SBC Watchdog Timer' + +I810_TCO 'i810 TCO timer/watchdog support' text +Hardware driver for the TCO timer built into the Intel i810 and i815 +chipset family. The TCO (Total Cost of Ownership) timer is a watchdog +timer that will reboot the machine after it's second expiration. The +expiration time can be configured by commandline argument +"i810_margin=" where is the counter initial value. It is +decremented every 0.6 secs, the default is 50 which gives a timeout +of 30 seconds and one minute until reset. + +On some motherboards the driver may fail to reset the chipset's +NO_REBOOT flag which prevents the watchdog from rebooting the machine. +If this is the case you will get a kernel message like +"i810tco init: failed to reset NO_REBOOT flag". + +If you want to compile this as a module, say M and read +Documentation/modules.txt. The module will be called +i810-tco.o. +. +CONFIG_21285_WATCHDOG 'Footbridge internal watchdog' text +The Intel Footbridge chip contains a builtin watchdog circuit. Say Y +here if you wish to use this. Alternatively say M to compile the +driver as a module, which will be called wdt285.o. + +This driver does not work on all machines. In particular, early CATS +boards have hardware problems that will cause the machine to simply +lock up if the watchdog fires. + +"If in doubt, leave it out" - say N. +. +MIXCOMWD 'Mixcom Watchdog' text +This is a driver for the Mixcom hardware watchdog cards. This +watchdog simply watches your kernel to make sure it doesn't freeze, +and if it does, it reboots your computer after a certain amount of +time. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called mixcomwd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. Most people +will say N. +. +CONFIG_60XX_WDT 'SBC-60XX Watchdog Timer' text + This driver can be used with the watchdog timer found on some + single board computers, namely the 6010 PII based computer. + It may well work with other cards. It reads port 0x443 to enable + and re-set the watchdog timer, and reads port 0x45 to disable + the watchdog. If you have a card that behave in similar ways, + you can probably make this driver work with your card as well. + + You can compile this driver directly into the kernel, or use + it as a module. The module will be called sbc60xxwdt.o. +. +W83877F_WDT 'W83877F (EMACS) Watchdog Timer' + +CONFIG_977_WATCHDOG 'NetWinder WB83C977 watchdog' text +Say Y here to include support for the WB977 watchdog included in +NetWinder machines. Alternatively say M to compile the driver as +a module, which will be called wdt977.o. + +Not sure? It's safe to say N. +. +MACHZ_WDT 'ZF MachZ Watchdog' text +If you are using a ZF Micro MachZ processor, say Y here, otherwise N. +This is the driver for the watchdog timer builtin on that processor +using ZF-Logic interface. This watchdog simply watches your kernel to +make sure it doesn't freeze, and if it does, it reboots your computer +after a certain amount of time. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called machzwd.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. +. +DS1620 'DS1620 thermometer support' text +Say Y here to include support for the thermal management hardware +found in the NetWinder. This driver allows the user to control the +temperature set points and to read the current temperature. + +It is also possible to say M here to build it as a module (ds1620.o) +It is recommended to be used on a NetWinder, but it is not a +necessity. +. +NWBUTTON 'NetWinder Button' text +If you say Y here and create a character device node /dev/nwbutton +with major and minor numbers 10 and 158 ("man mknod"), then every +time the orange button is pressed a number of times, the number of +times the button was pressed will be written to that device. + +This is most useful for applications, as yet unwritten, which +perform actions based on how many times the button is pressed in a +row. + +Do not hold the button down for too long, as the driver does not +alter the behaviour of the hardware reset circuitry attached to the +button; it will still execute a hard reset if the button is held +down for longer than approximately five seconds. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. The module will be called nwbutton.o. + +Most people will answer Y to this question and "Reboot Using Button" +below to be able to initiate a system shutdown from the button. +. +NWBUTTON_REBOOT 'Reboot Using Button' text +If you say Y here, then you will be able to initiate a system +shutdown and reboot by pressing the orange button a number of times. +The number of presses to initiate the shutdown is two by default, +but this can be altered by modifying the value of NUM_PRESSES_REBOOT +in nwbutton.h and recompiling the driver or, if you compile the +driver as a module, you can specify the number of presses at load +time with "insmod button reboot_count=". +. +NWFLASH 'NetWinder /dev/flash support' text +If you say Y here and create a character device /dev/flash with +major 10 and minor 160 you can manipulate the flash ROM containing +the NetWinder firmware. Be careful as accidentally overwriting the +flash contents can render your computer unbootable. On no account +allow random users access to this device. :-) + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called nwflash.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. + +If you're not sure, say N. +. +NVRAM '/dev/nvram support' text +If you say Y here and create a character special file /dev/nvram +with major number 10 and minor number 144 using mknod ("man mknod"), +you get read and write access to the 50 bytes of non-volatile memory +in the real time clock (RTC), which is contained in every PC and +most Ataris. + +This memory is conventionally called "CMOS RAM" on PCs and "NVRAM" +on Ataris. /dev/nvram may be used to view settings there, or to +change them (with some utility). It could also be used to frequently +save a few bits of very important data that may not be lost over +power-off and for which writing to disk is too insecure. Note +however that most NVRAM space in a PC belongs to the BIOS and you +should NEVER idly tamper with it. See Ralf Brown's interrupt list +for a guide to the use of CMOS bytes by your BIOS. + +On Atari machines, /dev/nvram is always configured and does not need +to be selected. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called nvram.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +INTEL_RNG 'Intel Random Number Generator support' text +This driver provides kernel-side support for the Random Number +Generator hardware found on Intel i8xx-based motherboards. + +Both a character driver, used to read() entropy data, and a timer +function which automatically adds entropy directly into the +kernel pool, are exported by this driver. + +To compile this driver as a module ( = code which can be inserted in +and removed from the running kernel whenever you want), say M here +and read Documentation/modules.txt. The module will be called +i810_rng.o. + +If unsure, say N. +. +RTC 'Enhanced Real Time Clock Support' text +If you say Y here and create a character special file /dev/rtc with +major number 10 and minor number 135 using mknod ("man mknod"), you +will get access to the real time clock (or hardware clock) built +into your computer. + +Every PC has such a clock built in. It can be used to generate +signals from as low as 1Hz up to 8192Hz, and can also be used +as a 24 hour alarm. It reports status information via the file +/proc/driver/rtc and its behaviour is set by various ioctls on +/dev/rtc. + +If you run Linux on a multiprocessor machine and said Y to +"Symmetric Multi Processing" above, you should say Y here to read +and set the RTC in an SMP compatible fashion. + +If you think you have a use for such a device (such as periodic data +sampling), then say Y here, and read Documentation/rtc.txt for +details. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called rtc.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. +. +#EFI_RTC 'EFI Real Time Clock Services' +GEN_RTC 'Generic /dev/rtc emulation' + +H8 'Tadpole ANA H8 Support' text +The Hitachi H8/337 is a microcontroller used to deal with the power +and thermal environment. If you say Y here, you will be able to +communicate with it via a character special device. + +If unsure, say N. +. +VIDEO_DEV 'Video For Linux' text +Support for audio/video capture and overlay devices and FM radio +cards. The exact capabilities of each device vary. User tools for +this are available from +ftp://ftp.uk.linux.org/pub/linux/video4linux . + +If you are interested in writing a driver for such an audio/video +device or user software interacting with such a driver, please read +the file Documentation/video4linux/API.html. + +This driver is also available as a module called videodev.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +VIDEO_PROC_FS 'Video For Linux /proc file system information' text +If you say Y here, you are able to access video device information +in /proc/video. + +To use this option, you have to check, that the "/proc file system +support" (CONFIG_PROC_FS) is enabled too. +. +I2C_PARPORT 'I2C on parallel port' text +I2C is a simple serial bus system used in many micro controller +applications. Saying Y here will allow you to use your parallel port +as an I2C interface. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called i2c-parport.o. +. +RADIO_CADET 'ADS Cadet AM/FM Radio Tuner Card' text +Choose Y here if you have one of these AM/FM radio cards, and then +fill in the port address below. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +Further documentation on this driver can be found on the WWW at +http://linux.blackhawke.net/cadet.html . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-cadet.o. +. +RADIO_RTRACK 'AIMSlab RadioTrack (aka RadioReveal) support' text +Choose Y here if you have one of these FM radio cards, and then fill +in the port address below. + +Note that newer AIMSlab RadioTrack cards have a different chipset +and are not supported by this driver. For these cards, use the +RadioTrack II driver below. + +If you have a GemTeks combined (PnP) sound- and radio card you must +use this driver as a module and setup the card with isapnptools. You +must also pass the module a suitable io parameter, 0x248 has been +reported to be used by these cards. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . More information +is contained in the file Documentation/video4linux/radiotrack.txt. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-aimslab.o. +. +RADIO_RTRACK_PORT 'RadioTrack I/O port' text +Enter either 0x30f or 0x20f here. The card default is 0x30f, if you +haven't changed the jumper setting on the card. +. +RADIO_RTRACK2 'AIMSlab RadioTrack II support' text +Choose Y here if you have this FM radio card, and then fill in the +port address below. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-rtrack2.o. +. +RADIO_RTRACK2_PORT 'RadioTrack II I/O port' text +Enter either 0x30c or 0x20c here. The card default is 0x30c, if you +haven't changed the jumper setting on the card. +. +RADIO_AZTECH 'Aztech/Packard Bell Radio' text +Choose Y here if you have one of these FM radio cards, and then fill +in the port address below. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-aztech.o. +. +RADIO_AZTECH_PORT 'Aztech/Packard Bell radio card I/O port' text +Enter either 0x350 or 0x358 here. The card default is 0x350, if you +haven't changed the setting of jumper JP3 on the card. Removing the +jumper sets the card to 0x358. +. +RADIO_GEMTEK 'GemTek Radio Card support' text +Choose Y here if you have this FM radio card, and then fill in the +port address below. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-gemtek.o. +. +RADIO_GEMTEK_PORT 'GemTek I/O port' text +Enter either 0x20c, 0x30c, 0x24c or 0x34c here. The card default is +0x34c, if you haven't changed the jumper setting on the card. On +Sound Vision 16 Gold PnP with FM Radio (ESS1869+FM Gemtek), the i/o +port is 0x28c. +. +RADIO_GEMTEK_PCI 'GemTek PCI Radio Card support' + +RADIO_MAXIRADIO 'Guillemot MAXI Radio FM 2000 Radio Card' + +RADIO_MAESTRO 'Maestro on board radio' + +RADIO_MIROPCM20 'miroSOUND PCM20 radio' text +Choose Y here if you have this sound card. You also need to say Y +to "ACI mixer (miroSOUND PCM1-pro/PCM12/PCM20 radio)" (in "Sound") +for this to work. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called miropcm20.o +. +RADIO_MIROPCM20_RDS 'miroSOUND PCM20 radio RDS user interface' text +Choose Y here if you want to see RDS/RBDS information like RadioText, +Programme Service name, Clock Time and date, Programme TYpe and +Traffic Announcement/Programme identification. You also need to say +Y to "miroSOUND PCM20 radio" and devfs! + +It's not possible to read the raw RDS packets from the device, so +the driver cant provide an V4L interface for this. But the +availability of RDS is reported over V4L by the basic driver already. +Here RDS can be read from files in /dev/v4l/rds. + +As module the driver will be called miropcm20-rds.o. +. +RADIO_SF16FMI 'SF16FMI Radio' text +Choose Y here if you have one of these FM radio cards, and then fill +in the port address below. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-sf16fmi.o +. +RADIO_SF16FMI_PORT 'SF16FMI I/O port (0x284 or 0x384)' text +Enter the I/O port of your SF16FMI radio card. +. +RADIO_TERRATEC 'TerraTec ActiveRadio' text +Choose Y here if you have this FM radio card, and then fill in the +port address below. (TODO) + +Note: This driver is in its early stages. Right now volume and +frequency control and muting works at least for me, but +unfortunately i have not found anybody who wants to use this card +with Linux. So if it is this what YOU are trying to do right now, +PLEASE DROP ME A NOTE!! Rolf Offermanns (rolf@offermanns.de) + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-terratec.o. +. +RADIO_TERRATEC_PORT 'Terratec I/O port (normally 0x590)' text +Fill in the i/o port of your TerraTec FM radio card. If unsure, go +with the default. + +### Add these +# Zoran ZR36057/36060 support +# CONFIG_VIDEO_ZORAN +. +RADIO_TRUST 'Trust FM radio card' text +This is a driver for the Trust FM radio cards. Say Y if you have +such a card and want to use it under Linux. + +This driver is also available as a module called radio-trust.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +RADIO_TRUST_PORT 'Trust I/O port (usually 0x350 or 0x358)' text +Enter the i/o port of your Trust FM radio card. If unsure, try the +values "0x350" or "0x358". +. +RADIO_TYPHOON 'Typhoon Radio (a.k.a. EcoRadio)' text +Choose Y here if you have one of these FM radio cards, and then fill +in the port address and the frequency used for muting below. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-typhoon.o +. +RADIO_TYPHOON_PROC_FS 'Support for /proc/radio-typhoon' text +Say Y here if you want the typhoon radio card driver to write +status information (frequency, volume, muted, mute frequency, +base address) to /proc/radio-typhoon. The file can be viewed with +your favorite pager (i.e. use "more /proc/radio-typhoon" or "less +/proc/radio-typhoon" or simply "cat /proc/radio-typhoon"). +. +RADIO_TYPHOON_PORT 'Typhoon I/O port (0x316 or 0x336)' text +Enter the I/O port of your Typhoon or EcoRadio radio card. +. +RADIO_TYPHOON_MUTEFREQ 'Typhoon frequency set when muting the device (kHz)' +text +Enter the frequency used for muting the radio. The device is never +completely silent. If the volume is just turned down, you can still +hear silent voices and music. For that reason, the frequency of the +radio device is set to the frequency you can enter here whenever +the device is muted. There should be no local radio station at that +frequency. +. +RADIO_ZOLTRIX 'Zoltrix Radio' text +Choose Y here if you have one of these FM radio cards, and then fill +in the port address below. + +In order to control your radio card, you will need to use programs +that are compatible with the Video for Linux API. Information on +this API and pointers to "v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called radio-zoltrix.o +. +RADIO_ZOLTRIX_PORT 'ZOLTRIX I/O port (0x20c or 0x30c)' text +Enter the I/O port of your Zoltrix radio card. +. +VIDEO_BT848 'BT848 Video For Linux' text +Support for BT848 based frame grabber/overlay boards. This includes +the Miro, Hauppauge and STB boards. Please read the material in +Documentation/video4linux/bttv for more information. + +If you say Y or M here, you need to say Y or M to "I2C support" and +"I2C bit-banging interfaces" in the character device section. + +This driver is available as a module called bttv.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +VIDEO_PMS 'Mediavision Pro Movie Studio Video For Linux' text +Say Y if you have such a thing. This driver is also available as a +module called pms.o ( = code which can be inserted in and removed +from the running kernel whenever you want). If you want to compile +. +VIDEO_PLANB 'PlanB Video-In for PowerMacs' text +PlanB is the V4L driver for the PowerMac 7x00/8x00 series video +input hardware. If you want to experiment with this, say Y. +Otherwise, or if you don't understand a word, say N. +See http://www.cpu.lu/~mlan/planb.html for more info. + +Saying M will compile this driver as a module (planb.o). +. +VIDEO_BWQCAM 'QuickCam BW Video For Linux' text +Say Y have if you the black and white version of the QuickCam +camera. See the next option for the color version. + +This driver is also available as a module called bw-qcam.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +VIDEO_CQCAM 'QuickCam Colour Video For Linux' text +This is the video4linux driver for the colour version of the +Connectix Quickcam. If you have one of these cameras, say Y here, +otherwise say N. This driver does not work with the original +monochrome Quickcam, Quickcam VC or QuickClip. It is also available +as a module (c-qcam.o). Read Documentation/video4linux/CQcam.txt for +more information. +. +VIDEO_W9966 'Winbond W9966CF Webcam Video For Linux' + +VIDEO_CPIA 'CPiA Video For Linux' text +This is the video4linux driver for cameras based on Vision's CPiA +(Colour Processor Interface ASIC), such as the Creative Labs Video +Blaster Webcam II. If you have one of these cameras, say Y here +and select parallel port and/or USB lowlevel support below, +otherwise say N. This will not work with the Creative Webcam III. + +Please read Documentation/video4linux/README.cpia for more +information. + +This driver is also available as a module (cpia.o). +. +VIDEO_CPIA_PP 'CPiA Parallel Port Lowlevel Support' text +This is the lowlevel parallel port support for cameras based on +Vision's CPiA (Colour Processor Interface ASIC), such as the +Creative Webcam II. If you have the parallel port version of one +of these cameras, say Y here, otherwise say N. It is also available +as a module (cpia_pp.o). +. +VIDEO_CPIA_USB 'CPiA USB Lowlevel Support' text +This is the lowlevel USB support for cameras based on Vision's CPiA +(Colour Processor Interface ASIC), such as the Creative Webcam II. +If you have the USB version of one of these cameras, say Y here, +otherwise say N. This will not work with the Creative Webcam III. +It is also available as a module (cpia_usb.o). +. +VIDEO_SAA5249 'SAA5249 Teletext processor' text +Support for I2C bus based teletext using the SAA5249 chip. At the +moment this is only useful on some European WinTV cards. + +This driver is also available as a module called saa5249.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +TUNER_3036 'SAB3036 tuner support' text +Say Y here to include support for Philips SAB3036 compatible tuners. +If in doubt, say N. +. +VIDEO_VINO 'SGI Vino Video For Linux' + +VIDEO_STRADIS 'Stradis 4:2:2 MPEG-2 video driver' + +VIDEO_ZORAN 'Zoran ZR36057/36060 Video For Linux' + +VIDEO_ZORAN_BUZ 'Include support for Iomega Buz' + +VIDEO_ZORAN_DC10 'Miro DC10(+) support' + +VIDEO_ZORAN_LML33 'Linux Media Labs LML33 support' + +VIDEO_ZR36120 'Zoran ZR36120/36125 Video For Linux' text +Support for ZR36120/ZR36125 based frame grabber/overlay boards. +This includes the Victor II, WaveWatcher, Video Wonder, Maxi-TV, +and Buster boards. Please read the material in +Documentation/video4linux/zr36120.txt for more information. + +This driver is also available as a module called zr36120.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +VIDEO_MEYE 'Sony Vaio Picturebook Motion Eye Video For Linux' text +This is the video4linux driver for the Motion Eye camera found +in the Vaio Picturebook laptops. Please read the material in + for more information. + +If you say Y or M here, you need to say Y or M to "Sony Programmable +I/O Control Device" in the character device section. + +This driver is available as a module called meye.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read . +. +DTLK 'Double Talk PC internal speech card support' text +This driver is for the DoubleTalk PC, a speech synthesizer +manufactured by RC Systems (http://www.rcsys.com/ ). It is also +called the `internal DoubleTalk'. If you want to compile this as a +module ( = code which can be inserted in and removed from the +running kernel whenever you want), say M here and read +Documentation/modules.txt. The module will be called dtlk.o. +. +R3964 'Siemens R3964 serial protocol support' text +This driver allows synchronous communication with devices using the +Siemens R3964 packet protocol. Unless you are dealing with special +hardware like PLCs, you are unlikely to need this. + +To compile this driver as a module ( = code which can be inserted in +and removed from the running kernel whenever you want), say M here +and read Documentation/modules.txt. The module will be called +n_r3964.o. + +If unsure, say N. +. +APPLICOM 'Applicom intelligent fieldbus card support' text +This driver provides the kernel-side support for the intelligent +fieldbus cards made by Applicom International. More information +about these cards can be found on the WWW at the address +http://www.applicom-int.com/ , or by email from David Woodhouse +. + +To compile this driver as a module ( = code which can be inserted in +and removed from the running kernel whenever you want), say M here +and read Documentation/modules.txt. The module will be called +applicom.o. + +If unsure, say N. +. +SONYPI 'Sony Vaio Programmable I/O Control Device support' text +This driver enables access to the Sony Programmable I/O Control Device +which can be found in many (all ?) Sony Vaio laptops. + +If you have one of those laptops, read Documentation/sonypi.txt, +and say Y or M here. + +If you want to compile the driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read . The module will be +called sonypi.o. +. +# Floppy tape controllers (default is 'Standard') +FTAPE 'Floppy tape drive (QIC-80/40/3010/3020/TR-1/TR-2/TR-3) support' +text +If you have a tape drive that is connected to your floppy +controller, say Y here. + +Some tape drives (like the Seagate "Tape Store 3200" or the Iomega +"Ditto 3200" or the Exabyte "Eagle TR-3") come with a "high speed" +controller of their own. These drives (and their companion +controllers) are also supported if you say Y here. + +If you have a special controller (such as the CMS FC-10, FC-20, +Mountain Mach-II, or any controller that is based on the Intel 82078 +FDC like the high speed controllers by Seagate and Exabyte and +Iomega's "Ditto Dash") you must configure it by selecting the +appropriate entries from the "Floppy tape controllers" sub-menu +below and possibly modify the default values for the IRQ and DMA +channel and the IO base in ftape's configuration menu. + +If you want to use your floppy tape drive on a PCI-bus based system, +please read the file drivers/char/ftape/README.PCI. + +The ftape kernel driver is also available as a runtime loadable +module ( = code which can be inserted in and removed from the +running kernel whenever you want). If you want to compile it as a +module, say M here and read Documentation/modules.txt. The module +will be called ftape.o. + +Note that the Ftape-HOWTO is out of date (sorry) and documents the +older version 2.08 of this software but still contains useful +information. There is a web page with more recent documentation at +http://www.math1.rwth-aachen.de/~heine/ftape/ . This page +always contains the latest release of the ftape driver and useful +information (backup software, ftape related patches and +documentation, FAQ). Note that the file system interface has changed +quite a bit compared to previous versions of ftape. Please read +Documentation/ftape.txt. +. +FT_STD_FDC 'Standard' text +Only change this setting if you have a special controller. If you +didn't plug any add-on card into your computer system but just +plugged the floppy tape cable into the already existing floppy drive +controller then you don't want to change the default setting, +i.e. choose "Standard". + +Choose "MACH-2" if you have a Mountain Mach-2 controller. +Choose "FC-10/FC-20" if you have a Colorado FC-10 or FC-20 +controller. +Choose "Alt/82078" if you have another controller that is located at +an IO base address different from the standard floppy drive +controller's base address of `0x3f0', or uses an IRQ (interrupt) +channel different from `6', or a DMA channel different from +`2'. This is necessary for any controller card that is based on +Intel's 82078 FDC such as Seagate's, Exabyte's and Iomega's "high +speed" controllers. + +If you choose something other than "Standard" then please make +sure that the settings for the IO base address and the IRQ and DMA +channel in the configuration menus below are correct. Use the manual +of your tape drive to determine the correct settings! + +If you are already successfully using your tape drive with another +operating system then you definitely should use the same settings +for the IO base, the IRQ and DMA channel that have proven to work +with that other OS. + +Note that this menu lets you specify only the default setting for +the hardware setup. The hardware configuration can be changed at +boot time (when ftape is compiled into the kernel, i.e. if you +have said Y to "Floppy tape drive") or module load time (i.e. if you +have said M to "Floppy tape drive"). + +Please read also the file Documentation/ftape.txt which +contains a short description of the parameters that can be set at +boot or load time. If you want to use your floppy tape drive on a +PCI-bus based system, please read the file +drivers/char/ftape/README.PCI. +. +FT_MACH2 'MACH-2' + +FT_PROBE_FC10 'FC-10/FC-20' + +FT_ALT_FDC 'Alt/82078' + +# Debugging output (default is "Normal") +FT_NORMAL_DEBUG 'Normal' text +This option controls the amount of debugging output the ftape driver +is ABLE to produce; it does not increase or diminish the debugging +level itself. If unsure, leave this at its default setting, +i.e. choose "Normal". + +Ftape can print lots of debugging messages to the system console +resp. kernel log files. Reducing the amount of possible debugging +output reduces the size of the kernel module by some KB, so it might +be a good idea to use "None" for emergency boot floppies. + +If you want to save memory then the following strategy is +recommended: leave this option at its default setting "Normal" until +you know that the driver works as expected, afterwards reconfigure +the kernel, this time specifying "Reduced" or "None" and recompile +and install the kernel as usual. Note that choosing "Excessive" +debugging output does not increase the amount of debugging output +printed to the console but only makes it possible to produce +"Excessive" debugging output. + +Please read Documentation/ftape.txt for a short description +how to control the amount of debugging output. +. +FT_FULL_DEBUG 'Excessive' + +FT_NO_TRACE 'Reduced' + +FT_NO_TRACE_AT_ALL 'None' + +# +# Direct Rendering Infrastructure (DRI) in XFree86 4.x. +DRM 'Direct Rendering Manager (XFree86 DRI support)' text +Kernel-level support for the Direct Rendering Infrastructure (DRI) +introduced in XFree86 4.0. If you say Y here, you need to select +the module that's right for your graphics card from the list below. +These modules provide support for synchronization, security, and +DMA transfers. Please see http://dri.sourceforge.net for more +details. You should also select and configure AGP +(/dev/agpgart) support. +. +DRM_TDFX '3dfx Banshee/Voodoo3+' text +Choose this option if you have a 3dfx Banshee or Voodoo3 (or later), +graphics card. If M is selected, the module will be called tdfx.o. +. +DRM_GAMMA '3dlabs GMX 2000' text +Choose this option if you have a 3dlabs GMX 2000 graphics card. +If M is selected, the module will be called gamma.o. +. +DRM_R128 'ATI Rage 128' text +Choose this option if you have an ATI Rage 128 graphics card. If M +is selected, the module will be called r128.o. AGP support for +this card is strongly suggested (unless you have a PCI version). +. +DRM_RADEON 'ATI Radeon' + +DRM_I810 'Intel I810' text +Choose this option if you have an Intel I810 graphics card. If M is +selected, the module will be called i810.o. AGP support is required +for this driver to work. +. +DRM_MGA 'Matrox g200/g400' text +Choose this option if you have a Matrox g200 or g400 graphics card. If M +is selected, the module will be called mga.o. AGP support is required +for this driver to work. +. +DRM_FFB 'Creator/Creator3D/Elite3D' + +AGP '/dev/agpgart (AGP Support)' text +AGP (Accelerated Graphics Port) is a bus system mainly used to +connect graphics cards to the rest of the system. + +If you have an AGP system and you say Y here, it will be possible to +use the AGP features of your 3D rendering video card. This code acts +as a sort of "AGP driver" for the motherboard's chipset. The glx +module will then be able to program the GART (graphics aperture +relocation table) registers with appropriate values to transfer +commands to the card. + +If you need more texture memory than you can get with the AGP GART +(theoretically up to 256 MB, but in practice usually 64 or 128 MB +due to kernel allocation issues), you could use PCI accesses +and have up to a couple gigs of texture space. + +Note that this is the only means to have XFree4/GLX use +write-combining with MTRR support on the AGP bus. Without it, OpenGL +direct rendering will be a lot slower but still faster than PIO. + +For the moment, you should probably say N, unless you want to test +the GLX component for XFree86 3.3.6, which can be downloaded from +http://utah-glx.sourceforge.net/ , or need to use the 810 Xserver in +XFree 3.3.6. + +This driver is available as a module. If you want to compile it as a +module, say M here and read Documentation/modules.txt. The module +will be called agpgart.o. +. +AGP_INTEL 'Intel 440LX/BX/GX and I815/I830M/I840/850 support' text +This option gives you AGP support for the GLX component of the +XFree86 4.x on Intel 440LX/BX/GX, 815, 830M, 840 and 850 chipsets. + +For the moment, you should probably say N, unless you want to test +the GLX component for XFree86 3.3.6, which can be downloaded from +http://utah-glx.sourceforge.net/ . +. +AGP_I810 'Intel I810/I815/I830M (on board) support' text +This option gives you AGP support for the Xserver on the Intel 810, +830M and 815 chipset boards for their on-board integrated graphics. +This is required to do any useful video modes with these boards. +. +AGP_VIA 'VIA chipset support' text +This option gives you AGP support for the GLX component of the +XFree86 4.x on VIA MPV3/Apollo Pro chipsets. + +For the moment, you should probably say N, unless you want to test +the GLX component for XFree86 3.3.6, which can be downloaded from +http://utah-glx.sourceforge.net/ . +. +AGP_AMD 'AMD Irongate, 761, and 762 support' text +This option gives you AGP support for the GLX component of the +XFree86 4.x on AMD Irongate, 761, and 762 chipsets. + +For the moment, you should probably say N, unless you want to test +the GLX component for XFree86 3.3.6, which can be downloaded from +http://utah-glx.sourceforge.net/ . +. +AGP_SIS 'Generic SiS support' text +This option gives you AGP support for the GLX component of the "soon +to be released" XFree86 4.x on Silicon Integrated Systems [SiS] +chipsets. + +Note that 5591/5592 AGP chipsets are NOT supported. + +For the moment, you should probably say N, unless you want to test +the GLX component for XFree86 3.3.6, which can be downloaded from +http://utah-glx.sourceforge.net/ . +. +AGP_ALI 'ALI chipset support' text +This option gives you AGP support for the GLX component of the +XFree86 4.x on the ALi M1541 chipset. + +This chipset can do AGP 1x and 2x, but note that there is an +acknowledged incompatibility with Matrox G200 cards. Due to +timing issues, this chipset cannot do AGP 2x with the G200. +This is a hardware limitation. AGP 1x seems to be fine, though. + +For the moment, you should probably say N, unless you want to test +the GLX component for XFree86 3.3.6, which can be downloaded from +http://utah-glx.sourceforge.net/ . +. +AGP_SWORKS 'Serverworks LE/HE support' + +# +# Ftape configuration +ZFTAPE 'VFS interface for ftape' text +Normally, you want to say Y or M. DON'T say N here or you +WON'T BE ABLE TO USE YOUR FLOPPY TAPE DRIVE. + +The ftape module itself no longer contains the routines necessary +to interface with the kernel VFS layer (i.e. to actually write data +to and read data from the tape drive). Instead the file system +interface (i.e. the hardware independent part of the driver) has +been moved to a separate module. + +If you say M zftape will be compiled as a runtime loadable +module ( = code which can be inserted in and removed from the +running kernel whenever you want). In this case you should read +Documentation/modules.txt. The module will be called zftape.o. + +Regardless of whether you say Y or M here, an additional runtime +loadable module called `zft-compressor.o' which contains code to +support user transparent on-the-fly compression based on Ross +William's lzrw3 algorithm will be produced. If you have enabled the +kernel module loader (i.e. have said Y to "Kernel module loader +support", above) then `zft-compressor.o' will be loaded +automatically by zftape when needed. + +Despite its name, zftape does NOT use compression by default. The +file Documentation/ftape.txt contains a short description of the +most important changes in the file system interface compared to +previous versions of ftape. The ftape home page +http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape/ contains +further information. + +IMPORTANT NOTE: zftape can read archives created by previous +versions of ftape and provide file mark support (i.e. fast skipping +between tape archives) but previous version of ftape will lack file +mark support when reading archives produced by zftape. +. +ZFT_DFLT_BLK_SZ 'Default block size for zftape' text +If unsure leave this at its default value, i.e. 10240. Note that +you specify only the default block size here. The block size can be +changed at run time using the MTSETBLK tape operation with the +MTIOCTOP ioctl (i.e. with "mt -f /dev/qft0 setblk #BLKSZ" from the +shell command line). + +The probably most striking difference between zftape and previous +versions of ftape is the fact that all data must be written or read +in multiples of a fixed block size. The block size defaults to +10240 which is what GNU tar uses. The values for the block size +should be either 1 or multiples of 1024 up to a maximum value of +63488 (i.e. 62 K). If you specify `1' then zftape's builtin +compression will be disabled. + +Reasonable values are `10240' (GNU tar's default block size), +`5120' (afio's default block size), `32768' (default block size some +backup programs assume for SCSI tape drives) or `1' (no restriction +on block size, but disables builtin compression). +. +FT_NR_BUFFERS 'Number of DMA buffers' text +Please leave this at `3' unless you REALLY know what you are doing. +It is not necessary to change this value. Values below 3 make the +proper use of ftape impossible, values greater than 3 are a waste of +memory. You can change the amount of DMA memory used by ftape at +runtime with "mt -f /dev/qft0 setdrvbuffer #NUMBUFFERS". Each buffer +wastes 32 KB of memory. Please note that this memory cannot be +swapped out. +. +FT_PROC_FS 'Enable procfs status report (+2kb)' text +Optional. Saying Y will result in creation of a directory +`/proc/ftape' under the /proc file system. The files can be viewed +with your favorite pager (i.e. use "more /proc/ftape/history" or +"less /proc/ftape/history" or simply "cat /proc/ftape/history"). The +file will contain some status information about the inserted +cartridge, the kernel driver, your tape drive, the floppy disk +controller and the error history for the most recent use of the +kernel driver. Saying Y will enlarge the size of the ftape driver +by approximately 2 KB. + +WARNING: When compiling ftape as a module (i.e. saying M to "Floppy +tape drive") it is dangerous to use ftape's /proc file system +interface. Accessing `/proc/ftape' while the module is unloaded will +result in a kernel Oops. This cannot be fixed from inside ftape. +. +FT_FDC_BASE 'IO base for the floppy disk controller used with Ftape' +text +You don't need to specify a value if the following default +settings for the base IO address are correct: +<<< MACH-2 : 0x1E0 >>> +<<< FC-10/FC-20: 0x180 >>> +<<< Secondary : 0x370 >>> +Secondary refers to a secondary FDC controller like the "high speed" +controllers delivered by Seagate or Exabyte or Iomega's Ditto Dash. +Please make sure that the setting for the IO base address +specified here is correct. USE THE MANUAL OF YOUR TAPE DRIVE OR +CONTROLLER CARD TO DETERMINE THE CORRECT SETTING. If you are already +successfully using the tape drive with another operating system then +you definitely should use the same settings for the IO base that has +proven to work with that other OS. + +Note that this menu lets you specify only the default setting for +the IO base. The hardware configuration can be changed at boot time +(when ftape is compiled into the kernel, i.e. if you specified Y to +"Floppy tape drive") or module load time (i.e. if you have said M to +"Floppy tape drive"). + +Please read also the file Documentation/ftape.txt which contains a +short description of the parameters that can be set at boot or load +time. +. +FT_FDC_IRQ 'IRQ channel for the floppy disk controller used with Ftape' +text +You don't need to specify a value if the following default +settings for the interrupt channel are correct: +<<< MACH-2 : 6 >>> +<<< FC-10/FC-20: 9 >>> +<<< Secondary : 6 >>> +Secondary refers to secondary a FDC controller like the "high speed" +controllers delivered by Seagate or Exabyte or Iomega's Ditto Dash. +Please make sure that the setting for the IO base address +specified here is correct. USE THE MANUAL OF YOUR TAPE DRIVE OR +CONTROLLER CARD TO DETERMINE THE CORRECT SETTING. If you are already +successfully using the tape drive with another operating system then +you definitely should use the same settings for the IO base that has +proven to work with that other OS. + +Note that this menu lets you specify only the default setting for +the IRQ channel. The hardware configuration can be changed at boot +time (when ftape is compiled into the kernel, i.e. if you said Y to +"Floppy tape drive") or module load time (i.e. if you said M to +"Floppy tape drive"). + +Please read also the file Documentation/ftape.txt which contains a +short description of the parameters that can be set at boot or load +time. +. +FT_FDC_DMA 'DMA channel for the floppy disk controller used with Ftape' +text +You don't need to specify a value if the following default +settings for the DMA channel are correct: +<<< MACH-2 : 2 >>> +<<< FC-10/FC-20: 3 >>> +<<< Secondary : 2 >>> +Secondary refers to a secondary FDC controller like the "high speed" +controllers delivered by Seagate or Exabyte or Iomega's Ditto Dash. +Please make sure that the setting for the IO base address +specified here is correct. USE THE MANUAL OF YOUR TAPE DRIVE OR +CONTROLLER CARD TO DETERMINE THE CORRECT SETTING. If you are already +successfully using the tape drive with another operating system then +you definitely should use the same settings for the IO base that has +proven to work with that other OS. + +Note that this menu lets you specify only the default setting for +the DMA channel. The hardware configuration can be changed at boot +time (when ftape is compiled into the kernel, i.e. if you said Y to +"Floppy tape drive") or module load time (i.e. if you said M to +"Floppy tape drive"). + +Please read also the file Documentation/ftape.txt which contains a +short description of the parameters that can be set at boot or load +time. +. +FT_FDC_THR 'FDC FIFO Threshold before requesting DMA service' text +Set the FIFO threshold of the FDC. If this is higher the DMA +controller may serve the FDC after a higher latency time. If this is +lower, fewer DMA transfers occur leading to less bus contention. +You may try to tune this if ftape annoys you with "reduced data +rate because of excessive overrun errors" messages. However, this +doesn't seem to have too much effect. + +If unsure, don't touch the initial value, i.e. leave it at "8". +. +FT_FDC_MAX_RATE 'FDC maximum data rate' text +With some motherboard/FDC combinations ftape will not be able to +run your FDC/tape drive combination at the highest available +speed. If this is the case you'll encounter "reduced data rate +because of excessive overrun errors" messages and lots of retries +before ftape finally decides to reduce the data rate. + +In this case it might be desirable to tell ftape beforehand that +it need not try to run the tape drive at the highest available +speed. If unsure, leave this disabled, i.e. leave it at 2000 +bits/sec. +. +FT_ALPHA_CLOCK 'CPU clock frequency of your DEC Alpha' text +On some DEC Alpha machines the CPU clock frequency cannot be +determined automatically, so you need to specify it here ONLY if +running a DEC Alpha, otherwise this setting has no effect. +. +# +# Joystick driver +JOYSTICK 'Joystick support' text +If you have a joystick, 6dof controller, gamepad, steering wheel, +weapon control system or something like that you can say Y here to +enable generic support for these controllers. You will also need to +say Y or M to at least one of the hardware specific drivers. This +will make the controllers available as /dev/input/jsX devices. +Please read the file Documentation/joystick.txt which contains more +information and the location of the joystick package that you'll +need. +. +INPUT_NS558 'Classic ISA/PnP gameports' text +Say Y here if you have an ISA, ISAPnP or PCI standard gameport. +For more information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ns558.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_LIGHTNING 'PDPI Lightning 4 gamecard' text +Say Y here if you have a PDPI Lightning 4 gamecard. For more +information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called lightning.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_PCIGAME 'Aureal Vortex and Trident 4DWave gameports' text +Say Y here if you have a Trident 4DWave DX/NX or Aureal Vortex 1/2 +card. For more information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called pcigame.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_CS461X 'Crystal SoundFusion gameports' + +INPUT_EMU10K1 'SoundBlaster Live! gameports' + +INPUT_SERIO 'Serial port device support' + +INPUT_SERPORT 'Serial port input line discipline' text +Say Y hereif you plan to use a joystick that communicates over the +serial (COM) port. For more information on how to use the driver +please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called serport.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_ANALOG 'Classic PC analog joysticks and gamepads' text +Say Y here if you have a controller that connects to the PC +gameport. This supports many different types, including joysticks +with throttle control, with rudders, or with extensions like +additional hats and buttons compatible with CH Flightstick Pro, +ThrustMaster FCS, 6 and 8 button gamepads, or Saitek Cyborg +joysticks. For more information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called analog.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_A3D 'Assassin 3D and MadCatz Panther devices' text +Say Y here if you have an FPGaming or MadCatz controller using the +A3D protocol over the PC gameport. For more information on how to +use the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called a3d.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_ADI 'Logitech ADI digital joysticks and gamepads' text +Say Y here if you have a Logitech controller using the ADI +protocol over the PC gameport. For more information on how to use +the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called adi.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_COBRA 'Creative Labs Blaster Cobra gamepad' text +Say Y here if you have a Creative Labs Blaster Cobra gamepad. +For more information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called cobra.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_GF2K 'Genius Flight2000 Digital joysticks and gamepads' text +Say Y here if you have a Genius Flight2000 or MaxFighter +digitally communicating joystick or gamepad. For more information +on how to use the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called gf2k.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_GRIP 'Gravis GrIP joysticks and gamepads' text +Say Y here if you have a Gravis controller using the GrIP protocol +over the PC gameport. For more information on how to use the driver +please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called grip.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_INTERACT 'InterAct digital joysticks and gamepads' text +Say Y hereif you have an InterAct gameport or joystick +communicating digitally over the gameport. For more information on +how to use the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called interact.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_TMDC 'ThrustMaster DirectConnect joysticks and gamepads' text +Say Y here if you have a ThrustMaster controller using the +DirectConnect (BSP) protocol over the PC gameport. For more +information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called tmdc.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_SIDEWINDER 'Microsoft SideWinder digital joysticks and gamepads' +text +Say Y here if you have a Microsoft controller using the Digital +Overdrive protocol over PC gameport. For more information on how to +use the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sidewinder.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_WARRIOR 'Logitech WingMan Warrior joystick' text +Say Y here if you have a Logitech WingMan Warrior joystick +connected to your computer's serial port. For more information on +how to use the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called warrior.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_MAGELLAN 'LogiCad3d Magellan/SpaceMouse 6dof controller' text +Say Y here if you have a Magellan or Space Mouse 6DOF controller +connected to your computer's serial port. For more information on +how to use the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called magellan.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_SPACEORB 'SpaceTec SpaceOrb/Avenger 6dof controller' text +Say Y here if you have a SpaceOrb 360 or SpaceBall Avenger 6DOF +controller connected to your computer's serial port. For more +information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called spaceorb.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_SPACEBALL 'SpaceTec SpaceBall 4000 FLX 6dof controller' text +Say Y here if you have a SpaceTec SpaceBall 4000 FLX controller +connected to your computer's serial port. For more information on +how to use the driver please read Documentation/joystick.txt +. +INPUT_STINGER 'Gravis Stinger gamepad' + +INPUT_IFORCE_232 'I-Force joysticks/wheels' text +Say Y here if you have an I-Force joystick or steering wheel +connected to your serial (COM) port. For more information on +how to use the driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called iforce.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_DB9 'Multisystem, Sega Genesis, Saturn joysticks and gamepads' +text +Say Y here if you have a Sega Master System gamepad, Sega Genesis +gamepad, Sega Saturn gamepad, or a Multisystem -- Atari, Amiga, +Commodore, Amstrad CPC joystick connected to your parallel port. +For more information on how to use the driver please read +Documentation/joystick.txt and Documentation/joystick-parport.txt. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called db9.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_GAMECON 'Multisystem, NES, SNES, N64, PSX joysticks and gamepads' +text +Say Y here if you have a Nintendo Entertainment System gamepad, +Super Nintendo Entertainment System gamepad, Nintendo 64 gamepad, +Sony PlayStation gamepad or a Multisystem -- Atari, Amiga, +Commodore, Amstrad CPC joystick connected to your parallel port. +For more information on how to use the driver please read +Documentation/joystick.txt and Documentation/joystick-parport.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called gamecon.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_TURBOGRAFX 'Multisystem joysticks via TurboGraFX device' text +Say Y here if you have the TurboGraFX interface by Steffen +Schwenke, and want to use it with Multiststem -- Atari, Amiga, +Commodore, Amstrad CPC joystick. For more information on how to use +the driver please read Documentation/joystick.txt and +Documentation/joystick-parport.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called turbografx.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +INPUT_AMIJOY 'Amiga joysticks' text +Say Y here if you have an Amiga with a digital joystick connected +to it. For more information on how to use the driver please read +Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called joy-amiga.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +# +# PCMCIA character device configuration +PCMCIA_SERIAL_CS 'PCMCIA serial device support' text +Say Y here to enable support for 16-bit PCMCIA serial devices, +including serial port cards, modems, and the modem functions of +multi-function ethernet/modem cards. (PCMCIA- or PC-cards are +credit-card size devices often used with laptops.) + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called serial_cs.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If unsure, +say N. +. +# +# SCSI disk support +BLK_DEV_SD 'SCSI disk support' text +If you want to use a SCSI hard disk or the SCSI or parallel port +version of the IOMEGA ZIP drive under Linux, say Y and read the +SCSI-HOWTO, the Disk-HOWTO and the Multi-Disk-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . This is NOT for SCSI +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sd_mod.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt and +Documentation/scsi.txt. Do not compile this driver as a module if +your root file system (the one containing the directory /) is +located on a SCSI disk. In this case, do not compile the driver for +your SCSI host adapter (below) as a module either. +. +SD_EXTRA_DEVS 'Maximum number of SCSI disks that can be loaded as modules' +text +This controls the amount of additional space allocated in tables for +drivers that are loaded as modules after the kernel is booted. In +the event that the SCSI core itself was loaded as a module, this +value is the number of additional disks that can be loaded after the +first host driver is loaded. + +Admittedly this isn't pretty, but there are tons of race conditions +involved with resizing the internal arrays on the fly. Someday this +flag will go away, and everything will work automatically. + +If you don't understand what's going on, go with the default. +. +CHR_DEV_ST 'SCSI tape support' text +If you want to use a SCSI tape drive under Linux, say Y and read the +SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , and +drivers/scsi/README.st in the kernel source. This is NOT for SCSI +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called st.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt and +Documentation/scsi.txt . +. +CHR_DEV_OSST 'OnStream SC-x0 SCSI tape support' text +The OnStream SC-x0 SCSI tape drives can not be driven by the +standard st driver, but instead need this special osst driver and +use the /dev/osstX char device nodes (major 206). +Via usb-storage and ide-scsi, you may be able to drive the USB-x0 +and DI-x0 drives as well. Note that there is also a second generation +of OnStream tape drives (ADR-x0) that supports the standard SCSI-2 +commands for tapes (QIC-157) and can be driven by the standard +driver st. +For more information, you may have a look at the SCSI-HOWTO +ftp://metalab.unc.edu/pub/Linux/docs/HOWTO and +drivers/scsi/README.osst in the kernel source. +More info on the OnStream driver may be found on +http://linux1.onstream.nl/test/ +Please also have a look at the standard st docu, as most of it +applies to osst as well. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called osst.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt and +Documentation/scsi.txt . +. +ST_EXTRA_DEVS 'Maximum number of SCSI tapes that can be loaded as modules' + +BLK_DEV_SR 'SCSI CD-ROM support' text +If you want to use a SCSI CDROM under Linux, say Y and read the +SCSI-HOWTO and the CDROM-HOWTO at +http://www.linuxdoc.org/docs.html#howto . Also make sure to say Y +or M to "ISO 9660 CDROM file system support" later. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sr_mod.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt and +Documentation/scsi.txt . +. +BLK_DEV_SR_VENDOR 'Enable vendor-specific extensions (for SCSI CD-ROM)' +text +This enables the usage of vendor specific SCSI commands. This is +required to support multisession CDs with old NEC/TOSHIBA cdrom +drives (and HP Writers). If you have such a drive and get the first +session only, try saying Y here; everybody else says N. +. +SR_EXTRA_DEVS 'Maximum number of CD-ROM devices that can be loaded as modules' +text +This controls the amount of additional space allocated in tables for +drivers that are loaded as modules after the kernel is booted. In +the event that the SCSI core itself was loaded as a module, this +value is the number of additional CDROMs that can be loaded after +the first host driver is loaded. + +Admittedly this isn't pretty, but there are tons of race conditions +involved with resizing the internal arrays on the fly. Someday this +flag will go away, and everything will work automatically. + +If you don't understand what's going on, go with the default. +. +CHR_DEV_SG 'SCSI generic support' text +If you want to use SCSI scanners, synthesizers or CD-writers or just +about anything having "SCSI" in its name other than hard disks, +CDROMs or tapes, say Y here. These won't be supported by the kernel +directly, so you need some additional software which knows how to +talk to these devices using the SCSI protocol: + +For scanners, look at SANE (http://www.mostang.com/sane). For CD +writer software look at cdrecord +(http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html) +and for burning a "disk at once": cdrdao +(http://www.ping.de/sites/daneb/cdrdao.html). Cdparanoia is a high +quality digital reader of audio CDs (http://www.xiph.org/paranoia). +For other devices, it's possible that you'll have to write the +driver software yourself. Please read the file +Documentation/scsi-generic.txt for more information. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt and +Documentation/scsi.txt. The module will be called sg.o. If unsure, +say N. +. +SCSI_DEBUG_QUEUES 'Enable extra checks in SCSI queueing code' text +This option turns on a lot of additional consistency checking for +the new queueing code. This will adversely affect performance, but +it is likely that bugs will be caught sooner if this is turned on. +This will typically cause the kernel to panic if an error is +detected, but it would have probably crashed if the panic weren't +there. Comments/questions/problems to linux-scsi mailing list +please. See http://www.andante.org/scsi_queue.html for more +up-to-date information. +. +SCSI_MULTI_LUN 'Probe all LUNs on each SCSI device' text +If you have a SCSI device that supports more than one LUN (Logical +Unit Number), e.g. a CD jukebox, and only one LUN is detected, you +can say Y here to force the SCSI driver to probe for multiple LUNs. +A SCSI device with multiple LUNs acts logically like multiple SCSI +devices. The vast majority of SCSI devices have only one LUN, and +so most people can say N here and should in fact do so, because it +is safer. +. +SCSI_CONSTANTS 'Verbose SCSI error reporting (kernel size +=12K)' text +The error messages regarding your SCSI hardware will be easier to +understand if you say Y here; it will enlarge your kernel by about +12 KB. If in doubt, say Y. +. +SCSI_LOGGING 'SCSI logging facility' text +This turns on a logging facility that can be used to debug a number +of SCSI related problems. + +If you say Y here, no logging output will appear by default, but you +can enable logging by saying Y to "/proc file system support" and +"Sysctl support" below and executing the command + + echo "scsi log token [level]" > /proc/scsi/scsi + +at boot time after the /proc file system has been mounted. + +There are a number of things that can be used for 'token' (you can +find them in the source: drivers/scsi/scsi.c), and this allows you +to select the types of information you want, and the level allows +you to select the level of verbosity. + +If you say N here, it may be harder to track down some types of SCSI +problems. If you say Y here your kernel will be somewhat larger, but +there should be no noticeable performance impact as long as you have +logging turned off. +. +SGIWD93_SCSI 'SGI WD93C93 SCSI Driver' + +SCSI_DECNCR 'DEC NCR53C94 SCSI Driver' + +SCSI_DECSII 'DEC SII SCSI Driver' + +BLK_DEV_3W_XXXX_RAID '3ware Hardware ATA-RAID support' text +3ware is the only hardware ATA-Raid product in Linux to date. +This card is 2,4, or 8 channel master mode support only. +SCSI support required!!! + +http://www.3ware.com/ + +Please read the comments at the top of drivers/scsi/3w-xxxx.c +. +SCSI_7000FASST '7000FASST SCSI support' text +This driver supports the Western Digital 7000 SCSI host adapter +family. Some information is in the source: drivers/scsi/wd7000.c. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module will be called wd7000.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +SCSI_ACARD 'ACARD SCSI support' text +This driver supports the ACARD 870U/W SCSI host adapter. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called atp870u.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_AHA152X 'Adaptec AHA152X/2825 support' text +This is a driver for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 +SCSI host adapters. It also works for the AVA-1505, but the IRQ etc. +must be manually specified in this case. + +It is explained in section 3.3 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . You might also want to +read the file drivers/scsi/README.aha152x. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called aha152x.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_AHA1542 'Adaptec AHA1542 support' text +This is support for a SCSI host adapter. It is explained in section +3.4 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Note that Trantor was +purchased by Adaptec, and some former Trantor products are being +sold under the Adaptec name. If it doesn't work out of the box, you +may have to change some settings in drivers/scsi/aha1542.h. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called aha1542.o. +. +SCSI_AHA1740 'Adaptec AHA1740 support' text +This is support for a SCSI host adapter. It is explained in section +3.5 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . If it doesn't work out +of the box, you may have to change some settings in +drivers/scsi/aha1740.h. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called aha1740.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_AIC7XXX 'Adaptec AIC7xxx support' text +This driver supports all of Adaptec's PCI based SCSI controllers (not +the hardware RAID controllers though) as well as the aic7770 based +EISA and VLB SCSI controllers (the 274x and 284x series). This is +an Adaptec sponsored driver written by Justin Gibbs. It is intended +to replace the previous aic7xxx driver maintained by Doug Ledford since +Doug is no longer maintaining that driver. +. +#AIC7XXX_TCQ_ON_BY_DEFAULT 'Enable Tagged Command Queueing (TCQ) by default' +AIC7XXX_CMDS_PER_DEVICE 'Default number of TCQ commands per device' text +Specify the number of commands you would like to allocate per SCSI +device when Tagged Command Queueing (TCQ) is enabled on that device. + +This is an upper bound value for the number of tagged transactions +to be used for any device. The aic7xxx driver will automatically +vary this number based on device behavior. For devices with a +fixed maximum, the driver will eventually lock to this maximum +and display a console message inidicating this value. + +Note: Unless you experience some type of device failure, the default + value, no enforced limit, should work for you. + +Default: 253 +. +#AIC7XXX_PROC_STATS 'Collect statistics to report in /proc' +AIC7XXX_RESET_DELAY_MS 'Delay in seconds after SCSI bus reset' text +The number of milliseconds to delay after an initial bus reset. +The bus settle delay following all error recovery actions is +dictated by the SCSI layer and is not affected by this value. + +Default: 5000 (5 seconds) +. +AIC7XXX_BUILD_FIRMWARE 'Build Adapter Firmware with Kernel Build' + +SCSI_AIC7XXX_OLD 'Old Adaptec AIC7xxx support' text +WARNING This driver is an older aic7xxx driver and is no longer under +active development. Adaptec, Inc. is writing a new driver to take the +place of this one, and it is recommended that whenever possible, people +should use the new Adaptec written driver instead of this one. This +driver will eventually be phased out entirely. + +This is support for the various aic7xxx based Adaptec SCSI +controllers. These include the 274x EISA cards; 284x VLB cards; +2902, 2910, 293x, 294x, 394x, 3985 and several other PCI and +motherboard based SCSI controllers from Adaptec. It does not support +the AAA-13x RAID controllers from Adaptec, nor will it likely ever +support them. It does not support the 2920 cards from Adaptec that +use the Future Domain SCSI controller chip. For those cards, you +need the "Future Domain 16xx SCSI support" driver. + +In general, if the controller is based on an Adaptec SCSI controller +chip from the aic777x series or the aic78xx series, this driver +should work. The only exception is the 7810 which is specifically +not supported (that's the RAID controller chip on the AAA-13x +cards). + +Note that the AHA2920 SCSI host adapter is *not* supported by this +driver; choose "Future Domain 16xx SCSI support" instead if you have +one of those. + +Information on the configuration options for this controller can be +found by checking the help file for each of the available +configuration options. You should read drivers/scsi/aic7xxx_old/README.aic7xxx +at a minimum before contacting the maintainer with any questions. +The SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , can also be of great +help. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called aic7xxx_old.o. +. +AIC7XXX_OLD_TCQ_ON_BY_DEFAULT 'Enable tagged command queueing (TCQ) by default' +text +This option causes the aic7xxx driver to attempt to use Tagged +Command Queueing (TCQ) on all devices that claim to support it. + +TCQ is a feature of SCSI-2 which improves performance: the host +adapter can send several SCSI commands to a device's queue even if +previous commands haven't finished yet. Because the device is +intelligent, it can optimize its operations (like head positioning) +based on its own request queue. Not all devices implement this +correctly. + +If you say Y here, you can still turn off TCQ on troublesome devices +with the use of the tag_info boot parameter. See the file +drivers/scsi/README.aic7xxx for more information on that and other +aic7xxx setup commands. If this option is turned off, you may still +enable TCQ on known good devices by use of the tag_info boot +parameter. + +If you are unsure about your devices then it is safest to say N +here. + +However, TCQ can increase performance on some hard drives by as much +as 50% or more, so it is recommended that if you say N here, you +should at least read the README.aic7xxx file so you will know how to +enable this option manually should your drives prove to be safe in +regards to TCQ. + +Conversely, certain drives are known to lock up or cause bus resets +when TCQ is enabled on them. If you have a Western Digital +Enterprise SCSI drive for instance, then don't even bother to enable +TCQ on it as the drive will become unreliable, and it will actually +reduce performance. +. +AIC7XXX_OLD_CMDS_PER_DEVICE 'Default number of TCQ commands per device' +text +Specify the number of commands you would like to allocate per SCSI +device when Tagged Command Queueing (TCQ) is enabled on that device. + +Reasonable figures are in the range of 8 to 24 commands per device, +but depending on hardware could be increased or decreased from that +figure. If the number is too high for any particular device, the +driver will automatically compensate usually after only 10 minutes +of uptime. It will not hinder performance if some of your devices +eventually have their command depth reduced, but is a waste of +memory if all of your devices end up reducing this number down to a +more reasonable figure. + +NOTE: Certain very broken drives are known to lock up when given +more commands than they like to deal with. Quantum Fireball drives +are the most common in this category. For the Quantum Fireball +drives it is suggested to use no more than 8 commands per device. + +Default: 8 +. +AIC7XXX_OLD_PROC_STATS 'Collect statistics to report in /proc' text +This option tells the driver to keep track of how many commands have +been sent to each particular device and report that information to +the user via the /proc/scsi/aic7xxx/n file, where n is the number of +the aic7xxx controller you want the information on. This adds a +small amount of overhead to each and every SCSI command the aic7xxx +driver handles, so if you aren't really interested in this +information, it is best to leave it disabled. This will only work if +you also say Y to "/proc file system support", below. + +If unsure, say N. +. +SCSI_IPS 'IBM ServeRAID support' text +This is support for the IBM ServeRAID hardware RAID controllers. +See http://www.developer.ibm.com/welcome/netfinity/serveraid.html +for more information. If this driver does not work correctly +without modification please contact the author by email at +ipslinux@us.ibm.com. + +You can build this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +but only a single instance may be loaded. If you want to compile it +as a module, say M here and read Documentation/modules.txt. The +module will be called ips.o. +. +SCSI_DPT_I2O 'aptec I2O RAID support' + +SCSI_ADVANSYS 'AdvanSys SCSI support' text +This is a driver for all SCSI host adapters manufactured by +AdvanSys. It is documented in the kernel source in +drivers/scsi/advansys.c. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. The module will be called advansys.o. +. +SCSI_IN2000 'Always IN2000 SCSI support' text +This is support for an ISA bus SCSI host adapter. You'll find more +information in drivers/scsi/in2000.readme. If it doesn't work out of +the box, you may have to change the jumpers for IRQ or address +selection. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called in2000.o. +. +SCSI_AM53C974 'AM53/79C974 PCI SCSI support' text +This is support for the AM53/79C974 SCSI host adapters. Please read +drivers/scsi/README.AM53C974 for details. Also, the SCSI-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto , is for +you. + +Note that there is another driver for AM53C974 based adapters: +"Tekram DC390(T) and Am53/79C974 (PCscsi) SCSI support", above. You +can pick either one. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called AM53C974.o. +. +SCSI_MEGARAID 'AMI MegaRAID support' text +This driver supports the AMI MegaRAID 418, 428, 438, 466, 762, 490 +and 467 SCSI host adapters. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called megaraid.o. +. +SCSI_BUSLOGIC 'BusLogic SCSI support' text +This is support for BusLogic MultiMaster and FlashPoint SCSI Host +Adapters. Consult the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , and the files +README.BusLogic and README.FlashPoint in drivers/scsi for more +information. If this driver does not work correctly without +modification, please contact the author, Leonard N. Zubkoff, by +email to lnz@dandelion.com. + +You can also build this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +but only a single instance may be loaded. If you want to compile it +as a module, say M here and read Documentation/modules.txt. The +module will be called BusLogic.o. +. +SCSI_OMIT_FLASHPOINT 'Omit BusLogic SCSI FlashPoint support' text +This option allows you to omit the FlashPoint support from the +BusLogic SCSI driver. The FlashPoint SCCB Manager code is +substantial, so users of MultiMaster Host Adapters may wish to omit +it. +. +SCSI_CPQFCTS 'Compaq Fibre Channel 64-bit/66Mhz HBA support' + +SCSI_DMX3191D 'DMX3191D SCSI support' text +This is support for Domex DMX3191D SCSI Host Adapters. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dmx3191d.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_DTC3280 'DTC3180/3280 SCSI support' text +This is support for DTC 3180/3280 SCSI Host Adapters. Please read +the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , and the file +drivers/scsi/README.dtc3x80. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dtc.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_EATA 'EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support' +text +This driver supports all EATA/DMA-compliant SCSI host adapters. DPT +ISA and all EISA i/o addresses are probed looking for the "EATA" +signature. If you chose "BIOS" at the question "PCI access mode", +the addresses of all the PCI SCSI controllers reported by the PCI +subsystem are probed as well. + +You want to read the start of drivers/scsi/eata.c and the +SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Note that there is also another driver for the same hardware +available: "EATA-DMA support". You should say Y to only one of them. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called eata.o. +. +SCSI_EATA_TAGGED_QUEUE 'enable tagged command queueing' text +This is a feature of SCSI-2 which improves performance: the host +adapter can send several SCSI commands to a device's queue even if +previous commands haven't finished yet. Most EATA adapters negotiate +this feature automatically with the device, even if your answer is +N. The safe answer is N. +. +SCSI_EATA_LINKED_COMMANDS 'enable elevator sorting' text +This option enables elevator sorting for all probed SCSI disks and +CDROMs. It definitely reduces the average seek distance when doing +random seeks, but this does not necessarily result in a noticeable +performance improvement: your mileage may vary... +The safe answer is N. +. +SCSI_EATA_MAX_TAGS 'maximum number of queued commands' text +This specifies how many SCSI commands can be maximally queued for +each probed SCSI device. You should reduce the default value of 16 +only if you have disks with buggy or limited tagged command support. +Minimum is 2 and maximum is 62. This value is also the window size +used by the elevator sorting option above. The effective value used +by the driver for each probed SCSI device is reported at boot time. +. +SCSI_EATA_DMA 'EATA-DMA [Obsolete] (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support' +text +This is support for the EATA-DMA protocol compliant SCSI Host +Adapters like the SmartCache III/IV, SmartRAID controller families +and the DPT PM2011B and PM2012B controllers. + +Note that this driver is obsolete; if you have one of the above SCSI +Host Adapters, you should normally say N here and Y to "EATA +ISA/EISA/PCI support", below. Please read the SCSI-HOWTO, available +from http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called eata_dma.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_EATA_PIO 'EATA-PIO (old DPT PM2001, PM2012A) support' text +This driver supports all EATA-PIO protocol compliant SCSI Host +Adapters like the DPT PM2001 and the PM2012A. EATA-DMA compliant +host adapters could also use this driver but are discouraged from +doing so, since this driver only supports hard disks and lacks +numerous features. You might want to have a look at the SCSI-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called eata_pio.o. +. +SCSI_FUTURE_DOMAIN 'Future Domain 16xx SCSI/AHA-2920A support' text +This is support for Future Domain's 16-bit SCSI host adapters +(TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and +other adapters based on the Future Domain chipsets (Quantum +ISA-200S, ISA-250MG; Adaptec AHA-2920A; and at least one IBM board). +It is explained in section 3.7 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +NOTE: Newer Adaptec AHA-2920C boards use the Adaptec AIC-7850 chip +and should use the aic7xxx driver ("Adaptec AIC7xxx chipset SCSI +controller support"). This Future Domain driver works with the older +Adaptec AHA-2920A boards with a Future Domain chip on them. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called fdomain.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_FD_MCS 'Future Domain MCS-600/700 SCSI support' text +This is support for Future Domain MCS 600/700 MCA SCSI adapters. +Some PS/2 computers are equipped with IBM Fast SCSI Adapter/A which +is identical to the MCS 700 and hence also supported by this driver. +This driver also supports the Reply SB16/SCSI card (the SCSI part). +It supports multiple adapters in the same system. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called fd_mcs.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_GDTH 'Intel/ICP (former GDT SCSI Disk Array) RAID Controller support' +text +This is a driver for all SCSI Disk Array Controllers (EISA/ISA/PCI) +manufactured by ICP vortex. It is documented in the kernel source in +drivers/scsi/gdth.c and drivers/scsi/gdth.h. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +SCSI_GENERIC_NCR5380 'Generic NCR5380/53c400 SCSI support' text +This is the generic NCR family of SCSI controllers, not to be +confused with the NCR 53c7 or 8xx controllers. It is explained in +section 3.8 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . If it doesn't work out +of the box, you may have to change some settings in +drivers/scsi/g_NCR5380.h. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called g_NCR5380.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +SCSI_G_NCR5380_PORT 'Port' text +The NCR5380 and NCR53c400 SCSI controllers come in two varieties: +port or memory mapped. You should know what you have. The most +common card, Trantor T130B, uses port mapped mode. +. +SCSI_G_NCR5380_MEM 'Memory' + +SCSI_GENERIC_NCR53C400 'Enable NCR53c400 extensions' text +This enables certain optimizations for the NCR53c400 SCSI cards. You +might as well try it out. Note that this driver will only probe for +the Trantor T130B in its default configuration; you might have to +pass a command line option to the kernel at boot time if it doesn't +detect your card. See the file drivers/scsi/README.g_NCR5380 for +details. +. +SCSI_INITIO 'Initio 91XXU(W) SCSI support' text +This is support for the Initio 91XXU(W) SCSI host adapter. Please +read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called initio.o +. +SCSI_INIA100 'Initio INI-A100U2W SCSI support' text +This is support for the Initio INI-A100U2W SCSI host adapter. Please +read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called a100u2w.o +. +SCSI_PPA 'IOMEGA parallel port (ppa - older drives)' text +This driver supports older versions of IOMEGA's parallel port ZIP +drive (a 100 MB removable media device). + +Note that you can say N here if you have the SCSI version of the ZIP +drive: it will be supported automatically if you said Y to the +generic "SCSI disk support", above. + +If you have the ZIP Plus drive or a more recent parallel port ZIP +drive (if the supplied cable with the drive is labeled "AutoDetect") +then you should say N here and Y to "IOMEGA parallel port (imm - +newer drives)", below. + +For more information about this driver and how to use it you should +read the file drivers/scsi/README.ppa. You should also read the +SCSI-HOWTO, which is available from +http://www.linuxdoc.org/docs.html#howto . If you use this driver, +you will still be able to use the parallel port for other tasks, +such as a printer; it is safe to compile both drivers into the +kernel. + +This driver is also available as a module which can be inserted in +and removed from the running kernel whenever you want. To compile +this driver as a module, say M here and read +Documentation/modules.txt. The module will be called ppa.o. +. +SCSI_IMM 'IOMEGA parallel port (imm - newer drives)' text +This driver supports newer versions of IOMEGA's parallel port ZIP +drive (a 100 MB removable media device). + +Note that you can say N here if you have the SCSI version of the ZIP +drive: it will be supported automatically if you said Y to the +generic "SCSI disk support", above. + +If you have the ZIP Plus drive or a more recent parallel port ZIP +drive (if the supplied cable with the drive is labeled "AutoDetect") +then you should say Y here; if you have an older ZIP drive, say N +here and Y to "IOMEGA Parallel Port (ppa - older drives)", above. + +For more information about this driver and how to use it you should +read the file drivers/scsi/README.ppa. You should also read the +SCSI-HOWTO, which is available from +http://www.linuxdoc.org/docs.html#howto . If you use this driver, +you will still be able to use the parallel port for other tasks, +such as a printer; it is safe to compile both drivers into the +kernel. + +This driver is also available as a module which can be inserted in +and removed from the running kernel whenever you want. To compile +this driver as a module, say M here and read +Documentation/modules.txt. The module will be called imm.o. +. +SCSI_IZIP_EPP16 'Force the Iomega ZIP drivers to use EPP-16' text +EPP (Enhanced Parallel Port) is a standard for parallel ports which +allows them to act as expansion buses that can handle up to 64 +peripheral devices. + +Some parallel port chipsets are slower than their motherboard, and +so we have to control the state of the chipset's FIFO queue every +now and then to avoid data loss. This will be done if you say Y +here. + +Generally, saying Y is the safe option and slows things down a bit. +. +SCSI_IZIP_SLOW_CTR 'Assume slow parallel port control register' text +Some parallel ports are known to have excessive delays between +changing the parallel port control register and good data being +available on the parallel port data/status register. This option +forces a small delay (1.0 usec to be exact) after changing the +control register to let things settle out. Enabling this option may +result in a big drop in performance but some very old parallel ports +(found in 386 vintage machines) will not work properly. + +Generally, saying N is fine. +. +SCSI_NCR53C406A 'NCR53c406a SCSI support' text +This is support for the NCR53c406a SCSI host adapter. For user +configurable parameters, check out drivers/scsi/NCR53c406.c in the +kernel source. Also read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called NCR53c406.o. +. +SCSI_SYM53C416 'Symbios 53c416 SCSI support' text +This is support for the sym53c416 SCSI host adapter, the SCSI +adapter that comes with some HP scanners. This driver requires that +the sym53c416 is configured first using some sort of pnp +configuration program (e.g. isapnp) or by a PnP aware BIOS. If you +are using isapnp then you need to compile this driver as a module +and then load it using insmod after isapnp has run. The parameters +of the configured card(s) should be passed to the driver. The format +is: + + insmod sym53c416 sym53c416=, [sym53c416_1=,] + +There is support for up to four adapters. If you want to compile +this driver as a module ( = code which can be inserted in and +removed from the running kernel whenever you want), say M here and +read Documentation/modules.txt. The module will be called +sym53c416.o. +. +SCSI_SIM710 'Simple 53c710 SCSI support (Compaq, NCR machines)' text +This is a simple driver for NCR53c710 based SCSI host adapters. + +More complex drivers for this chip are available ("NCR53c7,8xx SCSI +support", above), but they require that the scsi chip be able to do +DMA block moves between memory and on-chip registers, which can +cause problems under certain conditions. This driver is designed to +avoid these problems and is intended to work with any Intel machines +using 53c710 chips, including various Compaq and NCR machines. + +Please read the comments at the top of the file +drivers/scsi/sim710.c for more information. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called sim710.o. +. +SCSI_NCR_D700 'NCR Dual 700 MCA SCSI support' + +SCSI_LASI700 'HP LASI SCSI support for 53c700/710' + +SCSI_NCR53C7xx 'NCR53c7,8xx SCSI support' text +This is a driver for the 53c7 and 8xx NCR family of SCSI +controllers, not to be confused with the NCR 5380 controllers. It is +explained in section 3.8 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . If it doesn't work out +of the box, you may have to change some settings in +drivers/scsi/53c7,8xx.h. Please read drivers/scsi/README.ncr53c7xx +for the available boot time command line options. + +Note: there is another driver for the 53c8xx family of controllers +("NCR53C8XX SCSI support" below). If you want to use them both, you +need to say M to both and build them as modules, but only one may be +active at a time. If you have a 53c8xx board, it's better to use the +other driver. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called 53c7,8xx.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_NCR53C7xx_sync 'Always negotiate synchronous transfers' text +In general, this is good; however, it is a bit dangerous since there +are some broken SCSI devices out there. Take your chances. Safe bet +is N. +. +SCSI_NCR53C7xx_FAST 'Allow FAST-SCSI [10MHz]' text +This will enable 10MHz FAST-SCSI transfers with your host +adapter. Some systems have problems with that speed, so it's safest +to say N here. +. +SCSI_NCR53C7xx_DISCONNECT 'Allow DISCONNECT' text +This enables the disconnect/reconnect feature of the NCR SCSI +controller. When you say Y here, a slow SCSI device will not lock +the SCSI bus while processing a request, allowing simultaneous use +of e.g. a SCSI hard disk and SCSI tape or CD-ROM drive, and +providing much better performance when using slow and fast SCSI +devices at the same time. Some devices, however, do not operate +properly with this option enabled, and will cause your SCSI system +to hang, which might cause a system crash. The safe answer +therefore is to say N. +. +SCSI_NCR53C8XX 'NCR53C8XX SCSI support' text +This is the BSD ncr driver adapted to Linux for the NCR53C8XX family +of PCI-SCSI controllers. This driver supports parity checking, +tagged command queuing and fast synchronous data transfers up to 80 +MB/s with wide FAST-40 LVD devices and controllers. + +Recent versions of the 53C8XX chips are better supported by the +option "SYM53C8XX SCSI support", below. + +Note: there is yet another driver for the 53c8xx family of +controllers ("NCR53c7,8xx SCSI support" above). If you want to use +them both, you need to say M to both and build them as modules, but +only one may be active at a time. If you have a 53c8xx board, you +probably do not want to use the "NCR53c7,8xx SCSI support". + +Please read drivers/scsi/README.ncr53c8xx for more information. +. +SCSI_SYM53C8XX 'SYM53C8XX SCSI support' text +This driver supports all the features of recent 53C8XX chips (used +in PCI SCSI controllers), notably the hardware phase mismatch +feature of the SYM53C896. + +Older versions of the 53C8XX chips are not supported by this +driver. If your system uses either a 810 rev. < 16, a 815, or a 825 +rev. < 16 PCI SCSI processor, you must use the generic NCR53C8XX +driver ("NCR53C8XX SCSI support" above) or configure both the +NCR53C8XX and this SYM53C8XX drivers either as module or linked to +the kernel image. + +When both drivers are linked into the kernel, the SYM53C8XX driver +is called first at initialization and you can use the 'excl=ioaddr' +driver boot option to exclude attachment of adapters by the +SYM53C8XX driver. For example, entering +'sym53c8xx=excl:0xb400,excl=0xc000' at the lilo prompt prevents +adapters at io address 0xb400 and 0xc000 from being attached by the +SYM53C8XX driver, thus allowing the NCR53C8XX driver to attach them. +The 'excl' option is also supported by the NCR53C8XX driver. + +Please read drivers/scsi/README.ncr53c8xx for more information. +. +SCSI_NCR53C8XX_DEFAULT_TAGS 'Default tagged command queue depth' text +"Tagged command queuing" is a feature of SCSI-2 which improves +performance: the host adapter can send several SCSI commands to a +device's queue even if previous commands haven't finished yet. +Because the device is intelligent, it can optimize its operations +(like head positioning) based on its own request queue. Some SCSI +devices don't implement this properly; if you want to disable this +feature, enter 0 or 1 here (it doesn't matter which). + +The default value is 8 and should be supported by most hard disks. +This value can be overridden from the boot command line using the +'tags' option as follows (example): +'ncr53c8xx=tags:4/t2t3q16/t0u2q10' will set default queue depth to +4, set queue depth to 16 for target 2 and target 3 on controller 0 +and set queue depth to 10 for target 0 / lun 2 on controller 1. + +The normal answer therefore is to go with the default 8 and to use +a boot command line option for devices that need to use a different +command queue depth. + +There is no safe option other than using good SCSI devices. +. +SCSI_NCR53C8XX_MAX_TAGS 'Maximum number of queued commands' text +This option allows you to specify the maximum number of commands +that can be queued to any device, when tagged command queuing is +possible. The default value is 32. Minimum is 2, maximum is 64. +Modern hard disks are able to support 64 tags and even more, but +do not seem to be faster when more than 32 tags are being used. + +So, the normal answer here is to go with the default value 32 unless +you are using very large hard disks with large cache (>= 1 MB) that +are able to take advantage of more than 32 tagged commands. + +There is no safe option and the default answer is recommended. +. +SCSI_NCR53C8XX_SYNC 'Synchronous transfer frequency in MHz' text +The SCSI Parallel Interface-2 Standard defines 5 classes of transfer +rates: FAST-5, FAST-10, FAST-20, FAST-40 and FAST-80. The numbers are +respectively the maximum data transfer rates in mega-transfers per +second for each class. For example, a FAST-20 Wide 16 device is able +to transfer data at 20 million 16 bit packets per second for a total +rate of 40 MB/s. + +You may specify 0 if you want to only use asynchronous data +transfers. This is the safest and slowest option. Otherwise, specify +a value between 5 and 80, depending on the capability of your SCSI +controller. The higher the number, the faster the data transfer. +Note that 80 should normally be ok since the driver decreases the +value automatically according to the controller's capabilities. + +Your answer to this question is ignored for controllers with NVRAM, +since the driver will get this information from the user set-up. It +also can be overridden using a boot setup option, as follows +(example): 'ncr53c8xx=sync:12' will allow the driver to negotiate +for FAST-20 synchronous data transfer (20 mega-transfers per +second). + +The normal answer therefore is not to go with the default but to +select the maximum value 80 allowing the driver to use the maximum +value supported by each controller. If this causes problems with +your SCSI devices, you should come back and decrease the value. + +There is no safe option other than using good cabling, right +terminations and SCSI conformant devices. +. +SCSI_NCR53C8XX_PROFILE 'Enable traffic profiling' text +This option allows you to enable profiling information gathering. +These statistics are not very accurate due to the low frequency +of the kernel clock (100 Hz on i386) and have performance impact +on systems that use very fast devices. + +The normal answer therefore is N. +. +SCSI_NCR53C8XX_IOMAPPED 'Use normal IO' text +If you say Y here, the driver will use normal IO, as opposed to +memory mapped IO. Memory mapped IO has less latency than normal IO +and works for most Intel-based hardware. Under Linux/Alpha only +normal IO is currently supported by the driver and so, this option +has no effect on those systems. + +The normal answer therefore is N; try Y only if you encounter SCSI +related problems. +. +SCSI_NCR53C8XX_PQS_PDS 'Include support for the NCR PQS/PDS SCSI card' +text +Say Y here if you have a special SCSI adapter produced by NCR +corporation called a PCI Quad SCSI or PCI Dual SCSI. You do not need +this if you do not have one of these adapters. However, since this +device is detected as a specific PCI device, this option is quite +safe. + +The common answer here is N, but answering Y is safe. +. +SCSI_NCR53C8XX_NO_DISCONNECT 'Not allow targets to disconnect' text +This option is only provided for safety if you suspect some SCSI +device of yours to not support properly the target-disconnect +feature. In that case, you would say Y here. In general however, to +not allow targets to disconnect is not reasonable if there is more +than 1 device on a SCSI bus. The normal answer therefore is N. +. +SCSI_NCR53C8XX_SYMBIOS_COMPAT 'Assume boards are SYMBIOS compatible' +text +This option allows you to enable some features depending on GPIO +wiring. These General Purpose Input/Output pins can be used for +vendor specific features or implementation of the standard SYMBIOS +features. Genuine SYMBIOS controllers use GPIO0 in output for +controller LED and GPIO3 bit as a flag indicating +singled-ended/differential interface. The Tekram DC-390U/F boards +uses a different GPIO wiring. + +Your answer to this question is ignored if all your controllers have +NVRAM, since the driver is able to detect the board type from the +NVRAM format. + +If all the controllers in your system are genuine SYMBIOS boards or +use BIOS and drivers from SYMBIOS, you would want to say Y here, +otherwise N. N is the safe answer. +. +SCSI_SYM53C8XX_2 'SYM53C8XX Version 2 SCSI support' + +SCSI_SYM53C8XX_DMA_ADDRESSING_MODE 'DMA addressing mode' + +SCSI_SYM53C8XX_DEFAULT_TAGS 'default tagged command queue depth' + +SCSI_SYM53C8XX_MAX_TAGS 'maximum number of queued commands' + +SCSI_SYM53C8XX_IOMAPPED 'use normal IO' + +SCSI_IBMMCA 'IBMMCA SCSI support' text +This is support for the IBM SCSI adapter found in many of the PS/2 +series computers. These machines have an MCA bus, so you need to +answer Y to "MCA support" as well and read Documentation/mca.txt. + +If the adapter isn't found during boot (a common problem for models +56, 57, 76, and 77) you'll need to use the 'ibmmcascsi=' kernel +option, where is the id of the SCSI subsystem (usually 7, but +if that doesn't work check your reference diskette). Owners of model +95 with a LED-matrix-display can in addition activate some activity +info like under OS/2, but more informative, by setting +'ibmmcascsi=display' as an additional kernel parameter. Try "man +bootparam" or see the documentation of your boot loader about how to +pass options to the kernel. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ibmmca.o. +. +IBMMCA_SCSI_ORDER_STANDARD 'Standard SCSI-order' text +In the PC-world and in most modern SCSI-BIOS-setups, SCSI-hard disks +are assigned to the drive letters, starting with the lowest SCSI-id +(physical number -- pun) to be drive C:, as seen from DOS and +similar operating systems. When looking into papers describing the +ANSI-SCSI-standard, this assignment of drives appears to be wrong. +The SCSI-standard follows a hardware-hierarchy which says that id 7 +has the highest priority and id 0 the lowest. Therefore, the host +adapters are still today everywhere placed as SCSI-id 7 by default. +In the SCSI-standard, the drive letters express the priority of the +disk. C: should be the hard disk, or a partition on it, with the +highest priority. This must therefore be the disk with the highest +SCSI-id (e.g. 6) and not the one with the lowest! IBM-BIOS kept the +original definition of the SCSI-standard as also industrial- and +process-control-machines, like VME-CPUs running under realtime-OSs +(e.g. LynxOS, OS9) do. + +If you like to run Linux on your MCA-machine with the same +assignment of hard disks as seen from e.g. DOS or OS/2 on your +machine, which is in addition conformant to the SCSI-standard, you +must say Y here. This is also necessary for MCA-Linux users who want +to keep downward compatibility to older releases of the +IBM-MCA-SCSI-driver (older than driver-release 2.00 and older than +June 1997). + +If you like to have the lowest SCSI-id assigned as drive C:, as +modern SCSI-BIOSes do, which does not conform to the standard, but +is widespread and common in the PC-world of today, you must say N +here. If unsure, say Y. +. +IBMMCA_SCSI_DEV_RESET 'Reset SCSI-devices at boot time' text +By default, SCSI-devices are reset when the machine is powered on. +However, some devices exist, like special-control-devices, +SCSI-CNC-machines, SCSI-printer or scanners of older type, that do +not reset when switched on. If you say Y here, each device connected +to your SCSI-bus will be issued a reset-command after it has been +probed, while the kernel is booting. This may cause problems with +more modern devices, like hard disks, which do not appreciate these +reset commands, and can cause your system to hang. So say Y only if +you know that one of your older devices needs it; N is the safe +answer. +. +SCSI_MCA_53C9X 'NCR MCA 53C9x SCSI support' text +Some Microchannel machines, notably the NCR 35xx line, use a SCSI +controller based on the NCR 53C94. This driver will allow use of +the controller on the 3550, and very possibly others. + +If you want to compile this as a module (= code which can be +inserted and removed from the running kernel whenever you want), say +M here and read Documentation/modules.txt. The module will be called +mca_53c9x.o. +. +SCSI_PAS16 'PAS16 SCSI support' text +This is support for a SCSI host adapter. It is explained in section +3.10 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . If it doesn't work out +of the box, you may have to change some settings in +drivers/scsi/pas16.h. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called pas16.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_PCI2000 'PCI2000 support' text +This is support for the PCI2000I EIDE interface card which acts as a +SCSI host adapter. Please read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module called pci2000.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SCSI_PCI2220I 'PCI2220i support' text +This is support for the PCI2220i EIDE interface card which acts as a +SCSI host adapter. Please read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module called pci2220i.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SCSI_PSI240I 'PSI240i support' text +This is support for the PSI240i EIDE interface card which acts as a +SCSI host adapter. Please read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module called psi240i.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SCSI_QLOGIC_FAS 'Qlogic FAS SCSI support' text +This is a driver for the ISA, VLB, and PCMCIA versions of the Qlogic +FastSCSI! cards as well as any other card based on the FASXX chip +(including the Control Concepts SCSI/IDE/SIO/PIO/FDC cards). + +This driver does NOT support the PCI versions of these cards. The +PCI versions are supported by the Qlogic ISP driver ("Qlogic ISP +SCSI support"), below. + +Information about this driver is contained in +drivers/scsi/README.qlogicfas. You should also read the SCSI-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called qlogicfas.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +SCSI_QLOGIC_ISP 'Qlogic ISP SCSI support' text +This driver works for all QLogic PCI SCSI host adapters (IQ-PCI, +IQ-PCI-10, IQ_PCI-D) except for the PCI-basic card. (This latter +card is supported by the "AM53/79C974 PCI SCSI" driver). + +If you say Y here, make sure to choose "BIOS" at the question "PCI +access mode". + +Please read the file drivers/scsi/README.qlogicisp. You should also +read the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called qlogicisp.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +SCSI_QLOGIC_FC_FIRMWARE 'Include loadable firmware in driver' + +SCSI_QLOGIC_FC 'Qlogic ISP FC SCSI support' text +This is a driver for the QLogic ISP2100 SCSI-FCP host adapter. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called qlogicfc.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +SCSI_QLOGIC_1280 'Qlogic QLA 1280 SCSI support' text +Say Y if you have a QLogic ISP1x80/1x160 SCSI host adapter. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called qla1280.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +SCSI_SEAGATE 'Seagate ST-02 and Future Domain TMC-8xx SCSI support' +text +These are 8-bit SCSI controllers; the ST-01 is also supported by +this driver. It is explained in section 3.9 of the SCSI-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . If it +doesn't work out of the box, you may have to change some settings in +drivers/scsi/seagate.h. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called seagate.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_DC390T 'Tekram DC390(T) and Am53/79C974 SCSI support' text +This driver supports PCI SCSI host adapters based on the Am53C974A +chip, e.g. Tekram DC390(T), DawiControl 2974 and some onboard +PCscsi/PCnet (Am53/79C974) solutions. + +Documentation can be found in drivers/scsi/README.tmscsim. + +Note that this driver does NOT support Tekram DC390W/U/F, which are +based on NCR/Symbios chips. Use "NCR53C8XX SCSI support" for those. +Also note that there is another generic Am53C974 driver, +"AM53/79C974 PCI SCSI support" below. You can pick either one. + +If you want to compile this driver as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called tmscsim.o. +. +SCSI_DC390T_NOGENSUPP 'Omit support for other Am53/79C974 based SCSI adapters' +text +If you say N here, the DC390(T) SCSI driver relies on the DC390 +EEPROM to get initial values for its settings, such as speed, +termination, etc. If it can't find this EEPROM, it will use defaults +or the user supplied boot/module parameters. For details on driver +configuration see drivers/scsi/README.tmscsim. + +If you say Y here and if no EEPROM is found, the driver gives up and +thus only supports Tekram DC390(T) adapters. This can be useful if +you have a DC390(T) and another Am53C974 based adapter, which, for +some reason, you want to drive with the other AM53C974 driver. + +If unsure, say N. +. +SCSI_T128 'Trantor T128/T128F/T228 SCSI support' text +This is support for a SCSI host adapter. It is explained in section +3.11 of the SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . If it doesn't work out +of the box, you may have to change some settings in +drivers/scsi/t128.h. Note that Trantor was purchased by Adaptec, and +some former Trantor products are being sold under the Adaptec name. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called t128.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_U14_34F 'UltraStor 14F/34F support' text +This is support for the UltraStor 14F and 34F SCSI-2 host adapters. +The source at drivers/scsi/u14-34f.c contains some information about +this hardware. If the driver doesn't work out of the box, you may +have to change some settings in drivers/scsi/u14-34f.c. Read the +SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . Note that there is also +another driver for the same hardware: "UltraStor SCSI support", +below. You should say Y to both only if you want 24F support as +well. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called u14-34f.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SCSI_U14_34F_LINKED_COMMANDS 'enable elevator sorting' text +This option enables elevator sorting for all probed SCSI disks and +CDROMs. It definitely reduces the average seek distance when doing +random seeks, but this does not necessarily result in a noticeable +performance improvement: your mileage may vary... + +The safe answer is N. +. +SCSI_U14_34F_MAX_TAGS 'maximum number of queued commands' text +This specifies how many SCSI commands can be maximally queued for +each probed SCSI device. You should reduce the default value of 8 +only if you have disks with buggy or limited tagged command support. +Minimum is 2 and maximum is 14. This value is also the window size +used by the elevator sorting option above. The effective value used +by the driver for each probed SCSI device is reported at boot time. +. +SCSI_ULTRASTOR 'UltraStor SCSI support' text +This is support for the UltraStor 14F, 24F and 34F SCSI-2 host +adapter family. This driver is explained in section 3.12 of the +SCSI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . If it doesn't work out +of the box, you may have to change some settings in +drivers/scsi/ultrastor.h. + +Note that there is also another driver for the same hardware: +"UltraStor 14F/34F support", above. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ultrastor.o. +. +SCSI_DEBUG 'SCSI debugging host simulator' text +This is a host adapter simulator that can be programmed to simulate +a large number of conditions that could occur on a real bus. The +advantage is that many hard to reproduce problems can be tested in a +controlled environment where there is reduced risk of losing +important data. This is primarily of use to people trying to debug +the middle and upper layers of the SCSI subsystem. If unsure, say N. +. +SCSI_MESH 'MESH (Power Mac internal SCSI) support' text +Many Power Macintoshes and clones have a MESH (Macintosh Enhanced +SCSI Hardware) SCSI bus adaptor (the 7200 doesn't, but all of the +other Power Macintoshes do). Say Y to include support for this SCSI +adaptor. This driver is also available as a module called mesh.o +( = code which can be inserted in and removed from the running +kernel whenever you want). If you want to compile it as a module, +say M here and read Documentation/modules.txt. +. +SCSI_MESH_SYNC_RATE 'Maximum synchronous transfer rate (MB/s) (0 = async)' +text +On Power Macintoshes (and clones) where the MESH SCSI bus adaptor +drives a bus which is entirely internal to the machine (such as the +7500, 7600, 8500, etc.), the MESH is capable of synchronous +operation at up to 10 MB/s. On machines where the SCSI bus +controlled by the MESH can have external devices connected, it is +usually rated at 5 MB/s. 5 is a safe value here unless you know the +MESH SCSI bus is internal only; in that case you can say 10. Say 0 +to disable synchronous operation. +. +SCSI_MAC53C94 '53C94 (Power Mac external SCSI) support' text +On Power Macintoshes (and clones) with two SCSI buses, the external +SCSI bus is usually controlled by a 53C94 SCSI bus adaptor. Older +machines which only have one SCSI bus, such as the 7200, also use +the 53C94. Say Y to include support for the 53C94. + +This driver is also available as a module called mac53c94.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +JAZZ_ESP 'MIPS JAZZ FAS216 SCSI support' text +This is the driver for the onboard SCSI host adapter of MIPS Magnum +4000, Acer PICA, Olivetti M700-10 and a few other identical OEM +systems. +. +SCSI_LASI 'Lasi SCSI support' + +SCSI_ZALON 'Zalon SCSI support' + +# +# Fusion devices +FUSION 'Fusion MPT (base + ScsiHost) drivers' + +FUSION_ISENSE 'Enhanced SCSI error reporting' + +FUSION_CTL 'Fusion MPT misc device (ioctl) driver' + +FUSION_LAN 'Fusion MPT LAN driver' + +# +# PCMCIA SCSI adapter configuration +SCSI_PCMCIA 'PCMCIA SCSI adapter support' text +Say Y here if you intend to attach a PCMCIA or CardBus card to your +computer which acts as a SCSI host adapter. These are credit card +size devices often used with laptops. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions PCMCIA SCSI host adapters. +. +PCMCIA_AHA152X 'Adaptec AHA152X PCMCIA support' text +Say Y here if you intend to attach this type of PCMCIA SCSI host +adapter to your computer. + +This driver is also available as a module called aha152x_cs.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +PCMCIA_QLOGIC 'Qlogic PCMCIA support' text +Say Y here if you intend to attach this type of PCMCIA SCSI host +adapter to your computer. + +This driver is also available as a module called qlogic_cs.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +PCMCIA_FDOMAIN 'Future Domain PCMCIA support' text +Say Y here if you intend to attach this type of PCMCIA SCSI host +adapter to your computer. + +This driver is also available as a module called fdomain_cs.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +PCMCIA_NINJA_SCSI 'NinjaSCSI-3 / NinjaSCSI-32Bi (16bit) PCMCIA support' + +#PCMCIA_APA1480 'Adaptec APA1480 CardBus support' +# +# Sound +SOUND_BT878 'BT878 audio dma' + +SOUND_CMPCI 'C-Media PCI (CMI8338/8378)' text +Say Y or M if you have a PCI sound card using the CMI8338 +or the CMI8378 chip.set. +. +SOUND_CMPCI_FM 'Enable legacy FM' + +SOUND_CMPCI_FMIO 'FM I/O (388, 3C8, 3E0, 3E8)' + +SOUND_CMPCI_MIDI 'Enable legacy MPU-401' + +SOUND_CMPCI_MPUIO 'MPU-401 I/O (330, 320, 310, 300)' + +SOUND_CMPCI_JOYSTICK 'Enable joystick' + +SOUND_CMPCI_CM8738 'Support CMI8738 based audio cards' + +SOUND_CMPCI_SPDIFINVERSE 'Inverse S/PDIF in for CMI8738' + +SOUND_CMPCI_SPDIFLOOP 'Enable S/PDIF loop for CMI8738' + +SOUND_CMPCI_SPEAKERS 'Number of speakers (2, 4, 5, 6' + +SOUND_CMPCI_LINE_REAR 'Use Line-in as Read-out' + +SOUND_CMPCI_LINE_BASS 'Use Line-in as Bass' + +SOUND_EMU10K1 'Creative SBLive! (EMU10K1) based PCI sound cards' text +Say Y or M if you have a PCI sound card using the EMU10K1 chipset, +such as the various Creative SBLive!, SB PCI512 or Emu-APS. + +For more information on this driver and the degree of support for the +different card models please check . + +It is now possible to load dsp microcode patches into the EMU10K1 +chip. These patches are used to implement real time sound processing +effects which include for example: signal routing, bass/treble +control, AC3 passthrough, ... +Userspace tools to create new patches and load/unload them can be +found at . +. +MIDI_EMU10K1 'Creative SBLive! MIDI' text +Say Y if you want to be able to use the OSS /dev/sequencer interface. +This code is still experimental. +. +SOUND_FUSION 'Crystal SoundFusion (CS4280/461x)' text +This module drives the Crystal SoundFusion devices (CS4280/46xx series) +when wired as native sound drivers with AC97 codecs. If this driver +does not work try the CS4232 driver. +. +SOUND_CS4281 'Crystal Sound CS4281' + +SOUND_ES1370 'Ensoniq AudioPCI (ES1370) based PCI sound cards' text +Say Y or M if you have a PCI sound card utilizing the Ensoniq +ES1370 chipset, such as Ensoniq's AudioPCI (non-97). To find +out if your sound card uses an ES1370 without removing your +computer's cover, use lspci -n and look for the PCI ID +1274:5000. Since Ensoniq was bought by Creative Labs, +Sound Blaster 64/PCI models are either ES1370 or ES1371 based. +This driver differs slightly from OSS/Free, so PLEASE READ +Documentation/sound/es1370. +. +SOUND_ES1371 'Ensoniq AudioPCI 97 (ES1371) based sound cards' text +Say Y or M if you have a PCI sound card utilizing the Ensoniq +ES1371 chipset, such as Ensoniq's AudioPCI97. To find out if +your sound card uses an ES1371 without removing your computer's +cover, use lspci -n and look for the PCI ID 1274:1371. Since +Ensoniq was bought by Creative Labs, Sound Blaster 64/PCI +models are either ES1370 or ES1371 based. This driver differs +slightly from OSS/Free, so PLEASE READ Documentation/sound/es1371. +. +SOUND_ESSSOLO1 'ESS Solo1 based PCI sound cards (eg. SC1938)' text +Say Y or M if you have a PCI sound card utilizing the ESS Technology +Solo1 chip. To find out if your sound card uses a +Solo1 chip without removing your computer's cover, use +lspci -n and look for the PCI ID 125D:1969. This driver +differs slightly from OSS/Free, so PLEASE READ +Documentation/sound/solo1. +. +SOUND_MAESTRO 'ESS Maestro, Maestro2, Maestro2E driver' text +Say Y or M if you have a sound system driven by ESS's Maestro line +of PCI sound chips. These include the Maestro 1, Maestro 2, and +Maestro 2E. See Documentation/sound/Maestro for more details. +. +SOUND_MAESTRO3 'ESS Maestro3/Allegro driver' + +SOUND_SONICVIBES 'S3 SonicVibes based PCI sound cards' text +Say Y or M if you have a PCI sound card utilizing the S3 +SonicVibes chipset. To find out if your sound card uses a +SonicVibes chip without removing your computer's cover, use +lspci -n and look for the PCI ID 5333:CA00. This driver +differs slightly from OSS/Free, so PLEASE READ +Documentation/sound/sonicvibes. +. +#SOUND_VWSND 'SGI Visual Workstation on-board audio' +SOUND_VRC5477 'NEC Vrc5477 AC97 sound' + +SOUND_TRIDENT 'Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core' +text +Say Y or M if you have a PCI sound card utilizing the Trident +4DWave-DX/NX chipset or your mother board chipset has SiS 7018 +or ALi 5451 built-in. The SiS 7018 PCI Audio Core is embedded +in SiS960 Super South Bridge and SiS540/630 Single Chipset. +The ALi 5451 PCI Audio Core is embedded in ALi M1535, M1535D, +M1535+ or M1535D+ South Bridge. + +Use lspci -n to find out if your sound card or chipset uses +Trident 4DWave or SiS 7018. PCI ID 1023:2000 or 1023:2001 stands +for Trident 4Dwave. PCI ID 1039:7018 stands for SiS7018. PCI ID +10B9:5451 stands for ALi5451. + +This driver supports S/PDIF in/out (record/playback) for ALi 5451 +embedded in ALi M1535+ and M1535D+. Note that they aren't all +enabled by default; you can enable them by saying Y to "/proc file +system support" and "Sysctl support", and after the /proc file +system has been mounted, executing the command + + command what is enabled + +echo 0>/proc/ALi5451 pcm out is also set to S/PDIF out. (Default). + +echo 1>/proc/ALi5451 use S/PDIF out to output pcm data. + +echo 2>/proc/ALi5451 use S/PDIF out to output non-pcm data.(AC3...). + +echo 3>/proc/ALi5451 record from Ac97 in(MIC, Line in...). (Default). + +echo 4>/proc/ALi5451 no matter Ac97 settings, record from S/PDIF in. + + +This driver differs slightly from OSS/Free, so PLEASE READ the +comments at the top of driver/sound/trident.c +. +SOUND_MSNDCLAS 'Support for Turtle Beach MultiSound Classic, Tahiti, Monterey' +text +Say M here if you have a Turtle Beach MultiSound Classic, Tahiti or +Monterey (not for the Pinnacle or Fiji). + +See Documentation/sound/MultiSound for important information about +this driver. +. +MSNDCLAS_INIT_FILE 'Full pathname of MSNDINIT.BIN firmware file' text +The MultiSound cards have two firmware files which are required for +operation, and are not currently included. These files can be +obtained from Turtle Beach. See Documentation/sound/MultiSound for +information on how to obtain this. +. +MSNDCLAS_PERM_FILE 'Full pathname of MSNDPERM.BIN firmware file' text +The MultiSound cards have two firmware files which are required for +operation, and are not currently included. These files can be +obtained from Turtle Beach. See Documentation/sound/MultiSound for +information on how to obtain this. +. +MSNDCLAS_IRQ 'MSND Classic IRQ' #5, 7, 9, 10, 11, 12 + +MSNDCLAS_MEM 'MSND Classic memory address' #B0000, C8000, D0000, D8000, E0000, E8000 + +MSNDCLAS_IO 'MSND Classic I/O' #210, 220, 230, 240, 250, 260, 290, 3E0 + +SOUND_MSNDPIN 'Support for Turtle Beach MultiSound Pinnacle, Fiji' text +Say M here if you have a Turtle Beach MultiSound Pinnacle or Fiji. +See Documentation/sound/MultiSound for important information about +this driver. +. +MSNDPIN_INIT_FILE 'Full pathname of PNDSPINI.BIN firmware file' text +The MultiSound cards have two firmware files which are required for +operation, and are not currently included. These files can be +obtained from Turtle Beach. See Documentation/sound/MultiSound for +information on how to obtain this. +. +MSNDPIN_PERM_FILE 'Full pathname of PNDSPERM.BIN firmware file' text +The MultiSound cards have two firmware files which are required for +operation, and are not currently included. These files can be +obtained from Turtle Beach. See Documentation/sound/MultiSound for +information on how to obtain this. +. +MSNDPIN_IRQ 'MSND Pinnacle IRQ' #5, 7, 9, 10, 11, 12 + +MSNDPIN_MEM 'MSND Pinnacle memory' #B0000, C8000, D0000, D8000, E0000, E8000 + +MSNDPIN_IO 'MSND Pinnacle I/O' #210, 220, 230, 240, 250, 260, 290, 3E0 + +MSNDPIN_DIGITAL 'MSND Pinnacle has S/PDIF I/O' text +If you have the S/PDIF daughter board for the Pinnacle or Fiji, +answer Y here; otherwise, say N. If you have this, you will be able +to play and record from the S/PDIF port (digital signal). See +Documentation/sound/MultiSound for information on how to make use of +this capability. +. +MSNDPIN_NONPNP 'MSND Pinnacle non-PnP Mode' text +The Pinnacle and Fiji card resources can be configured either with +PnP, or through a configuration port. Say Y here if your card is NOT +in PnP mode. For the Pinnacle, configuration in non-PnP mode allows +use of the IDE and joystick peripherals on the card as well; these +do not show up when the card is in PnP mode. Specifying zero for any +resource of a device will disable the device. If you are running the +card in PnP mode, you must say N here and use isapnptools to +configure the card's resources. +. +MSNDPIN_CFG 'MSND Pinnacle config port' text +This is the port which the Pinnacle and Fiji uses to configure the +card's resources when not in PnP mode. If your card is in PnP mode, +then be sure to say N to the previous option, "MSND Pinnacle Non-PnP +Mode". +. +MSNDPIN_MPU_IO 'MSND Pinnacle MPU I/O' + +MSNDPIN_MPU_IRQ 'MSND Pinnacle MPU IRQ' + +MSNDPIN_IDE_IO0 'MSND Pinnacle IDE I/O 0' + +MSNDPIN_IDE_IO1 'MSND Pinnacle IDE I/O 1' + +MSNDPIN_IDE_IRQ 'MSND Pinnacle IDE IRQ' + +MSNDPIN_JOYSTICK_IO 'MSND Pinnacle joystick I/O' + +MSND_FIFOSIZE 'MSND buffer size (kB)' text +Configures the size of each audio buffer, in kilobytes, for +recording and playing in the MultiSound drivers (both the Classic +and Pinnacle). Larger values reduce the chance of data overruns at +the expense of overall latency. If unsure, use the default. +. +SOUND_VIA82CXXX 'VIA 82Cxxx Audio Codec' text +Say Y here to include support for the audio codec found on VIA +82Cxxx-based chips. Typically these are built into a motherboard. + +DO NOT select Sound Blaster or Adlib with this driver, unless +you have a Sound Blaster or Adlib card in addition to your VIA +audio chip. +. +MIDI_VIA82CXXX 'VIA 82C686 MIDI' text + Answer Y to use the MIDI interface of the Via686. You may need to + enable this in the BIOS before it will work. This is for connection + to external MIDI hardware, and is not required for software playback + of MIDI files. +. +SOUND_OSS 'OSS sound modules' text +OSS is the Open Sound System suite of sound card drivers. They make +sound programming easier since they provide a common API. Say Y or M +here (the module will be called sound.o) if you haven't found a +driver for your sound card above, then pick your driver from the +list below. +. +SOUND_TRACEINIT 'Verbose initialization' + +SOUND_DMAP 'Persistent DMA buffers' text +Linux can often have problems allocating DMA buffers for ISA sound +cards on machines with more than 16MB of RAM. This is because ISA +DMA buffers must exist below the 16MB boundary and it is quite +possible that a large enough free block in this region cannot be +found after the machine has been running for a while. If you say Y +here the DMA buffers (64Kb) will be allocated at boot time and kept +until the shutdown. This option is only useful if you said Y to +"OSS sound modules", above. If you said M to "OSS sound modules" +then you can get the persistent DMA buffer functionality by passing +the command-line argument "dmabuf=1" to the sound.o module. + +Say Y unless you have 16MB or less RAM or a PCI sound card. +. +SOUND_AD1816 'Support for AD1816(A) based cards' text +Say M here if you have a sound card based on the Analog Devices +AD1816(A) chip. + +If you compile the driver into the kernel, you have to add +"ad1816=,,," to the kernel command line. +. +SOUND_SGALAXY 'Support for Aztech Sound Galaxy (non-PnP) cards' text +This module initializes the older non Plug and Play sound galaxy +cards from Aztech. It supports the Waverider Pro 32 - 3D and the +Galaxy Washington 16. + +If you compile the driver into the kernel, you have to add +"sgalaxy=,,,," to the kernel command +line. +. +SOUND_ADLIB 'Adlib Cards' + +SOUND_ACI_MIXER 'ACI mixer (miroSOUND PCM1-pro/PCM12/PCM20 radio)' text +ACI (Audio Command Interface) is a protocol used to communicate with +the microcontroller on some sound cards produced by miro and Cardinal +Technologies. The main function of the ACI is to control the mixer +and to get a product identification. + +This Voxware ACI driver currently supports the ACI functions on the +miroSOUND PCM1-pro, PCM12 and PCM20 radio. On the PCM20 radio, ACI +also controls the radio tuner. This is supported in the video4linux +miropcm20 driver (say M or Y here and go back to "Multimedia devices" +-> "Radio Adapters"). + +This driver is also available as a module and will be called aci.o. +. +SOUND_CS4232 'Support for Crystal CS4232 based (PnP) cards' text +Say Y here if you have a card based on the Crystal CS4232 chip set, +which uses its own Plug and Play protocol. + +If you compile the driver into the kernel, you have to add +"cs4232=,,,,," to the kernel +command line. + +See Documentation/sound/CS4232 for more information on configuring +this card. +. +SOUND_SSCAPE 'Ensoniq SoundScape support' text +Answer Y if you have a sound card based on the Ensoniq SoundScape +chipset. Such cards are being manufactured at least by Ensoniq, Spea +and Reveal (Reveal makes also other cards). + +If you compile the driver into the kernel, you have to add +"sscape=,,,," to the kernel command +line. +. +SOUND_GUS 'Gravis Ultrasound support' text +Say Y here for any type of Gravis Ultrasound card, including +the GUS or GUS MAX. See also Documentation/sound/ultrasound for +more information on configuring this card with modules. + +If you compile the driver into the kernel, you have to add +"gus=,,," to the kernel command line. +. +SOUND_GUS16 '16 bit sampling option of GUS (_NOT_ GUS MAX)' + +SOUND_GUSMAX 'GUS MAX support' + +SOUND_ICH 'Intel ICH audio support' + +SOUND_RME96XX 'RME Hammerfall (RME96XX) support' + +SOUND_VMIDI 'Loopback MIDI device support' + +SOUND_TRIX 'MediaTriX AudioTriX Pro support' text +Answer Y if you have the AudioTriX Pro sound card manufactured +by MediaTrix. +. +TRIX_HAVE_BOOT 'Have TRXPRO.HEX firmware file' text +The MediaTrix AudioTrix Pro has an on-board microcontroller which +needs to be initialized by downloading the code from the file +TRXPRO.HEX in the DOS driver directory. If you don't have the +TRXPRO.HEX file handy you may skip this step. However, the SB and +MPU-401 modes of AudioTrix Pro will not work without this file! +. +TRIX_BOOT_FILE 'Full pathname of TRXPRO.HEX firmware file' text +Enter the full pathname of your TRXPRO.HEX file, starting from /. +. +SOUND_MSS 'Microsoft Sound System support' text +Again think carefully before answering Y to this question. It's safe +to answer Y if you have the original Windows Sound System card made +by Microsoft or Aztech SG 16 Pro (or NX16 Pro). Also you may say Y +in case your card is NOT among these: + + ATI Stereo F/X, AdLib, Audio Excell DSP16, Cardinal DSP16, + Ensoniq SoundScape (and compatibles made by Reveal and Spea), + Gravis Ultrasound, Gravis Ultrasound ACE, Gravis Ultrasound Max, + Gravis Ultrasound with 16 bit option, Logitech Sound Man 16, + Logitech SoundMan Games, Logitech SoundMan Wave, MAD16 Pro (OPTi + 82C929), Media Vision Jazz16, MediaTriX AudioTriX Pro, Microsoft + Windows Sound System (MSS/WSS), Mozart (OAK OTI-601), Orchid + SW32, Personal Sound System (PSS), Pro Audio Spectrum 16, Pro + Audio Studio 16, Pro Sonic 16, Roland MPU-401 MIDI interface, + Sound Blaster 1.0, Sound Blaster 16, Sound Blaster 16ASP, Sound + Blaster 2.0, Sound Blaster AWE32, Sound Blaster Pro, TI TM4000M + notebook, ThunderBoard, Turtle Beach Tropez, Yamaha FM + synthesizers (OPL2, OPL3 and OPL4), 6850 UART MIDI Interface. + +For cards having native support in VoxWare, consult the card +specific instructions in drivers/sound/Readme.cards. Some drivers +have their own MSS support and saying Y to this option will cause a +conflict. + +If you compile the driver into the kernel, you have to add +"ad1848=,,,[,]" to the kernel command +line. +. +SOUND_MPU401 'MPU-401 support (NOT for SB16)' text +Be careful with this question. The MPU401 interface is supported by +all sound cards. However, some natively supported cards have their +own driver for MPU401. Enabling this MPU401 option with these cards +will cause a conflict. Also, enabling MPU401 on a system that +doesn't really have a MPU401 could cause some trouble. If your card +was in the list of supported cards, look at the card specific +instructions in the drivers/sound/Readme.cards file. It's safe to +answer Y if you have a true MPU401 MIDI interface card. + +If you compile the driver into the kernel, you have to add +"mpu401=," to the kernel command line. +. +SOUND_NM256 'NeoMagic 256AV/256ZX sound chipsets' text +Say M here to include audio support for the NeoMagic 256AV/256ZX +chipsets. These are the audio chipsets found in the Sony +Z505S/SX/DX, some Sony F-series, and the Dell Latitude CPi and CPt +laptops. It includes support for an AC97-compatible mixer and an +apparently proprietary sound engine. + +See Documentation/sound/NM256 for further information. +. +SOUND_MAD16 'Support for OPTi MAD16 and/or Mozart based cards' text +Answer Y if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi +82C928 or 82C929 or 82C931) audio interface chip. These chips are +quite common so it's possible that many no-name cards have one of +them. In addition the MAD16 chip is used in some cards made by known +manufacturers such as Turtle Beach (Tropez), Reveal (some models) +and Diamond (latest ones). Note however that the Tropez sound cards +have their own driver; if you have one of those, say N here and Y or +M to "Full support for Turtle Beach WaveFront", below. + +If you compile the driver into the kernel, you have to add +"mad16=,,,,," to the +kernel command line. + +See also Documentation/sound/Opti and Documentation/sound/MAD16 for +more information on setting these cards up as modules. +. +MAD16_OLDCARD 'Support MIDI in older MAD16 based cards (requires SB)' +text +Answer Y (or M) if you have an older card based on the C928 or +Mozart chipset and you want to have MIDI support. If you enable this +option you also need to enable support for Sound Blaster. +. +SOUND_PAS 'ProAudioSpectrum 16 support' text +Answer Y only if you have a Pro Audio Spectrum 16, ProAudio Studio +16 or Logitech SoundMan 16 sound card. Answer N if you have some +other card made by Media Vision or Logitech since those are not +PAS16 compatible. Please read Documentation/sound/PAS16. +It is not necessary to add Sound Blaster support separately; it +is included in PAS support. + +If you compile the driver into the kernel, you have to add +"pas2=,,,,,,, +to the kernel command line. +. +PAS_JOYSTICK 'Enable PAS16 joystick port' + +SOUND_PSS 'PSS (AD1848, ADSP-2115, ESC614) support' text +Answer Y or M if you have an Orchid SW32, Cardinal DSP16, Beethoven +ADSP-16 or some other card based on the PSS chipset (AD1848 codec + +ADSP-2115 DSP chip + Echo ESC614 ASIC CHIP). For more information on +how to compile it into the kernel or as a module see the file +Documentation/sound/PSS. + +If you compile the driver into the kernel, you have to add +"pss=,,,,," to the kernel +command line. +. +PSS_MIXER 'Enable PSS mixer (Beethoven ADSP-16 and other compatible)' +text +Answer Y for Beethoven ADSP-16. You may try to say Y also for other +cards if they have master volume, bass, treble, and you can't +control it under Linux. If you answer N for Beethoven ADSP-16, you +can't control master volume, bass, treble and synth volume. + +If you said M to "PSS support" above, you may enable or disable this +PSS mixer with the module parameter pss_mixer. For more information +see the file Documentation/sound/PSS. +. +PSS_HAVE_BOOT 'Have DSPxxx.LD firmware file' text +If you have the DSPxxx.LD file or SYNTH.LD file for you card, say Y +to include this file. Without this file the synth device (OPL) may +not work. +. +PSS_BOOT_FILE 'Full pathname of DSPxxx.LD firmware file' text +Enter the full pathname of your DSPxxx.LD file or SYNTH.LD file, +starting from /. +. +SOUND_SB '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' +text +Answer Y if you have an original Sound Blaster card made by Creative +Labs or a 100% hardware compatible clone (like the Thunderboard or +SM Games). For an unknown card you may answer Y if the card claims +to be Sound Blaster-compatible. + +Please read the file Documentation/sound/Soundblaster. + +You should also say Y here for cards based on the Avance Logic +ALS-007 and ALS-1X0 chips (read Documentation/sound/ALS) and for cards +based on ESS chips (read Documentation/sound/ESS1868 and +Documentation/sound/ESS). If you have an SB AWE 32 or SB AWE 64, say +Y here and also to "AWE32 synth" below and read +Documentation/sound/INSTALL.awe. If you have an IBM Mwave card, say +Y here and read Documentation/sound/mwave. + +If you compile the driver into the kernel and don't want to use +isapnp, you have to add "sb=,,," to the kernel +command line. + +You can say M here to compile this driver as a module; the module is +called sb.o. +. +SOUND_AWE32_SYNTH 'SB32/AWE support' text +Say Y here if you have a Sound Blaster SB32, AWE32-PnP, SB AWE64 or +similar sound card. See Documentation/sound/README.awe, +Documentation/sound/AWE32 and the Soundblaster-AWE mini-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto for more +info. +. +SOUND_WAVEFRONT 'Full support for Turtle Beach WaveFront (Tropez Plus, Tropez, Maui) synth/sound cards' +text +Answer Y or M if you have a Tropez Plus, Tropez or Maui sound card +and read the files Documentation/sound/Wavefront and +Documentation/sound/Tropez+. +. +SOUND_MAUI 'Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers' +text +Say Y here if you have a Turtle Beach Wave Front, Maui, or Tropez +sound card. + +If you compile the driver into the kernel, you have to add +"maui=," to the kernel command line. +. +MAUI_HAVE_BOOT 'Have OSWF.MOT firmware file' text +Turtle Beach Maui and Tropez sound cards have a microcontroller +which needs to be initialized prior to use. OSWF.MOT is a file +distributed with the card's DOS/Windows drivers. Answer Y if you +have this file. +. +MAUI_BOOT_FILE 'Full pathname of OSWF.MOT firmware file' text +Enter the full pathname of your OSWF.MOT file, starting from /. +. +SOUND_YM3812 'Yamaha FM synthesizer (YM3812/OPL-3) support' text +Answer Y if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4). +Answering Y is usually a safe and recommended choice, however some +cards may have software (TSR) FM emulation. Enabling FM support with +these cards may cause trouble (I don't currently know of any such +cards, however). +Please read the file Documentation/sound/OPL3 if your card has an +OPL3 chip. + +If you compile the driver into the kernel, you have to add +"opl3=" to the kernel command line. + +If unsure, say Y. +. +SOUND_OPL3SA1 'Yamaha OPL3-SA1 audio controller' text +Say Y or M if you have a Yamaha OPL3-SA1 sound chip, which is +usually built into motherboards. Read Documentation/sound/OPL3-SA +for details. + +If you compile the driver into the kernel, you have to add +"opl3sa=,,,,," to the kernel +command line. +. +SOUND_OPL3SA2 'Support for Yamaha OPL3-SA2 and SA3 based PnP cards' +text +Say Y or M if you have a card based on one of these Yamaha +sound chipsets or the "SAx", which is actually a SA3. Read +Documentation/sound/OPL3-SA2 for more information on configuring +these cards. + +If you compile the driver into the kernel and do not also +configure in the optional ISA PnP support, you will have to add +"opl3sa2=,,,,," to the kernel +command line. +. +SOUND_YMFPCI 'Yamaha YMF7xx PCI audio (native mode)' + +SOUND_YMFPCI_LEGACY 'Yamaha PCI legacy ports support' + +SOUND_UART6850 '6850 UART support' text +This option enables support for MIDI interfaces based on the 6850 +UART chip. This interface is rarely found on sound cards. It's safe +to answer N to this question. + +If you compile the driver into the kernel, you have to add +"uart6850=," to the kernel command line. +. +SOUND_AEDSP16 'Gallant Audio Cards (SC-6000 and SC-6600 based)' text +Answer Y if you have a Gallant's Audio Excel DSP 16 card. This +driver supports Audio Excel DSP 16 but not the III nor PnP versions +of this card. + +The Gallant's Audio Excel DSP 16 card can emulate either an SBPro or +a Microsoft Sound System card, so you should have said Y to either +"100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support" +or "Microsoft Sound System support", above, and you need to answer +the "MSS emulation" and "SBPro emulation" questions below +accordingly. You should say Y to one and only one of these two +questions. + +Read the drivers/sound/lowlevel/README.aedsp16 file and the head of +drivers/sound/lowlevel/aedsp16.c as well as +Documentation/sound/AudioExcelDSP16 to get more information about +this driver and its configuration. +. +SC6600 'SC-6600 based audio cards (new Audio Excel DSP 16)' text +The SC6600 is the new version of DSP mounted on the Audio Excel DSP +16 cards. Find in the manual the FCC ID of your audio card and +answer Y if you have an SC6600 DSP. +. +SC6600_JOY 'SC-6600 Joystick Interface' text +Say Y here in order to use the joystick interface of the Audio Excel +DSP 16 card. +. +SC6600_CDROM 'SC-6600 CD-ROM Interface (4=None, 3=IDE, 1=Panasonic, 0=Sony)' +text +This is used to activate the CDROM interface of the Audio Excel +DSP 16 card. Enter: 0 for Sony, 1 for Panasonic, 2 for IDE, 4 for no +CDROM present. +. +SC6600_CDROMBASE 'SC-6600 CD-ROM Interface I/O Address' + +AEDSP16_SBPRO 'Audio Excel DSP 16 (SBPro emulation)' text +Answer Y if you want your audio card to emulate Sound Blaster Pro. +You should then say Y to "100% Sound Blaster compatibles +(SB16/32/64, ESS, Jazz16) support" and N to "Audio Excel DSP 16 (MSS +emulation)". + +If you compile the driver into the kernel, you have to add +"aedsp16=,,,,," to the kernel +command line. +. +AEDSP16_MSS 'Audio Excel DSP 16 (MSS emulation)' text +Answer Y if you want your audio card to emulate Microsoft Sound +System. You should then say Y to "Microsoft Sound System support" +and say N to "Audio Excel DSP 16 (SBPro emulation)". +. +AEDSP16_MPU401 'Audio Excel DSP 16 (MPU401 emulation)' text +Answer Y if you want your audio card to emulate the MPU-401 midi +interface. You should then also say Y to "MPU-401 support". + +Note that the I/O base for MPU-401 support of aedsp16 is the same +you have selected for "MPU-401 support". If you are using this +driver as a module you have to specify the MPU I/O base address with +the parameter 'mpu_base=0xNNN'. +. +SOUND_VIDC 'VIDC 16-bit sound' + +SOUND_WAVEARTIST 'Rockwell WaveArtist' text +Say Y here to include support for the Rockwell WaveArtist sound +system. This driver is mainly for the NetWinder. +. +SOUND_TVMIXER 'TV card (bt848) mixer support' + +# +# CD-ROM driver configuration +AZTCD 'Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CD-ROM support' text +This is your driver if you have an Aztech CDA268-01A, Orchid +CD-3110, Okano or Wearnes CDD110, Conrad TXC, or CyCDROM CR520 or +CR540 CDROM drive. This driver -- just like all these CDROM drivers +-- is NOT for CDROM drives with IDE/ATAPI interfaces, such as Aztech +CDA269-031SE. Please read the file Documentation/cdrom/aztcd. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called aztcd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +GSCD 'Goldstar R420 CD-ROM support' text +If this is your CDROM drive, say Y here. As described in the file +Documentation/cdrom/gscd, you might have to change a setting +in the file drivers/cdrom/gscd.h before compiling the +kernel. Please read the file Documentation/cdrom/gscd. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called gscd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SBPCD 'Matsushita/Panasonic/Creative, Longshine, TEAC CD-ROM support' +text +This driver supports most of the drives which use the Panasonic or +Sound Blaster interface. Please read the file +Documentation/cdrom/sbpcd. + +The Matsushita CR-521, CR-522, CR-523, CR-562, CR-563 drives +(sometimes labeled "Creative"), the Creative Labs CD200, the +Longshine LCS-7260, the "IBM External ISA CDROM" (in fact a CR-56x +model), the TEAC CD-55A fall under this category. Some other +"electrically compatible" drives (Vertos, Genoa, some Funai models) +are currently not supported; for the Sanyo H94A drive currently a +separate driver (asked later) is responsible. Most drives have a +uniquely shaped faceplate, with a caddyless motorized drawer, but +without external brand markings. The older CR-52x drives have a +caddy and manual loading/eject, but still no external markings. The +driver is able to do an extended auto-probing for interface +addresses and drive types; this can help to find facts in cases you +are not sure, but can consume some time during the boot process if +none of the supported drives gets found. Once your drive got found, +you should enter the reported parameters into drivers/cdrom/sbpcd.h +and set "DISTRIBUTION 0" there. + +This driver can support up to four CDROM controller cards, and each +card can support up to four CDROM drives; if you say Y here, you +will be asked how many controller cards you have. If compiled as a +module, only one controller card (but with up to four drives) is +usable. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sbpcd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SBPCD2 'Matsushita/Panasonic, ... second CD-ROM controller support' +text +Say Y here only if you have two CDROM controller cards of this type +(usually only if you have more than four drives). You should enter +the parameters for the second, third and fourth interface card into +include/linux/sbpcd.h before compiling the new kernel. Read +the file Documentation/cdrom/sbpcd. +. +SBPCD3 'Matsushita/Panasonic, ... third CD-ROM controller support' + +SBPCD4 'Matsushita/Panasonic, ... fourth CD-ROM controller support' + +MCD 'Standard Mitsumi [no XA/Multisession] CD-ROM support' text +This is the older of the two drivers for the older Mitsumi models +LU-005, FX-001 and FX-001D. This is not the right driver for the +FX-001DE and the triple or quad speed models (all these are +IDE/ATAPI models). Please also the file Documentation/cdrom/mcd. + +With the old LU-005 model, the whole drive chassis slides out for cd +insertion. The FX-xxx models use a motorized tray type mechanism. +Note that this driver does not support XA or MultiSession CDs +(PhotoCDs). There is a new driver (next question) which can do +this. If you want that one, say N here. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called mcd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +MCD_IRQ 'IRQ channel for Mitsumi CD-ROM' text +This allows you to specify the default value of the IRQ used by the +driver. This setting can be overridden by passing the "mcd=" +parameter to the kernel at boot time (or at module load time if you +said M to "Standard Mitsumi CDROM support"). +. +MCD_BASE 'I/O base address for Mitsumi CD-ROM' text +This allows you to specify the default value of the I/O base address +used by the driver. This setting can be overridden by passing the +"mcd=" parameter to the kernel at boot time (or at module load time +if you said M to "Standard Mitsumi CDROM support"). +. +MCDX 'Mitsumi [XA/MultiSession] CD-ROM support' text +Use this driver if you want to be able to read XA or MultiSession +CDs (PhotoCDs) as well as ordinary CDs with your Mitsumi LU-005, +FX-001 or FX-001D CDROM drive. In addition, this driver uses much +less kernel memory than the old one, if that is a concern. This +driver is able to support more than one drive, but each drive needs +a separate interface card. Please read the file +Documentation/cdrom/mcdx. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called mcdx.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +OPTCD 'Optics Storage DOLPHIN 8000AT CD-ROM support' text +This is the driver for the 'DOLPHIN' drive with a 34-pin Sony +compatible interface. It also works with the Lasermate CR328A. If +you have one of those, say Y. This driver does not work for the +Optics Storage 8001 drive; use the IDE-ATAPI CDROM driver for that +one. Please read the file Documentation/cdrom/optcd. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called optcd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +CM206 'Philips/LMS CM206 CD-ROM support' text +If you have a Philips/LMS CDROM drive cm206 in combination with a +cm260 host adapter card, say Y here. Please also read the file +Documentation/cdrom/cm206. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called cm206.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +SJCD 'Sanyo CDR-H94A CD-ROM support' text +If this is your CDROM drive, say Y here and read the file +Documentation/cdrom/sjcd. You should then also say Y or M to +"ISO 9660 CDROM file system support" below, because that's the +file system used on CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sjcd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +ISP16_CDI 'ISP16/MAD16/Mozart soft configurable cdrom interface support' +text +These are sound cards with built-in cdrom interfaces using the OPTi +82C928 or 82C929 chips. Say Y here to have them detected and +possibly configured at boot time. In addition, You'll have to say Y +to a driver for the particular cdrom drive you have attached to the +card. Read Documentation/cdrom/isp16 for details. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called isp16.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +CDU31A 'Sony CDU31A/CDU33A CD-ROM support' text +These CDROM drives have a spring-pop-out caddyless drawer, and a +rectangular green LED centered beneath it. NOTE: these CDROM drives +will not be auto detected by the kernel at boot time; you have to +provide the interface address as an option to the kernel at boot +time as described in Documentation/cdrom/cdu31a or fill in your +parameters into drivers/cdrom/cdu31a.c. Try "man bootparam" or +see the documentation of your boot loader (lilo or loadlin) about +how to pass options to the kernel. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called cdu31a.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +CDU535 'Sony CDU535 CD-ROM support' text +This is the driver for the older Sony CDU-535 and CDU-531 CDROM +drives. Please read the file Documentation/cdrom/sonycd535. + +If you say Y here, you should also say Y or M to "ISO 9660 CDROM +file system support" below, because that's the file system used on +CDROMs. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called sonycd535.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +# +# ISDN device configuration +ISDN 'ISDN support' text +ISDN ("Integrated Services Digital Networks", called RNIS in France) +is a special type of fully digital telephone service; it's mostly +used to connect to your Internet service provider (with SLIP or +PPP). The main advantage is that the speed is higher than ordinary +modem/telephone connections, and that you can have voice +conversations while downloading stuff. It only works if your +computer is equipped with an ISDN card and both you and your service +provider purchased an ISDN line from the phone company. For details, +read http://alumni.caltech.edu/~dank/isdn/ on the WWW. + +This driver allows you to use an ISDN-card for networking +connections and as dialin/out device. The isdn-tty's have a built in +AT-compatible modem emulator. Network devices support autodial, +channel-bundling, callback and caller-authentication without having +a daemon running. A reduced T.70 protocol is supported with tty's +suitable for German BTX. On D-Channel, the protocols EDSS1 +(Euro-ISDN) and 1TR6 (German style) are supported. See +Documentation/isdn/README for more information. + +If you want to compile the ISDN code as a module ( = code which can +be inserted in and removed from the running kernel whenever you +want), say M here and read Documentation/modules.txt. The module +will be called isdn.o. If unsure, say N. +. +ISDN_PPP 'Support synchronous PPP' text +Over digital connections such as ISDN, there is no need to +synchronize sender and recipient's clocks with start and stop bits +as is done over analog telephone lines. Instead, one can use +"synchronous PPP". Saying Y here will include this protocol. This +protocol is used by Cisco and Sun for example. So you want to say Y +here if the other end of your ISDN connection supports it. You will +need a special version of pppd (called ipppd) for using this +feature. See Documentation/isdn/README.syncppp and +Documentation/isdn/syncPPP.FAQ for more information. +. +ISDN_PPP_VJ 'Use VJ-compression with synchronous PPP' text +This enables Van Jacobson header compression for synchronous PPP. +. +ISDN_MPP 'Support generic MP (RFC 1717)' text +With synchronous PPP enabled, it is possible to increase throughput +by bundling several ISDN-connections, using this protocol. See +Documentation/isdn/README.syncppp for more information. +. +ISDN_PPP_BSDCOMP 'Support BSD compression' text +Support for the BSD-Compress compression method for PPP, which uses +the LZW compression method to compress each PPP packet before it is +sent over the wire. The machine at the other end of the PPP link +(usually your ISP) has to support the BSD-Compress compression +method as well for this to be useful. Even if they don't support it, +it is safe to say Y here. +. +ISDN_AUDIO 'Support audio via ISDN' text +If you say Y here, the modem-emulator will support a subset of the +EIA Class 8 Voice commands. Using a getty with voice-support +(mgetty+sendfax by gert@greenie.muc.de with an extension, available +with the ISDN utility package for example), you will be able to use +your Linux box as an ISDN-answering machine. Of course, this must be +supported by the lowlevel driver also. Currently, the HiSax driver +is the only voice-supporting driver. See +Documentation/isdn/README.audio for more information. +. +ISDN_TTY_FAX 'Support AT-Fax Class 1 and 2 commands' text +If you say Y here, the modem-emulator will support a subset of the +Fax Class 1 and 2 commands. Using a getty with fax-support +(mgetty+sendfax, hylafax), you will be able to use your Linux box as +an ISDN-fax-machine. This must be supported by the lowlevel driver +also. See Documentation/isdn/README.fax for more information. +. +ISDN_X25 'X.25 PLP on top of ISDN' text +This feature provides the X.25 protocol over ISDN connections. +See Documentation/isdn/README.x25 for more information +if you are thinking about using this. +. +ISDN_DRV_LOOP 'isdnloop support' text +This driver provides a virtual ISDN card. Its primary purpose is +testing of linklevel features or configuration without getting +charged by your service-provider for lots of phone calls. +You need will need the loopctrl utility from the latest isdn4k-utils +package to set up this driver. +. +ISDN_DIVERSION 'ISDN diversion services support' text +This option allows you to use some supplementary diversion +services in conjunction with the HiSax driver on an EURO/DSS1 +line. + +Supported options are CD (call deflection), CFU (Call forward +unconditional), CFB (Call forward when busy) and CFNR (call forward +not reachable). Additionally the actual CFU, CFB and CFNR state may +be interrogated. + +The use of CFU, CFB, CFNR and interrogation may be limited to some +countries. The keypad protocol is still not implemented. CD should +work in all countries if the service has been subscribed to. + +Please read the file Documentation/isdn/README.diversion. +. +ISDN_DRV_HISAX 'HiSax SiemensChipSet driver support' text +This is a driver supporting the Siemens chipset on various +ISDN-cards (like AVM A1, Elsa ISDN cards, Teles S0-16.0, Teles +S0-16.3, Teles S0-8, Teles/Creatix PnP, ITK micro ix1 and many +compatibles). + +HiSax is just the name of this driver, not the name of any hardware. + +If you have a card with such a chipset, you should say Y here and +also to the configuration option of the driver for your particular +card, below. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called hisax.o. See Documentation/isdn/README.HiSax for more +information on using this driver. +. +HISAX_EURO 'HiSax Support for EURO/DSS1' text +Say Y or N according to the D-channel protocol which your local +telephone service company provides. + +The call control protocol E-DSS1 is used in most European countries. +If unsure, say yes. +. +DE_AOC 'Support for German chargeinfo' text +If you want that the HiSax hardware driver sends messages to the +upper level of the isdn code on each AOCD (Advice Of Charge, During +the call -- transmission of the fee information during a call) and +on each AOCE (Advice Of Charge, at the End of the call -- +transmission of fee information at the end of the call), say Y here. +This works only in Germany. +. +HISAX_NO_SENDCOMPLETE 'Disable sending complete' text +If you have trouble with some ugly exchanges or you live in +Australia select this option. +. +HISAX_NO_LLC 'Disable sending low layer compatibility' text +If you have trouble with some ugly exchanges try to select this +option. +. +HISAX_NO_KEYPAD 'Disable keypad protocol option' text +If you like to send special dial strings including * or # without +using the keypad protocol, select this option. +. +HISAX_1TR6 'HiSax Support for German 1TR6' text +Say Y or N according to the D-channel protocol which your local +telephone service company provides. + +1TR6 is an old call control protocol which was used in Germany +before E-DSS1 was established. Nowadays, all new lines in Germany +use E-DSS1. +. +HISAX_NI1 'HiSax Support for US NI1' text +Enable this if you like to use ISDN in US on a NI1 basic rate interface. +. +HISAX_16_0 'Teles 16.0/8.0' text +This enables HiSax support for the Teles ISDN-cards S0-16.0, S0-8 +and many compatibles. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port/shmem settings. +. +HISAX_16_3 'Teles 16.3 or PNP or PCMCIA' text +This enables HiSax support for the Teles ISDN-cards S0-16.3 the +Teles/Creatix PnP and the Teles PCMCIA. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_TELESPCI 'Teles PCI' text +This enables HiSax support for the Teles PCI. +See Documentation/isdn/README.HiSax on how to configure it. +. +HISAX_S0BOX 'Teles S0Box' text +This enables HiSax support for the Teles/Creatix parallel port +S0BOX. See Documentation/isdn/README.HiSax on how to configure it. +. +HISAX_AVM_A1 'AVM A1 (Fritz)' text +This enables HiSax support for the AVM A1 (aka "Fritz"). + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_FRITZPCI 'AVM PnP/PCI (Fritz!PnP/PCI)' text +This enables HiSax support for the AVM "Fritz!PnP" and "Fritz!PCI". +See Documentation/isdn/README.HiSax on how to configure it. +. +HISAX_AVM_A1_PCMCIA 'AVM A1 PCMCIA (Fritz)' text +This enables HiSax support for the AVM A1 "Fritz!PCMCIA"). +See Documentation/isdn/README.HiSax on how to configure it. +. +HISAX_ELSA 'Elsa cards' text +This enables HiSax support for the Elsa Mircolink ISA cards, for the +Elsa Quickstep series cards and Elsa PCMCIA. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_IX1MICROR2 'ITK ix1-micro Revision 2' text +This enables HiSax support for the ITK ix1-micro Revision 2 card. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_DIEHLDIVA 'Eicon.Diehl Diva cards' text +This enables HiSax support for the Eicon.Diehl Diva none PRO +versions passive ISDN cards. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_ASUSCOM 'ASUSCOM ISA cards' text +This enables HiSax support for the AsusCom and their OEM versions +passive ISDN ISA cards. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_TELEINT 'TELEINT cards' text +This enables HiSax support for the TELEINT SA1 semiactiv ISDN card. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_HFCS 'HFC-S based cards' text +This enables HiSax support for the HFC-S 2BDS0 based cards, like +teles 16.3c. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_SEDLBAUER 'Sedlbauer cards' text +This enables HiSax support for the Sedlbauer passive ISDN cards. + +See Documentation/isdn/README.HiSax on how to configure it using the +different cards, a different D-channel protocol, or non-standard +IRQ/port settings. +. +HISAX_ELSA_CS 'ELSA PCMCIA MicroLink cards' + +HISAX_SPORTSTER 'USR Sportster internal TA' text +This enables HiSax support for the USR Sportster internal TA card. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_MIC 'MIC card' text +This enables HiSax support for the ITH MIC card. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_NETJET 'NETjet card' text +This enables HiSax support for the NetJet from Traverse +Technologies. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_NETJET_U 'NETspider U card' text +This enables HiSax support for the Netspider U interface ISDN card from +Traverse Technologies. +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_NICCY 'Niccy PnP/PCI card' text +This enables HiSax support for the Dr. Neuhaus Niccy PnP or PCI. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_ISURF 'Siemens I-Surf card' text +This enables HiSax support for the Siemens I-Talk/I-Surf card with +ISAR chip. +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_HSTSAPHIR 'HST Saphir card' text +This enables HiSax support for the HST Saphir card. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_BKM_A4T 'Telekom A4T card' text +This enables HiSax support for the Telekom A4T card. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_SCT_QUADRO 'Scitel Quadro card' text +This enables HiSax support for the Scitel Quadro card. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_GAZEL 'Gazel cards' text +This enables HiSax support for the Gazel cards. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_HFC_PCI 'HFC PCI-Bus cards' text +This enables HiSax support for the HFC-S PCI 2BDS0 based cards. + +For more informations see under Documentation/isdn/README.hfc-pci. +. +HISAX_W6692 'Winbond W6692 based cards' text +This enables HiSax support for Winbond W6692 based PCI ISDN cards. + +See Documentation/isdn/README.HiSax on how to configure it using a +different D-channel protocol, or non-standard IRQ/port settings. +. +HISAX_HFC_SX 'HFC-S+, HFC-SP, HFC-PCMCIA cards' text +This enables HiSax support for the HFC-S+, HFC-SP and HFC-PCMCIA +cards. This code is not finished yet. +. +#HISAX_TESTEMU 'TESTEMULATOR' +HISAX_AMD7930 'Am7930' text +This enables HiSax support for the AMD7930 chips on some SPARCs. +This code is not finished yet. +. +HISAX_ST5481 'ST5481 USB ISDN modem' + +HISAX_DEBUG 'HiSax debugging' + +HISAX_SEDLBAUER_CS 'Sedlbauer PCMCIA cards' + +ISDN_DRV_ICN 'ICN 2B and 4B support' text +This enables support for two kinds of ISDN-cards made by a German +company called ICN. 2B is the standard version for a single ISDN +line with two B-channels, 4B supports two ISDN lines. For running +this card, additional firmware is necessary, which has to be +downloaded into the card using a utility which is distributed +separately. See Documentation/isdn/README and README.icn for more +information. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called icn.o. +. +ISDN_DRV_PCBIT 'PCBIT-D support' text +This enables support for the PCBIT ISDN-card. This card is +manufactured in Portugal by Octal. For running this card, additional +firmware is necessary, which has to be downloaded into the card +using a utility which is distributed separately. See +Documentation/isdn/README and Documentation/isdn/README.pcbit for +more information. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called pcbit.o. +. +ISDN_DRV_SC 'Spellcaster support' text +This enables support for the Spellcaster BRI ISDN boards. This +driver currently builds only in a modularized version ( = code which +can be inserted in and removed from the running kernel whenever you +want, details in Documentation/modules.txt); the module will be +called sc.o. See Documentation/isdn/README.sc and +http://www.spellcast.com for more information. +. +ISDN_DRV_ACT2000 'IBM Active 2000 support' text +Say Y here if you have an IBM Active 2000 ISDN card. In order to use +this card, additional firmware is necessary, which has to be loaded +into the card using a utility which is part of the latest +isdn4k-utils package. Please read the file +Documentation/isdn/README.act2000 for more information. +. +ISDN_DRV_EICON 'Eicon active card support' text +Say Y here if you have an Eicon active ISDN card. In order to use +this card, additional firmware is necessary, which has to be loaded +into the card using the eiconctrl utility which is part of the +latest isdn4k-utils package. Please read the file +Documentation/isdn/README.eicon for more information. +. +ISDN_DRV_EICON_OLD 'Legacy Eicon driver' + +ISDN_DRV_EICON_DIVAS 'Eicon driver type standalone' + +ISDN_DRV_EICON_ISA 'Eicon old-type (S,SX,SCOM,Quadro,S2M) card support' +text +Say Y here if you have an old-type Eicon active ISDN card. In order +to use this card, additional firmware is necessary, which has to be +loaded into the card using the eiconctrl utility which is part of +the latest isdn4k-utils package. Please read the file +Documentation/isdn/README.eicon for more information. +. +ISDN_DRV_EICON_PCI 'Eicon PCI DIVA Server BRI/PRI/4BRI support' text +Say Y here if you have an Eicon Diva Server (BRI/PRI/4BRI) ISDN card. +Please read Documentation/isdn/README.eicon for more information. +. +ISDN_DRV_TPAM 'Auvertech TurboPAM support' text +This enables support for the Auvertech TurboPAM ISDN-card. +For running this card, additional firmware is necessary, which has +to be downloaded into the card using a utility which is distributed +separately from the Auvertech's web site: http://www.auvertech.fr. + +Please redirect all support questions to support@auvertech.fr. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called tpam.o. +. +ISDN_CAPI 'CAPI2.0 support' text +This provides the CAPI (Common ISDN Application Programming +Interface, a standard making it easy for programs to access ISDN +hardware, see http://www.capi.org/ . This is needed for AVM's set of +active ISDN controllers like B1, T1, M1. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The modules will be called capi.o and kernelcapi.o. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. +. +ISDN_CAPI_CAPI20 'CAPI2.0 /dev/capi20 support' + +ISDN_CAPI_MIDDLEWARE 'CAPI2.0 Middleware support' + +ISDN_CAPI_CAPIFS 'CAPI2.0 filesystem support' + +ISDN_CAPI_CAPIDRV 'CAPI2.0 capidrv interface support' + +ISDN_DRV_AVMB1_B1ISA 'AVM B1 ISA support' text +Enable support for the ISA version of the AVM B1 card. +. +ISDN_DRV_AVMB1_B1PCI 'AVM B1 PCI support' text +Enable support for the PCI version of the AVM B1 card. +. +ISDN_DRV_AVMB1_B1PCIV4 'AVM B1 PCI V4 support' text +Enable support for the V4 version of AVM B1 PCI card. +. +ISDN_DRV_AVMB1_T1ISA 'AVM T1/T1-B ISA support' text +Enable support for the AVM T1 T1B card. +Note: This is a PRI card and handle 30 B-channels. +. +ISDN_DRV_AVMB1_B1PCMCIA 'AVM B1/M1/M2 PCMCIA support' text +Enable support for the PCMCIA version of the AVM B1 card. +. +ISDN_DRV_AVMB1_AVM_CS 'AVM B1/M1/M2 PCMCIA cs module' + +ISDN_DRV_AVMB1_T1PCI 'AVM T1/T1-B PCI support' text +Enable support for the AVM T1 T1B card. +Note: This is a PRI card and handle 30 B-channels. +. +ISDN_DRV_AVMB1_C4 'AVM C4/C2 support' text +Enable support for the AVM C4/C2 PCI cards. +These cards handle 4/2 BRI ISDN lines (8/4 channels). +. +ISDN_DRV_AVMB1_VERBOSE_REASON 'Verbose reason code reporting (kernel size +=7K)' +text +If you say Y here, the AVM B1 driver will give verbose reasons for +disconnecting. This will increase the size of the kernel by 7 KB. If +unsure, say Y. +. +HYSDN 'Hypercope HYSDN cards (Champ, Ergo, Metro) support (module)' +text +Say Y here if you have one of Hypercope's active PCI ISDN cards +Champ, Ergo and Metro. You will then get a module called hysdn.o. +Please read the file Documentation/isdn/README.hysdn for more +information. +. +HYSDN_CAPI 'HYSDN CAPI 2.0 support' text +Say Y here if you like to use Hypercope's CAPI 2.0 interface +. +# +# Sun-specific hacks +SUN_OPENPROMIO '/dev/openprom device support' text +This driver provides user programs with an interface to the SPARC +PROM device tree. The driver implements a SunOS-compatible +interface and a NetBSD-compatible interface. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M and read Documentation/modules.txt. If unsure, say Y. +. +SUN_MOSTEK_RTC 'Mostek real time clock support' text +The Mostek RTC chip is used on all known Sun computers except +some JavaStations. For a JavaStation you need to say Y both here +and to "Enhanced Real Time Clock Support". + +Say Y here unless you are building a special purpose kernel. +. +SAB82532 'Siemens SAB82532 serial support' text +This driver supports the serial ports on newer (PCI) Ultra systems. +Say Y if you want to be able to use your serial ports. +. +OBP_FLASH 'OBP Flash Device support' text +The OpenBoot PROM on Ultra systems is flashable. If you want to be +able to upgrade the OBP firmware, say Y here. +. +SUN_VIDEOPIX 'Videopix Frame Grabber' + +SUN_AURORA 'Aurora Multiboard 1600se' text +The Aurora Multiboard is a multi-port high-speed serial controller. +If you have one of these, say Y. +. +TADPOLE_TS102_UCTRL 'Tadpole TS102 Microcontroller support' + +SUN_JSFLASH 'JavaStation OS Flash SIMM' text +If you say Y here, you will be able to boot from your JavaStation's +Flash memory. +. +# +# Configuration for sparcaudio subsystem +SPARCAUDIO 'Audio support' text +This driver provides support for the build-in sound devices on most +Sun machines. If you want to be able to use this, select this option +and one or more of the lowlevel drivers below. See +http://www.dementia.org/~shadow/sparcaudio.html for more +information. +. +SPARCAUDIO_AMD7930 'AMD7930 Lowlevel Driver' text +This driver supports the AMD 7930 chip found on sun4c, 4/6xx, and +SparcClassic systems. +. +SPARCAUDIO_CS4231 'CS4231 Lowlevel Driver' text +This driver supports the Crystal Semiconductor CS4231 chip found on +the SS4, SS5, and Ultras. +. +SPARCAUDIO_DBRI 'DBRI Lowlevel Driver' text +This driver supports the DBRI audio interface found on the SS10, +SS20, Sparcbook 3, and Voyager systems. +. +SPARCAUDIO_DUMMY 'Dummy Lowlevel Driver' text +This is a pseudo-driver used for debugging and testing the +sparcaudio subsystem. Say N unless you want to work on this +subsystem. +. +# +# Plug and Play configuration +PNP 'Plug and Play support' text +Plug and Play (PnP) is a standard for peripherals which allows those +peripherals to be configured by software, e.g. assign IRQ's or other +parameters. No jumpers on the cards are needed, instead the values +are provided to the cards from the BIOS, from the operating system, +or using a user-space utility. + +Say Y here if you would like Linux to configure your Plug and Play +devices. You should then also say Y to "ISA Plug and Play support", +below. Alternatively, you can say N here and configure your PnP +devices using the user space utilities contained in the isapnptools +package. + +This support is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +ISAPNP 'ISA Plug and Play support' text +Say Y here if you would like support for ISA Plug and Play devices. +Some information is in Documentation/isapnp.txt. + +This support is also available as a module called isapnp.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. + +If unsure, say Y. +. +# +# Video configuration +FB 'Support for frame buffer devices' text +The frame buffer device provides an abstraction for the graphics +hardware. It represents the frame buffer of some video hardware and +allows application software to access the graphics hardware through +a well-defined interface, so the software doesn't need to know +anything about the low-level (hardware register) stuff. + +Frame buffer devices work identically across the different +architectures supported by Linux and make the implementation of +application programs easier and more portable; at this point, an X +server exists which uses the frame buffer device exclusively. +On several non-X86 architectures, the frame buffer device is the +only way to use the graphics hardware. + +The device is accessed through special device nodes, usually located +in the /dev directory, i.e. /dev/fb*. + +You need an utility program called fbset to make full use of frame +buffer devices. Please read Documentation/fb/framebuffer.txt and the +Framebuffer-HOWTO at +http://www.tahallah.demon.co.uk/programming/prog.html for more +information. + +Say Y here and to the driver for your graphics board below if you +are compiling a kernel for a non-x86 architecture. + +If you are compiling for the x86 architecture, you can say Y if you +want to play with it, but it is not essential. Please note that +running graphical applications that directly touch the hardware +(e.g. an accelerated X server) and that are not frame buffer +device-aware may cause unexpected results. If unsure, say N. +. +FB_RIVA 'nVidia Riva support' text +This driver supports graphics boards with the nVidia Riva/Geforce +chips. +Say Y if you have such a graphics board. + +The driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). The +module will be called rivafb.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +FB_CLGEN 'Cirrus Logic generic driver' text +This enables support for Cirrus Logic GD542x/543x based boards on +Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum. + +If you have a PCI-based system, this enables support for these +chips: GD-543x, GD-544x, GD-5480. + +Please read the file Documentation/fb/clgenfb.txt. + +Say N unless you have such a graphics board or plan to get one +before you next recompile the kernel. +. +FB_PM2 'Permedia2 support' text +Say Y here if this is your graphics board. +. +FB_PM2_FIFO_DISCONNECT 'Enable FIFO disconnect feature' + +FB_PM2_PCI 'Generic Permedia2 PCI board support' + +FB_PM2_CVPPC 'Phase5 CVisionPPC/BVisionPPC support' + +FB_ACORN 'Acorn VIDC support' text +This is the frame buffer device driver for the Acorn VIDC graphics +hardware found in Acorn RISC PCs and other ARM-based machines. If +unsure, say N. +. +FB_CYBER2000 'CyberPro 20x0 support' text +This enables support for the Integraphics CyberPro 20x0 and 5000 +VGA chips used in the Rebel.com Netwinder and other machines. +Say Y if you have a NetWinder or a graphics card containing this +device, otherwise say N. +. +FB_SA1100 'SA-1100 LCD support' text +This is a framebuffer device for the SA-1100 LCD Controller. +See http://www.linux-fbdev.org/ for information on framebuffer +devices. + +If you plan to use the LCD display with your SA-1100 system, say +Y here. +. +FB_AMIGA 'Amiga native chipset support' text +This is the frame buffer device driver for the builtin graphics +chipset found in Amigas. + +The driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). The +module will be called amifb.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +FB_AMIGA_OCS 'Amiga OCS chipset support' text +This enables support for the original Agnus and Denise video chips, +found in the Amiga 1000 and most A500's and A2000's. If you intend +to run Linux on any of these systems, say Y; otherwise say N. +. +FB_AMIGA_ECS 'Amiga ECS chipset support' text +This enables support for the Enhanced Chip Set, found in later +A500's, later A2000's, the A600, the A3000, the A3000T and CDTV. If +you intend to run Linux on any of these systems, say Y; otherwise +say N. +. +FB_AMIGA_AGA 'Amiga AGA chipset support' text +This enables support for the Advanced Graphics Architecture (also +known as the AGA or AA) Chip Set, found in the A1200, A4000, A4000T +and CD32. If you intend to run Linux on any of these systems, say Y; +otherwise say N. +. +FB_CYBER 'Amiga CyberVision support' text +This enables support for the Cybervision 64 graphics card from +Phase5. Please note that its use is not all that intuitive (i.e. if +you have any questions, be sure to ask!). Say N unless you have a +Cybervision 64 or plan to get one before you next recompile the +kernel. Please note that this driver DOES NOT support the +Cybervision 64 3D card, as they use incompatible video chips. +. +FB_VIRGE 'Amiga CyberVision3D support' text +This enables support for the Cybervision 64/3D graphics card from +Phase5. Please note that its use is not all that intuitive (i.e. if +you have any questions, be sure to ask!). Say N unless you have a +Cybervision 64/3D or plan to get one before you next recompile the +kernel. Please note that this driver DOES NOT support the older +Cybervision 64 card, as they use incompatible video chips. +. +FB_RETINAZ3 'Amiga RetinaZ3 support' text +This enables support for the Retina Z3 graphics card. Say N unless +you have a Retina Z3 or plan to get one before you next recompile +the kernel. +. +FB_FM2 'Amiga FrameMaster II/Rainbow II support' + +FB_ATARI 'Atari native chipset support' text +This is the frame buffer device driver for the builtin graphics +chipset found in Ataris. +. +FB_ATY 'ATI Mach64 display support' text +This driver supports graphics boards with the ATI Mach64 chips. +Say Y if you have such a graphics board. + +The driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). The +module will be called atyfb.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +FB_ATY_GX 'Mach64 GX support' text +This options adds support for the first generation ATI Mach64 +graphics chips, i.e. the Mach64 GX and CX. Note that this support is +limited. +. +FB_ATY_CT 'Mach64 CT/VT/GT/LT (incl. 3D RAGE) support' text +This option adss support for ATI Mach64 graphics chips starting +with the Mach64 CT family. This includes the Mach64 VT (limited +support), GT (3D RAGE family), and LT. +. +FB_OF 'Open Firmware frame buffer device support' text +Say Y if you want support with Open Firmware for your graphics +board. +. +FB_CONTROL 'PowerMac "control" frame buffer device support' text +This driver supports a frame buffer for the graphics adapter in the +Power Macintosh 7300 and others. +. +FB_PLATINUM 'PowerMac "platinum" frame buffer device support' text +This driver supports a frame buffer for the "platinum" graphics +adapter in some Power Macintoshes. +. +FB_VALKYRIE 'PowerMac "valkyrie" frame buffer device support' text +This driver supports a frame buffer for the "valkyrie" graphics +adapter in some Power Macintoshes. +. +FB_IMSTT 'IMS Twin Turbo display support' + +FB_CT65550 'Chips 65550 display support' text +This is the frame buffer device driver for the Chips & Technologies +65550 graphics chip in PowerBooks. +. +FB_S3TRIO 'S3 Trio frame buffer device support' text +If you have a S3 Trio say Y. Say N for S3 Virge. +. +FB_VGA16 'VGA 16-color graphics console' text +This is the frame buffer device driver for VGA 16 color graphic +cards. Say Y if you have such a card. + +This code is also available as a module. If you want to compile it +as a module ( = code which can be inserted in and removed from the +running kernel whenever you want), say M here and read +Documentation/modules.txt. The module will be called vga16fb.o. +. +FB_STI 'Generic STI frame buffer device support' + +FB_TGA 'TGA frame buffer support' text +This is the frame buffer device driver for generic TGA graphic +cards. Say Y if you have one of those. +. +FB_VESA 'VESA VGA graphics console' text +This is the frame buffer device driver for generic VESA 2.0 +compliant graphic cards. The older VESA 1.2 cards are not supported. +You will get a boot time penguin logo at no additional cost. Please +read Documentation/fb/vesafb.txt. If unsure, say Y. +. +FB_HGA 'Hercules (HGA) mono graphics support' text +Say Y here if you have a Hercules mono graphics card. + +This driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). +The module will be called hgafb.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. + +As this card technology is 15 years old, most people will answer N +here. +. +#FB_SGIVW 'SGI Visual Workstation framebuffer support' +#FB_SUN3 'Sun3 framebuffer support' +FB_BWTWO 'BWtwo support' text +This is the frame buffer device driver for the BWtwo frame buffer. +. +FB_CGSIX 'CGsix (GX,TurboGX) support' text +This is the frame buffer device driver for the CGsix (GX, TurboGX) +frame buffer. +. +FB_PVR2 'NEC PowerVR 2 display support' text +Say Y here if you have a PowerVR 2 card in your box. If you plan to +run linux on your Dreamcast, you will have to say Y here. This driver +may or may not work on other PowerVR 2 cards, but is totally untested. +Use at your own risk. If unsure, say N. + +This driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). +The module will be called pvr2fb.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. + +You can pass several parameters to the driver at boot time or at +module load time. The parameters look like "video=pvr2:XXX", where +the meaning of XXX can be found at the end of the main source file +(drivers/video/pvr2fb.c). Please see the file +Documentation/fb/pvr2fb.txt. +. +FB_PVR2_DEBUG 'Debug pvr2fb' text +Say Y here if you wish for the pvr2fb driver to print out debugging +messages. Most people will want to say N here. If unsure, you will +also want to say N. +. +FB_E1355 'Epson 1355 framebuffer support' + +FB_DC 'Dreamcast Frame Buffer support' + +E1355_REG_BASE 'Register Base Address' + +E1355_FB_BASE 'Framebuffer Base Address' + +FB_MATROX 'Matrox unified accelerated driver' text +Say Y here if you have a Matrox Millennium, Matrox Millennium II, +Matrox Mystique, Matrox Mystique 220, Matrox Productiva G100, Matrox +Mystique G200, Matrox Millennium G200, Matrox Marvel G200 video, +Matrox G400 or G450 card in your box. At this time, support for the G100 +is untested and support for G450 is highly experimental. + +This driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). +The module will be called matroxfb.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. + +You can pass several parameters to the driver at boot time or at +module load time. The parameters look like "video=matrox:XXX", where +the meaning of XXX can be found at the end of the main source file +(drivers/video/matroxfb.c). Please see the file +Documentation/fb/matroxfb.txt. +. +FB_MATROX_MILLENIUM 'Matrox Millennium I/II support' text +Say Y here if you have a Matrox Millennium or Matrox Millennium II +video card. If you select "Advanced lowlevel driver options" below, +you should check 4 bpp packed pixel, 8 bpp packed pixel, 16 bpp +packed pixel, 24 bpp packed pixel and 32 bpp packed pixel. You can +also use font widths different from 8. +. +FB_MATROX_MYSTIQUE 'Matrox Mystique support' text +Say Y here if you have a Matrox Mystique or Matrox Mystique 220 +video card. If you select "Advanced lowlevel driver options" below, +you should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp +packed pixel and 32 bpp packed pixel. You can also use font widths +different from 8. +. +FB_MATROX_G100 'Matrox G100/G200/G400/G450 support' text +Say Y here if you have a Matrox G100, G200, G400 or G450 based +video card. If you select "Advanced lowlevel driver options", you +should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp packed +pixel and 32 bpp packed pixel. You can also use font widths +different from 8. + +If you need support for G400 secondary head, you must first say Y to +"I2C support" and "I2C bit-banging support" in the character devices +section, and then to "Matrox I2C support" and "G400 second head +support" here in the framebuffer section. +. +FB_MATROX_I2C 'Matrox I2C support' text +This drivers creates I2C buses which are needed for accessing the +DDC (I2C) bus present on all Matroxes, an I2C bus which +interconnects Matrox optional devices, like MGA-TVO on G200 and +G400, and the secondary head DDC bus, present on G400 only. + +You can say Y or M here if you want to experiment with monitor +detection code. You must say Y or M here if you want to use either +second head of G400 or MGA-TVO on G200 or G400. + +If you compile it as module, it will create a module named +i2c-matroxfb.o. +. +FB_MATROX_MAVEN 'Matrox G400 second head support' text +WARNING !!! This support does not work with G450 !!! + +Say Y or M here if you want to use a secondary head (meaning two +monitors in parallel) on G400 or MGA-TVO add-on on G200. Secondary +head is not compatible with accelerated XFree 3.3.x SVGA servers - +secondary head output is blanked while you are in X. With XFree +3.9.17 preview you can use both heads if you use SVGA over fbdev or +the fbdev driver on first head and the fbdev driver on second head. + +If you compile it as module, two modules are created, +matroxfb_crtc2.o and matroxfb_maven.o. Matroxfb_maven is needed for +both G200 and G400, matroxfb_crtc2 is needed only by G400. You must +also load i2c-matroxfb to get it to run. + +The driver starts in monitor mode and you must use the matroxset +tool (available at ftp://platan.vc.cvut.cz/pub/linux/matrox-latest) +to switch it to PAL or NTSC or to swap primary and secondary head +outputs. Secondary head driver also always start in 640x480 +resolution, you must use fbset to change it. + +Also do not forget that second head supports only 16 and 32 bpp +packed pixels, so it is a good idea to compile them into the kernel +too. You can use only some font widths, as the driver uses generic +painting procedures (the secondary head does not use acceleration +engine). + +There is no need for enabling 'Matrox multihead support' if you have +only one Matrox card in the box. +. +FB_MATROX_G450 'Matrox G450 second head support' text +Say Y or M here if you want to use a secondary head (meaning two +monitors in parallel) on G450. + +If you compile it as module, two modules are created, +matroxfb_crtc2.o and matroxfb_g450.o. Both modules are needed if you +want two independent display devices. + +The driver starts in monitor mode and currently does not support +output in TV modes. You must use the matroxset tool (available +at ftp://platan.vc.cvut.cz/pub/linux/matrox-latest) to swap primary +and secondary head outputs. Secondary head driver always start in +640x480 resolution and you must use fbset to change it. + +Also do not forget that second head supports only 16 and 32 bpp +packed pixels, so it is a good idea to compile them into the kernel +too. You can use only some font widths, as the driver uses generic +painting procedures (the secondary head does not use acceleration +engine). + +There is no need for enabling 'Matrox multihead support' if you have +only one Matrox card in the box. +. +FB_MATROX_MULTIHEAD 'Matrox unified driver multihead support' text +Say Y here if you have more than one (supported) Matrox device in +your computer and you want to use all of them for different monitors +("multihead"). If you have only one device, you should say N because +the driver compiled with Y is larger and a bit slower, especially on +ia32 (ix86). + +If you said M to "Matrox unified accelerated driver" and N here, you +will still be able to use several Matrox devices simultaneously: +insert several instances of the module matroxfb.o into the kernel +with insmod, supplying the parameter "dev=N" where N is 0, 1, etc. +for the different Matrox devices. This method is slightly faster but +uses 40 KB of kernel memory per Matrox card. +. +FB_RADEON 'ATI Radeon display support' + +FB_ATY128 'ATI Rage128 display support' text +This driver supports graphics boards with the ATI Rage128 chips. +Say Y if you have such a graphics board and read +Documentation/fb/aty128fb.txt. + +The driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). The +module will be called aty128fb.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +FB_3DFX '3Dfx Banshee/Voodoo3 display support' text +This driver supports graphics boards with the 3Dfx Banshee/Voodoo3 +chips. Say Y if you have such a graphics board. + +The driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). The +module will be called tdfxfb.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +FB_SIS 'SIS acceleration' + +FB_SIS_300 'SIS 630/540/730 support' + +FB_SIS_315 'SIS 315H/315 support' + +FB_VOODOO1 '3Dfx Voodoo Graphics (sst1) support' + +FB_HIT 'HD64461 Frame Buffer support' + +FB_PMAG_BA 'PMAG-BA TURBOchannel framebuffer support' + +FB_PMAGB_B 'PMAGB-B TURBOchannel framebuffer spport' + +FB_MAXINE 'Maxine (Personal DECstation) onboard framebuffer support' + +FB_TX3912 'TMPTX3912/PR31700 frame buffer support' + +FB_SBUS 'SBUS and UPA framebuffers' text +Say Y if you want support for SBUS or UPA based frame buffer device. +. +FB_CREATOR 'Creator/Creator3D support' text +This is the frame buffer device driver for the Creator and Creator3D +graphics boards. +. +FB_CGTHREE 'CGthree support' text +This is the frame buffer device driver for the CGthree frame buffer. +. +FB_TCX 'TCX (SS4/SS5 only) support' text +This is the frame buffer device driver for the TCX 24/8bit frame +buffer. +. +FB_CGFOURTEEN 'CGfourteen (SX) support' + +FB_P9100 'P9100 (Sparcbook 3 only) support' + +FB_LEO 'Leo (ZX) support' + +FB_IGA 'IGA 168x display support' + +FB_VIRTUAL 'Virtual Frame Buffer support (ONLY FOR TESTING!)' text +This is a `virtual' frame buffer device. It operates on a chunk of +unswappable kernel memory instead of on the memory of a graphics +board. This means you cannot see any output sent to this frame +buffer device, while it does consume precious memory. The main use +of this frame buffer device is testing and debugging the frame +buffer subsystem. Do NOT enable it for normal systems! To protect +the innocent, it has to be enabled explicitly at boot time using the +kernel option `video=vfb:'. + +This driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). The +module will be called vfb.o. If you want to compile it as a module, +say M here and read Documentation/modules.txt. +. +FBCON_ADVANCED 'Advanced low level driver options' text +The frame buffer console uses character drawing routines that are +tailored to the specific organization of pixels in the memory of +your graphics hardware. These are called the low level frame buffer +console drivers. Note that they are used for text console output +only; they are NOT needed for graphical applications. + +If you say N here, the needed low level drivers are automatically +enabled, depending on what frame buffer devices you selected above. +This is recommended for most users. + +If you say Y here, you have more fine-grained control over which low +level drivers are enabled. You can e.g. leave out low level drivers +for color depths you do not intend to use for text consoles. + +Low level frame buffer console drivers can be modules ( = code which +can be inserted and removed from the running kernel whenever you +want). The modules will be called fbcon-*.o. If you want to compile +(some of) them as modules, read Documentation/modules.txt. + +If unsure, say N. +. +FBCON_MFB 'Monochrome support' text +This is the low level frame buffer console driver for monochrome +(2 colors) packed pixels. +. +FBCON_CFB2 '2 bpp packed pixels support' text +This is the low level frame buffer console driver for 2 bits per +pixel (4 colors) packed pixels. +. +FBCON_CFB4 '4 bpp packed pixels support' text +This is the low level frame buffer console driver for 4 bits per +pixel (16 colors) packed pixels. +. +FBCON_CFB8 '8 bpp packed pixels support' text +This is the low level frame buffer console driver for 8 bits per +pixel (256 colors) packed pixels. +. +FBCON_CFB16 '16 bpp packed pixels support' text +This is the low level frame buffer console driver for 15 or 16 bits +per pixel (32K or 64K colors, also known as `hicolor') packed +pixels. +. +FBCON_CFB24 '24 bpp packed pixels support' text +This is the low level frame buffer console driver for 24 bits per +pixel (16M colors, also known as `truecolor') packed pixels. It is +NOT for `sparse' 32 bits per pixel mode. +. +FBCON_CFB32 '32 bpp packed pixels support' text +This is the low level frame buffer console driver for 32 bits per +pixel (16M colors, also known as `truecolor') sparse packed pixels. +. +FBCON_AFB 'Amiga bitplanes support' text +This is the low level frame buffer console driver for 1 to 8 +bitplanes (2 to 256 colors) on Amiga. +. +FBCON_ILBM 'Amiga interleaved bitplanes support' text +This is the low level frame buffer console driver for 1 to 8 +interleaved bitplanes (2 to 256 colors) on Amiga. +. +FBCON_IPLAN2P2 'Atari interleaved bitplanes (2 planes) support' text +This is the low level frame buffer console driver for 2 interleaved +bitplanes (4 colors) on Atari. +. +FBCON_IPLAN2P4 'Atari interleaved bitplanes (4 planes) support' text +This is the low level frame buffer console driver for 4 interleaved +bitplanes (16 colors) on Atari. +. +FBCON_IPLAN2P8 'Atari interleaved bitplanes (8 planes) support' text +This is the low level frame buffer console driver for 8 interleaved +bitplanes (256 colors) on Atari. +. +#FBCON_IPLAN2P16 'Atari interleaved bitplanes (16 planes) support' +FBCON_MAC 'Mac variable bpp packed pixels support' text +This is the low level frame buffer console driver for 1/2/4/8/16/32 +bits per pixel packed pixels on Mac. It supports variable font +widths for low resolution screens. +. +FBCON_VGA_PLANES 'VGA 16-color planar support' text +This low level frame buffer console driver enable the kernel to use +the 16-color planar modes of the old VGA cards where the bits of +each pixel are separated into 4 planes. + +Only answer Y here if you have a (very old) VGA card that isn't VESA +2 compatible. +. +FBCON_VGA 'VGA characters/attributes support' text +This is the low level frame buffer console driver for VGA text mode; +it is used by frame buffer device drivers that support VGA text +mode. +. +FBCON_HGA 'HGA monochrome support' text +This is the low level frame buffer console driver for Hercules mono +graphics cards. +. +FBCON_FONTWIDTH8_ONLY 'Support only 8 pixels wide fonts' text +Answer Y here will make the kernel provide only the 8x8 fonts (these +are the less readable). + +If unsure, say N. +. +FBCON_FONTS 'Select other compiled-in fonts' text +Say Y here if you would like to use fonts other than the default +your frame buffer console usually use. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about foreign fonts. + +If unsure, say N (the default choices are safe). +. +FONT_8x8 'VGA 8x8 font' text +This is the "high resolution" font for the VGA frame buffer (the one +provided by the text console 80x50 (and higher) modes). + +Note that this is a poor quality font. The VGA 8x16 font is quite a +lot more readable. + +Given the resolution provided by the frame buffer device, answer N +here is safe. +. +FONT_8x16 'VGA 8x16 font' text +This is the "high resolution" font for the VGA frame buffer (the one +provided by the VGA text console 80x25 mode. + +If unsure, say Y. +. +FONT_SUN8x16 'Sparc console 8x16 font' text +This is the high resolution console font for Sun machines. Say Y. +. +FONT_SUN12x22 'Sparc console 12x22 font (not supported by all drivers)' +text +This is the high resolution console font for Sun machines with very +big letters (like the letters used in the SPARC PROM). If the +standard font is unreadable for you, say Y, otherwise say N. +. +FONT_6x11 'Mac console 6x11 font (not supported by all drivers)' + +FONT_PEARL_8x8 'Pearl (old m68k) console 8x8 font' + +FONT_ACORN_8x8 'Acorn console 8x8 font' + +# +# Character device configuration +SGI_SERIAL 'SGI Zilog85C30 serial support' text +If you want to use your SGI's built-in serial ports under Linux, +answer Y. +. +SGI_DS1286 'SGI DS1286 RTC support' text +If you say Y here and create a character special file /dev/rtc with +major number 10 and minor number 135 using mknod ("man mknod"), you +will get access to the real time clock built into your computer. +Every SGI has such a clock built in. It reports status information +via the file /proc/rtc and its behaviour is set by various ioctls on +/dev/rtc. +. +SGI_NEWPORT_GFX 'SGI Newport Graphics support' text +If you have an SGI machine and you want to compile the graphics +drivers, say Y here. This will include the code for the +/dev/graphics and /dev/gfx drivers into the kernel for supporting +virtualized access to your graphics hardware. +. +# +# FC4 device configuration +FC4 'Fibre Channel and FC4 SCSI support' text +Fibre Channel is a high speed serial protocol mainly used to +connect large storage devices to the computer; it is compatible with +and intended to replace SCSI. + +This is an experimental support for storage arrays connected to your +computer using optical fibre cables and the "X3.269-199X Fibre +Channel Protocol for SCSI" specification. If you want to use this, +you need to say Y here and to "SCSI support" as well as to the +drivers for the storage array itself and for the interface adapter +such as SOC or SOC+. This subsystem could even serve for IP +networking, with some code extensions. + +If unsure, say N. +. +FC4_SOC 'Sun SOC/Sbus' text +Serial Optical Channel is an interface card with one or two Fibre +Optic ports, each of which can be connected to a disk array. Note +that if you have older firmware in the card, you'll need the +microcode from the Solaris driver to make it work. + +This support is also available as a module called soc.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +FC4_SOCAL 'Sun SOC+ (aka SOCAL)' text +Serial Optical Channel Plus is an interface card with up to two +Fibre Optic ports. This card supports FC Arbitrated Loop (usually +A5000 or internal FC disks in E[3-6]000 machines through the +Interface Board). You'll probably need the microcode from the +Solaris driver to make it work. + +This support is also available as a module called socal.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SCSI_PLUTO 'SparcSTORAGE Array 100 and 200 series' text +If you never bought a disk array made by Sun, go with N. + +This support is also available as a module called pluto.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SCSI_FCAL_SUN 'Sun Enterprise Network Array (A5000 and EX500)' + +SCSI_FCAL_GENERIC 'Generic FC-AL disk driver' + +# +# SCSI driver configuration for Acorn +SCSI_ACORNSCSI_3 'Acorn SCSI card (aka30) support' text +This enables support for the Acorn SCSI card (aka30). If you have an +Acorn system with one of these, say Y. If unsure, say N. +. +SCSI_ACORNSCSI_TAGGED_QUEUE 'Support SCSI 2 Tagged queueing' text +Say Y here to enable tagged queuing support on the Acorn SCSI card. + +This is a feature of SCSI-2 which improves performance: the host +adapter can send several SCSI commands to a device's queue even if +previous commands haven't finished yet. Some SCSI devices don't +implement this properly, so the safe answer is N. +. +SCSI_ACORNSCSI_SYNC 'Support SCSI 2 Synchronous Transfers' text +Say Y here to enable synchronous transfer negotiation with all +targets on the Acorn SCSI card. + +In general, this improves performance; however some SCSI devices +don't implement it properly, so the safe answer is N. +. +SCSI_ARXESCSI 'ARXE SCSI support' + +SCSI_CUMANA_2 'Cumana SCSI II support' text +This enables support for the Cumana SCSI II card. If you have an +Acorn system with one of these, say Y. If unsure, say N. +. +SCSI_EESOXSCSI 'EESOX SCSI support' text +This enables support for the EESOX SCSI card. If you have an Acorn +system with one of these, say Y, otherwise say N. +. +SCSI_POWERTECSCSI 'PowerTec SCSI support' text +This enables support for the Powertec SCSI card on Acorn systems. If +you have one of these, say Y. If unsure, say N. +. +SCSI_CUMANA_1 'Cumana SCSI I support' text +This enables support for the Cumana SCSI I card. If you have an +Acorn system with one of these, say Y. If unsure, say N. +. +SCSI_ECOSCSI 'EcoSCSI support' text +This enables support for the EcoSCSI card -- a small card that sits +in the Econet socket. If you have an Acorn system with one of these, +say Y. If unsure, say N. +. +SCSI_OAK1 'Oak SCSI support' text +This enables support for the Oak SCSI card. If you have an Acorn +system with one of these, say Y. If unsure, say N. +. +# +# Block device driver configuration +BLK_DEV_FD1772 'Old Archimedes floppy (1772) support' text +Support the floppy drive on the Acorn Archimedes (A300, A4x0, A540, +R140 and R260) series of computers; it supports only 720K floppies +at the moment. If you don't have one of these machines just answer +N. +. +BLK_DEV_MFM 'MFM hard disk support' text +Support the MFM hard drives on the Acorn Archimedes both +on-board the A4x0 motherboards and via the Acorn MFM podules. +Drives up to 64MB are supported. If you haven't got one of these +machines or drives just say N. +. +BLK_DEV_MFM_AUTODETECT 'Autodetect hard drive geometry' text +If you answer Y, the MFM code will attempt to automatically detect +the cylinders/heads/sectors count on your hard drive. WARNING: This +sometimes doesn't work and it also does some dodgy stuff which +potentially might damage your drive. +. +# +# Acorn Network device configuration +# These are for Acorn's Expansion card network interfaces +ARM_ETHER1 'Acorn Ether1 support' text +If you have an Acorn system with one of these (AKA25) network cards, +you should say Y to this option if you wish to use it with Linux. +. +ARM_ETHER3 'Acorn/ANT Ether3 support' text +If you have an Acorn system with one of these network cards, you +should say Y to this option if you wish to use it with Linux. +. +ARM_ETHERH 'I-Cubed EtherH support' text +If you have an Acorn system with one of these network cards, you +should say Y to this option if you wish to use it with Linux. +. +# +# USB device configuration +USB 'USB (Universal Serial Bus) support' text +Universal Serial Bus (USB) is a specification for a serial bus +subsystem which offers higher speeds and more features than the +traditional PC serial port. The bus supplies power to peripherals +and allows for hot swapping. Up to 127 USB peripherals can be +connected to a single USB port in a tree structure. The USB port is +the root of the tree, the peripherals are the leaves and the inner +nodes are special USB devices called hubs. Many newer PC's have USB +ports and newer peripherals such as scanners, keyboards, mice, +modems, and printers support the USB protocol and can be connected +to the PC via those ports. + +Say Y here if your computer has a USB port and you want to use USB +devices. You then need to say Y to at least one of "UHCI support" or +"OHCI support" below (the type of interface that the USB hardware in +your computer provides to the operating system) and then choose from +among the drivers for USB peripherals. You may want to check out the +information provided in Documentation/usb/ and especially the links +given in Documentation/usb/usb-help.txt. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usbcore.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_DEBUG 'USB verbose debug messages' text +Say Y here if you want the USB core & hub drivers to produce a bunch +of debug messages to the system log. Select this if you are having a +problem with USB support and want to see more of what is going on. +. +USB_UHCI 'UHCI (Intel PIIX4, VIA, ...) support' text +The Universal Host Controller Interface is a standard by Intel for +accessing the USB hardware in the PC (which is also called the USB +host controller). If your USB host controller conforms to this +standard, you may want to say Y, but see below. All recent boards +with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX, +i810, i820) conform to this standard. Also all VIA PCI chipsets +(like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro +133). + +Currently there exist two drivers for UHCI host controllers: this +one and the so-called JE driver, which you can get from +"UHCI alternate (JE) support", below. You need only one. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usb-uhci.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_UHCI_ALT 'UHCI (Intel PIIX4, VIA, ...) alternate (JE) support' text +The Universal Host Controller Interface is a standard by Intel for +accessing the USB hardware in the PC (which is also called the USB +host controller). If your USB host controller conforms to this +standard, you may want to say Y, but see below. All recent boards +with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX, +i810, i820) conform to this standard. Also all VIA PCI chipsets +(like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro +133). If unsure, say Y. + +Currently there exist two drivers for UHCI host controllers: this +so-called JE driver, and the one you get from "UHCI support", above. +You need only one. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called uhci.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_OHCI 'OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support' text +The Open Host Controller Interface is a standard by +Compaq/Microsoft/National for accessing the USB PC hardware (also +called USB host controller). If your USB host controller conforms to +this standard, say Y. The USB host controllers on most non-Intel +architectures and on several x86 compatibles with non-Intel chipsets +-- like SiS (aktual 610, 610 and so on) or ALi (ALi IV, ALi V, +Aladdin Pro..) -- conform to this standard. + +You may want to read the file Documentation/usb/ohci.txt. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usb-ohci.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +USB_DEVICEFS 'USB device file system' text +If you say Y here (and to "/proc file system support" below), you +will get a file /proc/bus/usb/devices which lists the devices +currently connected to your USB busses, a file /proc/bus/usb/drivers +which lists the USB kernel client drivers currently loaded, and for +every connected device a file named "/proc/bus/usb/xxx/yyy", where +xxx is the bus number and yyy the device number; the latter files +can be used by user space programs to talk directly to the device. +These files are "virtual", meaning they are generated on the fly +and not stored on the hard drive. + +For the format of the /proc/bus/usb/ files, please read +Documentation/usb/proc_usb_info.txt. + +Please note that this code is completely unrelated to devfs, the +"/dev file system support". + +Most users want to say Y here. +. +USB_BANDWIDTH 'Enforce USB bandwidth allocation' text +If you say Y here, the USB subsystem enforces USB bandwidth +allocation and will prevent some device opens from succeeding +if they would cause USB bandwidth usage to go above 90% of +the bus bandwidth. + +If you say N here, these conditions will cause warning messages +about USB bandwidth usage to be logged and some devices or +drivers may not work correctly. +. +USB_LONG_TIMEOUT 'Long timeout for slow-responding devices (some MGE Ellipse UPSes)' +text +This option makes the standard time out a bit longer. Basically, +some devices are just slow to respond, so this makes usb more +patient. There should be no harm in selecting this, but it is +needed for some MGE Ellipse UPSes. + +If you have an MGE Ellipse UPS, or you see timeouts in HID +transactions, say Y; otherwise say N. +. +USB_PRINTER 'USB Printer support' text +Say Y here if you want to connect a USB printer to your computer's +USB port. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called printer.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SCANNER 'USB Scanner support' text +Say Y here if you want to connect a USB scanner to your computer's +USB port. Please read Documentation/usb/scanner.txt and +Documentation/usb/scanner-hp-sane.txt for more information. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called scanner.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +USB_MICROTEK 'Microtek USB scanner support' text +Say Y here if you want support for the Microtek X6USB and +possibly the Phantom 336CX, Phantom C6 and ScanMaker V6U(S)L. +Support for anything but the X6 is experimetal. +Please report failures and successes. +The scanner will appear as a scsi generic device to the rest +of the system. Scsi support is required for this driver to compile +and work. SANE 1.0.4 or newer is needed to make use of your scanner. +This driver can be compiled as a module. +. +USB_HPUSBSCSI 'HP53xx USB scanner support' text +Say Y here if you want support for the HP 53xx series of scanners +and the Minolta Scan Dual. This driver is experimental. +The scanner will be accessible as a SCSI device. +. +USB_AUDIO 'USB Audio support' text +Say Y here if you want to connect UAB audio equipment such as +speakers to your computer's USB port. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called audio.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_STORAGE_SDDR09 'SanDisk SDDR-09 (and other SmartMedia) support' + +USB_STORAGE_JUMPSHOT 'Lexar Jumpshot Compact Flash Reader' + +USB_ACM 'USB Modem (CDC ACM) support' text +This driver supports USB modems and ISDN adapters which support the +Communication Device Class Abstract Control Model interface. +Please read Documentation/usb/acm.txt for details. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called acm.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SERIAL 'USB serial converter support' text +Say Y here if you have a USB device that provides normal serial +ports, or acts like a serial device, and you want to connect it to +your USB bus. + +Please read Documentation/usb/usb-serial.txt for more information +on the specifics of the different devices that are supported, and +on how to use them. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usbserial.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_GENERIC 'USB Generic Serial Driver' text +Say Y here if you want to use the generic USB serial driver. Please +read Documentation/usb/usb-serial.txt for more information on using +this driver. It is recommended that the "USB Serial converter +support" be compiled as a module for this driver to be used +properly. +. +USB_SERIAL_VISOR 'USB Handspring Visor Driver' text +Say Y here if you want to connect to your HandSpring Visor, Palm m500 +or m505 through its USB docking station. +See http://usbvisor.sourceforge.net for more information on using this +driver. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called visor.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_EDGEPORT 'USB Edgeport Serial Driver' text +Say Y here if you want to use any of the following devices from +Inside Out Networks (Digi): + Edgeport/4 + Rapidport/4 + Edgeport/4t + Edgeport/2 + Edgeport/4i + Edgeport/2i + Edgeport/421 + Edgeport/21 + Edgeport/8 + Edgeport/8 Dual + Edgeport/2D8 + Edgeport/4D8 + Edgeport/8i + Edgeport/2 DIN + Edgeport/4 DIN + Edgeport/16 Dual + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called io_edgeport.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_IR 'USB IR Dongle Serial Driver' + +USB_SERIAL_DIGI_ACCELEPORT 'USB Digi International AccelePort USB Serial Driver' +text +Say Y here if you want to use Digi AccelePort USB 2 or 4 devices, +2 port (plus parallel port) and 4 port USB serial converters. The +parallel port on the USB 2 appears as a third serial port on Linux. +The Digi Acceleport USB 8 is not yet supported by this driver. + +This driver works under SMP with the usb-uhci driver. It does not +work under SMP with the uhci driver. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called digi_acceleport.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_EMPEG 'USB Empeg empeg-car Mark I/II Driver' text +Say Y here if you want to connect to your Empeg empeg-car Mark I/II +mp3 player via USB. The driver uses a single ttyUSB{0,1,2,...} +device node. See Documentation/usb/usb-serial.txt for more +tidbits of information. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called empeg.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_WHITEHEAT 'USB ConnectTech WhiteHEAT Serial Driver' text +Say Y here if you want to use a ConnectTech WhiteHEAT 4 port +USB to serial converter device. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called whiteheat.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_FTDI_SIO 'USB FTDI Single Port Serial Driver' text +Say Y here if you want to use a FTDI SIO single port USB to serial +converter device. The implementation I have is called the USC-1000. + +See http://reality.sgi.com/bryder_wellington/ftdi_sio for more +information on this driver and the device. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ftdi_sio.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_KEYSPAN_PDA 'USB Keyspan PDA Single Port Serial Driver' text +Say Y here if you want to use a Keyspan PDA single port USB to +serial converter device. This driver makes use of firmware +developed from scratch by Brian Warner. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called keyspan_pda.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_KEYSPAN 'USB Keyspan USA-xxx Serial Driver' text +Say Y here if you want to use Keyspan USB to serial converter +devices. This driver makes use of Keyspan's official firmware +and was developed with their support. You must also include +firmware to support your particular device(s). + +See http://misc.nu/hugh/keyspan.html for more information. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called keyspan.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_KEYSPAN_USA28 'USB Keyspan USA-28 Firmware' text +Say Y here to include firmware for the USA-28 converter. +. +USB_SERIAL_KEYSPAN_USA28X 'USB Keyspan USA-28X Firmware' text +Say Y here to include firmware for the USA-28X converter. +Be sure you have a USA-28X, there are also 28XA and 28XB +models, the label underneath has the actual part number. +. +USB_SERIAL_KEYSPAN_USA28XA 'USB Keyspan USA-28XA Firmware' text +Say Y here to include firmware for the USA-28XA converter. +Be sure you have a USA-28XA, there are also 28X and 28XB +models, the label underneath has the actual part number. +. +USB_SERIAL_KEYSPAN_USA28XB 'USB Keyspan USA-28XB Firmware' text +Say Y here to include firmware for the USA-28XB converter. +Be sure you have a USA-28XB, there are also 28X and 28XA +models, the label underneath has the actual part number. +. +USB_SERIAL_KEYSPAN_USA19 'USB Keyspan USA-19 Firmware' text +Say Y here to include firmware for the USA-19 converter. +. +USB_SERIAL_KEYSPAN_USA18X 'USB Keyspan USA-18X Firmware' text +Say Y here to include firmware for the USA-18X converter. +. +USB_SERIAL_KEYSPAN_USA19W 'USB Keyspan USA-19W Firmware' text +Say Y here to include firmware for the USA-19W converter. +. +USB_SERIAL_KEYSPAN_USA49W 'USB Keyspan USA-49W Firmware' text +Say Y here to include firmware for the USA-49W converter. +. +USB_SERIAL_MCT_U232 'USB MCT Single Port Serial Driver' text +Say Y here if you want to use a USB Serial single port adapter from +Magic Control Technology Corp. (U232 is one of the model numbers). + +This driver also works with Sitecom U232-P25 and D-Link DU-H3SP USB +BAY devices. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called mct_u232.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_PL2303 'USB Prolific 2303 Single Port Serial Driver' text +Say Y here if you want to use the PL2303 USB Serial single port +adapter from Prolific. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called pl2303.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_CYBERJACK 'USB REINER SCT cyberJack pinpad/e-com chipcard reader' +text +Say Y here if you want to use a cyberJack pinpad/e-com USB chipcard +reader. This is an interface to ISO 7816 compatible contactbased +chipcards, e.g. GSM SIMs. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called cyberjack.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. + +If unsure, say N. +. +USB_SERIAL_OMNINET 'USB ZyXEL omni.net LCD Plus Driver' text +Say Y here if you want to use a ZyXEL omni.net LCD ISDN TA. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called omninet.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_BELKIN 'USB Belkin and Paracom Single Port Serial Driver' +text +Say Y here if you want to use a Belkin USB Serial single port +adaptor (F5U103 is one of the model numbers) or the Peracom single +port USB to serial adapter. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called belkin_sa.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +USB_SERIAL_XIRCOM 'USB Xircom / Entregra Single Port Serial Driver' text +Say Y here if you want to use a Xircom or Entregra single port USB to +serial converter device. This driver makes use of firmware +developed from scratch by Brian Warner. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called keyspan_pda.o. If you want to compile it +as a module, say M here and read . +. +USB_SERIAL_DEBUG 'USB Serial Converter verbose debug' text +Say Y here if you want verbose debug messages from the USB Serial +Drivers sent to the kernel debug log. +. +USB_IBMCAM 'USB IBM (Xirlink) C-It Camera support' text +Say Y here if you want to connect a IBM "C-It" camera, also known as +"Xirlink PC Camera" to your computer's USB port. For more +information, read Documentation/usb/ibmcam.txt. + +This driver uses the Video For Linux API. You must enable +(Y or M in config) Video For Linux (under Character Devices) +to use this driver. Information on this API and pointers to +"v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ibmcam.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. This camera +has several configuration options which can be specified when you +load the module. Read Documentation/usb/ibmcam.txt to learn more. +. +USB_OV511 'USB OV511 Camera support' text +Say Y here if you want to connect this type of camera to your +computer's USB port. See Documentation/usb/ov511.txt for more +information and for a list of supported cameras. + +This driver uses the Video For Linux API. You must say Y or M to +"Video For Linux" (under Character Devices) to use this driver. +Information on this API and pointers to "v4l" programs may be found +on the WWW at http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called ov511.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_PWC 'Philips webcam support' text +Say Y or M here if you want to use one of these Philips USB webcams: +PCA645, PCA646, PCVC675, PCVC680, PCVC690, PCVC730, PCVC740, or +the Askey VC010. The PCA635, PCVC665 and PCVC720 are not +supported by this driver and never will be. + +This driver has an optional plugin, which is distributed as a +binary module only. It contains code that allow you to use +higher resolutions and framerates but may not be distributed +as source. But even without this plugin you can these cams +for most applications. + +See Documentation/usb/philips.txt for more information and +installation instructions. + +The built-in microphone is enabled by selecting USB Audio support. + +This driver uses the Video For Linux API. You must say Y or M to +"Video For Linux" (under Character Devices) to use this driver. +Information on this API and pointers to "v4l" programs may be found +on the WWW at http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called pwc.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_SE401 'USB SE401 Camera support' text +Say Y here if you want to connect this type of camera to your +computer's USB port. See Documentation/usb/se401.txt for more +information and for a list of supported cameras. + +This driver uses the Video For Linux API. You must say Y or M to +"Video For Linux" (under Multimedia Devices) to use this driver. +Information on this API and pointers to "v4l" programs may be found +on the WWW at http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called se401.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_DC2XX 'USB Kodak DC-2xx Camera support' text +Say Y here if you want to connect this type of still camera to +your computer's USB port. See Documentation/usb/dc2xx.txt for more +information; some non-Kodak cameras may also work with this +driver, given application support (such as www.gPhoto.org). + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dc2xx.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_MDC800 'USB Mustek MDC800 Digital Camera support' text +Say Y here if you want to connect this type of still camera to +your computer's USB port. This driver can be used with gphoto 0.4.3 +and higher (look at http://www.gphoto.org ). +To use it create a device node with "mknod /dev/mustek c 180 32" and +configure it in your software. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called mdc800.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_STORAGE 'USB Mass Storage support' text +Say Y here if you want to connect USB mass storage devices to your +computer's USB port. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usb-storage.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +USB_STORAGE_DEBUG 'USB Mass Storage verbose debug' text +Say Y here in order to have the USB Mass Storage code generate +verbose debugging messages. +. +USB_STORAGE_DATAFAB 'Datafab MDCFE-B Compact Flash Reader support' + +USB_STORAGE_ISD200 'ISD-200 USB/ATA Bridge support' text +Say Y here if you want to use USB Mass Store devices based +on the In-Systems Design ISD-200 USB/ATA bridge. + +Some of the products that use this chip are: + + - Archos Jukebox 6000 + - ISD SmartCable for Storage + - Taiwan Skymaster CD530U/DEL-0241 IDE bridge + - Sony CRX10U CD-R/RW drive + - CyQ've CQ8060A CDRW drive + - Planex eXtreme Drive RX-25HU USB-IDE cable (not model RX-25U) +. +USB_STORAGE_FREECOM 'Freecom USB/ATAPI Bridge support' + +USB_STORAGE_DPCM 'Microtech CompactFlash/SmartMedia reader' + +USB_STORAGE_HP8200e 'HP CD-Writer 82xx support' + +#USB_PLUSB 'PLUSB Prolific USB-Network driver' +USB_PEGASUS 'USB ADMtek Pegasus-based Ethernet device support' text +Say Y here if you know you have Pegasus or Pegasus II based adapter. +If in doubt then look at linux/drivers/usb/pegasus.h for the complete +list of supported devices. +If your particular adapter is not in the list and you are _sure_ it +is Pegasus or Pegasus II based then send me (pmanolov@lnxw.com) vendor +and device IDs. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called pegasus.o. If you want to compile it as a +. +USB_KAWETH 'USB KLSI KL5USB101-based ethernet device support' text +Say Y here if you want to use one of the following 10Mbps only +USB Ethernet adapters based on the KLSI KL5KUSB101B chipset: + 3Com 3C19250 + ADS USB-10BT + ATEN USB Ethernet + ASANTE USB To Ethernet Adapter + AOX Endpoints USB Ethernet + Correga K.K. + D-Link DSB-650C and DU-E10 + Entrega / Portgear E45 + I-O DATA USB-ET/T + Jaton USB Ethernet Device Adapter + Kingston Technology USB Ethernet Adapter + Linksys USB10T + Mobility USB-Ethernet Adapter + NetGear EA-101 + Peracom Enet and Enet2 + Portsmith Express Ethernet Adapter + Shark Pocket Adapter + SMC 2202USB + Sony Vaio port extender + +This driver is likely to work with most 10Mbps only USB Ethernet +adapters, including some "no brand" devices. It does NOT work on +SmartBridges smartNIC or on Belkin F5U111 devices - you should use +the CATC NetMate driver for those. If you are not sure which one +you need, select both, and the correct one should be selected for +you. + +This driver makes the adapter appear as a normal Ethernet interface, +typically on eth0, if it is the only ethernet device, or perhaps on +eth1, if you have a PCI or ISA ethernet card installed. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called kaweth.o. If you want to compile it as a +module, say M here and read . +. +USB_CATC 'USB CATC NetMate-based Ethernet device support' text +Say Y if you want to use one of the following 10Mbps USB Ethernet +device based on the EL1210A chip. Supported devices are: + Belkin F5U111 + CATC NetMate + CATC NetMate II + smartBridges smartNIC + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called catc.o. If you want to compile it as a +module, say M here and read . +. +USB_CDCETHER 'USB Communication Class Ethernet device support' text +This driver supports devices conforming to the Communication Device +Class Ethernet Control Model. This is used in some cable modems. +For more details on the specification, get the Communication Device +Class specification from . + +This driver should work with the following devices: + * Ericsson PipeRider (all variants) + * Motorola (DM100 and SB4100) + * Broadcom Cable Modem (reference design) + * Toshiba PCX1100U and possibly other cable modems + +The device creates a network device (ethX, where X depends on what +other networking devices you have in use), as for a normal PCI +or ISA based ethernet network card. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called CDCEther.o. If you want to compile it as +a module, say M here and read . +. +USB_USBNET 'USB-to-USB Networking cable device support' text +This driver supports network links over USB with USB "Network" +or "data transfer" cables, often used to network laptops to PCs. +Such cables have chips from suppliers such as NetChip and Prolific. +Intelligent USB devices could also use this approach to provide +Internet access, using standard USB cabling. + +These links will have names like "usb0", "usb1", etc. They act +like two-node Ethernets, so you can use 802.1d Ethernet Bridging +(CONFIG_BRIDGE) to simplify your network routing. + +This code is also available as a kernel module (code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usbnet.o. If you want to compile it as a +module, say M here and read . +. +#USB_NET1080 'NetChip 1080-based USB Host-to-Host Link' +USB_RIO500 'USB Diamond Rio500 support' text +Say Y here if you want to connect a USB Rio500 mp3 player to your +computer's USB port. Please read Documentation/usb/rio.txt +for more information. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called rio500.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +USB_DSBR 'D-Link DSB-R100 FM radio support' text +Say Y here if you want to connect this type of radio to your +computer's USB port. Note that the audio is not digital, and +you must connect the line out connector to a sound card or a +set of speakers. + +This driver uses the Video For Linux API. You must enable +(Y or M in config) Video For Linux (under Character Devices) +to use this driver. Information on this API and pointers to +"v4l" programs may be found on the WWW at +http://roadrunner.swansea.uk.linux.org/v4l.shtml . + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dsbr100.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_BLUETOOTH 'USB Bluetooth support' text +Say Y here if you want to connect a USB Bluetooth device to your +computer's USB port. You will need the Bluetooth stack (available +at http://developer.axis.com/software/index.shtml) to fully use +the device. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called bluetooth.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +USB_USS720 'USS720 parport driver' text +This driver is for USB parallel port adapters that use the Lucent +Technologies USS-720 chip. These cables are plugged into your USB +port and provide USB compatibility to peripherals designed with +parallel port interfaces. + +The chip has two modes: automatic mode and manual mode. In automatic +mode, it looks to the computer like a standard USB printer. Only +printers may be connected to the USS-720 in this mode. The generic +USB printer driver ("USB Printer support", above) may be used in +that mode, and you can say N here if you want to use the chip only +in this mode. + +Manual mode is not limited to printers, any parallel port +device should work. This driver utilizes manual mode. +Note however that some operations are three orders of magnitude +slower than on a PCI/ISA Parallel Port, so timing critical +applications might not work. + +Say Y here if you own an USS-720 USB->Parport cable and intend to +connect anything other than a printer to it. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called uss720.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_DABUSB 'DABUSB driver' text +A Digital Audio Broadcasting (DAB) Receiver for USB and Linux +brought to you by the DAB-Team (http://dab.in.tum.de). This driver +can be taken as an example for URB-based bulk, control, and +isochronous transactions. URB's are explained in +Documentation/usb/URB.txt. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called dabusb.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_HID 'USB Human Interface Device (full HID) support' text +Say Y here if you want full HID support to connect keyboards, +mice, joysticks, graphic tablets, or any other HID based devices +to your computer via USB. You can't use this driver and the +HIDBP (Boot Protocol) keyboard and mouse drivers at the same time. +More information is available: Documentation/input/input.txt. + +If unsure, say Y. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called hid.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +USB_HIDDEV '/dev/hiddev raw HID device support' text +Say Y here if you want to support HID devices (from the USB +specification standpoint) that aren't strictly user interface +devices, like monitor controls and Uninterruptable Power Supplies. +It is also used for "consumer keys" on multimedia keyboards and +USB speakers. + +This module supports these devices separately using a separate +event interface on /dev/usb/hiddevX (char 180:96 to 180:111). +This driver requires CONFIG_USB_HID. + +If unsure, say N. +. +USB_KBD 'USB HIDBP Keyboard (basic) support' text +Say Y here if you don't want to use the generic HID driver for your +USB keyboard and prefer to use the keyboard in its limited Boot +Protocol mode instead. This driver is much smaller than the HID one. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usbkbd.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. + +If unsure, say N. +. +USB_MOUSE 'USB HIDBP Mouse (basic) support' text +Say Y here if you don't want to use the generic HID driver for your +USB mouse and prefer to use the mouse in its limited Boot Protocol +mode instead. This driver is much smaller than the HID one. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called usbmouse.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. + +If unsure, say N. +. +USB_WACOM 'Wacom Intuos/Graphire tablet support' text +Say Y here if you want to use the USB version of the Wacom Intuos +or Graphire tablet. Make sure to say Y to "Mouse support" +(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support" +(CONFIG_INPUT_EVDEV) as well. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called wacom.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +INPUT_IFORCE_USB 'I-Force joysticks/wheels' text +Say Y here if you have an I-Force joystick or steering wheel +connected to your USB port. For more information on how to use the +driver please read Documentation/joystick.txt + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called iforce.o. If you want to compile +it as a module, say M here and read Documentation/modules.txt. +. +# +# Bluetooth support +# +BLUEZ 'Bluetooth subsystem support' + +BLUEZ_L2CAP 'L2CAP protocol support' + +BLUEZ_HCIUSB 'HCI USB driver' + +BLUEZ_HCIUART 'HCI UART driver' + +BLUEZ_HCIVHCI 'HCI EMU (virtual device) driver' + +# +# Input core +INPUT 'Input core support' text +Say Y here if you want to enable any of the following options for +USB Human Interface Device (HID) support. + +Say Y here if you want to enable any of the USB HID options in the +USB support section which require Input core support. + +Otherwise, say N. +. +INPUT_KEYBDEV 'Keyboard support' text +Say Y here if you want your USB HID keyboard (or an ADB keyboard +handled by the input layer) to be able to serve as a system keyboard. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called keybdev.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +INPUT_MOUSEDEV 'Mouse support' text +Say Y here if you want your USB HID mouse (or ADB mouse handled by +the input layer) to be accessible as char devices 13:32+ - +/dev/input/mouseX and 13:63 - /dev/input/mice as an emulated ImPS/2 +mouse. That way, all user space programs will be able to use your +mouse. + +If unsure, say Y. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called mousedev.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +INPUT_MOUSEDEV_SCREEN_X 'Horizontal screen resolution' text +If you're using a digitizer, or a graphic tablet, and want to use +it as a mouse then the mousedev driver needs to know the X window +screen resolution you are using to correctly scale the data. If +you're not using a digitizer, this value is ignored. +. +INPUT_MOUSEDEV_SCREEN_Y 'Vertical screen resolution' text +If you're using a digitizer, or a graphic tablet, and want to use +it as a mouse then the mousedev driver needs to know the X window +screen resolution you are using to correctly scale the data. If +you're not using a digitizer, this value is ignored. +. +INPUT_JOYDEV 'Joystick support' text +Say Y here if you want your USB HID joystick or gamepad to be +accessible as char device 13:0+ - /dev/input/jsX device. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called joydev.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +INPUT_EVDEV 'Event interface support' text +Say Y here if you want your USB or ADB HID device events be accessible +under char device 13:64+ - /dev/input/eventX in a generic way. +This is the future ... +. +# +# I2O support +I2O 'I2O support' text +The Intelligent Input/Output (I2O) architecture allows hardware +drivers to be split into two parts: an operating system specific +module called the OSM and an hardware specific module called the +HDM. The OSM can talk to a whole range of HDM's, and ideally the +HDM's are not OS dependent. This allows for the same HDM driver to +be used under different operating systems if the relevant OSM is in +place. In order for this to work, you need to have an I2O interface +adapter card in your computer. This card contains a special I/O +processor (IOP), thus allowing high speeds since the CPU does not +have to deal with I/O. + +If you say Y here, you will get a choice of interface adapter +drivers and OSM's with the following questions. + +This support is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. You will get modules called i2o_core.o +and i2o_config.o. + +If unsure, say N. +. +I2O_PCI 'I2O PCI support' text +Say Y for support of PCI bus I2O interface adapters. Currently this +is the only variety supported, so you should say Y. + +This support is also available as a module called i2o_pci.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +I2O_BLOCK 'I2O Block OSM' text +Include support for the I2O Block OSM. The Block OSM presents disk +and other structured block devices to the operating system. + +This support is also available as a module called i2o_block.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +I2O_LAN 'I2O LAN OSM' text +Include support for the LAN OSM. You will also need to include +support for token ring or FDDI if you wish to use token ring or FDDI +I2O cards with this driver. + +This support is also available as a module called i2o_lan.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +I2O_SCSI 'I2O SCSI OSM' text +Allows direct SCSI access to SCSI devices on a SCSI or FibreChannel +I2O controller. You can use both the SCSI and Block OSM together if +you wish. + +This support is also available as a module called i2o_scsi.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +I2O_PROC 'I2O /proc support' text +If you say Y here and to "/proc file system support", you will be +able to read I2O related information from the virtual directory +/proc/i2o. + +This support is also available as a module called i2o_proc.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +# +# ATM device configuration +ATM_TCP 'ATM over TCP' text +ATM over TCP driver. Useful mainly for development and for +experiments. If unsure, say N. +. +ATM_LANAI 'Efficient Networks Speedstream 3010' + +ATM_ENI 'Efficient Networks ENI155P' text +Driver for the Efficient Networks ENI155p series and SMC ATM +Power155 155 Mbps ATM adapters. Both, the versions with 512KB and +2MB on-board RAM (Efficient calls them "C" and "S", respectively), +and the FPGA and the ASIC Tonga versions of the board are supported. +The driver works with MMF (-MF or ...F) and UTP-5 (-U5 or ...D) +adapters. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called eni.o. +. +ATM_ENI_DEBUG 'Enable extended debugging' text +Extended debugging records various events and displays that list +when an inconsistency is detected. This mechanism is faster than +generally using printks, but still has some impact on performance. +Note that extended debugging may create certain race conditions +itself. Enable this ONLY if you suspect problems with the driver. +. +ATM_ENI_TUNE_BURST 'Fine-tune burst settings' text +In order to obtain good throughput, the ENI NIC can transfer +multiple words of data per PCI bus access cycle. Such a multi-word +transfer is called a burst. + +The default settings for the burst sizes are suitable for most PCI +chipsets. However, in some cases, large bursts may overrun buffers +in the PCI chipset and cause data corruption. In such cases, large +bursts must be disabled and only (slower) small bursts can be used. +The burst sizes can be set independently in the send (TX) and +receive (RX) direction. + +Note that enabling many different burst sizes in the same direction +may increase the cost of setting up a transfer such that the +resulting throughput is lower than when using only the largest +available burst size. + +Also, sometimes larger bursts lead to lower throughput, e.g. on an +Intel 440FX board, a drop from 135 Mbps to 103 Mbps was observed +when going from 8W to 16W bursts. +. +ATM_ENI_BURST_TX_16W 'Enable 16W TX bursts (discouraged)' text +Burst sixteen words at once in the send direction. This may work +with recent PCI chipsets, but is known to fail with older chipsets. +. +ATM_ENI_BURST_TX_8W 'Enable 8W TX bursts (recommended)' text +Burst eight words at once in the send direction. This is the default +setting. +. +ATM_ENI_BURST_TX_4W 'Enable 4W TX bursts (optional)' text +Burst four words at once in the send direction. You may want to try +this if you have disabled 8W bursts. Enabling 4W if 8W is also set +may or may not improve throughput. +. +ATM_ENI_BURST_TX_2W 'Enable 2W TX bursts (optional)' text +Burst two words at once in the send direction. You may want to try +this if you have disabled 4W and 8W bursts. Enabling 2W if 4W or 8W +are also set may or may not improve throughput. +. +ATM_ENI_BURST_RX_16W 'Enable 16W RX bursts (discouraged)' text +Burst sixteen words at once in the receive direction. This may work +with recent PCI chipsets, but is known to fail with older chipsets. +. +ATM_ENI_BURST_RX_8W 'Enable 8W RX bursts (discouraged)' text +Burst eight words at once in the receive direction. This may work +with recent PCI chipsets, but is known to fail with older chipsets, +such as the Intel Neptune series. +. +ATM_ENI_BURST_RX_4W 'Enable 4W RX bursts (recommended)' text +Burst four words at once in the receive direction. This is the +default setting. Enabling 4W if 8W is also set may or may not +improve throughput. +. +ATM_ENI_BURST_RX_2W 'Enable 2W RX bursts (optional)' text +Burst two words at once in the receive direction. You may want to +try this if you have disabled 4W and 8W bursts. Enabling 2W if 4W or +8W are also set may or may not improve throughput. +. +ATM_FIRESTREAM 'Fujitsu FireStream (FS50/FS155)' text +Driver for the Fujitsu FireStream 155 (MB86697) and +FireStream 50 (MB86695) ATM PCI chips. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called firestream.o. +. +ATM_ZATM 'ZeitNet ZN1221/ZN1225' text +Driver for the ZeitNet ZN1221 (MMF) and ZN1225 (UTP-5) 155 Mbps ATM +adapters. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called zatm.o. +. +ATM_ZATM_DEBUG 'Enable extended debugging' text +Extended debugging records various events and displays that list +when an inconsistency is detected. This mechanism is faster than +generally using printks, but still has some impact on performance. +Note that extended debugging may create certain race conditions +itself. Enable this ONLY if you suspect problems with the driver. +. +ATM_ZATM_EXACT_TS 'Enable usec resolution timestamps' text +The uPD98401 SAR chip supports a high-resolution timer (approx. 30 +MHz) that is used for very accurate reception timestamps. Because +that timer overflows after 140 seconds, and also to avoid timer +drift, time measurements need to be periodically synchronized with +the normal system time. Enabling this feature will add some general +overhead for timer synchronization and also per-packet overhead for +time conversion. +. +#ATM_TNETA1570 'Rolfs TI TNETA1570' +#ATM_TNETA1570_DEBUG 'Enable extended debugging' +ATM_NICSTAR 'IDT 77201/11 (NICStAR) (ForeRunnerLE)' text +The NICStAR chipset family is used in a large number of ATM NICs for +25 and for 155 Mbps, including IDT cards and the Fore ForeRunnerLE +series. Say Y if you have one of those. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called nicstar.o. +. +ATM_NICSTAR_USE_SUNI 'Use suni PHY driver (155Mbps)' text +Support for the S-UNI and compatible PHYsical layer chips. These are +found in most 155Mbps NICStAR based ATM cards, namely in the +ForeRunner LE155 cards. This driver provides detection of cable +removal and reinsertion and provides some statistics. This driver +doesn't have removal capability when compiled as a module, so if you +need that capability don't include S-UNI support (it's not needed to +make the card work). +. +ATM_NICSTAR_USE_IDT77105 'Use IDT77015 PHY driver (25Mbps)' text +Support for the PHYsical layer chip in ForeRunner LE25 cards. In +addition to cable removal/reinsertion detection, this driver allows +you to control the loopback mode of the chip via a dedicated IOCTL. +This driver is required for proper handling of temporary carrier +loss, so if you have a 25Mbps NICStAR based ATM card you must say Y. +. +ATM_IDT77252 'IDT 77252 (NICStAR II)' + +ATM_IDT77252_RCV_ALL 'Receive ALL cells in raw queue' + +ATM_AMBASSADOR 'Madge Ambassador (Collage PCI 155 Server)' text +This is a driver for ATMizer based ATM card produced by Madge +Networks Ltd. Say Y (or M to compile as a module named ambassador.o) +here if you have one of these cards. +. +ATM_AMBASSADOR_DEBUG 'Enable debugging messages' text +Somewhat useful debugging messages are available. The choice of +messages is controlled by a bitmap. This may be specified as a +module argument (kernel command line argument as well?), changed +dynamically using an ioctl (not yet) or changed by sending the +string "Dxxxx" to VCI 1023 (where x is a hex digit). See the file +drivers/atm/ambassador.h for the meanings of the bits in the mask. + +When active, these messages can have a significant impact on the +speed of the driver, and the size of your syslog files! When +inactive, they will have only a modest impact on performance. +. +ATM_HORIZON 'Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client)' +text +This is a driver for the Horizon chipset ATM adapter cards once +produced by Madge Networks Ltd. Say Y (or M to compile as a module +named horizon.o) here if you have one of these cards. +. +ATM_HORIZON_DEBUG 'Enable debugging messages' text +Somewhat useful debugging messages are available. The choice of +messages is controlled by a bitmap. This may be specified as a +module argument (kernel command line argument as well?), changed +dynamically using an ioctl (not yet) or changed by sending the +string "Dxxxx" to VCI 1023 (where x is a hex digit). See the file +drivers/atm/horizon.h for the meanings of the bits in the mask. + +When active, these messages can have a significant impact on the +speed of the driver, and the size of your syslog files! When +inactive, they will have only a modest impact on performance. +. +ATM_IA 'Interphase ATM PCI x575/x525/x531' text +This is a driver for the Interphase (i)ChipSAR adapter cards +which include a variety of variants in term of the size of the +control memory (128K-1KVC, 512K-4KVC), the size of the packet +memory (128K, 512K, 1M), and the PHY type (Single/Multi mode OC3, +UTP155, UTP25, DS3 and E3). Go to: + www.iphase.com/products/ClassSheet.cfm?ClassID=ATM +for more info about the cards. Say Y (or M to compile as a module +named iphase.o) here if you have one of these cards. + +See the file Documentation/networking/iphase.txt for further +details. +. +ATM_IA_DEBUG 'Enable debugging messages' text +Somewhat useful debugging messages are available. The choice of +messages is controlled by a bitmap. This may be specified as a +module argument (kernel command line argument as well?), changed +dynamically using an ioctl (Get the debug utility, iadbg, from +ftp.iphase.com/pub/atm/pci). See the file drivers/atm/iphase.h +for the meanings of the bits in the mask. + +When active, these messages can have a significant impact on the +speed of the driver, and the size of your syslog files! When +inactive, they will have only a modest impact on performance. +. +ATM_FORE200E_MAYBE 'FORE Systems 200E-series' text +This is a driver for the FORE Systems 200E-series ATM adapter +cards. It simultaneously supports PCA-200E and SBA-200E models +on PCI and SBUS hosts. Say Y (or M to compile as a module +named fore_200e.o) here if you have one of these ATM adapters. + +Note that the driver will actually be compiled only if you +additionally enable the support for PCA-200E and/or SBA-200E +cards. + +See the file Documentation/networking/fore200e.txt for further +details. +. +ATM_FORE200E_PCA 'Enable PCA-200E card support on PCI-based hosts' text +Say Y here if you want your PCA-200E cards to be probed. +. +ATM_FORE200E_PCA_DEFAULT_FW 'Use default PCA-200E firmware' text +Use the default PCA-200E firmware data shipped with the driver. + +Normal users do not have to deal with the firmware stuff, so +they should say Y here. +. +ATM_FORE200E_PCA_FW 'Pathname of user-supplied binary firmware' text +This defines the pathname of an alternative PCA-200E binary +firmware image supplied by the user. This pathname may be +absolute or relative to the drivers/atm directory. + +The driver comes with an adequate firmware image, so normal users do +not have to supply an alternative one. They just say Y to "Use +default PCA-200E firmware" instead. +. +ATM_FORE200E_SBA 'Enable SBA-200E card support on SBUS-based hosts' text +Say Y here if you want your SBA-200E cards to be probed. +. +ATM_FORE200E_SBA_DEFAULT_FW 'Use default SBA-200E firmware' text +Use the default SBA-200E firmware data shipped with the driver. + +Normal users do not have to deal with the firmware stuff, so +they should say Y here. +. +ATM_FORE200E_SBA_FW 'Pathname of user-supplied binary firmware' text +This defines the pathname of an alternative SBA-200E binary +firmware image supplied by the user. This pathname may be +absolute or relative to the drivers/atm directory. + +The driver comes with an adequate firmware image, so normal users do +not have to supply an alternative one. They just say Y to "Use +default SBA-200E firmware", above. +. +ATM_FORE200E_TX_RETRY 'Maximum number of tx retries' text +Specifies the number of times the driver attempts to transmit +a message before giving up, if the transmit queue of the ATM card +is transiently saturated. + +Saturation of the transmit queue may occur only under extreme +conditions, e.g. when a fast host continuously submits very small +frames (<64 bytes) or raw AAL0 cells (48 bytes) to the ATM adapter. + +Note that under common conditions, it is unlikely that you encounter +a saturation of the transmit queue, so the retry mechanism never +comes into play. +. +ATM_FORE200E_DEBUG 'Debugging level (0-3)' text +Specifies the level of debugging messages issued by the driver. +The verbosity of the driver increases with the value of this +parameter. + +When active, these messages can have a significant impact on +the performances of the driver, and the size of your syslog files! +Keep the debugging level to 0 during normal operations. +. +# +# Parport configuration. +PARPORT 'Parallel-port support' text +If you want to use devices connected to your machine's parallel port +(the connector at the computer with 25 holes), e.g. printer, ZIP +drive, PLIP link (Parallel Line Internet Protocol is mainly used to +create a mini network by connecting the parallel ports of two local +machines) etc., then you need to say Y here; please read +Documentation/parport.txt and drivers/parport/BUGS-parport. + +For extensive information about drivers for many devices attaching +to the parallel port see http://www.torque.net/linux-pp.html on the +WWW. + +It is possible to share a single parallel port among several devices +and it is safe to compile all the corresponding drivers into the +kernel. If you want to compile parallel port support as a module ( = +code which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called parport.o. If you have more than one +parallel port and want to specify which port and IRQ to be used by +this driver at module load time, take a look at +Documentation/parport.txt. + +If unsure, say Y. +. +PARPORT_PC 'PC-style hardware' text +You should say Y here if you have a PC-style parallel port. All IBM +PC compatible computers and some Alphas have PC-style parallel +ports. + +This code is also available as a module. If you want to compile it +as a module ( = code which can be inserted in and removed from the +running kernel whenever you want), say M here and read +Documentation/modules.txt. The module will be called parport_pc.o. + +If unsure, say Y. +. +PARPORT_PC_FIFO 'Use FIFO/DMA if available' text +Many parallel port chipsets provide hardware that can speed up +printing. Say Y here if you want to take advantage of that. + +As well as actually having a FIFO, or DMA capability, the kernel +will need to know which IRQ the parallel port has. By default, +parallel port interrupts will not be used, and so neither will the +FIFO. See Documentation/parport.txt to find out how to specify +which IRQ/DMA to use. +. +PARPORT_PC_SUPERIO 'SuperIO chipset support' text +Saying Y here enables some probes for Super-IO chipsets in order to +find out things like base addresses, IRQ lines and DMA channels. It +is safe to say N. +. +PARPORT_SERIAL 'Multi-IO cards (parallel and serial)' text +This adds support for multi-IO PCI cards that have parallel and serial +ports. You should say Y or M here. If you say M, the module will be +called parport_serial.o. +. +PARPORT_PC_PCMCIA 'Support for PCMCIA management for PC-style ports' +text +Say Y here if you need PCMCIA support for your PC-style parallel +ports. If unsure, say N. +. +#PARPORT_ARC 'Archimedes hardware' +#PARPORT_AMIGA 'Amiga builtin port' +PARPORT_MFC3 'Multiface III parallel port support' text +Say Y here if you need parallel port support for the MFC3 card. +This code is also available as a module (say M), called +parport_mfc3.o. If in doubt, saying N is the safe plan. +. +#PARPORT_ATARI 'Atari hardware' +PARPORT_OTHER 'Support foreign hardware' text +Say Y here if you want to be able to load driver modules to support +other non-standard types of parallel ports. This causes a +performance loss, so most people say N. +. +PARPORT_1284 'IEEE 1284 transfer modes' text +If you have a printer that supports status readback or device ID, or +want to use a device that uses enhanced parallel port transfer modes +such as EPP and ECP, say Y here to enable advanced IEEE 1284 +transfer modes. Also say Y if you want device ID information to +appear in /proc/sys/dev/parport/*/autoprobe*. It is safe to say N. +. +SUN_BPP 'Sun bidirectional parallel port support' + +PARPORT_SUNBPP 'Sparc hardware' text +This driver provides support for the bidirectional parallel port +found on many Sun machines. Note that many of the newer Ultras +actually have pc style hardware instead. +. +# +# PCMCIA bus subsystem configuration +PCMCIA 'PCMCIA/CardBus support' text +Say Y here if you want to attach PCMCIA- or PC-cards to your Linux +computer. These are credit-card size devices such as network cards, +modems or hard drives often used with laptops computers. There are +actually two varieties of these cards: the older 16 bit PCMCIA cards +and the newer 32 bit CardBus cards. If you want to use CardBus +cards, you need to say Y here and also to "CardBus support" below. + +To use your PC-cards, you will need supporting software from David +Hinds' pcmcia-cs package (see the file Documentation/Changes for +location). Please also read the PCMCIA-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +When compiled this way, there will be modules called pcmcia_core.o +and ds.o. If you want to compile it as a module, say M here and +read Documentation/modules.txt. +. +CARDBUS 'CardBus support' text +CardBus is a bus mastering architecture for PC-cards, which allows +for 32 bit PC-cards (the original PCMCIA standard specifies only +a 16 bit wide bus). Many newer PC-cards are actually CardBus cards. + +To use your PC-cards, you will need supporting software from David +Hinds' pcmcia-cs package (see the file Documentation/Changes for +location). + +If unsure, say Y. +. +I82092 'ompatible bridge support' + +I82365 'i82365 compatible bridge support' text +Say Y here to include support for PCMCIA and CardBus host bridges +that are register compatible with the Intel i82365 and/or the Yenta +specification: this includes virtually all modern PCMCIA bridges. +"Bridge" is the name used for the hardware inside your computer that +PCMCIA cards are plugged into. If unsure, say Y. +. +TCIC 'Databook TCIC host bridge support' text +Say Y here to include support for the Databook TCIC family of PCMCIA +host bridges. These are only found on a handful of old systems. +"Bridge" is the name used for the hardware inside your computer that +PCMCIA cards are plugged into. If unsure, say N. +. +#HD64465_PCMCIA 'HD64465 host bridge support' +# +# Character device configuration +I2C 'I2C support' text +I2C (pronounce: I-square-C) is a slow serial bus protocol used in +many micro controller applications and developed by Philips. SMBus, +or System Management Bus is a subset of the I2C protocol. More +information is contained in the directory Documentation/i2c/, +especially in the file called "summary" there. + +Both I2C and SMBus are supported here. You will need this for +hardware sensors support, and also for Video for Linux support. +Specifically, if you want to use a BT848 based frame grabber/overlay +boards under Linux, say Y here and also to "I2C bit-banging +interfaces", below. + +If you want I2C support, you should say Y here and also to the +specific driver for your bus adapter(s) below. If you say Y to +"/proc file system" below, you will then get a /proc interface which +is documented in Documentation/i2c/proc-interface. + +This I2C support is also available as a module. If you want to +compile it as a module, say M here and read +Documentation/modules.txt. The module will be called i2c-core.o. +. +BBC_I2C 'UltraSPARC-III bootbus i2c controller driver' + +I2C_ALGOBIT 'I2C bit-banging interfaces' text +This allows you to use a range of I2C adapters called bit-banging +adapters. Say Y if you own an I2C adapter belonging to this class +and then say Y to the specific driver for you adapter below. + +This support is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called i2c-algo-bit.o. +. +I2C_PHILIPSPAR 'Philips style parallel port adapter' text +This supports parallel-port I2C adapters made by Philips. Say Y if +you own such an adapter. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called i2c-philips-par.o. + +Note that if you want support for different parallel port devices, +life will be much easier if you compile them all as modules. +. +I2C_ELV 'ELV adapter' text +This supports parallel-port I2C adapters called ELV. Say Y if you +own such an adapter. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called i2c-elv.o. +. +I2C_VELLEMAN 'Velleman K9000 adapter' text +This supports the Velleman K9000 parallel-port I2C adapter. Say Y if +you own such an adapter. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called i2c-velleman.o. +. +I2C_ALGOPCF 'I2C PCF 8584 interfaces' text +This allows you to use a range of I2C adapters called PCF adapters. +Say Y if you own an I2C adapter belonging to this class and then say +Y to the specific driver for you adapter below. + +This support is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called i2c-algo-pcf.o. +. +I2C_ELEKTOR 'Elektor ISA card' text +This supports the PCF8584 ISA bus I2C adapter. Say Y if you own such +an adapter. + +This driver is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called i2c-elektor.o. +. +I2C_CHARDEV 'I2C device interface' text +Say Y here to use i2c-* device files, usually found in the /dev +directory on your system. They make it possible to have user-space +programs use the I2C bus. Information on how to do this is contained +in the file Documentation/i2c/dev-interface. + +This code is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called i2c-dev.o. +. +ITE_I2C_ALGO 'ITE I2C Algorithm' + +ITE_I2C_ADAP 'ITE I2C Adapter' + +I2C_ALGO8XX 'MPC8xx CPM I2C interface' + +I2C_RPXLITE 'Embedded Planet RPX Lite/Classic suppoort' + +I2C_PPC405_ALGO 'PPC 405 I2C Algorithm' + +I2C_PPC405_ADAP 'PPC 405 I2C Adapter' + +I2C_PROC 'I2C /proc interface (required for hardware sensors)' + +# +# Telephony device configuration +PHONE 'Linux telephony support' text +Say Y here if you have a telephony card, which for example allows +you to use a regular phone for voice-over-IP applications. + +Note: this has nothing to do with modems. You do not need to say Y +here in order to be able to use a modem under Linux. + +This support is also available as a module. If you want to compile +it as a module, say M here and read Documentation/modules.txt. The +module will be called phonedev.o. +. +PHONE_IXJ 'QuickNet Internet LineJack/PhoneJack support' text +Say M if you have a telephony card manufactured by Quicknet +Technologies, Inc. These include the Internet PhoneJACK and +Internet LineJACK Telephony Cards. You will get a module called +ixj.o. + +For the ISA versions of these products, you can configure the +cards using the isapnp tools (pnpdump/isapnp) or you can use the +isapnp support. Please read Documentation/telephony/ixj.txt. + +For more information on these cards, see Quicknet's web site at: +http://www.quicknet.net/ . + +If you do not have any Quicknet telephony cards, you can safely +say N here. +. +PHONE_IXJ_PCMCIA 'QuickNet Internet LineJack/PhoneJack PCMCIA support' + +# +# FireWire support +IEEE1394 'IEEE 1394 (FireWire) support' text +IEEE 1394 describes a high performance serial bus, which is also +known as FireWire(tm) or i.Link(tm) and is used for connecting all +sorts of devices (most notably digital video cameras) to your +computer. + +If you have FireWire hardware and want to use it, say Y here. This +is the core support only, you will also need to select a driver for +your IEEE 1394 adapter. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ieee1394.o. +. +IEEE1394_PCILYNX 'Texas Instruments PCILynx support' text +Say Y here if you have an IEEE-1394 controller with the Texas +Instruments PCILynx chip. Note: this driver is written for revision +2 of this chip and may not work with revision 0. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called pcilynx.o. +. +IEEE1394_PCILYNX_LOCALRAM 'Use local RAM on PCILynx board' text +This option makes the PCILynx driver use local RAM available on some +PCILynx setups for Packet Control Lists. Local RAM is random access +memory which resides on the PCILynx board as opposed to on your +computer's motherboard. Local RAM may speed up command processing +because no PCI transfers are necessary during use of the Packet +Control Lists. + +Note that there are no known PCILynx systems providing local RAM +except for the evaluation boards by Texas Instruments and that the +PCILynx does not reliably report missing RAM. This means that it is +dangerous to say Y here if you are not absolutely sure that your +board provides 64KB of local RAM. + +If unsure, say N. +. +IEEE1394_PCILYNX_PORTS 'Support for non-IEEE1394 local ports' text +This option enables driver code to access the RAM, ROM and AUX ports +of the PCILynx through character devices in /dev. If you don't know +what this is about then you won't need it. + +If unsure, say N. +. +#IEEE1394_AIC5800 'Adaptec AIC-5800 (AHA-89xx) support' +IEEE1394_OHCI1394 'OHCI (Open Host Controller Interface) support' text +Enable this driver if you have an IEEE 1394 controller based on the +OHCI-1394 specification. The current driver is only tested with OHCI +chipsets made by Texas Instruments and NEC. Most third-party vendors +use one of these chipsets. It should work with any OHCI-1394 compliant +card, however. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called ohci1394.o. +. +IEEE1394_SBP2 'SBP-2 support (Harddisks etc.)' text +This option enables you to use SBP-2 devices connected to your IEEE 1394 +bus. SBP-2 devices include harddrives and DVD devices. +. +IEEE1394_VIDEO1394 'Video1394 support' text +This option enables video device usage for OHCI-1394 cards. Enable this +option only if you have an IEEE 1394 video device connected to an +OHCI-1394 card. +. +IEEE1394_RAWIO 'Raw IEEE 1394 I/O support' text +Say Y here if you want support for the raw device. This is generally +a good idea, so you should say Y here. The raw device enables +direct communication of user programs with the IEEE 1394 bus and +thus with the attached peripherals. + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called raw1394.o. +. +IEEE1394_VERBOSEDEBUG 'Excessive debugging output' text +If you say Y here, you will get very verbose debugging logs from the +subsystem which includes a dump of the header of every sent and +received packet. This can amount to a high amount of data collected +in a very short time which is usually also saved to disk by the +system logging daemons. + +Say Y if you really want or need the debugging output, everyone else +says N. +. +# +# Define implied options from the CPU selection here +# Some of these (MATH_EMULATION) are used by non-X86 ports. +X86 'Intel or compatible 80x86 processor' + +# Processor family (default is 'PPro') +M386 '386' text +This is the processor type of your CPU. This information is used for +optimizing purposes. In order to compile a kernel that can run on +all x86 CPU types (albeit not optimally fast), you can specify +"386" here. + +The kernel will not necessarily run on earlier architectures than +the one you have chosen, e.g. a Pentium optimized kernel will run on +a PPro, but not necessarily on a i486. + +Here are the settings recommended for greatest speed: + - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI + 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels will + run on a 386 class machine. + - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or + SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S. + - "586" for generic Pentium CPUs, possibly lacking the TSC + (time stamp counter) register. + - "Pentium-Classic" for the Intel Pentium. + - "Pentium-MMX" for the Intel Pentium MMX. + - "Pentium-Pro" for the Intel Pentium Pro/Celeron/Pentium II. + - "Pentium-III" for the Intel Pentium III + and Celerons based on the coppermine core. + - "Pentium-4" for the Intel Pentium 4. + - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D). + - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird). + - "Crusoe" for the Transmeta Crusoe series. + - "Winchip-C6" for original IDT Winchip. + - "Winchip-2" for IDT Winchip 2. + - "Winchip-2A" for IDT Winchips with 3dNow! capabilities. + - "CyrixIII" for VIA Cyrix III or VIA C3. + +If you don't know what to do, choose "386". +. +M486 '486' + +M586 '586/K5/5x86/6x86/6x86MX' + +M586TSC 'Pentium Classic' + +M586MMX 'Pentium MMX' + +M686 'Pentium Pro/Celeron/Pentium II' + +MPENTIUMIII 'Pentium-III/Celeron-Coppermine' + +MPENTIUM4 'Pentium-4' + +MK6 'K6/K6-II/K6-III' + +MK7 'Athlon/Duron/K7' + +MCRUSOE 'Crusoe' + +MWINCHIPC6 'Winchip-C6' + +MWINCHIP2 'Winchip-2' + +MWINCHIP3D 'Winchip-2A/Winchip-3' + +MCYRIXIII 'CyrixIII/C3' + +# High Memory Support (default 'off') +NOHIGHMEM 'off' text +Linux can use up to 64 Gigabytes of physical memory on x86 systems. +However, the address space of 32-bit x86 processors is only 4 +Gigabytes large. That means that, if you have a large amount of +physical memory, not all of it can be "permanently mapped" by the +kernel. The physical memory that's not permanently mapped is called +"high memory". + +If you are compiling a kernel which will never run on a machine with +more than 1 Gigabyte total physical RAM, answer "off" here (default +choice and suitable for most users). This will result in a "3GB/1GB" +split: 3GB are mapped so that each process sees a 3GB virtual memory +space and the remaining part of the 4GB virtual memory space is used +by the kernel to permanently map as much physical memory as +possible. + +If the machine has between 1 and 4 Gigabytes physical RAM, then +answer "4GB" here. + +If more than 4 Gigabytes is used then answer "64GB" here. This +selection turns Intel PAE (Physical Address Extension) mode on. +PAE implements 3-level paging on IA32 processors. PAE is fully +supported by Linux, PAE mode is implemented on all recent Intel +processors (Pentium Pro and better). NOTE: If you say "64GB" here, +then the kernel will not boot on CPUs that don't support PAE! + +The actual amount of total physical memory will either be +auto detected or can be forced by using a kernel command line option +such as "mem=256M". (Try "man bootparam" or see the documentation of +your boot loader (lilo or loadlin) about how to pass options to the +kernel at boot time.) + +If unsure, say "off". +. +HIGHMEM4G '4GB' + +HIGHMEM64G '64GB' + +# Other port symbols +TOSHIBA 'Toshiba Laptop support' text +This adds a driver to safely access the System Management Mode +of the CPU on Toshiba portables. The System Management Mode +is used to set the BIOS and power saving options on Toshiba portables. + +For information on utilities to make use of this driver see the +Toshiba Linux utilities web site at: +http://www.buzzard.org.uk/toshiba/ + +Say Y if you intend to run this kernel on a Toshiba portable. +Say N otherwise. +. +I8K 'Dell Inspiron 8000 support' text +This adds a driver to safely access the System Management Mode +of the CPU on the Dell Inspiron 8000. The System Management Mode +is used to read cpu temperature and cooling fan status and to +control the fans on the I8K portables. + +This driver has been tested only on the Inspiron 8000 but it may +also work with other Dell laptops. You can force loading on other +models by passing the parameter `force=1' to the module. Use at +your own risk. + +For information on utilities to make use of this driver see the +I8K Linux utilities web site at: +http://www.debian.org/~dz/i8k/ + +Say Y if you intend to run this kernel on a Dell Inspiron 8000. +Say N otherwise. +. +MICROCODE '/dev/cpu/microcode - Intel IA32 CPU microcode support' text +If you say Y here and also to "/dev file system support" in the +'File systems' section, you will be able to update the microcode on +Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II, +Pentium III, Pentium 4, Xeon etc. You will obviously need the actual +microcode binary data itself which is not shipped with the Linux kernel. + +For latest news and information on obtaining all the required +ingredients for this driver, check: +http://www.urbanmyth.org/microcode/ + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called microcode.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. If you use +modprobe or kmod you may also want to add the line +'alias char-major-10-184 microcode' to your /etc/modules.conf file. +. +X86_MSR '/dev/cpu/*/msr - Model-specific register support' text +This device gives privileged processes access to the x86 +Model-Specific Registers (MSRs). It is a character device with +major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. +MSR accesses are directed to a specific CPU on multi-processor +systems. +. +X86_CPUID '/dev/cpu/*/cpuid - CPU information support' text +This device gives processes access to the x86 CPUID instruction to +be executed on a specific processor. It is a character device +with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to +/dev/cpu/31/cpuid. +. +MATH_EMULATION 'Kernel math emulation' text +Linux can emulate a math coprocessor (used for floating point +operations) if you don't have one. 486DX and Pentium processors have +a math coprocessor built in, 486SX and 386 do not, unless you added +a 487DX or 387, respectively. (The messages during boot time can +give you some hints here ["man dmesg"].) Everyone needs either a +coprocessor or this emulation. + +If you don't have a math coprocessor, you need to say Y here; if you +say Y here even though you have a coprocessor, the coprocessor will +be used nevertheless. (This behavior can be changed with the kernel +command line option "no387", which comes handy if your coprocessor +is broken. Try "man bootparam" or see the documentation of your boot +loader (lilo or loadlin) about how to pass options to the kernel at +boot time.) This means that it is a good idea to say Y here if you +intend to use this kernel on different machines. + +More information about the internals of the Linux math coprocessor +emulation can be found in arch/i386/math-emu/README. + +If you are not sure, say Y; apart from resulting in a 66 KB bigger +kernel, it won't hurt. +. +MTRR 'MTRR (Memory Type Range Register) support' text +On Intel P6 family processors (Pentium Pro, Pentium II and later) +the Memory Type Range Registers (MTRRs) may be used to control +processor access to memory ranges. This is most useful if you have +a video (VGA) card on a PCI or AGP bus. Enabling write-combining +allows bus write transfers to be combined into a larger transfer +before bursting over the PCI/AGP bus. This can increase performance +of image write operations 2.5 times or more. Saying Y here creates a +/proc/mtrr file which may be used to manipulate your processor's +MTRRs. Typically the X server should use this. + +This code has a reasonably generic interface so that similar +control registers on other processors can be easily supported +as well: + +The Cyrix 6x86, 6x86MX and M II processors have Address Range +Registers (ARRs) which provide a similar functionality to MTRRs. For +these, the ARRs are used to emulate the MTRRs. +The AMD K6-2 (stepping 8 and above) and K6-3 processors have two +MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing +write-combining. All of these processors are supported by this code +and it makes sense to say Y here if you have one of them. + +Saying Y here also fixes a problem with buggy SMP BIOSes which only +set the MTRRs for the boot CPU and not for the secondary CPUs. This +can lead to all sorts of problems, so it's good to say Y here. + +You can safely say Y even if your machine doesn't have MTRRs, you'll +just add about 9 KB to your kernel. + +See Documentation/mtrr.txt for more information. +. +X86_UP_APIC 'Local APIC Support on Uniprocessors' text +A local APIC (Advanced Programmable Interrupt Controller) is an +integrated interrupt controller in the CPU. If you have a single-CPU +system which has a processor with a local APIC, you can say Y here to +enable and use it. If you say Y here even though your machine doesn't +have a local APIC, then the kernel will still run with no slowdown at +all. The local APIC supports CPU-generated self-interrupts (timer, +performance counters), and the NMI watchdog which detects hard lockups. + +If you have a system with several CPUs, you do not need to say Y +here: the local APIC will be used automatically. +. +X86_UP_IOAPIC 'IO-APIC support on uniprocessors' text +An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an +SMP-capable replacement for PC-style interrupt controllers. Most +SMP systems and a small number of uniprocessor systems have one. +If you have a single-CPU system with an IO-APIC, you can say Y here +to use it. If you say Y here even though your machine doesn't have +an IO-APIC, then the kernel will still run with no slowdown at all. + +If you have a system with several CPUs, you do not need to say Y +here: the IO-APIC will be used automatically. +. +MULTIQUAD 'Multiquad NUMA system' text +This option is used for getting Linux to run on a (IBM/Sequent) NUMA +multiquad box. This changes the way that processors are bootstrapped, +and uses Clustered Logical APIC addressing mode instead of Flat Logical. +You will need a new lynxer.elf file to flash your firmware with - send +email to Martin.Bligh@us.ibm.com +. +#VISWS 'SGI Visual Workstation support' +MCA 'MCA support' text +MicroChannel Architecture is found in some IBM PS/2 machines and +laptops. It is a bus system similar to PCI or ISA. See +Documentation/mca.txt (and especially the web page given there) +before attempting to build an MCA bus kernel. +. +PM 'Power Management support' text +"Power Management" means that parts of your computer are shut +off or put into a power conserving "sleep" mode if they are not +being used. There are two competing standards for doing this: APM +and ACPI. If you want to use either one, say Y here and then also to +the requisite support below. + +Power Management is most important for battery powered laptop +computers; if you have a laptop, check out the Linux Laptop home +page on the WWW at +http://www.cs.utexas.edu/users/kharker/linux-laptop/ and the Battery +Powered Linux mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +Note that, even if you say N here, Linux on the x86 architecture +will issue the hlt instruction if nothing is to be done, thereby +sending the processor to sleep and saving power. +. +ACPI 'ACPI support' text +ACPI/OSPM support for Linux is currently under development. As such, +this support is preliminary and EXPERIMENTAL. Configuring ACPI support +enables kernel interfaces that allow higher level software (OSPM) to +manipulate ACPI defined hardware and software interfaces, including +the evaluation of ACPI control methods. If unsure, choose N here. +Note, this option will enlarge your kernel by about 120K. + +This support requires an ACPI compliant platform (hardware/firmware). +If both ACPI and Advanced Power Management (APM) support are +configured, whichever is loaded first shall be used. + +This code DOES NOT currently provide a complete OSPM implementation -- +it has not yet reached APM's level of functionality. When fully +implemented, Linux ACPI/OSPM will provide a more robust functional +replacement for legacy configuration and power management interfaces, +including the Plug-and-Play BIOS specification (PNP BIOS), the Multi- +Processor Specification (MPS), and the Advanced Power Management +specification (APM). + +Linux support for ACPI/OSPM is based on Intel Corporation's ACPI +Component Architecture (ACPI CA). The latest ACPI CA source code, +documentation, debug builds, and implementation status information +can be downloaded from: +http://developer.intel.com/technology/iapc/acpi/downloads.htm + +The ACPI mailing list may also be of interest: +http://phobos.fs.tum.de/acpi/index.html +. +ACPI_DEBUG 'ACPI Debug Statements' text +The ACPI driver can optionally report errors with a great deal +of verbosity. Saying Y enables these statements. This will increase +your kernel size by around 50K. +. +ACPI_BUSMGR 'ACPI Bus Manager' text +The ACPI Bus Manager enumerates devices in the ACPI namespace, and +handles PnP messages. All ACPI devices use its services, so using them +requires saying Y here. +. +ACPI_SYS 'ACPI System Driver' text +This driver will enable your system to shut down using ACPI, and dump +your ACPI DSDT table using /proc/acpi/dsdt. +. +ACPI_CPU 'ACPI Processor Driver' text +This driver installs ACPI as the idle handler for Linux, and uses ACPI +C2 and C3 processor states to save power, on systems that support it. +. +ACPI_BUTTON 'ACPI Button' text +This driver registers for events based on buttons, such as the power, +sleep, and lid switch. In the future, a daemon will read +/proc/acpi/event and perform user-defined actions such as shutting +down the system. Until then, you can cat it, and see output when +a button is pressed. +. +ACPI_AC 'ACPI AC Adapter' text +This driver adds support for the AC Adapter object, which indicates +whether a system is on AC, or not. Typically, only laptops have this +object, since desktops are always on AC. +. +ACPI_EC 'ACPI Embedded Controller' text +This driver is required on some systems for the proper operation of the +battery and thermal drivers. If you are compiling for a laptop, say Y. +. +ACPI_CMBATT 'ACPI Control Method Battery' text +This driver adds support for battery information through +/proc/acpi/battery. If you have a laptop with a battery, say Y. +. +ACPI_THERMAL 'ACPI Thermal' text +This driver handles overheating conditions on laptops. It is HIGHLY +recommended, as your laptop CPU may be damaged without it. +. +#ACPI_INTERPRETER 'ACPI interpreter' +APM 'Advanced Power Management BIOS support' text +APM is a BIOS specification for saving power using several different +techniques. This is mostly useful for battery powered laptops with +APM compliant BIOSes. If you say Y here, the system time will be +reset after a RESUME operation, the /proc/apm device will provide +battery status information, and user-space programs will receive +notification of APM "events" (e.g. battery status change). + +If you select "Y" here, you can disable actual use of the APM +BIOS by passing the "apm=off" option to the kernel at boot time. + +Note that the APM support is almost completely disabled for +machines with more than one CPU. + +In order to use APM, you will need supporting software. For location +and more information, read Documentation/pm.txt and the Battery +Powered Linux mini-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto . + +This driver does not spin down disk drives (see the hdparm(8) +manpage ("man 8 hdparm") for that), and it doesn't turn off +VESA-compliant "green" monitors. + +This driver does not support the TI 4000M TravelMate and the ACER +486/DX4/75 because they don't have compliant BIOSes. Many "green" +desktop machines also don't have compliant BIOSes, and this driver +may cause those machines to panic during the boot phase. + +Generally, if you don't have a battery in your machine, there isn't +much point in using this driver and you should say N. If you get +random kernel OOPSes or reboots that don't seem to be related to +anything, try disabling/enabling this option (or disabling/enabling +APM in your BIOS). + +Some other things you should try when experiencing seemingly random, +"weird" problems: + + 1) make sure that you have enough swap space and that it is + enabled. + 2) pass the "no-hlt" option to the kernel + 3) switch on floating point emulation in the kernel and pass + the "no387" option to the kernel + 4) pass the "floppy=nodma" option to the kernel + 5) pass the "mem=4M" option to the kernel (thereby disabling + all but the first 4 MB of RAM) + 6) make sure that the CPU is not over clocked. + 7) read the sig11 FAQ at http://www.bitwizard.nl/sig11/ + 8) disable the cache from your BIOS settings + 9) install a fan for the video card or exchange video RAM + 10) install a better fan for the CPU + 11) exchange RAM chips + 12) exchange the motherboard. + +To compile this driver as a module ( = code which can be inserted in +and removed from the running kernel whenever you want), say M here +and read Documentation/modules.txt. The module will be called +apm.o. +. +APM_IGNORE_USER_SUSPEND 'Ignore USER SUSPEND' text +This option will ignore USER SUSPEND requests. On machines with a +compliant APM BIOS, you want to say N. However, on the NEC Versa M +series notebooks, it is necessary to say Y because of a BIOS bug. +. +APM_DO_ENABLE 'Enable APM at boot time' text +Enable APM features at boot time. From page 36 of the APM BIOS +specification: "When disabled, the APM BIOS does not automatically +power manage devices, enter the Standby State, enter the Suspend +State, or take power saving steps in response to CPU Idle calls." +This driver will make CPU Idle calls when Linux is idle (unless this +feature is turned off -- see "Do CPU IDLE calls", below). This +should always save battery power, but more complicated APM features +will be dependent on your BIOS implementation. You may need to turn +this option off if your computer hangs at boot time when using APM +support, or if it beeps continuously instead of suspending. Turn +this off if you have a NEC UltraLite Versa 33/C or a Toshiba +T400CDT. This is off by default since most machines do fine without +this feature. +. +APM_CPU_IDLE 'Make CPU Idle calls when idle' text +Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. +On some machines, this can activate improved power savings, such as +a slowed CPU clock rate, when the machine is idle. These idle calls +are made after the idle loop has run for some length of time (e.g., +333 mS). On some machines, this will cause a hang at boot time or +whenever the CPU becomes idle. (On machines with more than one CPU, +this option does nothing.) +. +APM_DISPLAY_BLANK 'Enable console blanking using APM' text +Enable console blanking using the APM. Some laptops can use this to +turn off the LCD backlight when the screen blanker of the Linux +virtual console blanks the screen. Note that this is only used by +the virtual console screen blanker, and won't turn off the backlight +when using the X Window system. This also doesn't have anything to +do with your VESA-compliant power-saving monitor. Further, this +option doesn't work for all laptops -- it might not turn off your +backlight at all, or it might print a lot of errors to the console, +especially if you are using gpm. +. +#APM_IGNORE_MULTIPLE_SUSPEND 'Ignore multiple suspend' +#APM_IGNORE_SUSPEND_BOUNCE 'Ignore multiple suspend/resume cycles' +APM_RTC_IS_GMT 'RTC stores time in GMT' text +Say Y here if your RTC (Real Time Clock a.k.a. hardware clock) +stores the time in GMT (Greenwich Mean Time). Say N if your RTC +stores localtime. + +It is in fact recommended to store GMT in your RTC, because then you +don't have to worry about daylight savings time changes. The only +reason not to use GMT in your RTC is if you also run a broken OS +that doesn't understand GMT. +. +APM_ALLOW_INTS 'Allow interrupts during APM BIOS calls' text +Normally we disable external interrupts while we are making calls to +the APM BIOS as a measure to lessen the effects of a badly behaving +BIOS implementation. The BIOS should reenable interrupts if it +needs to. Unfortunately, some BIOSes do not -- especially those in +many of the newer IBM Thinkpads. If you experience hangs when you +suspend, try setting this to Y. Otherwise, say N. +. +APM_REAL_MODE_POWER_OFF 'Use real mode APM BIOS call to power off' text +Use real mode APM BIOS calls to switch off the computer. This is +a work-around for a number of buggy BIOSes. Switch this option on if +your computer crashes instead of powering off properly. +. +VIDEO_SELECT 'Video mode selection support' text +This enables support for text mode selection on kernel startup. If +you want to take advantage of some high-resolution text mode your +card's BIOS offers, but the traditional Linux utilities like +SVGATextMode don't, you can say Y here and set the mode using the +"vga=" option from your boot loader (lilo or loadlin) or set +"vga=ask" which brings up a video mode menu on kernel startup. (Try +"man bootparam" or see the documentation of your boot loader about +how to pass options to the kernel.) + +Read the file Documentation/svga.txt for more information about the +Video mode selection support. If unsure, say N. +. +MDA_CONSOLE 'MDA text console (dual-headed)' text +Say Y here if you have an old MDA or monochrome Hercules graphics +adapter in your system acting as a second head ( = video card). You +will then be able to use two monitors with your Linux system. Do not +say Y here if your MDA card is the primary card in your system; the +normal VGA driver will handle it. + +This driver is also available as a module ( = code which can be +inserted and removed from the running kernel whenever you want). +The module will be called mdacon.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. + +If unsure, say N. +. +IA32SUPPORT 'Kernel support for IA-32 emulation' + +# +# Alpha port +ALPHA 'Alpha processor' + +# Alpha system type (default is 'Generic') +ALPHA_GENERIC 'Generic' text +This is the system type of your hardware. A "generic" kernel will +run on any supported Alpha system. However, if you configure a +kernel for your specific system, it will be faster and smaller. + +To find out what type of Alpha system you have, you may want to +check out the Linux/Alpha FAQ, accessible on the WWW from +http://www.alphalinux.org . In summary: + +Alcor/Alpha-XLT AS 600 +Alpha-XL XL-233, XL-266 +AlphaBook1 Alpha laptop +Avanti AS 200, AS 205, AS 250, AS 255, AS 300, AS 400 +Cabriolet AlphaPC64, AlphaPCI64 +DP264 DP264 +EB164 EB164 21164 evaluation board +EB64+ EB64+ 21064 evaluation board +EB66 EB66 21066 evaluation board +EB66+ EB66+ 21066 evaluation board +Jensen DECpc 150, DEC 2000 model 300, + DEC 2000 model 500 +LX164 AlphaPC164-LX +Miata Personal Workstation 433a, 433au, 500a, + 500au, 600a, or 600au +Mikasa AS 1000 +Noname AXPpci33, UDB (Multia) +Noritake AS 1000A, AS 600A, AS 800 +PC164 AlphaPC164 +Rawhide AS 1200, AS 4000, AS 4100 +Ruffian RPX164-2, AlphaPC164-UX, AlphaPC164-BX +SX164 AlphaPC164-SX +Sable AS 2000, AS 2100 +Shark DS 20L +Takara Takara +Titan Privateer +Wildfire AlphaServer GS 40/80/160/320 + +If you don't know what to do, choose "generic". +. +ALPHA_ALCOR 'Alcor/Alpha-XLT' + +ALPHA_XL 'Alpha-XL' + +ALPHA_BOOK1 'AlphaBook1' + +ALPHA_AVANTI_REAL 'Avanti' + +ALPHA_CABRIOLET 'Cabriolet' + +ALPHA_DP264 'DP264' + +ALPHA_EB164 'EB164' + +ALPHA_EB64P 'EB64+' + +ALPHA_EB66 'EB66' + +ALPHA_EB66P 'EB66+' + +ALPHA_EIGER 'Eiger' + +ALPHA_JENSEN 'Jensen' + +ALPHA_LX164 'LX164' + +ALPHA_MIATA 'Miata' + +ALPHA_MIKASA 'Mikasa' + +ALPHA_NAUTILUS 'Nautilus' + +ALPHA_NONAME 'Noname' + +ALPHA_NORITAKE 'Noritake' + +ALPHA_PC164 'PC164' + +ALPHA_P2K 'Platform2000' + +ALPHA_RAWHIDE 'Rawhide' + +ALPHA_RUFFIAN 'Ruffian' + +ALPHA_RX164 'RX164' + +ALPHA_SX164 'SX164' + +ALPHA_SABLE 'Sable' + +ALPHA_SHARK 'Shark' + +ALPHA_TAKARA 'Takara' + +ALPHA_TITAN 'Titan' + +ALPHA_WILDFIRE 'Wildfire' + +# Other ALPHA port symbols +ALPHA_EV67 'EV67 (or later) CPU (speed > 600MHz)?' + +ALPHA_PRIMO 'EV5 CPU daughtercard (model 5/xxx)' text +Say Y if you have an AS 1000 5/xxx or an AS 1000A 5/xxx. +. +ALPHA_GAMMA 'EV5 CPU(s) (model 5/xxx)' text +Say Y if you have an AS 2000 5/xxx or an AS 2100 5/xxx. +. +ALPHA_SRM 'Use SRM as bootloader' text +There are two different types of booting firmware on Alphas: SRM, +which is command line driven, and ARC, which uses menus and arrow +keys. Details about the Linux/Alpha booting process are contained in +the Linux/Alpha FAQ, accessible on the WWW from +http://www.alphalinux.org . + +The usual way to load Linux on an Alpha machine is to use MILO +(a bootloader that lets you pass command line parameters to the +kernel just like lilo does for the x86 architecture) which can be +loaded either from ARC or can be installed directly as a permanent +firmware replacement from floppy (which requires changing a certain +jumper on the motherboard). If you want to do either of these, say N +here. If MILO doesn't work on your system (true for Jensen +motherboards), you can bypass it altogether and boot Linux directly +from an SRM console; say Y here in order to do that. Note that you +won't be able to boot from an IDE disk using SRM. + +If unsure, say N. +. +BINFMT_EM86 'Kernel support for Linux/Intel ELF binaries' text +Say Y here if you want to be able to execute Linux/Intel ELF +binaries just like native Alpha binaries on your Alpha machine. For +this to work, you need to have the emulator /usr/bin/em86 in place. + +You can get the same functionality by saying N here and saying Y to +"Kernel support for MISC binaries". + +You may answer M to compile the emulation support as a module and +later load the module when you want to use a Linux/Intel binary. The +module will be called binfmt_em86.o. If unsure, say Y. +. +ALPHA_LEGACY_START_ADDRESS 'Legacy kernel start address' text +The 2.4 kernel changed the kernel start address from 0x310000 +to 0x810000 to make room for the Wildfire's larger SRM console. + +If you're using aboot 0.7 or later, the bootloader will examine +the ELF headers to determine where to transfer control. Unfortunately, +most older bootloaders -- APB or MILO -- hardcoded the kernel +start address rather than examining the ELF headers, and the result +is a hard lockup. + +Say Y if you have a broken bootloader. Say N if you do not, or +if you wish to run on Wildfire. +. +SRM_ENV 'SRM environment through procfs' text +If you enable this option, a subdirectory called srm_environment +will give you access to the most important SRM environment +variables. If you've got an Alpha style system supporting +SRC, then it is a good idea to say Yes or Module to this driver. + +This driver is also available as a module and will be called +srm_env.o if you build it as a module. +. +MATHEMU 'Kernel FP software completion' text +This option is required for IEEE compliant floating point arithmetic +on the Alpha. The only time you would ever not say Y is to say M in +order to debug the code. Say Y unless you know what you are doing. +. +# +# Sparc port +SUN4 'Support for SUN4 machines (disables SUN4[CDM] support)' text +Say Y here if, and only if, your machine is a Sun4. Note that +a kernel compiled with this option will run only on Sun4. +(And the current version will probably work only on sun4/330.) +. +PROM_CONSOLE 'Sun PROM console' + +SUN_OPENPROMFS 'Openprom tree appears in /proc/openprom' text +If you say Y, the OpenPROM device tree will be available as a +virtual file system, which you can mount to /proc/openprom by "mount +-t openpromfs none /proc/openprom". + +If you want to compile the /proc/openprom support as a module ( = +code which can be inserted in and removed from the running kernel +whenever you want), say M here and read Documentation/modules.txt. +The module will be called openpromfs.o. If unsure, say M. +. +SUNOS_EMUL 'SunOS binary emulation' text +This allows you to run most SunOS binaries. If you want to do this, +say Y here and place appropriate files in /usr/gnemul/sunos. See +http://www.ultralinux.org/faq.html for more information. If you want +to run SunOS binaries on an Ultra you must also say Y to "Kernel +support for 32-bit a.out binaries" above. +. +SCSI_SUNESP 'SPARC ESP SCSI support' text +This is the driver for the Sun ESP SCSI host adapter. The ESP +chipset is present in most SPARC SBUS-based computers. + +This support is also available as a module called esp.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SCSI_QLOGICPTI 'PTI Qlogic, ISP Driver' text +This driver supports SBUS SCSI controllers from PTI or QLogic. These +controllers are known under Solaris as qpti and in the openprom as +PTI,ptisp or QLGC,isp. Note that PCI QLogic SCSI controllers are +driven by a different driver. + +This support is also available as a module called qlogicpti.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SUN3LANCE 'Sun3/Sun3x on-board LANCE support' + +SUN3_82586 'Sun3 on-board Intel 82586 support' + +WINBOND_840 'Winbond W89c840 PCI Ethernet support' text +This driver is for the Winbond W89c840 chip. It also works with +the TX9882 chip on the Compex RL100-ATX board. +More specific information and updates are available from +http://www.scyld.com/network/drivers.html +. +HAPPYMEAL 'Sun Happy Meal 10/100baseT support' text +This driver supports the "hme" interface present on most Ultra +systems and as an option on older Sbus systems. This driver supports +both PCI and Sbus devices. This driver also supports the "qfe" quad +100baseT device available in both PCI and Sbus configurations. + +This support is also available as a module called sunhme.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SUNBMAC 'Sun BigMAC 10/100baseT support' text +This driver supports the "be" interface available as an Sbus option. +This is Sun's older 100baseT ethernet device. + +This support is also available as a module called sunbmac.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +SUNQE 'Sun QuadEthernet support' text +This driver supports the "qe" 10baseT ethernet device, available as +an Sbus option. Note that this is not the same as Quad FastEthernet +"qfe" which is supported by the Happy Meal driver instead. + +This support is also available as a module called sunqe.o ( = code +which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +# +# CPU types for both MIPS ports +CPU_R3000 'R3000' text +Please make sure to pick the right CPU type. Linux/MIPS is not +designed to be generic, i.e. Kernels compiled for R3000 CPUs will +*not* work on R4000 Machines and vice versa. +However, since most the supported Machines have an R4000 (or +similar) CPU, R4xx0 might be a safe bet. +If the resulting Kernel does not work try to recompile with R3000. +. +CPU_R6000 'R6000' + +CPU_VR41XX 'R41xx' text +The options selects support for the NEC VR41xx series of processors. +Only choose this option if you have one of these processors as a +kernel built with this option will not run on any other type of +processor or vice versa. +. +CPU_R4300 'R4300' + +CPU_R4X00 'R4x00' + +CPU_R5000 'R5000' + +CPU_R5432 'R5432' + +CPU_RM7000 'RM7000' + +CPU_R8000 'R8000' + +CPU_NEVADA 'R52x0' + +CPU_R10000 'R10000' + +CPU_SB1 'SB1' + +CPU_MIPS32 'MIPS32' + +CPU_MIPS64 'MIPS64' + +# +# MIPS-32 port +MIPS32 'MIPS-32 processor' + +ACER_PICA_61 'Support for Acer PICA 1 chipset' text +This is a machine with a R4400 133/150 MHz CPU. To compile a Linux +kernel that runs on these, say Y here. For details about Linux on +the MIPS architecture, check out the Linux/MIPS FAQ on the WWW at +http://oss.sgi.com/mips . +. +ALGOR_P4032 'Support for Algorithmics P4032' text +This is an evaluation board of the British company Algorithmics. The +board uses the R4300 and a R5230 CPUs. For more information about +this board see http://www.algor.co.uk . +. +BAGET_MIPS 'Support for BAGET MIPS series' text +This enables support for the Baget, a Russian embedded system. For +more details about the Baget see the Linux/MIPS FAQ on +http://oss.sgi.com/mips . +. +DECSTATION 'Support for DECstations' text +This enables support for DEC's MIPS based workstations. For details +see the Linux/MIPS FAQ on http://oss.sgi.com/mips and the +DECstation porting pages on http://decstation.unix-ag.org . + +If you have one of the following DECstation Models you definitely +want to choose R4xx0 for the CPU Type: + + DECstation 5000/50 + DECstation 5000/150 + DECstation 5000/260 + DECsystem 5900/260 + +otherwise choose R3000. +. +DDB5074 'Support for NEC DDB Vrc-5074' text +This enables support for the VR5000-based NEC DDB Vrc-5074 +evaluation board. +. +MIPS_EV96100 'Galileo EV96100 Evaluation board' + +MIPS_EV64120 'Galileo EV64120 Evaluation board' + +EVB_PCI1 'Enable Second PCI (PCI1)' + +MIPS_ATLAS 'Support for MIPS Atlas board' text +This enables support for the QED R5231-based MIPS Atlas evaluation +board. +. +MIPS_MALTA 'Support for MIPS Malta board' text +This enables support for the VR5000-based MIPS Malta evaluation +board. +. +NINO 'Support for Philips Nino' + +MIPS_MAGNUM_4000 'Support for Mips Magnum 4000' text +This is a machine with a R4000 100 MHz CPU. To compile a Linux +kernel that runs on these, say Y here. For details about Linux on +the MIPS architecture, check out the Linux/MIPS FAQ on the WWW at +http://oss.sgi.com/mips. +. +MOMENCO_OCELOT 'Support for the Momentum Computer Ocelot SBC' + +DDB5476 'Support for NEC DDB Vrc-5476' text +This enables support for the R5432-based NEC DDB Vrc-5476 +evaluation board. + +Features : kernel debugging, serial terminal, NFS root fs, on-board +ether port (with a patch to tulip driver), IDE controller, PS2 keyboard +PS2 mouse, etc. + +TODO : USB, Compact-PCI interface. +. +DDB5477 'Support for NEC DDB Vrc-5477' + +OLIVETTI_M700 'Support for Olivetti M700' text +This is a machine with a R4000 100 MHz CPU. To compile a Linux +kernel that runs on these, say Y here. For details about Linux on +the MIPS architecture, check out the Linux/MIPS FAQ on the WWW at +http://oss.sgi.com/mips. +. +SGI_IP22 'Support for SGI-IP22,Indy/Indigo2' text +This are the SGI Indy, Challenge S and Indigo2, as well as certain +OEM variants like the Tandem CMN B006S. To compile a Linux kernel +that runs on these, say Y here. + +Support for SGI IP27 +This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics +workstations. To compile a Linux kernel that runs on these, say Y +here. +. +SNI_RM200_PCI 'Support for SNI RM200 PCI' + +MIPS_ITE8172 'Support for ITE 8172G board' + +MIPS_IVR 'Support for Globespan IVR board' + +QTRONIX_KEYBOARD 'Enable Qtronix 990P Keyboard Support' + +IT8172_REVC 'Support for older IT8172 (Rev C)' + +MIPS_PS2_KEYB 'Enable PS2 Keyboard Support' + +IT8172_SCR0 'Enable Smart Card Reader 0 Support' + +IT8172_SCR1 'Enable Smart Card Reader 1 Support' + +MIPS_PB1000 'Support for Alchemy Semi PB1000 board' + +#CPU_ADVANCED 'Override CPU Options' +CPU_HAS_LLSC 'll/sc Instructions available' text +Say Y here if your CPU has the ll and sc instructions. Say Y here for +better performance, N if you don't know. You must say Y here for +multiprocessor machines. +. +CPU_HAS_LLDSCD 'lld/scd Instructions available' text +Say Y here if your CPU has the lld and scd instructions, the 64-bit +equivalents of ll and sc. Say Y here for better performance, N if +you don't know. You must say Y here for multiprocessor machines. +. +CPU_HAS_WB 'Writeback Buffer available' text +Say N here for slightly better performance. You must say Y here for +machines which require flushing of write buffers in software. Saying +Y is the safe option; N may result in kernel malfunction and crashes. +. +FORWARD_KEYBOARD 'Include forward keyboard' + +ARC_CONSOLE 'ARC console support' text +Say Y here if you want to use the PROMs for console I/O. +. +TC 'TURBOchannel support' + +#ACCESSBUS 'Access.Bus support' +SGI_PROM_CONSOLE 'SGI PROM Console Support' + +DZ 'DZ11 Serial Support' + +ZS 'Z85C30 Serial Support' + +SGI_NEWPORT_CONSOLE 'SGI Newport Console support' text +Say Y here if you want the console on the Newport aka XL graphics +card of your Indy. Most people say Y here. +. +CROSSCOMPILE 'Are you using a crosscompiler' text +Say Y here if you are compiling the kernel on a different +architecture than the one it is intended to run on. +. +#MIPS_FPE_MODULE 'Build fp exception handler module' +SGISEEQ 'SGI Seeq Ethernet controller support' text +Say Y here if you have an Seeq based Ethernet network card. This is +used in many Silicon Graphics machines. +. +DECLANCE 'DEC LANCE Ethernet controller support' + +BAGETLANCE 'Baget AMD LANCE support' + +#BAGETBSM 'Baget Backplane Shared Memory support' +# Galileo speed symbols +SYSCLK_75 '75' + +SYSCLK_83 '83.3' + +SYSCLK_100 '100' + +# Nino model number +NINO_4MB 'Model-300/301/302/319' + +NINO_8MB 'Model-200/210/312/320/325/350/390' + +NINO_16MB 'Model-500/510' + +# +# MIPS-64 port (uses some MIPS-32 symbols) +MIPS64 'MIPS-64 processor' + +SGI_IP27 'Support for SGI IP27, Origin200/2000' + +SGI_SN0_N_MODE 'IP27 N-Mode' text +The nodes of Origin 200, Origin 2000 and Onyx 2 systems can be +configured in either N-Modes which allows for more nodes or M-Mode +which allows for more memory. Your system is most probably +running in M-Mode, so you should say N here. +. +NUMA 'NUMA support?' + +MAPPED_KERNEL 'Mapped kernel support' + +REPLICATE_KTEXT 'Kernel text replication support' + +REPLICATE_EXHANDLERS 'Exception handler replication support' + +MIPS_INSANE_LARGE 'Support for large 64-bit configurations' text +MIPS R10000 does support a 44 bit / 16TB address space as opposed to +previous 64-bit processors which only supported 40 bit / 1TB. If you +need processes of more than 1TB virtual address space, say Y here. +This will result in additional memory usage, so it is not +recommended for normal users. +. +MIPS32_COMPAT 'Kernel support for Linux/MIPS 32-bit binary compatibility' +text +Select this option if you want Linux/MIPS 32-bit binary +compatibility. Since all software available for Linux/MIPS is +currently 32-bit you should say Y here. +. +# +# Power PC support +PPC 'Power PC processor' + +# Processor Type (default is CONFIG_6xx) +CONFIG_6xx '6xx/7xx/7400' text +There are four types of PowerPC chips supported. The more common +types (601, 603, 604, 740, 750, 7400), the Motorola embedded versions +(821, 823, 850, 855, 860, 8260), the IBM embedded versions (403 and +405) and the high end 64 bit Power processors (Power 3, Power 4). +Unless you are building a kernel for one of the embedded processor +systems, or a 64 bit IBM RS/6000, choose 6xx. Note that the kernel +runs in 32-bit mode even on 64-bit chips. Also note that because +the 82xx family has a 603e core, specific support for that chipset +is asked later on. +. +CONFIG_4xx '4xx' + +POWER3 'POWER3' + +POWER4 'POWER4' + +CONFIG_8260 'Motorola MPC8260 CPM support' text +The MPC8260 CPM (Communications Processor Module) is a typical +embedded CPU made by Motorola. Selecting this option means that you +wish to build a kernel for a machine with specifically an 8260 for +a CPU. + +If in doubt, say N. +. +CONFIG_8xx '8xx' + +# Machine Type (default is 'Oak') +OAK 'Oak' + +WALNUT 'Walnut' + +# Machine Type (default is 'RPX-Lite') +RPXLITE 'RPX-Lite' text +RPX-Lite: + Embedded Planet RPX Lite + +RPX-Classic: + Embedded Planet RPX Classic Low-fat. + +BSE-IP: + Bright Star Engineering ip-Engine. + +TQM823L: +TQM850L: +TQM855L: +TQM860L: + MPC8xx based family of mini modules, half credit card size, + up to 64 MB of RAM, 8 MB Flash, (Fast) Ethernet, 2 x serial ports, + 2 x CAN bus interface, ... + Manufacturer: TQ Components, www.tq-group.de + Date of Release: October (?) 1999 + End of Life: not yet :-) + URL: + - module: http://www.denx.de/PDF/TQM8xxLHWM201.pdf + - starter kit: http://www.denx.de/PDF/STK8xxLHWM201.pdf + - images: http://www.denx.de/embedded-ppc-en.html + +FPS850L: + FingerPrint Sensor System (based on TQM850L) + Manufacturer: IKENDI AG, http://www.ikendi.com/ + Date of Release: November 1999 + End of life: end 2000 ? + URL: see TQM850L + +SPD823TS: + MPC823 based board used in the "Tele Server" product + Manufacturer: Speech Design, http://www.speech-design.de/ + Date of Release: Mid 2000 (?) + End of life: - + URL: http://www.speech-design.de/ + select "English", then "Teleteam Solutions", then "TeleServer" + +IVMS8: + MPC860 based board used in the "Integrated Voice Mail System", + Small Version (8 voice channels) + Manufacturer: Speech Design, http://www.speech-design.de/ + Date of Release: December 2000 (?) + End of life: - + URL: http://www.speech-design.de/ + +IVML24: + MPC860 based board used in the "Integrated Voice Mail System", + Large Version (24 voice channels) + Manufacturer: Speech Design, http://www.speech-design.de/ + Date of Release: March 2001 (?) + End of life: - + URL: http://www.speech-design.de/ + +SM850: + Service Module (based on TQM850L) + Manufacturer: Dependable Computer Systems, http://www.decomsys.com/ + Date of Release: end 2000 (?) + End of life: mid 2001 (?) + URL: http://www.tz-mikroelektronik.de/ServiceModule/index.html + +HERMES: + Hermes-Pro ISDN/LAN router with integrated 8 x hub + Manufacturer: Multidata Gesellschaft für Datentechnik und Informatik + http://www.multidata.de/ + Date of Release: 2000 (?) + End of life: - + URL: http://www.multidata.de/english/products/hpro.htm + +IP860: + VMEBus IP (Industry Pack) carrier board with MPC860 + Manufacturer: MicroSys GmbH, http://www.microsys.de/ + Date of Release: ? + End of life: - + URL: http://www.microsys.de/html/ip860.html + +PCU_E: + PCU = Peripheral Controller Unit, Extended + Manufacturer: Siemens AG, ICN (Information and Communication Networks) + http://www.siemens.de/page/1,3771,224315-1-999_2_226207-0,00.html + Date of Release: April 2001 + End of life: August 2001 + URL: n. a. +. +RPXCLASSIC 'RPX-Classic' + +BSEIP 'BSE-IP' + +FADS 'FADS' + +TQM823L 'TQM823L' + +TQM850L 'TQM850L' + +TQM855L 'TQM855L' + +TQM860L 'TQM860L' + +FPS850L 'FPS850L' + +TQM860 'TQM860' + +SPD823TS 'SPD823TS' + +IVMS8 'IVMS8' + +IVML24 'IVML24' + +SM850 'SM850' + +MBX 'MBX' + +WINCEPT 'WinCept' + +# Machine Type (default is 'PowerMac/PReP/MTX/CHRP') +CONFIG_6xx_GENERIC 'CHRP/PowerMac/PReP' + +GEMINI 'Synergy-Gemini' + +APUS 'Amiga-Apus' + +# Other configuration symbols +PPC601_SYNC_FIX 'Workarounds for PPC601 bugs' text +Some versions of the PPC601 (the first PowerPC chip) have bugs which +mean that extra synchronization instructions are required near certain +instructions, typically those that make major changes to the CPU state. +These extra instructions reduce performance slightly. If you say N +here, these extra instructions will not be included, resulting in a +kernel which will run faster but may not run at all on some systems +with the PPC601 chip. + +If in doubt, say Y here. +. +EST8260 'Support for EST8260' text +EST8260: Wind River System, Inc. EST SBC8260 + +TQM8260: + MPC8260 based module, little larger than credit card, + up to 128 MB global + 64 MB local RAM, 32 MB Flash, + 32 kB EEPROM, 256 kB L@ Cache, 10baseT + 100baseT Ethernet, + 2 x serial ports, ... + Manufacturer: TQ Components, www.tq-group.de + Date of Release: June 2001 + End of Life: not yet :-) + URL: http://www.denx.de/PDF/TQM82xx_SPEC_Rev005.pdf + +PM826: + Modular system with MPC8260 CPU + Manufacturer: MicroSys GmbH, http://www.microsys.de/ + Date of Release: mid 2001 + End of life: - + URL: http://www.microsys.de/html/pm826.html + +CU824: + VMEBus Board with PCI extension with MPC8240 CPU + Manufacturer: MicroSys GmbH, http://www.microsys.de/ + Date of Release: early 2001 (?) + End of life: - + URL: http://www.microsys.de/html/cu824.html +. +ALTIVEC 'AltiVec support' text +This option enables kernel support for the Altivec extensions to the +PowerPC processor. The kernel currently supports saving and restoring +altivec registers, and turning on the 'altivec enable' bit so user +processes can execute altivec instructions. + +This option is only usefully if you have a processor that supports +altivec (G4, otherwise known as 74xx series), but does not have +any affect on a non-altivec cpu (it does, however add code to the +kernel). + +If in doubt, say Y here. +. +TAU 'Thermal Management Support' text +G3 and G4 processors have an on-chip temperature sensor called the +'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die +temperature within 2-4 degrees celcius. This option shows the current +on-die temperature in /proc/cpuinfo if the cpu supports it. + +Unfortunately, on some chip revisions, this sensor is very inaccurate +and in some cases, does not work at all, so don't assume the cpu +temp is actually what /proc/cpuinfo says it is. +. +TAU_INT 'Interrupt driven TAU driver' text +The TAU supports an interrupt driven mode which causes an interrupt +whenever the temperature goes out of range. This is the fastest way +to get notified the temp has exceeded a range. With this option off, +a timer is used to re-check the temperature periodically. + +However, on some cpus it appears that the TAU interrupt hardware +is buggy and can cause a situation which would lead unexplained hard +lockups. + +Unless you are extending the TAU driver, or enjoy kernel/hardware +debugging, leave this option off. +. +TAU_AVERAGE 'Average high and low temp' text +The TAU hardware can compare the temperature to an upper and lower bound. +The default behavior is to show both the upper and lower bound in +/proc/cpuinfo. If the range is large, the temperature is either changing +a lot, or the TAU hardware is broken (likely on some G4's). If the range +is small (around 4 degrees), the temperature is relatively stable. +. +PCI_QSPAN 'QSpan PCI' text +Find out whether you have a PCI motherboard. PCI is the name of a +bus system, i.e. the way the CPU talks to the other stuff inside +your box. Other bus systems are ISA, EISA, Microchannel (MCA) or +VESA. If you have PCI, say Y, otherwise N. + +The PCI-HOWTO, available from +http://www.linuxdoc.org/docs.html#howto , contains valuable +information about which PCI hardware does work under Linux and which +doesn't. +. +PCI_PERMEDIA 'PCI for Permedia2' + +FB_COMPAT_XPMAC 'Backward compatibility mode for Xpmac' text +If you use the Xpmac X server (common with mklinux), you'll need to +say Y here to use X. You should consider changing to XFree86 which +includes a server that supports the frame buffer device directly +(XF68_FBDev). +. +MAC_FLOPPY 'Support for PowerMac floppy' text +If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple) +floppy controller, say Y here. Most commonly found in PowerMacs. +. +MAC_SERIAL 'Support for PowerMac serial ports' text +If you have Macintosh style serial ports (8 pin mini-DIN), say Y +here. If you also have regular serial ports and enable the driver +for them, you can't currently use the serial console feature. +. +PPC_RTC 'Enhanced Real Time Clock Support (/dev/rtc)' text +If you say Y here and create a character special file /dev/rtc with +major number 10 and minor number 135 using mknod ("man mknod"), you +will get access to the real time clock (or hardware clock) built +into your computer. + +If unsure, say Y here. +. +PROC_DEVICETREE 'Support for Open Firmware device tree in /proc' text +This option adds a device-tree directory under /proc which contains +an image of the device tree that the kernel copies from Open +Firmware. If unsure, say Y here. +. +BOOTX_TEXT 'Support for early boot text console' + +#CMDLINE_BOOL 'PReP bootloader kernel arguments' +AMIGA_BUILTIN_SERIAL 'Amiga builtin serial support' text +If you want to use your Amiga's built-in serial port in Linux, +answer Y. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +CONFIG_8xx_COPYBACK '8xx Cache (Copy-Back or Writethrough)' + +CONFIG_8xx_CPU6 'MPC860 (Pre Rev. C) CPU6 Silicon Errata' + +UCODE_PATCH 'I2C/SPI Microcode Patch' + +BLK_DEV_MPC8xx_IDE 'MPC8xx direct IDE support on PCMCIA port' text +This option provides support for IDE on Motorola MPC8xx Systems. +Please see 'Type of MPC8xx IDE interface' for details. + +If unsure, say N. +. +IDE_8xx_PCCARD '8xx_PCCARD' text +Select how the IDE devices are connected to the MPC8xx system: + +8xx_PCCARD uses the 8xx internal PCMCIA interface in combination + with a PC Card (e.g. ARGOSY portable Hard Disk Adapter), + ATA PC Card HDDs or ATA PC Flash Cards (example: TQM8xxL + systems) + +8xx_DIRECT is used for directly connected IDE devices using the 8xx + internal PCMCIA interface (example: IVMS8 systems) + +EXT_DIRECT is used for IDE devices directly connected to the 8xx + bus using some glue logic, but _not_ the 8xx internal + PCMCIA interface (example: IDIF860 systems) +. +IDE_8xx_DIRECT '8xx_DIRECT' + +IDE_EXT_DIRECT 'EXT_DIRECT' + +GVPIOEXT 'GVP IO-Extender support' text +If you want to use a GVP IO-Extender serial card in Linux, say Y. +Otherwise, say N. +. +GVPIOEXT_LP 'GVP IO-Extender parallel printer support' + +GVPIOEXT_PLIP 'GVP IO-Extender PLIP support' + +MULTIFACE_III_TTY 'Multiface Card III serial support' text +If you want to use a Multiface III card's serial port in Linux, +answer Y. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +A2232 'Commodore A2232 serial support' + +PROC_HARDWARE '/proc/hardware support' + +DMASOUND 'Amiga/Atari/PowerMac DMA sound support' + +DMASOUND_ATARI 'Atari DMA sound support' text +If you want to use the internal audio of your Atari in Linux, answer +Y to this question. This will provide a Sun-like /dev/audio, +compatible with the Linux/i386 sound system. Otherwise, say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +DMASOUND_AWACS 'PowerMac DMA sound support' text +If you want to use the internal audio of your PowerMac in Linux, +answer Y to this question. This will provide a Sun-like /dev/audio, +compatible with the Linux/i386 sound system. Otherwise, say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +DMASOUND_PAULA 'Amiga DMA sound support' text +If you want to use the internal audio of your Amiga in Linux, answer +Y to this question. This will provide a Sun-like /dev/audio, +compatible with the Linux/i386 sound system. Otherwise, say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +DMASOUND_Q40 'Q40 sound support' text +If you want to use the internal audio of your Q40 in Linux, answer +Y to this question. This will provide a Sun-like /dev/audio, +compatible with the Linux/i386 sound system. Otherwise, say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +KGDB 'Include kgdb kernel debugger' + +XMON 'Include xmon kernel debugger' + +# +# MPC8xx Communication options +SCC_ENET 'CPM SCC Ethernet' + +SCC1_ENET 'Ethernet on SCC1' + +SCC2_ENET 'Ethernet on SCC2' + +SCC3_ENET 'Ethernet on SCC3' + +ENET_BIG_BUFFERS 'Use Big CPM Ethernet Buffers' + +FEC_ENET '860T FEC Ethernet' + +USE_MDIO 'Use MDIO for PHY configuration' + +SMC2_UART 'Use SMC2 for UART' + +ALTSMC2 'Use the alternate SMC2 I/O' + +USE_SCC_IO 'Enable SCC2 and SCC3 for UART' + +CONS_SMC2 'Use SMC2 for Console' + +# +# MPC8260 Communication options +FCC1_ENET 'Ethernet on FCC1' + +FCC2_ENET 'Ethernet on FCC2' + +FCC3_ENET 'Ethernet on FCC3' + +# Macintosh driver options +MACINTOSH_DRIVERS 'Macintosh driver support' + +ADB 'Apple Desktop Bus (ADB) support' text +Apple Desktop Bus (ADB) support is for support of devices which +are connected to an ADB port. ADB devices tend to have 4 pins. +If you have an Apple Macintosh prior to the iMac, or a +"Blue and White G3", you probably want to say Y here. Otherwise +say N. +. +ADB_CUDA 'Include CUDA ADB driver' text +This provides support for CUDA based Power Macintosh systems. This +includes most OldWorld PowerMacs, the first generation iMacs, the +Blue&White G3 and the Yikes G4 (PCI Graphics). All later models +should use CONFIG_ADB_PMU instead. + +If unsure say Y. +. +ADB_PMU 'Support for PMU-based PowerMacs' text +This provides support for PMU based Power Macintosh systems. This +includes all PowerBooks and all AGP-based machines. + +If unsure say Y. +. +ADB_MACIO 'Include MacIO ADB driver' + +ADB_IOP 'Include IOP (IIfx/Quadra 9x0) ADB driver' + +ADB_MACII 'Mac II style Apple Desktop Bus support' + +ADB_MACIISI 'Mac IIsi style Apple Desktop Bus support' + +ADB_PMU68K 'Apple 68K PowerBook Power Management and Desktop Bus support' + +#MAC_SCC 'Macintosh serial support' +INPUT_ADBHID 'Use input layer for ADB devices' text +Say Y here if you want to have ADB (Apple Desktop Bus) HID devices +such as keyboards, mice, joysticks, or graphic tablets handled by the +input layer. If you say Y here, make sure to say Y to the +corresponding drivers "Keyboard support" (CONFIG_INPUT_KEYBDEV), +"Mouse Support" (CONFIG_INPUT_MOUSEDEV) and "Event interface support" +(CONFIG_INPUT_EVDEV) as well. + +If you say N here, you still have the option of using the old ADB +keyboard and mouse drivers. + +If unsure, say Y. +. +MAC_ADBKEYCODES 'ADB raw keycode support' text +This provides support for sending raw ADB keycodes to console +devices. This is the default up to 2.4.0, but in future this may be +phased out in favor of generic Linux keycodes. If you say Y here, you +can dynamically switch via the + /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes +sysctl and with the "keyboard_sends_linux_keycodes=" kernel argument. + +If unsure, say Y here. +. +MAC_EMUMOUSEBTN 'Mouse button 2+3 emulation support' text +This provides generic support for emulating the 2nd and 3rd mouse +button with keypresses. If you say Y here, the emulation is still +disabled by default. The emulation is controlled by these sysctl entries: + /proc/sys/dev/mac_hid/mouse_button_emulation + /proc/sys/dev/mac_hid/mouse_button2_keycode + /proc/sys/dev/mac_hid/mouse_button3_keycode +. +ADB_KEYBOARD 'Support for ADB keyboard (old driver)' + +ADBMOUSE 'Apple Desktop Bus mouse support' text +Say Y here if you have this type of bus mouse (4 pin connector) as +is common on Macintoshes. You may want to read the Busmouse-HOWTO, +available from http://www.linuxdoc.org/docs.html#howto . + +If you want to compile this as a module ( = code which can be +inserted in and removed from the running kernel whenever you want), +say M here and read Documentation/modules.txt. The module will be +called adbmouse.o. +. +PMAC_PBOOK 'Power management support for PowerBooks' text +This provides support for putting a PowerBook to sleep; it also +enables media bay support. Power management works on the +PB2400/3400/3500, Wallstreet, Lombard, and Bronze PowerBook G3. You +must get the power management daemon, pmud, to make it work and you +must have the /dev/pmu device (see the pmud README). + +Get pmud from ftp://linuxcare.com.au/pub/ppclinux/pmud/ + +If you have a PowerBook, you should say Y. + +You may also want to compile the dma sound driver as a module and +have it autoloaded. The act of removing the module shuts down the +sound hardware for more power savings. +. +PMAC_BACKLIGHT 'Backlight control for LCD screens' + +# +# Motorola 68xxx port +M68K 'Motorola 68K processors' + +AMIGA 'Amiga support' text +This option enables support for the Amiga series of computers. If +you plan to use this kernel on an Amiga, say Y here and browse the +material available in Documentation/m68k; otherwise say N. +. +ATARI 'Atari support' text +This option enables support for the 68000-based Atari series of +computers (including the TT, Falcon and Medusa). If you plan to use +this kernel on an Atari, say Y here and browse the material +available in Documentation/m68k; otherwise say N. +. +HADES 'Hades support' text +This option enables support for the Hades Atari clone. If you plan +to use this kernel on a Hades, say Y here; otherwise say N. +. +MAC 'Macintosh support' text +This option enables support for the Apple Macintosh series of +computers (yes, there is experimental support now, at least for part +of the series). + +Say N unless you're willing to code the remaining necessary support. +;) +. +APOLLO 'Apollo support' text +Say Y here if you want to run Linux on an MC680x0-based Apollo +Domain workstation such as the DN3500. +. +VME 'VME (Motorola and BVM) support' text +Say Y here if you want to build a kernel for a 680x0 based VME +board. Boards currently supported include Motorola boards MVME162, +MVME166, MVME167, MVME172, and MVME177. BVME4000 and BVME6000 +boards from BVM Ltd are also supported. +. +MVME147 'MVME147 support' + +MVME16x 'MVME162, 166 and 167 support' text +Say Y to include support for Motorola VME boards. This will build a +kernel which can run on MVME162, MVME166, MVME167, MVME172, and +MVME177 boards. If you select this option you will have to select +the appropriate drivers for SCSI, Ethernet and serial ports later +on. +. +BVME6000 'BVME4000 and BVME6000 support' text +Say Y to include support for VME boards from BVM Ltd. This will +build a kernel which can run on BVME4000 and BVME6000 boards. If +you select this option you will have to select the appropriate +drivers for SCSI, Ethernet and serial ports later on. +. +HP300 'HP9000/300 support' text +This option enables support for the HP9000/300 series of +workstations. Support for these machines is still very experimental. +If you plan to try to use the kernel on such a machine say Y here. +Everybody else says N. +. +DIO 'DIO bus support' text +Say Y here to enable support for the "DIO" expansion bus used in +HP300 machines. If you are using such a system you almost certainly +want this. +. +SUN3 'Sun 3 support' + +SUN3X 'Sun 3X support' text +This option enables support for the Sun 3x series of workstations. +Be warned that this support is very experimental. You will also want +to say Y to 68020 support and N to the other processors below. + +If you don't want to compile a kernel for a Sun 3x, say N. +. +Q40 'Q40/Q60 support' + +M68020 '68020 support' text +If you anticipate running this kernel on a computer with a MC68020 +processor, say Y. Otherwise, say N. Note that the 68020 requires a +68851 MMU (Memory Management Unit) to run Linux/m68k, except on the +Sun 3, which provides its own version. +. +M68030 '68030 support' text +If you anticipate running this kernel on a computer with a MC68030 +processor, say Y. Otherwise, say N. Note that a MC68EC030 will not +work, as it does not include an MMU (Memory Management Unit). +. +M68040 '68040 support' text +If you anticipate running this kernel on a computer with a MC68LC040 +or MC68040 processor, say Y. Otherwise, say N. Note that an +MC68EC040 will not work, as it does not include an MMU (Memory +Management Unit). +. +M68060 '68060 support' text +If you anticipate running this kernel on a computer with a MC68060 +processor, say Y. Otherwise, say N. +. +M68KFPU_EMU 'Math emulation support' text +At some point in the future, this will cause floating-point math +instructions to be emulated by the kernel on machines that lack a +floating-point math coprocessor. Thrill-seekers and chronically +sleep-deprived psychotic hacker types can say Y now, everyone else +should probably wait a while. +. +M68KFPU_EMU_EXTRAPREC 'Math emulation extra precision' text +The fpu uses normally a few bit more during calculations for +correct rounding, the emulator can (often) do the same but this +extra calculation can cost quite some time, so you can disable +it here. The emulator will then "only" calculate with a 64 bit +mantissa and round slightly incorrect, what is more then enough +for normal usage. +. +M68KFPU_EMU_ONLY 'Math emulation only kernel' text +This option prevents any floating-point instructions from being +compiled into the kernel, thereby the kernel doesn't save any +floating point context anymore during task switches, so this +kernel will only be usable on machines without a floating-point +math coprocessor. This makes the kernel a bit faster as no tests +needs to be executed whether a floating-point instruction in the +kernel should be executed or not. +. +ADVANCED 'Advanced configuration options' text +This gives you access to some advanced options for the CPU. The +defaults should be fine for most users, but these options may make +it possible for you to improve performance somewhat if you know what +you are doing. + +Note that the answer to this question won't directly affect the +kernel: saying N will just cause this configure script to skip all +the questions about these options. + +Most users should say N to this question. +. +RMW_INSNS 'Use read-modify-write instructions' text +This allows to use certain instructions that work with indivisible +read-modify-write bus cycles. While this is faster than the +workaround of disabling interrupts, it can conflict with DMA +( = direct memory access) on many Amiga systems, and it is also said +to destabilize other machines. It is very likely that this will +cause serious problems on any Amiga or Atari Medusa if set. The only +configuration where it should work are 68030-based Ataris, where it +apparently improves performance. But you've been warned! Unless you +really know what you are doing, say N. Try Y only if you're quite +adventurous. +. +SINGLE_MEMORY_CHUNK 'Use one physical chunk of memory only' + +CONFIG_060_WRITETHROUGH 'Use write-through caching for 68060 supervisor accesses' +text +The 68060 generally uses copyback caching of recently accessed data. +Copyback caching means that memory writes will be held in an on-chip +cache and only written back to memory some time later. Saying Y +here will force supervisor (kernel) accesses to use writethrough +caching. Writethrough caching means that data is written to memory +straight away, so that cache and memory data always agree. +Writethrough caching is less efficient, but is needed for some +drivers on 68060 based systems where the 68060 bus snooping signal +is hardwired on. The 53c710 SCSI driver is known to suffer from +this problem. +. +ZORRO 'Amiga Zorro (AutoConfig) bus support' text +This enables support for the Zorro bus in the Amiga. If you have +expansion cards in your Amiga that conform to the Amiga +AutoConfig(tm) specification, say Y, otherwise N. Note that even +expansion cards that do not fit in the Zorro slots but fit in e.g. +the CPU slot may fall in this category, so you have to say Y to let +Linux use these. +. +ZORRO_NAMES 'Zorro device name database' text +By default, the kernel contains a database of all known Zorro device +names to make the information in /proc/iomem comprehensible to the +user. This database increases the size of the kernel image by about +15KB, but it gets freed after the system boots up, so it doesn't +take up kernel memory. Anyway, if you are building an installation +floppy or kernel for an embedded system where kernel image size +really matters, you can disable this feature and you'll get device +ID numbers instead of names. + +When in doubt, say Y. +. +AMIGA_PCMCIA 'Amiga 1200/600 PCMCIA support' text +Include support in the kernel for pcmcia on Amiga 1200 and Amiga +600. If you intend to use pcmcia cards say Y; otherwise say N. +. +STRAM_SWAP 'Support for ST-RAM as swap space' text +This enables support for using (parts of) ST-RAM as swap space, +instead of as normal system memory. This can first enhance system +performance if you have lots of alternate RAM (compared to the size +of ST-RAM), because executable code always will reside in faster +memory. ST-RAM will remain as ultra-fast swap space. On the other +hand, it allows much improved dynamic allocations of ST-RAM buffers +for device driver modules (e.g. floppy, ACSI, SLM printer, DMA +sound). The probability that such allocations at module load time +fail is drastically reduced. +. +STRAM_PROC 'ST-RAM statistics in /proc' + +A3000_SCSI 'A3000 WD33C93A support' text +If you have an Amiga 3000 and have SCSI devices connected to the +built-in SCSI controller, say Y. Otherwise, say N. This driver is +also available as a module ( = code which can be inserted in and +removed from the running kernel whenever you want). The module is +called wd33c93.o. If you want to compile it as a module, say M here +and read Documentation/modules.txt. +. +A4000T_SCSI 'A4000T SCSI support' + +A2091_SCSI 'A2091 WD33C93A support' text +If you have a Commodore A2091 SCSI controller, say Y. Otherwise, +say N. This driver is also available as a module ( = code which can +be inserted in and removed from the running kernel whenever you +want). The module is called wd33c93.o. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +GVP11_SCSI 'GVP Series II WD33C93A support' text +If you have a Great Valley Products Series II SCSI controller, +answer Y. Also say Y if you have a later model of GVP SCSI +controller (such as the GVP A4008 or a Combo board). Otherwise, +answer N. This driver does NOT work for the T-Rex series of +accelerators from TekMagic and GVP-M. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module will be called gvp11.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. +. +CYBERSTORM_SCSI 'CyberStorm SCSI support' text +If you have an Amiga with an original (MkI) Phase5 Cyberstorm +accelerator board and the optional Cyberstorm SCSI controller, +answer Y. Otherwise, say N. +. +CYBERSTORMII_SCSI 'CyberStorm II SCSI support' text +If you have an Amiga with a Phase5 Cyberstorm MkII accelerator board +and the optional Cyberstorm SCSI controller, say Y. Otherwise, +answer N. +. +#CYBERSTORMIII_SCSI 'Cyberstorm III SCSI support' +BLZ2060_SCSI 'Blizzard 2060 SCSI support' text +If you have an Amiga with a Phase5 Blizzard 2060 accelerator board +and want to use the onboard SCSI controller, say Y. Otherwise, +answer N. +. +BLZ1230_SCSI 'Blizzard 1230IV/1260 SCSI support' text +If you have an Amiga 1200 with a Phase5 Blizzard 1230IV or Blizzard +1260 accelerator, and the optional SCSI module, say Y. Otherwise, +say N. +. +FASTLANE_SCSI 'Fastlane SCSI support' text +If you have the Phase5 Fastlane Z3 SCSI controller, or plan to use +one in the near future, say Y to this question. Otherwise, say N. +. +A4091_SCSI 'A4091 SCSI support' + +WARPENGINE_SCSI 'WarpEngine SCSI support' + +BLZ603EPLUS_SCSI 'Blizzard PowerUP 603e+ SCSI support' text +If you have an Amiga 1200 with a Phase5 Blizzard PowerUP 603e+ +accelerator, say Y. Otherwise, say N. +. +OKTAGON_SCSI 'BSC Oktagon SCSI support' + +#GVP_TURBO_SCSI 'GVP Turbo 040/060 SCSI support' +ATARI_SCSI 'Atari native SCSI support' text +If you have an Atari with built-in NCR5380 SCSI controller (TT, +Falcon, ...) say Y to get it supported. Of course also, if you have +a compatible SCSI controller (e.g. for Medusa). This driver is also +available as a module ( = code which can be inserted in and removed +from the running kernel whenever you want). The module is called +atari_scsi.o. If you want to compile it as a module, say M here and +read Documentation/modules.txt. This driver supports both styles of +NCR integration into the system: the TT style (separate DMA), and +the Falcon style (via ST-DMA, replacing ACSI). It does NOT support +other schemes, like in the Hades (without DMA). +. +ATARI_SCSI_TOSHIBA_DELAY 'Long delays for Toshiba CD-ROMs' text +This option increases the delay after a SCSI arbitration to +accommodate some flaky Toshiba CD-ROM drives. Say Y if you intend to +use a Toshiba CD-ROM drive; otherwise, the option is not needed and +would impact performance a bit, so say N. +. +ATARI_SCSI_RESET_BOOT 'Reset SCSI-devices at boottime' + +TT_DMA_EMUL 'Hades SCSI DMA emulator' text +This option enables code which emulates the TT SCSI DMA chip on the +Hades. This increases the SCSI transfer rates at least ten times +compared to PIO transfers. +. +MAC_SCSI 'Macintosh NCR5380 SCSI support' + +SCSI_MAC_ESP 'Macintosh NCR53c9[46] SCSI support' + +#SCSI_DEBUG 'SCSI debugging host adapter' +MVME147_SCSI 'WD33C93 SCSI driver for MVME147' + +MVME16x_SCSI 'NCR53C710 SCSI driver for MVME16x' text +The Motorola MVME162, 166, 167, 172 and 177 boards use the NCR53C710 +SCSI controller chip. Almost everyone using one of these boards +will want to say Y to this question. +. +BVME6000_SCSI 'NCR53C710 SCSI driver for BVME6000' text +The BVME4000 and BVME6000 boards from BVM Ltd use the NCR53C710 +SCSI controller chip. Almost everyone using one of these boards +will want to say Y to this question. +. +SUN3X_ESP 'Sun3x ESP SCSI driver' + +#SUN3_SCSI 'Sun3 NCR5380 SCSI' +APNE 'PCMCIA NE2000 and compatibles support' text +If you have a pcmcia ne2000 compatible adapter, say Y. Otherwise, +say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). The module is called apne.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +APOLLO_ELPLUS 'Apollo 3c505 "EtherLink Plus" support' text +Say Y or M here if your Apollo has a 3Com 3c505 ISA Ethernet card. +If you don't have one made for Apollos, you can use one from a PC, +except that your Apollo won't be able to boot from it (because the +code in the ROM will be for a PC). +. +MAC8390 'Macintosh NS8390 based Ethernet support' + +MACSONIC 'Macintosh SONIC based Ethernet support (onboard, NuBus, LC, CS)' + +MAC89x0 'Macintosh CS89x0 based Ethernet support' + +MACMACE 'Macintosh onboard AMD 79C940 MACE based Ethernet support' + +MVME147_NET 'MVME147 (Lance) Ethernet support' + +MVME16x_NET 'MVME16x Ethernet support' text +This is the driver for the Ethernet interface on the Motorola +MVME162, 166, 167, 172 and 177 boards. Say Y here to include the +driver for this chip in your kernel. If you want to compile it as +a module, say M here and read Documentation/modules.txt. +. +BVME6000_NET 'BVME6000 Ethernet support' text +This is the driver for the Ethernet interface on BVME4000 and +BVME6000 VME boards. Say Y here to include the driver for this chip +in your kernel. If you want to compile it as a module, say M here +and read Documentation/modules.txt. +. +ATARILANCE 'Atari Lance support' text +Say Y to include support for several Atari Ethernet adapters based +on the AMD Lance chipset: RieblCard (with or without battery), or +PAMCard VME (also the version by Rhotron, with different addresses). +. +ATARI_BIONET 'BioNet-100 support' text +Say Y to include support for BioData's BioNet-100 Ethernet adapter +for the ACSI port. The driver works (has to work...) with a polled +I/O scheme, so it's rather slow :-( +. +ATARI_PAMSNET 'PAMsNet support' text +Say Y to include support for the PAMsNet Ethernet adapter for the +ACSI port ("ACSI node"). The driver works (has to work...) with a +polled I/O scheme, so it's rather slow :-( +. +HPLANCE 'HP on-board LANCE support' text +If you want to use the builtin "LANCE" Ethernet controller on an +HP300 machine, say Y here. +. +AMIGAMOUSE 'Amiga mouse support' text +If you want to be able to use an Amiga mouse in Linux, say Y. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called amigamouse.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +ATARIMOUSE 'Atari mouse support' text +If you want to be able to use an Atari mouse in Linux, say Y. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module is called atarimouse.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +ATARI_MFPSER 'Atari MFP serial support' text +If you like to use the MFP serial ports ("Modem1", "Serial1") under +Linux, say Y. The driver equally supports all kinds of MFP serial +ports and automatically detects whether Serial1 is available. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. + +Note for Falcon users: You also have an MFP port, it's just not +wired to the outside... But you could use the port under Linux. +. +ATARI_SCC 'Atari SCC serial support' text +If you have serial ports based on a Zilog SCC chip (Modem2, Serial2, +LAN) and like to use them under Linux, say Y. All built-in SCC's are +supported (TT, MegaSTE, Falcon), and also the ST-ESCC. If you have +two connectors for channel A (Serial2 and LAN), they are visible as +two separate devices. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +ATARI_SCC_DMA 'Atari SCC serial DMA support' text +This enables DMA support for receiving data on channel A of the SCC. +If you have a TT you may say Y here and read +drivers/char/atari_SCC.README. All other users should say N here, +because only the TT has SCC-DMA, even if your machine keeps claiming +so at boot time. +. +ATARI_MIDI 'Atari MIDI serial support' text +If you want to use your Atari's MIDI port in Linux, say Y. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you +want). If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +ATARI_DSP56K 'Atari DSP56k Digital Signal Processor support' text +If you want to be able to use the DSP56001 in Falcons, say Y. This +driver is still experimental, and if you don't know what it is, or +if you don't have this processor, just say N. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +If you want to compile it as a module, say M here and read +Documentation/modules.txt. +. +WHIPPET_SERIAL 'Hisoft Whippet PCMCIA serial support' + +HPDCA 'HP DCA serial support' text +If you want to use the internal "DCA" serial ports on an HP300 +machine, say Y here. +. +SUN3X_ZS 'Sun3x builtin serial support' + +#SUN_KEYBOARD 'Sun keyboard support' +#SUN_MOUSE 'Sun mouse support' +SERIAL167 'CD2401 support for MVME166/7 serial ports' text +This is the driver for the serial ports on the Motorola MVME166, +167, and 172 boards. Everyone using one of these boards should say +Y here. +. +MVME147_SCC 'SCC support for MVME147 serial ports' + +MVME162_SCC 'SCC support for MVME162 serial ports' text +This is the driver for the serial ports on the Motorola MVME162 and +172 boards. Everyone using one of these boards should say Y here. +. +BVME6000_SCC 'SCC support for BVME6000 serial ports' text +This is the driver for the serial ports on the BVME4000 and BVME6000 +boards from BVM Ltd. Everyone using one of these boards should say +Y here. +. +USERIAL 'Support for user serial device modules' + +# +# Global things across all Sun machines. +SPARC32 '32-bit Sun Sparc' + +SPARC64 '64-bit Sun Sparc' + +SPARC32_COMPAT 'Kernel support for Linux/Sparc 32bit binary compatibility' +text +This allows you to run 32-bit binaries on your Ultra. +Everybody wants this; say Y. +. +BINFMT_AOUT32 'Kernel support for 32-bit (ie. SunOS) a.out binaries' +text +This allows you to run 32-bit a.out format binaries on your Ultra. +If you want to run SunOS binaries (see SunOS binary emulation below) +or other a.out binaries, say Y. If unsure, say N. +. +SOLARIS_EMUL 'Solaris binary emulation' text +This is experimental code which will enable you to run (many) +Solaris binaries on your SPARC Linux machine. + +This code is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called solaris.o. If you want to compile it as a +module, say M here and read Documentation/modules.txt. +. +ENVCTRL 'SUN SME environment monitoring' + +DISPLAY7SEG '7-Segment Display support' text +This is the driver for the 7-segment display and LED present on +Sun Microsystems CompactPCI models CP1400 and CP1500. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called display7seg.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. + +If you do not have a CompactPCI model CP1400 or CP1500, or +another UltraSPARC-IIi-cEngine boardset with a 7-segment display, +you should say N to this option. +. +WATCHDOG_CP1XXX 'CP1XXX Hardware Watchdog support' text +This is the driver for the hardware watchdog timers present on +Sun Microsystems CompactPCI models CP1400 and CP1500. + +This driver is also available as a module ( = code which can be +inserted in and removed from the running kernel whenever you want). +The module will be called cpwatchdog.o. If you want to compile it +as a module, say M here and read Documentation/modules.txt. + +If you do not have a CompactPCI model CP1400 or CP1500, or +another UltraSPARC-IIi-cEngine boardset with hardware watchdog, +you should say N to this option. +. +WATCHDOG_RIO 'RIO Hardware Watchdog support' + +SUNLANCE 'Sun Lance support' text +This driver supports the "le" interface present on all 32-bit Sparc +systems, on some older Ultra systems and as an Sbus option. + +This support is also available as a module called sunlance.o ( = +code which can be inserted in and removed from the running kernel +whenever you want). If you want to compile it as a module, say M +here and read Documentation/modules.txt. +. +#EC_FLUSH_TRAP 'ECache flush trap support at ta 0x72' +# +# ARM port +ARM 'ARM processors' + +# ARM system type (default is 'RiscPC') +ARCH_ANAKIN 'Anakin' + +ARCH_A5K 'A5000' + +ARCH_ARC 'Archimedes' + +ARCH_CLPS7500 'Cirrus-CL-PS7500FE' + +ARCH_CLPS711X 'CLPS711x/EP721x-based' + +ARCH_CO285 'Co-EBSA285' + +ARCH_EBSA110 'EBSA-110' + +ARCH_CAMELOT 'Epxa10db' + +ARCH_FOOTBRIDGE 'FootBridge-based' + +ARCH_INTEGRATOR 'Integrator' + +ARCH_L7200 'LinkUp-L7200' text +Say Y here if you intend to run this kernel on a LinkUp Systems +L7200 Software Development Board which uses an ARM720T processor. +Information on this board can be obtained at: + +http://www.linkupsys.com/ + +If you have any questions or comments about the Linux kernel port +to this board, send e-mail to sjhill@cotw.com +. +ARCH_RPC 'RiscPC' + +ARCH_SA1100 'SA1100-based' + +ARCH_SHARK 'Shark' + +# SA1100 implementation(default is 'Brutus') +SA1100_ASSABET 'Assabet' text +Say Y here if you are using the Intel(R) StrongARM(R) SA-1110 +Microprocessor Development Board (also known as the Assabet). +. +ASSABET_NEPONSET 'Neponset' text +Say Y here if you are using the Intel(R) StrongARM(R) SA-1110 +Microprocessor Development Board (Assabet) with the SA-1111 +Development Board (Nepon). +. +SA1100_ADSBITSY 'ADS Bitsy' + +SA1100_BRUTUS 'Brutus' text +Say Y here if you are using the Intel(R) StrongARM(R) SA-1100 +Microprocessor Development Board (also known as the Brutus). +. +SA1100_CERF 'CerfBoard' + +SA1100_H3600 'Compaq iPAQ H3600' + +#SA1100_EMPEG 'Empeg' +SA1100_EXTENEX1 'Extenex HandHeld Theater (Squashtail)' + +SA1100_EXTENEX1_16MB 'Support 16 MB of DRAM (not just 8)' + +SA1100_FLEXANET 'FlexaNet' + +SA1100_FREEBIRD 'FreeBird-v1.1' + +SA1100_GRAPHICSCLIENT 'GraphicsClient Plus' text +Say Y here if you are using an Applied Data Systems Intel(R) +StrongARM(R) SA-1100 based Graphics Client SBC. See +http://www.flatpanels.com/ for information on this system. +. +SA1100_GRAPHICSMASTER 'GraphicsMaster' + +SA1100_JORNADA720 'HP Jornada 720' + +SA1100_HUW_WEBPANEL 'HuW WebPanel' + +SA1100_ITSY 'Itsy' + +SA1100_LART 'LART' text +Say Y here if you are using the Linux Advanced Radio Terminal +(also known as the LART). See http://www.lart.tudelft.nl/ for +information on the LART. +. +SA1100_NANOENGINE 'nanoEngine' + +SA1100_OMNIMETER 'OmniMeter' + +SA1100_PANGOLIN 'Pangolin' + +SA1100_PLEB 'PLEB' + +SA1100_SHERMAN 'Sherman' + +SA1100_SIMPAD 'Simpad' + +SA1100_PFS168 'Tulsa' + +SA1100_VICTOR 'Victor' text +Say Y here if you are using a Visu Aide Intel(R) StrongARM(R) +SA-1100 based Victor Digital Talking Book Reader. See +http://www.visuaide.com/pagevictor.en.html for information on +this system. +. +SA1100_XP860_REAL 'XP860' + +SA1100_YOPY 'Yopy' + +# Cerf choice symbols, round 1 +SA1100_CERF_8MB '8MB' + +SA1100_CERF_16MB '16MB' + +SA1100_CERF_32MB '32MB' + +SA1100_CERF_64MB '64MB' + +# Cerf choice symbols, round 2 +SA1100_CERF_FLASH_8MB '8MB' + +SA1100_CERF_FLASH_16MB '16MB' + +SA1100_CERF_FLASH_32MB '32MB' + +# CLPS711X type symbols +ARCH_CDB89712 'CDB89712' + +ARCH_CLEP7312 'CLEP7312' + +ARCH_EDB7211 'EDB7211' + +ARCH_P720T 'P720T' + +# Other ARM port symbols +EP72XX_ROM_BOOT 'EP72xx ROM boot' + +SA1100_CERF_CPLD 'Cerf w/CPLD support (CerfPDA)' + +ARCH_FTVPCI 'FutureTV PCI card' + +SERIAL_21285 'DC21285 serial port support' text +If you have a machine based on a 21285 (Footbridge) StrongARM(R)/ +PCI bridge you can enable its onboard serial port by enabling this +option. The device has major ID 4, minor 64. +. +SERIAL_21285_OLD 'Use /dev/ttyS0 device' + +SERIAL_21285_CONSOLE 'Console on DC21285 serial port' text +If you have enabled the serial port on the 21285 footbridge you can +make it the console by answering Y to this option. +. +ARCH_EBSA285_ADDIN 'EBSA285 (addin mode)' + +ARCH_EBSA285_HOST 'EBSA285 (host mode)' text +Say Y here if you intend to run this kernel on the EBSA285 card +in host ("central function") mode. + +Saying N will reduce the size of the Footbridge kernel. +. +ARCH_CATS 'CATS' text +Say Y here if you intend to run this kernel on the CATS. + +Saying N will reduce the size of the Footbridge kernel. +. +ARCH_NETWINDER 'NetWinder' text +Say Y here if you intend to run this kernel on the Rebel.COM +NetWinder. Information about this machine can be found at: + +http://www.netwinder.org/ + +Saying N will reduce the size of the Footbridge kernel. +. +ARCH_PERSONAL_SERVER 'Compaq Personal Server' text +Say Y here if you intend to run this kernel on the Compaq +Personal Server. + +Saying N will reduce the size of the Footbridge kernel. + +The Compaq Personal Server is not available for purchase. +There are no product plans beyond the current research +prototypes at this time. Information is available at: + +http://crl.research.compaq.com/projects/personalserver + +If you have any questions or comments about the Compaq Personal +Server, send e-mail to skiff@crl.dec.com +. +PAGESIZE_16 '2MB physical memory' text +Say Y here if your Archimedes or A5000 system has only 2MB of +memory, otherwise say N. The resulting kernel will not run on a +machine with 4MB of memory. +. +CPU_ARM610 'Support ARM610 processor' + +CPU_ARM710 'Support ARM710 processor' + +#CPU_ARM720 'Support ARM720 processor' +CPU_ARM720T 'Support ARM720T processor' + +CPU_ARM920T 'Support ARM920T processor' + +CPU_ARM920_CPU_IDLE 'ARM920T CPU idle' + +CPU_ARM920_I_CACHE_ON 'ARM920T I-Cache on' + +CPU_ARM920_D_CACHE_ON 'ARM920T D-Cache on' + +CPU_ARM920_WRITETHROUGH 'Force write through caches on ARM920T' + +CPU_ARM926T 'Support ARM926T processor' + +CPU_ARM926_CPU_IDLE 'ARM926T CPU idle' + +CPU_ARM926_I_CACHE_ON 'ARM926T I-Cache on' + +CPU_ARM926_D_CACHE_ON 'ARM926T D-Cache on' + +CPU_ARM926_FORCE_WRITETHROUGH 'Force write through caches on ARM926T' + +CPU_ARM926_ROUND_ROBIN 'Round robin I and D cache replacement algorithm' + +CPU_ARM1020 'Support ARM1020 processor' + +CPU_ARM1020_CPU_IDLE 'ARM1020 CPU idle' + +CPU_ARM1020_I_CACHE_ON 'ARM10 I-Cache on' + +CPU_ARM1020_D_CACHE_ON 'ARM10 D-Cache on' + +CPU_ARM1020_FORCE_WRITETHROUGH 'Force write through caches on ARM10' + +CPU_ARM1020_ROUND_ROBIN 'Round robin I and D cache replacement algorithm' + +CPU_SA110 'Support StrongARM SA-110 processor' + +#CPU_SA1100 'Support StrongARM SA-1100 processor' +ALIGNMENT_TRAP 'Kernel-mode alignment trap handler' text +ARM processors can not fetch/store information which is not +naturally aligned on the bus, i.e., a 4 byte fetch must start at an +address divisible by 4. On 32-bit ARM processors, these non-aligned +fetch/store instructions will be emulated in software if you say +here, which has a severe performance impact. This is necessary for +correct operation of some network protocols. With an IP-only +configuration it is safe to say N, otherwise say Y. +. +#TEXT_SECTIONS 'Split text into discardable sections' +FPE_NWFPE 'Math emulation' text +Say Y to include the NWFPE floating point emulator in the kernel. +This is necessary to run most binaries. Linux does not currently +support floating point hardware so you need to say Y here even if +your machine has an FPA or floating point co-processor podule. + +It is also possible to say M to build the emulator as a module +(nwfpe.o) or indeed to leave it out altogether. However, unless you +know what you are doing this can easily render your machine +unbootable. Saying Y is the safe option. + +You may say N here if you are going to load the Acorn FPEmulator +. +FPE_FASTFPE 'FastFPE math emulation' text +Say Y here to include the FAST floating point emulator in the kernel. +This is an experimental much faster emulator which has only 32 bit +precision for the mantissa. It does not support any exceptions. This +makes it very simple, it is approximately 4-8 times faster than NWFPE. + +It should be sufficient for most programs. It is definitely not +suitable if you do scientific calculations that need double precision +for iteration formulas that sum up lots of very small numbers. If you +do not feel you need a faster FP emulation you should better choose +NWFPE. + +It is also possible to say M to build the emulator as a module +(fastfpe.o). But keep in mind that you should only load the FP emulator +early in the bootup. You should never change from NWFPE to FASTFPE or +vice versa in an active system! +. +#MIPS_FPU_EMULATOR 'Kernel floating-point instruction emulation' +ARTHUR 'RISC OS personality' text +Say Y here to include the kernel code necessary if you want to run +Acorn RISC OS/Arthur binaries under Linux. This code is still very +experimental; if this sounds frightening, say N and sleep in peace. +You can also say M here to compile this support as a module (which +will be called arthur.o). +. +ARM_THUMB 'Support Thumb instructions (experimental)' + +CPU_FREQ 'Support CPU clock change' + +#CMDLINE 'Initial kernel command string' +LEDS 'Timer and CPU usage LEDs' text +If you say Y here, the LEDs on your machine will be used +to provide useful information about your current system status. + +If you are compiling a kernel for a NetWinder or EBSA-285, you will +be able to select which LEDs are active using the options below. If +you are compiling a kernel for the EBSA-110 or the LART however, the +red LED will simply flash regularly to indicate that the system is +still functional. It is safe to say Y here if you have a CATS +system, but the driver will do nothing. +. +LEDS_TIMER 'Timer LED' text +If you say Y here, one of the system LEDs (the green one on the +NetWinder, the amber one on the EBSA285, or the red one on the LART) +will flash regularly to indicate that the system is still +operational. This is mainly useful to kernel hackers who are +debugging unstable kernels. + +The LART uses the same LED for both Timer LED and CPU usage LED +functions. You may choose to use both, but the Timer LED function +will overrule the CPU usage LED. +. +LEDS_CPU 'CPU usage LED' text +If you say Y here, the red LED will be used to give a good real +time indication of CPU usage, by lighting whenever the idle task +is not currently executing. + +The LART uses the same LED for both Timer LED and CPU usage LED +functions. You may choose to use both, but the Timer LED function +will overrule the CPU usage LED. +. +NO_FRAME_POINTER 'Compile kernel without frame pointer' text +If you say Y here, the resulting kernel will be slightly smaller and +faster. However, when a problem occurs with the kernel, the +information that is reported is severely limited. Most people +should say N here. +. +DEBUG_ERRORS 'Verbose kernel error messages' text +This option controls verbose debugging information which can be +printed when the kernel detects an internal error. This debugging +information is useful to kernel hackers when tracking down problems, +but mostly meaningless to other people. It's safe to say Y unless +you are concerned with the code size or don't want to see these +messages. +. +DEBUG_USER 'Verbose user fault messages' text +When a user program crashes due to an exception, the kernel can +print a brief message explaining what the problem was. This is +sometimes helpful for debugging but serves no purpose on a +production system. Most people should say N here. +. +DEBUG_INFO 'Include gdb debugging information in kernel binary' text +Say Y here to include source-level debugging information in the +`vmlinux' binary image. This is handy if you want to use gdb or +addr2line to debug the kernel. It has no impact on the in-memory +footprint of the running kernel but it can increase the amount of +time and disk space needed for compilation of the kernel. If in +doubt say N. +. +DEBUG_SLAB 'Debug memory allocations' + +DEBUG_SPINLOCK 'Spinlock debugging' + +NO_PGT_CACHE 'Disable pgtable cache' text +Normally the kernel maintains a `quicklist' of preallocated +pagetable structures in order to increase performance. On machines +with very few pages this may however be a loss. Say Y here to +disable the pgtable cache. +. +# These options are only for real kernel hackers +# who want to get their hands dirty. +DEBUG_LL 'Kernel low-level debugging functions' text +Say Y here to include definitions of printascii, printchar, printhex +in the kernel. This is helpful if you are debugging code that +executes before the console is initialized. +. +DEBUG_DC21285_PORT 'Kernel low-level debugging messages via footbridge serial port' +text +Say Y here if you want the low-level print routines to direct their +output to the serial port in the DC21285 (Footbridge). +. +DEBUG_CLPS711X_UART2 'Kernel low-level debugging messages via UART2' + +ANGELBOOT 'Load kernel using Angel Debug Monitor' text +Say Y if you plan to load the kernel using Angel, ARM Ltd's target +debug stub. If you are not using Angel, you must say N. It is +important to get this setting correct. +. +# +# SuperH port +SUPERH 'SuperH processors' + +# SuperH system type +SH_GENERIC 'Generic' text +This is machine type of your target. + +- "Generic" for Generic kernel which might support all of them +- "SolutionEngine" for Hitachi SolutionEngine (7709A, 7750, 7750S) +- "SolutionEngine7751" for Hitachi SolutionEngine (7751) +- "STB1_Harp" for STMicroelectronics HARP +- "STB1_Overdrive" for STMicroelectronics Overdrive +- "HP620" for HP 'Jornada' 620 +- "HP680" for HP 'Jornada' 680 +- "HP690" for HP 'Jornada' 690 +- "CqREEK" for CQ Publishing CqREEK SH-4 +- "DMIDA" for DMIDA, industrial data assistant +- "EC3104" for Compaq Aero 8000 +- "Dreamcast" for SEGA Dreamcast +- "CAT68701" for CAT 68701 Evaluation Board (SH7708) +- "BigSur" for Big Sur Evaluation Board +- "SH2000" for SH2000 Evaluation Board (SH7709A) +- "ADX" for A&D ADX +- "BareCPU" for Bare CPU board such as CqREEK SH-3 + +If unsure, select "BareCPU". +. +SH_SOLUTION_ENGINE 'SolutionEngine' + +SH_7751_SOLUTION_ENGINE '7751 SolutionEngine' + +SH_STB1_HARP 'STB1_Harp' + +SH_STB1_OVERDRIVE 'STB1_Overdrive' + +SH_HP620 'HP620' + +SH_HP680 'HP680' + +SH_HP690 'HP690' + +SH_CQREEK 'CqREEK' + +SH_DMIDA 'DMIDA' + +SH_EC3104 'EC3104' + +SH_DREAMCAST 'Dreamcast' + +SH_CAT68701 'CAT68701' + +SH_BIGSUR 'BigSur' + +SH_SH2000 'SH2000' + +SH_UNKNOWN 'BareCPU' + +# Processor type (default is 'SH7708') +CPU_SUBTYPE_SH7707 'SH7707' text +This is the type of your Hitachi SuperH processor. This information is +used for optimizing and configuration purposes. + +- "SH7707" for SH7707 +- "SH7708" for SH7708, SH7708S, SH7708R +- "SH7709" for SH7707, SH7709, SH7709A, and SH7729. +- "SH7750" for SH7750, SH7750S +- "SH7751" for SH7751 +- "ST40STB1" for ST40STB1 +. +CPU_SUBTYPE_SH7708 'SH7708' + +CPU_SUBTYPE_SH7709 'SH7709' + +CPU_SUBTYPE_SH7750 'SH7750' + +CPU_SUBTYPE_SH7751 'SH7751' + +CPU_SUBTYPE_ST40STB1 'ST40STB1' + +# Other SuperH port symbols +HD64461 'Hitachi HD64461 companion chip support' + +HD64461_IRQ 'HD64461 virtualized IRQ number' + +HD64461_ENABLER 'HD64461 PCMCIA enabler' + +HD64465 'Hitachi HD64465 companion chip support' + +HD64465_IRQ 'HD64465 virtualized IRQ number' + +HD64465_IOBASE 'HD64465 start address' + +MEMORY_START 'Physical memory start address' text +Computers built with Hitachi SuperH processors always +map the ROM starting at address zero. But the processor +does not specify the range that RAM takes. RAM is usually +mapped starting at 0c000000, but it may be elsewhere. + +You should set this value to the address of the lowest +RAM location. + +A value of 0c000000 will work for most boards. +. +CF_ENABLER 'Directly Connected Compact Flash support' text +If your board has "Directly Connected" CompactFlash at area 5 or 6, +you may want to enable this option. Then, you can use CF as +primary IDE drive (only tested for SanDisk). + +If in doubt, press "n". +. +SH_STANDARD_BIOS 'Use LinuxSH standard BIOS' text +Say Y here if your target has the gdb-sh-stub package from +www.m17n.org (or any conforming standard LinuxSH BIOS) in FLASH +or EPROM. The kernel will use standard BIOS calls during boot +for various housekeeping tasks. Note this does not work with +WindowsCE machines. If unsure, say N. +. +SH_EARLY_PRINTK 'Early printk support' text +If you say Y here, the kernel printk routine will begin output to +the console much earlier in the boot process, before the serial +console is initialised, instead of buffering output. Standard +LinuxSH BIOS calls are used for the output. This helps when +debugging fatal problems early in the boot sequence. This is only +useful for kernel hackers. If unsure, say N. +. +DEBUG_KERNEL_WITH_GDB_STUB 'GDB Stub kernel debug' + +# +# IA64 port +IA64 'IA64 processors, including Intel Itanium' + +# IA-64 processor type +ITANIUM 'Itanium' + +MCKINLEY 'McKinley' + +# IA-64 system type (default is 'Generic') +IA64_GENERIC 'Generic' text +This selects the system type of your hardware. A "generic" kernel +will run on any supported IA-64 system. However, if you configure +a kernel for your specific system, it will be faster and smaller. + +To find out what type of IA-64 system you have, you may want to +check the IA-64 Linux web site at http://www.linux-ia64.org/. +As of the time of this writing, most hardware is DIG compliant, +so the "DIG-compliant" option is usually the right choice. + +HP-simulator For the HP simulator (http://software.hp.com/ia64linux/). +SN1-simulator For the SGI SN1 simulator. +DIG-compliant For DIG ("Developer's Interface Guide") compliant system. + +If you don't know what to do, choose "generic". +. +IA64_DIG 'DIG-compliant' + +IA64_HP_SIM 'HP-simulator' + +IA64_SGI_SN1 'SGI-SN1' + +IA64_SGI_SN2 'SGI-SN2' + +# Kernel page size (default is '16KB') +IA64_PAGE_SIZE_4KB '4KB' text + +This lets you select the page size of the kernel. For best IA-64 +performance, a page size of 8KB or 16KB is recommended. For best +IA-32 compatibility, a page size of 4KB should be selected (the vast +majority of IA-32 binaries work perfectly fine with a larger page +size). For Itanium systems, do NOT chose a page size larger than +16KB. + +4KB For best IA-32 compatibility +8KB For best IA-64 performance +16KB For best IA-64 performance +64KB Not for Itanium. + +If you don't know what to do, choose 8KB. +. +IA64_PAGE_SIZE_8KB '8KB' + +IA64_PAGE_SIZE_16KB '16KB' + +IA64_PAGE_SIZE_64KB '64KB' + +# Physical memory granularity +IA64_GRANULE_16MB '16MB' + +IA64_GRANULE_64MB '64MB' + +# Other IA64 port symbols +ITANIUM_ASTEP_SPECIFIC 'Enable Itanium A-step specific code' text +Select this option to build a kernel for an Itanium prototype system +with an A-step CPU. You have an A-step CPU if the "revision" field in +/proc/cpuinfo is 0. +. +ITANIUM_BSTEP_SPECIFIC 'Enable Itanium B-step specific code' text +Select this option to build a kernel for an Itanium prototype system +with a B-step CPU. You have a B-step CPU if the "revision" field in +/proc/cpuinfo has a value in the range from 1 to 4. +. +#IA64_HAVE_IRQREDIR 'Force interrupt redirection' +#IA64_FW_EMU 'Emulate PAL/SAL/EFI firmware' +#IA64_IRQ_ACPI 'Get PCI IRQ routing from firmware/ACPI' +IA64_MCA 'Enable IA-64 Machine Check Abort' text +Say Y here to enable machine check support for IA-64. If you're +unsure, answer Y. +. +MCKINLEY_ASTEP_SPECIFIC 'Enable McKinley A-step specific code' + +MCKINLEY_A0_SPECIFIC 'Enable McKinley A0/A1-step specific code' + +#ACPI20 'Enable ACPI 2.0 with errata 1.3' +ACPI_KERNEL_CONFIG 'ACPI kernel configuration manager' + +PERFMON 'Performance monitor support' text +Selects whether support for the IA-64 performance monitor hardware +is included in the kernel. This makes some kernel data-structures a +little bigger and slows down execution a bit, but it is still +usually a good idea to turn this on. If you're unsure, say N. +. +IA64_PALINFO '/proc/pal support' text +If you say Y here, you are able to get PAL (Processor Abstraction +Layer) information in /proc/pal. This contains useful information +about the processors in your systems, such as cache and TLB sizes +and the PAL firmware version in use. + +To use this option, you have to check that the "/proc file system +. +EFI_VARS '/proc/efi/vars support' + +IA32_SUPPORT 'Kernel support for IA-32 emulation' + +IA64_EARLY_PRINTK 'Early printk support (requires VGA!)' + +IA64_DEBUG_CMPXCHG 'Turn on compare-and-exchange bug checking (slow!)' + +IA64_DEBUG_IRQ 'IA64 IRQ bug checking' + +IA64_PRINT_HAZARDS 'Print possible IA64 hazards to console' + +DISABLE_VHPT 'Disable IA-64 Virtual Hash Page Table' + +#KDB 'Built-in Kernel Debugger support' +#KDB_FRAMEPTR 'Compile the kernel with frame pointers' +#KDB_STBSIZE 'KDB Kernel Symbol Table size?' +SIMETH 'Simulated Ethernet' + +SIM_SERIAL 'Simulated serial driver support' + +SCSI_SIM 'Simulated SCSI disk' + +IA64_SGI_SN_DEBUG 'Enable extra debugging code' + +IA64_SGI_SN_SIM 'Enable SGI Medusa Simulator Support' + +IA64_SGI_AUTOTEST 'Enable autotest (llsc). Option to run cache test instead of booting' + +SERIAL_SGI_L1_PROTOCOL 'Enable protocol mode for the L1 console' + +PCIBA 'PCIBA support' + +# +# PARISC port +PARISC 'HP PA-RISC processor' + +KWDB 'Include kgdb kernel debugger' + +#GSC 'GSC/Gecko bus support' +IODC_CONSOLE 'IODC console' + +IOMMU_CCIO 'U2/Uturn I/O MMU' + +GSC_LASI 'LASI I/O support' + +PARPORT_GSC 'LASI/ASP builtin parallel-port' + +#LASI_82596 'Lasi Ethernet' +GSC_DINO 'GSCtoPCI/DINO PCI support' + +PCI_LBA 'LBA/Elroy PCI support' + +# +# IBM System/390 port +S390 'IBM System/390' + +S390X 'IBM System/390 with 31-bit emulation' + +S390_SUPPORT 'Kernel support for 31 bit ELF binaries' + +FAST_IRQ 'Fast IRQ handling' + +IPL 'Merge some code into the kernel to make the image IPLable' + +IPL_TAPE 'tape' text +Select this option if you want to IPL the image from a Tape. +. +IPL_VM 'vm_reader' + +#PROFILE 'Kernel profiling support' +#PROFILE_SHIFT 'Profile shift count' +DASD 'Support for DASD hard disks' text +Enable this option if you want to access DASDs directly utilizing +S/390s channel subsystem commands. This is necessary for running +natively on a single image or an LPAR. +. +DASD_ECKD 'Support for ECKD hard disks' text +ECKD devices are the most commonly used devices. you should enable +this option unless you are very sure to have no ECKD device. +. +DASD_AUTO_ECKD 'Automatic activation of ECKD module' + +DASD_FBA 'Support for FBA hard disks' text +FBA devices are currently unsupported. +. +DASD_AUTO_FBA 'Automatic activation of FBA module' + +#DASD_CKD 'Support for CKD hard disks' +DASD_DIAG 'Support for DIAG access to CMS reserved Disks' + +DASD_AUTO_DIAG 'Automatic activation of DIAG module' + +CHANDEV 'Channel Device Configuration' + +CTC 'CTC device support' + +IUCV 'IUCV device support (VM only)' + +TN3270 'Support for 3270 line mode terminal' + +TN3270_CONSOLE 'Support for console on 3270 line mode terminal' + +TN3215 'Support for 3215 line mode terminal' + +TN3215_CONSOLE 'Support for console on 3215 line mode terminal' + +HWC 'Support for HWC line mode terminal' + +HWC_CONSOLE 'Console on HWC line mode terminal' + +HWC_CPI 'Control-Program Identification' + +S390_TAPE 'S/390 tape device support' + +S390_TAPE_CHAR 'Support for tape character devices' + +S390_TAPE_BLOCK 'Support for tape block devices' + +S390_TAPE_3490 'Support for 3490 tape hardware' + +S390_TAPE_3480 'Support for 3480 tape hardware' + +PROCESS_DEBUG 'Show crashed user process info' + +PFAULT 'Pseudo page fault support' + +SHARED_KERNEL 'VM shared kernel support' + +# +# CRIS port +CRIS 'Axis Communications ETRAX 100LX embedded network CPU' + +ETRAX_WATCHDOG 'Enable Etrax100 watchdog' + +ETRAX100LX 'Etrax-100-LX-v1' + +ETRAX100LX_V2 'Etrax-100-LX-v2' + +SVINTO_SIM 'Etrax-100-LX-for-xsim-simulator' + +ETRAX_DRAM_SIZE 'DRAM size (dec, in MB)' + +ETRAX_FLASH_BUSWIDTH 'ETRAX Flash Memory configuration' + +ETRAX_ROOT_DEVICE 'Root device name' + +ETRAX_PA_LEDS 'LED configuration on PA' + +ETRAX_PB_LEDS 'LED configuration on PB' + +ETRAX_CSP0_LEDS 'LED configuration on CSP0' + +ETRAX_NO_LEDS 'No LED at all' + +ETRAX_LED1G 'First green LED bit' + +ETRAX_LED1R 'First red LED bit' + +ETRAX_LED2G 'Second green LED bit' + +ETRAX_LED2R 'Second red LED bit' + +ETRAX_LED3R 'Third red LED bit' + +ETRAX_LED3G 'Third green LED bit' + +ETRAX_LED4R 'Fourth red LED bit' + +ETRAX_LED4G 'Fourth green LED bit' + +ETRAX_LED5R 'Fifth red LED bit' + +ETRAX_LED5G 'Fifth green LED bit' + +ETRAX_LED6R 'Sixth red LED bit' + +ETRAX_LED6G 'Sixth green LED bit' + +ETRAX_LED7R 'Seventh red LED bit' + +ETRAX_LED7G 'Seventh green LED bit' + +ETRAX_LED8Y 'Eigth yellow LED bit' + +ETRAX_LED9Y 'Ninth yellow LED bit' + +ETRAX_LED10Y 'Tenth yellow LED bit' + +ETRAX_LED11Y 'Eleventh yellow LED bit' + +ETRAX_LED12R 'Twelfth red LED bit' + +ETRAX_DEBUG_PORT0 'Etrax debug port on ser0' + +ETRAX_DEBUG_PORT1 'Etrax debug port on ser1' + +ETRAX_DEBUG_PORT2 'Etrax debug port on ser2' + +ETRAX_DEBUG_PORT3 'Etrax debug port on ser3' + +ETRAX_DEBUG_PORT_NULL 'No Etrax debug port' + +ETRAX_RESCUE_SER0 'Serial-0' + +ETRAX_RESCUE_SER1 'Serial-1' + +ETRAX_RESCUE_SER2 'Serial-2' + +ETRAX_RESCUE_SER3 'Serial-3' + +ETRAX_SDRAM 'Etrax SDRAM configuration' + +ETRAX_DEF_R_WAITSTATES 'Etrax bus waitstates' + +ETRAX_DEF_R_BUS_CONFIG 'Etrax bus configuration' + +ETRAX_DEF_R_DRAM_CONFIG 'DRAM size (dec, in MB)' + +ETRAX_DEF_R_DRAM_TIMING 'Etrax DRAM timing' + +ETRAX_DEF_R_SDRAM_CONFIG 'Etrax SDRAM configuration' + +ETRAX_DEF_R_SDRAM_TIMING 'Etrax SDRAM timing' + +ETRAX_DEF_R_PORT_PA_DIR 'Etrax General port A direction' + +ETRAX_DEF_R_PORT_PA_DATA 'Etrax General port A data' + +ETRAX_DEF_R_PORT_PB_CONFIG 'Etrax General port B config' + +ETRAX_DEF_R_PORT_PB_DIR 'Etrax General port B direction' + +ETRAX_DEF_R_PORT_PB_DATA 'Etrax General port B data' + +ETRAX_ETHERNET_LPSLAVE 'Etrax Ethernet slave support (over lp0/1)' + +ETRAX_ETHERNET_LPSLAVE_HAS_LEDS 'Slave has its own LEDs' + +#ELTEST_IPADR 'IP address' +#ELTEST_NETWORK 'Network' +#ELTEST_NETMASK 'Netmask' +#ELTEST_BROADCAST 'Broadcast' +#ELTEST_GATEWAY 'Gateway' +#ELTEST_ETHADR 'Ethernet address' +#ETRAX_ETHERNET 'ETRAX Ethernet support' +#ETRAX_SERIAL 'Serial-port support' +#ETRAX_SERIAL_FAST_TIMER 'Use fast timers for DMA flush and RS-485 timing' + +ETRAX_SERIAL_PORT0 'Serial port 0 enabled' + +ETRAX_SERIAL_FLUSH_DMA_FAST 'Fast serial port DMA flush' + +ETRAX_SERIAL_RX_TIMEOUT_TICKS 'Receive flush timeout (ticks)' + +ETRAX_SER0_DTR_RI_DSR_CD_ON_PB 'Etrax Serial port ser0 DTR, RI, DSR and CD support on PB' + +ETRAX_SER0_DTR_ON_PB_BIT 'Ser0 DTR on PB bit' + +ETRAX_SER0_RI_ON_PB_BIT 'Ser0 RI on PB bit' + +ETRAX_SER0_DSR_ON_PB_BIT 'Ser0 DSR on PB bit' + +ETRAX_SER0_CD_ON_PB_BIT 'Ser0 CD on PB bit' + +ETRAX_SERIAL_PORT1 'Serial port 1 enabled' + +ETRAX_SER1_DTR_RI_DSR_CD_ON_PB 'Etrax Serial port ser1 DTR, RI, DSR and CD support on PB' + +ETRAX_SER1_DTR_ON_PB_BIT 'Ser1 DTR on PB bit' + +ETRAX_SER1_RI_ON_PB_BIT 'Ser1 RI on PB bit' + +ETRAX_SER1_DSR_ON_PB_BIT 'Ser1 DSR on PB bit' + +ETRAX_SER1_CD_ON_PB_BIT 'Ser1 CD on PB bit' + +ETRAX_SERIAL_PORT2 'Serial port 2 enabled' + +ETRAX_SER2_DTR_RI_DSR_CD_ON_PA 'Etrax Serial port ser2 DTR, RI, DSR and CD support on PA' + +ETRAX_SER2_DTR_ON_PA_BIT 'Ser2 DTR on PA bit' + +ETRAX_SER2_RI_ON_PA_BIT 'Ser2 RI on PA bit' + +ETRAX_SER2_DSR_ON_PA_BIT 'Ser2 DSR on PA bit' + +ETRAX_SER2_CD_ON_PA_BIT 'Ser2 CD on PA bit' + +ETRAX_SERIAL_PORT3 'Serial port 3 enabled' + +ETRAX_RS485 'Etrax100 RS-485 support' + +ETRAX_RS485_ON_PA 'Etrax100 RS-485 mode on PA' + +ETRAX_RS485_ON_PA_BIT 'Etrax100 RS-485 mode on PA bit' + +ETRAX_RS485_DISABLE_RECEIVER 'Etrax100 RS-485 disable receiver' + +ETRAX_SYNCHRONOUS_SERIAL 'ETRAX 100LX Synchronous serial ports' + +ETRAX_SYNCHRONOUS_SERIAL_PORT0 'ETRAX 100LX Synchronous serial port 0 enabled' + +ETRAX_SYNCHRONOUS_SERIAL0_DMA 'ETRAX 100LX Synchronous serial port 0 uses DMA' + +ETRAX_SYNCHRONOUS_SERIAL_PORT1 'ETRAX 100LX Synchronous serial port 1 enabled' + +ETRAX_SYNCHRONOUS_SERIAL1_DMA 'ETRAX 100LX Synchronous serial port 1 uses DMA' + +ETRAX_PARPORT 'Parallel port support' + +ETRAX_PARALLEL_PORT0 'Parallel port 0 enabled' + +ETRAX_PARALLEL_PORT1 'Parallel port 1 enabled' + +#ETRAX_IDE 'ETRAX ATA/IDE support' +ETRAX_IDE_PB7_RESET 'IDE reset on PB Bit 7' + +ETRAX_IDE_G27_RESET 'Etrax 100 IDE Reset' + +ETRAX_IDE_CSE1_16_RESET 'Port_CSE1_Bit_16' + +ETRAX_IDE_CSP0_8_RESET 'Etrax 100 IDE Reset' + +ETRAX_IDE_DELAY 'Delay for drives to regain consciousness' + +ETRAX_AXISFLASHMAP 'Axis flash-map support' + +ETRAX_PTABLE_SECTOR 'Byte-offset of partition table sector' + +#ETRAX_I2C 'ETRAX I2C support' +ETRAX_I2C_USES_PB_NOT_PB_I2C 'Etrax100 I2C configuration' + +ETRAX_I2C_EEPROM 'Etrax100 I2C EEPROM (NVRAM) support' + +ETRAX_I2C_EEPROM_PROBE 'Etrax100 I2C EEPROM (NVRAM) size/probe' + +ETRAX_I2C_EEPROM_2KB 'Etrax100 I2C EEPROM (NVRAM) size/2kB' + +ETRAX_I2C_EEPROM_8KB 'Etrax100 I2C EEPROM (NVRAM) size/8kB' + +ETRAX_I2C_EEPROM_16KB 'Etrax100 I2C EEPROM (NVRAM) size/16kB' + +ETRAX_GPIO 'Etrax General port device' + +ETRAX_PA_BUTTON_BITMASK 'PA button configuration' + +ETRAX_PA_CHANGEABLE_DIR 'PA changeable direction bits' + +ETRAX_PA_CHANGEABLE_BITS 'PA changeable data bits' + +ETRAX_PB_CHANGEABLE_DIR 'PA changeable direction bits' + +ETRAX_PB_CHANGEABLE_BITS 'PB changeable data bits' + +JULIETTE 'ARTPEC-1 support' + +#ETRAX_USB_HOST 'USB 1.1 host' +ETRAX_USB_HOST_PORT1 'USB 1.1 host port 1 enabled' + +ETRAX_USB_HOST_PORT2 'USB 1.1 host port 2 enabled' + +ETRAX_DS1302 'Etrax DS1302 Real-Time Clock driver' + +ETRAX_DS1302_RST_ON_GENERIC_PORT 'Etrax DS1302 RST on the Generic Port' + +ETRAX_DS1302_RSTBIT 'Etrax DS1302 RST bit number' + +ETRAX_DS1302_SCLBIT 'Etrax DS1302 SCL bit number' + +ETRAX_DS1302_SDABIT 'Etrax DS1302 SDA bit number' + +ETRAX_SOFT_SHUTDOWN 'Software Shutdown Support' + +ETRAX_SHUTDOWN_BIT 'Shutdown bit on port CSP0' + +ETRAX_POWERBUTTON_BIT 'Power button bit on port G' + +ETRAX_NETWORK_LED_ON_WHEN_LINK 'LED on when link' + +ETRAX_NETWORK_LED_ON_WHEN_ACTIVITY 'LED on when activity' + +PROFILE 'Kernel profiling support' + +PROFILE_SHIFT 'Profile shift count' + +# +# Andre Hedrick's hooks for non-mainline IDE stuff +BLK_DEV_IDEDISK_FUJITSU 'Fujitsu Vendor Specific' + +BLK_DEV_IDEDISK_IBM 'IBM Vendor Specific' + +BLK_DEV_IDEDISK_MAXTOR 'Maxtor Vendor Specific' + +BLK_DEV_IDEDISK_QUANTUM 'Quantum Vendor Specific' + +BLK_DEV_IDEDISK_SEAGATE 'Seagate Vendor Specific' + +BLK_DEV_IDEDISK_WD 'Western Digital Vendor Specific' + +BLK_DEV_TIVO 'TiVo Commerial Application Specific' + + +# Complaint strings used in requirements + +explanations +aed_complaint 'On the Audio Excel DSP, Sound Blaster and MSS emulation cannot both be on.' +aironet_complaint 'Aironet 4500 support must be modular, probing for it can cause a hang at boot time.' +cosa_complaint 'COSA/SRP sync serial-board support must be modular, probing for it can cause a hang at boot time.' +dscc4_complaint 'DSCC4 sync serial-board support must be modular, probing for it can cause a hang at boot time.' +hostess_complaint 'Comtrol SV11 must be modular, it cannot be detected at boot time.' +ipchains_complaint 'IP chains (IP_NF_COMPAT_IPCHAINS) and connection tracking (IP_NF_COMPAT_CONNTRACK) cannot both be on at once.' +sealevel_complaint 'Sealevel cards must be modular, they cannot be detected at boot time.' +usb_complaint 'Only one of UHCI and UHCI_ALT support can be hard-compiled in.' +crisconflict_complaint 'You cannot have the same PB bits more than once!' +# +# Enum strings +# These are for SC6600_CD-ROM +NO_CDROM 'No CD-ROM' + +IDE_CDROM 'IDE CD-ROM' + +PANASONIC_CDROM 'Panasonic' + +SONY_CDROM 'Sony' + + +menus +add_block_devices 'Additional Block Devices' +alpha 'Alpha processor options' +alphatype 'Alpha system type' +angelboot_legend 'Please ensure that you have read the help on the next option' +appletalk_drivers 'AppleTalk devices' +applications 'Sound, ham radio, and telephony' +arch 'Processor type' text +Choose your processor architecture. +. +archihacks 'Architecture-specific hardware hacks' +arcnet_drivers 'ARCnet support' +arm 'ARM processor options' +armtype 'ARM processor type' +atm 'ATM drivers' +ax25 'AX.25 network device drivers' +block_devices 'Block devices' +bluetooth 'Bluetooth support' +bluetooth_drivers 'Blutooth drivers' +buses 'System buses and controller types' text +Specify the buses, disk controllers, and internal interconnection standards +that you want your kernel to support. +. +cdevs 'Character devices' +cerf_flash 'Cerf flash available' +cerf_ram 'Cerf RAM available' +char_devs_misc 'Miscellaneous character devices' +clps711xtypes 'CLPS711X/EP721X Implementations' +console 'Console drivers' text +On Linux machines, the `console' is the keyboard and monitor of your +system considered as a direct-access device (that is, not using X). +. +cris 'CRIS port options' +cris_net_led 'Network LED behavior' +#crisaddrs 'CRIS IP parameters' +crisdebug 'Product debug-port' +crisleds 'Product LED port' +crisrescue 'Product rescue port' +crisserial 'CRIS serial port' +cristype 'CRIS processor type' +decnet 'Decnet options' +dongles 'IRDA dongle devices' +eth_3com_drivers '3Com Ethernet cards' +eth_pocket_drivers 'Pocket Ethernet adapters' +eth_racal_drivers 'Racal-Interlan (Micom) NI cards' +eth_smc_drivers 'SMC Ethernet cards' +ethernet_hispeed 'Ethernet (1000 Mbit)' +ethernet_lospeed 'Ethernet (10 or 100Mbit)' +etrax_eeprom 'EEPROM size' +etrax_rtc 'ETRAX real-time clock support' +fc4 'Fiber Channel support' +fc4_drivers_legend 'FC4 drivers' +fc4_targets_legend 'FC4 targets' +fddi_drivers 'FDDI driver support' +fiber_channel 'Fiber Channel drivers' +footbridge 'Footbridge implementations' +framebuffer 'Frame-buffer support' +fs 'File Systems' +ftcontroller 'Floppy tape controller' +ftdebug 'Floppy tape debugging output level' +fusion_mpt 'Fusion MPT devices' +galileo_clock 'Galileo Chip Clock' +gameports_legend 'Game ports' +generic 'Architecture-independent feature selections' +granularity 'Physical memory granularity' +graphics 'Kernel-level graphics support' +hamradio 'Ham radio drivers' +himem 'High Memory Support' +hotplug_pci 'Support for PCI Hotplug' +i2c 'I2C support' +i2o 'I2O support' +ia64 'Itanium processor options' +ia64type 'Itanium processor type' +ia64system 'Itanium system type' +ide_blockdevs 'IDE block devices' +ide_chipsets 'IDE chipset support/bugfixes' +ide_options 'IDE options -- see Documentation/ide.txt for help/info' +ide_reset 'IDE reset pin' +ide_vendorhooks 'IDE vendor-specific hooks' +ieee1394 'IEEE 1394 (FireWire) support' +input 'Generic input drivers' +ipv4 'IP Version 4 configuration' +ipv4_netfilter 'IP netfilter configuration' +ipv6 'IPv6 options' +ipv6_netfilter 'IPv6 netfilter configuration' +irda 'IrDA (infrared) support' +irda_drivers 'Infrared-port device drivers' +isdn 'ISDN device configuration' +isdn_active 'Active ISDN cards' +isdn_dchannel_legend 'D-channel protocol features' +isdn_features_legend 'ISDN feature submodules' +isdn_hisax_legend 'HiSax supported cards' +isdn_passive 'Passive ISDN cards' +joysticks 'Joystick support' +kcore 'Kernel core dump format' +kernelhacking 'Kernel hacking' +lfs 'Legacy Unix file systems' +m68k 'Motorola 68K family options' +main 'Linux Kernel Configuration System' +macintosh_drivers 'Macintosh driver configuration' +mfs 'Microsoft file systems' +mice 'Mice' +mips 'MIPS processor optionss' +mipstype 'MIPS CPU selection' +mpc8xxtype 'Type of MPC8xx IDE interface' +msndclas_legend 'Compiled-in MSND Classic support requires firmware during compilation.' +msndpin_legend 'Compiled-in MSND Pinnacle support requires firmware during compilation.' +mtd 'Memory Technology Device (MTD) support' +mtd_data_swap 'Flash cmd/query data swapping' +mtd_docdrivers 'Disk-On-Chip Device Drivers' +mtd_driver_legend 'MTD drivers for mapped chips' +mtd_driver_selfcontained 'Self-contained MTD device drivers' +mtd_mapping 'Drivers for chip mappings' +mtd_nand_legend 'NAND Flash Device Drivers' +mtd_translation_legend 'User modules and translation layers for MTD devices' +nativecdrom 'Non-IDE, non-SCSI CD-ROM driver support' +ncpfs 'NCP filesystem configuration' +ncr5380 'NCR5380/53c400 mapping method (use Port for T130B)' +net 'Networking options' +net_drivers 'Network device configuration' +netsched 'Traffic control configuration' +nfs 'Network file systems' +nino_model 'Nino Model Number' +nls 'National Language Support' +ofs 'CD-ROM and other foreign file systems' +other_ide_chipsets 'Other IDE chipset support (most need boot parameters)' +pagesize 'Kernel page size' +parallel_joystick_legend 'Parallel port joysticks' +paride_devices 'Parallel-port IDE devices' +parisc 'PA RISC processor options' +parport 'Parallel port support' +parttypes 'Partition types' +pci_access 'PCI access mode' +pcmcia 'PCMCIA/CardBus support' +pcmcia_chardevs 'PCMCIA character device support' +pcmcia_drivers 'PCMCIA network device support' +pm 'Power management' +policy 'Configuration policy options' text +Policy options for the Linux configurator. You can declare your level of +expertise, and whether you want choices for experimental and obsolete +hardware to be visible. +. +port_joystick_legend 'Gameport joysticks' +ppc 'Power PC processor options' +ppc4xxtype 'PPC 4xx type' +ppc6xxtype 'PPC 6xx type' +ppc8xxtype 'PPC 8xx type' +ppc82xxtype 'PPC 82xx type' +ppctype 'Power PC processor type' +ppp_options 'PPP options' +qic 'QIC tape support' +radio 'Radio adaptors' +rs232c 'RS232C serial devices' +s390 'System 390 processor options' +s390_ipl 'IPL method generated into head.S' +sa1100type 'SA1100 implementation' +sbus_misc 'Misc Linux/SPARC drivers' +scsi 'SCSI devices' +scsi_devices 'SCSI disk support' +scsi_drivers 'SCSI low-level drivers' +serial_joystick_legend 'Serial port joysticks' +serial_support_legend 'Serial port support' +slip_options 'SLIP options' +sound 'Sound support' +soundmodem 'Soundcard modem drivers' +sparc 'Sparc processor options' +sparcaudio 'Linux/SPARC audio subsystem' +scc_ethernet 'SCC Ethernet type' +superh 'SuperH processor options' +superhsys 'SuperH system type' +superhtype 'SuperH processor type' +system_joystick_legend 'System joysticks' +telephony 'Telephony Support' +tokenring_drivers 'Token Ring devices' +ufs 'Linux file system options' +usb 'USB support' +usb_controllers_legend 'USB controllers' +usb_devices_legend 'USB devices' +usb_etrax_legend 'USB for ETRAX machines' +usb_hid_legend 'USB Human Interface Device' +usb_options_legend 'Miscellaneous USB options' +usb_imaging_legend 'USB Imaging devices' +usb_multimedia_legend 'USB Multimedia devices' +usb_network_legend 'USB Network adaptors' +usb_port_legend 'USB port drivers' +usb_misc_legend 'USB miscellaneous drivers' +usb_serial 'USB serial devices' +video 'Video For Linux' +wan_drivers 'Wan drivers' +wan_router_drivers 'WAN router drivers' +watchdog 'Watchdog cards' +whoami 'Linux kernel options' +wireless 'Wireless LAN' +x86 'Intel and compatible 80x86 processor options' +x86type 'Intel and compatible 80x86 processor types' +# +# The following sets edit modes for GNU EMACS +# Local Variables: +# compile-command:"scripts/cmlcompile.py rules.cml" +# End: