AMD-VI: completion wait loop after a failed install of Arch Linux on a blank SSD

Linux Kernel With MSI B450

The kernel fail in this case because of the support of the iommu feature; you can use some specific kernel adjustment (parameter) to fix your booting issue, this video demonstrate how to edit/apply the kernel parameters; here are some possibles solutions, try the different proposed parameters and choose the one that match best your needs. also you may turn off SVE in the bios.

Possible Solutions: Kernel Parameters

  • iommu=off
  • iommu=off and amd_iommu=fullflush
  • amd_iommu=off
  • mem_encrypt=off
  • amdgpu.runpm=0
  • pci=noats

Involved Technology Definition

Kernel Parameters: (aka Boot Options) Kernel command line parameters are parameters that you pass on to the kernel during the boot process to adjust its features or capabilities.

IOMMU: is a memory management unit that basically increase performance and security; additional details can be found here

IOMMU State: on, off or fullflush (detail on the linked article)

mem_encrypt: Add support for Secure Memory Encryption (SME). and defines the memory encryption mask that will be used in subsequent patches to mark pages as encrypted.

amdgpu.runpm=0: disable the graphical power management in the linux kernel (it will be then handled at the hardware/firmware/bios level)

pci=noats: disable PCI Address Translation Services

Note

  • After the install you will need to be very careful on kernel updates

  • Advanced technical users may build their own kernel with this or that patch

Arch Boot Disk:

To apply the parameters to the boot disk, on the boot menu, push "tab" to edit the boot command, hit space (to add a space) then write the parameter for instance "iommu=off" without quotes then hit enter to boot

Sources:

launchpad, freedesktop, freedesktop, freedesktop, askubuntu, wikipedia, artofcode, archlinux, linuxfoundation, fclose, youtube, youtube


Add acpi=off or iommu=soft while booting. Both have their disadvantages:

iommu=soft:

Linux can then detect everything properly (all cores) and I've had zero crashes. The only issue is that it's using software IOMMU which could have a performance penalty because it has to copy all the data of some PCI devices to sub 4G regions.

acpi=off:

Alternatively it boots with the kernel option "acpi=off" but only detects a single core/thread.

Resource: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1747463

To add one of these options, press Tab at the screen that says Press [Tab] to edit options and add it at the end of the line that contains initrd=.

Resource: https://www.reddit.com/r/archlinux/comments/9bv2vj/how_to_add_kernel_parameters_to_boot_from/

If that doesn't work, check and see if there are any available BIOS and/or Arch ISO updates. You might have a better chance of getting it to work if/when Arch includes Linux kernel 5 in their images.

Resource: https://askubuntu.com/a/1091191