diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 5f9597b230..dfdd7564ea 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -80,6 +80,20 @@ config VENDOR_INTEL endchoice +# subarchitectures-specific options below +config INTEL_MID + bool "Intel MID platform support" + help + Select to build a U-Boot capable of supporting Intel MID + (Mobile Internet Device) platform systems which do not have + the PCI legacy interfaces. + + If you are building for a PC class system say N here. + + Intel MID platforms are based on an Intel processor and + chipset which consume less power than most of the x86 + derivatives. + # board-specific options below source "board/advantech/Kconfig" source "board/congatec/Kconfig" diff --git a/arch/x86/cpu/i386/interrupt.c b/arch/x86/cpu/i386/interrupt.c index a05830326b..ba576fef3c 100644 --- a/arch/x86/cpu/i386/interrupt.c +++ b/arch/x86/cpu/i386/interrupt.c @@ -28,7 +28,7 @@ DECLARE_GLOBAL_DATA_PTR; ".type irq_"#x", @function\n" \ "irq_"#x":\n" \ "pushl $"#x"\n" \ - "jmp irq_common_entry\n" + "jmp.d32 irq_common_entry\n" static char *exceptions[] = { "Divide Error", diff --git a/arch/x86/cpu/mp_init.c b/arch/x86/cpu/mp_init.c index 988073cc79..cfd9bb447b 100644 --- a/arch/x86/cpu/mp_init.c +++ b/arch/x86/cpu/mp_init.c @@ -248,7 +248,8 @@ static int load_sipi_vector(atomic_t **ap_countp, int num_cpus) if (!stack) return -ENOMEM; params->stack_top = (u32)(stack + size); -#if !defined(CONFIG_QEMU) && !defined(CONFIG_HAVE_FSP) +#if !defined(CONFIG_QEMU) && !defined(CONFIG_HAVE_FSP) && \ + !defined(CONFIG_INTEL_MID) params->microcode_ptr = ucode_base; debug("Microcode at %x\n", params->microcode_ptr); #endif diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c index b6b0f2beb3..aafbeb01f9 100644 --- a/arch/x86/lib/zimage.c +++ b/arch/x86/lib/zimage.c @@ -246,6 +246,10 @@ int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot, hdr->setup_move_size = 0x9100; } +#if defined(CONFIG_INTEL_MID) + hdr->hardware_subarch = X86_SUBARCH_INTEL_MID; +#endif + /* build command line at COMMAND_LINE_OFFSET */ build_command_line(cmd_line, auto_boot); }