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_TRANSMETA 8
|
||||||
#define X86_VENDOR_NSC 9
|
#define X86_VENDOR_NSC 9
|
||||||
#define X86_VENDOR_SIS 10
|
#define X86_VENDOR_SIS 10
|
||||||
|
#define X86_VENDOR_ANY 0xfe
|
||||||
#define X86_VENDOR_UNKNOWN 0xff
|
#define X86_VENDOR_UNKNOWN 0xff
|
||||||
|
|
||||||
#if !defined(__PRE_RAM__) && !defined(__SMM__)
|
#if !defined(__PRE_RAM__) && !defined(__SMM__)
|
||||||
|
|
|
@ -223,6 +223,8 @@ struct cpu_driver *find_cpu_driver(struct device *cpu)
|
||||||
{
|
{
|
||||||
return driver;
|
return driver;
|
||||||
}
|
}
|
||||||
|
if (X86_VENDOR_ANY == id->vendor)
|
||||||
|
return driver;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -14,6 +14,7 @@ if ARCH_X86
|
||||||
source src/cpu/amd/Kconfig
|
source src/cpu/amd/Kconfig
|
||||||
source src/cpu/intel/Kconfig
|
source src/cpu/intel/Kconfig
|
||||||
source src/cpu/via/Kconfig
|
source src/cpu/via/Kconfig
|
||||||
|
source src/cpu/qemu-x86/Kconfig
|
||||||
source src/cpu/x86/Kconfig
|
source src/cpu/x86/Kconfig
|
||||||
|
|
||||||
config CACHE_AS_RAM
|
config CACHE_AS_RAM
|
||||||
|
|
|
@ -8,6 +8,7 @@ subdirs-y += samsung
|
||||||
subdirs-y += ti
|
subdirs-y += ti
|
||||||
subdirs-y += via
|
subdirs-y += via
|
||||||
subdirs-y += x86
|
subdirs-y += x86
|
||||||
|
subdirs-$(CONFIG_CPU_QEMU_X86) += qemu-x86
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
## Rules for building the microcode blob in CBFS
|
## 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