[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 17/19] hw/arm: Automatically select the 'virt' machine on
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v3 17/19] hw/arm: Automatically select the 'virt' machine on KVM |
Date: |
Mon, 5 Oct 2020 11:22:54 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 10/1/20 5:05 PM, Philippe Mathieu-Daudé wrote:
> On 10/1/20 9:38 AM, Paolo Bonzini wrote:
>> On 29/09/20 22:36, Philippe Mathieu-Daudé wrote:
>>> Yes, the problem if I don't restrict to KVM, when
>>> using the Xen accelerator odd things occur
>>> (using configure --enable-xen --disable-tcg --disable-kvm):
>>>
>>> Compiling C object libqemu-i386-softmmu.fa.p/hw_cpu_a15mpcore.c.o
>>> hw/cpu/a15mpcore.c:28:10: fatal error: kvm_arm.h: No such file or directory
>>>
>>> See
>>> https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions#Use_of_qemu-system-i386_on_ARM
>>
>> I don't understand. Is Xen adding CONFIG_ARM_VIRT=y to
>> default-configs/i386-softmmu.mak??
>
> No, this is when using:
>
> config ARM_VIRT
> bool
> + default y
>
> I had the understanding devices in hw/$BASEARCH would be only
> included for $ARCH, but I was wrong, any arch kconfig-include
> the devices of the other archs.
>
> I tried the following diff which doesn't build because various
> devices in *non*-archdep folders use arch-specific Kconfig values:
>
> -- >8 --
> diff --git a/meson.build b/meson.build
> index 9ab5d514d7..cfe19d0007 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -575,6 +575,7 @@ foreach target : target_dirs
> if fs.is_file(target_kconfig)
> minikconf_input += [target_kconfig]
> endif
> + minikconf_input += 'hw' / config_target['TARGET_BASE_ARCH'] / 'Kconfig'
> config_devices_mak = configure_file(
> input: minikconf_input,
> output: config_devices_mak,
> diff --git a/hw/Kconfig b/hw/Kconfig
> index 4de1797ffd..64c120175a 100644
> --- a/hw/Kconfig
> +++ b/hw/Kconfig
> @@ -41,29 +41,29 @@ source vfio/Kconfig
> source watchdog/Kconfig
>
> # arch Kconfig
> -source arm/Kconfig
> -source alpha/Kconfig
> -source avr/Kconfig
> -source cris/Kconfig
> -source hppa/Kconfig
> -source i386/Kconfig
> -source lm32/Kconfig
> -source m68k/Kconfig
> -source microblaze/Kconfig
> -source mips/Kconfig
> -source moxie/Kconfig
> -source nios2/Kconfig
> -source openrisc/Kconfig
> -source ppc/Kconfig
> -source riscv/Kconfig
> -source rx/Kconfig
> -source s390x/Kconfig
> -source sh4/Kconfig
> -source sparc/Kconfig
> -source sparc64/Kconfig
> -source tricore/Kconfig
> -source unicore32/Kconfig
> -source xtensa/Kconfig
>
> # Symbols used by multiple targets
> config TEST_DEVICES
> ---
List of arch-indep Kconfig using arch-defined selectors:
hw/acpi/Kconfig:42: depends on PC
hw/intc/Kconfig:31: depends on ARM_GIC && KVM
hw/intc/Kconfig:36: depends on OPENPIC && KVM
hw/intc/Kconfig:40: depends on POWERNV || PSERIES
hw/intc/Kconfig:49: depends on XICS && KVM
hw/intc/Kconfig:60: depends on S390_FLIC && KVM
hw/mem/Kconfig:11: depends on (PC || PSERIES || ARM_VIRT)
hw/pci-bridge/Kconfig:8: default y if Q35
hw/timer/Kconfig:14: default y if PC
hw/tpm/Kconfig:18: depends on TPM && PC
hw/tpm/Kconfig:24: depends on TPM && PSERIES
hw/vfio/Kconfig:16: depends on LINUX && S390_CCW_VIRTIO
hw/vfio/Kconfig:38: depends on LINUX && S390_CCW_VIRTIO