xref: /csrg-svn/sys/hp300/DOC/Options (revision 65649)
163559SmckusickHere is a list of hp300 specific kernel compilation options and what they
263559Smckusickmean:
363559Smckusick
463559SmckusickHAVEVAC
563559Smckusick	Compiles in support for virtually addressed cache (VAC) found on
663559Smckusick	hp320 and 350 machines.  Should only be defined when HP320 and/or
763559Smckusick	HP350 is.
863559Smckusick
963559SmckusickHP320
1063559Smckusick	Support for old hp320 machines: 16mhz 68020, HP MMU, 16mhz 68881
1163559Smckusick	and VAC.  Compiles in support for a VAC, HP MMU, and the 98620A
1263559Smckusick	16-bit DMA channel.  Forces the definition of HAVEVAC.
1363559Smckusick
1463559SmckusickHP350
1563559Smckusick	Support for old hp350 machines: 25mhz 68020, HP MMU, 20mhz 68881
1663559Smckusick	and VAC.  Compiles in support for a VAC and the HP MMU.  Differs
1763559Smckusick	from HP320 in that it has no support for 16-bit DMA controller.
1863559Smckusick	Forces the definition of HAVEVAC.
1963559Smckusick
2063559SmckusickHP330
2163559Smckusick	Support for old hp330 (and 318/319) machines: 16mhz 68020, 68551 PMMU
2263559Smckusick	and 16mhz 68881.  Compiles in support for PMMU.
2363559Smckusick
2463559SmckusickHP360
2563559Smckusick	Support for old hp360 (and 340) machines: 25mhz 68030+MMU and 25mhz
2663559Smckusick	68882.  Compiles in support for PMMU and 68030.  Differs from HP330
2763559Smckusick	in support for 68030 on-chip data cache.
2863559Smckusick
2963559SmckusickHP370
3063559Smckusick	Support for old hp370 (and current 345/375/400) machines: 33 (50) mhz
3163559Smckusick	68030+MMU and 33 (50) mhz 68882.  Compiles in support for PMMU, 68030
3263559Smckusick	and off-chip physically addressed cache.  Differs from 360 in only one
3363559Smckusick	place, in dealing with flushing the external cache.
3463559Smckusick
3563559SmckusickHP380
3663559Smckusick	Support for "current" hp380/425 (and 433) machines: 25 (33) mhz 68040
3763559Smckusick	with MMU/FPU.  Compiles in support for 68040.
3863559Smckusick
3963559SmckusickHPFPLIB
4063559Smckusick	Compiles in support to link with HP-UX's version of Motorola's 68040
4163559Smckusick	FP emulation library (hp300/hpux_float.o).  Kernel will build and run
4263559Smckusick	without this option, but many binaries will core dump.  Should not be
4363559Smckusick	defined unless HP380 is.
4463559Smckusick
4563559Smckusick
4663559SmckusickUSELEDS
4763559Smckusick	Twinkle the hp4xx front panel (or hp3xx internal) LEDs in the HP
4863559Smckusick	designated way.  Somewhat frivolous, but the heartbeat LED is
4963559Smckusick	useful to see if your machine is alive.
5063559Smckusick
5163559SmckusickPANICBUTTON
5263559Smckusick	Compiles in code which will enable a "force-crash" HIL keyboard
5363559Smckusick	sequence.  When the Reset key is typed twice in succession (within
5463559Smckusick	half a second) the kernel will panic.  Note that the HIL Reset key
5563559Smckusick	sends a NMI to the processor which will get the CPUs attention no
5663559Smckusick	matter what it is doing (i.e. as long as it isn't halted).  Alas,
5763559Smckusick	also note that the NMI is only sent when the keyboard is in "cooked"
5863559Smckusick	(ITE) mode.  If it is in "raw" mode (i.e. X-server is running) the
5963559Smckusick	Reset key is just another keypress event.  A cheezy substitute in
6063559Smckusick	this case is holding down the upper right-most unlabeled key and
6163559Smckusick	then pressing the unlabeled key to its left.  Note that this only
6263559Smckusick	works if HIL (level 1) interrupts are not masked.
6363559Smckusick
6463559SmckusickDEBUG
6563559Smckusick	Compiles in a variety of consistency checks and debug printfs
6663559Smckusick	throughout the hp300 MD code and device drivers.
6763559Smckusick
6863559SmckusickHPUXCOMPAT
6963559Smckusick	Enables HP-UX binary compatibility mode.  Allows a variety of
7063559Smckusick	"recent" HP-UX binaries to be run unchanged.  Due to the
7163559Smckusick	evolutionary and "as-needed" nature of this code, "recent" is
7263559Smckusick	anywhere from release 6.2 to 8.0 of HP-UX.  It will run 8.0
7363559Smckusick	shared-library binaries (assuming all the necessary shared-libraries
7463559Smckusick	are installed in the filesystem).
7563559Smckusick
7663559SmckusickCOMPAT_OHPUX
7763559Smckusick	Compile in old 4.2-ish HP-UX (pre-6.0?) compatibility code.
7863559Smckusick
7963559SmckusickFPCOPROC
8063559Smckusick	Compile in code to support the 68881 and above FPU.  Should always
8163559Smckusick	be defined, since all supported SPUs have one.  Don't even know if
8263559Smckusick	it will compile, much less work,  without this option.  Defined in
8363559Smckusick	the prototype makefile (hp300/conf/Makefile.hp300).
8463559Smckusick
8563559SmckusickDCMSTATS
8663559Smckusick	Compile in code to collect a variety of transmit/receive statistics
8763559Smckusick	for the 98642 4-port MUX.
8863559Smckusick
8963559SmckusickWAITHIST
9063559Smckusick	Compile in code to collect statistics about the distribution of
9163559Smckusick	wait-times for various busy waits in the SCSI host-adaptor driver.
9263559Smckusick
9363559SmckusickSTACKCHECK
9463559Smckusick	Enables two types of kernel stack checking in hp300/hp300/locore.s:
9563559Smckusick	1. stack "overflow".  On every clock interrupt we ensure that
9663559Smckusick	   the current kernel stack has not grown into the user struct
9763559Smckusick	   page, i.e. size exceeded UPAGES-1 pages.
9863559Smckusick	2. stack "underflow".  Before every rte to user mode we ensure
9963559Smckusick	   that we will be exactly at the base of the stack after the
10063559Smckusick	   exception frame has been popped.
10163559Smckusick	This option can degrade performance considerably, use it only if
10263559Smckusick	you suspect a problem with kernel stacks.
103*65649Shibler
104*65649ShiblerSCSI_REVPRI
105*65649Shibler	Changes autoconf to start matching logical SCSI devices starting
106*65649Shibler	at slave 6 and working backwards instead of starting at slave 0
107*65649Shibler	and working up.  Later releases of the HP boot ROM search for
108*65649Shibler	boot devices in this manner.  This is apparently the order in
109*65649Shibler	which priority is given to slaves on the host adaptor.  Define
110*65649Shibler	this if you use wildcarding and want to stay in sync with the
111*65649Shibler	boot ROM's strategy.
112*65649Shibler
113*65649ShiblerMAPPEDCOPY
114*65649Shibler	Use page remapping to do large copyin/copyouts.  When defined
115*65649Shibler	the default is to use mapped copy for operations on one page
116*65649Shibler	or more except on machines with virtually-indexed caches.
117*65649Shibler	See initcpu() in machdep.c
118*65649Shibler
119*65649ShiblerBUFFERS_UNMANAGED
120*65649Shibler	Set up the buffer cache "below" the machine independent VM.
121*65649Shibler	Normally, in startup() we use vm_map operations to initially
122*65649Shibler	assign physical memory to the buffers.  This creates a map with
123*65649Shibler	a huge number of map entries (twice the number of buffers)
124*65649Shibler	which serve no purpose since remaining buffer operations
125*65649Shibler	(i.e. pagemove) work below the MI layer anyway.  Defining this
126*65649Shibler	symbol will cause startup() to use pmap operations to map the
127*65649Shibler	initial pages leaving the buffer_map one big entry.
128