BSD/OS 4.3 SMP and Tyan S2735 Tiger i7501R - BSD

This is a discussion on BSD/OS 4.3 SMP and Tyan S2735 Tiger i7501R - BSD ; I install 2 Xeon and on the SMP only 1 of the Xeon CPUs are powering up. my /etc/mp.config contains extclk noisa nopci .. What myst I do to get the next CPU to register? On the Tyan S2727 jus ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: BSD/OS 4.3 SMP and Tyan S2735 Tiger i7501R

  1. BSD/OS 4.3 SMP and Tyan S2735 Tiger i7501R

    I install 2 Xeon and on the SMP only 1 of the Xeon CPUs are powering up.

    my /etc/mp.config contains

    extclk
    noisa
    nopci

    ..

    What myst I do to get the next CPU to register?

    On the Tyan S2727 jus

    extclk
    nonmi

    worked fine.

    --
    Member - Liberal International
    This is doctor@nl2k.ab.ca Ici doctor@nl2k.ab.ca
    God Queen and country! Beware Anti-Christ rising!
    PAtriots! MAke your declaration of loyalty!

  2. Re: BSD/OS 4.3 SMP and Tyan S2735 Tiger i7501R

    In article ,
    The Doctor wrote:
    >I install 2 Xeon and on the SMP only 1 of the Xeon CPUs are powering up.
    >
    >my /etc/mp.config contains
    >
    >extclk
    >noisa
    >nopci
    >
    >.
    >
    >What myst I do to get the next CPU to register?
    >
    >On the Tyan S2727 jus
    >
    >extclk
    >nonmi
    >
    >worked fine.
    >
    >--


    Forgot!!

    2 messages come up

    1) cpu: Multiple mapping to APIC 8 pin 12

    2) bha0: warming, interrupts not working, using polling.

    bha0 is the Bus Logic SCSI controller.

    And from

    http://www.muab.monsteras.se/cgi-bin...on=8&apropos=0

    This data is part of a licensed program from BERKELEY SOFTWARE DESIGN, INC. Portions are copyrighted by BSDI, The Regents of the University of California, Massachusetts Institute of Technology, Free Software Foundation, and others.

    CPU(8) BSD System Manager's Manual CPU(8)

    NAME
    cpu - control multiprocessor aspects of system

    SYNOPSIS
    cpu [-dOv] [-i savefile] [-f cpudev] [-o override-file] command [args]
    [overrides]

    DESCRIPTION
    The cpu program is used to control multiprocessor aspects of BSD/OS .
    The primary function of cpu is the transition of the system from unipro-
    cessor mode (also referred to as PIC mode, the state the system is in af-
    ter boot) to symmetric I/O mode with (possibly) multiple processors run-
    ning.

    The bulk of the functionality available to the user via this program is
    used for debugging and/or dealing with motherboards and BIOS that do not
    fully live up to the Intel Multiprocessor Specification (1.4) standard.
    In normal use, a cpu mp command is run by '/etc/rc' during the boot pro-
    cess if /etc/mp.config is present (it may be empty); this takes care of
    all the details of starting any additional CPUs. Much of the information
    and functionality described below is targeted at engineers attempting to
    bring up a new motherboard.

    The cpu program also performs numerous debugging and status functions
    that do not affect the state of the system.

    The flags are

    -d Enable debug mode. In this mode operations which would change the
    state of a running system are not issued. This mode also enables
    verbose mode.

    -f cpudev
    Give a different name for the special device file used to control
    the system. If not given /dev/cpu is used.

    -i savefile
    This specifies a file with saved system state from a previous invo-
    cation of cpu. When this option is used information about the system
    (BIOS SMP information, interrupt status, cpu status) that is used in
    the operation of the program is read from the file instead of from
    the currently running kernel (via /dev/cpu ). Note: if -d is not
    also specified and changes requested are still issued to the kernel
    via /dev/cpu. Thus, this option is most useful in conjunction with
    -d to display debugging information about another machine (ie: to
    see how cpu is routing interrupts on a different machine).

    -o override-file
    This specifies the pathname to a file which may contain configura-
    tion overrides. See OVERRIDES below.

    -O This specifies that no overrides will be read from an external file;
    overrides on the command line are still recognized.

    -v Turns on verbose mode, in this mode additional warnings and debug
    information is printed as cpu performs its duties.

    Some definitions will aid in understanding the commands and overrides:

    PIC (8259)
    Programmable interrupt controller. Two of these devices are built
    into all PC chipsets, these are based on the original 8259 interrupt
    controllers used on the PC/AT in 1983. Pre-MP capable systems use
    these parts to handle device interrupts.

    When using the PIC's to handle interrupts the interrupt lines from
    the card slots (ISA, PCI) and internal peripherals (clock, keyboard,
    etc.) are connected to one of the two 8259 PIC's; these are in turn
    connected to the CPU and deliver interrupts directly via special bus
    cycles.
    APIC
    Advanced programmable interrupt controller. This device replaces the
    functionality of the PIC in a system that is running more than one
    CPU. Systems with APIC's must also have PIC hardware to allow them
    to boot and run older software that does not support the APIC sys-
    tem.

    In an APIC based system each CPU has an APIC built into it (referred
    to as the local APIC) and the motherboard has one or more I/O APIC's
    to which the interrupt signals are connected. All the APIC's in the
    system are connected to a common bus. When an interrupt is signalled
    to an I/O APIC, it picks a CPU on the APIC bus that can service the
    interrupt and exchanges message packets with that CPU's local APIC
    (which in turn causes the CPU to enter an interrupt service rou-
    tine). With the APIC system interrupts can be distributed amongst
    all the CPU's instead of just one CPU (as with the PIC system).

    In general, once the APIC system has been enabled the PIC's are no
    longer used to distribute interrupts (they are disabled).

    Apic-ID (Cpu-ID)
    Each APIC on the APIC bus (either cpu local or I/O) is assigned a
    unique 4 bit identifier (by the hardware designer). On typical two
    processor systems with one I/O apic the CPU's are at ID 0 and ID 1,
    and the I/O APIC is at ID 2. ID 0xf is not available, allowing up to
    14 APIC's total (counting CPU's and I/O APIC's) per system. A mode
    is available where several APIC busses can be cascaded, however is
    this not supported by BSD/OS (or the Intel MPS 1.4 spec). Cpu-ID is
    synonymous with Apic-ID (a number from 0 to 0xe).

    Mixed mode
    Some (arguably broken) motherboard chip sets do not externalize all
    their interrupt sources (specifically the clock signal) so there is
    no way to connect the interrupt source directly to an I/O APIC. On
    these systems a mixed interrupt delivery mode is used; interrupts
    that are not connected to the APIC system are handled by the old PIC
    system (and routed to the boot processor), interrupts that are con-
    nected to the APIC's are delivered using the APIC system. This is
    not a desirable mode to run in.


    Symmetric I/O mode
    When a system is first booted it is in PIC mode (using the 8259 in-
    terrupt controllers); the first step in starting additional proces-
    sors is to turn off the PIC's and enable interrupt distribution via
    the APIC bus. When interrupts are routed via the APIC bus the system
    is said to be running in symmetric I/O mode.

    It is possible to run the system in symmetric I/O mode without
    starting additional CPU's (or even on a system with only one CPU, as
    long as it has an APIC bus and an I/O APIC). This is typically used
    to check out the I/O hardware on a new motherboard before adding the
    additional load (and possible complication) of a second CPU.

    UP Uniprocessor mode; the state the system is in after booting (using
    PIC's for interrupt distribution and only the boot processor is run-
    ning).


    MP (or SMP)
    Multiprocessor mode; this is the state the system is in after it has
    been switched into symmetric I/O mode and additional CPU's have been
    started.


    COMMANDS
    cpu has multiple functions, selected via the command argument.

    The CPU number and APIC-ID values are in the same name space, they are a
    number from 0 to 14. A given address may be an I/O apic or a CPU, but not
    both. All numeric input to cpu may be in hex (leading 0x), octal (leading
    0), of decimal (no prefix).

    Many dual processor systems use Cpu-0 and Cpu-1, and have an I/O APIC at
    address 2. The BIOS is the final source of information on CPU and APIC
    id's, use the bootparam command to display the BIOS data regarding the
    machine.


    check
    This determines if the CPU on which it is running is capable of
    serving as a processor in an SMP system. If verbose mode is set, de-
    tailed information regarding the stepping and other features of the
    CPU is printed.

    This may be run on a machine without an SMP capable kernel (even an
    older release). This does not require superuser privileges, nor ac-
    cess to /dev/cpu.

    mp [overrides]
    This attempts to switch the system into symmetric I/O mode (a pre-
    requisite for running multiple CPUs) and then starts all additional
    processors.

    See OVERRIDES below for information on when and how overrides are
    used.


    siomode [overrides]
    This switches the system into symmetric I/O mode but does not start
    any additional CPUs. It is sometimes necessary to test a system un-
    der symmetric I/O mode before starting additional processors. See
    OVERRIDES below for information on when and how overrides are used.

    stat
    Displays the status of the I/O system (PIC mode or symmetric I/O
    mode), the state of each known CPU, and the current interrupt coun-
    ters for each interrupt source. Note that in PIC mode any additional
    processors will not be shown in this display (since their presence
    has not yet been determined).

    start cpuno
    Start a CPU and set it up for scheduling user mode processes.

    The following commands are generally only used for debugging.

    bootparam
    Decode and display all system boot parameters, for SMP systems the
    section with the Intel MPS data is of most interest (it shows how
    the motherboard routes interrupt sources when in symmetric I/O
    mode).

    intr
    This summarizes the interrupt sources from the bootparam data. It is
    simply an easier to digest version of the data displayed by

    bootparam.

    pci Display PCI device information; this is simply the results of a bus
    walk looking for any valid PCI devices (using the same criteria the
    kernel uses when it boots; non-zero functions will not be displayed
    for instance). This information is used when determining interrupt
    routing for PCI devices.

    dumplapic
    This dumps the register set of the local APIC on the CPU which is
    running the cpu program. Since there is (currently) no way to force
    a program to run on a particular CPU this is of limited used once
    multiple processors have been started.

    dumpiapic apic-id
    This dumps the register set of the I/O apic apic-id.

    save savefile
    This reads all the kernel information needed by cpu to switch into
    symmetric I/O mode and start processors, and then saves the data in-
    to savefile. This file (which is uuencoded) may then be sent to a
    support engineer to aid in the debugging of interrupt routing is-
    sues. This is the file that the -i flag expects.


    OVERRIDES
    Overrides may be given on the command line or in a file. The subcommands
    that accept overrides will first attempt to read overrides from a file,
    then will add the overrides specified on the command line.

    The override file is /etc/mp.config by default. If the MPINFO environment
    variable is set, it specifies an alternate filename to use. If the -o
    flag is given, the file specified will be used as the override file. If
    -O is supplied then overrides will not be read from any file (command
    line overrides will still be applied).

    Overrides on the command line must not have spaces within them (white
    space delimits the overrides). When putting overrides in a file, the for-
    mat is one override per line, whitespace may be used within the override,
    and any characters following a '#' on the line are ignored as a comment.

    In normal operation these overrides should not be needed. The overrides
    are fully explained here, however use of them is not directly supported.
    Generally they should only be used at the request of a BSDI support or
    engineering. Any options may be changed or removed at any time. Improper
    use can cause a system to hang or corrupt data.

    These overrides are intended for use debugging problems with new chip
    sets and motherboards or to work BIOS revisions that do not properly re-
    port multiprocessor information.



    nopci
    Prevent the routing of any interrupts described by the BIOS as PCI
    interrupts. Typically this is used when the BIOS PCI routing infor-
    mation is incorrect and irqN=apic,pin statements are used to manual-
    ly route the PCI interrupt pins to the appropriate IRQs instead.


    noisa
    Prevent the routing of any interrupts described by the BIOS as ISA
    or EISA. Typically this is used when the BIOS PCI routing informa-
    tion is incorrect and irqN=apic,pin statements are used to manually
    route the PCI interrupt pins to the appropriate IRQs instead.


    isashare
    Allows an ISA interrupt source to route to an IRQ that is already in
    use by another interrupt type. Some machines disconnect PCI inter-
    rupts from the ISA interrupt set (they are routed as 'pci' inter-
    rupts, separate from all of the ISA interrupts); setting this option
    allows the interrupt that was previously overridden by a PCI inter-
    rupt to be delivered to its IRQ (along with the PCI interrupt). All
    interrupts routed in this manner are assumed to be edge sensitive.

    This option may also be used when it is unknown which interrupts
    will be delivered via ExtINT and which via the BIOS interrupt rout-
    ing. In this case all the ExtINT sources plus all the BIOS defined
    ISA pins can simultaneously route to their respective IRQs.


    noautoeoi
    If the extclk override is used this option will run the 8259 PIC in
    normal (non auto-eoi) mode. This forces a different interrupt han-
    dler to be used for clock interrupts, not only must it EOI the APIC
    but it must EOI the 8259. Use this only if the default (auto-eoi
    mode) doesn't work (it is a little less efficient than the default).


    ignore_defcfg
    Some older BIOS'es report that the operating system should supply
    the configuration details based on one of a number of predefined (by
    the Intel MPS 1.4) configurations. It is possible for the BIOS to
    request a default MPS configuration and then also supply details
    (which possibly conflict the MPS version of the configuration). The
    default behavior is to ignore the BIOS details if it calls for an
    MPS default configuration, however, if ignoredefcfg is specified
    then the BIOS supplied configuration will be used instead. This
    override has no effect unless the BIOS supplies its own configura-
    tion and simultaneously calls for an MPS default configuration.


    irqN=apic,pin[,level][,edge][,high][,low][,excl]
    This manually routes a given interrupt source (as described by apic
    and pin ) to a given IRQ. The source must on an I/O APIC (single in-
    terrupts cannot be delivered via CPU local APIC pins).

    The level option indicates the pin should be programmed (and
    blocked) as a level triggered source (ie: PCI). The edge option
    forces edge trigger mode to be used on the interrupt pin. Edge or
    level mode is normally automatically selected based on the source of
    the interrupt. The high option forces triggering based on an active
    high signal. The low option forces triggering based on an active low
    signal. Normally the polarity is automatically selected based on the
    source of the interrupt.

    The excl flag indicates that no other interrupt sources may share
    this IRQ (an error is generated if an other override specifies this
    IRQ as a target. BIOS supplied routings are considered 'soft' for
    this purpose, if any are mapped to an exclusive use IRQ they are in-
    stead redirected to a handler that simply counts them. An example of
    this case is one where an exclusive route is assigned from a PCI in-
    terrupt source and yet the BIOS still defines an ISA interrupt
    source for the same IRQ; in this case the isa IRQ will be redirected
    to the stray interrupt catcher.


    irqN=ext
    This indicates that the named IRQ is to be handled via the 8259 PICs
    (AT compatible mode) on an ExtINT pin (either connected directly to
    a CPU or connected to an I/O apic).


    noext
    Disable all ExtINT inputs.


    extclk
    This forces a special mode where the external PIC is assumed to have
    only one active interrupt (the clock, IRQ0) and the ExtINT pin is on
    an I/O APIC. In this mode the APIC pin is programmed as a normal
    interrupt (instead of an ExtINT input). This implies some additional
    work in the interrupt handler to manage the 8259 as well as the APIC
    when an interrupt is received (which is why there is a special mode
    and a normal irq override isn't sufficient).

    Normally a determination of the need to use this workaround is made
    based on the identification of the chipset (the problem occurs in
    chipsets which use the Intel 82371 PIIX3). If the device ID changes
    in a newer version of the chip this keyword may be used as a
    workaround until an update has been posted. The symptoms of not us-
    ing this workaround when needed are that the clock doesn't advance
    (running date multiple times results in the same output each time).


    noextclk
    This forces the extclk workaround to not be used.


    extint=apic,pin
    This selects a particular source for the ExtINT input (this is the
    chaining interrupt from the AT compatible 8259 interrupt con-
    trollers). There may only be one ExtINT source active on a system.
    The BIOS boot data normally supplies this routing, this override may
    be needed if multiple ExtINT sources are defined by the BIOS. Rout-
    ing ExtINT to the non-boot processor may cause the system to hang
    before the target processor is started (or if the target processor
    is stopped).


    extdest=cpu
    If the ExtINT source is on an I/O APIC this determines which CPU the
    8259 interrupts will be routed to. Interrupts delivered via the Ex-
    tINT mechanism can only be routed to one CPU (there is no mode to
    automatically route them to the best processor as there is with APIC
    interrupts). Routing interrupts to a processor other than the boot
    processor may cause the system to hang before the target processor
    is started (or if it is stopped).


    nmi=apic,pin
    This sets up the listed interrupt source as an NMI input (apic may
    be a CPU or an I/O apic). Unless 'nmidest' is specified the NMI is
    programmed in broadcast mode. If not given NMI routing is determined
    by BIOS info.


    nmidest=cpu
    Sets the destination for all NMI sources, if not specified the des-
    tination is the broadcast address (all CPUs). This only has meaning
    on I/O APIC sources that receive NMIs (the destination is always the
    local CPU for CPU LINTn connections). There is no shorthand to
    specify that NMI is wired to the same pin on each CPU, use multiple
    nmi overrides.



    nonmi
    Do not route any NMI sources.


    smi=apic,pin
    This sets up the listed interrupt source as a system management
    (SMI) input (apic may be a CPU or an I/O apic). Unless 'smidest' is
    specified the SMI is programmed in broadcast mode. If not given SMI
    routing is determined by BIOS info.


    smidest=cpu
    Sets the destination for all SMI sources, if not specified the des-
    tination is the broadcast address (all CPUs). This only has meaning
    on I/O APIC sources that receive SMIs (the destination is always the
    local CPU for CPU LINTn connections). There is no shorthand to
    specify that SMI is wired to the same pin on each CPU, multiple smi
    overrides.


    nosmi
    Do not route any SMI sources.


    unk=apic,pin
    Routes the interrupt source given by apic and pin to an unknown in-
    terrupt handler (this will keep count of any interrupts received on
    the pin and print a message). This is valid only for I/O APIC based
    interrupts.


    apicN=physaddr
    Indicates than an I/O APIC with ID N exists at the physical address
    physaddr.


    apicN=down
    Indicates that I/O APIC N is not available (even if the BIOS says it
    is).


    cpuN=up|down
    Indicate that a given CPU (APIC ID) exists or does not exist. This
    overrides any data supplied by the BIOS.



    FILES
    /dev/cpu special file used to access MP kernel functions

    /etc/mp.config default file to read override information from

    ENVIRONMENT VARIABLES
    MPINFO If set, overrides the default configuration file path (
    /etc/mp.config ). Overridden by the -o command line option.

    SEE ALSO
    cpu(4)

    BUGS
    The mechanisms used to override various aspects of the interrupt routing
    algorithm are flexible but much too complex.

    HISTORY
    The cpu first appeared in BSD/OS 4.0.


    --
    Member - Liberal International
    This is doctor@nl2k.ab.ca Ici doctor@nl2k.ab.ca
    God Queen and country! Beware Anti-Christ rising!
    PAtriots! MAke your declaration of loyalty!

  3. Re: BSD/OS 4.3 SMP and Tyan S2735 Tiger i7501R

    In article ,
    The Doctor wrote:
    >In article ,
    >The Doctor wrote:
    >>I install 2 Xeon and on the SMP only 1 of the Xeon CPUs are powering up.
    >>
    >>my /etc/mp.config contains
    >>
    >>extclk
    >>noisa
    >>nopci
    >>
    >>.
    >>
    >>What myst I do to get the next CPU to register?
    >>
    >>On the Tyan S2727 jus
    >>
    >>extclk
    >>nonmi
    >>
    >>worked fine.
    >>
    >>--

    >
    >Forgot!!
    >
    >2 messages come up
    >
    >1) cpu: Multiple mapping to APIC 8 pin 12
    >
    >2) bha0: warming, interrupts not working, using polling.
    >
    >bha0 is the Bus Logic SCSI controller.
    >
    >And from
    >
    >http://www.muab.monsteras.se/cgi-bin...on=8&apropos=0
    >
    >This data is part of a licensed program from BERKELEY SOFTWARE DESIGN,
    >INC. Portions are copyrighted by BSDI, The Regents of the University of
    >California, Massachusetts Institute of Technology, Free Software
    >Foundation, and others.
    >
    >CPU(8) BSD System Manager's Manual CPU(8)
    >
    >NAME
    > cpu - control multiprocessor aspects of system
    >
    >SYNOPSIS
    > cpu [-dOv] [-i savefile] [-f cpudev] [-o override-file] command [args]
    > [overrides]
    >
    >DESCRIPTION
    > The cpu program is used to control multiprocessor aspects of BSD/OS .
    > The primary function of cpu is the transition of the system from unipro-
    > cessor mode (also referred to as PIC mode, the state the system is in af-
    > ter boot) to symmetric I/O mode with (possibly) multiple processors run-
    > ning.
    >
    > The bulk of the functionality available to the user via this program is
    > used for debugging and/or dealing with motherboards and BIOS that do not
    > fully live up to the Intel Multiprocessor Specification (1.4) standard.
    > In normal use, a cpu mp command is run by '/etc/rc' during the boot pro-
    > cess if /etc/mp.config is present (it may be empty); this takes care of
    > all the details of starting any additional CPUs. Much of the information
    > and functionality described below is targeted at engineers attempting to
    > bring up a new motherboard.
    >
    > The cpu program also performs numerous debugging and status functions
    > that do not affect the state of the system.
    >
    > The flags are
    >
    > -d Enable debug mode. In this mode operations which would change the
    > state of a running system are not issued. This mode also enables
    > verbose mode.
    >
    > -f cpudev
    > Give a different name for the special device file used to control
    > the system. If not given /dev/cpu is used.
    >
    > -i savefile
    > This specifies a file with saved system state from a previous invo-
    > cation of cpu. When this option is used information about the system
    > (BIOS SMP information, interrupt status, cpu status) that is used in
    > the operation of the program is read from the file instead of from
    > the currently running kernel (via /dev/cpu ). Note: if -d is not
    > also specified and changes requested are still issued to the kernel
    > via /dev/cpu. Thus, this option is most useful in conjunction with
    > -d to display debugging information about another machine (ie: to
    > see how cpu is routing interrupts on a different machine).
    >
    > -o override-file
    > This specifies the pathname to a file which may contain configura-
    > tion overrides. See OVERRIDES below.
    >
    > -O This specifies that no overrides will be read from an external file;
    > overrides on the command line are still recognized.
    >
    > -v Turns on verbose mode, in this mode additional warnings and debug
    > information is printed as cpu performs its duties.
    >
    > Some definitions will aid in understanding the commands and overrides:
    >
    > PIC (8259)
    > Programmable interrupt controller. Two of these devices are built
    > into all PC chipsets, these are based on the original 8259 interrupt
    > controllers used on the PC/AT in 1983. Pre-MP capable systems use
    > these parts to handle device interrupts.
    >
    > When using the PIC's to handle interrupts the interrupt lines from
    > the card slots (ISA, PCI) and internal peripherals (clock, keyboard,
    > etc.) are connected to one of the two 8259 PIC's; these are in turn
    > connected to the CPU and deliver interrupts directly via special bus
    > cycles.
    > APIC
    > Advanced programmable interrupt controller. This device replaces the
    > functionality of the PIC in a system that is running more than one
    > CPU. Systems with APIC's must also have PIC hardware to allow them
    > to boot and run older software that does not support the APIC sys-
    > tem.
    >
    > In an APIC based system each CPU has an APIC built into it (referred
    > to as the local APIC) and the motherboard has one or more I/O APIC's
    > to which the interrupt signals are connected. All the APIC's in the
    > system are connected to a common bus. When an interrupt is signalled
    > to an I/O APIC, it picks a CPU on the APIC bus that can service the
    > interrupt and exchanges message packets with that CPU's local APIC
    > (which in turn causes the CPU to enter an interrupt service rou-
    > tine). With the APIC system interrupts can be distributed amongst
    > all the CPU's instead of just one CPU (as with the PIC system).
    >
    > In general, once the APIC system has been enabled the PIC's are no
    > longer used to distribute interrupts (they are disabled).
    >
    > Apic-ID (Cpu-ID)
    > Each APIC on the APIC bus (either cpu local or I/O) is assigned a
    > unique 4 bit identifier (by the hardware designer). On typical two
    > processor systems with one I/O apic the CPU's are at ID 0 and ID 1,
    > and the I/O APIC is at ID 2. ID 0xf is not available, allowing up to
    > 14 APIC's total (counting CPU's and I/O APIC's) per system. A mode
    > is available where several APIC busses can be cascaded, however is
    > this not supported by BSD/OS (or the Intel MPS 1.4 spec). Cpu-ID is
    > synonymous with Apic-ID (a number from 0 to 0xe).
    >
    > Mixed mode
    > Some (arguably broken) motherboard chip sets do not externalize all
    > their interrupt sources (specifically the clock signal) so there is
    > no way to connect the interrupt source directly to an I/O APIC. On
    > these systems a mixed interrupt delivery mode is used; interrupts
    > that are not connected to the APIC system are handled by the old PIC
    > system (and routed to the boot processor), interrupts that are con-
    > nected to the APIC's are delivered using the APIC system. This is
    > not a desirable mode to run in.
    >
    >
    > Symmetric I/O mode
    > When a system is first booted it is in PIC mode (using the 8259 in-
    > terrupt controllers); the first step in starting additional proces-
    > sors is to turn off the PIC's and enable interrupt distribution via
    > the APIC bus. When interrupts are routed via the APIC bus the system
    > is said to be running in symmetric I/O mode.
    >
    > It is possible to run the system in symmetric I/O mode without
    > starting additional CPU's (or even on a system with only one CPU, as
    > long as it has an APIC bus and an I/O APIC). This is typically used
    > to check out the I/O hardware on a new motherboard before adding the
    > additional load (and possible complication) of a second CPU.
    >
    > UP Uniprocessor mode; the state the system is in after booting (using
    > PIC's for interrupt distribution and only the boot processor is run-
    > ning).
    >
    >
    > MP (or SMP)
    > Multiprocessor mode; this is the state the system is in after it has
    > been switched into symmetric I/O mode and additional CPU's have been
    > started.
    >
    >
    >COMMANDS
    > cpu has multiple functions, selected via the command argument.
    >
    > The CPU number and APIC-ID values are in the same name space, they are a
    > number from 0 to 14. A given address may be an I/O apic or a CPU, but not
    > both. All numeric input to cpu may be in hex (leading 0x), octal (leading
    > 0), of decimal (no prefix).
    >
    > Many dual processor systems use Cpu-0 and Cpu-1, and have an I/O APIC at
    > address 2. The BIOS is the final source of information on CPU and APIC
    > id's, use the bootparam command to display the BIOS data regarding the
    > machine.
    >
    >
    > check
    > This determines if the CPU on which it is running is capable of
    > serving as a processor in an SMP system. If verbose mode is set, de-
    > tailed information regarding the stepping and other features of the
    > CPU is printed.
    >
    > This may be run on a machine without an SMP capable kernel (even an
    > older release). This does not require superuser privileges, nor ac-
    > cess to /dev/cpu.
    >
    > mp [overrides]
    > This attempts to switch the system into symmetric I/O mode (a pre-
    > requisite for running multiple CPUs) and then starts all additional
    > processors.
    >
    > See OVERRIDES below for information on when and how overrides are
    > used.
    >
    >
    > siomode [overrides]
    > This switches the system into symmetric I/O mode but does not start
    > any additional CPUs. It is sometimes necessary to test a system un-
    > der symmetric I/O mode before starting additional processors. See
    > OVERRIDES below for information on when and how overrides are used.
    >
    > stat
    > Displays the status of the I/O system (PIC mode or symmetric I/O
    > mode), the state of each known CPU, and the current interrupt coun-
    > ters for each interrupt source. Note that in PIC mode any additional
    > processors will not be shown in this display (since their presence
    > has not yet been determined).
    >
    > start cpuno
    > Start a CPU and set it up for scheduling user mode processes.
    >
    > The following commands are generally only used for debugging.
    >
    > bootparam
    > Decode and display all system boot parameters, for SMP systems the
    > section with the Intel MPS data is of most interest (it shows how
    > the motherboard routes interrupt sources when in symmetric I/O
    > mode).
    >
    > intr
    > This summarizes the interrupt sources from the bootparam data. It is
    > simply an easier to digest version of the data displayed by
    >
    > bootparam.
    >
    > pci Display PCI device information; this is simply the results of a bus
    > walk looking for any valid PCI devices (using the same criteria the
    > kernel uses when it boots; non-zero functions will not be displayed
    > for instance). This information is used when determining interrupt
    > routing for PCI devices.
    >
    > dumplapic
    > This dumps the register set of the local APIC on the CPU which is
    > running the cpu program. Since there is (currently) no way to force
    > a program to run on a particular CPU this is of limited used once
    > multiple processors have been started.
    >
    > dumpiapic apic-id
    > This dumps the register set of the I/O apic apic-id.
    >
    > save savefile
    > This reads all the kernel information needed by cpu to switch into
    > symmetric I/O mode and start processors, and then saves the data in-
    > to savefile. This file (which is uuencoded) may then be sent to a
    > support engineer to aid in the debugging of interrupt routing is-
    > sues. This is the file that the -i flag expects.
    >
    >
    >OVERRIDES
    > Overrides may be given on the command line or in a file. The subcommands
    > that accept overrides will first attempt to read overrides from a file,
    > then will add the overrides specified on the command line.
    >
    > The override file is /etc/mp.config by default. If the MPINFO environment
    > variable is set, it specifies an alternate filename to use. If the -o
    > flag is given, the file specified will be used as the override file. If
    > -O is supplied then overrides will not be read from any file (command
    > line overrides will still be applied).
    >
    > Overrides on the command line must not have spaces within them (white
    > space delimits the overrides). When putting overrides in a file, the for-
    > mat is one override per line, whitespace may be used within the override,
    > and any characters following a '#' on the line are ignored as a comment.
    >
    > In normal operation these overrides should not be needed. The overrides
    > are fully explained here, however use of them is not directly supported.
    > Generally they should only be used at the request of a BSDI support or
    > engineering. Any options may be changed or removed at any time. Improper
    > use can cause a system to hang or corrupt data.
    >
    > These overrides are intended for use debugging problems with new chip
    > sets and motherboards or to work BIOS revisions that do not properly re-
    > port multiprocessor information.
    >
    >
    >
    > nopci
    > Prevent the routing of any interrupts described by the BIOS as PCI
    > interrupts. Typically this is used when the BIOS PCI routing infor-
    > mation is incorrect and irqN=apic,pin statements are used to manual-
    > ly route the PCI interrupt pins to the appropriate IRQs instead.
    >
    >
    > noisa
    > Prevent the routing of any interrupts described by the BIOS as ISA
    > or EISA. Typically this is used when the BIOS PCI routing informa-
    > tion is incorrect and irqN=apic,pin statements are used to manually
    > route the PCI interrupt pins to the appropriate IRQs instead.
    >
    >
    > isashare
    > Allows an ISA interrupt source to route to an IRQ that is already in
    > use by another interrupt type. Some machines disconnect PCI inter-
    > rupts from the ISA interrupt set (they are routed as 'pci' inter-
    > rupts, separate from all of the ISA interrupts); setting this option
    > allows the interrupt that was previously overridden by a PCI inter-
    > rupt to be delivered to its IRQ (along with the PCI interrupt). All
    > interrupts routed in this manner are assumed to be edge sensitive.
    >
    > This option may also be used when it is unknown which interrupts
    > will be delivered via ExtINT and which via the BIOS interrupt rout-
    > ing. In this case all the ExtINT sources plus all the BIOS defined
    > ISA pins can simultaneously route to their respective IRQs.
    >
    >
    > noautoeoi
    > If the extclk override is used this option will run the 8259 PIC in
    > normal (non auto-eoi) mode. This forces a different interrupt han-
    > dler to be used for clock interrupts, not only must it EOI the APIC
    > but it must EOI the 8259. Use this only if the default (auto-eoi
    > mode) doesn't work (it is a little less efficient than the default).
    >
    >
    > ignore_defcfg
    > Some older BIOS'es report that the operating system should supply
    > the configuration details based on one of a number of predefined (by
    > the Intel MPS 1.4) configurations. It is possible for the BIOS to
    > request a default MPS configuration and then also supply details
    > (which possibly conflict the MPS version of the configuration). The
    > default behavior is to ignore the BIOS details if it calls for an
    > MPS default configuration, however, if ignoredefcfg is specified
    > then the BIOS supplied configuration will be used instead. This
    > override has no effect unless the BIOS supplies its own configura-
    > tion and simultaneously calls for an MPS default configuration.
    >
    >
    > irqN=apic,pin[,level][,edge][,high][,low][,excl]
    > This manually routes a given interrupt source (as described by apic
    > and pin ) to a given IRQ. The source must on an I/O APIC (single in-
    > terrupts cannot be delivered via CPU local APIC pins).
    >
    > The level option indicates the pin should be programmed (and
    > blocked) as a level triggered source (ie: PCI). The edge option
    > forces edge trigger mode to be used on the interrupt pin. Edge or
    > level mode is normally automatically selected based on the source of
    > the interrupt. The high option forces triggering based on an active
    > high signal. The low option forces triggering based on an active low
    > signal. Normally the polarity is automatically selected based on the
    > source of the interrupt.
    >
    > The excl flag indicates that no other interrupt sources may share
    > this IRQ (an error is generated if an other override specifies this
    > IRQ as a target. BIOS supplied routings are considered 'soft' for
    > this purpose, if any are mapped to an exclusive use IRQ they are in-
    > stead redirected to a handler that simply counts them. An example of
    > this case is one where an exclusive route is assigned from a PCI in-
    > terrupt source and yet the BIOS still defines an ISA interrupt
    > source for the same IRQ; in this case the isa IRQ will be redirected
    > to the stray interrupt catcher.
    >
    >
    > irqN=ext
    > This indicates that the named IRQ is to be handled via the 8259 PICs
    > (AT compatible mode) on an ExtINT pin (either connected directly to
    > a CPU or connected to an I/O apic).
    >
    >
    > noext
    > Disable all ExtINT inputs.
    >
    >
    > extclk
    > This forces a special mode where the external PIC is assumed to have
    > only one active interrupt (the clock, IRQ0) and the ExtINT pin is on
    > an I/O APIC. In this mode the APIC pin is programmed as a normal
    > interrupt (instead of an ExtINT input). This implies some additional
    > work in the interrupt handler to manage the 8259 as well as the APIC
    > when an interrupt is received (which is why there is a special mode
    > and a normal irq override isn't sufficient).
    >
    > Normally a determination of the need to use this workaround is made
    > based on the identification of the chipset (the problem occurs in
    > chipsets which use the Intel 82371 PIIX3). If the device ID changes
    > in a newer version of the chip this keyword may be used as a
    > workaround until an update has been posted. The symptoms of not us-
    > ing this workaround when needed are that the clock doesn't advance
    > (running date multiple times results in the same output each time).
    >
    >
    > noextclk
    > This forces the extclk workaround to not be used.
    >
    >
    > extint=apic,pin
    > This selects a particular source for the ExtINT input (this is the
    > chaining interrupt from the AT compatible 8259 interrupt con-
    > trollers). There may only be one ExtINT source active on a system.
    > The BIOS boot data normally supplies this routing, this override may
    > be needed if multiple ExtINT sources are defined by the BIOS. Rout-
    > ing ExtINT to the non-boot processor may cause the system to hang
    > before the target processor is started (or if the target processor
    > is stopped).
    >
    >
    > extdest=cpu
    > If the ExtINT source is on an I/O APIC this determines which CPU the
    > 8259 interrupts will be routed to. Interrupts delivered via the Ex-
    > tINT mechanism can only be routed to one CPU (there is no mode to
    > automatically route them to the best processor as there is with APIC
    > interrupts). Routing interrupts to a processor other than the boot
    > processor may cause the system to hang before the target processor
    > is started (or if it is stopped).
    >
    >
    > nmi=apic,pin
    > This sets up the listed interrupt source as an NMI input (apic may
    > be a CPU or an I/O apic). Unless 'nmidest' is specified the NMI is
    > programmed in broadcast mode. If not given NMI routing is determined
    > by BIOS info.
    >
    >
    > nmidest=cpu
    > Sets the destination for all NMI sources, if not specified the des-
    > tination is the broadcast address (all CPUs). This only has meaning
    > on I/O APIC sources that receive NMIs (the destination is always the
    > local CPU for CPU LINTn connections). There is no shorthand to
    > specify that NMI is wired to the same pin on each CPU, use multiple
    > nmi overrides.
    >
    >
    >
    > nonmi
    > Do not route any NMI sources.
    >
    >
    > smi=apic,pin
    > This sets up the listed interrupt source as a system management
    > (SMI) input (apic may be a CPU or an I/O apic). Unless 'smidest' is
    > specified the SMI is programmed in broadcast mode. If not given SMI
    > routing is determined by BIOS info.
    >
    >
    > smidest=cpu
    > Sets the destination for all SMI sources, if not specified the des-
    > tination is the broadcast address (all CPUs). This only has meaning
    > on I/O APIC sources that receive SMIs (the destination is always the
    > local CPU for CPU LINTn connections). There is no shorthand to
    > specify that SMI is wired to the same pin on each CPU, multiple smi
    > overrides.
    >
    >
    > nosmi
    > Do not route any SMI sources.
    >
    >
    > unk=apic,pin
    > Routes the interrupt source given by apic and pin to an unknown in-
    > terrupt handler (this will keep count of any interrupts received on
    > the pin and print a message). This is valid only for I/O APIC based
    > interrupts.
    >
    >
    > apicN=physaddr
    > Indicates than an I/O APIC with ID N exists at the physical address
    > physaddr.
    >
    >
    > apicN=down
    > Indicates that I/O APIC N is not available (even if the BIOS says it
    > is).
    >
    >
    > cpuN=up|down
    > Indicate that a given CPU (APIC ID) exists or does not exist. This
    > overrides any data supplied by the BIOS.
    >
    >
    >
    >FILES
    > /dev/cpu special file used to access MP kernel functions
    >
    > /etc/mp.config default file to read override information from
    >
    >ENVIRONMENT VARIABLES
    > MPINFO If set, overrides the default configuration file path (
    > /etc/mp.config ). Overridden by the -o command line option.
    >
    >SEE ALSO
    > cpu(4)
    >
    >BUGS
    > The mechanisms used to override various aspects of the interrupt routing
    > algorithm are flexible but much too complex.
    >
    >HISTORY
    > The cpu first appeared in BSD/OS 4.0.
    >
    >


    Furhter wihtou an mp.config file,

    The message

    PCI route err: bus=1 irq=11(0x8) -> apic 0x8 ping 0x12: IRQ0 (PCI source) already routed to that pin.

    Any suggestions?
    --
    Member - Liberal International
    This is doctor@nl2k.ab.ca Ici doctor@nl2k.ab.ca
    God Queen and country! Beware Anti-Christ rising!
    PAtriots! MAke your declaration of loyalty!

+ Reply to Thread