summaryrefslogtreecommitdiff
path: root/arch/x86/cpu
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-01-17 16:11:24 -0700
committerBin Meng <bmeng.cn@gmail.com>2016-01-24 12:08:17 +0800
commit9d156b57257cfbf2b5343e5c9cbb4111dee4291f (patch)
tree8f8921caf1d3540cb76a6af18e495202590ddeca /arch/x86/cpu
parentbba22a97a7e143560b137c9a2d9fcf6dbd038470 (diff)
downloadu-boot-imx-9d156b57257cfbf2b5343e5c9cbb4111dee4291f.zip
u-boot-imx-9d156b57257cfbf2b5343e5c9cbb4111dee4291f.tar.gz
u-boot-imx-9d156b57257cfbf2b5343e5c9cbb4111dee4291f.tar.bz2
x86: ivybridge: Move CPU init code into the driver
Use the CPU driver's probe() method to perform the CPU init. This will happen automatically when the first CPU is probed. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/cpu')
-rw-r--r--arch/x86/cpu/ivybridge/bd82x6x.c6
-rw-r--r--arch/x86/cpu/ivybridge/model_206ax.c5
2 files changed, 4 insertions, 7 deletions
diff --git a/arch/x86/cpu/ivybridge/bd82x6x.c b/arch/x86/cpu/ivybridge/bd82x6x.c
index c71596d..149c1d2 100644
--- a/arch/x86/cpu/ivybridge/bd82x6x.c
+++ b/arch/x86/cpu/ivybridge/bd82x6x.c
@@ -61,7 +61,6 @@ static int bd82x6x_probe(struct udevice *dev)
{
const void *blob = gd->fdt_blob;
struct pci_controller *hose;
- struct x86_cpu_priv *cpu;
int sata_node, gma_node;
int ret;
@@ -81,11 +80,6 @@ static int bd82x6x_probe(struct udevice *dev)
bd82x6x_usb_ehci_init(PCH_EHCI1_DEV);
bd82x6x_usb_ehci_init(PCH_EHCI2_DEV);
- cpu = calloc(1, sizeof(*cpu));
- if (!cpu)
- return -ENOMEM;
- model_206ax_init(cpu);
-
gma_node = fdtdec_next_compatible(blob, 0, COMPAT_INTEL_GMA);
if (gma_node < 0) {
debug("%s: Cannot find GMA node\n", __func__);
diff --git a/arch/x86/cpu/ivybridge/model_206ax.c b/arch/x86/cpu/ivybridge/model_206ax.c
index 9fa1226..6ab6ede 100644
--- a/arch/x86/cpu/ivybridge/model_206ax.c
+++ b/arch/x86/cpu/ivybridge/model_206ax.c
@@ -403,7 +403,7 @@ static void configure_mca(void)
static unsigned ehci_debug_addr;
#endif
-int model_206ax_init(struct x86_cpu_priv *cpu)
+static int model_206ax_init(void)
{
int ret;
@@ -480,6 +480,9 @@ static int model_206ax_get_count(struct udevice *dev)
static int cpu_x86_model_206ax_probe(struct udevice *dev)
{
+ if (dev->seq == 0)
+ model_206ax_init();
+
return 0;
}