037e637
From af4c83ed637bfda003ae86133413d53cefda3654 Mon Sep 17 00:00:00 2001
Danilo C. L. de Paula 58305ef
From: Miroslav Rezanina <mrezanin@redhat.com>
f788c13
Date: Thu, 15 Jul 2021 03:22:36 -0400
Danilo C. L. de Paula a711492
Subject: Enable/disable devices for RHEL
Danilo C. L. de Paula 58305ef
Danilo C. L. de Paula a711492
This commit adds all changes related to changes in supported devices.
Danilo C. L. de Paula 58305ef
Danilo C. L. de Paula 58305ef
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
f788c13
--
037e637
Rebase notes (6.1.0):
f788c13
- Added CONFIG_TPM (except s390x)
f788c13
- default-configs moved to configs
f788c13
- Use --with-device-<ARCH> configure option to use rhel configs
f788c13
037e637
Rebase notes (6.2.0 RC0):
037e637
- Add CONFIG_ISA_FDC
f788c13
037e637
Rebase notes (6.2.0 RC3):
037e637
- Do not remove -no-hpet documentation
037e637
037e637
Merged patches (6.1.0):
037e637
- c51bf45304 Remove SPICE and QXL from x86_64-rh-devices.mak
f788c13
- 02fc745601 aarch64-rh-devices: add CONFIG_PVPANIC_PCI
f788c13
- f2fe835153 aarch64-rh-devices: add CONFIG_PXB
f788c13
- b5431733ad disable CONFIG_USB_STORAGE_BOT
f788c13
- 478ba0cdf6 Disable TPM passthrough
f788c13
- 2504d68a7c aarch64: Add USB storage devices
f788c13
- 51c2a3253c disable ac97 audio
037e637
037e637
Merged patches (6.2.0 RC0):
037e637
- 9f2f9fa2ba disable sga device
Danilo C. L. de Paula 58305ef
---
037e637
 .distro/qemu-kvm.spec.template                |   9 +-
f788c13
 .../aarch64-softmmu/aarch64-rh-devices.mak    |  33 ++++++
f788c13
 .../ppc64-softmmu/ppc64-rh-devices.mak        |  35 ++++++
f788c13
 configs/devices/rh-virtio.mak                 |  10 ++
f788c13
 .../s390x-softmmu/s390x-rh-devices.mak        |  15 +++
f788c13
 .../x86_64-softmmu/x86_64-rh-devices.mak      | 102 ++++++++++++++++++
f788c13
 .../x86_64-upstream-devices.mak               |   4 +
eea10ec
 hw/acpi/ich9.c                                |   4 +-
eea10ec
 hw/arm/meson.build                            |   2 +-
eea10ec
 hw/block/fdc.c                                |  10 ++
28609d5
 hw/char/parallel.c                            |   9 ++
eea10ec
 hw/cpu/meson.build                            |   5 +-
eea10ec
 hw/display/cirrus_vga.c                       |   3 +
eea10ec
 hw/ide/piix.c                                 |   5 +-
eea10ec
 hw/input/pckbd.c                              |   2 +
eea10ec
 hw/net/e1000.c                                |   2 +
eea10ec
 hw/ppc/spapr_cpu_core.c                       |   2 +
28609d5
 hw/timer/hpet.c                               |   8 ++
eea10ec
 hw/usb/meson.build                            |   2 +-
28609d5
 target/arm/cpu_tcg.c                          |  10 ++
eea10ec
 target/ppc/cpu-models.c                       |  10 ++
f788c13
 target/s390x/cpu_models_sysemu.c              |   3 +
f788c13
 target/s390x/kvm/kvm.c                        |   8 ++
037e637
 23 files changed, 283 insertions(+), 10 deletions(-)
f788c13
 create mode 100644 configs/devices/aarch64-softmmu/aarch64-rh-devices.mak
f788c13
 create mode 100644 configs/devices/ppc64-softmmu/ppc64-rh-devices.mak
f788c13
 create mode 100644 configs/devices/rh-virtio.mak
f788c13
 create mode 100644 configs/devices/s390x-softmmu/s390x-rh-devices.mak
f788c13
 create mode 100644 configs/devices/x86_64-softmmu/x86_64-rh-devices.mak
f788c13
 create mode 100644 configs/devices/x86_64-softmmu/x86_64-upstream-devices.mak
Danilo C. L. de Paula 58305ef
f788c13
diff --git a/configs/devices/aarch64-softmmu/aarch64-rh-devices.mak b/configs/devices/aarch64-softmmu/aarch64-rh-devices.mak
Danilo C. L. de Paula 837556b
new file mode 100644
f788c13
index 0000000000..cd9c7c5127
Danilo C. L. de Paula 837556b
--- /dev/null
f788c13
+++ b/configs/devices/aarch64-softmmu/aarch64-rh-devices.mak
f788c13
@@ -0,0 +1,33 @@
f788c13
+include ../rh-virtio.mak
Danilo C. L. de Paula 837556b
+
Danilo C. L. de Paula 837556b
+CONFIG_ARM_GIC_KVM=y
7de5fc2
+CONFIG_ARM_GIC=y
Danilo C. L. de Paula 837556b
+CONFIG_ARM_SMMUV3=y
Danilo C. L. de Paula 837556b
+CONFIG_ARM_V7M=y
Danilo C. L. de Paula 837556b
+CONFIG_ARM_VIRT=y
Danilo C. L. de Paula 837556b
+CONFIG_EDID=y
Danilo C. L. de Paula 837556b
+CONFIG_PCIE_PORT=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI_DEVICES=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI_TESTDEV=y
Danilo C. L. de Paula 837556b
+CONFIG_PFLASH_CFI01=y
Danilo C. L. de Paula 837556b
+CONFIG_SCSI=y
4133116
+CONFIG_SEMIHOSTING=y
Danilo C. L. de Paula 837556b
+CONFIG_USB=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_XHCI=y
7de5fc2
+CONFIG_USB_XHCI_PCI=y
f788c13
+CONFIG_USB_STORAGE_CORE=y
f788c13
+CONFIG_USB_STORAGE_CLASSIC=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_MMIO=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_XIO3130=y
Danilo C. L. de Paula 3a50cdf
+CONFIG_NVDIMM=y
Danilo C. L. de Paula 3a50cdf
+CONFIG_ACPI_APEI=y
f788c13
+CONFIG_TPM=y
7de5fc2
+CONFIG_TPM_EMULATOR=y
7de5fc2
+CONFIG_TPM_TIS_SYSBUS=y
7de5fc2
+CONFIG_PTIMER=y
28609d5
+CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y
f788c13
+CONFIG_PVPANIC_PCI=y
f788c13
+CONFIG_PXB=y
f788c13
diff --git a/configs/devices/ppc64-softmmu/ppc64-rh-devices.mak b/configs/devices/ppc64-softmmu/ppc64-rh-devices.mak
Danilo C. L. de Paula 837556b
new file mode 100644
f788c13
index 0000000000..6a3e3f0227
Danilo C. L. de Paula 837556b
--- /dev/null
f788c13
+++ b/configs/devices/ppc64-softmmu/ppc64-rh-devices.mak
f788c13
@@ -0,0 +1,35 @@
f788c13
+include ../rh-virtio.mak
Danilo C. L. de Paula 837556b
+
Danilo C. L. de Paula 837556b
+CONFIG_DIMM=y
Danilo C. L. de Paula 837556b
+CONFIG_MEM_DEVICE=y
Danilo C. L. de Paula d0bd086
+CONFIG_NVDIMM=y
Danilo C. L. de Paula 58305ef
+CONFIG_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI_DEVICES=y
Danilo C. L. de Paula 58305ef
+CONFIG_PCI_TESTDEV=y
Danilo C. L. de Paula d0bd086
+CONFIG_PCI_EXPRESS=y
Danilo C. L. de Paula 837556b
+CONFIG_PSERIES=y
Danilo C. L. de Paula 837556b
+CONFIG_SCSI=y
Danilo C. L. de Paula 837556b
+CONFIG_SPAPR_VSCSI=y
Danilo C. L. de Paula 837556b
+CONFIG_TEST_DEVICES=y
Danilo C. L. de Paula 58305ef
+CONFIG_USB=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_OHCI=y
4133116
+CONFIG_USB_OHCI_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_SMARTCARD=y
28609d5
+CONFIG_USB_STORAGE_CORE=y
28609d5
+CONFIG_USB_STORAGE_CLASSIC=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_XHCI=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_XHCI_NEC=y
7de5fc2
+CONFIG_USB_XHCI_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VGA=y
Danilo C. L. de Paula 837556b
+CONFIG_VGA_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VHOST_USER=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_VGA=y
Danilo C. L. de Paula 837556b
+CONFIG_WDT_IB6300ESB=y
Danilo C. L. de Paula 837556b
+CONFIG_XICS=y
Danilo C. L. de Paula 837556b
+CONFIG_XIVE=y
f788c13
+CONFIG_TPM=y
7de5fc2
+CONFIG_TPM_SPAPR=y
7de5fc2
+CONFIG_TPM_EMULATOR=y
f788c13
diff --git a/configs/devices/rh-virtio.mak b/configs/devices/rh-virtio.mak
Danilo C. L. de Paula 837556b
new file mode 100644
eea10ec
index 0000000000..94ede1b5f6
Danilo C. L. de Paula 837556b
--- /dev/null
f788c13
+++ b/configs/devices/rh-virtio.mak
Danilo C. L. de Paula 837556b
@@ -0,0 +1,10 @@
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_BALLOON=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_BLK=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_GPU=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_INPUT=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_INPUT_HOST=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_NET=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_RNG=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_SCSI=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_SERIAL=y
f788c13
diff --git a/configs/devices/s390x-softmmu/s390x-rh-devices.mak b/configs/devices/s390x-softmmu/s390x-rh-devices.mak
Danilo C. L. de Paula 837556b
new file mode 100644
f788c13
index 0000000000..d3b38312e1
Danilo C. L. de Paula 837556b
--- /dev/null
f788c13
+++ b/configs/devices/s390x-softmmu/s390x-rh-devices.mak
f788c13
@@ -0,0 +1,15 @@
f788c13
+include ../rh-virtio.mak
Danilo C. L. de Paula 837556b
+
Danilo C. L. de Paula 837556b
+CONFIG_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_S390_CCW_VIRTIO=y
Danilo C. L. de Paula 837556b
+CONFIG_S390_FLIC=y
Danilo C. L. de Paula 837556b
+CONFIG_S390_FLIC_KVM=y
Danilo C. L. de Paula 837556b
+CONFIG_SCLPCONSOLE=y
Danilo C. L. de Paula 837556b
+CONFIG_SCSI=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO_AP=y
28609d5
+CONFIG_VFIO_CCW=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VHOST_USER=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_CCW=y
Danilo C. L. de Paula 837556b
+CONFIG_WDT_DIAG288=y
f788c13
diff --git a/configs/devices/x86_64-softmmu/x86_64-rh-devices.mak b/configs/devices/x86_64-softmmu/x86_64-rh-devices.mak
Danilo C. L. de Paula 837556b
new file mode 100644
037e637
index 0000000000..1f7a9ab024
Danilo C. L. de Paula 837556b
--- /dev/null
f788c13
+++ b/configs/devices/x86_64-softmmu/x86_64-rh-devices.mak
f788c13
@@ -0,0 +1,102 @@
f788c13
+include ../rh-virtio.mak
f788c13
+include x86_64-upstream-devices.mak
Danilo C. L. de Paula 837556b
+
Danilo C. L. de Paula 837556b
+CONFIG_ACPI=y
4133116
+CONFIG_ACPI_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_ACPI_CPU_HOTPLUG=y
Danilo C. L. de Paula 837556b
+CONFIG_ACPI_MEMORY_HOTPLUG=y
Danilo C. L. de Paula 837556b
+CONFIG_ACPI_NVDIMM=y
Danilo C. L. de Paula 837556b
+CONFIG_ACPI_SMBUS=y
Danilo C. L. de Paula 837556b
+CONFIG_ACPI_VMGENID=y
Danilo C. L. de Paula 837556b
+CONFIG_ACPI_X86=y
Danilo C. L. de Paula 837556b
+CONFIG_ACPI_X86_ICH=y
Danilo C. L. de Paula 837556b
+CONFIG_AHCI=y
Danilo C. L. de Paula 837556b
+CONFIG_APIC=y
Danilo C. L. de Paula 837556b
+CONFIG_APM=y
4133116
+CONFIG_BOCHS_DISPLAY=y
Danilo C. L. de Paula 837556b
+CONFIG_DIMM=y
Danilo C. L. de Paula 837556b
+CONFIG_E1000E_PCI_EXPRESS=y
Danilo C. L. de Paula 837556b
+CONFIG_E1000_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_EDU=y
Danilo C. L. de Paula 837556b
+CONFIG_FDC=y
f788c13
+CONFIG_FDC_SYSBUS=y
037e637
+CONFIG_FDC_ISA=y
Danilo C. L. de Paula 837556b
+CONFIG_FW_CFG_DMA=y
Danilo C. L. de Paula 837556b
+CONFIG_HDA=y
Danilo C. L. de Paula 837556b
+CONFIG_HYPERV=y
Danilo C. L. de Paula 837556b
+CONFIG_HYPERV_TESTDEV=y
Danilo C. L. de Paula 837556b
+CONFIG_I2C=y
Danilo C. L. de Paula 837556b
+CONFIG_I440FX=y
Danilo C. L. de Paula 837556b
+CONFIG_I8254=y
Danilo C. L. de Paula 837556b
+CONFIG_I8257=y
Danilo C. L. de Paula 837556b
+CONFIG_I8259=y
Danilo C. L. de Paula 837556b
+CONFIG_I82801B11=y
Danilo C. L. de Paula 837556b
+CONFIG_IDE_CORE=y
Danilo C. L. de Paula 837556b
+CONFIG_IDE_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_IDE_PIIX=y
Danilo C. L. de Paula 837556b
+CONFIG_IDE_QDEV=y
Danilo C. L. de Paula 837556b
+CONFIG_IOAPIC=y
Danilo C. L. de Paula 837556b
+CONFIG_IOH3420=y
Danilo C. L. de Paula 837556b
+CONFIG_ISA_BUS=y
Danilo C. L. de Paula 837556b
+CONFIG_ISA_DEBUG=y
Danilo C. L. de Paula 837556b
+CONFIG_ISA_TESTDEV=y
Danilo C. L. de Paula 837556b
+CONFIG_LPC_ICH9=y
Danilo C. L. de Paula 837556b
+CONFIG_MC146818RTC=y
Danilo C. L. de Paula 837556b
+CONFIG_MEM_DEVICE=y
Danilo C. L. de Paula 837556b
+CONFIG_NVDIMM=y
Danilo C. L. de Paula 837556b
+CONFIG_OPENGL=y
Danilo C. L. de Paula 837556b
+CONFIG_PAM=y
Danilo C. L. de Paula 837556b
+CONFIG_PC=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_PCIE_PORT=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI_DEVICES=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI_EXPRESS=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI_EXPRESS_Q35=y
Danilo C. L. de Paula 48cefcd
+CONFIG_PCI_I440FX=y
Danilo C. L. de Paula 837556b
+CONFIG_PCI_TESTDEV=y
Danilo C. L. de Paula 837556b
+CONFIG_PCKBD=y
Danilo C. L. de Paula 837556b
+CONFIG_PCSPK=y
Danilo C. L. de Paula 837556b
+CONFIG_PC_ACPI=y
Danilo C. L. de Paula 837556b
+CONFIG_PC_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_PFLASH_CFI01=y
28609d5
+CONFIG_PVPANIC_ISA=y
Danilo C. L. de Paula 837556b
+CONFIG_PXB=y
Danilo C. L. de Paula 837556b
+CONFIG_Q35=y
Danilo C. L. de Paula 837556b
+CONFIG_RTL8139_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_SCSI=y
Danilo C. L. de Paula 837556b
+CONFIG_SERIAL=y
Danilo C. L. de Paula 837556b
+CONFIG_SERIAL_ISA=y
Danilo C. L. de Paula 837556b
+CONFIG_SERIAL_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_SEV=y
Danilo C. L. de Paula 837556b
+CONFIG_SMBIOS=y
Danilo C. L. de Paula 837556b
+CONFIG_SMBUS_EEPROM=y
Danilo C. L. de Paula 837556b
+CONFIG_TEST_DEVICES=y
Danilo C. L. de Paula 837556b
+CONFIG_USB=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_EHCI=y
4133116
+CONFIG_USB_EHCI_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_SMARTCARD=y
28609d5
+CONFIG_USB_STORAGE_CORE=y
28609d5
+CONFIG_USB_STORAGE_CLASSIC=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_UHCI=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_XHCI=y
Danilo C. L. de Paula 837556b
+CONFIG_USB_XHCI_NEC=y
7de5fc2
+CONFIG_USB_XHCI_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO=y
Danilo C. L. de Paula 837556b
+CONFIG_VFIO_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VGA=y
Danilo C. L. de Paula 837556b
+CONFIG_VGA_CIRRUS=y
Danilo C. L. de Paula 837556b
+CONFIG_VGA_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VHOST_USER=y
28609d5
+CONFIG_VHOST_USER_BLK=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_PCI=y
Danilo C. L. de Paula 837556b
+CONFIG_VIRTIO_VGA=y
Danilo C. L. de Paula 837556b
+CONFIG_VMMOUSE=y
Danilo C. L. de Paula 837556b
+CONFIG_VMPORT=y
Danilo C. L. de Paula 837556b
+CONFIG_VTD=y
Danilo C. L. de Paula 837556b
+CONFIG_WDT_IB6300ESB=y
Danilo C. L. de Paula 837556b
+CONFIG_WDT_IB700=y
Danilo C. L. de Paula 837556b
+CONFIG_XIO3130=y
f788c13
+CONFIG_TPM=y
4133116
+CONFIG_TPM_CRB=y
7de5fc2
+CONFIG_TPM_TIS_ISA=y
4133116
+CONFIG_TPM_EMULATOR=y
f788c13
diff --git a/configs/devices/x86_64-softmmu/x86_64-upstream-devices.mak b/configs/devices/x86_64-softmmu/x86_64-upstream-devices.mak
28609d5
new file mode 100644
28609d5
index 0000000000..2cd20f54d2
28609d5
--- /dev/null
f788c13
+++ b/configs/devices/x86_64-softmmu/x86_64-upstream-devices.mak
28609d5
@@ -0,0 +1,4 @@
28609d5
+# We need "isa-parallel"
28609d5
+CONFIG_PARALLEL=y
28609d5
+# We need "hpet"
28609d5
+CONFIG_HPET=y
Danilo C. L. de Paula 58305ef
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
037e637
index ebe08ed831..381ef2ddcf 100644
Danilo C. L. de Paula 58305ef
--- a/hw/acpi/ich9.c
Danilo C. L. de Paula 58305ef
+++ b/hw/acpi/ich9.c
037e637
@@ -438,8 +438,8 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm)
Danilo C. L. de Paula 58305ef
     static const uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN;
Danilo C. L. de Paula 58305ef
     pm->acpi_memory_hotplug.is_enabled = true;
Danilo C. L. de Paula 58305ef
     pm->cpu_hotplug_legacy = true;
Danilo C. L. de Paula 58305ef
-    pm->disable_s3 = 0;
Danilo C. L. de Paula 58305ef
-    pm->disable_s4 = 0;
Danilo C. L. de Paula 58305ef
+    pm->disable_s3 = 1;
Danilo C. L. de Paula 58305ef
+    pm->disable_s4 = 1;
Danilo C. L. de Paula 58305ef
     pm->s4_val = 2;
f788c13
     pm->use_acpi_hotplug_bridge = true;
037e637
     pm->keep_pci_slot_hpc = true;
7de5fc2
diff --git a/hw/arm/meson.build b/hw/arm/meson.build
f788c13
index 721a8eb8be..87ed4dd914 100644
7de5fc2
--- a/hw/arm/meson.build
7de5fc2
+++ b/hw/arm/meson.build
f788c13
@@ -31,7 +31,7 @@ arm_ss.add(when: 'CONFIG_VEXPRESS', if_true: files('vexpress.c'))
7de5fc2
 arm_ss.add(when: 'CONFIG_ZYNQ', if_true: files('xilinx_zynq.c'))
7de5fc2
 arm_ss.add(when: 'CONFIG_SABRELITE', if_true: files('sabrelite.c'))
Danilo C. L. de Paula 58305ef
 
7de5fc2
-arm_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('armv7m.c'))
7de5fc2
+#arm_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('armv7m.c'))
7de5fc2
 arm_ss.add(when: 'CONFIG_EXYNOS4', if_true: files('exynos4210.c'))
7de5fc2
 arm_ss.add(when: 'CONFIG_PXA2XX', if_true: files('pxa2xx.c', 'pxa2xx_gpio.c', 'pxa2xx_pic.c'))
7de5fc2
 arm_ss.add(when: 'CONFIG_DIGIC', if_true: files('digic.c'))
Danilo C. L. de Paula 58305ef
diff --git a/hw/block/fdc.c b/hw/block/fdc.c
037e637
index 21d18ac2e3..97fa6de423 100644
Danilo C. L. de Paula 58305ef
--- a/hw/block/fdc.c
Danilo C. L. de Paula 58305ef
+++ b/hw/block/fdc.c
f788c13
@@ -48,6 +48,8 @@
7de5fc2
 #include "qom/object.h"
f788c13
 #include "fdc-internal.h"
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 837556b
+#include "hw/boards.h"
Danilo C. L. de Paula 837556b
+
Danilo C. L. de Paula 837556b
 /********************************************************/
Danilo C. L. de Paula 837556b
 /* debug Floppy devices */
Danilo C. L. de Paula 837556b
 
037e637
@@ -2337,6 +2339,14 @@ void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, Error **errp)
28609d5
     FDrive *drive;
Danilo C. L. de Paula 837556b
     static int command_tables_inited = 0;
Danilo C. L. de Paula 837556b
 
Danilo C. L. de Paula 837556b
+    /* Restricted for Red Hat Enterprise Linux: */
Danilo C. L. de Paula 837556b
+    MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
Danilo C. L. de Paula 837556b
+    if (!strstr(mc->name, "-rhel7.")) {
Danilo C. L. de Paula 837556b
+        error_setg(errp, "Device %s is not supported with machine type %s",
Danilo C. L. de Paula 837556b
+                   object_get_typename(OBJECT(dev)), mc->name);
Danilo C. L. de Paula 837556b
+        return;
Danilo C. L. de Paula 837556b
+    }
Danilo C. L. de Paula 837556b
+
Danilo C. L. de Paula 837556b
     if (fdctrl->fallback == FLOPPY_DRIVE_TYPE_AUTO) {
Danilo C. L. de Paula 837556b
         error_setg(errp, "Cannot choose a fallback FDrive type of 'auto'");
Danilo C. L. de Paula 3a50cdf
         return;
28609d5
diff --git a/hw/char/parallel.c b/hw/char/parallel.c
28609d5
index b45e67bfbb..e5f108211b 100644
28609d5
--- a/hw/char/parallel.c
28609d5
+++ b/hw/char/parallel.c
28609d5
@@ -29,6 +29,7 @@
28609d5
 #include "chardev/char-parallel.h"
28609d5
 #include "chardev/char-fe.h"
28609d5
 #include "hw/acpi/aml-build.h"
28609d5
+#include "hw/boards.h"
28609d5
 #include "hw/irq.h"
28609d5
 #include "hw/isa/isa.h"
28609d5
 #include "hw/qdev-properties.h"
28609d5
@@ -534,6 +535,14 @@ static void parallel_isa_realizefn(DeviceState *dev, Error **errp)
28609d5
     int base;
28609d5
     uint8_t dummy;
28609d5
 
28609d5
+    /* Restricted for Red Hat Enterprise Linux */
28609d5
+    MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
28609d5
+    if (strstr(mc->name, "rhel")) {
28609d5
+        error_setg(errp, "Device %s is not supported with machine type %s",
28609d5
+                   object_get_typename(OBJECT(dev)), mc->name);
28609d5
+        return;
28609d5
+    }
28609d5
+
28609d5
     if (!qemu_chr_fe_backend_connected(&s->chr)) {
28609d5
         error_setg(errp, "Can't create parallel device, empty char device");
28609d5
         return;
7de5fc2
diff --git a/hw/cpu/meson.build b/hw/cpu/meson.build
eea10ec
index 9e52fee9e7..bb71c9f3e7 100644
7de5fc2
--- a/hw/cpu/meson.build
7de5fc2
+++ b/hw/cpu/meson.build
7de5fc2
@@ -1,6 +1,7 @@
7de5fc2
-softmmu_ss.add(files('core.c', 'cluster.c'))
7de5fc2
+#softmmu_ss.add(files('core.c', 'cluster.c'))
7de5fc2
+softmmu_ss.add(files('core.c'))
7de5fc2
 
7de5fc2
 specific_ss.add(when: 'CONFIG_ARM11MPCORE', if_true: files('arm11mpcore.c'))
7de5fc2
 specific_ss.add(when: 'CONFIG_REALVIEW', if_true: files('realview_mpcore.c'))
7de5fc2
 specific_ss.add(when: 'CONFIG_A9MPCORE', if_true: files('a9mpcore.c'))
7de5fc2
-specific_ss.add(when: 'CONFIG_A15MPCORE', if_true: files('a15mpcore.c'))
7de5fc2
+#specific_ss.add(when: 'CONFIG_A15MPCORE', if_true: files('a15mpcore.c'))
Danilo C. L. de Paula fe3d84f
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
eea10ec
index fdca6ca659..fa1a7eee51 100644
Danilo C. L. de Paula fe3d84f
--- a/hw/display/cirrus_vga.c
Danilo C. L. de Paula fe3d84f
+++ b/hw/display/cirrus_vga.c
661065a
@@ -2945,6 +2945,9 @@ static void pci_cirrus_vga_realize(PCIDevice *dev, Error **errp)
Danilo C. L. de Paula fe3d84f
      PCIDeviceClass *pc = PCI_DEVICE_GET_CLASS(dev);
Danilo C. L. de Paula fe3d84f
      int16_t device_id = pc->device_id;
Danilo C. L. de Paula fe3d84f
 
Danilo C. L. de Paula fe3d84f
+     warn_report("'cirrus-vga' is deprecated, "
Danilo C. L. de Paula fe3d84f
+                 "please use a different VGA card instead");
Danilo C. L. de Paula fe3d84f
+
Danilo C. L. de Paula fe3d84f
      /* follow real hardware, cirrus card emulated has 4 MB video memory.
Danilo C. L. de Paula fe3d84f
        Also accept 8 MB/16 MB for backward compatibility. */
Danilo C. L. de Paula fe3d84f
      if (s->vga.vram_size_mb != 4 && s->vga.vram_size_mb != 8 &&
Danilo C. L. de Paula 58305ef
diff --git a/hw/ide/piix.c b/hw/ide/piix.c
037e637
index ce89fd0aa3..fbcf802b13 100644
Danilo C. L. de Paula 58305ef
--- a/hw/ide/piix.c
Danilo C. L. de Paula 58305ef
+++ b/hw/ide/piix.c
f788c13
@@ -232,7 +232,8 @@ static void piix3_ide_class_init(ObjectClass *klass, void *data)
Danilo C. L. de Paula 58305ef
     k->device_id = PCI_DEVICE_ID_INTEL_82371SB_1;
Danilo C. L. de Paula 58305ef
     k->class_id = PCI_CLASS_STORAGE_IDE;
Danilo C. L. de Paula 58305ef
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
Danilo C. L. de Paula 58305ef
-    dc->hotpluggable = false;
Danilo C. L. de Paula 58305ef
+    /* Disabled for Red Hat Enterprise Linux: */
Danilo C. L. de Paula 58305ef
+    dc->user_creatable = false;
Danilo C. L. de Paula 58305ef
 }
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 58305ef
 static const TypeInfo piix3_ide_info = {
f788c13
@@ -261,6 +262,8 @@ static void piix4_ide_class_init(ObjectClass *klass, void *data)
Danilo C. L. de Paula 58305ef
     k->class_id = PCI_CLASS_STORAGE_IDE;
Danilo C. L. de Paula 58305ef
     set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
Danilo C. L. de Paula 58305ef
     dc->hotpluggable = false;
Danilo C. L. de Paula 58305ef
+    /* Disabled for Red Hat Enterprise Linux: */
Danilo C. L. de Paula 58305ef
+    dc->user_creatable = false;
Danilo C. L. de Paula 58305ef
 }
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 58305ef
 static const TypeInfo piix4_ide_info = {
Danilo C. L. de Paula 58305ef
diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
f788c13
index baba62f357..bc360347ea 100644
Danilo C. L. de Paula 58305ef
--- a/hw/input/pckbd.c
Danilo C. L. de Paula 58305ef
+++ b/hw/input/pckbd.c
f788c13
@@ -796,6 +796,8 @@ static void i8042_class_initfn(ObjectClass *klass, void *data)
Danilo C. L. de Paula 58305ef
     dc->vmsd = &vmstate_kbd_isa;
Danilo C. L. de Paula 3a50cdf
     isa->build_aml = i8042_build_aml;
Danilo C. L. de Paula 837556b
     set_bit(DEVICE_CATEGORY_INPUT, dc->categories);
Danilo C. L. de Paula 58305ef
+    /* Disabled for Red Hat Enterprise Linux: */
Danilo C. L. de Paula 58305ef
+    dc->user_creatable = false;
Danilo C. L. de Paula 58305ef
 }
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 58305ef
 static const TypeInfo i8042_info = {
Danilo C. L. de Paula 58305ef
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
037e637
index f5bc81296d..282d01e374 100644
Danilo C. L. de Paula 58305ef
--- a/hw/net/e1000.c
Danilo C. L. de Paula 58305ef
+++ b/hw/net/e1000.c
037e637
@@ -1821,6 +1821,7 @@ static const E1000Info e1000_devices[] = {
Danilo C. L. de Paula 58305ef
         .revision  = 0x03,
Danilo C. L. de Paula 58305ef
         .phy_id2   = E1000_PHY_ID2_8254xx_DEFAULT,
Danilo C. L. de Paula 58305ef
     },
Danilo C. L. de Paula 58305ef
+#if 0 /* Disabled for Red Hat Enterprise Linux 7 */
Danilo C. L. de Paula 58305ef
     {
Danilo C. L. de Paula 58305ef
         .name      = "e1000-82544gc",
Danilo C. L. de Paula 58305ef
         .device_id = E1000_DEV_ID_82544GC_COPPER,
037e637
@@ -1833,6 +1834,7 @@ static const E1000Info e1000_devices[] = {
Danilo C. L. de Paula 58305ef
         .revision  = 0x03,
Danilo C. L. de Paula 58305ef
         .phy_id2   = E1000_PHY_ID2_8254xx_DEFAULT,
Danilo C. L. de Paula 58305ef
     },
Danilo C. L. de Paula 58305ef
+#endif
Danilo C. L. de Paula 58305ef
 };
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 58305ef
 static void e1000_register_types(void)
Danilo C. L. de Paula 58305ef
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
037e637
index 58e7341cb7..8ba34f6a1d 100644
Danilo C. L. de Paula 58305ef
--- a/hw/ppc/spapr_cpu_core.c
Danilo C. L. de Paula 58305ef
+++ b/hw/ppc/spapr_cpu_core.c
28609d5
@@ -370,10 +370,12 @@ static const TypeInfo spapr_cpu_core_type_infos[] = {
Danilo C. L. de Paula 837556b
         .instance_size = sizeof(SpaprCpuCore),
Danilo C. L. de Paula 837556b
         .class_size = sizeof(SpaprCpuCoreClass),
Danilo C. L. de Paula 58305ef
     },
Danilo C. L. de Paula 58305ef
+#if 0  /* Disabled for Red Hat Enterprise Linux */
Danilo C. L. de Paula 58305ef
     DEFINE_SPAPR_CPU_CORE_TYPE("970_v2.2"),
Danilo C. L. de Paula 58305ef
     DEFINE_SPAPR_CPU_CORE_TYPE("970mp_v1.0"),
Danilo C. L. de Paula 58305ef
     DEFINE_SPAPR_CPU_CORE_TYPE("970mp_v1.1"),
Danilo C. L. de Paula 58305ef
     DEFINE_SPAPR_CPU_CORE_TYPE("power5+_v2.1"),
Danilo C. L. de Paula 58305ef
+#endif
Danilo C. L. de Paula 58305ef
     DEFINE_SPAPR_CPU_CORE_TYPE("power7_v2.3"),
Danilo C. L. de Paula 58305ef
     DEFINE_SPAPR_CPU_CORE_TYPE("power7+_v2.1"),
Danilo C. L. de Paula 58305ef
     DEFINE_SPAPR_CPU_CORE_TYPE("power8_v2.0"),
28609d5
diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
28609d5
index 9520471be2..202e032524 100644
28609d5
--- a/hw/timer/hpet.c
28609d5
+++ b/hw/timer/hpet.c
28609d5
@@ -733,6 +733,14 @@ static void hpet_realize(DeviceState *dev, Error **errp)
28609d5
     int i;
28609d5
     HPETTimer *timer;
28609d5
 
28609d5
+    /* Restricted for Red Hat Enterprise Linux */
28609d5
+    MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
28609d5
+    if (strstr(mc->name, "rhel")) {
28609d5
+        error_setg(errp, "Device %s is not supported with machine type %s",
28609d5
+                   object_get_typename(OBJECT(dev)), mc->name);
28609d5
+        return;
28609d5
+    }
28609d5
+
28609d5
     if (!s->intcap) {
28609d5
         warn_report("Hpet's intcap not initialized");
28609d5
     }
7de5fc2
diff --git a/hw/usb/meson.build b/hw/usb/meson.build
f788c13
index de853d780d..0776ae6a20 100644
7de5fc2
--- a/hw/usb/meson.build
7de5fc2
+++ b/hw/usb/meson.build
f788c13
@@ -52,7 +52,7 @@ softmmu_ss.add(when: 'CONFIG_USB_SMARTCARD', if_true: files('dev-smartcard-reade
f788c13
 if cacard.found()
7de5fc2
   usbsmartcard_ss = ss.source_set()
7de5fc2
   usbsmartcard_ss.add(when: 'CONFIG_USB_SMARTCARD',
7de5fc2
-                      if_true: [cacard, files('ccid-card-emulated.c', 'ccid-card-passthru.c')])
7de5fc2
+                      if_true: [cacard, files('ccid-card-passthru.c')])
7de5fc2
   hw_usb_modules += {'smartcard': usbsmartcard_ss}
Danilo C. L. de Paula e9e1d39
 endif
7de5fc2
 
Danilo C. L. de Paula 3a50cdf
diff --git a/target/arm/cpu_tcg.c b/target/arm/cpu_tcg.c
037e637
index 13d0e9b195..3826fa5122 100644
Danilo C. L. de Paula 3a50cdf
--- a/target/arm/cpu_tcg.c
Danilo C. L. de Paula 3a50cdf
+++ b/target/arm/cpu_tcg.c
28609d5
@@ -22,6 +22,7 @@
28609d5
 /* CPU models. These are not needed for the AArch64 linux-user build. */
28609d5
 #if !defined(CONFIG_USER_ONLY) || !defined(TARGET_AARCH64)
28609d5
 
28609d5
+#if 0 /* Disabled for Red Hat Enterprise Linux */
037e637
 #if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG)
28609d5
 static bool arm_v7m_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
Danilo C. L. de Paula 3a50cdf
 {
28609d5
@@ -375,6 +376,7 @@ static void cortex_a9_initfn(Object *obj)
28609d5
     cpu->ccsidr[1] = 0x200fe019; /* 16k L1 icache. */
28609d5
     define_arm_cp_regs(cpu, cortexa9_cp_reginfo);
28609d5
 }
28609d5
+#endif /* disabled for RHEL */
Danilo C. L. de Paula 58305ef
 
28609d5
 #ifndef CONFIG_USER_ONLY
28609d5
 static uint64_t a15_l2ctlr_read(CPUARMState *env, const ARMCPRegInfo *ri)
28609d5
@@ -400,6 +402,7 @@ static const ARMCPRegInfo cortexa15_cp_reginfo[] = {
28609d5
     REGINFO_SENTINEL
28609d5
 };
28609d5
 
28609d5
+#if 0 /* Disabled for Red Hat Enterprise Linux */
28609d5
 static void cortex_a7_initfn(Object *obj)
28609d5
 {
28609d5
     ARMCPU *cpu = ARM_CPU(obj);
28609d5
@@ -445,6 +448,7 @@ static void cortex_a7_initfn(Object *obj)
28609d5
     cpu->ccsidr[2] = 0x711fe07a; /* 4096K L2 unified cache */
28609d5
     define_arm_cp_regs(cpu, cortexa15_cp_reginfo); /* Same as A15 */
28609d5
 }
28609d5
+#endif /* disabled for RHEL */
28609d5
 
28609d5
 static void cortex_a15_initfn(Object *obj)
28609d5
 {
28609d5
@@ -488,6 +492,7 @@ static void cortex_a15_initfn(Object *obj)
28609d5
     define_arm_cp_regs(cpu, cortexa15_cp_reginfo);
28609d5
 }
28609d5
 
28609d5
+#if 0 /* Disabled for Red Hat Enterprise Linux */
28609d5
 static void cortex_m0_initfn(Object *obj)
28609d5
 {
28609d5
     ARMCPU *cpu = ARM_CPU(obj);
f788c13
@@ -928,6 +933,7 @@ static void arm_v7m_class_init(ObjectClass *oc, void *data)
28609d5
 
28609d5
     cc->gdb_core_xml_file = "arm-m-profile.xml";
28609d5
 }
28609d5
+#endif /* disabled for RHEL */
28609d5
 
28609d5
 #ifndef TARGET_AARCH64
28609d5
 /*
f788c13
@@ -1007,6 +1013,7 @@ static void arm_max_initfn(Object *obj)
28609d5
 #endif /* !TARGET_AARCH64 */
28609d5
 
28609d5
 static const ARMCPUInfo arm_tcg_cpus[] = {
28609d5
+#if 0 /* Disabled for Red Hat Enterprise Linux */
28609d5
     { .name = "arm926",      .initfn = arm926_initfn },
28609d5
     { .name = "arm946",      .initfn = arm946_initfn },
28609d5
     { .name = "arm1026",     .initfn = arm1026_initfn },
f788c13
@@ -1022,7 +1029,9 @@ static const ARMCPUInfo arm_tcg_cpus[] = {
28609d5
     { .name = "cortex-a7",   .initfn = cortex_a7_initfn },
28609d5
     { .name = "cortex-a8",   .initfn = cortex_a8_initfn },
28609d5
     { .name = "cortex-a9",   .initfn = cortex_a9_initfn },
28609d5
+#endif /* disabled for RHEL */
28609d5
     { .name = "cortex-a15",  .initfn = cortex_a15_initfn },
28609d5
+#if 0 /* Disabled for Red Hat Enterprise Linux */
28609d5
     { .name = "cortex-m0",   .initfn = cortex_m0_initfn,
28609d5
                              .class_init = arm_v7m_class_init },
28609d5
     { .name = "cortex-m3",   .initfn = cortex_m3_initfn,
f788c13
@@ -1053,6 +1062,7 @@ static const ARMCPUInfo arm_tcg_cpus[] = {
28609d5
     { .name = "pxa270-b1",   .initfn = pxa270b1_initfn },
28609d5
     { .name = "pxa270-c0",   .initfn = pxa270c0_initfn },
28609d5
     { .name = "pxa270-c5",   .initfn = pxa270c5_initfn },
28609d5
+#endif /* disabled for RHEL */
28609d5
 #ifndef TARGET_AARCH64
28609d5
     { .name = "max",         .initfn = arm_max_initfn },
28609d5
 #endif
Danilo C. L. de Paula 58305ef
diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c
037e637
index 4baa111713..d779c4d1d5 100644
Danilo C. L. de Paula 58305ef
--- a/target/ppc/cpu-models.c
Danilo C. L. de Paula 58305ef
+++ b/target/ppc/cpu-models.c
4133116
@@ -66,6 +66,7 @@
Danilo C. L. de Paula 58305ef
 #define POWERPC_DEF(_name, _pvr, _type, _desc)                              \
Danilo C. L. de Paula 58305ef
     POWERPC_DEF_SVR(_name, _desc, _pvr, POWERPC_SVR_NONE, _type)
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 58305ef
+#if 0  /* Embedded and 32-bit CPUs disabled for Red Hat Enterprise Linux */
Danilo C. L. de Paula 58305ef
     /* Embedded PowerPC                                                      */
Danilo C. L. de Paula 58305ef
     /* PowerPC 401 family                                                    */
Danilo C. L. de Paula 58305ef
     POWERPC_DEF("401",           CPU_POWERPC_401,                    401,
4133116
@@ -740,8 +741,10 @@
Danilo C. L. de Paula 58305ef
                 "PowerPC 7447A v1.2 (G4)")
Danilo C. L. de Paula 58305ef
     POWERPC_DEF("7457a_v1.2",    CPU_POWERPC_74x7A_v12,              7455,
Danilo C. L. de Paula 58305ef
                 "PowerPC 7457A v1.2 (G4)")
Danilo C. L. de Paula 58305ef
+#endif
Danilo C. L. de Paula 58305ef
     /* 64 bits PowerPC                                                       */
4133116
 #if defined(TARGET_PPC64)
Danilo C. L. de Paula 58305ef
+#if 0  /* Disabled for Red Hat Enterprise Linux */
Danilo C. L. de Paula 58305ef
     POWERPC_DEF("970_v2.2",      CPU_POWERPC_970_v22,                970,
Danilo C. L. de Paula 58305ef
                 "PowerPC 970 v2.2")
Danilo C. L. de Paula 58305ef
     POWERPC_DEF("970fx_v1.0",    CPU_POWERPC_970FX_v10,              970,
4133116
@@ -760,6 +763,7 @@
Danilo C. L. de Paula 58305ef
                 "PowerPC 970MP v1.1")
Danilo C. L. de Paula a711492
     POWERPC_DEF("power5+_v2.1",  CPU_POWERPC_POWER5P_v21,            POWER5P,
Danilo C. L. de Paula a711492
                 "POWER5+ v2.1")
Danilo C. L. de Paula a711492
+#endif
Danilo C. L. de Paula a711492
     POWERPC_DEF("power7_v2.3",   CPU_POWERPC_POWER7_v23,             POWER7,
Danilo C. L. de Paula a711492
                 "POWER7 v2.3")
Danilo C. L. de Paula a711492
     POWERPC_DEF("power7+_v2.1",  CPU_POWERPC_POWER7P_v21,            POWER7,
037e637
@@ -784,6 +788,7 @@
Danilo C. L. de Paula 58305ef
 /* PowerPC CPU aliases                                                     */
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 58305ef
 PowerPCCPUAlias ppc_cpu_aliases[] = {
Danilo C. L. de Paula 58305ef
+#if 0  /* Embedded and 32-bit CPUs disabled for Red Hat Enterprise Linux */
Danilo C. L. de Paula 58305ef
     { "403", "403gc" },
Danilo C. L. de Paula 58305ef
     { "405", "405d4" },
Danilo C. L. de Paula 58305ef
     { "405cr", "405crc" },
037e637
@@ -942,12 +947,15 @@ PowerPCCPUAlias ppc_cpu_aliases[] = {
Danilo C. L. de Paula 58305ef
     { "7447a", "7447a_v1.2" },
Danilo C. L. de Paula 58305ef
     { "7457a", "7457a_v1.2" },
Danilo C. L. de Paula 58305ef
     { "apollo7pm", "7457a_v1.0" },
Danilo C. L. de Paula 58305ef
+#endif
Danilo C. L. de Paula 58305ef
 #if defined(TARGET_PPC64)
Danilo C. L. de Paula 58305ef
+#if 0  /* Disabled for Red Hat Enterprise Linux */
Danilo C. L. de Paula a711492
     { "970", "970_v2.2" },
Danilo C. L. de Paula a711492
     { "970fx", "970fx_v3.1" },
Danilo C. L. de Paula a711492
     { "970mp", "970mp_v1.1" },
Danilo C. L. de Paula 58305ef
     { "power5+", "power5+_v2.1" },
Danilo C. L. de Paula 58305ef
     { "power5gs", "power5+_v2.1" },
Danilo C. L. de Paula 58305ef
+#endif
Danilo C. L. de Paula 58305ef
     { "power7", "power7_v2.3" },
Danilo C. L. de Paula 58305ef
     { "power7+", "power7+_v2.1" },
Danilo C. L. de Paula 58305ef
     { "power8e", "power8e_v2.1" },
037e637
@@ -957,6 +965,7 @@ PowerPCCPUAlias ppc_cpu_aliases[] = {
037e637
     { "power10", "power10_v2.0" },
Danilo C. L. de Paula 58305ef
 #endif
Danilo C. L. de Paula a711492
 
Danilo C. L. de Paula 58305ef
+#if 0  /* Disabled for Red Hat Enterprise Linux */
Danilo C. L. de Paula 58305ef
     /* Generic PowerPCs */
Danilo C. L. de Paula 58305ef
 #if defined(TARGET_PPC64)
Danilo C. L. de Paula 58305ef
     { "ppc64", "970fx_v3.1" },
037e637
@@ -964,5 +973,6 @@ PowerPCCPUAlias ppc_cpu_aliases[] = {
Danilo C. L. de Paula 58305ef
     { "ppc32", "604" },
Danilo C. L. de Paula 58305ef
     { "ppc", "604" },
Danilo C. L. de Paula 58305ef
     { "default", "604" },
Danilo C. L. de Paula 58305ef
+#endif
Danilo C. L. de Paula 58305ef
     { NULL, NULL }
Danilo C. L. de Paula 58305ef
 };
f788c13
diff --git a/target/s390x/cpu_models_sysemu.c b/target/s390x/cpu_models_sysemu.c
f788c13
index 05c3ccaaff..6a04ccab1b 100644
f788c13
--- a/target/s390x/cpu_models_sysemu.c
f788c13
+++ b/target/s390x/cpu_models_sysemu.c
f788c13
@@ -36,6 +36,9 @@ static void check_unavailable_features(const S390CPUModel *max_model,
Danilo C. L. de Paula 58305ef
         (max_model->def->gen == model->def->gen &&
Danilo C. L. de Paula 58305ef
          max_model->def->ec_ga < model->def->ec_ga)) {
Danilo C. L. de Paula 58305ef
         list_add_feat("type", unavailable);
Danilo C. L. de Paula 58305ef
+    } else if (model->def->gen < 11 && kvm_enabled()) {
Danilo C. L. de Paula 58305ef
+        /* Older CPU models are not supported on Red Hat Enterprise Linux */
Danilo C. L. de Paula 58305ef
+        list_add_feat("type", unavailable);
Danilo C. L. de Paula 58305ef
     }
Danilo C. L. de Paula 58305ef
 
Danilo C. L. de Paula 58305ef
     /* detect missing features if any to properly report them */
f788c13
diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c
f788c13
index 5b1fdb55c4..c52434985b 100644
f788c13
--- a/target/s390x/kvm/kvm.c
f788c13
+++ b/target/s390x/kvm/kvm.c
f788c13
@@ -2508,6 +2508,14 @@ void kvm_s390_apply_cpu_model(const S390CPUModel *model, Error **errp)
Danilo C. L. de Paula 58305ef
         error_setg(errp, "KVM doesn't support CPU models");
Danilo C. L. de Paula 58305ef
         return;
Danilo C. L. de Paula 58305ef
     }
Danilo C. L. de Paula 58305ef
+
Danilo C. L. de Paula 58305ef
+    /* Older CPU models are not supported on Red Hat Enterprise Linux */
Danilo C. L. de Paula 58305ef
+    if (model->def->gen < 11) {
Danilo C. L. de Paula 58305ef
+        error_setg(errp, "KVM: Unsupported CPU type specified: %s",
Danilo C. L. de Paula 58305ef
+                   MACHINE(qdev_get_machine())->cpu_type);
Danilo C. L. de Paula 58305ef
+        return;
Danilo C. L. de Paula 58305ef
+    }
Danilo C. L. de Paula 58305ef
+
Danilo C. L. de Paula 58305ef
     prop.cpuid = s390_cpuid_from_cpu_model(model);
Danilo C. L. de Paula 58305ef
     prop.ibc = s390_ibc_from_cpu_model(model);
Danilo C. L. de Paula 58305ef
     /* configure cpu features indicated via STFL(e) */
Danilo C. L. de Paula 58305ef
-- 
28609d5
2.27.0
Danilo C. L. de Paula 58305ef