qemu: add x86 cpu
This patch adds a qemu x86 cpu chip. It has no initialization function as this isn't needed on virtual hardware. A virtual machine can have pretty much any CPU: qemu emulates a wide range of x86 CPUs (try 'qemu -cpu ? for a list), also with 'qemu -cpu host' the guest will see a cpu which is (almost) identical to the one on the host machine. So I've added X86_VENDOR_ANY as wildcard match for the cpu_table. Change-Id: Ib01210694b09702e41ed806f31d0033e840a863f Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-on: http://review.coreboot.org/3344 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
a53266bee0
commit
cbf30736b6
|
@ -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__)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
##
|
||||
## This file is part of the coreboot project.
|
||||
##
|
||||
## Copyright (C) 2013 Gerd Hoffmann <kraxel@redhat.com>
|
||||
##
|
||||
## 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
|
|
@ -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
|
|
@ -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 <cpu/cpu.h>
|
||||
#include <device/device.h>
|
||||
|
||||
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")
|
||||
};
|
Loading…
Reference in New Issue