diff --git a/README.md b/README.md index 99179e11..b8f04fa9 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,9 @@ Notes: see `patches/xen-4.6.3.patch` and adding `no-real-mode` to start of the Xen command line. Booting or installing Qubes is a bit hacky and needs to be documented. * Building for the Lenovo X220 requires binary blobs to be placed in the blobs/x220/ folder. -See the readme.txt file in that folder +See the readme.md file in that folder +* Building for the Librem 13 v2/v3 or Librem 15 v3/v4 requires binary blobs to be placed in +the blobs/librem_skl folder. See the readme.md file in that folder Signing with GPG --- diff --git a/blobs/librem_skl/get_blobs.sh b/blobs/librem_skl/get_blobs.sh new file mode 100755 index 00000000..b36abe69 --- /dev/null +++ b/blobs/librem_skl/get_blobs.sh @@ -0,0 +1,218 @@ +#!/bin/bash -e +# depends on : wget sha256sum python2.7 bspatch + +# Librem 13 v2 and Librem 15 v3 binary blob hashes +SKL_UCODE_SHA="9c84936df700d74612a99e6ab581640ecf423d25a0b74a1ea23a6d9872349213" +SKL_DESCRIPTOR_SHA="d5110807c9d67cea6d546ac62125d87042a868177241be4ae17a2dbedef10017" +SKL_ME_NOCONF_SHA="70f07be7934bdbb215c66455a2b0d32651f3b2ecaf2519d83d8ca9cf475cc366" +SKL_ME_SHA="3042150c7f655293a69bcf886836732fc451439ae551a2babf3173f4f0d9a8d3" +SKL_FSP_SHA="a7dfec436f5a21a66b5a455775599d73a95170a3446849a34e89a64a2bb69820" +SKL_FSPM_SHA="7a1acc72073969e6753bbfe145f06c3f4d35e2516cb241641eae968705e2cc46" +SKL_FSPS_SHA="0dac94d249473e9d366597fd1f96a0232fb7bf045a3d08f16784961273351822" +SKL_VBT_SHA="51fa214ca44a61b171662d4c2ca6adc1aa3dc6c3d7a24bf9ae5f249f012d61c0" + +# FSP downloadable from Github +SKL_UCODE_URL="https://github.com/platomav/CPUMicrocodes/raw/bfb23e48eb84dff1495d1c8789f133a1b684de27/Intel/cpu406E3_platC0_ver000000C2_2017-11-16_PRD_C6C6F699.bin" +SKL_FSP_URL="https://github.com/IntelFsp/FSP/raw/8267cde09763c0c699704fbae10e6bd121f01b6a/KabylakeFspBinPkg/Fsp.fd" +SKL_VBT_URL="https://github.com/IntelFsp/FSP/raw/8267cde09763c0c699704fbae10e6bd121f01b6a/KabylakeFspBinPkg/SampleCode/Vbt/Vbt.bin" +SKL_FSP_SPLIT_URL="https://raw.githubusercontent.com/tianocore/edk2/e8a70885d8f34533b6dd69878fe95a249e9af086/IntelFsp2Pkg/Tools/SplitFspBin.py" +SKL_FSP_SPLIT_SHA="f654f6363de68ad78b1baf8b8e573b53715c3bc76f7f3c23562641e49a7033f3" +ME_CLEANER_URL="https://github.com/corna/me_cleaner/raw/9e1611fdf21426d66a29a5ea62b7e30d512859e6/me_cleaner.py" +ME_CLEANER_SHA="412e95538c46d6d4d456987a8897b3d0ad1df118c51378a350540eef51c242d4" + +SKL_DESCRIPTOR_URL="https://code.puri.sm/kakaroto/coreboot-files/raw/master/descriptor-skl.bin" +SKL_ME_PATCH_URL="https://code.puri.sm/kakaroto/coreboot-files/raw/master/me11.0.18_config.bspatch" +SKL_ME_PATCH_SHA="49019f89206d6371b1377cf738426c3b0ac60c4b1bb89d5d5de00481e7e4fece" + +# Link found on : http://www.win-raid.com/t832f39-Intel-Engine-Firmware-Repositories.html +# Update link if it changes and becomes invalid. +SKL_ME_RAR_URL="http://www.mediafire.com/file/1angqt361xdf8k0/" +SKL_ME_FILENAME="11.0.18.1002_CON_LP_C0_NPDM_PRD_RGN.bin" +SKL_ME_FULL_FILENAME="Intel CSME 11.0 Firmware Repository Pack r50/$SKL_ME_FILENAME" +SKL_ME_RAR_SHA="11a9c199065c513a93c19269ffbb4bb094f8642a97686082e8cd2974673c599d" + +# Might be required to compile unrar in case unrar-nonfree is not installed +RAR_NONFREE_SOURCE_URL="https://www.rarlab.com/rar/unrarsrc-5.5.8.tar.gz" +RAR_NONFREE_SOURCE_SHA="9b66e4353a9944bc140eb2a919ff99482dd548f858f5e296d809e8f7cdb2fcf4" + +die () { + local msg=$1 + + echo "" + echo "$msg" + exit 1 +} + +check_binary () { + local filename=$1 + local hash=$2 + + if [ ! -f "$filename" ]; then + die "Binary blob file '$filename' does not exist" + fi + sha=$(sha256sum "$filename" | awk '{print $1}') + if [ "$sha" != "$hash" ]; then + die "Extracted binary '$filename' has the wrong SHA256 hash" + fi +} + +check_and_get_url () { + filename=$1 + url=$2 + hash=$3 + description=$4 + + if [ -f "$filename" ]; then + sha=$(sha256sum "$filename" | awk '{print $1}') + fi + if [ "$sha" != "$hash" ]; then + wget -O "$filename" "$url" + sha=$(sha256sum "$filename" | awk '{print $1}') + if [ "$sha" != "$hash" ]; then + die "Downloaded $description has the wrong SHA256 hash" + fi + fi + +} + +get_and_split_fsp () { + fsp="fsp.fd" + fsp_M="fsp_M.fd" + fsp_S="fsp_S.fd" + fsp_T="fsp_T.fd" + fspm="fspm.bin" + fsps="fsps.bin" + fsp_split="SplitFspBin.py" + + if [ -f "$fspm" ]; then + fspm_sha=$(sha256sum "$fspm" | awk '{print $1}') + fi + if [ -f "$fsps" ]; then + fsps_sha=$(sha256sum "$fsps" | awk '{print $1}') + fi + # No FSP-M or FSP-S + if [ "$fspm_sha" != "$SKL_FSPM_SHA" ] || [ "$fsps_sha" != "$SKL_FSPS_SHA" ]; then + if [ -f "$fsp" ]; then + fsp_sha=$(sha256sum "$fsp" | awk '{print $1}') + fi + # No FSP.fd + if [ "$fsp_sha" != "$SKL_FSP_SHA" ]; then + wget -O "$fsp" "$SKL_FSP_URL" + fsp_sha=$(sha256sum "$fsp" | awk '{print $1}') + if [ "$fsp_sha" != "$SKL_FSP_SHA" ]; then + die "Downloaded FSP image has the wrong SHA256 hash" + fi + fi + # No FspSplit + if [ -f "$fsp_split" ]; then + split_sha=$(sha256sum "$fsp_split" | awk '{print $1}') + fi + if [ "$split_sha" != "$SKL_FSP_SHA" ]; then + wget -O "$fsp_split" "$SKL_FSP_SPLIT_URL" + split_sha=$(sha256sum "$fsp_split" | awk '{print $1}') + if [ "$split_sha" != "$SKL_FSP_SPLIT_SHA" ]; then + die "Downloaded FSP Split Tool has the wrong SHA256 hash" + fi + fi + python2 "$fsp_split" split -f "$fsp" + if [ -f "$fsp_M" ]; then + mv "$fsp_M" "$fspm" + fi + if [ -f "$fsp_S" ]; then + mv "$fsp_S" "$fsps" + fi + fspm_sha=$(sha256sum "$fspm" | awk '{print $1}') + fsps_sha=$(sha256sum "$fsps" | awk '{print $1}') + if [ "$fspm_sha" != "$SKL_FSPM_SHA" ] || [ "$fsps_sha" != "$SKL_FSPS_SHA" ]; then + die "Extracted FSP images have the wrong SHA256 hash" + fi + rm -f "$fsp" + rm -f "$fsp_split" + rm -f "$fsp_T" + fi +} + +get_and_patch_me_11 () { + if [ -f "me.bin" ]; then + sha=$(sha256sum "me.bin" | awk '{print $1}') + fi + if [ "$sha" != "$SKL_ME_SHA" ]; then + local rar_filename=me_11_repository.rar + local unrar='unrar-nonfree' + + if [ -f "$rar_filename" ]; then + sha=$(sha256sum "$rar_filename" | awk '{print $1}') + fi + if ! type "$unrar" &> /dev/null; then + wget -O unrar.tar.gz "$RAR_NONFREE_SOURCE_URL" + sha=$(sha256sum unrar.tar.gz | awk '{print $1}') + if [ "$sha" != "$RAR_NONFREE_SOURCE_SHA" ]; then + die "Unrar source package has the wrong SHA256 hash" + fi + tar -xzvf unrar.tar.gz + ( + cd unrar + make + ) + unrar="`pwd`/unrar/unrar" + fi + if [ "$sha" != "$SKL_ME_RAR_SHA" ]; then + DIRECT_LINK=$(wget -O - "$SKL_ME_RAR_URL" 2>/dev/null | grep -o -e 'http://download.*.rar' | head -n 1) + wget -O "$rar_filename" "$DIRECT_LINK" + sha=$(sha256sum "$rar_filename" | awk '{print $1}') + if [ "$sha" != "$SKL_ME_RAR_SHA" ]; then + # We'll assume the rar file was updated again + me_dirname=$("$unrar" l "$rar_filename" | grep '\.\.\.D\.\.\.' | tr -s [:blank:] | cut -d' ' -f 6-) + SKL_ME_FULL_FILENAME="$me_dirname/$SKL_ME_FILENAME" + fi + fi + if type "$unrar" &> /dev/null; then + "$unrar" e -y "$rar_filename" "$SKL_ME_FULL_FILENAME" + else + die "Couldn't extract ME image. Requires unrar-nonfree" + fi + sha="" + if [ -f "$SKL_ME_FILENAME" ]; then + sha=$(sha256sum "$SKL_ME_FILENAME" | awk '{print $1}') + fi + if [ "$sha" != "$SKL_ME_NOCONF_SHA" ]; then + die "Couldn't extract ME image with the correct SHA256 hash" + fi + check_and_get_url me11.0.18_config.bspatch $SKL_ME_PATCH_URL $SKL_ME_PATCH_SHA "ME Patch" + bspatch "$SKL_ME_FILENAME" "me.bin" me11.0.18_config.bspatch + rm -f me11.0.18_config.bspatch + rm -f "$SKL_ME_FILENAME" + rm -f "$rar_filename" + fi +} + +apply_me_cleaner() { + if [ -f "me_cleaner.py" ]; then + sha=$(sha256sum "me_cleaner.py" | awk '{print $1}') + fi + if [ "$sha" != "$ME_CLEANER_SHA" ]; then + wget -O "me_cleaner.py" "$ME_CLEANER_URL" + sha=$(sha256sum "me_cleaner.py" | awk '{print $1}') + if [ "$sha" != "$ME_CLEANER_SHA" ]; then + die "Downloaded ME Cleaner has the wrong SHA256 hash" + fi + fi + cat descriptor.bin me.bin > desc_me.bin + python2 "me_cleaner.py" -s desc_me.bin + python2 "me_cleaner.py" -w "MFS" me.bin + dd if=desc_me.bin of=descriptor.bin bs=4096 count=1 + rm -f desc_me.bin + rm -f me_cleaner.py +} + +check_and_get_url descriptor.bin $SKL_DESCRIPTOR_URL $SKL_DESCRIPTOR_SHA "Intel Flash Descriptor" +check_binary descriptor.bin $SKL_DESCRIPTOR_SHA +get_and_patch_me_11 +check_binary me.bin $SKL_ME_SHA +apply_me_cleaner +get_and_split_fsp +check_binary fspm.bin $SKL_FSPM_SHA +check_binary fsps.bin $SKL_FSPS_SHA +check_and_get_url vbt.bin $SKL_VBT_URL $SKL_VBT_SHA "Video BIOS Table" +check_and_get_url cpu_microcode_blob.bin $SKL_UCODE_URL $SKL_UCODE_SHA "Intel Microcode Update" + diff --git a/blobs/librem_skl/readme.md b/blobs/librem_skl/readme.md new file mode 100644 index 00000000..4862f130 --- /dev/null +++ b/blobs/librem_skl/readme.md @@ -0,0 +1,16 @@ +To build for the Librem 2nd generation (Librem 13 v2/v3 and Librem 15 v3/v4), +we need to have the following files in this folder: +* cpu_microcode_blob.bin - CPU Microcode +* descriptor.bin - The Intel Flash Descriptor +* fspm.bin - FSP 2.0 Memory Init blob +* fsps.bin - FSP 2.0 Silicon Init blob +* me.bin - Intel Management Engine + +To get the binaries, run the get_blobs.sh script which will download and +verify all of the files' hashes, then run me_cleaner on the descriptor.bin and me.bin. + +You can now compile the image with: + +``` +make BOARD=librem13v2 +``` diff --git a/boards/librem13v2.config b/boards/librem13v2.config index 15eacb54..aa7376e6 100644 --- a/boards/librem13v2.config +++ b/boards/librem13v2.config @@ -1,5 +1,6 @@ # Configuration for a librem13v2 CONFIG_LINUX_CONFIG=config/linux-librem13v2.config +CONFIG_COREBOOT_CONFIG=config/coreboot-librem13v2.config CONFIG_COREBOOT=y CONFIG_CRYPTSETUP=y diff --git a/config/coreboot-librem13v2.config b/config/coreboot-librem13v2.config index 5da18342..6c1fd446 100644 --- a/config/coreboot-librem13v2.config +++ b/config/coreboot-librem13v2.config @@ -7,7 +7,7 @@ # General setup # CONFIG_COREBOOT_BUILD=y -CONFIG_LOCALVERSION="4.7-Purism-1" +CONFIG_LOCALVERSION="4.7-Purism-3" CONFIG_CBFS_PREFIX="fallback" CONFIG_COMPILER_GCC=y # CONFIG_COMPILER_LLVM_CLANG is not set @@ -24,8 +24,7 @@ CONFIG_USE_BLOBS=y CONFIG_RELOCATABLE_RAMSTAGE=y CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM=y # CONFIG_UPDATE_IMAGE is not set -CONFIG_BOOTSPLASH_IMAGE=y -CONFIG_BOOTSPLASH_FILE="bootsplash.jpg" +# CONFIG_BOOTSPLASH_IMAGE is not set CONFIG_MEASURED_BOOT=y # @@ -117,11 +116,10 @@ CONFIG_UART_FOR_CONSOLE=0 CONFIG_VGA_BIOS_ID="8086,1916" # CONFIG_ONBOARD_VGA_IS_PRIMARY is not set CONFIG_DIMM_SPD_SIZE=512 -CONFIG_VGA_BIOS=y +# CONFIG_VGA_BIOS is not set CONFIG_MAINBOARD_SERIAL_NUMBER="Unknown Serial Number" CONFIG_DCACHE_RAM_BASE=0xfef00000 CONFIG_DCACHE_RAM_SIZE=0x40000 -CONFIG_VGA_BIOS_FILE="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/vgabios.bin" CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Purism" CONFIG_HAVE_IFD_BIN=y CONFIG_HAVE_ME_BIN=y @@ -141,12 +139,12 @@ CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0 CONFIG_FMDFILE="" CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00 # CONFIG_DRIVERS_UART_8250IO is not set -CONFIG_IFD_BIN_PATH="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/descriptor.bin" -CONFIG_ME_BIN_PATH="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/me.bin" +CONFIG_IFD_BIN_PATH="../../blobs/librem_skl/descriptor.bin" +CONFIG_ME_BIN_PATH="../../blobs/librem_skl/me.bin" CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Librem 13 v2" CONFIG_ADD_FSP_BINARIES=y -CONFIG_FSP_M_FILE="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/fspm.bin" -CONFIG_FSP_S_FILE="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/fsps.bin" +CONFIG_FSP_M_FILE="../../blobs/librem_skl/fspm.bin" +CONFIG_FSP_S_FILE="../../blobs/librem_skl/fsps.bin" CONFIG_FSP_S_CBFS="fsps.bin" CONFIG_FSP_M_CBFS="fspm.bin" CONFIG_CPU_ADDR_BITS=36 @@ -154,16 +152,13 @@ CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 CONFIG_MAINBOARD_VERSION="2.0" # CONFIG_DRIVERS_PS2_KEYBOARD is not set # CONFIG_BOARD_PURISM_LIBREM13_V1 is not set -# CONFIG_BOARD_PURISM_LIBREM15_V2 is not set -# CONFIG_BOARD_PURISM_LIBREM_NANO_7100 is not set CONFIG_BOARD_PURISM_LIBREM13_V2=y # CONFIG_BOARD_PURISM_LIBREM15_V3 is not set CONFIG_PCIEXP_L1_SUB_STATE=y # CONFIG_NO_POST is not set -# CONFIG_BOARD_PURISM_BASEBOARD_LIBREM_KBL_NANO is not set +CONFIG_BOARD_PURISM_BASEBOARD_LIBREM_SKL=y CONFIG_CPU_MICROCODE_CBFS_LEN=0x18000 CONFIG_CPU_MICROCODE_CBFS_LOC=0xFFE115A0 -CONFIG_BOARD_PURISM_BASEBOARD_LIBREM_SKL=y CONFIG_BOARD_ROMSIZE_KB_16384=y # CONFIG_COREBOOT_ROMSIZE_KB_64 is not set # CONFIG_COREBOOT_ROMSIZE_KB_128 is not set @@ -372,7 +367,7 @@ CONFIG_CPU_MICROCODE_CBFS_GENERATE=y # CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set # CONFIG_CPU_MICROCODE_CBFS_NONE is not set # CONFIG_CPU_MICROCODE_MULTIPLE_FILES is not set -CONFIG_CPU_UCODE_BINARIES="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/cpu_microcode_blob.bin" +CONFIG_CPU_UCODE_BINARIES="../../blobs/librem_skl/cpu_microcode_blob.bin" # # Northbridge @@ -499,20 +494,13 @@ CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" # # Devices # -CONFIG_HAVE_LINEAR_FRAMEBUFFER=y CONFIG_HAVE_FSP_GOP=y # CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT is not set # CONFIG_MAINBOARD_HAS_LIBGFXINIT is not set -CONFIG_RUN_FSP_GOP=y +# CONFIG_RUN_FSP_GOP is not set # CONFIG_VGA_ROM_RUN is not set -# CONFIG_NO_GFX_INIT is not set +CONFIG_NO_GFX_INIT=y # CONFIG_MULTIPLE_VGA_ADAPTERS is not set - -# -# Display -# -CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y -CONFIG_LINEAR_FRAMEBUFFER=y # CONFIG_SMBUS_HAS_AUX_CHANNELS is not set CONFIG_PCI=y CONFIG_MMCONF_SUPPORT=y @@ -524,8 +512,7 @@ CONFIG_PCIEXP_PLUGIN_SUPPORT=y # CONFIG_EARLY_PCI_BRIDGE is not set CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 -CONFIG_INTEL_GMA_ADD_VBT_DATA_FILE=y -CONFIG_INTEL_GMA_VBT_FILE="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/vbt.bin" +# CONFIG_INTEL_GMA_ADD_VBT_DATA_FILE is not set # CONFIG_SOFTWARE_I2C is not set # @@ -574,6 +561,7 @@ CONFIG_DRIVERS_I2C_DESIGNWARE=y # CONFIG_DRIVERS_I2C_RT5663 is not set # CONFIG_DRIVERS_I2C_RTD2132 is not set # CONFIG_DRIVERS_I2C_RX6110SA is not set +# CONFIG_I2C_TPM is not set # CONFIG_MAINBOARD_HAS_I2C_TPM_ATMEL is not set # CONFIG_MAINBOARD_HAS_I2C_TPM_CR50 is not set # CONFIG_DISPLAY_HOBS is not set @@ -588,7 +576,7 @@ CONFIG_FSP_M_XIP=y # CONFIG_FSP2_0_USES_TPM_MRC_HASH is not set # CONFIG_INTEL_DDI is not set # CONFIG_INTEL_EDID is not set -CONFIG_INTEL_INT15=y +# CONFIG_INTEL_INT15 is not set # CONFIG_INTEL_GMA_ACPI is not set # CONFIG_INTEL_GMA_SSC_ALTERNATE_REF is not set # CONFIG_DRIVER_INTEL_I210 is not set @@ -632,7 +620,7 @@ CONFIG_BOOT_DEVICE_SPI_FLASH=y CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y CONFIG_RTC=y -# CONFIG_TPM is not set +CONFIG_TPM=y # CONFIG_MAINBOARD_HAS_TPM_CR50 is not set # @@ -645,8 +633,7 @@ CONFIG_SQUELCH_EARLY_SMP=y # CONFIG_CONSOLE_NE2K is not set CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 # CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set -CONFIG_CONSOLE_SPI_FLASH=y -CONFIG_CONSOLE_SPI_FLASH_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_SPI_FLASH is not set CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y # CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set # CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set @@ -700,11 +687,11 @@ CONFIG_GENERATE_SMBIOS_TABLES=y # CONFIG_PAYLOAD_UBOOT is not set CONFIG_PAYLOAD_LINUX=y # CONFIG_PAYLOAD_TIANOCORE is not set -CONFIG_PAYLOAD_FILE="payloads/heads/bzImage" +CONFIG_PAYLOAD_FILE="../../build/librem13v2/bzImage" CONFIG_PAYLOAD_OPTIONS="" # CONFIG_PXE is not set CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off" -CONFIG_LINUX_INITRD="payloads/heads/initrd.cpio.xz" +CONFIG_LINUX_INITRD="../../build/librem13v2/initrd.cpio.xz" # CONFIG_PAYLOAD_IS_FLAT_BINARY is not set # @@ -729,6 +716,7 @@ CONFIG_MEMTEST_STABLE=y # CONFIG_DEBUG_SMM_RELOCATION is not set # CONFIG_DEBUG_MALLOC is not set # CONFIG_DEBUG_ACPI is not set +# CONFIG_DEBUG_TPM is not set # CONFIG_DEBUG_SPI_FLASH is not set # CONFIG_TRACE is not set # CONFIG_DEBUG_BOOT_STATE is not set diff --git a/config/linux-librem13v2.config b/config/linux-librem13v2.config index 9a31dc12..fda2de5d 100644 --- a/config/linux-librem13v2.config +++ b/config/linux-librem13v2.config @@ -1482,10 +1482,12 @@ CONFIG_MFD_SYSCON=y # Graphics support # # CONFIG_AGP is not set +CONFIG_INTEL_GTT=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 # CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=y +CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_KMS_FB_HELPER=y @@ -1505,7 +1507,16 @@ CONFIG_DRM_FBDEV_EMULATION=y # ACP (Audio CoProcessor) Configuration # # CONFIG_DRM_NOUVEAU is not set -# CONFIG_DRM_I915 is not set +CONFIG_DRM_I915=y +CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y +CONFIG_DRM_I915_USERPTR=y +# CONFIG_DRM_I915_GVT is not set + +# +# drm/i915 Debugging +# +# CONFIG_DRM_I915_WERROR is not set +# CONFIG_DRM_I915_DEBUG is not set # CONFIG_DRM_VGEM is not set # CONFIG_DRM_VMWGFX is not set # CONFIG_DRM_GMA500 is not set @@ -1515,6 +1526,11 @@ CONFIG_DRM_FBDEV_EMULATION=y # CONFIG_DRM_CIRRUS_QEMU is not set # CONFIG_DRM_QXL is not set # CONFIG_DRM_BOCHS is not set +CONFIG_DRM_PANEL=y + +# +# Display Panels +# CONFIG_DRM_BRIDGE=y # @@ -2642,6 +2658,7 @@ CONFIG_DECOMPRESS_XZ=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=y CONFIG_REED_SOLOMON_DEC8=y +CONFIG_INTERVAL_TREE=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y