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 <s...@chromium.org> --- 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(-) diff --git a/arch/x86/cpu/ivybridge/bd82x6x.c b/arch/x86/cpu/ivybridge/bd82x6x.c index 2222fb5..cf30a3a 100644 --- a/arch/x86/cpu/ivybridge/bd82x6x.c +++ b/arch/x86/cpu/ivybridge/bd82x6x.c @@ -60,7 +60,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; @@ -80,11 +79,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; } diff --git a/arch/x86/include/asm/arch-ivybridge/bd82x6x.h b/arch/x86/include/asm/arch-ivybridge/bd82x6x.h index d76cb8d..fc7fc6d 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 -- 2.6.0.rc2.230.g3dd15c0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot