diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h index 1fe12e5230..7363132a19 100644 --- a/src/arch/x86/include/arch/cpu.h +++ b/src/arch/x86/include/arch/cpu.h @@ -138,6 +138,7 @@ static inline unsigned int cpuid_edx(unsigned int op) #define X86_VENDOR_TRANSMETA 8 #define X86_VENDOR_NSC 9 #define X86_VENDOR_SIS 10 +#define X86_VENDOR_ANY 0xfe #define X86_VENDOR_UNKNOWN 0xff #if !defined(__PRE_RAM__) && !defined(__SMM__) diff --git a/src/arch/x86/lib/cpu.c b/src/arch/x86/lib/cpu.c index be8e38da13..bddfe1ae12 100644 --- a/src/arch/x86/lib/cpu.c +++ b/src/arch/x86/lib/cpu.c @@ -223,6 +223,8 @@ struct cpu_driver *find_cpu_driver(struct device *cpu) { return driver; } + if (X86_VENDOR_ANY == id->vendor) + return driver; } } return NULL; diff --git a/src/cpu/Kconfig b/src/cpu/Kconfig index dd28cb7ff8..d1e52376dd 100644 --- a/src/cpu/Kconfig +++ b/src/cpu/Kconfig @@ -14,6 +14,7 @@ if ARCH_X86 source src/cpu/amd/Kconfig source src/cpu/intel/Kconfig source src/cpu/via/Kconfig +source src/cpu/qemu-x86/Kconfig source src/cpu/x86/Kconfig config CACHE_AS_RAM diff --git a/src/cpu/Makefile.inc b/src/cpu/Makefile.inc index 25ef424f35..8b9d0747c8 100644 --- a/src/cpu/Makefile.inc +++ b/src/cpu/Makefile.inc @@ -8,6 +8,7 @@ subdirs-y += samsung subdirs-y += ti subdirs-y += via subdirs-y += x86 +subdirs-$(CONFIG_CPU_QEMU_X86) += qemu-x86 ################################################################################ ## Rules for building the microcode blob in CBFS diff --git a/src/cpu/qemu-x86/Kconfig b/src/cpu/qemu-x86/Kconfig new file mode 100644 index 0000000000..6c5c3fd4d4 --- /dev/null +++ b/src/cpu/qemu-x86/Kconfig @@ -0,0 +1,21 @@ +## +## This file is part of the coreboot project. +## +## Copyright (C) 2013 Gerd Hoffmann +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; version 2 of the License. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +## + +config CPU_QEMU_X86 + bool diff --git a/src/cpu/qemu-x86/Makefile.inc b/src/cpu/qemu-x86/Makefile.inc new file mode 100644 index 0000000000..e206b4d72f --- /dev/null +++ b/src/cpu/qemu-x86/Makefile.inc @@ -0,0 +1,21 @@ +## +## This file is part of the coreboot project. +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +## + +ramstage-y += qemu.c +subdirs-y += ../x86/mtrr +subdirs-y += ../x86/lapic diff --git a/src/cpu/qemu-x86/qemu.c b/src/cpu/qemu-x86/qemu.c new file mode 100644 index 0000000000..c27a1eeed7 --- /dev/null +++ b/src/cpu/qemu-x86/qemu.c @@ -0,0 +1,37 @@ +/* + * This file is part of the coreboot project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +static struct device_operations cpu_dev_ops = { +}; + +static struct cpu_device_id cpu_table[] = { + { X86_VENDOR_ANY, 0 }, + { 0, 0 }, +}; + +static const struct cpu_driver driver __cpu_driver = { + .ops = &cpu_dev_ops, + .id_table = cpu_table, +}; + +struct chip_operations cpu_x86_qemu_ops = { + CHIP_NAME("QEMU x86 CPU") +};