From 9d156b57257cfbf2b5343e5c9cbb4111dee4291f Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 17 Jan 2016 16:11:24 -0700 Subject: 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 Reviewed-by: Bin Meng --- arch/x86/cpu/ivybridge/bd82x6x.c | 6 ------ arch/x86/cpu/ivybridge/model_206ax.c | 5 ++++- arch/x86/include/asm/arch-ivybridge/bd82x6x.h | 15 --------------- 3 files changed, 4 insertions(+), 22 deletions(-) (limited to 'arch') diff --git a/arch/x86/cpu/ivybridge/bd82x6x.c b/arch/x86/cpu/ivybridge/bd82x6x.c index c71596d0739..149c1d23f12 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 9fa1226b1ff..6ab6edec20d 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; } diff --git a/arch/x86/include/asm/arch-ivybridge/bd82x6x.h b/arch/x86/include/asm/arch-ivybridge/bd82x6x.h index d76cb8dd789..fc7fc6d14bb 100644 --- a/arch/x86/include/asm/arch-ivybridge/bd82x6x.h +++ b/arch/x86/include/asm/arch-ivybridge/bd82x6x.h @@ -15,19 +15,4 @@ void bd82x6x_usb_xhci_init(pci_dev_t dev); int gma_func0_init(struct udevice *dev, const void *blob, int node); int bd82x6x_init_extra(void); -/** - * struct x86_cpu_priv - Information about a single CPU - * - * @apic_id: Advanced Programmable Interrupt Controller Identifier, which is - * just a number representing the CPU core - * - * TODO: Move this to driver model once lifecycle is understood - */ -struct x86_cpu_priv { - int apic_id; - int start_err; -}; - -int model_206ax_init(struct x86_cpu_priv *cpu); - #endif -- cgit v1.2.3