When I boot my system, I get the following message:

[Sat Oct 26 20:34:25 2019] Calgary: detecting Calgary via BIOS EBDA area
[Sat Oct 26 20:34:25 2019] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
  • What is "Calgary"?
  • What is the "Rio Grande table"?
  • Why does it need to be located in EBDA, and given that it does - why is my kernel failing to do so?
  • What are the consequences of this failure?

I'm running Devuan 3 (Beowulf) on an i5-7600K CPU on an MSI Z170 PRO GAMING motherboard.


It seems that Calgary is a family of IOMMUs, used in most IBM X-Series (i.e. X86_64) blades and motherboards - as of 2008 (see here). The Rio Grande table was/is an information table within the Extended BIOS Data Area that tells the operating system where to find the Calgary IOMMU(s) (thanks @telcoM).

As you, OP, are not using such a machine, you might consider trying to disable the search for it in the kernel compilation parameters. As @jmullee reminds us, here are the relevant Linux kernel configuration parameters:


you would change these from y to n.

  • 1
    And the "Rio Grande table" was an information table within the Extended BIOS Data Area that tells the operating system where to find the Calgary IOMMU(s).
    – telcoM
    Apr 5 '20 at 8:34

The search at boot for usb devices to connect and memory map will be disabled if you remove the option from a kernel config when recompiling.

So if you connect to other devices (usb drives, screens with memory network stacks etc) at boot with certain IBM motherboards like the one on my T500 laptop, it will not be mapped by the kernel and you will have to do it manually.

Could only be a security issue if you put some piece of malicious hardware on the usb or network connect by usb to a malicious network on it. Otherwise, leaving the kernel config at the current default is harmless.

The IBM Rio Grande and equivalent Windows kernel configuration feature has most likely already been used by bad actors on Windows, Linux kernel based distributions. Who knows?


these are the relevant kernel source config options



  • So, the first one makes the driver get compiled, and the second one makes the kernel look for this IOMMU?
    – einpoklum
    Feb 20 '20 at 11:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.