Multi Channel DMA Intel® FPGA IP for PCI Express* Design Example User Guide

ID 683517
Date 7/30/2024
Public
Document Table of Contents

3.5.2.4.1.1. Set the Boot Parameters

Follow the step below to modify the default hugepages setting in grub files:

Edit /etc/default/grub file

Append the highlighted parameters to the GRUB_CMDLINE_LINUX line in the /etc/default/grub file:

GRUB_CMDLINE_LINUX=" rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb default_hugepagesz=1G hugepagesz=1G hugepages=40 iommu=pt panic=1”

CentOS: GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb default_hugepagesz=1G hugepagesz=1G hugepages=40 iommu=pt panic=1”

Ubuntu: GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=20 intel_iommu=on iommu=pt panic=1 quiet splash vt.handoff=7"

File contents after the edit for CentOS is shown below:
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb default_hugepagesz=1G hugepagesz=1G hugepages=40 iommu=pt panic=1”
GRUB_DISABLE_RECOVERY="true"
In the case of memory allocation failure at the time of Virtual Function creation, add the following boot parameters:
"pci=hpbussize=10,hpmemsize=2M,nocrs,realloc=on"

To bind the device to vfio-pci and use IOMMU, enable the following parameter: intel_iommu=on

To use UIO and not enable the IOMMU lookup, add the following parameter: iommu=pt

To use the AMD platform and the UIO driver, add the following parameter at boot

time: iommu=soft

An example /etc/default/grub file on ubuntu after the edits can be seen below:
root@bapvecise042:~# cat /etc/default/grub 
# If you change this file, run 'update-grub' afterwards to update 

# /boot/grub/grub.cfg. 

# For full documentation of the options in this file, see: 

#   info -f grub -n 'Simple configuration' 

GRUB_DEFAULT="1>2" 

GRUB_TIMEOUT_STYLE=hidden 

GRUB_TIMEOUT=0 

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` 

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 

GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=20 intel_iommu=on iommu=pt panic=1" 

# Uncomment to enable BadRAM filtering, modify to suit your needs 

# This works with Linux (no patch required) and with any kernel that obtains 

# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) 

#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" 
# Uncomment to disable graphical terminal (grub-pc only) 

#GRUB_TERMINAL=console 

# The resolution used on graphical terminal 

# note that you can use only modes which your graphic card supports via VBE 

# you can see them in real GRUB with the command `vbeinfo' 

#GRUB_GFXMODE=640x480 
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux 

#GRUB_DISABLE_LINUX_UUID=true 

# Uncomment to disable generation of recovery mode menu entries 

#GRUB_DISABLE_RECOVERY="true" 

# Uncomment to get a beep at grub start 

#GRUB_INIT_TUNE="480 440 1" 

Generate GRUB configuration files

To check whether the boot system is legacy or EFI-based, check the existence of the following file:
$ls -al /sys/firmware/efi
If this file is present, the boot system is EFI-based. Otherwise, it is a legacy system.
  • In case of a legacy system, execute the following command:
    $ grub2-mkconfig -o /boot/grub2/grub.cfg
    
  • In case of an EFI-based system, execute the following command:
    $ grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
    
  • In case of Ubuntu, execute the following command:
    grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
    
    OR
    grub2-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg
    
    OR
    sudo grub update