kernel boot options

AMD64 specific boot options

There are many others (usually documented in driver documentation), but only the AMD64 specific ones are listed here.

Machine check, please see Documentation/x86/x86_64/machinecheck for sysfs runtime tunables.

Everything else is in sysfs now.

APICs

Timing

Idle loop

Rebooting

Non Executable Mappings

NUMA

ACPI

PCI

IOMMU (input/output memory management unit)

Currently four x86-64 PCI-DMA mapping implementations exist:

  1. arch/x86_64/kernel/pci-nommu.c: use no hardware/software IOMMU at all (e.g. because you have < 3 GB memory). Kernel boot message: "PCI-DMA: Disabling IOMMU"
  2. arch/x86/kernel/amd_gart_64.c: AMD GART based hardware IOMMU. Kernel boot message: "PCI-DMA: using GART IOMMU"
  3. arch/x86_64/kernel/pci-swiotlb.c : Software IOMMU implementation. Used e.g. if there is no hardware IOMMU in the system and it is need because you have >3GB memory or told the kernel to us it (iommu=soft)) Kernel boot message: "PCI-DMA: Using software bounce buffering for IO (SWIOTLB)"
  4. arch/x86_64/pci-calgary.c : IBM Calgary hardware IOMMU. Used in IBM pSeries and xSeries servers. This hardware IOMMU supports DMA address mapping with memory protection, etc. Kernel boot message: "PCI-DMA: Using Calgary IOMMU"

iommu=[size][,noagp][,off][,force][,noforce][,leak[=nr_of_leak_pages] [,memaper[=order]][,merge][,forcesac][,fullflush][,nomerge][,noaperture][,calgary]

General iommu options:

iommu options only relevant to the AMD GART hardware IOMMU:

iommu options only relevant to the software bounce buffering (SWIOTLB) IOMMU implementation:

Settings for the IBM Calgary hardware IOMMU currently found in IBM pSeries and xSeries machines:

64k,...,8M - Set the size of each PCI slot's translation table when using the Calgary IOMMU. This is the size of the translation table itself in main memory. The smallest table, 64k, covers an IO space of 32MB; the largest, 8MB table, can cover an IO space of 4GB. Normally the kernel will make the right choice by itself.

translate_empty_slots - Enable translation even on slots that have no devices attached to them, in case a device will be hotplugged in the future.

disable=PCI bus number - Disable translation on a given PHB. For example, the built-in graphics adapter resides on the first bridge (PCI bus number 0); if translation (isolation) is enabled on this bridge, X servers that access the hardware directly from user space might stop working. Use this option if you have devices that are accessed from userspace directly on some PCI host bridge.

Miscellaneous

kernel Doc