139fdb3ed8
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
582 lines
10 KiB
Plaintext
582 lines
10 KiB
Plaintext
config ARM_VIRT
|
|
bool
|
|
imply PCI_DEVICES
|
|
imply TEST_DEVICES
|
|
imply VFIO_AMD_XGBE
|
|
imply VFIO_PLATFORM
|
|
imply VFIO_XGMAC
|
|
imply TPM_TIS_SYSBUS
|
|
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
|
|
select OMAP
|
|
select TSC210X
|
|
|
|
config CUBIEBOARD
|
|
bool
|
|
select ALLWINNER_A10
|
|
|
|
config DIGIC
|
|
bool
|
|
select PTIMER
|
|
select PFLASH_CFI02
|
|
|
|
config EXYNOS4
|
|
bool
|
|
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
|
|
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
|
|
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
|
|
select PXA2XX
|
|
select PFLASH_CFI01
|
|
select SMC91C111
|
|
|
|
config MUSCA
|
|
bool
|
|
select ARMSSE
|
|
select PL011
|
|
select PL031
|
|
select SPLIT_IRQ
|
|
select UNIMP
|
|
|
|
config MARVELL_88W8618
|
|
bool
|
|
|
|
config MUSICPAL
|
|
bool
|
|
select OR_IRQ
|
|
select BITBANG_I2C
|
|
select MARVELL_88W8618
|
|
select PTIMER
|
|
select PFLASH_CFI02
|
|
select SERIAL
|
|
select WM8750
|
|
|
|
config NETDUINO2
|
|
bool
|
|
select STM32F205_SOC
|
|
|
|
config NETDUINOPLUS2
|
|
bool
|
|
select STM32F405_SOC
|
|
|
|
config OLIMEX_STM32_H405
|
|
bool
|
|
select STM32F405_SOC
|
|
|
|
config NSERIES
|
|
bool
|
|
select OMAP
|
|
select TMP105 # tempature 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
|
|
select PFLASH_CFI01
|
|
select SMC91C111
|
|
select PXA2XX
|
|
|
|
config TOSA
|
|
bool
|
|
select ZAURUS # scoop
|
|
select MICRODRIVE
|
|
select PXA2XX
|
|
select LED
|
|
|
|
config SPITZ
|
|
bool
|
|
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
|
|
select PFLASH_CFI01
|
|
select WM8750
|
|
select PL011 # UART
|
|
select PXA2XX
|
|
|
|
config REALVIEW
|
|
bool
|
|
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
|
|
|
|
config SBSA_REF
|
|
bool
|
|
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_EHCI_SYSBUS
|
|
select WDT_SBSA
|
|
|
|
config SABRELITE
|
|
bool
|
|
select FSL_IMX6
|
|
select SSI_M25P80
|
|
|
|
config STELLARIS
|
|
bool
|
|
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_INPUT
|
|
select STELLARIS_ENET # ethernet
|
|
select STELLARIS_GPTM # general purpose timer module
|
|
select UNIMP
|
|
|
|
config STM32VLDISCOVERY
|
|
bool
|
|
select STM32F100_SOC
|
|
|
|
config STRONGARM
|
|
bool
|
|
select PXA2XX
|
|
|
|
config COLLIE
|
|
bool
|
|
select PFLASH_CFI01
|
|
select ZAURUS # scoop
|
|
select STRONGARM
|
|
|
|
config SX1
|
|
bool
|
|
select OMAP
|
|
|
|
config VERSATILE
|
|
bool
|
|
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
|
|
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
|
|
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 if TCG && (ARM || AARCH64)
|
|
select PTIMER
|
|
select ARM_COMPATIBLE_SEMIHOSTING
|
|
|
|
config ALLWINNER_A10
|
|
bool
|
|
select AHCI
|
|
select ALLWINNER_A10_PIT
|
|
select ALLWINNER_A10_PIC
|
|
select ALLWINNER_A10_CCM
|
|
select ALLWINNER_A10_DRAMC
|
|
select ALLWINNER_EMAC
|
|
select ALLWINNER_I2C
|
|
select AXP209_PMU
|
|
select SERIAL
|
|
select UNIMP
|
|
|
|
config ALLWINNER_H3
|
|
bool
|
|
select ALLWINNER_A10_PIT
|
|
select ALLWINNER_SUN8I_EMAC
|
|
select ALLWINNER_I2C
|
|
select SERIAL
|
|
select ARM_TIMER
|
|
select ARM_GIC
|
|
select UNIMP
|
|
select USB_OHCI
|
|
select USB_EHCI_SYSBUS
|
|
select SD
|
|
|
|
config RASPI
|
|
bool
|
|
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
|
|
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_ZYNQMP
|
|
select XLNX_ZDMA
|
|
select USB_DWC3
|
|
|
|
config XLNX_VERSAL
|
|
bool
|
|
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
|
|
|
|
config NPCM7XX
|
|
bool
|
|
select A9MPCORE
|
|
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
|
|
imply I2C_DEVICES
|
|
select IMX
|
|
select IMX_FEC
|
|
select IMX_I2C
|
|
select WDT_IMX2
|
|
select SDHCI
|
|
|
|
config FSL_IMX31
|
|
bool
|
|
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
|
|
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
|
|
select LED
|
|
select PMBUS
|
|
select MAX31785
|
|
|
|
config MPS2
|
|
bool
|
|
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
|
|
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
|
|
imply I2C_DEVICES
|
|
select A15MPCORE
|
|
select IMX
|
|
select IMX_FEC
|
|
select IMX_I2C
|
|
select WDT_IMX2
|
|
select SDHCI
|
|
select UNIMP
|
|
|
|
config MICROBIT
|
|
bool
|
|
select NRF51_SOC
|
|
|
|
config NRF51_SOC
|
|
bool
|
|
imply I2C_DEVICES
|
|
select I2C
|
|
select ARM_V7M
|
|
select UNIMP
|
|
|
|
config EMCRAFT_SF2
|
|
bool
|
|
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
|