1
0
Files
irix-657m-src/irix/kern/master.d/system.gen
2022-09-29 17:59:04 +03:00

2012 lines
54 KiB
Plaintext

**************************************************************************
* *
* Copyright (C) 1986-1996 Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************
*
* This file is used to control the configuration of the operating system.
* Its is read by the lboot(1) command which builds the /unix file. The
* syntax of this file is described in system(4). For more information on
* system configuration, see autoconfig(1), lboot(1), system(4), master(4),
* and systune(1).
*
* $Revision: 1.788 $
*
#if defined(IP20) || defined(IP22) || defined(IP26) || defined(IP28) || defined(IP30) || defined(IP32) || defined(IPMHSIM) || defined(SN0) || defined(SN1)
#undef VMEBUS
#else
#define VMEBUS
#endif
#if defined(IP22) || defined(IP26) || defined(IP28)
#define EISABUS
#endif
#if defined(IP20) || defined(IP22) || defined(IP26) || defined(IP28)
#define GIOBUS
#endif
#if defined(IP19) || defined(IP21) || defined(IP25)
#define EV_EPC
#endif
#if defined(IP30) || defined(SN0) || defined(IP32) || defined (SN1)
#define PCIBUS
#endif
#if defined(IP30) || defined(SN0) || defined (SN1)
#define XTALKBUS
#endif
#if defined(IP30)
#define NEWGIOBUS
#endif
#ifdef VMEBUS
*
* VME Address, Interrupt Level and VME Vectors for SGI IRIS-4D Systems
*==========================================================================
*
* ADDRESS SPACE
* 1. All IPn generate ONLY data accesses to
* the VME bus. Thus code access privilege is superfluous for all
* envisioned systems. Both can generate both non-privileged and
* supervisor-only cycles.
* 2. IP20, IP22, IP26, IP28 and IP30 do not support VME space.
*
* Privilege codes:
* np/s non-privileged/supervisor access
* c/d code/data access
*
* Access sizes:
* b/w/l byte/word/long access
*
* A16 space:
*
* VMUX has 16-bit registers and decodes a 128-byte address space:
* vmux 0 0011 1000 0xxx xxx0 s/np, d, w 3800-387F
*
* Other 3rd-party Peripheral boards use the third quadrant of A16:
* 10xx xxxx xxxx xxxx
* XX GSE
* gse 1001 0000 0010 aaaa np, ?, ?? 9020-903F
* IKON Hardcopy uses 16 bytes of A16
* ikon 1001 0010 0000 aaaa s, ?, ?? 9200-921F
* if_ipg2 1010 110a aaaa aaaa AC00-
* if_ipg3 1010 111a aaaa aaaa -AFFF
* 2nd pair of FDDIXPress FDDI needs 512/board
* if_ipg0 1011 001a aaaa aaaa B200-
* if_ipg1 1011 010a aaaa aaaa -B5FF
*
* A16 Space Reserved for Customer Boards:
* 011x xxxx xxxx xxxx s/np 6000-7FFF
* 11xx xxxx xxxx xxxx s/np C000-FFFF
*
* A24 space:
*
* A24 controllers must DMA to kernel buffers visible in this region
* and copy the data to arbitrary RAM locations.
*
* In IP19, bottom 8MB of A24 space, (both privileged and non-privileged)
* is reserved to map kernel buffers to IO address space for doing DMA.
* Drivers should call dma mapping routines to get the IO address to be
* handed to controller.
* This range is also used by VME bus diagnostic routines in prom.
*
* IPn RAM 0aaa aaaa aaaa aaaa aaaa aaaa s/np, c/d, b/w/l
*
* The top 8MB of privileged A24 space is allocated to 3rd party boards:
* CMC ENP-10 Ethernet (Obsolete)
* if_enp3 1101 100a aaaa aaaa aaaa aaaa s
* if_enp2 1101 101a aaaa aaaa aaaa aaaa s
* if_enp1 1101 110a aaaa aaaa aaaa aaaa s
* if_enp0 1101 111a aaaa aaaa aaaa aaaa s
* Central Data SIO
* cdsio 1111 0000 aaaa aaaa aaaa aaaa s
* cdsio 1111 0001 aaaa aaaa aaaa aaaa s
* cdsio 1111 0010 aaaa aaaa aaaa aaaa s
* cdsio 1111 0011 aaaa aaaa aaaa aaaa s
*
* A24 Space Reserved for Customer Boards:
* 1000 xxxx xxxx xxxx xxxx xxxx s
* 1001 xxxx xxxx xxxx xxxx xxxx s
* 1100 xxxx xxxx xxxx xxxx xxxx s
* (bottom 8Mb + 172kb reserved by SGI in a24 np)
* 1xxx xxxx xxxx xxxx xxxx xxxx np
*
* A32 space (non-privileged only):
*
* The IPn RAM occupy up to 256 Mbytes in the A32 space:
* RAM 0000 aaaa aaaa aaaa aaaa aaaa aaaa aaaa np, c/d, b/w/l
*
* All SGI 4D systems have at least 64MB reserved for controllers to use
* for their large, on-board buffers, starting at 0x18000000. The bottom
* half is used for SGI-supported boards, the top half reserved for
* customer boards.
* See additional comments below for information about systems with two VME buses.
*
* In IP19, top 2GB of A32 space, (both privileged and non-privileged)
* is reserved to map kernel buffers to IO address space for doing DMA.
* Drivers should call dma mapping routines to get the IO address to be
* handed to controller.
* This range is also used by VME bus diagnostic routines in prom.
*
* A32 Space Reserved for SGI Boards
* 0001 00xx xxxx xxxx xxxx xxxx xxxx xxxx np
* 0001 100x xxxx xxxx xxxx xxxx xxxx xxxx np
*
* CMC FXP-130 use 1 Mbytes in the A32 space:
* if_fxp3 0001 1001 1000 00aa aaaa aaaa aaaa aaaa np, d, b/w/l
* if_fxp2 0001 1001 1000 01aa aaaa aaaa aaaa aaaa np, d, b/w/l
* if_fxp1 0001 1001 1000 10aa aaaa aaaa aaaa aaaa np, d, b/w/l
* if_fxp0 0001 1001 1000 11aa aaaa aaaa aaaa aaaa np, d, b/w/l
*
* A32 Space Reserved for Customer Boards:
* 0001 01xx xxxx xxxx xxxx xxxx xxxx xxxx np
* 0001 101x xxxx xxxx xxxx xxxx xxxx xxxx np
* 001x xxxx xxxx xxxx xxxx xxxx xxxx xxxx s ('IP19' only)
* 001x xxxx xxxx xxxx xxxx xxxx xxxx xxxx np ('IP19' only)
*
********************************************************
********************************************************
*
* INTERRUPT LEVELS AND VECTORS
* The VME interrupt levels are assigned as follows (IRQ1 is the lowest
* priority; IRQ7 is the highest priority) IRQ vectors are no longer re
* reserved:
* IRQ4 ikc
* IRQ5 cdsio
* IRQ4 if_fxp
* IRQ4 if_enp (Obsolete)
*
#endif /* VME */
#if defined(GIOBUS)
*==========================================================================
* GIO bus addresses
*
* The Indigo and Indy have two GIO bus connectors. Each GIO bus device
* identifies itself to the system by answering a long read with an "ID" value.
* IDs are either 8 or 32 bits long. IDs less than 128 are 8 bits long,
* with the most significant 24 bits read from the slot undefined.
*
* 32-bit:
* Slot GFX address range is physical 0xbf000000 - 0xbf3fffff
* Slot 0 address range is physical 0xbf400000 - 0xbf5fffff
* Slot 1 address range is physical 0xbf600000 - 0xbf7fffff
*
* 64-bit:
* Slot GFX address range is physical 0x900000001f000000 - 0x900000001f3fffff
* Slot 0 address range is physical 0x900000001f400000 - 0x900000001f5fffff
* Slot 1 address range is physical 0x900000001f600000 - 0x900000001f7fffff
*
* Indigo2 (all models) have three physical connectors, but only two physical
* slots, SLOTGFX and SLOT0.
*
/* probe address */
#if !defined(_MIPS3_ADDRSPACE)
#if defined(IP22)
#define HPC_SYS_ID 0xBFBD9858
#define HPC_1_ID_ADDR 0xBFB00000
#define HPC_2_ID_ADDR 0xBF980000
#define HPC_HOLLY_1_LIO 0xBFB001C3
#define HPC_HOLLY_2_LIO 0xBF9801C3
#define GIO_SLOTGFX 0xBF000000
#define HPC3_NOT_HPC1 0xBFB02000
#endif
#define GIO_SLOT0 0xBF400000
#define GIO_SLOT1 0xBF600000
#endif
#if defined(_MIPS3_ADDRSPACE)
#if defined(IP22)
#define HPC_SYS_ID 0x900000001FBD9858
#define HPC_1_ID_ADDR 0x900000001FB00000
#define HPC_2_ID_ADDR 0x900000001F980000
#define HPC_HOLLY_1_LIO 0x900000001FB001C3
#define HPC_HOLLY_2_LIO 0x900000001F9801C3
#define GIO_SLOTGFX 0x900000001F000000
#define HPC3_NOT_HPC1 0x900000001FB02000
#endif
#if defined(IP26) || defined(IP28)
#define GIO_SLOTGFX 0x900000001F000000
#define GIO_SLOT0 0x900000001F400000
#else
#define GIO_SLOT0 0x900000001F400000
#define GIO_SLOT1 0x900000001F600000
#endif
#endif
*
* GIO bus IDs
*
* Each GIO bus device identifies itself to the system by answering a
* read with an "ID" value. IDs are either 8 or 32 bits long. IDs less
* than 128 are 8 bits long, with the most significant 24 bits read from
* the slot undefined.
*
* 32-bit IDs are currently divided into
* bits 0-6 the product ID; ranges from 0x00 to 0x7F.
* bit 7 0=GIO Product ID is 8 bits wide
* 1=GIO Product ID is 32 bits wide.
* bits 15-8 manufacturer version for the product.
* bit 16 0=GIO32 and GIO32-bis, 1=GIO64.
* bit 17 0=no ROM present
* 1=ROM present on this board AND next three words
* space define the ROM.
* bits 31-18 up to manufacturer.
* Note that this may change in future 32-bit IDs
*
* IDs above 0x50/0xd0 are of 3rd party boards.
*
* Contact the Developer Program to allocate new IDs, recently Rick McLeod.
*
* This list must match the list in major.h
*
* 8-bit IDs
* 0x01 XPI low cost FDDI
* 0x02 GTR TokenRing (no longer supported)
* 0x04 Synchronous ISDN
* 0x06 Canon Interface
* 0x08 JPEG (Double Wide)
* 0x09 JPEG (Single Wide)
* 0x0a XPI mez. FDDI device 0
* 0x0b XPI mez. FDDI device 1
* 0x0e E-Plex 8-port Ethernet
* 0x30 Lyon Lamb IVAS
* 0xb8 GIO 100BaseTX Fast Ethernet (gfe)
*
* 32-bit IDs
* 0x85 ATM board
* 0x87 16 bit SCSI Card
* 0x8c SMPTE 259M Video
* 0x8d Babblefish Compression
*
#endif /* GIOBUS */
*****************************************************************************
#if defined(EV_EPC)
*****************************************************************************
*
* VECTOR lines with bustype=EPC
* This includes the VECTOR lines for Ethernet and Serial ports on
* Challenge/Onyx systems.
*
* In Challenge/Onyx systems, the EPC controls simple low-throughput
* devices such as the ethernet and the serial ports. bustype=EPC is used
* to specify devices attached to the EPC.
*
* Devices on EPC are specified using the VECTOR lines. VECTOR lines for
* EPC is similar to that used for VME devices.
*
* VECTOR lines for EPC Ethernet/EPC serial port interface.
*
* Each VECTOR line should have
* bustype=EPC
* module=epcether for EPC Ethernet and
* module=epcserial for EPC Serial ports
* unit=? the unit number for this device (0,1,..)
* slot=? slot no of IO4 board
* ioa=? IO Adapter no of EPC
* slot=0 and ioa=0 maps to Master IO4
* and default EPC Adapter(1) on Master IO4.
*
* adapter=?? could be used in place of slot and ioa..It is
* calculated as (slot * 8)+ ioa. adapter=0 would
* map to Master IO4 and default EPC adapter (1) on
* Master IO4.
*
* intrcpu=? cpu to send interrupts to for the device. This
* option requires the cooperation of the device and
* may not be implemented for all drivers
*
* syscallcpu=? cpu to route syscalls to for the device. This
* option is silently ignored on MP drivers. This
* option should be used with caution, as a non-mp
* driver may expect its interrupts to run on the
* same cpu as its syscall entry points.
*
* probe and probsize is not supported for EPC enet and serial devices.
*
*****************************************************************************
#endif /* EV_EPC */
/* There are two kinds of cpp ifdefs in this file. First, there are
* 'mr', 'ship', 'kdebug', and 'diskless', which define which kind of
* kernel we are building. Second, there are 'IP19', 'IP30', etc.
* which define which kind of hardware will use the kernel.
*/
#ifdef diskless /* tell customers what system.dl is */
*
* A "diskless" kernel, built from system.dl is what is run while building
* the kernel for a diskless machine. It should be small, excluding
* everything not needed to build the real kernel. It is a
* "mini-root kernel" for diskless machines.
#endif
/* The "mr" or mini-root kernel is the kernel shipped on the tapes.
* It should also be small.
*
* The "system.ship" file is what is shipped to customers.
*/
*
* The following statements direct lboot as it generates a kernel.
* There are 2 styles of VECTOR line. The preferred style is defined
* first and in depth in the driver writers guide and the system
* file man page. Also look within this file for examples.
*
* VECTOR directives must be before all other lboot directives which
* refer to modules, such as USE, INCLUDE, and EXCLUDE.
*
* VECTOR lines must occur in the opposite order that the devices
* should be probed. Do not change the order of the VECTOR
* lines in this file, unless you understand the implications.
*
* VECTOR: bustype module adapter [ipl [vector]] [ctlr] iospace iospace2
* iospace3 probe_space exprobe_space
*
* bustype: bus the device sits on.
* module: boot module
* adapter: identifies which bus of type bustype
* ipl: VME interrupt priority level
* ctlr: identifying number for driver
* iospace: base address of card
* iospace2,3: additional addresses passed to driver edtinit
* probe_space: address and size to be read to determine existence
* of card (not specified)
* exprobe_space: extended probe which allows for reading and value
* checking and writing of values as part of the probe.
*
* The old style VECTOR line is defined as:
*
* VECTOR: module [intr] [vector ipl unit] [base] [probe [probe_size]]
* [base2] [base3]
*
* module: boot module
* intr: interrupt function (default: module_prefix|"intr")
* vector: vme interrupt vector
* ipl: (vme or local IRQx) interrupt priority level
* do not specify it unless it is needed
* base: base address of card
* probe: address read to determine existence of card
* (no probe address implies existence)
* probe_size: size of probe (default 4 bytes)
* base2, base3: additional addresses passed to driver edtinit
* routine via edt structure
*
#if defined(VMEBUS)
*==========================================================================
*
* System with multiple VME busses can reach higher levels of performance
* when certain boards are spread out among the available busses. In
* the past, the method for
* specifying which VME bus a device was connect to required the use of
* special VMEPREFIXs which would be prepended to the boards VME bus
* address. Now, it is a simpler matter of just determining the VME bus
* number that the device is on and changing the adapter=0 field in the
* VECTOR line to the appropriate value.
*
* On an IP19, the VME bus adapter number specified encodes the IO4 Ebus
* slot and the adapter position upon the IO4 to which the VME bus is
* connected. There are only 4 adapter positions on the IO4 which can
* be used for VME. These are positions 2, 3, 5 and 6. The prom command
* 'hinv -v -b' can be used to determine both the IO4 Ebus slot number
* and the IO4 adapter position of the VME bus adapter. The IO4 adapter
* positions 2, 3, 5 and 6 are translated into VME positions 0, 1, 2 and 3.
* The VME bus adapter number used in the VECTOR line is then computed as:
*
* VME adap # = IO4 Ebus Slot * 4 + VME position.
*
*
#endif
*****************************************************************************
/* Do not put extra TABs here, to keep system.ship readable.
*/
#if defined(noprobe)
NOPROBE: 1
#define pr(addr,sz)
#define ex_pr(x)
#else
NOPROBE: 0
#define pr(addr,sz)probe=addr probe_size=sz
#define ex_pr(x)exprobe=x
#endif
*
*
* lboot/system-file version
VERSION: 3
/* kVECTOR should be used for those devices that should not be normally
* included in debugging kernels. Those who want to use the devices
* must remove a comment character in the system file.
* kUSE modules do not go into debugging kernels so as to keep the size
* under control. These are mostly those modules which are not in
* common use.
*/
#if defined(kdebug)
#define kVECTOR *VECTOR
#define kUSE EXCLUDE
#else
#define kVECTOR VECTOR
#define kUSE USE
#endif
/* Remove non-global symbols for better disk space usage
* in the miniroot, where we have have 5 kernels. This saves over a
* Mbyte in the miniroot. Leave them in other kernels because
* dbx will not work if -x is used.
*/
#if defined(mr)
#define LSTRIP -x
#else
#define LSTRIP
#endif
/* For the miniroot, force all modules to be linked into the
* kernel, whether they are normally loadable or not, since we
* do not have /var/sysgen/boot objects in the miniroot to load.
*/
#if defined(mr)
LINKMODULES:1
#endif
/* mVECTOR should be used for devices drivers which should not be include
* in debugging or mini-root kernels.
*/
#if defined(mr) || defined(diskless)
#define mVECTOR *VECTOR
#else
#define mVECTOR kVECTOR
#endif
/* mrVECTOR should be used for devices which should not be put in mini-root
* but should go in debugging kernels.
*/
#if defined(mr) || defined(diskless)
#define mrVECTOR *VECTOR
#else
#define mrVECTOR VECTOR
#endif
/* sVECTOR should be used for devices which are unlikely
* to be used in a single, small-slot VME (6U) machine, but should
* appear in all other kernels.
* skVECTOR is like sVECTOR, but excludes it from debgging kernels
*/
#if defined(IP20) || defined(IP22) || defined(IP26) || defined(IP28) || defined(IP32) || defined(IPMHSIM)
#define sVECTOR *VECTOR
#define skVECTOR *VECTOR
#else
#define sVECTOR VECTOR
#define skVECTOR kVECTOR
#endif
/* smVECTOR should be used for devices which should not be put in mini-root
* or debugging kernels and which are unlikely to be used in small
* machines.
*/
#if defined(IP20) || defined(IP22) || defined(IP26) || defined(IP28) || defined(IP32) || defined(IPMHSIM) || defined(SABLE)
#define smVECTOR *VECTOR
#else
#define smVECTOR mVECTOR
#endif
/* mrUSE should be used for modules which should not be put in mini-root
* kernels but should go in debugging kernels.
* mrkUSE modules do not go in either the miniroot or debugging kernels
* as determined by the kUSE rule.
*/
#if defined(mr)
#define mrUSE EXCLUDE
#define mrkUSE EXCLUDE
#else
#define mrUSE USE
#define mrkUSE kUSE
#endif
/* CC sync register used by power fortran. */
#if EVEREST && !LARGE_CPU_COUNT
mrUSE: ccsync
#endif /* EVEREST */
#ifdef VMEBUS
#ifdef EVEREST
#if !defined(mr)
USE: usrdma
#endif
#endif /* EVEREST */
#ifdef ULI
/* Sample config line for vme user level interrupt support.
* VECTOR: bustype=VME module=vmeuli ipl=<ipl> adapter=<adap> vector=<vec>
*
* <ipl> is the level at which the vme device will interrupt.
* <adap> is the adaptor number that the device is attached to.
* The optional <vec> argument is used to reserve a hardcoded vector
* value. If the device has a programmable vector number, this value
* may be omitted, and a vector may be assigned dynamically by the system.
* see uli(3) for mode info
*/
kVECTOR: bustype=VME module=vmeuli ipl=6 adapter=0
#endif
*
* "6-port" (really 8-port) serial controller
kVECTOR: bustype=VME module=cdsio ipl=5 ctlr=0 adapter=0 iospace=(A24S,0xF00000,0x10000) probe_space=(A24S,0xF0FFFF,1)
skVECTOR: bustype=VME module=cdsio ipl=5 ctlr=1 adapter=0 iospace=(A24S,0xF10000,0x10000) probe_space=(A24S,0xF1FFFF,1)
skVECTOR: bustype=VME module=cdsio ipl=5 ctlr=2 adapter=0 iospace=(A24S,0xF20000,0x10000) probe_space=(A24S,0xF2FFFF,1)
skVECTOR: bustype=VME module=cdsio ipl=5 ctlr=3 adapter=0 iospace=(A24S,0xF30000,0x10000) probe_space=(A24S,0xF3FFFF,1)
#endif /* VMEBUS */
*
*
* Network Interfaces
*
* Primary interface is determined by network script via "primary"
* flag for "ifconfig" regardless of the order in lboot drv list.
*
#if EVEREST && !SABLE
VECTOR: bustype=LOCAL module=if_ee
#endif
#if (SN && !defined(SABLE)) || defined(IP30)
USE: if_ef
USE: if_eg
#endif
#if (SN && !defined(SABLE)) || defined(IP30) || defined(IP32)
*
* RNS PCI FDDI board
*
VECTOR: module=if_rns probe_path="/hw/.id/pci/11122200"
#endif
#if EVEREST && !SABLE
*
*Vector lines for EPC Ethernet and Serial ports on Challenge/Onyx systems.
*
VECTOR: bustype=EPC module=epcether unit=0 slot=0 ioa=0
VECTOR: bustype=EPC module=epcserial unit=0 slot=0 ioa=0
VECTOR: bustype=EPC module=epcserial unit=1 slot=9
VECTOR: bustype=EPC module=epcserial unit=2 slot=7
*
*Modify following lines with to add additional Ethernet/serial adapters.
*
*VECTOR: bustype=EPC module=epcether unit=1 slot=? ioa=1
*VECTOR: bustype=EPC module=epcether unit=2 slot=? ioa=1
*VECTOR: bustype=EPC module=epcether unit=3 slot=? ioa=1
*VECTOR: bustype=EPC module=epcserial unit=3 slot=? ioa=1
*
*
#endif
#ifdef VMEBUS
#if !defined(SN)
*
* EFAST vertor line setup.
#define FXP(v,u,a,p) bustype=VME module=if_fxp ipl=4 adapter=v ctlr=u iospace=(A32S,a,0x40000) probe_space=(A32S,p,2)
smVECTOR: FXP(0,3,0x19800000,0x19801000)
smVECTOR: FXP(0,2,0x19840000,0x19841000)
VECTOR: FXP(0,1,0x19880000,0x19881000)
VECTOR: FXP(0,0,0x198c0000,0x198c1000)
#undef FXP
#endif /* !SN */
#if !defined(SN)
*
* FDDIXPress FDDI
#define IPG(u,a,p) bustype=VME ipl=4 adapter=0 ctlr=u iospace=(A16S,a,512) exprobe_space=(r,A16S,p,2,0xfdd1,0xffff)
smVECTOR: module=if_ipg IPG(3,0xb400,0xb402)
smVECTOR: module=if_ipg IPG(2,0xb200,0xb202)
sVECTOR: module=if_ipg IPG(1,0xae00,0xae02)
VECTOR: module=if_ipg IPG(0,0xac00,0xac02)
#undef IPG
#endif /* !SN */
#endif /* VMEBUS */
*
* Madge Tokenring driver
#if 0
* EISA version on Indigo2
#endif
* PCI version on Octane, O2 and Origin
#if 0
#if defined(IP22) || defined(IP26) || defined(IP28)
* VECTOR: bustype=EISA module=if_mtr ctlr=1 iospace=(EISAIO,0x1000,0x1000) exprobe_space=(r,EISAIO, 0x1c80,4,0x02008734,0xffffffff)
* VECTOR: bustype=EISA module=if_mtr ctlr=2 iospace=(EISAIO,0x2000,0x1000) exprobe_space=(r,EISAIO, 0x2c80,4,0x02008734,0xffffffff)
* VECTOR: bustype=EISA module=if_mtr ctlr=3 iospace=(EISAIO,0x3000,0x1000) exprobe_space=(r,EISAIO, 0x3c80,4,0x02008734,0xffffffff)
* VECTOR: bustype=EISA module=if_mtr ctlr=4 iospace=(EISAIO,0x4000,0x1000) exprobe_space=(r,EISAIO, 0x4c80,4,0x02008734,0xffffffff)
#endif /* IP22 || IP26 || IP28 */
#endif
#if defined(IP30) || defined(IP32) || defined(SN0)
VECTOR: module=if_ptr probe_path="/hw/.id/pci/10B6000[2,4]"
#endif /* IP30 || IP32 || SN0 */
*
* XPI FDDI board
*
#if defined(IP20)
VECTOR: module=if_xpi vector=0x0 ctlr=1 base=GIO_SLOT1 ex_pr((r,GIO_SLOT1,4,1,0xff))
VECTOR: module=if_xpi vector=0x0 ctlr=0 base=GIO_SLOT0 ex_pr((r,GIO_SLOT0,4,1,0xff))
#endif /* IP20 */
#if defined(IP22) || defined(IP26) || defined(IP28)
VECTOR: module=if_xpi vector=0x0 ctlr=2 base=GIO_SLOTGFX ex_pr((r,GIO_SLOTGFX,4,1,0xff))
VECTOR: module=if_xpi vector=0x0 ctlr=0 base=GIO_SLOT0 ex_pr((r,GIO_SLOT0,4,1,0xff))
#endif /* IP22 || IP26 || IP28 */
#if defined(IP22)
VECTOR: module=if_xpi vector=0x0 ctlr=1 base=GIO_SLOT1 ex_pr((r,GIO_SLOT1,4,1,0xff))
#endif /* IP22 */
#ifdef EVEREST
VECTOR: bustype=DANG module=if_xpi adapter=* exprobe_space=(r,DANG,0,4,0x0a,0xff)
*
* E-Plex 8-port Ethernet board
*
VECTOR: bustype=DANG module=if_ep adapter=* exprobe_space=(r,DANG,0,4,0x0e,0xff)
#endif /* EVEREST */
#if IP22 && !defined(_MIPS3_ADDRSPACE)
*
* GIO slot Ethernet cards in INDY/HPC3 machines
*
VECTOR: module=if_eg2 vector=0x0 ctlr=1 base=HPC_1_ID_ADDR ex_pr(((rn,HPC_SYS_ID,4,0x01,0x01),(rn,HPC_HOLLY_1_LIO,1,0x01,0xff)))
VECTOR: module=if_eg2 vector=0x0 ctlr=2 base=HPC_2_ID_ADDR ex_pr(((rn,HPC_SYS_ID,4,0x01,0x01),(rn,HPC_HOLLY_2_LIO,1,0x01,0xff)))
*
* GFE GIO Fast Ethernet 100BaseTX
*
VECTOR: module=if_gfe vector=0x0 ctlr=0 base=0xBF400000 ex_pr((r,0xBF400000,4,0xb8,0xff))
VECTOR: module=if_gfe vector=0x0 ctlr=1 base=0xBF600000 ex_pr((r,0xBF600000,4,0xb8,0xff))
#endif /* IP22 */
#if defined(IP19) || defined(IP21) || defined(IP25)
* VME Fast Ethernet (if_vfe) 100BT card
*VECTOR: bustype=VME module=if_vfe ipl=4 adapter=0 ctlr=3 iospace=(A16NP,0x9000,0x1000) iospace2=(A32NP,0x19800000,0x100000) probe_space=(A16NP,0x9000,4)
*VECTOR: bustype=VME module=if_vfe ipl=4 adapter=0 ctlr=2 iospace=(A16NP,0x8000,0x1000) iospace2=(A32NP,0x19700000,0x100000) probe_space=(A16NP,0x8000,4)
VECTOR: bustype=VME module=if_vfe ipl=4 adapter=0 ctlr=1 iospace=(A16NP,0x7000,0x1000) iospace2=(A32NP,0x19600000,0x100000) probe_space=(A16NP,0x7000,4)
VECTOR: bustype=VME module=if_vfe ipl=4 adapter=0 ctlr=0 iospace=(A16NP,0x6000,0x1000) iospace2=(A32NP,0x19500000,0x100000) probe_space=(A16NP,0x6000,4)
#endif /* IP19/IP21/IP25 */
#if defined(IP20) || defined(IP22) || defined(IP26) || defined(IP28)
*
* Integral Ethernet interface
*
VECTOR: module=if_ec2
#endif /* IP20 || IP22 || IP26 || IP28 */
#if defined(IP32) || defined(IPMHSIM)
*
* Motherboard Ethernet interface on Moosehead
*
VECTOR: module=if_me
*
* PCI slot Ethernet cards on Moosehead
*
VECTOR: module=if_ecf probe_path="/hw/.id/pci/104C0500"
#endif /* IP32 || IPMHSIM */
#if defined(IP20)
*
* Parallel Port
*
VECTOR: module=hpcplp
#endif
#if defined(IP22) || defined(IP26) || defined(IP28)
*
* Parallel Port
*
VECTOR: module=hpc3plp
#endif
#if defined(IP32) || defined(IPMHSIM)
*
* Parallel Port
*
VECTOR: module=ecplp
#endif /* IP32 || IPMHSIM */
#if defined(IP27) || defined (IP30) && !defined(SABLE)
*
* parallel port
*
VECTOR: module=ecpplp
#endif
#if defined(EVEREST) && !defined(SABLE)
*
* Parallel Port - we want this in miniroot kernels so that customers
* can print their on-line release notes.
*
VECTOR: module=epcplp
*
* External interrupts
*
#if !defined(mr)
VECTOR: module=epcei
#endif
*
* System Controller Driver
*
VECTOR: module=sysctlr
*
*
* Flash prom driver
*
VECTOR: module=flash
#endif /* EVEREST && !SABLE */
#if defined(IP30)
*
* Flash prom driver for Octane systems.
*
USE: sflash
#endif /* IP30 */
/*
* We cannot probe for this adapter since its absence will not cause a
* bus error on all machines.
* Only one edt table is generated regardless of the number of adapters.
* One call handles all of them. Those present are probed and counted
* by scsiunit_init(), which is called from the machine specific
* startup code.
*
*/
*
* SCSI host adapter driver
*
#if defined(EVEREST)
#if defined(SABLE)
EXCLUDE: wd93, wd95
INCLUDE: pci
VECTOR: bustype=GIO module=pci vector=0x0 unit=0 base=0x9200000080000000
#else
USE: wd95
EXCLUDE: wd93
VECTOR: module=wd95 unit=0 base=0
VECTOR: module=scip unit=0 base=0
*VECTOR: module=fcadp unit=0 base=0
#ifdef GIO2PCI
INCLUDE: pci
VECTOR: module=ql
VECTOR: bustype=GIO module=pci vector=0x0 unit=0
#endif
#endif /* SABLE */
#elif defined(IP22)
VECTOR: module=wd95 vector=0x0 ctlr=0 base=0xBFB00000 ex_pr(((rn,HPC_SYS_ID,4,0x01,0x01),(r,HPC3_NOT_HPC1,4,0,0)))
#ifdef GIO2PCI
/*
* Only 1 vector line is needed. pci_startup (PCI Infrastructure) will go look
* at both config slots.
*/
VECTOR: module=ql
INCLUDE: pci
#if defined(_MIPS3_ADDRSPACE)
VECTOR: bustype=GIO module=pci vector=0x0 unit=0 base=0x900000001F400000
#else
VECTOR: bustype=GIO module=pci vector=0x0 unit=0 base=0xBF400000
#endif
#endif /* GIO2PCI */
#ifdef ADAPTEC_PCI_SCSI
VECTOR: module=adp78 unit=0
USE: adphim
#endif /* ADAPTEC_PCI_SCSI */
#elif defined(IP27) || defined (IP33)
#if defined(SABLE)
EXCLUDE: wd93, wd95, ql
#else /* Normal IP27, IP33 */
EXCLUDE: wd93 wd95
#endif /* !SABLE */
#elif defined(IP32) && !defined(IP32SIM)
VECTOR: module=adp78 unit=0
USE: adphim
#ifdef ADP_STATS
USE: scsi_stats
#endif
#ifdef VDM
USE: vdm
#endif
EXCLUDE: wd93, wd95
#else
EXCLUDE: wd95
#endif /* EVEREST elif IP30 elif IP22 elif IP27 elif IP32 elif IP33*/
#if defined(IP32)
VECTOR: module=qlfc probe_path="/hw/.id/pci/10772200"
#endif
#if defined(IP30) || defined(SN)
#if defined(mr) || defined(kdebug)
VECTOR: module=qlfc
#else
VECTOR: module=qlfc probe_path="/hw/.id/pci/10772[12]00"
#endif
VECTOR: module=fcadp
VECTOR: module=ql
* Q-logic SCSI controller custom configuration
* Note: All variables must be given in decimal.
*
* These DEVICE_ADMIN directives are used to custom configure
* q-logic scsi (not fibre channel) controllers.
*
* These directives take the form:
* DEVICE_ADMIN: hw_graph_path variable_name=variable_value
*
* The following Q-logic driver variables can be set with the
* DEVICE_ADMIN directive. NOTE, some variables can be applied to all
* targets, or to only a particular target, while others apply to
* only to the controller. In such cases, the hw_graph_path supplied
* must be that of a target and of a controller respectively.
*
* e.g. controller path
* /hw/node/xtalk/9/pci/0/scsi_ctlr/0
* or
* /hw/module/1/slot/io5/mscsi/pci/3/scsi_ctlr/0
*
* e.g. target path
* /hw/node/xtalk/9/pci/0/scsi_ctlr/0/target/3
* or
* /hw/module/1/slot/io5/mscsi/pci/3/scsi_ctlr/0/target/3
*
* applicable to controller applicable to target
* ------------------------- ---------------------
* ql_hostid ql_disconnect_allowed
* ql_selection_timeout ql_ctq_enable
* ql_disconnect_allowed ql_sync_enable
* ql_ctq_enable ql_wide_enable
* ql_sync_enable ql_sync_period
* ql_wide_enable ql_force_sync_negotiation
* ql_sync_period
* ql_sync_offset
*
*
*
* ql_disconnect_allowed: default value=1
* by default disconnects are enabled.
* set ql_disconnect_allowed = 0 to disable disconnects
* for the controller
*
* ql_ctq_enable: default value=1
* by default command tag queuing is enabled.
* set ql_ctq_enable=0 to disable command tag queuing for
* the controller
*
* ql_sync_enable: default value=1
* by default command synchronous operation is enabled
* set ql_sync_enable=0 to disable synchronous operation
* for the controller
*
* ql_sync_period: default value=12
* the following are valid ql_sync_period values
*
* value period
* 12 50ns - ULTRA SCSI
* 25 100ns - FAST
* 50 200ns - SLOW
* 100 400ns
*
* ql_sync_offset: default value=8
* valid values for the synchronous offset or 0 -> 12
* 8 has been chosen for optimal performance
*
* ql_wide_enable: default value=1
* reset ql_wide_enable to zero to disable wide(16bit) operation
* for the controller
*
* ql_force_sync_negotiation: default value=0
* some SCSI-1 devices don't set bit 4 byte 7 (sync capable) and
* consequently the QL driver will not attempt sync
* negotiation. This variable may be used to force sync negotiation
* in such cases.
*
#if defined(SN0)
* note that on Origin 200 machines the default value is zero for
* /hw/module/1/slot/n1/node/xtalk/8/pci/1/scsi_ctlr/0 and cannot
* be set to one.
#endif
*
* ql_hostid: default value=0
* For maximum throughput, set the host adapter id to 7.
* For maximum fairness, set it to 0.
* SCSI devices that have bus id numbers lower than the
* host adapter, and have two other devices with higher
* numbers on the bus, may not get the SCSI bus for
* extended periods of time when the two higher numbered
* devices are busy.
*
* For example, if the host adapter id number is 5, and
* there are devices at 6 and 4, devices numbered 3 and
* lower may not get the SCSI bus when * they need it.
*
* If there is a device with the same address as the host
* adapter, nothing on that SCSI bus will work.
*
* ql_selection_timeout: default value=250
*
* Allowed values for selection timeout are
* 1 sec - 1000
* 750 mS - 750
* 500 mS - 500
* 250 mS - 250
* 100 uS - 100
* 75 uS - 75
* 50 uS - 50
* 25 uS - 25
#endif /* IP30 || SN */
#if defined(EVEREST) || defined(IP30) || defined(SN)
EXCLUDE: wd93
#else /* EVEREST && IP30 */
#if (!(defined(IP32) || defined(IPMHSIM)))
#if !defined(_MIPS3_ADDRSPACE)
VECTOR: module=wd93 unit=0 base=0xBFB00000
#endif
#if defined(_MIPS3_ADDRSPACE)
VECTOR: module=wd93 unit=0 base=0x900000001FB00000
#endif /* _ABI64 */
#endif /* !(IP32 || IPMHSIM) */
#endif /* EVEREST || IP30 */
*
* SCSI modules
* These cannot be probed for so must always be manually included.
* dksc - Hard Disk and CD-ROM
* tpsc - Tape
* smfd - Floppy
* ds - Generic SCSI support (devscsi)
*
#if defined(SABLE) || defined(IPMHSIM) || defined(IP32SIM)
USE: sabledsk(0)
VECTOR: module=sabledsk
#else
USE: cdl, scsi, dksc, tpsc, tpscutil, ds, scsiha
#endif /* !SABLE */
/* smfd is loadable, and suported on all machines, so always include it if
not miniroot */
#if !defined(mr)
USE: smfd
#endif
#if defined(br)
/* RAM "disk" */
USE: ram
#endif
#if !defined(diskless)
*
* XLV Logical volume pseudo-device driver core
*
USE: xlv
*
* XLV Logical volume plexing support
*
USE: xlv_plex
*
* FAILOVER Dual path HA failover support
*
USE: failover
#endif
#if defined(CKPT)
USE: cpr
#else
USE: cprstubs
#endif
#if defined(IP32)
USE: kitchenstubs
#endif
#if CELL
#if EVEREST && !MULTIKERNEL
USE: partition
USE: xpc
#endif
USE: cell
#endif
*
* File systems
* efs - Local Disk filesystem
* xfs - XFS Local filesystem
* grio - guaranteed rate I/O for xfs
* xfsrt - grio support in xfs
* dmi - data management interfaces
* xfsdmapi - XFS specific data management interfaces
* umfs - User Mode Filesystem
* nfs,snfs - Network File System
* nfs3 - Network File System version 3 client
* proc - Debug (/proc) pseudo-filesystem, see proc(4)
* uds - Unix Domain Socket, see Unix(7F)
* fifofs - Streams-based pipes and fifos
* pipefs - Old style, uni-directional pipes, see pipe(2)
* specfs - Character and block device interface
* fd - File descriptor (/dev/fd) pseudo-filesystem, see fd(4)
* namefs - Mountable streams, see fattach(3C)
* cfs - Nexus Cell File System
* cxfs - Cellular XFS V1 (uses CFS)
*
* The /dev/fd filesystem must be marked USE to allow for the execution
* of set-user-ID/set-group-ID interpreter scripts (see exec(2)).
*
INCLUDE: specfs, pipefs, proc, fifofs, hwgfs
mrUSE: fd, namefs
USE: efs, uds
#if defined(ship) || defined(kdebug) || defined(diskless) || defined(br)
USE: nfs, snfs, lockd, nfs3, svckudp
#else
EXCLUDE: nfs, snfs, lockd, nfs3, svckudp
#endif
*
* onc3 modules
*
#if defined(ship) || defined(kdebug) || defined(diskless) || defined(br)
USE: autofs, cachefs, lofs
#else
EXCLUDE: autofs, cachefs, lofs
#endif
#if !defined(diskless)
*
* Disk quota subsystem (see quotaon(1M) command)
*
mrkUSE: quotas
kUSE: xfsquotas
#else
EXCLUDE: quotas, xfsquotas
#endif
*
* CXFS-V1 subsystems require both CFS and XFS
* They should appear before XFS and CFS for proper linking
*
#if CELL && !defined(diskless)
USE: cxfs
#else
EXCLUDE: cxfs
#endif
#if CELL_ARRAY && !defined(diskless)
USE: cxfsarr
#endif
*
* XFS related subsystems
*
#if defined(diskless)
USE: xfs, grio, dmi, xfsdmapi, xfsrt, umfs
#else
#ifndef SABLE /* grio pulls in dksc which sable kernels do not use */
mrUSE: dmi xfsdmapi umfs
#if !defined(PERF_BUILD)
mrUSE: grio
mrUSE: xfsrt
#endif
#endif
*
* NOTE: xfs USE line must come *after* its 'dependents' (eg. xfsrt,dmi)
* or those dependents may not get linked in.
*
USE: xfs
#endif
*
* Note cfs USE line is the last of the file systems because this will
* cause to the be first in vfssw and so non-golden cells will have a
* chance (in dcvfs_rootinit) to do a remote mountroot.
*
#if CELL
USE: cfs
#else
EXCLUDE: cfs
#endif
*
* Hardware graph subsystem
*
USE: graph
#if EVEREST || SN || IP30
#if defined(ship) || defined(kdebug)
*
* Frame Scheduler
*
kUSE: frs
#endif
#endif
#if EVEREST
#if defined(ship) || defined(kdebug)
*
* FRU Analyzer
*
USE: fru
*
#endif
#endif
*
* libnsl (TLI) & libsocket helper modules
*
#if !defined(sesmgr_enabled)
mrkUSE: sockmod, timod, tirdwr,
#endif
*
* TPI loopback device drivers
*
#if !defined(sesmgr_enabled)
mrkUSE: ticlts, ticots, ticotsord
#endif
*
* TPI Streams device drivers for sockets networking
*
#if !defined(sesmgr_enabled)
mrkUSE: tpisocket, tpitcp, tpiudp, tpirawip, tpiicmp
#endif
*
* DLPI: Data Link Provider Interface
*
USE: xtimer, snif
USE: llc2
*
* SVR4 tty compatibility modules
*
mrUSE: ldterm, ptem
*
* Streams based pipe support
*
mrUSE: pipemod
mrUSE: connld
*
* Streams event logger (see strerr(1M))
*
USE: log
*
* Streams administrative device
*
USE: sad
*
* Internationalization Support (see kbdset(1))
*
* alp - Algorithm Pool
* kbd - Keyboard mapping and string translation
*
mrUSE: kbd, alp
*
* IP Filter (see ipfilterd(1M))
*
mrUSE: ipfilter
*
* IP Multicast routing (see mrouted(1M))
*
mrUSE: ip_mroute
*
* Serial Line IP (see slip(1M))
*
mrkUSE: if_sl
*
* Point to Point Protocol (see ppp(1M))
*
mrkUSE: if_ppp
*
* swIPe Protocol
*
kUSE: if_sw
*
* network load sharing pseudo-device driver
*
USE: if_ls
USE: if_lsp
#if !defined(diskless)
*
* Filesystem Control (see fsr(1M))
*
mrUSE: fsctl
#else
EXCLUDE: fsctl
#endif
*
* Inode Monitor (see famd(1M))
*
mrUSE: imon
****************************************************************
* The following modules implement security features that are
* part of Irix. The audit trail and access control lists are
* not installed be default. Capability must always be present.
*
* Extended attribute support
*
USE: xfs_attr_fetch
USE: eag
*
* Security Audit Trail
*
#if !defined(PERF_BUILD)
#if !defined(SN0) || !defined(CELL_IRIX)
* TEMP - disable on SN0 cells.
mrUSE: sat
#endif
#endif
*
* Capability (Privilege) Sets
*
USE: capability
*
* Access Control Lists (ACLs)
*
#if !defined(PERF_BUILD)
USE: acl
USE: acl_hwg
USE: acl_xfs
mrUSE: acl_nfs3
#endif
****************************************************************
* The following modules are installed with the Trix B1/CMW
* add-on package.
*
* Mandatory Access Control
*
#if defined(ship) || defined(mac_enabled)
mrUSE: mac
mrUSE: cap_mac_access
mrUSE: mac_nfs3
mrUSE: mac_xfs
mrUSE: mac_ipc
mrUSE: mac_specfs
mrUSE: mac_autofs
mrUSE: mac_proc
mrUSE: mac_pipe
mrUSE: mac_fifo
mrUSE: mac_fd
mrUSE: mac_efs
mrUSE: mac_hwg
#endif
*
* Network Session Manager
*
#if defined(ship) || defined(sesmgr_enabled)
mrUSE: sesmgr
mrUSE: ip_sec
#endif
****************************************************************
*
* Kernel Asyncio for Informix
*
mrkUSE: kaio
*
* Post Wait driver for Oracle
*
mrkUSE: postwait
*
* kernel listio (Oracle Performance)
*
mrkUSE: klistio
*
* ShareII Resource Management System from Softway
*
kUSE: shareII
*
* Stubs
*
USE: dnstubs, gfxstubs, prfstubs, quotasstubs, idbgstubs, nfsstubs
USE: pipefsstubs, vidstubs, ng1stubs, gr2stubs, frsstubs, griostubs
USE: efsstubs, xfsstubs, xfsquotasstubs, xlvstubs, tpisocketstubs, bpqueuestubs
USE: dmistubs, xfsdmapistubs, umfsstubs
USE: macstubs, aclstubs
USE: satstubs, sesmgrstubs
USE: xlvplexstubs
USE: failoverstubs
USE: cachefsstubs, nlmstubs, lockdstubs, mgrasstubs, crimestubs
USE: xfsrtstubs, frustubs, cachefsidbgstubs, kaiostubs, devicestubs, mgvstubs
USE: dfsstubs, postwaitstubs, klistiostubs, uncstubs
USE: shareIIstubs
USE: cxfsstubs
USE: swipestubs
USE: atmstubs
USE: lofsstubs, autofsstubs
#if CELL
USE: cxfsarrstubs
#endif
#if SN
*
* SN specific stubs
*
USE: partitionstubs
USE: xpcstubs
USE: if_clstubs
USE: numaidbgstubs
#endif
*
* Spin locks - both kernel and user level
* Kernel spinlocks used only on MultiProcessor systems
* nolocks - used on non-MP systems
* hardlocks - Default spinlock module
* dhardlocks - Spinlock module with debug code
* hardlocks_statistics - Spinlock module to be used with ksync_statistics module
* to gather extended statistics on lock usage
* (REQUIRES ksync_statistics be loaded)
*
#if defined(MP)
#if defined(kdebug) && defined(DEBUG_LOCKS)
INCLUDE: dhardlocks
#else /* !kdebug */
INCLUDE: hardlocks
#endif /* kdebug */
#else /* NOT an MP machine */
INCLUDE: nolocks
#endif
#if EVEREST || SN
* Tie a VME level to a processor by adding a line of the form
* "IPL: <level> <cpuid>".
* Interrupts from VME levels that are not specifically bound
* to a processor, interrupt from VME levels that are bound to
* non-existant or disabled processors, and all non-VME interrupts
* are assigned CPUs at boot time, using a "spray" heuristic.
* Example: In order to send all VME level 3 interrupts to CPU1, use:
* IPL: 3 1
#endif
#if EVEREST || SN || IP30
* Declare a CPU that is not suitable for "sprayed" interrupts
* (usually, because they will be used for real-time activities) using
* the NOINTR directive.
* Example: to declare that cpu 3 should not accept sprayed
* interrupts, use: "NOINTR: 3". You may NOT restrict CPU 0 from receiving
* interrupts. You can specify multiple cpus on the NOINTR line.
#endif
#if EVEREST || SN
* You CAN tie a VME interrupt to a processor that accepts no sprayed
* interrupts using the IPL directive, above.
#endif
#if EVEREST || SN || IP30
* One can also use the NOINTR device administration directive to
* disable interrupts on a particular CPU. For example, on Origin:
* DEVICE_ADMIN: /hw/module/1/slot/n3/node/cpu/a NOINTR=1
*
* One can use the INTR_TARGET device administration directive to
* direct interrupts from a device to a particular cpu in the system.
* For example, on Origin:
* DEVICE_ADMIN: /hw/module/1/slot/n3/node/xtalk/8/pci/1 INTR_TARGET=/hw/cpunum/2
* DEVICE_ADMIN: /hw/module/1/slot/n3/node/xtalk/8/pci/1 INTR_TARGET=/hw/module/1/slot/n4/node/cpu/b
#endif
#if EVEREST || SN
* One can use the INTR_SWLEVEL device administration directive to
* specify the thread priority level at which the ithread for
* handling the device interrupts is supposed to run.
* For example, on Origin:
* DEVICE_ADMIN: /hw/module/1/slot/n3/node/xtalk/8/pci/1 INTR_SWLEVEL=231
#endif
*
*
* Required kernel modules
*
* kernel - machine specific
* os - system calls, vm, etc..
* disp - Process scheduler
* numa - Numa Memory Management
* kmem - kernel memory allocation
* or kmem_debug - memory allocation with debugging
* kmem_debug is only available if eoe.sw.kdebug
* has been installed. It's usage is described
* under the kmem_do_poison tunable in mtune/kernel
* ksync - kernel synchronization onjects (mutex_lock, sv_wait, psema...)
* or ksync_metered - debug version of kernel synchronization objects
* or ksync_named - named kernel synchronization objects
* or ksync_statistics - kernel synchronization objects - collects locking statistics
* (You should use hardlocks_statistics if you use ksync_statistics)
* mem - /dev/mem, /dev/null, /dev/mmem, /dev/kmem
* zero - /dev/zero
* ipc - support for sem, shm, and msg
* sem - System V semaphores (see semop(2))
* msg - Interprocess messages (see msgop(2))
* klog - Kernel message logger (see klog(7))
* usema - User semaphores (see usema(7))
* usync - usync module
* psema - posix named semaphore module
* sharena - nanothreads
*
KERNEL: kernel
INCLUDE: numa, os, disp, mem, zero, sharena
#if defined(kdebug) && defined(DEBUG_SEMAMETER)
INCLUDE: ksync_metered
#else
INCLUDE: ksync
#endif
INCLUDE: kmem
USE: ipc, msg, sem
USE: psema, usync
USE: klog
USE: usema
*
* General I/O modules
*
* io - VME interrupt handler
* gentty - Generic tty device (/dev/tty)
* ptc - Pseudo terminals
* sduart - Serial port driver
* cn - Virtual console driver
*
INCLUDE: io, gentty, ptc, sduart, cn, stream
#if EVEREST
INCLUDE: cserialio
INCLUDE: ev_kbdms
#endif
#if IP27 || IP30 || IP33
*
* include standard serialio upper modules
*
#ifndef SABLE
INCLUDE: cserialio
USE: userialio
#endif
#endif
#if defined(IP32)
*
* Optional, lightweight serial I/O modules
* cserialio - simple raw non-STREAMS char device access
* tserialio - +/- 1ms accurate timestamped serialio
*
EXCLUDE: cserialio
INCLUDE: mace
#endif
USE: tserialio
#if IP27
INCLUDE: sio_i2c i2c elsc
#endif
#if IP27
*
* Psitech RAD1 driver
*
USE: rad1pci
#endif
*
* Keyboard/mouse driver
*
#if defined(IP22) || defined(IP26) || defined(IP28)
INCLUDE: pckm
#elif defined(IP30) || defined(IP27) || defined (IP33)
#if !defined(SABLE)
INCLUDE: ioc3_pckm
#endif
#elif defined(IP32) || defined(IP32SIM)
INCLUDE: mhpckm
#endif /* IP22 ... */
#if defined(VMEBUS) || defined(EISABUS)
*
* User mode device driver support
*
#if !defined(mr)
USE: usrbus
#endif
#endif
*
* Bus Registrations
*
#if defined(PCIBUS)
*
* PCI devices
*
#if defined(IP30) || defined(SN) && !defined (SABLE)
INCLUDE: ioc3
#if defined(SN0)
INCLUDE: ioc3ei
#endif
#endif
VECTOR: module=pciba
*
* PCI infrastructure
*
#if !defined(SN) && !defined(IP30) && !defined(IP32)
INCLUDE: pci
#endif
INCLUDE: pciio
#if defined(IP32)
INCLUDE: pcimh
USE: usrpci
#else
INCLUDE: usrpci
#endif /* IP32 */
#endif /* PCIBUS */
#if defined(NEWGIOBUS)
*
* GIO infrastructure
*
INCLUDE: gioio
#endif
*
* VMEbus service provider
*
#if SN
USE: xiovme vmeio universe usrvme ude
#else
USE: vmestubs
#endif /* SN */
#if defined(XTALKBUS)
*
* XTALK devices
*
#if !defined (SABLE)
INCLUDE: menet
INCLUDE: io6
INCLUDE: mio
INCLUDE: kitchen_sync
#endif /* SABLE */
#if defined(PCIBUS) && defined(XTALKBUS)
INCLUDE: pcibr
INCLUDE: pciiox
#endif
#if defined(NEWGIOBUS)
INCLUDE: giobr
#endif
VECTOR: module=xioba
#if defined(IP27) || defined(IP30)
*
* Tensor Processing Unit support.
*
EXCLUDE: tpu
EXCLUDE: tpuidbg
EXCLUDE: tpusim
#endif
*
* XTALK infrastructure
*
#if defined(IP30)
INCLUDE: heart
#endif
INCLUDE: xbmon
INCLUDE: xbow
INCLUDE: xswitch
INCLUDE: xtalk
#endif
#if SN0
*
* Hub special space interface driver: Specific to SN0 only.
*
USE: hubspc
USE: sn0drv
USE: fru
*
* Partition and cross partition communication subsystems.
*
EXCLUDE: partition
EXCLUDE: xpc
EXCLUDE: cl
EXCLUDE: if_cl
#endif
*
* Number-in-a-can kernel interface
*
#if defined(IP27) || defined(IP30) || defined (IP33)
INCLUDE: nic
#endif
*
* Device specifications
*
* The ROOTDEV specification can be customized with the format:
* /dev/dsk/dks?d?s?
*
#if defined(mr) || (defined(SABLE) && !defined(IP30))
/*
* In the miniroot, the real swap area starts at 57k blocks or
* 63k block (depending on machine type) the root filesystem
* in the swap partition. This number must
* match the number in the size argument to the mkfs command
* in .../buildtools/sa/Makefile (>= variable MRSIZE) and
* irix/cmd/initpkg/bcheckrc-mr.sh (xfs_growfs statement)
* irix/cmd/initpkg/brc-mr.sh (swaplo statement).
*
* Miniroot defaults:
* all - If "root" is set, things work as for IP17, otherwise it
* defaults to scsi drive 1. But "root" is not in nvram so
* it is less likely to be set. If drive 1 is not a system
* drive and root is not set, then "OSLoadPartition" is
* checked as a potential root device.
*
*/
#if defined(IP20) || defined(IP22) || defined(IP26)
SWAPDEV: /dev/swap 57000 0
#else
SWAPDEV: /dev/swap 63000 0
#endif /* defined(IP20) || defined(IP22) || defined(IP26) */
ROOTDEV: /dev/root
DUMPDEV: /dev/swap
#else
/*
* The remaining definitions are for use by the following kernel types:
* kdebug, ship, diskless
*/
ROOTDEV: /dev/root
/*
* Diskless has a different default swap and dump device
*/
#if defined(diskless)
SWAPDEV: /swap/_swap 0 0
DUMPDEV: /swap/_swap
#else
SWAPDEV: /dev/swap 0 0
DUMPDEV: /dev/swap
#endif
#endif
#if defined(IP19) || defined(IP25)
#if defined(_MIPS3_ADDRSPACE)
#if defined(MAPPED_KERNEL)
#define DBGLOADADDR -T c000000000180000
#define NRMLOADADDR -T c000000000004000
#else /* !MAPPED_KERNEL */
#define DBGLOADADDR -T a800000000180000
#define NRMLOADADDR -T a800000000004000
#endif /* !MAPPED_KERNEL */
#else
#define DBGLOADADDR -T 80100000
#define NRMLOADADDR -T 80004000
#endif
#if defined(kdebug)
#define LOADADDR DBGLOADADDR
#else
#define LOADADDR NRMLOADADDR
#endif
#endif /* IP19 || IP25 */
#if defined(SN0) || defined(SN0S)
#if defined(_COMPILER_VERSION) && (_COMPILER_VERSION>700)
#if defined(kdebug) || defined(mr)
#if defined(SN0XXL)
#define DBGLOADADDR -rdata_shared -elspec "../master.d/sn0xxl_elspec.dbg"
#else
#define DBGLOADADDR -rdata_shared -elspec "../master.d/sn0_elspec.dbg"
#endif
#define NRMLOADADDR -rdata_shared -elspec "../master.d/sn0_elspec"
#else
#if defined(SN0XXL)
#define DBGLOADADDR -rdata_shared -elspec "/var/sysgen/master.d/sn0xxl_elspec.dbg"
#else
#define DBGLOADADDR -rdata_shared -elspec "/var/sysgen/master.d/sn0_elspec.dbg"
#endif
#define NRMLOADADDR -rdata_shared -elspec "/var/sysgen/master.d/sn0_elspec"
#endif
#else /* ragnarok */
#if defined(SN0XXL)
#define DBGLOADADDR -T c000000000360000 -D c000000001c00000 -rdata_shared
#else
#define DBGLOADADDR -T c000000000300000 -D c000000001c00000 -rdata_shared
#endif
#define NRMLOADADDR -T c000000000019000 -D c000000001800000
#endif /* ragnarok */
#if defined(kdebug)
#define LOADADDR DBGLOADADDR
#else
#define LOADADDR NRMLOADADDR
#endif
#endif /* SN0 */
#if defined(IP20)
# define DBGLOADADDR -T 88062000
# if defined(kdebug)
# define LOADADDR DBGLOADADDR
# else
# define LOADADDR -T 88002000
# endif
#endif
#if defined(IP21)
#if defined(LARGE_CPU_COUNT_EVEREST)
#define DBGLOADADDR -T a800000000200000
#else
#define DBGLOADADDR -T a800000000100000
#endif
#define NRMLOADADDR -T a800000000006000
#if defined(kdebug)
#define LOADADDR DBGLOADADDR
#else
#define LOADADDR NRMLOADADDR
#endif
#endif
#if defined(IP22)
#if defined(_MIPS3_ADDRSPACE)
#define DBGLOADADDR -T a800000008078000
#define NRMLOADADDR -T a800000008002000
#else
#if REMOTEDEBUG
#define DBGLOADADDR -T 88089000
#else
#define DBGLOADADDR -T 88070000
#endif
#define NRMLOADADDR -T 88002000
#endif
# if defined(kdebug)
# define LOADADDR DBGLOADADDR
# else
# define LOADADDR NRMLOADADDR
# endif
#endif
#if defined(IP26)
#if REMOTEDEBUG
#define DBGLOADADDR -T a8000000080a0000
#else
#define DBGLOADADDR -T a800000008070000
#endif
#define NRMLOADADDR -T a800000008002000
# if defined(kdebug)
# define LOADADDR DBGLOADADDR
# else
# define LOADADDR NRMLOADADDR
# endif
#endif
#if defined(IP28)
#if REMOTEDEBUG
#define DBGLOADADDR -T a80000002009c000
#else
#define DBGLOADADDR -T a800000020080000
#endif
#define NRMLOADADDR -T a800000020003000
# if defined(kdebug)
# define LOADADDR DBGLOADADDR
# else
# define LOADADDR NRMLOADADDR
# endif
#endif
#if defined(IP30)
#if REMOTEDEBUG
#define DBGLOADADDR -T a80000002009c000
#else
#define DBGLOADADDR -T a800000020080000
#endif /* REMOTEDEBUG */
#define NRMLOADADDR -T a800000020004000
# if defined(kdebug)
# define LOADADDR DBGLOADADDR
# else
# define LOADADDR NRMLOADADDR
# endif
#endif
#if defined(IP32)
#if defined(_MIPS3_ADDRSPACE)
#define DBGLOADADDR -T a800000000078000
#define NRMLOADADDR -T a800000000002000
#else
#define DBGLOADADDR -T 80069000
#define NRMLOADADDR -T 80002000
#endif
# if defined(kdebug)
# if defined(MHSIM)
# define LOADADDR NRMLOADADDR
# else
# define LOADADDR DBGLOADADDR
# endif
# else
# define LOADADDR NRMLOADADDR
# endif
#endif
#if defined(IPMHSIM)
#if defined(_MIPS3_ADDRSPACE)
#define DBGLOADADDR -T a800000000060000
#define NRMLOADADDR -T a800000000002000
#else
#define DBGLOADADDR -T 80054000
#define NRMLOADADDR -T 80002000
#endif
# if defined(kdebug)
# define LOADADDR DBGLOADADDR
# else
# define LOADADDR NRMLOADADDR
# endif
#endif
#if defined(IP33)
/*
* #define DBGLOADADDR -T a800000000300000 -D a800000001c00000 -rdata_shared
* #define NRMLOADADDR -T a800000000019000 -D a800000001800000
*/
#define DBGLOADADDR -T a800000000300000
#define NRMLOADADDR -T a800000000019000
#if defined(kdebug)
#define LOADADDR DBGLOADADDR
#else
#define LOADADDR NRMLOADADDR
#endif
#endif /* SN0 */
/* miniroot option */
#if defined(mr) || defined(SABLE) || defined(IPMHSIM)
#define MINICCOPT -DMINIROOT
#else
#define MINICCOPT
#endif
/* semaphore metering -- on by default except for sable kernels */
#if !defined(SABLE) && !defined(NOSEMAMETER)
#define XSEMAMETER -DDEFAULTSEMAMETER=1
#else
#define XSEMAMETER -DDEFAULTSEMAMETER=0
#endif
/* Debugging options */
#define DEBCCOPT XSEMAMETER
* Kernel debugging tools (see profiler(1M) and idbg(1M))
*
#if defined(kdebug)
USE: idbg, disp_idbg, mloadidbg, bsdidbg, stridbg, asidbg, procidbg, vmidbg
USE: xfsidbg, xlvidbg
USE: pgrpidbg, sessionidbg
USE: spec_idbg
#if !defined(PERF_BUILD)
USE: grioidbg
#endif
USE: nfsidbg
#ifndef SABLE
USE: dmiidbg, umfsidbg
#endif
#if SN0
USE: klidbg, numa_idbg
INCLUDE: vme_idbg
#endif
#if CELL
USE: dp_idbg, cfsidbg, cxfsidbg
#endif
mrUSE: graphidbg, cachefsidbg
#if SN || IP30 || IP32
USE: qlidbg
USE: fcidbg
USE: qlfc_idbg
#endif
#if IP32
USE: adpidbg
#endif
#else
* for most users, only the first line below needs to be changed
* from EXCLUDE to INCLUDE when configuring the kernel debugger.
EXCLUDE: idbg, disp_idbg, mloadidbg, bsdidbg, stridbg, graphidbg, asidbg, procidbg, vmidbg, xfsidbg
EXCLUDE: xlvidbg
EXCLUDE: pgrpidbg, sessionidbg
#if SN0
EXCLUDE: numa_idbg
EXCLUDE: klidbg
EXCLUDE: vme_idbg
#endif
EXCLUDE: dmiidbg, umfsidbg, grioidbg, spec_idbg
EXCLUDE: dp_idbg, cachefsidbg
EXCLUDE: nfsidbg
#if SN || IP30 || IP32
EXCLUDE: qlidbg
EXCLUDE: fcidbg
EXCLUDE: qlfc_idbg
#endif
#if IP32
EXCLUDE: adpidbg
#endif
#endif
mrUSE: prf
*
* Compilation and load flags
#if !defined(kdebug)
* To load a kernel that can be co-resident with symmon
* (for breakpoint debugging) replace LDOPTS
* with the following. You must also install eoe.sw.kdebug
* and eoe.sw.perf, and change (at least) the first idbg line
* above from EXCLUDE to INCLUDE
*
*LDOPTS: DLDOPTS DBGLOADADDR LSTRIP
*
#endif
LDOPTS: DLDOPTS LOADADDR LSTRIP -wall
CCOPTS: DCCOPTS MINICCOPT DEBCCOPT CPUINSTDIRINC
*
#if defined(ship)
#define TOLROT /var/sysgen/root
CC: TOOLROOT=TOLROT /var/sysgen/root/usr/bin/cc
LD: TOOLROOT=TOLROT /var/sysgen/root/usr/bin/ld
#endif
#if defined(diskless)
#define TOLROT $DL_ROOT/var/sysgen/root
CC: TOOLROOT=TOLROT $DL_ROOT/var/sysgen/root/usr/bin/cc
LD: TOOLROOT=TOLROT $DL_ROOT/var/sysgen/root/usr/bin/ld
#endif
#if COMPILATION_MODEL == N32
TUNE-TAG:32
#else
TUNE-TAG:COMPILATION_MODEL
#endif
#if defined(mr)
TUNE-TAG:MINIROOT
#else
TUNE-TAG:NOT_MINIROOT
#endif
#if defined(IP27) || defined(IP25) || defined(IP19) || defined(IP30) || defined(IP32) || defined (IP33)
TUNE-TAG:NEED_LPAGES
#else
TUNE-TAG:NOT_NEED_LPAGES
#endif