xref: /netbsd-src/sys/arch/hp300/DOC/Options (revision 9f6b8c4d04d458828b119d6405985e86455f35e6)
1*9f6b8c4dSad$NetBSD: Options,v 1.10 2007/12/31 13:38:48 ad Exp $
2132b4143Scgd
3ef8c1b68SmycroftHere is a list of hp300 specific kernel compilation options and what they
4ef8c1b68Smycroftmean:
5ef8c1b68Smycroft
6ef8c1b68SmycroftHAVEVAC
7ef8c1b68Smycroft	Compiles in support for virtually addressed cache (VAC) found on
8ef8c1b68Smycroft	hp320 and 350 machines.  Should only be defined when HP320 and/or
9ef8c1b68Smycroft	HP350 is.
10ef8c1b68Smycroft
11ef8c1b68SmycroftHP320
12a1f606d3Slukem	Support for old hp320 machines: 16 MHz 68020, HP MMU, 16 MHz 68881
13ef8c1b68Smycroft	and VAC.  Compiles in support for a VAC, HP MMU, and the 98620A
14ef8c1b68Smycroft	16-bit DMA channel.  Forces the definition of HAVEVAC.
15ef8c1b68Smycroft
16ef8c1b68SmycroftHP350
17a1f606d3Slukem	Support for old hp350 machines: 25 MHz 68020, HP MMU, 20 MHz 68881
18ef8c1b68Smycroft	and VAC.  Compiles in support for a VAC and the HP MMU.  Differs
19ef8c1b68Smycroft	from HP320 in that it has no support for 16-bit DMA controller.
20ef8c1b68Smycroft	Forces the definition of HAVEVAC.
21ef8c1b68Smycroft
22ef8c1b68SmycroftHP330
23a1f606d3Slukem	Support for old hp330 (and 318/319) machines: 16 MHz 68020, 68851 PMMU
24a1f606d3Slukem	and 16 MHz 68881.  Compiles in support for PMMU.
25ef8c1b68Smycroft
2605c0e704ScarrelHP340
27ef8c1b68SmycroftHP360
28a1f606d3Slukem	Support for old 340 and hp360 machines: 25 MHz 68030+MMU and 25 MHz
29ef8c1b68Smycroft	68882.  Compiles in support for PMMU and 68030.  Differs from HP330
30ef8c1b68Smycroft	in support for 68030 on-chip data cache.
31ef8c1b68Smycroft
32ef8c1b68SmycroftHP370
33a1f606d3Slukem	Support for old hp370 (and current 345/375/400) machines: 33 (50) MHz
34a1f606d3Slukem	68030+MMU and 33 (50) MHz 68882.  Compiles in support for PMMU, 68030
35ef8c1b68Smycroft	and off-chip physically addressed cache.  Differs from 360 in only one
36ef8c1b68Smycroft	place, in dealing with flushing the external cache.
37ef8c1b68Smycroft
38ef8c1b68SmycroftHP380
39a1f606d3Slukem	Support for "current" hp380/425 (and 433) machines: 25 (33) MHz 68040
40ef8c1b68Smycroft	with MMU/FPU.  Compiles in support for 68040.
41ef8c1b68Smycroft
42923bab6dSmycroftFPSP
43923bab6dSmycroft	Compiles in support to link with Motorola's 68040 FP emulation
44923bab6dSmycroft	library.  Kernel will build and run without this option, but many
45923bab6dSmycroft	binaries will core dump.  Should not be defined unless HP380 is.
46ef8c1b68Smycroft
47ef8c1b68Smycroft
48ef8c1b68SmycroftUSELEDS
49ef8c1b68Smycroft	Twinkle the hp4xx front panel (or hp3xx internal) LEDs in the HP
50ef8c1b68Smycroft	designated way.  Somewhat frivolous, but the heartbeat LED is
51ef8c1b68Smycroft	useful to see if your machine is alive.
52ef8c1b68Smycroft
53ef8c1b68SmycroftPANICBUTTON
54ef8c1b68Smycroft	Compiles in code which will enable a "force-crash" HIL keyboard
55ef8c1b68Smycroft	sequence.  When the Reset key is typed twice in succession (within
56ef8c1b68Smycroft	half a second) the kernel will panic.  Note that the HIL Reset key
57ef8c1b68Smycroft	sends a NMI to the processor which will get the CPUs attention no
58ef8c1b68Smycroft	matter what it is doing (i.e. as long as it isn't halted).  Alas,
59ef8c1b68Smycroft	also note that the NMI is only sent when the keyboard is in "cooked"
60ef8c1b68Smycroft	(ITE) mode.  If it is in "raw" mode (i.e. X-server is running) the
61ef8c1b68Smycroft	Reset key is just another keypress event.  A cheezy substitute in
62ef8c1b68Smycroft	this case is holding down the upper right-most unlabeled key and
63ef8c1b68Smycroft	then pressing the unlabeled key to its left.  Note that this only
64ef8c1b68Smycroft	works if HIL (level 1) interrupts are not masked.
65ef8c1b68Smycroft
66ef8c1b68SmycroftDEBUG
67ad67e041Schristos	Compiles in a variety of consistency checks and debug printfs
68ef8c1b68Smycroft	throughout the hp300 MD code and device drivers.
69ef8c1b68Smycroft
70ef8c1b68SmycroftDCMSTATS
71ef8c1b68Smycroft	Compile in code to collect a variety of transmit/receive statistics
72ef8c1b68Smycroft	for the 98642 4-port MUX.
73ef8c1b68Smycroft
74ef8c1b68SmycroftWAITHIST
75ef8c1b68Smycroft	Compile in code to collect statistics about the distribution of
76ef8c1b68Smycroft	wait-times for various busy waits in the SCSI host-adaptor driver.
77ef8c1b68Smycroft
78ef8c1b68SmycroftSTACKCHECK
79ef8c1b68Smycroft	Enables two types of kernel stack checking in hp300/hp300/locore.s:
80ef8c1b68Smycroft	1. stack "overflow".  On every clock interrupt we ensure that
81ef8c1b68Smycroft	   the current kernel stack has not grown into the user struct
82ef8c1b68Smycroft	   page, i.e. size exceeded UPAGES-1 pages.
83ef8c1b68Smycroft	2. stack "underflow".  Before every rte to user mode we ensure
84ef8c1b68Smycroft	   that we will be exactly at the base of the stack after the
85ef8c1b68Smycroft	   exception frame has been popped.
86ef8c1b68Smycroft	This option can degrade performance considerably, use it only if
87ef8c1b68Smycroft	you suspect a problem with kernel stacks.
88ef8c1b68Smycroft
89ef8c1b68SmycroftSCSI_REVPRI
90ef8c1b68Smycroft	Changes autoconf to start matching logical SCSI devices starting
91ef8c1b68Smycroft	at slave 6 and working backwards instead of starting at slave 0
92ef8c1b68Smycroft	and working up.  Later releases of the HP boot ROM search for
93ef8c1b68Smycroft	boot devices in this manner.  This is apparently the order in
94ef8c1b68Smycroft	which priority is given to slaves on the host adaptor.  Define
95ef8c1b68Smycroft	this if you use wildcarding and want to stay in sync with the
96ef8c1b68Smycroft	boot ROM's strategy.
97ef8c1b68Smycroft
98ef8c1b68SmycroftMAPPEDCOPY
99ef8c1b68Smycroft	Use page remapping to do large copyin/copyouts.  When defined
100ef8c1b68Smycroft	the default is to use mapped copy for operations on one page
101ef8c1b68Smycroft	or more except on machines with virtually-indexed caches.
102ef8c1b68Smycroft	See initcpu() in machdep.c
103ef8c1b68Smycroft
104ef8c1b68SmycroftBUFFERS_UNMANAGED
105ef8c1b68Smycroft	Set up the buffer cache "below" the machine independent VM.
106ef8c1b68Smycroft	Normally, in startup() we use vm_map operations to initially
107ef8c1b68Smycroft	assign physical memory to the buffers.  This creates a map with
108ef8c1b68Smycroft	a huge number of map entries (twice the number of buffers)
109ef8c1b68Smycroft	which serve no purpose since remaining buffer operations
110ef8c1b68Smycroft	(i.e. pagemove) work below the MI layer anyway.  Defining this
111ef8c1b68Smycroft	symbol will cause startup() to use pmap operations to map the
112ef8c1b68Smycroft	initial pages leaving the buffer_map one big entry.
113