On 05/15/2017 09:33 PM, Ian Zimmerman wrote:
> On 2017-05-15 14:33, Corbin Bird wrote:
> 
>> Gigabyte has long been known to ship 'broken for Linux' e820 firmware.
>> 'e820' is basically the APG Aperature setup in the firmware.
>> Gigabyte kills OR overrides the IOMMU support in the firmware, to setup
>> the AGP Aperature.
>>
>> Closed source / binary video drivers WANT an AGP Aperature.
> 
> So is _that_ what it's all about?  Is the default assumption that I run
> non-free video drivers?  Why?  I _never_ use these, and if you bet on me
> using them in the future and win the bet, you can probably make a cool
> million or two.
> 
>> The kernel wants an IOMMU on x86_64, as an IOMMU.
> 
> But it has one!  The GART_IOMMU.  It was even added specifically for
> Linux, according to kernel.org discussions I remember seeing but can't
> locate now.
> 
> I also found [1] , which I think is the clearest and most human-oriented
> explanation of this issue, yet.  And ... the recommendation is pretty
> much the opposite of yours.  The ball is in your court, sir.
> 
>>> CONFIG_X86_X2APIC=y
> 
> I did this long ago, and it has no effect - still only one is found,
> according to dmesg.  As I wrote in the earlier thread.
> 
> Also, the Kconfig help for this option says it does something quite
> different.  
> 
>>> CONFIG_X86_MPPARSE=y
> 
> Ok, this one I have not set so far.  Will read up on it and try,
> 
> [1]
> http://bogdan.org.ua/2009/09/30/iommu-this-costs-you-64-mb-of-ram.html
> 

That link, read the rest of it.

It says to leave it alone, let the kernel use it as an IOMMU.

----

I once compiled and tried to run a 64bit kernel with NO IOMMU support,
NO virt/vm support, used kernel parameters to kill all forms of IOMMU
... would not run at all ( hard lock / kernel panic ).

The error output made it very clear that an IOMMU was REQUIRED for
x86_64 ( 64bit ).

----

On AMD, with NO IOMMU kernel parameters, output in '/var/log/dmesg':
NOTE : IOMMU is enabled in the UEFI firmware.

> [    0.000000] AGP: Checking aperture...
> [    0.000000] AGP: No AGP bridge found
> [    0.000000] AGP: Node 0: aperture [bus addr 0xb4000000-0xb5ffffff] (32MB)
> [    0.000000] Aperture pointing to e820 RAM. Ignoring.
> [    0.000000] AGP: Your BIOS doesn't leave an aperture memory hole
> [    0.000000] AGP: Please enable the IOMMU option in the BIOS setup
> [    0.000000] AGP: This costs you 64MB of RAM
> [    0.000000] AGP: Mapping aperture over RAM [mem 0xb4000000-0xb7ffffff] 
> (65536KB)

> [    0.926772] PCI: CLS 64 bytes, default 64
> [    0.926983] PCI-DMA: Disabling AGP.
> [    0.927215] PCI-DMA: aperture base @ b4000000 size 65536 KB
> [    0.927336] PCI-DMA: using GART IOMMU.
> [    0.927448] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture

Corbin




Reply via email to