KGPE-D16 AMD-vi fails because combined sata is enabled
(XEN) AMD-Vi: SP5100 erratum 28 detected, disabling IOMMU.
(XEN) If possible, disable SATA Combined mode in BIOS or contact your vendor
for BIOS update.
(XEN) AMD-Vi: Error initialization
(XEN) I/O virtualisation disabled
-but HAP is working,
(XEN) HVM: SVM enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
AMD's SP5100 chipset can be placed into SATA Combined mode
that may cause prevent dom0 from booting when IOMMU is
enabled and per-device interrupt remapping table is used.
While SP5100 erratum 28 requires BIOSes to disable this mode,
some may still use it.
ENABLE_IDE_COMBINED_MODE available for sp800 but not for sp700, for ewhich sp5100 is derived from:
SP5100 Product Errata
46836 Rev. 3.00 June 2012 P.18
Product Errata 28
Incorrect IOMMU Table Accessed in SATA Combined Mode
Systems with SP5100 SATA set to AHCI or IDE combined mode with SATA port 4 or 5 in use will use the SATA source ID for IDE DMA when consulting the IOMMU tables.
Potential Effect on System
Operating systems where the IDE and SATA tables are separated will experience I/O page faults.
Several warnings will be issued during kernel initialization, ultimately leading to the inability to boot the operating system due to the boot disk not being found.
Disable combined mode by setting a platform BIOS callback option to CIMx called "SataIdeCombinedMode" to 0.
This change will not have an impact on AHCI/RAID mode, however, in IDE mode, the total number of available ports is reduced by two.
Coreboot: Release 4.6
Xen code responsible for detection:
Is there something i'm missing? Is it possible to disable combined sata mode for sb700 from coreboot?
Peter Sturge answered:
SB700 mainboard support seems copypasted rather than engineered. The
sustainable solution is to move sb700_cfg.c from src/mainboard/*/
to src/southbridge/amd/cimx/sb700/ and hook the configuration in that
file into Kconfig.
Until someone does that, you could indeed change the assignment of
that option by looking for
in the source code, if a sb700_cimx_config() function is called for
this board - but that might not be the case if the board port chose
not to use that part of AGESA.
As I understand the code, KGPE-d16 doesn't use AGESA part (nor any?).