From 61eaf6f2bab8f064935a3ee478c860f6a6ea17c2 Mon Sep 17 00:00:00 2001 From: gompa Date: Thu, 28 Jan 2021 09:22:38 +0100 Subject: [PATCH 01/15] add google parrot config --- boards/parrot/parrot.config | 55 ++++ config/coreboot-parrot.config | 19 ++ config/linux-parrot_common.config | 304 ++++++++++++++++++ .../0002-enable-tpm-parrot.patch | 14 + 4 files changed, 392 insertions(+) create mode 100644 boards/parrot/parrot.config create mode 100644 config/coreboot-parrot.config create mode 100644 config/linux-parrot_common.config create mode 100644 patches/coreboot-4.13/0002-enable-tpm-parrot.patch diff --git a/boards/parrot/parrot.config b/boards/parrot/parrot.config new file mode 100644 index 000000000..5740878c6 --- /dev/null +++ b/boards/parrot/parrot.config @@ -0,0 +1,55 @@ +# Configuration for a x230 running Qubes and other OSes +# STATIC_OPTION_TABLE is set inside of coreboot config +# +# Deactivated to fit in coreboot's CONFIG_CBFS_SIZE=0x700000 : +# dropbear support(ssh client/server) +# e1000e (ethernet driver) +export CONFIG_COREBOOT=y +export CONFIG_COREBOOT_VERSION=4.13 +export CONFIG_LINUX_VERSION=5.4.69 + +CONFIG_COREBOOT_CONFIG=config/coreboot-parrot.config +CONFIG_LINUX_CONFIG=config/linux-parrot_common.config + +CONFIG_CRYPTSETUP=y +CONFIG_FLASHROM=y +CONFIG_FLASHTOOLS=y +CONFIG_GPG2=y +CONFIG_KEXEC=y +CONFIG_UTIL_LINUX=y +CONFIG_LVM2=y +CONFIG_MBEDTLS=y +CONFIG_PCIUTILS=y +CONFIG_POPT=y +CONFIG_QRENCODE=y +CONFIG_TPMTOTP=y + +#CONFIG_SLANG=y +#CONFIG_NEWT=y +CONFIG_CAIRO=y +CONFIG_FBWHIPTAIL=y + +CONFIG_LINUX_USB=y + +#SSH client/server +CONFIG_DROPBEAR=n +#Ethernet driver (Heads only) +CONFIG_LINUX_E1000E=n + +export CONFIG_TPM=y +export CONFIG_BOOTSCRIPT=/bin/gui-init +export CONFIG_BOOT_REQ_HASH=n +export CONFIG_BOOT_REQ_ROLLBACK=n +export CONFIG_BOOT_KERNEL_ADD="intel_iommu=on intel_iommu=igfx_off" +export CONFIG_BOOT_KERNEL_REMOVE="quiet" +export CONFIG_BOOT_DEV="/dev/sda2" +export CONFIG_BOARD_NAME="Parrot" +export CONFIG_FLASHROM_OPTIONS="--force --noverify-all -p internal --ifd --image bios" + +# This board has two SPI flash chips, an 8 MB that holds the IFD, +# the ME image and part of the coreboot image, and a 4 MB one that +# has the rest of the coreboot and the reset vector. +# +# Only flashing to the bios region is safe to do. The easiest is to +# flash internally when the IFD is unlocked for writing, and x230-flash +# is installed first. diff --git a/config/coreboot-parrot.config b/config/coreboot-parrot.config new file mode 100644 index 000000000..de9444d59 --- /dev/null +++ b/config/coreboot-parrot.config @@ -0,0 +1,19 @@ +CONFIG_MEASURED_BOOT=y +CONFIG_VENDOR_GOOGLE=y +CONFIG_CBFS_SIZE=0x780000 +CONFIG_BOARD_GOOGLE_PARROT=y +CONFIG_IFD_BIN_PATH="../../blobs/parrot/ifd_shrinked.bin" +CONFIG_ME_BIN_PATH="../../blobs/parrot/me_shrinked.bin" +CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES=y +CONFIG_NO_POST=y +CONFIG_TPM_RDRESP_NEED_DELAY=y +CONFIG_UART_PCI_ADDR=0 +CONFIG_NO_GFX_INIT=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5=y +CONFIG_PAYLOAD_LINUX=y +CONFIG_PAYLOAD_FILE="../../build/parrot/bzImage" +CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet" +CONFIG_LINUX_INITRD="../../build/parrot/initrd.cpio.xz" +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y diff --git a/config/linux-parrot_common.config b/config/linux-parrot_common.config new file mode 100644 index 000000000..c427ea3bc --- /dev/null +++ b/config/linux-parrot_common.config @@ -0,0 +1,304 @@ +CONFIG_LOCALVERSION="-heads" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_XZ=y +# CONFIG_SWAP is not set +# CONFIG_CROSS_MEMORY_ATTACH is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="../../../blobs/dev.cpio" +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_SGETMASK_SYSCALL is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_FHANDLE is not set +# CONFIG_BASE_FULL is not set +# CONFIG_SIGNALFD is not set +# CONFIG_TIMERFD is not set +# CONFIG_EVENTFD is not set +# CONFIG_AIO is not set +# CONFIG_ADVISE_SYSCALLS is not set +CONFIG_EMBEDDED=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SMP=y +# CONFIG_RETPOLINE is not set +# CONFIG_X86_EXTENDED_PLATFORM is not set +CONFIG_PROCESSOR_SELECT=y +# CONFIG_CPU_SUP_CENTAUR is not set +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +# CONFIG_X86_MCE_AMD is not set +# CONFIG_PERF_EVENTS_INTEL_RAPL is not set +# CONFIG_MICROCODE is not set +CONFIG_X86_PMEM_LEGACY=y +# CONFIG_MTRR is not set +# CONFIG_X86_SMAP is not set +# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set +# CONFIG_SECCOMP is not set +CONFIG_KEXEC=y +CONFIG_KEXEC_FILE=y +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x1000000 +# CONFIG_MODIFY_LDT_SYSCALL is not set +# CONFIG_SUSPEND is not set +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_DMIID is not set +# CONFIG_VIRTUALIZATION is not set +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +# CONFIG_COREDUMP is not set +# CONFIG_SPARSEMEM_VMEMMAP is not set +# CONFIG_COMPACTION is not set +# CONFIG_BOUNCE is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_SYN_COOKIES=y +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +CONFIG_PCI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_IOV=y +CONFIG_PCI_PRI=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_ALLOW_DEV_COREDUMP is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_NVME=y +CONFIG_EEPROM_93CX6=m +CONFIG_INTEL_MEI_ME=m +CONFIG_INTEL_MEI_TXE=m +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +CONFIG_CHR_DEV_SG=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_ISCSI_TCP=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +# CONFIG_ATA_SFF is not set +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +# CONFIG_NET_VENDOR_AGERE is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ATHEROS is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_BROCADE is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CISCO is not set +# CONFIG_NET_VENDOR_DEC is not set +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +# CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_I825XX is not set +CONFIG_E1000=m +CONFIG_E1000E=m +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +# CONFIG_NET_VENDOR_NVIDIA is not set +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RDC is not set +# CONFIG_NET_VENDOR_REALTEK is not set +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SILAN is not set +# CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_USB_NET_DRIVERS is not set +# CONFIG_WLAN is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO_SERPORT is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +# CONFIG_SERIAL_8250_PNP is not set +# CONFIG_SERIAL_8250_PCI is not set +# CONFIG_SERIAL_8250_LPSS is not set +# CONFIG_SERIAL_8250_MID is not set +CONFIG_TTY_PRINTK=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS_I2C_NUVOTON=y +CONFIG_TCG_TIS=y +# CONFIG_I2C_COMPAT is not set +CONFIG_I2C_MUX=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_REG=m +# CONFIG_I2C_HELPER_AUTO is not set +CONFIG_I2C_SLAVE=y +CONFIG_PTP_1588_CLOCK=y +# CONFIG_HWMON is not set +# CONFIG_X86_PKG_TEMP_THERMAL is not set +CONFIG_MFD_SYSCON=y +CONFIG_DRM=y +CONFIG_DRM_I915=y +CONFIG_DRM_AST=y +CONFIG_FB_VESA=y +# CONFIG_BACKLIGHT_GENERIC is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_PLATFORM=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_STORAGE=m +CONFIG_RTC_CLASS=y +# CONFIG_X86_PLATFORM_DEVICES is not set +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_SVM=y +CONFIG_GENERIC_PHY=y +# CONFIG_BLK_DEV_PMEM is not set +# CONFIG_ND_BLK is not set +# CONFIG_BTT is not set +CONFIG_EXT4_FS=y +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +# CONFIG_PROC_SYSCTL is not set +# CONFIG_PROC_PAGE_MONITOR is not set +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +CONFIG_HARDENED_USERCOPY=y +CONFIG_CRYPTO_USER=y +CONFIG_CRYPTO_RSA=m +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_CHACHA20POLY1305=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=y +CONFIG_CRYPTO_KEYWRAP=m +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_CRC32_PCLMUL=m +CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m +CONFIG_CRYPTO_POLY1305_X86_64=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1_SSSE3=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_AES_NI_INTEL=y +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_X86_64=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_CAST5_AVX_X86_64=m +CONFIG_CRYPTO_CAST6_AVX_X86_64=m +CONFIG_CRYPTO_DES3_EDE_X86_64=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_CHACHA20_X86_64=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_842=m +CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4HC=m +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_DRBG_HASH=y +CONFIG_CRYPTO_DRBG_CTR=y +CONFIG_CRYPTO_USER_API_HASH=y +CONFIG_CRYPTO_USER_API_SKCIPHER=y +CONFIG_CRYPTO_USER_API_RNG=y +CONFIG_CRYPTO_USER_API_AEAD=y +# CONFIG_CRYPTO_HW is not set +CONFIG_CORDIC=m +CONFIG_CRC_CCITT=m +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_XZ_DEC_TEST=m +CONFIG_IRQ_POLL=y +CONFIG_PRINTK_TIME=y +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF4=y +CONFIG_GDB_SCRIPTS=y +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=1024 +CONFIG_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_WQ_WATCHDOG=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_FTRACE is not set +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_X86_VERBOSE_BOOTUP is not set +# CONFIG_DOUBLEFAULT is not set +CONFIG_IO_DELAY_0XED=y +# CONFIG_X86_DEBUG_FPU is not set diff --git a/patches/coreboot-4.13/0002-enable-tpm-parrot.patch b/patches/coreboot-4.13/0002-enable-tpm-parrot.patch new file mode 100644 index 000000000..c37d8e8e1 --- /dev/null +++ b/patches/coreboot-4.13/0002-enable-tpm-parrot.patch @@ -0,0 +1,14 @@ +diff --git a/src/mainboard/google/parrot/devicetree.cb b/src/mainboard/google/parrot/devicetree.cb +index 61e51d0df3..1ac5d6ca60 100644 +--- a/src/mainboard/google/parrot/devicetree.cb ++++ b/src/mainboard/google/parrot/devicetree.cb +@@ -85,6 +85,9 @@ chip northbridge/intel/sandybridge + device pnp ff.1 on # dummy address + end + end ++ chip drivers/pc80/tpm ++ device pnp 0c31.0 on end ++ end + end # LPC bridge + device pci 1f.2 on end # SATA Controller 1 + device pci 1f.3 on end # SMBus From cd866810fc00d553e7c2b6fdc5e1f07d3b0d1158 Mon Sep 17 00:00:00 2001 From: gompa Date: Thu, 28 Jan 2021 11:50:17 +0100 Subject: [PATCH 02/15] add blobs --- blobs/parrot/ifd_shrinked.bin | Bin 0 -> 4096 bytes blobs/parrot/me_shrinked.bin | Bin 0 -> 94208 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 blobs/parrot/ifd_shrinked.bin create mode 100644 blobs/parrot/me_shrinked.bin diff --git a/blobs/parrot/ifd_shrinked.bin b/blobs/parrot/ifd_shrinked.bin new file mode 100644 index 0000000000000000000000000000000000000000..ab3b21b116aeb2574819d15d2aea8a4f029038c6 GIT binary patch literal 4096 zcmezW9~DF`{lL%6z{14FBp{@~sK}toz`%g4LWRM=6DR}*AaM{wg5f_qBZD}@e|ex< z5JmzF4BT7{3@j`Xj2s+D!h?p{bWMSSpAqDXFc87O@Zbc5Mj{(n84QjvI5JFUV3>&{ z%wTsI!eatbgT_N7It1hc619vf9}R)g5Eu=C(GVC7fzc2c4S~@R7!85Z5EvpMAn(q= cAgUm$@ZLe3fmMN3VTd@JCeFOiGTQe60C6W{EdT%j literal 0 HcmV?d00001 diff --git a/blobs/parrot/me_shrinked.bin b/blobs/parrot/me_shrinked.bin new file mode 100644 index 0000000000000000000000000000000000000000..d1c7db4e4da251f304f804b9e95b0a137b3d66b4 GIT binary patch literal 94208 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 literal 0 HcmV?d00001 From 5a1ee9e0e6ccd830199a6fbbcbc9050b910345cc Mon Sep 17 00:00:00 2001 From: gompa Date: Thu, 28 Jan 2021 17:23:38 +0100 Subject: [PATCH 03/15] fix board name --- .../parrot.config => Parrot/Parrot.config} | 0 config/coreboot-parrot.config | 5 +++-- .../coreboot-4.13/0002-enable-tpm-parrot.patch | 18 +++++++++--------- 3 files changed, 12 insertions(+), 11 deletions(-) rename boards/{parrot/parrot.config => Parrot/Parrot.config} (100%) diff --git a/boards/parrot/parrot.config b/boards/Parrot/Parrot.config similarity index 100% rename from boards/parrot/parrot.config rename to boards/Parrot/Parrot.config diff --git a/config/coreboot-parrot.config b/config/coreboot-parrot.config index de9444d59..bde2031af 100644 --- a/config/coreboot-parrot.config +++ b/config/coreboot-parrot.config @@ -1,5 +1,6 @@ CONFIG_MEASURED_BOOT=y CONFIG_VENDOR_GOOGLE=y +CONFIG_BOARD_GOOGLE_PARROT=y CONFIG_CBFS_SIZE=0x780000 CONFIG_BOARD_GOOGLE_PARROT=y CONFIG_IFD_BIN_PATH="../../blobs/parrot/ifd_shrinked.bin" @@ -12,8 +13,8 @@ CONFIG_NO_GFX_INIT=y CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000 CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5=y CONFIG_PAYLOAD_LINUX=y -CONFIG_PAYLOAD_FILE="../../build/parrot/bzImage" +CONFIG_PAYLOAD_FILE="../../build/Parrot/bzImage" CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet" -CONFIG_LINUX_INITRD="../../build/parrot/initrd.cpio.xz" +CONFIG_LINUX_INITRD="../../build/Parrot/initrd.cpio.xz" CONFIG_USE_OPTION_TABLE=y CONFIG_STATIC_OPTION_TABLE=y diff --git a/patches/coreboot-4.13/0002-enable-tpm-parrot.patch b/patches/coreboot-4.13/0002-enable-tpm-parrot.patch index c37d8e8e1..d0f71a8d7 100644 --- a/patches/coreboot-4.13/0002-enable-tpm-parrot.patch +++ b/patches/coreboot-4.13/0002-enable-tpm-parrot.patch @@ -3,12 +3,12 @@ index 61e51d0df3..1ac5d6ca60 100644 --- a/src/mainboard/google/parrot/devicetree.cb +++ b/src/mainboard/google/parrot/devicetree.cb @@ -85,6 +85,9 @@ chip northbridge/intel/sandybridge - device pnp ff.1 on # dummy address - end - end -+ chip drivers/pc80/tpm -+ device pnp 0c31.0 on end -+ end - end # LPC bridge - device pci 1f.2 on end # SATA Controller 1 - device pci 1f.3 on end # SMBus + device pnp ff.1 on # dummy address + end + end ++ chip drivers/pc80/tpm ++ device pnp 0c31.0 on end ++ end + end # LPC bridge + device pci 1f.2 on end # SATA Controller 1 + device pci 1f.3 on end # SMBus From 1bbdaa2125879d51e02616c461cd2c3a53a3d1da Mon Sep 17 00:00:00 2001 From: gompa Date: Thu, 28 Jan 2021 19:54:29 +0100 Subject: [PATCH 04/15] add CONFIG_TPM_MEASURED_BOOT=y --- config/coreboot-parrot.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/coreboot-parrot.config b/config/coreboot-parrot.config index bde2031af..8c44d7c8e 100644 --- a/config/coreboot-parrot.config +++ b/config/coreboot-parrot.config @@ -1,4 +1,4 @@ -CONFIG_MEASURED_BOOT=y +CONFIG_TPM_MEASURED_BOOT=y CONFIG_VENDOR_GOOGLE=y CONFIG_BOARD_GOOGLE_PARROT=y CONFIG_CBFS_SIZE=0x780000 From 9426c461819d54f25343724990d68a33d6739343 Mon Sep 17 00:00:00 2001 From: gompa Date: Thu, 28 Jan 2021 23:27:14 +0100 Subject: [PATCH 05/15] remove intel_iommu=igfx_off --- boards/Parrot/Parrot.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boards/Parrot/Parrot.config b/boards/Parrot/Parrot.config index 5740878c6..1acab7797 100644 --- a/boards/Parrot/Parrot.config +++ b/boards/Parrot/Parrot.config @@ -40,7 +40,7 @@ export CONFIG_TPM=y export CONFIG_BOOTSCRIPT=/bin/gui-init export CONFIG_BOOT_REQ_HASH=n export CONFIG_BOOT_REQ_ROLLBACK=n -export CONFIG_BOOT_KERNEL_ADD="intel_iommu=on intel_iommu=igfx_off" +export CONFIG_BOOT_KERNEL_ADD="intel_iommu=on" export CONFIG_BOOT_KERNEL_REMOVE="quiet" export CONFIG_BOOT_DEV="/dev/sda2" export CONFIG_BOARD_NAME="Parrot" From c8acf892367e75eb2ec0adf4c106d63266844bcf Mon Sep 17 00:00:00 2001 From: gompa Date: Fri, 29 Jan 2021 08:54:31 +0100 Subject: [PATCH 06/15] remove option table --- boards/Parrot/Parrot.config | 12 +++++------- config/coreboot-parrot.config | 2 -- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/boards/Parrot/Parrot.config b/boards/Parrot/Parrot.config index 1acab7797..b8b8edacf 100644 --- a/boards/Parrot/Parrot.config +++ b/boards/Parrot/Parrot.config @@ -1,5 +1,4 @@ -# Configuration for a x230 running Qubes and other OSes -# STATIC_OPTION_TABLE is set inside of coreboot config +# Configuration for a Parrot running Qubes and other OSes # # Deactivated to fit in coreboot's CONFIG_CBFS_SIZE=0x700000 : # dropbear support(ssh client/server) @@ -46,10 +45,9 @@ export CONFIG_BOOT_DEV="/dev/sda2" export CONFIG_BOARD_NAME="Parrot" export CONFIG_FLASHROM_OPTIONS="--force --noverify-all -p internal --ifd --image bios" -# This board has two SPI flash chips, an 8 MB that holds the IFD, -# the ME image and part of the coreboot image, and a 4 MB one that -# has the rest of the coreboot and the reset vector. +# This board has one SPI flash chip an 8 MB that holds the IFD, +# the ME image and part of the coreboot image and bios +# # # Only flashing to the bios region is safe to do. The easiest is to -# flash internally when the IFD is unlocked for writing, and x230-flash -# is installed first. +# flash internally when the IFD is unlocked for writing diff --git a/config/coreboot-parrot.config b/config/coreboot-parrot.config index 8c44d7c8e..2882527a0 100644 --- a/config/coreboot-parrot.config +++ b/config/coreboot-parrot.config @@ -16,5 +16,3 @@ CONFIG_PAYLOAD_LINUX=y CONFIG_PAYLOAD_FILE="../../build/Parrot/bzImage" CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet" CONFIG_LINUX_INITRD="../../build/Parrot/initrd.cpio.xz" -CONFIG_USE_OPTION_TABLE=y -CONFIG_STATIC_OPTION_TABLE=y From d14796187cba59202a998373c3ae73e17e6a7219 Mon Sep 17 00:00:00 2001 From: gompa Date: Fri, 29 Jan 2021 10:00:33 +0100 Subject: [PATCH 07/15] add network modules for parrot created with savedefconfig --- config/linux-parrot_common.config | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config/linux-parrot_common.config b/config/linux-parrot_common.config index c427ea3bc..63065d37d 100644 --- a/config/linux-parrot_common.config +++ b/config/linux-parrot_common.config @@ -101,9 +101,11 @@ CONFIG_NETDEVICES=y # CONFIG_NET_VENDOR_ALTEON is not set # CONFIG_NET_VENDOR_AMAZON is not set # CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_AQUANTIA is not set # CONFIG_NET_VENDOR_ARC is not set # CONFIG_NET_VENDOR_ATHEROS is not set -# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_AURORA is not set +CONFIG_TIGON3=y # CONFIG_NET_VENDOR_BROCADE is not set # CONFIG_NET_VENDOR_CAVIUM is not set # CONFIG_NET_VENDOR_CHELSIO is not set @@ -161,15 +163,14 @@ CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_VIA=m CONFIG_TCG_TPM=y -CONFIG_TCG_TIS_I2C_NUVOTON=y CONFIG_TCG_TIS=y +CONFIG_TCG_TIS_I2C_NUVOTON=y # CONFIG_I2C_COMPAT is not set CONFIG_I2C_MUX=m CONFIG_I2C_MUX_PCA9541=m CONFIG_I2C_MUX_REG=m # CONFIG_I2C_HELPER_AUTO is not set CONFIG_I2C_SLAVE=y -CONFIG_PTP_1588_CLOCK=y # CONFIG_HWMON is not set # CONFIG_X86_PKG_TEMP_THERMAL is not set CONFIG_MFD_SYSCON=y From b6faff819d3b6031659517e0ed5496497d90ef8d Mon Sep 17 00:00:00 2001 From: gompa Date: Fri, 29 Jan 2021 10:52:47 +0100 Subject: [PATCH 08/15] add retpoline --- config/linux-parrot_common.config | 1 - 1 file changed, 1 deletion(-) diff --git a/config/linux-parrot_common.config b/config/linux-parrot_common.config index 63065d37d..4260f2be1 100644 --- a/config/linux-parrot_common.config +++ b/config/linux-parrot_common.config @@ -28,7 +28,6 @@ CONFIG_EMBEDDED=y # CONFIG_SLUB_DEBUG is not set # CONFIG_COMPAT_BRK is not set CONFIG_SMP=y -# CONFIG_RETPOLINE is not set # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_PROCESSOR_SELECT=y # CONFIG_CPU_SUP_CENTAUR is not set From d23b8b0241d82f6bf879f80ce1e98ac7c67e5b90 Mon Sep 17 00:00:00 2001 From: gompa Date: Fri, 29 Jan 2021 11:52:19 +0100 Subject: [PATCH 09/15] me extract and cleaning --- blobs/parrot/download_clean_me.sh | 49 ++++++++++++++++++++++++++++++ blobs/parrot/me_shrinked.bin | Bin 94208 -> 0 bytes config/coreboot-parrot.config | 2 +- 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100755 blobs/parrot/download_clean_me.sh delete mode 100644 blobs/parrot/me_shrinked.bin diff --git a/blobs/parrot/download_clean_me.sh b/blobs/parrot/download_clean_me.sh new file mode 100755 index 000000000..12f73c03d --- /dev/null +++ b/blobs/parrot/download_clean_me.sh @@ -0,0 +1,49 @@ +function printusage { + echo "Usage: $0 -m (optional)" +} + +BLOBDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +if [ "$#" -eq 0 ]; then printusage; fi + +while getopts ":m:" opt; do + case $opt in + m) + if [ -x "$OPTARG" ]; then + MECLEAN="$OPTARG" + fi + ;; + esac +done + +FINAL_ME_BIN_SHA256SUM="e985feb4a2879a99fb792f2d425c17a68ee07ba8bc0fd39a7f9eb65d8c6d5f11 $BLOBDIR/me.bin" +ME_SHA256SUM="1790fabc16afc36ab1bcfd52e10b805855d5e2a4eb96ea78781ffb60a0941928 me.bin" +ME8_5M_PRODUCTION_SHA256SUM="821c6fa16e62e15bc902ce2e958ffb61f63349a471685bed0dc78ce721a01bfa app/ME8_5M_Production.bin" + + +if [ -z "$MECLEAN" ]; then + MECLEAN=`command -v $BLOBDIR/../../build/coreboot-*/util/me_cleaner/me_cleaner.py 2>&1|head -n1` + if [ -z "$MECLEAN" ]; then + echo "me_cleaner.py required but not found or specified with -m. Aborting." + exit 1; + fi +fi + +echo "### Creating temp dir" +extractdir=$(mktemp -d) +cd "$extractdir" + +echo "### Downloading: https://github.com/coreboot/blobs/raw/master/mainboard/google/parrot/me.bin..." +wget https://github.com/coreboot/blobs/raw/master/mainboard/google/parrot/me.bin || ( echo "ERROR: wget not found" && exit 1 ) +echo "### Verifying expected hash of me.bin" +echo "$ME_SHA256SUM" | sha256sum --check || ( echo "Failed sha256sum verification on downloaded binary..." && exit 1 ) + +echo "###Applying me_cleaner to neuter+deactivate+maximize reduction of ME on $bioscopy, outputting minimized ME under $BLOBDIR/me.bin... " +$MECLEAN -r -t -O "$BLOBDIR/me.bin" me.bin +echo "### Verifying expected hash of me.bin" +echo "$FINAL_ME_BIN_SHA256SUM" | sha256sum --check || ( echo "Failed sha256sum verification on final binary..." && exit 1 ) + + +echo "###Cleaning up..." +cd - +rm -r "$extractdir" diff --git a/blobs/parrot/me_shrinked.bin b/blobs/parrot/me_shrinked.bin deleted file mode 100644 index d1c7db4e4da251f304f804b9e95b0a137b3d66b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94208 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 diff --git a/config/coreboot-parrot.config b/config/coreboot-parrot.config index 2882527a0..15cf9181b 100644 --- a/config/coreboot-parrot.config +++ b/config/coreboot-parrot.config @@ -4,7 +4,7 @@ CONFIG_BOARD_GOOGLE_PARROT=y CONFIG_CBFS_SIZE=0x780000 CONFIG_BOARD_GOOGLE_PARROT=y CONFIG_IFD_BIN_PATH="../../blobs/parrot/ifd_shrinked.bin" -CONFIG_ME_BIN_PATH="../../blobs/parrot/me_shrinked.bin" +CONFIG_ME_BIN_PATH="../../blobs/parrot/me.bin" CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES=y CONFIG_NO_POST=y CONFIG_TPM_RDRESP_NEED_DELAY=y From ae1ceedd102fb2163fa6ee7c3ecc0e151b1a3d70 Mon Sep 17 00:00:00 2001 From: gompa Date: Fri, 29 Jan 2021 11:55:08 +0100 Subject: [PATCH 10/15] cleanup leftover hash --- blobs/parrot/download_clean_me.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/blobs/parrot/download_clean_me.sh b/blobs/parrot/download_clean_me.sh index 12f73c03d..d05e6daa8 100755 --- a/blobs/parrot/download_clean_me.sh +++ b/blobs/parrot/download_clean_me.sh @@ -18,7 +18,6 @@ done FINAL_ME_BIN_SHA256SUM="e985feb4a2879a99fb792f2d425c17a68ee07ba8bc0fd39a7f9eb65d8c6d5f11 $BLOBDIR/me.bin" ME_SHA256SUM="1790fabc16afc36ab1bcfd52e10b805855d5e2a4eb96ea78781ffb60a0941928 me.bin" -ME8_5M_PRODUCTION_SHA256SUM="821c6fa16e62e15bc902ce2e958ffb61f63349a471685bed0dc78ce721a01bfa app/ME8_5M_Production.bin" if [ -z "$MECLEAN" ]; then From 0b953f7ba00559aadbbc5f2819f46b81bc440fcd Mon Sep 17 00:00:00 2001 From: gompa Date: Fri, 29 Jan 2021 21:47:02 +0100 Subject: [PATCH 11/15] change to current commit --- blobs/parrot/download_clean_me.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blobs/parrot/download_clean_me.sh b/blobs/parrot/download_clean_me.sh index d05e6daa8..4d41767c5 100755 --- a/blobs/parrot/download_clean_me.sh +++ b/blobs/parrot/download_clean_me.sh @@ -33,7 +33,7 @@ extractdir=$(mktemp -d) cd "$extractdir" echo "### Downloading: https://github.com/coreboot/blobs/raw/master/mainboard/google/parrot/me.bin..." -wget https://github.com/coreboot/blobs/raw/master/mainboard/google/parrot/me.bin || ( echo "ERROR: wget not found" && exit 1 ) +wget https://github.com/coreboot/blobs/raw/353f2469be53919b6b359148469485a9040e5a8b/mainboard/google/parrot/me.bin || ( echo "ERROR: wget not found" && exit 1 ) echo "### Verifying expected hash of me.bin" echo "$ME_SHA256SUM" | sha256sum --check || ( echo "Failed sha256sum verification on downloaded binary..." && exit 1 ) From b444f93f9f655e955653507050dc94b3bd8c64e9 Mon Sep 17 00:00:00 2001 From: gompa Date: Mon, 1 Feb 2021 09:03:54 +0100 Subject: [PATCH 12/15] change config support line --- boards/Parrot/Parrot.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boards/Parrot/Parrot.config b/boards/Parrot/Parrot.config index b8b8edacf..7618ff15a 100644 --- a/boards/Parrot/Parrot.config +++ b/boards/Parrot/Parrot.config @@ -1,4 +1,4 @@ -# Configuration for a Parrot running Qubes and other OSes +# Configuration for a Parrot running Other OSes, No QubesOS support since no vt-d support! # # Deactivated to fit in coreboot's CONFIG_CBFS_SIZE=0x700000 : # dropbear support(ssh client/server) From a9a9f25cb416f92449f83f2f328106f7ebdbc48f Mon Sep 17 00:00:00 2001 From: gompa Date: Mon, 1 Feb 2021 09:34:24 +0100 Subject: [PATCH 13/15] remove kernel debugging, enable kexec_sig --- config/linux-parrot_common.config | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/config/linux-parrot_common.config b/config/linux-parrot_common.config index 4260f2be1..6da53525e 100644 --- a/config/linux-parrot_common.config +++ b/config/linux-parrot_common.config @@ -42,6 +42,7 @@ CONFIG_X86_PMEM_LEGACY=y # CONFIG_SECCOMP is not set CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y +CONFIG_KEXEC_SIG=y # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 # CONFIG_MODIFY_LDT_SYSCALL is not set @@ -283,9 +284,6 @@ CONFIG_IRQ_POLL=y CONFIG_PRINTK_TIME=y CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_INFO_DWARF4=y -CONFIG_GDB_SCRIPTS=y # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_FRAME_WARN=1024 CONFIG_DEBUG_FS=y From 1bb594b08d5218334f80b8f6d4c8b6b28e755353 Mon Sep 17 00:00:00 2001 From: gompa Date: Thu, 11 Feb 2021 14:11:30 +0100 Subject: [PATCH 14/15] cleanup config --- boards/Parrot/Parrot.config | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/boards/Parrot/Parrot.config b/boards/Parrot/Parrot.config index 7618ff15a..e90ceb34b 100644 --- a/boards/Parrot/Parrot.config +++ b/boards/Parrot/Parrot.config @@ -1,8 +1,6 @@ # Configuration for a Parrot running Other OSes, No QubesOS support since no vt-d support! # -# Deactivated to fit in coreboot's CONFIG_CBFS_SIZE=0x700000 : -# dropbear support(ssh client/server) -# e1000e (ethernet driver) +# export CONFIG_COREBOOT=y export CONFIG_COREBOOT_VERSION=4.13 export CONFIG_LINUX_VERSION=5.4.69 From 68de621e11b2a27062fa4fc621052c027f86dc6d Mon Sep 17 00:00:00 2001 From: gompa Date: Thu, 11 Feb 2021 14:13:23 +0100 Subject: [PATCH 15/15] add circleci config for parrot --- .circleci/config.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 760094f5e..5e286a1a4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -280,6 +280,30 @@ jobs: - store-artifacts: path: build/t420-hotp-maximized + - run: + name: Download and neuter Parrot ME (keep extracted IFD in tree) + command: | + ./blobs/parrot/download_clean_me.sh + - run: + name: Parrot + command: | + rm -rf build/Parrot/* build/log/* && make CPUS=4 V=1 BOARD=Parrot || touch /tmp/failed_build + no_output_timeout: 3h + - run: + name: Output build failing logs + command: | + if [[ -f /tmp/failed_build ]]; then find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1;else echo "Not failing. Continuing..."; fi + - run: + name: Output Parrot hashes + command: | + cat build/Parrot/hashes.txt \ + - run: + name: Archiving build logs for Parrot + command: | + tar zcvf build/Parrot/logs.tar.gz ./build/log/* + - store-artifacts: + path: build/Parrot + - run: name: Download and neuter xx20 ME (keep generated GBE and extracted IFD in tree) command: |