You are not logged in.

#1 2015-11-12 18:48:08

bdantas
Member
Registered: 2014-05-13
Posts: 94

[SOLVED] message during boot on Libreboot system: "DMAR: Failed to map

Hello, Archers. I recently got a Libreboot T400 (which has Libreboot instead of BIOS), which I am using to dual-boot Arch and Parabola. I'm desperately trying to understand an error that shows up during boot so that I can move on and start enjoying my laptop.

I've already asked for help on the Libreboot and Parabola mailing lists but have not received any assistance, so I thought I'd try my luck here since you guys are so smart.

On every boot into either distro, I see a message that says "DMAR: Failed to map dmar2". This is what it looks like when booting Arch:

[    0.030162] DMAR: Failed to map dmar2
starting version 226
Arch: clean, 426180/1643376 files, 4782076/6571776 blocks

Arch Linux 4.2.1-1-ARCH (tty1)

Thinkpad login: bruno (automatic login)
Last login: Thu Nov 12 13:15:19 on tty1

Once at my MATE desktop, everything seems to be working fine. Here are the relevant lines from dmesg:

bruno@T400 ~ $ dmesg | grep -i dmar
[    0.000000] ACPI: DMAR 0x00000000BDAB9F80 0000A8 (v01 CORE   COREBOOT 00000000 CORE 00000000)
[    0.000000] WARNING: CPU: 0 PID: 0 at drivers/iommu/dmar.c:829 warn_invalid_dmar+0x79/0x90()
[    0.000000] Your BIOS is broken; DMAR reported at address fed92000 returns all ones!
[    0.000000]  [<ffffffff813bcb69>] warn_invalid_dmar+0x79/0x90
[    0.000000]  [<ffffffff81568105>] dmar_validate_one_drhd+0xa5/0xe0
[    0.000000]  [<ffffffff813bcd12>] dmar_walk_remapping_entries+0x82/0x190
[    0.030127] DMAR: Host address width 40
[    0.030132] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.030141] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c9008020e30260 ecap 1000
[    0.030143] DMAR: DRHD base: 0x000000fed91000 flags: 0x0
[    0.030150] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap c0000020630260 ecap 1000
[    0.030152] DMAR: DRHD base: 0x000000fed92000 flags: 0x0
[    0.030164] DMAR: Failed to map dmar2
[    0.030169] DMAR: Parse DMAR table failure.
[    0.134663] DMAR: Forcing write-buffer flush capability
[    0.134663] DMAR: Disabling IOMMU for graphics on this chipset

After hours of trial and error, I figured out that booting with intremap=off in GRUB causes the error to go away. When booting with that kernel parameter, again everything seems to be working fine once I'm at my desktop. Here is dmesg's output:

bruno@T400 ~ $ dmesg | grep -i dmar    # after booting with intremap=off
[    0.000000] ACPI: DMAR 0x00000000BDAB9F80 0000A8 (v01 CORE   COREBOOT 00000000 CORE 00000000)
[    0.000000] WARNING: CPU: 0 PID: 0 at drivers/iommu/dmar.c:829 warn_invalid_dmar+0x79/0x90()
[    0.000000] Your BIOS is broken; DMAR reported at address fed92000 returns all ones!
[    0.000000]  [<ffffffff813bcb69>] warn_invalid_dmar+0x79/0x90
[    0.000000]  [<ffffffff81568105>] dmar_validate_one_drhd+0xa5/0xe0
[    0.000000]  [<ffffffff813bcd12>] dmar_walk_remapping_entries+0x82/0x190
[    0.134662] DMAR: Forcing write-buffer flush capability
[    0.134662] DMAR: Disabling IOMMU for graphics on this chipset

What is the meaning of the DMAR error during boot? Is it just a bug in Libreboot or is my hardware broken somehow?
Is it safe to use the intremap=off kernel parameter? Am I losing any functionality or security by using it?

If anyone has any information, please help me. I'm going crazy trying to figure this out. I have searched the internet high and low and the closest I can find to an answer is this (https://www.netiq.com/support/kb/doc.php?id=7014344), which suggests that perhaps Libreboot does not support "virtualization with PCI passthrough" (whatever that means) but is telling the Linux kernel that it does.

Last edited by bdantas (2015-11-14 22:00:27)

Offline

#2 2015-11-12 20:11:33

clfarron4
Member
From: London, UK
Registered: 2013-06-28
Posts: 2,163
Website

Re: [SOLVED] message during boot on Libreboot system: "DMAR: Failed to map

This is from a few yeaers ago, but it's a detailed explanation of what is actually going on.

This is from last year on the Arch BBS.

I didn't look at any of the other results on Google of "Your BIOS is broken; DMAR reported".


Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository

Offline

#3 2015-11-12 20:40:15

bdantas
Member
Registered: 2014-05-13
Posts: 94

Re: [SOLVED] message during boot on Libreboot system: "DMAR: Failed to map

Thanks, clfarron4. I had seen those two. iommu=soft and intel_iommu=igfx_off had no effect for me, whereas intremap=off (which I discovered by trial and error) made the boot-time error go away.

At this point there are no errors (except for the "broken BIOS" error in dmesg, which I only see if I go digging smile) and everything seems to be working fine, but I'd still like to understand what's going on. Specifically, I am wondering: a) whether using intremap=off is ill-advised for any reason and b) what the DMAR boot-time error (without intremap=off) means with regard to my hardware and Libreboot.

Last edited by bdantas (2015-11-12 20:59:53)

Offline

#4 2015-11-14 21:59:21

bdantas
Member
Registered: 2014-05-13
Posts: 94

Re: [SOLVED] message during boot on Libreboot system: "DMAR: Failed to map

I've been in correspondence with some really smart folks on the Libreboot mailing list. It turns out that coreboot's (and, by extension, libreboot's) ACPI implementation for GM45 and other northbridges is incomplete.  VT-d/IOMMU/DMAR isn't known to work on these systems, all of which have messages about an invalid DMAR table in dmesg.

Therefore, this is an upstream (libreboot) issue. Nothing is wrong with my hardware or with my Arch partition. Running Arch with intremap=off kernel boot parameter makes the DMAR messages go away. Despite the fact that the "Your BIOS is broken" message is still there even with intremap=off, everything seems to be working perfectly. I will mark this as solved.

Offline

Board footer

Powered by FluxBB