aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/cpu/intel_common
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2020-11-06 08:41:49 -0500
committerTom Rini <trini@konsulko.com>2020-11-06 09:46:43 -0500
commitd062c1344cefb6c368b96efea4c2a20e63657b8d (patch)
tree56dcc373217bbcb248c35f7253c9478c1ba7e715 /arch/x86/cpu/intel_common
parent71d3fa7efa4fc07e6f161c742397ddbe4466c631 (diff)
parente4f8e543f1a905857a753a1d411997a81f4f52aa (diff)
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86
- Add a new SMBIOS parser and enable it when booting from coreboot - Fix up various driver names to avoid dtoc warnings - Fully enable ACPI support on Google Chromebook Coral - Add a way to set SMBIOS properties using the devicetree - Update existing boards to use devicetree for SMBIOS using a new default sysinfo driver
Diffstat (limited to 'arch/x86/cpu/intel_common')
-rw-r--r--arch/x86/cpu/intel_common/acpi.c1
-rw-r--r--arch/x86/cpu/intel_common/cpu.c19
-rw-r--r--arch/x86/cpu/intel_common/intel_opregion.c2
-rw-r--r--arch/x86/cpu/intel_common/itss.c10
-rw-r--r--arch/x86/cpu/intel_common/p2sb.c2
5 files changed, 26 insertions, 8 deletions
diff --git a/arch/x86/cpu/intel_common/acpi.c b/arch/x86/cpu/intel_common/acpi.c
index 4496bbfd99..6a3456f476 100644
--- a/arch/x86/cpu/intel_common/acpi.c
+++ b/arch/x86/cpu/intel_common/acpi.c
@@ -202,7 +202,6 @@ int southbridge_inject_dsdt(const struct udevice *dev, struct acpi_ctx *ctx)
(void **)&gnvs);
if (ret)
return log_msg_ret("bloblist", ret);
- memset(gnvs, '\0', sizeof(*gnvs));
ret = acpi_create_gnvs(gnvs);
if (ret)
diff --git a/arch/x86/cpu/intel_common/cpu.c b/arch/x86/cpu/intel_common/cpu.c
index 39aa0f63c6..a51bf86f7a 100644
--- a/arch/x86/cpu/intel_common/cpu.c
+++ b/arch/x86/cpu/intel_common/cpu.c
@@ -306,3 +306,22 @@ int cpu_get_cores_per_package(void)
return cores;
}
+
+void cpu_mca_configure(void)
+{
+ msr_t msr;
+ int i;
+ int num_banks;
+
+ msr = msr_read(MSR_IA32_MCG_CAP);
+ num_banks = msr.lo & 0xff;
+ msr.lo = 0;
+ msr.hi = 0;
+ for (i = 0; i < num_banks; i++) {
+ /* Clear the machine check status */
+ msr_write(MSR_IA32_MC0_STATUS + (i * 4), msr);
+ /* Initialise machine checks */
+ msr_write(MSR_IA32_MC0_CTL + i * 4,
+ (msr_t) {.lo = 0xffffffff, .hi = 0xffffffff});
+ }
+}
diff --git a/arch/x86/cpu/intel_common/intel_opregion.c b/arch/x86/cpu/intel_common/intel_opregion.c
index c95ae04992..1eed21d8cd 100644
--- a/arch/x86/cpu/intel_common/intel_opregion.c
+++ b/arch/x86/cpu/intel_common/intel_opregion.c
@@ -42,7 +42,7 @@ static int locate_vbt(char **vbtp, int *sizep)
return -EINVAL;
}
- log_info("Found a VBT of %u bytes\n", size);
+ log_debug("Found a VBT of %u bytes\n", size);
*sizep = size;
*vbtp = vbt_data;
diff --git a/arch/x86/cpu/intel_common/itss.c b/arch/x86/cpu/intel_common/itss.c
index fe84ebe29f..de17b93ed4 100644
--- a/arch/x86/cpu/intel_common/itss.c
+++ b/arch/x86/cpu/intel_common/itss.c
@@ -67,7 +67,7 @@ static int snapshot_polarities(struct udevice *dev)
reg_start = start / IRQS_PER_IPC;
reg_end = DIV_ROUND_UP(end, IRQS_PER_IPC);
- log_info("ITSS IRQ Polarities snapshot %p\n", priv->irq_snapshot);
+ log_debug("ITSS IRQ Polarities snapshot %p\n", priv->irq_snapshot);
for (i = reg_start; i < reg_end; i++) {
uint reg = PCR_ITSS_IPC0_CONF + sizeof(u32) * i;
@@ -89,11 +89,11 @@ static void show_polarities(struct udevice *dev, const char *msg)
{
int i;
- log_info("ITSS IRQ Polarities %s:\n", msg);
+ log_debug("ITSS IRQ Polarities %s:\n", msg);
for (i = 0; i < NUM_IPC_REGS; i++) {
uint reg = PCR_ITSS_IPC0_CONF + sizeof(u32) * i;
- log_info("IPC%d: 0x%08x\n", i, pcr_read32(dev, reg));
+ log_debug("IPC%d: 0x%08x\n", i, pcr_read32(dev, reg));
}
}
@@ -115,7 +115,7 @@ static int restore_polarities(struct udevice *dev)
sizeof(priv->irq_snapshot));
show_polarities(dev, "Before");
- log_info("priv->irq_snapshot %p\n", priv->irq_snapshot);
+ log_debug("priv->irq_snapshot %p\n", priv->irq_snapshot);
reg_start = start / IRQS_PER_IPC;
reg_end = DIV_ROUND_UP(end, IRQS_PER_IPC);
@@ -235,7 +235,7 @@ static const struct udevice_id itss_ids[] = {
{ }
};
-U_BOOT_DRIVER(itss_drv) = {
+U_BOOT_DRIVER(intel_itss) = {
.name = "intel_itss",
.id = UCLASS_IRQ,
.of_match = itss_ids,
diff --git a/arch/x86/cpu/intel_common/p2sb.c b/arch/x86/cpu/intel_common/p2sb.c
index 361d4c90cb..a0a4001e03 100644
--- a/arch/x86/cpu/intel_common/p2sb.c
+++ b/arch/x86/cpu/intel_common/p2sb.c
@@ -189,7 +189,7 @@ static const struct udevice_id p2sb_ids[] = {
{ }
};
-U_BOOT_DRIVER(p2sb_drv) = {
+U_BOOT_DRIVER(intel_p2sb) = {
.name = "intel_p2sb",
.id = UCLASS_P2SB,
.of_match = p2sb_ids,