diff options
author | Simon Glass <sjg@chromium.org> | 2016-01-17 16:11:24 -0700 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2016-01-24 12:08:17 +0800 |
commit | 9d156b57257cfbf2b5343e5c9cbb4111dee4291f (patch) | |
tree | 8f8921caf1d3540cb76a6af18e495202590ddeca /arch/x86/cpu | |
parent | bba22a97a7e143560b137c9a2d9fcf6dbd038470 (diff) | |
download | u-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.c | 6 | ||||
-rw-r--r-- | arch/x86/cpu/ivybridge/model_206ax.c | 5 |
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; } |