qemu/hw/arm/Kconfig

682 lines
12 KiB
Plaintext
Raw Normal View History

config ARM_VIRT
bool
imply PCI_DEVICES
imply TEST_DEVICES
imply VFIO_AMD_XGBE
imply VFIO_PLATFORM
imply VFIO_XGMAC
imply TPM_TIS_SYSBUS
tpm: Add support for TPM device over I2C bus Qemu already supports devices attached to ISA and sysbus. This drop adds support for the I2C bus attached TPM devices. I2C model only supports TPM2 protocol. This commit includes changes for the common code. - Added I2C emulation model. Logic was added in the model to temporarily cache the data as I2C interface works per byte basis. - New tpm type "tpm-tis-i2c" added for I2C support. The user has to provide this string on command line. Testing: TPM I2C device module is tested using SWTPM (software based TPM package). Qemu uses the rainier machine and is connected to swtpm over the socket interface. The command to start swtpm is as follows: $ swtpm socket --tpmstate dir=/tmp/mytpm1 \ --ctrl type=unixio,path=/tmp/mytpm1/swtpm-sock \ --tpm2 --log level=100 The command to start qemu is as follows: $ qemu-system-arm -M rainier-bmc -nographic \ -kernel ${IMAGEPATH}/fitImage-linux.bin \ -dtb ${IMAGEPATH}/aspeed-bmc-ibm-rainier.dtb \ -initrd ${IMAGEPATH}/obmc-phosphor-initramfs.rootfs.cpio.xz \ -drive file=${IMAGEPATH}/obmc-phosphor-image.rootfs.wic.qcow2,if=sd,index=2 \ -net nic -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443 \ -chardev socket,id=chrtpm,path=/tmp/mytpm1/swtpm-sock \ -tpmdev emulator,id=tpm0,chardev=chrtpm \ -device tpm-tis-i2c,tpmdev=tpm0,bus=aspeed.i2c.bus.12,address=0x2e Signed-off-by: Ninad Palsule <ninad@linux.ibm.com> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> Tested-by: Stefan Berger <stefanb@linux.ibm.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Reviewed-by: Joel Stanley <joel@jms.id.au> Tested-by: Joel Stanley <joel@jms.id.au> Message-id: 20230414220754.1191476-4-ninadpalsule@us.ibm.com
2023-04-15 01:07:54 +03:00
imply TPM_TIS_I2C
imply NVDIMM
select ARM_GIC
select ACPI
select ARM_SMMUV3
select GPIO_KEY
select FW_CFG_DMA
select PCI_EXPRESS
select PCI_EXPRESS_GENERIC_BRIDGE
select PFLASH_CFI01
select PL011 # UART
select PL031 # RTC
select PL061 # GPIO
select GPIO_PWR
select PLATFORM_BUS
select SMBIOS
select VIRTIO_MMIO
select ACPI_PCI
select MEM_DEVICE
select DIMM
select ACPI_HW_REDUCED
select ACPI_APEI
select ACPI_VIOT
select VIRTIO_MEM_SUPPORTED
select ACPI_CXL
select ACPI_HMAT
config CHEETAH
bool
default y
depends on TCG && ARM
select OMAP
select TSC210X
config CUBIEBOARD
bool
default y
depends on TCG && ARM
select ALLWINNER_A10
config DIGIC
bool
default y
depends on TCG && ARM
select PTIMER
select PFLASH_CFI02
config EXYNOS4
bool
default y
depends on TCG && ARM
imply I2C_DEVICES
select A9MPCORE
select I2C
select LAN9118
select PL310 # cache controller
select PTIMER
select SDHCI
select USB_EHCI_SYSBUS
select OR_IRQ
config HIGHBANK
bool
default y
depends on TCG && ARM
select A9MPCORE
select A15MPCORE
select AHCI
select ARM_TIMER # sp804
select ARM_V7M
select PL011 # UART
select PL022 # SPI
select PL031 # RTC
select PL061 # GPIO
select PL310 # cache controller
select XGMAC # ethernet
config INTEGRATOR
bool
default y
depends on TCG && ARM
select ARM_TIMER
select INTEGRATOR_DEBUG
select PL011 # UART
select PL031 # RTC
select PL041 # audio
select PL050 # keyboard/mouse
select PL110 # pl111 LCD controller
select PL181 # display
select SMC91C111
config MAINSTONE
bool
default y
depends on TCG && ARM
select PXA2XX
select PFLASH_CFI01
select SMC91C111
config MUSCA
bool
default y
depends on TCG && ARM
select ARMSSE
select PL011
select PL031
select SPLIT_IRQ
select UNIMP
config MARVELL_88W8618
bool
config MUSICPAL
bool
default y
depends on TCG && ARM
select OR_IRQ
select BITBANG_I2C
select MARVELL_88W8618
select PTIMER
select PFLASH_CFI02
select SERIAL
select WM8750
config NETDUINO2
bool
default y
depends on TCG && ARM
select STM32F205_SOC
config NETDUINOPLUS2
bool
default y
depends on TCG && ARM
select STM32F405_SOC
config OLIMEX_STM32_H405
bool
default y
depends on TCG && ARM
select STM32F405_SOC
config NSERIES
bool
default y
depends on TCG && ARM
select OMAP
select TMP105 # temperature sensor
select BLIZZARD # LCD/TV controller
select ONENAND
select TSC210X # touchscreen/sensors/audio
select TSC2005 # touchscreen/sensors/keypad
select LM832X # GPIO keyboard chip
select TWL92230 # energy-management
select TUSB6010
config OMAP
bool
select FRAMEBUFFER
select I2C
select ECC
select NAND
select PFLASH_CFI01
select SD
select SERIAL
config PXA2XX
bool
select FRAMEBUFFER
select I2C
select SERIAL
select SD
select SSI
select USB_OHCI
select PCMCIA
config GUMSTIX
bool
default y
depends on TCG && ARM
select PFLASH_CFI01
select SMC91C111
select PXA2XX
config TOSA
bool
default y
depends on TCG && ARM
select ZAURUS # scoop
select MICRODRIVE
select PXA2XX
select LED
config SPITZ
bool
default y
depends on TCG && ARM
select ADS7846 # touch-screen controller
select MAX111X # A/D converter
select WM8750 # audio codec
select MAX7310 # GPIO expander
select ZAURUS # scoop
select NAND # memory
select ECC # Error-correcting for NAND
select MICRODRIVE
select PXA2XX
config Z2
bool
default y
depends on TCG && ARM
select PFLASH_CFI01
select WM8750
select PL011 # UART
select PXA2XX
config REALVIEW
bool
default y
depends on TCG && ARM
imply PCI_DEVICES
imply PCI_TESTDEV
imply I2C_DEVICES
select SMC91C111
select LAN9118
select A9MPCORE
select A15MPCORE
select ARM11MPCORE
select ARM_TIMER
select VERSATILE_PCI
select WM8750 # audio codec
select LSI_SCSI_PCI
select PCI
select PL011 # UART
select PL031 # RTC
select PL041 # audio codec
select PL050 # keyboard/mouse
select PL061 # GPIO
select PL080 # DMA controller
select PL110
select PL181 # display
select PL310 # cache controller
select ARM_SBCON_I2C
select DS1338 # I2C RTC+NVRAM
select USB_OHCI
hw/arm: Add arm SBSA reference machine, skeleton part For AArch64, the existing "virt" machine is primarily meant to run on KVM and execute virtualization workloads, but we need an environment as faithful as possible to physical hardware, for supporting firmware and OS development for physical Aarch64 machines. This patch introduces new machine type 'sbsa-ref' with main features: - Based on 'virt' machine type. - A new memory map. - CPU type cortex-a57. - EL2 and EL3 are enabled. - GIC version 3. - System bus AHCI controller. - System bus EHCI controller. - CDROM and hard disc on AHCI bus. - E1000E ethernet card on PCIE bus. - VGA display adaptor on PCIE bus. - No virtio devices. - No fw_cfg device. - No ACPI table supplied. - Only minimal device tree nodes. Arm Trusted Firmware and UEFI porting to this are done accordingly, and the firmware should supply ACPI tables to the guest OS. The minimal device tree nodes supplied by QEMU for this platform are only to pass the dynamic info reflecting command line input to firmware, not for loading the guest OS. To make the review easier, this task is split into two patches, the fundamental skeleton part and the peripheral devices part; this patch is the first part. Signed-off-by: Hongbo Zhang <hongbo.zhang@linaro.org> Message-id: 1561890034-15921-2-git-send-email-hongbo.zhang@linaro.org [PMM: commit message tweaks; moved some bits between patch 1 and 2 to ensure patch 1 builds cleanly; removed unneeded lines from Kconfig stanza; only provide board for qemu-system-aarch64, not qemu-system-arm; added MAINTAINERS entry] Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-07-01 19:26:18 +03:00
config SBSA_REF
bool
default y
depends on TCG && AARCH64
hw/arm: Add arm SBSA reference machine, skeleton part For AArch64, the existing "virt" machine is primarily meant to run on KVM and execute virtualization workloads, but we need an environment as faithful as possible to physical hardware, for supporting firmware and OS development for physical Aarch64 machines. This patch introduces new machine type 'sbsa-ref' with main features: - Based on 'virt' machine type. - A new memory map. - CPU type cortex-a57. - EL2 and EL3 are enabled. - GIC version 3. - System bus AHCI controller. - System bus EHCI controller. - CDROM and hard disc on AHCI bus. - E1000E ethernet card on PCIE bus. - VGA display adaptor on PCIE bus. - No virtio devices. - No fw_cfg device. - No ACPI table supplied. - Only minimal device tree nodes. Arm Trusted Firmware and UEFI porting to this are done accordingly, and the firmware should supply ACPI tables to the guest OS. The minimal device tree nodes supplied by QEMU for this platform are only to pass the dynamic info reflecting command line input to firmware, not for loading the guest OS. To make the review easier, this task is split into two patches, the fundamental skeleton part and the peripheral devices part; this patch is the first part. Signed-off-by: Hongbo Zhang <hongbo.zhang@linaro.org> Message-id: 1561890034-15921-2-git-send-email-hongbo.zhang@linaro.org [PMM: commit message tweaks; moved some bits between patch 1 and 2 to ensure patch 1 builds cleanly; removed unneeded lines from Kconfig stanza; only provide board for qemu-system-aarch64, not qemu-system-arm; added MAINTAINERS entry] Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-07-01 19:26:18 +03:00
imply PCI_DEVICES
select AHCI
select ARM_SMMUV3
select GPIO_KEY
select PCI_EXPRESS
select PCI_EXPRESS_GENERIC_BRIDGE
select PFLASH_CFI01
select PL011 # UART
select PL031 # RTC
select PL061 # GPIO
select USB_XHCI_SYSBUS
select WDT_SBSA
select BOCHS_DISPLAY
hw/arm: Add arm SBSA reference machine, skeleton part For AArch64, the existing "virt" machine is primarily meant to run on KVM and execute virtualization workloads, but we need an environment as faithful as possible to physical hardware, for supporting firmware and OS development for physical Aarch64 machines. This patch introduces new machine type 'sbsa-ref' with main features: - Based on 'virt' machine type. - A new memory map. - CPU type cortex-a57. - EL2 and EL3 are enabled. - GIC version 3. - System bus AHCI controller. - System bus EHCI controller. - CDROM and hard disc on AHCI bus. - E1000E ethernet card on PCIE bus. - VGA display adaptor on PCIE bus. - No virtio devices. - No fw_cfg device. - No ACPI table supplied. - Only minimal device tree nodes. Arm Trusted Firmware and UEFI porting to this are done accordingly, and the firmware should supply ACPI tables to the guest OS. The minimal device tree nodes supplied by QEMU for this platform are only to pass the dynamic info reflecting command line input to firmware, not for loading the guest OS. To make the review easier, this task is split into two patches, the fundamental skeleton part and the peripheral devices part; this patch is the first part. Signed-off-by: Hongbo Zhang <hongbo.zhang@linaro.org> Message-id: 1561890034-15921-2-git-send-email-hongbo.zhang@linaro.org [PMM: commit message tweaks; moved some bits between patch 1 and 2 to ensure patch 1 builds cleanly; removed unneeded lines from Kconfig stanza; only provide board for qemu-system-aarch64, not qemu-system-arm; added MAINTAINERS entry] Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-07-01 19:26:18 +03:00
config SABRELITE
bool
default y
depends on TCG && ARM
select FSL_IMX6
select SSI_M25P80
config STELLARIS
bool
default y
depends on TCG && ARM
imply I2C_DEVICES
select ARM_V7M
select CMSDK_APB_WATCHDOG
select I2C
select PL011 # UART
select PL022 # SPI
select PL061 # GPIO
select SSD0303 # OLED display
select SSD0323 # OLED display
select SSI_SD
select STELLARIS_GAMEPAD
select STELLARIS_ENET # ethernet
select STELLARIS_GPTM # general purpose timer module
select UNIMP
config STM32VLDISCOVERY
bool
default y
depends on TCG && ARM
select STM32F100_SOC
config STRONGARM
bool
select PXA2XX
config COLLIE
bool
default y
depends on TCG && ARM
select PFLASH_CFI01
select ZAURUS # scoop
select STRONGARM
config SX1
bool
default y
depends on TCG && ARM
select OMAP
config VERSATILE
bool
default y
depends on TCG && ARM
select ARM_TIMER # sp804
select PFLASH_CFI01
select LSI_SCSI_PCI
select PL050 # keyboard/mouse
select PL080 # DMA controller
select PL190 # Vector PIC
select REALVIEW
select USB_OHCI
config VEXPRESS
bool
default y
depends on TCG && ARM
select A9MPCORE
select A15MPCORE
select ARM_MPTIMER
select ARM_TIMER # sp804
select LAN9118
select PFLASH_CFI01
select PL011 # UART
select PL041 # audio codec
select PL181 # display
select REALVIEW
select SII9022
select VIRTIO_MMIO
config ZYNQ
bool
default y
depends on TCG && ARM
select A9MPCORE
select CADENCE # UART
select PFLASH_CFI02
select PL330
select SDHCI
select SSI_M25P80
select USB_EHCI_SYSBUS
select XILINX # UART
select XILINX_AXI
select XILINX_SPI
select XILINX_SPIPS
select ZYNQ_DEVCFG
config ARM_V7M
bool
# currently v7M must be included in a TCG build due to translate.c
default y
depends on TCG && ARM
select PTIMER
config ALLWINNER_A10
bool
select AHCI
select ALLWINNER_A10_PIT
select ALLWINNER_A10_PIC
select ALLWINNER_A10_CCM
select ALLWINNER_A10_DRAMC
select ALLWINNER_WDT
select ALLWINNER_EMAC
select ALLWINNER_I2C
select AXP2XX_PMU
select SERIAL
select UNIMP
config ALLWINNER_H3
bool
default y
depends on TCG && ARM
select ALLWINNER_A10_PIT
select ALLWINNER_SUN8I_EMAC
select ALLWINNER_I2C
select ALLWINNER_WDT
select SERIAL
select ARM_TIMER
select ARM_GIC
select UNIMP
select USB_OHCI
select USB_EHCI_SYSBUS
select SD
config ALLWINNER_R40
bool
default y if TCG && ARM
select ALLWINNER_SRAMC
select ALLWINNER_A10_PIT
select AXP2XX_PMU
select SERIAL
select ARM_TIMER
select ARM_GIC
select UNIMP
select SD
config RASPI
bool
default y
depends on TCG && ARM
select FRAMEBUFFER
select PL011 # UART
select SDHCI
select USB_DWC2
config STM32F100_SOC
bool
select ARM_V7M
select STM32F2XX_USART
select STM32F2XX_SPI
config STM32F205_SOC
bool
select ARM_V7M
select OR_IRQ
select STM32F2XX_TIMER
select STM32F2XX_USART
select STM32F2XX_SYSCFG
select STM32F2XX_ADC
select STM32F2XX_SPI
config STM32F405_SOC
bool
select ARM_V7M
select OR_IRQ
select STM32F4XX_SYSCFG
select STM32F4XX_EXTI
config XLNX_ZYNQMP_ARM
bool
default y if PIXMAN
depends on TCG && AARCH64
select AHCI
select ARM_GIC
select CADENCE
select DDC
select DPCD
select SDHCI
select SSI
select SSI_M25P80
select XILINX_AXI
select XILINX_SPIPS
select XLNX_CSU_DMA
select XLNX_DISPLAYPORT
select XLNX_ZYNQMP
select XLNX_ZDMA
select USB_DWC3
config XLNX_VERSAL
bool
default y
depends on TCG && AARCH64
select ARM_GIC
select PL011
select CADENCE
select VIRTIO_MMIO
select UNIMP
select XLNX_ZDMA
select XLNX_ZYNQMP
select OR_IRQ
select XLNX_BBRAM
select XLNX_EFUSE_VERSAL
select XLNX_USB_SUBSYS
select XLNX_VERSAL_TRNG
select XLNX_CSU_DMA
config NPCM7XX
bool
default y
depends on TCG && ARM
select A9MPCORE
select ADM1266
select ADM1272
select ARM_GIC
select SMBUS
select AT24C # EEPROM
select MAX34451
select ISL_PMBUS_VR
select PL310 # cache controller
select PMBUS
select SERIAL
select SSI
select UNIMP
select PCA954X
config FSL_IMX25
bool
default y
depends on TCG && ARM
imply I2C_DEVICES
select IMX
select IMX_FEC
select IMX_I2C
select WDT_IMX2
select SDHCI
config FSL_IMX31
bool
default y
depends on TCG && ARM
imply I2C_DEVICES
select SERIAL
select IMX
select IMX_I2C
select WDT_IMX2
select LAN9118
config FSL_IMX6
bool
imply I2C_DEVICES
select A9MPCORE
select IMX
select IMX_FEC
select IMX_I2C
select IMX_USBPHY
select WDT_IMX2
select SDHCI
config ASPEED_SOC
bool
default y
depends on TCG && ARM
select DS1338
select FTGMAC100
select I2C
select DPS310
select PCA9552
select SERIAL
select SMBUS_EEPROM
select PCA954X
select SSI
select SSI_M25P80
select TMP105
select TMP421
select EMC141X
select UNIMP
hw/arm/aspeed: Add the 3 front LEDs drived by the PCA9552 #1 The Witherspoon has 3 LEDs connected to a PCA9552. Add them. The names and reset values are taken from: https://github.com/open-power/witherspoon-xml/blob/master/witherspoon.xml Example booting obmc-phosphor-image: $ qemu-system-arm -M witherspoon-bmc -trace led_change_intensity 1592693373.997015:led_change_intensity LED desc:'front-fault-4' color:green intensity 0% -> 100% 1592693373.997632:led_change_intensity LED desc:'front-power-3' color:green intensity 0% -> 100% 1592693373.998239:led_change_intensity LED desc:'front-id-5' color:green intensity 0% -> 100% 1592693500.291805:led_change_intensity LED desc:'front-power-3' color:green intensity 100% -> 0% 1592693500.312041:led_change_intensity LED desc:'front-power-3' color:green intensity 0% -> 100% 1592693500.821254:led_change_intensity LED desc:'front-power-3' color:green intensity 100% -> 0% 1592693501.331517:led_change_intensity LED desc:'front-power-3' color:green intensity 0% -> 100% 1592693501.841367:led_change_intensity LED desc:'front-power-3' color:green intensity 100% -> 0% 1592693502.350839:led_change_intensity LED desc:'front-power-3' color:green intensity 0% -> 100% 1592693502.861134:led_change_intensity LED desc:'front-power-3' color:green intensity 100% -> 0% 1592693503.371090:led_change_intensity LED desc:'front-power-3' color:green intensity 0% -> 100% We notice the front-power LED starts to blink at a ~2Hz rate. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Luc Michel <luc.michel@greensocs.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20200912134041.946260-5-f4bug@amsat.org>
2020-06-20 19:54:41 +03:00
select LED
select PMBUS
select MAX31785
config MPS2
bool
default y
depends on TCG && ARM
imply I2C_DEVICES
select ARMSSE
select LAN9118
select MPS2_FPGAIO
select MPS2_SCC
select OR_IRQ
select PL022 # SPI
select PL080 # DMA controller
select SPLIT_IRQ
select UNIMP
select CMSDK_APB_WATCHDOG
select ARM_SBCON_I2C
config FSL_IMX7
bool
default y
depends on TCG && ARM
imply PCI_DEVICES
imply TEST_DEVICES
imply I2C_DEVICES
select A15MPCORE
select PCI
select IMX
select IMX_FEC
select IMX_I2C
select WDT_IMX2
select PCI_EXPRESS_DESIGNWARE
select SDHCI
select UNIMP
config ARM_SMMUV3
bool
config FSL_IMX6UL
bool
default y
depends on TCG && ARM
imply I2C_DEVICES
select A15MPCORE
select IMX
select IMX_FEC
select IMX_I2C
select WDT_IMX2
select SDHCI
select UNIMP
config MICROBIT
bool
default y
depends on TCG && ARM
select NRF51_SOC
config NRF51_SOC
bool
imply I2C_DEVICES
select I2C
select ARM_V7M
select UNIMP
config EMCRAFT_SF2
bool
default y
depends on TCG && ARM
select MSF2
select SSI_M25P80
config MSF2
bool
select ARM_V7M
select PTIMER
select SERIAL
select SSI
select UNIMP
config ZAURUS
bool
select NAND
select ECC
config A9MPCORE
bool
select A9_GTIMER
select A9SCU # snoop control unit
select ARM_GIC
select ARM_MPTIMER
config A15MPCORE
bool
select ARM_GIC
config ARM11MPCORE
bool
select ARM11SCU
config ARMSSE
bool
select ARM_V7M
select ARMSSE_CPU_PWRCTRL
select ARMSSE_CPUID
select ARMSSE_MHU
select CMSDK_APB_TIMER
select CMSDK_APB_DUALTIMER
select CMSDK_APB_UART
select CMSDK_APB_WATCHDOG
select IOTKIT_SECCTL
select IOTKIT_SYSCTL
select IOTKIT_SYSINFO
select OR_IRQ
select SPLIT_IRQ
select TZ_MPC
select TZ_MSC
select TZ_PPC
select UNIMP
select SSE_COUNTER
select SSE_TIMER