mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-25 06:46:00 +00:00
x86: apl: Add a CPU driver
Add a bare-bones CPU driver so that CPUs can be probed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
409d4c6fe9
commit
6a4c237af9
5 changed files with 81 additions and 0 deletions
|
@ -4,8 +4,10 @@
|
||||||
|
|
||||||
obj-$(CONFIG_SPL_BUILD) += spl.o
|
obj-$(CONFIG_SPL_BUILD) += spl.o
|
||||||
obj-$(CONFIG_SPL_BUILD) += systemagent.o
|
obj-$(CONFIG_SPL_BUILD) += systemagent.o
|
||||||
|
obj-y += cpu_common.o
|
||||||
|
|
||||||
ifndef CONFIG_TPL_BUILD
|
ifndef CONFIG_TPL_BUILD
|
||||||
|
obj-y += cpu.o
|
||||||
obj-y += punit.o
|
obj-y += punit.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
41
arch/x86/cpu/apollolake/cpu.c
Normal file
41
arch/x86/cpu/apollolake/cpu.c
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Copyright 2019 Google LLC
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <cpu.h>
|
||||||
|
#include <dm.h>
|
||||||
|
#include <asm/cpu_common.h>
|
||||||
|
#include <asm/cpu_x86.h>
|
||||||
|
|
||||||
|
static int apl_get_info(struct udevice *dev, struct cpu_info *info)
|
||||||
|
{
|
||||||
|
return cpu_intel_get_info(info, INTEL_BCLK_MHZ);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int apl_get_count(struct udevice *dev)
|
||||||
|
{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct cpu_ops cpu_x86_apl_ops = {
|
||||||
|
.get_desc = cpu_x86_get_desc,
|
||||||
|
.get_info = apl_get_info,
|
||||||
|
.get_count = apl_get_count,
|
||||||
|
.get_vendor = cpu_x86_get_vendor,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct udevice_id cpu_x86_apl_ids[] = {
|
||||||
|
{ .compatible = "intel,apl-cpu" },
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
|
U_BOOT_DRIVER(cpu_x86_apl_drv) = {
|
||||||
|
.name = "cpu_x86_apl",
|
||||||
|
.id = UCLASS_CPU,
|
||||||
|
.of_match = cpu_x86_apl_ids,
|
||||||
|
.bind = cpu_x86_bind,
|
||||||
|
.ops = &cpu_x86_apl_ops,
|
||||||
|
.flags = DM_FLAG_PRE_RELOC,
|
||||||
|
};
|
17
arch/x86/cpu/apollolake/cpu_common.c
Normal file
17
arch/x86/cpu/apollolake/cpu_common.c
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Copyright 2019 Google LLC
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <asm/cpu_common.h>
|
||||||
|
#include <asm/msr.h>
|
||||||
|
|
||||||
|
void cpu_flush_l1d_to_l2(void)
|
||||||
|
{
|
||||||
|
struct msr_t msr;
|
||||||
|
|
||||||
|
msr = msr_read(MSR_POWER_MISC);
|
||||||
|
msr.lo |= FLUSH_DL1_L2;
|
||||||
|
msr_write(MSR_POWER_MISC, msr);
|
||||||
|
}
|
20
arch/x86/include/asm/arch-apollolake/cpu.h
Normal file
20
arch/x86/include/asm/arch-apollolake/cpu.h
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||||||
|
/*
|
||||||
|
* Copyright 2019 Google LLC
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _ASM_ARCH_CPU_H
|
||||||
|
#define _ASM_ARCH_CPU_H
|
||||||
|
|
||||||
|
/* Common Timer Copy (CTC) frequency - 19.2MHz */
|
||||||
|
#define CTC_FREQ 19200000
|
||||||
|
|
||||||
|
#define MAX_PCIE_PORTS 6
|
||||||
|
#define CLKREQ_DISABLED 0xf
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
/* Flush L1D to L2 */
|
||||||
|
void cpu_flush_l1d_to_l2(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _ASM_ARCH_CPU_H */
|
|
@ -70,6 +70,7 @@
|
||||||
#define MSR_IA32_BBL_CR_CTL 0x00000119
|
#define MSR_IA32_BBL_CR_CTL 0x00000119
|
||||||
#define MSR_IA32_BBL_CR_CTL3 0x0000011e
|
#define MSR_IA32_BBL_CR_CTL3 0x0000011e
|
||||||
#define MSR_POWER_MISC 0x00000120
|
#define MSR_POWER_MISC 0x00000120
|
||||||
|
#define FLUSH_DL1_L2 (1 << 8)
|
||||||
#define ENABLE_ULFM_AUTOCM_MASK (1 << 2)
|
#define ENABLE_ULFM_AUTOCM_MASK (1 << 2)
|
||||||
#define ENABLE_INDP_AUTOCM_MASK (1 << 3)
|
#define ENABLE_INDP_AUTOCM_MASK (1 << 3)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue