1 /* 2 * Copyright (C) 2014, Bin Meng <bmeng.cn@gmail.com> 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <common.h> 8 #include <mmc.h> 9 #include <pci_ids.h> 10 #include <asm/irq.h> 11 #include <asm/mrccache.h> 12 #include <asm/post.h> 13 14 static struct pci_device_id mmc_supported[] = { 15 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SDIO }, 16 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SDCARD }, 17 }; 18 19 int cpu_mmc_init(bd_t *bis) 20 { 21 return pci_mmc_init("ValleyView SDHCI", mmc_supported, 22 ARRAY_SIZE(mmc_supported)); 23 } 24 25 #ifndef CONFIG_EFI_APP 26 int arch_cpu_init(void) 27 { 28 int ret; 29 30 post_code(POST_CPU_INIT); 31 32 ret = x86_cpu_init_f(); 33 if (ret) 34 return ret; 35 36 return 0; 37 } 38 39 int arch_misc_init(void) 40 { 41 if (!ll_boot_init()) 42 return 0; 43 44 #ifdef CONFIG_ENABLE_MRC_CACHE 45 /* 46 * We intend not to check any return value here, as even MRC cache 47 * is not saved successfully, it is not a severe error that will 48 * prevent system from continuing to boot. 49 */ 50 mrccache_save(); 51 #endif 52 53 return pirq_init(); 54 } 55 56 int reserve_arch(void) 57 { 58 #ifdef CONFIG_ENABLE_MRC_CACHE 59 return mrccache_reserve(); 60 #else 61 return 0; 62 #endif 63 } 64 #endif 65 66 void reset_cpu(ulong addr) 67 { 68 /* cold reset */ 69 x86_full_reset(); 70 } 71