nb/intel/haswell: Fix IOMMU early init
Intel Document 492662 (Haswell System Agent BIOS Spec), Rev 1.6.0 states that `ARCHDIS` (VT engine BAR, offset 0xff0) has to be written fully, as well as several other things that were not done properly in coreboot. As these steps are Haswell-specific, introduce two helper functions to test if the CPU is Haswell or Broadwell. Intel Document 535094 (Broadwell BIOS Spec), Rev 2.2.0 contains the same steps for Broadwell. To permit unifying Haswell and Broadwell, implement the Broadwell steps as well. Change-Id: I077e064754720d9f9f627733c954712a2b24b5b7 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/91631 Reviewed-by: Alicja Michalska <ahplka19@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
parent
60994cf395
commit
a0be26ef5f
3 changed files with 56 additions and 16 deletions
|
|
@ -192,4 +192,27 @@ static inline bool haswell_is_ult(void)
|
|||
return CONFIG(INTEL_LYNXPOINT_LP);
|
||||
}
|
||||
|
||||
static inline bool cpu_is_haswell(void)
|
||||
{
|
||||
switch (cpu_family_model()) {
|
||||
case HASWELL_FAMILY_TRAD:
|
||||
case HASWELL_FAMILY_ULT:
|
||||
case CRYSTALWELL_FAMILY:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static inline bool cpu_is_broadwell(void)
|
||||
{
|
||||
switch (cpu_family_model()) {
|
||||
case BROADWELL_FAMILY_TRAD:
|
||||
case BROADWELL_FAMILY_ULT:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue