Configuring kernel parameters

Direct memory access (DMA) parameters

Parameter Dflt 4096/8192 Min Max 4096/8192 Auto
DMA_PERCENT 1 1 50  
EDMA_POOL_SIZE 6400/8533 0 64000/85333 PHYS
MAXDMAPAGE 4096 0 65536  

If MAXDMAPAGE is non-zero, and if memory is present at physical addresses above the threshold set by MAXDMAPAGE, then DMA_PERCENT gives an upper bound on the percentage of main memory that is dedicated for use by devices that require memory in a low physical address range for DMA access. In no case can the amount of memory reserved for restricted DMA devices exceed the amount of memory actually present below address (MAXDMAPAGE * PAGESIZE).

EDMA_POOL_SIZE is used to specify the size of the 32-bit DMA memory pool, in 4k pages, for systems with more than 4GB of general purpose memory. This parameter has no effect on systems that have less than 4GB of memory.

MAXDMAPAGE defines the memory size (in 4096-byte pages) for supporting the most restricted DMA devices (for example, ISA devices and diskette drives).

For AT systems, MAXDMAPAGE is set by default to ``4096'' for the benefit of devices that are restricted to DMA into the lower 16MB of memory (also called 24-bit DMA). Such devices include most DMA-capable ISA devices (such as diskette drives), as well as some EISA devices performing standard mode transfers. If you have DDI5 device drivers, you must set MAXDMAPAGE to ``4096''.

Setting MAXDMAPAGE to ``0'' disables the kernel's support for restricted DMA. Do this only if the you are sure that every device on the system either doesn't have DMA capability or is capable of accessing the entirety of physical memory through DMA.

CAUTION: Setting MAXDMAPAGE to ``0'' when some device actually uses restricted DMA can cause the system to fail due to operating system failure (PANIC), applications failure, or data corruption.

Your system can have a PCI or EISA bus but still have an ISA controller, a controller that uses standard mode DMA, or a driver that programs the controller into standard mode. If any of these situations apply, then you must not set MAXDMAPAGE to ``0''. If you have DDI5 device drivers, you must set MAXDMAPAGE to ``4096''.

When MAXDMAPAGE is non-zero, and memory is present above the threshold specified, the kernel will reserve a portion of its memory for exclusive use by devices with a DMA access restriction (see DMA_PERCENT). Setting MAXDMAPAGE to ``0'' preserves this memory for other uses (for example, for files and processes).

Devices that support DMA but are not restricted in their ability to access memory (for example, EISA devices performing extended mode transfers) and PCI devices are not affected by MAXDMAPAGE. MAXDMAPAGE does not apply to 32-bit DMA requirements.

Next topic: Dynamically loadable kernel module (DLKM) parameters
Previous topic: Device driver parameters

© 2007 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 05 June 2007