Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't get heads to boot on t430 #1057

Closed
ghost opened this issue Nov 15, 2021 · 59 comments
Closed

Can't get heads to boot on t430 #1057

ghost opened this issue Nov 15, 2021 · 59 comments

Comments

@ghost
Copy link

ghost commented Nov 15, 2021

did a fresh clone of heads
pulled and cleaned the ME blobs for xx30
built t430-hotp-maximized roms
flashed top & then bottom
upon booting, my t430 made a continuous beep with microphone and power lights blinking

flashed backup dump and the t430 boots. hardware is good.

then I tried just the t430-flash rom on the 4096kb chip only, and I get the same boot error: blank screen, blinking lights, continuous beep. heat sink fan starts up then immediately slows to a stop.

any ideas?

since the backup bios flash worked-- is there some way i could get a prebuilt t430-flash heads rom just for the purpose of testing, to confirm/deny that the rom build is the problem?

@ghost
Copy link
Author

ghost commented Nov 15, 2021

mobo has an nvidia GPU. I read this is an extra feature, not on all t430 boards. could this have something to do with my issue?

@tlaurion
Copy link
Collaborator

@walliams : building #1015 for coreboot 4.13 or master for coreboot 4.8.1?

@tlaurion
Copy link
Collaborator

tlaurion commented Nov 15, 2021

mobo has an nvidia GPU. I read this is an extra feature, not on all t430 boards. could this have something to do with my issue?

most probably yes, others reporting working boards didn't specify if they were using Intel i915 only.
The current 4.8.1 coreboot configuration uses Coreboot native graphical initialization, but doesn't initialize libgfx.
Coreboot 4.13 #1015 PR is deactivating coreboot graphic initialization altogether. We might need to push something specific to support nvidia support, so your input here on what you built would be a base for @nitrosimon to bring that further!

Thanks for the report, that confirms my basic insight, where without hardware, wat I can do is limited.

Adding coreboot graphic initialization, forcing coreboot to use primary display and having libgfx into coreboot might resolve this issue.

@daringer
Copy link
Collaborator

Hey @walliams

you could also try https://github.com/Nitrokey/heads/tree/nitropad as reference, this is what we use inside our Nitrokey T430 Nitropads and "should" work, although they come without a discrete GPU. We'll share some more insights during this week, we especially @nitrosimon is working on it

@ghost
Copy link
Author

ghost commented Nov 22, 2021

well, we're making progress!!
the t430-flash board from the nitropad branch plus a cleaned stock 8mb flash got me into the minimal heads and then i was able to mount a usb and flash the t430 rom of the same branch, but then... back to the same boot error >:[

i'm going to retry this process with a few more roms on the internal flash step, but at least the external flash hurdle has been cleared.

thank you all for the guidance and continued support on this project.

by the way, as to the discrete nvidia gpu on my board, i am not so much interested in enabling the gpu as i am in just being able to get heads up and running with hotp verification for my librem key. goal is to run qubes, for which i don't think the gpu would offer any advantages, at least for my intended purposes. however, feel free to use me as a guinea pig to test builds on this board while i'm still figuring out what will work on the internal flash.

@ghost
Copy link
Author

ghost commented Nov 22, 2021

internal flash attempts:

nitrokey fork, nitropad branch "heads-t430-v1.3.1.rom" - failed, blinking
nitrokey fork, nitropad branch "nitropad-v1.3.1-5e5c36f.rom" - failed, blinking
nitrokey fork, master - "heads-t430-v0.2.0-957-gb017309.rom" - failed, blinking
heads master - "heads-t430-hotp-maximized-v0.2.0-1092-gfdbd9b2.rom" - failed, solid power light, blank screen

let me know if there's another build I should try that might work. i will try the coreboot 4.13 build next time i have a chance

@daringer
Copy link
Collaborator

Hey, yes based on the current PR #1015 the only change to do is: CONFIG_NO_GFX_INIT=n inside the coreboot config for your board, then it should work, just verified. There will be an update to this PR to coreboot 4.15 soon, which will include this fix. But keep in mind that our t430 is w/o the gpu, which might lead to some further adaptations.

The maximized builds have to be flashed externally, your ME and IFD are set to read-only, you should see this if you fire up flashrom -p internal.

@ghost
Copy link
Author

ghost commented Nov 22, 2021

The maximized builds have to be flashed externally, your ME and IFD are set to read-only, you should see this if you fire up flashrom -p internal.

ahhhh i see. i knew that it could be flashed externally, but i didn't realize that it must. good to know. one other question: is there a reason that one would want to go with the hotp-maximized build over the hotp-verification build? seems they both serve the same purpose as long as you clean the ME in the external flash, but i'm sure i'm missing something. ideally is one method preferred over the other and for what reasons?

edit: also, i just built a few boards from the 4.13 branch and they all say "g1f1539c-dirty" including the maximized build. why dirty? is this just because it is not the master branch or did something go wrong?

@icequbes1
Copy link
Contributor

icequbes1 commented Nov 23, 2021

Hey, yes based on the current PR #1015 the only change to do is: CONFIG_NO_GFX_INIT=n inside the coreboot config for your board, then it should work, just verified. There will be an update to this PR to coreboot 4.15 soon, which will include this fix. But keep in mind that our t430 is w/o the gpu, which might lead to some further adaptations.

@daringer
Is there a workaround to having to reflash externally if we've built without the above change?

@icequbes1
Copy link
Contributor

Is there a workaround to having to reflash externally if we've built without the above change?

Spoke too soon - connecting an external monitor to the VGA port shows the Whiptail interface (ERROR: GPG Keyring empty!). "x" followed by "[enter]" will get to the recovery shell.

@icequbes1
Copy link
Contributor

I can confirm that the fix from @daringer to specify CONFIG_NO_GFX_INIT=n in the coreboot config resolved the "blank screen" issue on my T430 (make BOARD=t430).

@ghost
Copy link
Author

ghost commented Nov 25, 2021

@icequbes1 do you have the t430 board with the nvidia gpu? i am still not having any luck, even on the #1015 4.13 build with CONFIG_NO_GFX_INIT=n set in the coreboot config file (~/heads/config/coreboot-t430-hotp-maximized.config) i am still getting a blank screen. backlight turns on, and ctrl-alt-del reboots, so it does seem to be booting now, but not displaying

t430-flash from this branch gives me the same original boot error i had as well, so i tried the nitropad t430-flash, then internally flashed t430-hotp-verification from #1015 and same error again.

also -- i'm still unclear why all the builds from the 4.13 branch give me the tag "dirty"

@tlaurion
Copy link
Collaborator

tlaurion commented Nov 26, 2021

@walliams : dirty means you have stuff changed locally when compared to remote branch, which would be normal since you modified ~/heads/config/coreboot-t430-hotp-maximized.config

So Heads reports the version has not clean. Hence dirty.

@icequbes1
Copy link
Contributor

@walliams, No my T430 does not have the Nvidia GPU.

It is (Intel) Integrated Graphics HD 4000 (CPU is i5-3320M).

@tlaurion
Copy link
Collaborator

tlaurion commented Nov 26, 2021

@walliams can you post the content of your whole t430-hotp-maximized coreboot config here? I could then expend it so its not in a defconfig format and check if the primary display is forced, which should, per other user reports, be Intel one.

Otherwise without a board myself, back and forths are the only solution, I'm blind here.

@tlaurion
Copy link
Collaborator

tlaurion commented Nov 26, 2021

@eganonoa by any chance, you own a t430 with nvidia dedicated GPU? Your PR would suffer from the same community reported problems for t520 and t530 if coreboot doesn't deal properly with the possibility of having dedicated GPU.

@tlaurion
Copy link
Collaborator

tlaurion commented Nov 26, 2021

FYI, heads store kernel and coreboot configs in defconfig format (differences from default board configurations only).

That is, if you do:
cp configs/coreboot-t430-hotp-maximized.config build/coreboot-4.13/.config

Then
cd build/coreboot-4.13
make menuconfig

Then exit and save, the result of the modified defaults kept in defconfig stored under heads tree + actual full coreboot config will be stored under build/coreboot-4.13/.config

That is what is interesting here. The full coreboot config; not the savedefconfig stored under Heads, which was a leadership decision in the past. ( which maybe, we should revisit since only technical people will understand, and it complexities bumping versions of both Linux and coreboot, in my opinion).

We need to figure out a common configuration for each xx20 and xx30 boards, dedicated GPU or not, so that internal display is always initialized and used by Heads, that is, the Intel integrated chipset. We should not care about nvidia. The OS should.

That .config is the base we need to tweak so that a make savedefconfig is then saved under Heads tree, where a specific commit would lead into building a functional board config under specified kernel and coreboot versions for all variations of a board config.

This is why #1015 is not merged still. And I haven't anticipated so much complications and conflicting reports for a same board which I do not own.

This is why board owners need to test configurations and all reports need to be positive before a merge. Otherwise bricks will occur. And not all owners are technical enough to externally reprogram.

@eganonoa
Copy link
Contributor

@eganonoa by any chance, you own a t430 with nvidia dedicated GPU? Your PR would suffer from the same community reported problems for t520 and t530 if coreboot doesn't deal properly with the possibility of having dedicated GPU.

@tlaurion. No. We're running four plain vanilla t430's with integrated graphics, all running fine. But this whole thing I find a bit confusing. The t530 I used does have a dGPU and it runs totally fine with a board and coreboot config simply copied and repurposed from the standard t430 and x230 boards and configs. If you are fine with simply ignoring and not initializing the dGPU my experience with coreboot is that you just run the normal board and everything works fine. This has been my experience with Libreboot on a w500 with a dGPU, vanilla Coreboot (on a t440p with a dGPU), and Heads (t530 with a dGPU).

Thing are certainly more challenging if you are trying to actually use the dGPU. But that is a totally different thing. Based on my experience with the t530 with a dGPU (and indeed the other experience with Libreboot and Coreboot), I would suggest that unless @walliams is trying to do something to initialize the dGPU in their t430, there is something else going on that's causing this problem.

@eganonoa
Copy link
Contributor

We need to figure out a common configuration for all xx20 and xx30 boards, dedicated GPU or not, so that internal display is always initialized and used by Heads.

@tlaurion Based on my experience if you want the dGPU to work, you will need a different coreboot config than any with integrated-only boards. But if you don't want it, you should be fine with the vanilla configs you already have. I'm not sure you want to try to have one config that works for all, but rather just have a config file that helps people who want to initialize their dGPU to do so (inc. with the relevant VGA rom extracted from Bios and placed in the blobs folder, as well as whatever is needed for graphic init). I'm really not 100% convinced that the issue here is derived from the dGPU in the t430.

@tlaurion
Copy link
Collaborator

@eganonoa the problem is not just with @walliams board, but other reports for the t430. From my understanding, he is not trying to use the dGPU. Coreboot is probably selecting it by default, if not forced to use Intel GPU. That is my only hypothesis at this point, and since I'm not a board owner, unfortunately I can only point to that from intellectual guess.

But it doesn't work for some owners, so the default config is not enough.

@tlaurion
Copy link
Collaborator

#1057 (comment)

Is confirming some behavior fix. But not others, like here.

@eganonoa
Copy link
Contributor

eganonoa commented Nov 26, 2021

@eganonoa the problem is not just with @walliams board, but other reports for the t430. From my understanding, he is not trying to use the dGPU. Coreboot is probably selecting it by default, if not forced to use Intel GPU. That is my only hypothesis at this point, and since I'm not a board owner, unfortunately I can only point to that from intellectual guess.

But it doesn't work for some owners, so the default config is not enough.

@tlaurion This just doesn't reflect my experience and certainly not the experience I've just had with the t530 and Heads. Very strange.

@eganonoa
Copy link
Contributor

#1057 (comment)

Is confirming some behavior fix. But not others, like here.

@tlaurion but the @icequbes1 t430 does not have a dGPU. So that adds again another strange thing. As I say, we have four t430's running, all opened and flashed externally, all integrated boards and I've never had to do anything but build off master and go. This is true for coreboot 4.8.1, coreboot 4.13 and coreboot 4.14.

@tlaurion
Copy link
Collaborator

user@heads-tests:~/heads$ cp config/coreboot-t430-hotp-maximized.config build/coreboot-4.13/.config
user@heads-tests:~/heads$ cat build/coreboot-4.13/.config
# CONFIG_USE_BLOBS is not set
CONFIG_USE_OPTION_TABLE=y
CONFIG_STATIC_OPTION_TABLE=y
CONFIG_VENDOR_LENOVO=y
CONFIG_NO_POST=y
CONFIG_CBFS_SIZE=0xB80000
CONFIG_IFD_BIN_PATH="../../blobs/xx30/ifd.bin"
CONFIG_ME_BIN_PATH="../../blobs/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../blobs/xx30/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
CONFIG_BOARD_LENOVO_THINKPAD_T430=y
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
CONFIG_UART_PCI_ADDR=0
CONFIG_HAVE_ME_BIN=y
CONFIG_HAVE_GBE_BIN=y
CONFIG_NO_GFX_INIT=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000
CONFIG_PAYLOAD_LINUX=y
CONFIG_PAYLOAD_FILE="../../build/t430-hotp-maximized/bzImage"
CONFIG_LINUX_INITRD="../../build/t430-hotp-maximized/initrd.cpio.xz"
user@heads-tests:~/heads$ cd build/coreboot-4.13/
user@heads-tests:~/heads/build/coreboot-4.13$ make menuconfig
configuration written to /home/user/heads/build/coreboot-4.13/.config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

user@heads-tests:~/heads/build/coreboot-4.13$ cat .config
#
# Automatically generated file; DO NOT EDIT.
# coreboot configuration
#

#
# General setup
#
CONFIG_COREBOOT_BUILD=y
CONFIG_LOCALVERSION=""
CONFIG_CBFS_PREFIX="fallback"
CONFIG_COMPILER_GCC=y
# CONFIG_COMPILER_LLVM_CLANG is not set
# CONFIG_ANY_TOOLCHAIN is not set
# CONFIG_CCACHE is not set
# CONFIG_FMD_GENPARSER is not set
# CONFIG_UTIL_GENPARSER is not set
CONFIG_USE_OPTION_TABLE=y
CONFIG_STATIC_OPTION_TABLE=y
CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_COLLECT_TIMESTAMPS=y
# CONFIG_TIMESTAMPS_ON_CONSOLE is not set
# CONFIG_USE_BLOBS is not set
# CONFIG_COVERAGE is not set
# CONFIG_UBSAN is not set
# CONFIG_HAVE_ASAN_IN_ROMSTAGE is not set
# CONFIG_ASAN_IN_ROMSTAGE is not set
CONFIG_HAVE_ASAN_IN_RAMSTAGE=y
# CONFIG_ASAN_IN_RAMSTAGE is not set
# CONFIG_ASAN is not set
# CONFIG_NO_STAGE_CACHE is not set
CONFIG_TSEG_STAGE_CACHE=y
# CONFIG_UPDATE_IMAGE is not set
# CONFIG_BOOTSPLASH_IMAGE is not set
# CONFIG_FW_CONFIG is not set

#
# Mainboard
#

#
# Important: Run 'make distclean' before switching boards
#
# CONFIG_VENDOR_51NB is not set
# CONFIG_VENDOR_ACER is not set
# CONFIG_VENDOR_ADLINK is not set
# CONFIG_VENDOR_AMD is not set
# CONFIG_VENDOR_AOPEN is not set
# CONFIG_VENDOR_APPLE is not set
# CONFIG_VENDOR_ASROCK is not set
# CONFIG_VENDOR_ASUS is not set
# CONFIG_VENDOR_BAP is not set
# CONFIG_VENDOR_BIOSTAR is not set
# CONFIG_VENDOR_BOSTENTECH is not set
# CONFIG_VENDOR_CAVIUM is not set
# CONFIG_VENDOR_CLEVO is not set
# CONFIG_VENDOR_COMPULAB is not set
# CONFIG_VENDOR_DELL is not set
# CONFIG_VENDOR_ELMEX is not set
# CONFIG_VENDOR_EMULATION is not set
# CONFIG_VENDOR_EXAMPLE is not set
# CONFIG_VENDOR_FACEBOOK is not set
# CONFIG_VENDOR_FOXCONN is not set
# CONFIG_VENDOR_GETAC is not set
# CONFIG_VENDOR_GIGABYTE is not set
# CONFIG_VENDOR_GIZMOSPHERE is not set
# CONFIG_VENDOR_GOOGLE is not set
# CONFIG_VENDOR_HP is not set
# CONFIG_VENDOR_IBASE is not set
# CONFIG_VENDOR_INTEL is not set
# CONFIG_VENDOR_JETWAY is not set
# CONFIG_VENDOR_KONTRON is not set
CONFIG_VENDOR_LENOVO=y
# CONFIG_VENDOR_LIBRETREND is not set
# CONFIG_VENDOR_LIPPERT is not set
# CONFIG_VENDOR_MSI is not set
# CONFIG_VENDOR_OCP is not set
# CONFIG_VENDOR_OPENCELLULAR is not set
# CONFIG_VENDOR_PACKARDBELL is not set
# CONFIG_VENDOR_PCENGINES is not set
# CONFIG_VENDOR_PORTWELL is not set
# CONFIG_VENDOR_PRODRIVE is not set
# CONFIG_VENDOR_PROTECTLI is not set
# CONFIG_VENDOR_PURISM is not set
# CONFIG_VENDOR_RAZER is not set
# CONFIG_VENDOR_RODA is not set
# CONFIG_VENDOR_SAMSUNG is not set
# CONFIG_VENDOR_SAPPHIRE is not set
# CONFIG_VENDOR_SCALEWAY is not set
# CONFIG_VENDOR_SIEMENS is not set
# CONFIG_VENDOR_SIFIVE is not set
# CONFIG_VENDOR_SUPERMICRO is not set
# CONFIG_VENDOR_SYSTEM76 is not set
# CONFIG_VENDOR_TI is not set
# CONFIG_VENDOR_UP is not set
CONFIG_BOARD_SPECIFIC_OPTIONS=y
CONFIG_MAINBOARD_FAMILY="ThinkPad T430"
CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T430"
CONFIG_MAINBOARD_VERSION="1.0"
CONFIG_MAINBOARD_DIR="lenovo/t430"
CONFIG_MAX_CPUS=8
CONFIG_VGA_BIOS_ID="8086,0166"
CONFIG_DIMM_MAX=4
CONFIG_DIMM_SPD_SIZE=256
CONFIG_FMDFILE=""
CONFIG_NO_POST=y
CONFIG_MAINBOARD_VENDOR="LENOVO"
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
# CONFIG_VGA_BIOS is not set
CONFIG_CBFS_SIZE=0xB80000
CONFIG_DEVICETREE="devicetree.cb"
CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="LENOVO"
CONFIG_DRAM_RESET_GATE_GPIO=10
CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt"
CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00
CONFIG_USBDEBUG_HCD_INDEX=2
CONFIG_OVERRIDE_DEVICETREE=""
CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0
CONFIG_TPM_PIRQ=0x0
# CONFIG_VBOOT is not set
CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld"
CONFIG_VBOOT_VBNV_OFFSET=0x2a
CONFIG_DCACHE_RAM_BASE=0xfefe0000
CONFIG_DCACHE_RAM_SIZE=0x20000
CONFIG_DCACHE_BSP_STACK_SIZE=0x10000
CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
CONFIG_MAX_ACPI_TABLE_SIZE_KB=144
CONFIG_HAVE_INTEL_FIRMWARE=y
CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000
CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_TPM_INIT=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../blobs/xx30/ifd.bin"
CONFIG_ME_BIN_PATH="../../blobs/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../blobs/xx30/gbe.bin"
CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="ThinkPad T430"
CONFIG_HAVE_IFD_BIN=y
# CONFIG_BOARD_LENOVO_G505S is not set
# CONFIG_BOARD_LENOVO_L520 is not set
# CONFIG_BOARD_LENOVO_S230U is not set
# CONFIG_BOARD_LENOVO_T400 is not set
# CONFIG_BOARD_LENOVO_T500 is not set
# CONFIG_BOARD_LENOVO_R400 is not set
# CONFIG_BOARD_LENOVO_R500 is not set
# CONFIG_BOARD_LENOVO_W500 is not set
# CONFIG_BOARD_LENOVO_T410 is not set
# CONFIG_BOARD_LENOVO_T420 is not set
# CONFIG_BOARD_LENOVO_T420S is not set
CONFIG_BOARD_LENOVO_THINKPAD_T430=y
# CONFIG_BOARD_LENOVO_T430S is not set
# CONFIG_BOARD_LENOVO_T431S is not set
# CONFIG_BOARD_LENOVO_THINKPAD_T440P is not set
# CONFIG_BOARD_LENOVO_T520 is not set
# CONFIG_BOARD_LENOVO_W520 is not set
# CONFIG_BOARD_LENOVO_T530 is not set
# CONFIG_BOARD_LENOVO_W530 is not set
# CONFIG_BOARD_LENOVO_T60 is not set
# CONFIG_BOARD_LENOVO_Z61T is not set
# CONFIG_BOARD_LENOVO_R60 is not set
# CONFIG_BOARD_LENOVO_THINKCENTRE_A58 is not set
# CONFIG_BOARD_LENOVO_X131E is not set
# CONFIG_BOARD_LENOVO_X1_CARBON_GEN1 is not set
# CONFIG_BOARD_LENOVO_X200 is not set
# CONFIG_BOARD_LENOVO_X301 is not set
# CONFIG_BOARD_LENOVO_X201 is not set
# CONFIG_BOARD_LENOVO_X220 is not set
# CONFIG_BOARD_LENOVO_X220I is not set
# CONFIG_BOARD_LENOVO_X1 is not set
# CONFIG_BOARD_LENOVO_X230 is not set
# CONFIG_BOARD_LENOVO_X230T is not set
# CONFIG_BOARD_LENOVO_X230S is not set
# CONFIG_BOARD_LENOVO_X60 is not set
CONFIG_PS2K_EISAID="PNP0303"
CONFIG_PS2M_EISAID="LEN0015"
CONFIG_THINKPADEC_HKEY_EISAID="LEN0068"
CONFIG_VBOOT_SLOTS_RW_AB=y
CONFIG_DRIVER_LENOVO_SERIALS=y
# CONFIG_BOARD_LENOVO_BASEBOARD_T520 is not set
# CONFIG_BOARD_LENOVO_BASEBOARD_T530 is not set
# CONFIG_PCIEXP_L1_SUB_STATE is not set
# CONFIG_PCIEXP_CLK_PM is not set
# CONFIG_DRIVERS_UART_8250IO is not set
CONFIG_HEAP_SIZE=0x4000
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
CONFIG_BOARD_ROMSIZE_KB_12288=y
# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set
CONFIG_COREBOOT_ROMSIZE_KB_12288=y
# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set
CONFIG_COREBOOT_ROMSIZE_KB=12288
CONFIG_ROM_SIZE=0x00c00000
CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y
CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y
CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y
# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set
# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set
CONFIG_MAINBOARD_POWER_FAILURE_STATE=0
CONFIG_SYSTEM_TYPE_LAPTOP=y
# CONFIG_SYSTEM_TYPE_TABLET is not set
# CONFIG_SYSTEM_TYPE_DETACHABLE is not set
# CONFIG_SYSTEM_TYPE_CONVERTIBLE is not set
# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set

#
# Chipset
#

#
# SoC
#
CONFIG_CPU_SPECIFIC_OPTIONS=y
CONFIG_ROMSTAGE_ADDR=0x2000000
CONFIG_VERSTAGE_ADDR=0x2000000
CONFIG_RAMBASE=0xe00000
CONFIG_CPU_ADDR_BITS=36
# CONFIG_CHECK_REV_IN_OPROM_NAME is not set
CONFIG_EHCI_BAR=0xfef00000
CONFIG_SERIRQ_CONTINUOUS_MODE=y
CONFIG_SMM_TSEG_SIZE=0x800000
CONFIG_SMM_RESERVED_SIZE=0x100000
CONFIG_SMM_MODULE_STACK_SIZE=0x400
CONFIG_ACPI_CPU_STRING="\\_SB.CP%02d"
# CONFIG_SOC_CAVIUM_CN81XX is not set
CONFIG_ARCH_ARMV8_EXTENSION=0
CONFIG_STACK_SIZE=0x1000
# CONFIG_SOC_CAVIUM_COMMON is not set
CONFIG_IED_REGION_SIZE=0x400000
# CONFIG_SOC_INTEL_GEMINILAKE is not set
CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y
CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x0
CONFIG_PCIEXP_ASPM=y
CONFIG_PCIEXP_COMMON_CLOCK=y
CONFIG_UART_PCI_ADDR=0
CONFIG_CHIPSET_DEVICETREE=""
CONFIG_VBT_DATA_SIZE_KB=8
# CONFIG_SOC_MEDIATEK_MT8173 is not set
# CONFIG_SOC_MEDIATEK_MT8183 is not set
# CONFIG_SOC_MEDIATEK_MT8192 is not set
# CONFIG_SOC_NVIDIA_TEGRA124 is not set
# CONFIG_SOC_NVIDIA_TEGRA210 is not set
# CONFIG_SOC_QUALCOMM_COMMON is not set
# CONFIG_SOC_QC_IPQ40XX is not set
# CONFIG_SOC_QC_IPQ806X is not set
# CONFIG_SOC_QUALCOMM_QCS405 is not set
# CONFIG_SOC_ROCKCHIP_RK3288 is not set
# CONFIG_SOC_ROCKCHIP_RK3399 is not set
# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set
# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set
# CONFIG_SOC_TI_AM335X is not set
# CONFIG_SOC_UCB_RISCV is not set

#
# CPU
#
# CONFIG_CPU_AMD_AGESA is not set
# CONFIG_CPU_AMD_PI is not set
# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set
CONFIG_CPU_INTEL_MODEL_206AX=y
CONFIG_SSE2=y
# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set
# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set
CONFIG_CPU_INTEL_COMMON=y
CONFIG_ENABLE_VMX=y
CONFIG_SET_IA32_FC_LOCK_BIT=y
CONFIG_SET_MSR_AESNI_LOCK_BIT=y
CONFIG_CPU_INTEL_COMMON_TIMEBASE=y
CONFIG_CPU_INTEL_COMMON_SMM=y
CONFIG_MICROCODE_UPDATE_PRE_RAM=y
# CONFIG_PARALLEL_CPU_INIT is not set
CONFIG_PARALLEL_MP=y
# CONFIG_PARALLEL_MP_AP_WORK is not set
# CONFIG_UDELAY_LAPIC is not set
CONFIG_UDELAY_TSC=y
CONFIG_TSC_MONOTONIC_TIMER=y
# CONFIG_TSC_SYNC_LFENCE is not set
CONFIG_TSC_SYNC_MFENCE=y
CONFIG_LOGICAL_CPUS=y
CONFIG_HAVE_SMI_HANDLER=y
# CONFIG_NO_SMM is not set
# CONFIG_SMM_ASEG is not set
CONFIG_SMM_TSEG=y
CONFIG_SMM_MODULE_HEAP_SIZE=0x4000
CONFIG_SMM_STUB_STACK_SIZE=0x400
# CONFIG_X86_SMM_LOADER_VERSION2 is not set
# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set
# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set
# CONFIG_X86_AMD_FIXED_MTRRS is not set
# CONFIG_X86_AMD_INIT_SIPI is not set
# CONFIG_SOC_SETS_MSRS is not set
CONFIG_SMP=y
CONFIG_MMX=y
CONFIG_SSE=y
CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y
# CONFIG_USES_MICROCODE_HEADER_FILES is not set
CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y
CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y
# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set
# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set
# CONFIG_CPU_MICROCODE_CBFS_NONE is not set

#
# Northbridge
#
# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
# CONFIG_NORTHBRIDGE_AMD_PI is not set
CONFIG_INTEL_GMA_BCLV_OFFSET=0x48254
CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256
CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
# CONFIG_SANDYBRIDGE_VBOOT_IN_ROMSTAGE is not set
CONFIG_USE_NATIVE_RAMINIT=y
# CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES is not set
# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS is not set
CONFIG_RAMINIT_ENABLE_ECC=y

#
# Southbridge
#
# CONFIG_AMD_SB_CIMX is not set
# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
CONFIG_SOUTHBRIDGE_INTEL_C216=y
CONFIG_SOUTH_BRIDGE_OPTIONS=y
CONFIG_HPET_MIN_TICKS=0x80
CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH7 is not set
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_SILVERMONT is not set
CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y
CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_ACPI_MADT=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_FINALIZE=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y
CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y
CONFIG_INTEL_DESCRIPTOR_MODE_REQUIRED=y
# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set
CONFIG_INTEL_CHIPSET_LOCKDOWN=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y
CONFIG_FIXED_SMBUS_IO_BASE=0x400

#
# Super I/O
#
# CONFIG_SUPERIO_ASPEED_AST2400 is not set
# CONFIG_SUPERIO_ASPEED_COMMON_PRE_RAM is not set
# CONFIG_SUPERIO_ASPEED_HAS_UART_DELAY_WORKAROUND is not set
# CONFIG_SUPERIO_FINTEK_FAN_CONTROL is not set

#
# Embedded Controllers
#
CONFIG_EC_ACPI=y
# CONFIG_EC_51NB_NPCE985LA0DX is not set
# CONFIG_EC_GOOGLE_CHROMEEC_SKUID is not set
# CONFIG_EC_GOOGLE_WILCO is not set
CONFIG_EC_LENOVO_H8=y
CONFIG_H8_BEEP_ON_DEATH=y
CONFIG_H8_FLASH_LEDS_ON_DEATH=y
# CONFIG_H8_SUPPORT_BT_ON_WIFI is not set
CONFIG_H8_HAS_BAT_TRESHOLDS_IMPL=y
# CONFIG_H8_HAS_PRIMARY_FN_KEYS is not set
CONFIG_EC_LENOVO_PMH7=y

#
# Intel Firmware
#
CONFIG_HAVE_ME_BIN=y
# CONFIG_CHECK_ME is not set
# CONFIG_USE_ME_CLEANER is not set
CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y
CONFIG_HAVE_GBE_BIN=y
# CONFIG_MAINBOARD_USES_IFD_EC_REGION is not set
# CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION is not set
# CONFIG_LOCK_MANAGEMENT_ENGINE is not set
CONFIG_UNLOCK_FLASH_REGIONS=y
# CONFIG_CAVIUM_BDK is not set
# CONFIG_MAINBOARD_HAS_CHROMEOS is not set
# CONFIG_GOOGLE_SMBIOS_MAINBOARD_VERSION is not set
# CONFIG_UEFI_2_4_BINDING is not set
# CONFIG_UDK_2015_BINDING is not set
# CONFIG_UDK_2017_BINDING is not set
# CONFIG_UDK_202005_BINDING is not set
# CONFIG_USE_SIEMENS_HWILIB is not set
# CONFIG_ARM_LPAE is not set
CONFIG_ARCH_X86=y
CONFIG_ARCH_BOOTBLOCK_X86_32=y
CONFIG_ARCH_VERSTAGE_X86_32=y
CONFIG_ARCH_ROMSTAGE_X86_32=y
CONFIG_ARCH_POSTCAR_X86_32=y
CONFIG_ARCH_RAMSTAGE_X86_32=y
CONFIG_ARCH_ALL_STAGES_X86_32=y
# CONFIG_ARCH_POSTCAR_X86_64 is not set
# CONFIG_USE_MARCH_586 is not set
# CONFIG_AP_IN_SIPI_WAIT is not set
# CONFIG_SIPI_VECTOR_IN_ROM is not set
CONFIG_RAMTOP=0x1000000
CONFIG_NUM_IPI_STARTS=2
CONFIG_PC80_SYSTEM=y
# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set
CONFIG_HAVE_CMOS_DEFAULT=y
CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default"
CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
# CONFIG_HPET_ADDRESS_OVERRIDE is not set
CONFIG_HPET_ADDRESS=0xfed00000
CONFIG_ID_SECTION_OFFSET=0x80
CONFIG_POSTCAR_STAGE=y
# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set
# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set
CONFIG_BOOTBLOCK_SIMPLE=y
# CONFIG_BOOTBLOCK_NORMAL is not set
# CONFIG_COLLECT_TIMESTAMPS_NO_TSC is not set
CONFIG_COLLECT_TIMESTAMPS_TSC=y
# CONFIG_PAGING_IN_CACHE_AS_RAM is not set
# CONFIG_IDT_IN_EVERY_STAGE is not set
CONFIG_HAVE_CF9_RESET=y
# CONFIG_PIRQ_ROUTE is not set

#
# Devices
#
# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT is not set
# CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT is not set
CONFIG_MAINBOARD_HAS_LIBGFXINIT=y
# CONFIG_MAINBOARD_USE_LIBGFXINIT is not set
# CONFIG_VGA_ROM_RUN is not set
CONFIG_NO_GFX_INIT=y
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
CONFIG_PCI=y
# CONFIG_NO_MMCONF_SUPPORT is not set
CONFIG_MMCONF_SUPPORT=y
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
CONFIG_HT_CHAIN_UNITID_BASE=0
CONFIG_HT_CHAIN_END_UNITID_BASE=0
CONFIG_PCIX_PLUGIN_SUPPORT=y
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
# CONFIG_AZALIA_PLUGIN_SUPPORT is not set
CONFIG_PCIEXP_PLUGIN_SUPPORT=y
CONFIG_PCI_ALLOW_BUS_MASTER=y
CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y
CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y
# CONFIG_PCIEXP_HOTPLUG is not set
# CONFIG_EARLY_PCI_BRIDGE is not set
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
CONFIG_INTEL_GMA_HAVE_VBT=y
CONFIG_INTEL_GMA_ADD_VBT=y
# CONFIG_SOFTWARE_I2C is not set
# CONFIG_RESOURCE_ALLOCATOR_V3 is not set
CONFIG_RESOURCE_ALLOCATOR_V4=y
# CONFIG_XHCI_UTILS is not set

#
# Generic Drivers
#
# CONFIG_DRIVERS_AS3722_RTC is not set
# CONFIG_CHROMEOS_CAMERA is not set
CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000
# CONFIG_MAINBOARD_HAS_CRB_TPM is not set
# CONFIG_ELOG is not set
# CONFIG_GIC is not set
# CONFIG_IPMI_KCS is not set
# CONFIG_DRIVERS_LENOVO_WACOM is not set
CONFIG_CACHE_MRC_SETTINGS=y
# CONFIG_MRC_SETTINGS_PROTECT is not set
# CONFIG_HAS_RECOVERY_MRC_CACHE is not set
# CONFIG_MRC_SETTINGS_VARIABLE_DATA is not set
# CONFIG_MRC_WRITE_NV_LATE is not set
CONFIG_MRC_STASH_TO_CBMEM=y
# CONFIG_RT8168_GET_MAC_FROM_VPD is not set
# CONFIG_RT8168_SUPPORT_LEGACY_VPD_MAC is not set
# CONFIG_RT8168_SET_LED_MODE is not set
# CONFIG_SMMSTORE is not set
# CONFIG_SMMSTORE_IN_CBFS is not set
CONFIG_SPI_FLASH=y
# CONFIG_SPI_SDCARD is not set
CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y
CONFIG_BOOT_DEVICE_SPI_FLASH_NO_EARLY_WRITES=y
# CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY is not set
# CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS is not set
# CONFIG_SPI_FLASH_NO_FAST_READ is not set
CONFIG_SPI_FLASH_ADESTO=y
CONFIG_SPI_FLASH_AMIC=y
CONFIG_SPI_FLASH_ATMEL=y
CONFIG_SPI_FLASH_EON=y
CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SPI_FLASH_SST=y
CONFIG_SPI_FLASH_STMICRO=y
# CONFIG_SPI_FLASH_HAS_VOLATILE_GROUP is not set
# CONFIG_HAVE_EM100PRO_SPI_CONSOLE_SUPPORT is not set
CONFIG_NO_UART_ON_SUPERIO=y
# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set
# CONFIG_UART_OVERRIDE_REFCLK is not set
# CONFIG_DRIVERS_UART_8250MEM is not set
# CONFIG_DRIVERS_UART_8250MEM_32 is not set
# CONFIG_HAVE_UART_SPECIAL is not set
# CONFIG_DRIVERS_UART_OXPCIE is not set
# CONFIG_DRIVERS_UART_PL011 is not set
# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set
CONFIG_HAVE_USBDEBUG=y
CONFIG_HAVE_USBDEBUG_OPTIONS=y
# CONFIG_USBDEBUG is not set
# CONFIG_VPD is not set
# CONFIG_DRIVERS_AMD_PI is not set
# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set
# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set
# CONFIG_DRIVERS_GFX_GENERIC is not set
# CONFIG_DRIVERS_I2C_GPIO_MUX is not set
# CONFIG_DRIVERS_I2C_MAX98373 is not set
# CONFIG_DRIVERS_I2C_MAX98390 is not set
# CONFIG_DRIVERS_I2C_MAX98927 is not set
# CONFIG_DRIVERS_I2C_PCA9538 is not set
# CONFIG_DRIVERS_I2C_PCF8523 is not set
# CONFIG_DRIVERS_I2C_PTN3460 is not set
# CONFIG_DRIVERS_I2C_RT1011 is not set
# CONFIG_DRIVERS_I2C_RT5663 is not set
# CONFIG_DRIVERS_I2C_RTD2132 is not set
# CONFIG_DRIVERS_I2C_RX6110SA is not set
# CONFIG_DRIVERS_I2C_SX9310 is not set
# CONFIG_MAINBOARD_HAS_I2C_TPM_ATMEL is not set
# CONFIG_MAINBOARD_HAS_I2C_TPM_CR50 is not set
# CONFIG_MAINBOARD_HAS_I2C_TPM_GENERIC is not set
# CONFIG_DRIVERS_INTEL_DPTF is not set
# CONFIG_PLATFORM_USES_FSP2_0 is not set
# CONFIG_PLATFORM_USES_FSP2_1 is not set
# CONFIG_PLATFORM_USES_FSP2_2 is not set
# CONFIG_INTEL_DDI is not set
# CONFIG_INTEL_EDID is not set
CONFIG_INTEL_INT15=y
CONFIG_INTEL_GMA_ACPI=y
CONFIG_INTEL_GMA_BCLV_WIDTH=16
CONFIG_INTEL_GMA_BCLM_WIDTH=16
# CONFIG_INTEL_GMA_SSC_ALTERNATE_REF is not set
# CONFIG_INTEL_GMA_SWSMISCI is not set
# CONFIG_GFX_GMA_IGNORE_PRESENCE_STRAPS is not set
# CONFIG_GFX_GMA_PANEL_1_ON_EDP is not set
CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y
# CONFIG_DRIVER_INTEL_I210 is not set
# CONFIG_DRIVERS_INTEL_ISH is not set
# CONFIG_DRIVERS_INTEL_MIPI_CAMERA is not set
# CONFIG_DRIVERS_INTEL_PMC is not set
# CONFIG_HAVE_INTEL_PTT is not set
# CONFIG_IPMI_OCP is not set
CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS=y
# CONFIG_DRIVER_MAXIM_MAX77686 is not set
CONFIG_FRU_DEVICE_ID=0
# CONFIG_DRIVER_PARADE_PS8625 is not set
# CONFIG_DRIVER_PARADE_PS8640 is not set
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_DRIVERS_MC146818=y
CONFIG_MAINBOARD_HAS_LPC_TPM=y
CONFIG_TPM_TIS_BASE_ADDRESS=0xfed40000
CONFIG_DRIVERS_RICOH_RCE822=y
# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set
# CONFIG_NC_FPGA_NOTIFY_CB_READY is not set
# CONFIG_DRIVERS_SIL_3114 is not set
# CONFIG_MAINBOARD_HAS_SPI_TPM_CR50 is not set
# CONFIG_MAINBOARD_HAS_SPI_TPM is not set
# CONFIG_DRIVERS_TI_SN65DSI86BRIDGE is not set
# CONFIG_DRIVER_TI_TPS65090 is not set
# CONFIG_DRIVERS_TI_TPS65913_RTC is not set
# CONFIG_DRIVERS_USB_ACPI is not set
# CONFIG_DRIVERS_USB_PCI_XHCI is not set
CONFIG_DRIVERS_WIFI_GENERIC=y
# CONFIG_USE_SAR is not set
# CONFIG_COMMONLIB_STORAGE is not set

#
# Security
#

#
# Verified Boot (vboot)
#
CONFIG_VBOOT_LIB=y

#
# Trusted Platform Module
#
CONFIG_TPM1=y
CONFIG_MAINBOARD_HAS_TPM1=y
# CONFIG_TPM_DEACTIVATE is not set
# CONFIG_DEBUG_TPM is not set
# CONFIG_TPM_RDRESP_NEED_DELAY is not set
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_TPM_MEASURED_BOOT_RUNTIME_DATA=""

#
# Memory initialization
#
CONFIG_PLATFORM_HAS_DRAM_CLEAR=y
# CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT is not set
# CONFIG_STM is not set
CONFIG_BOOTMEDIA_LOCK_NONE=y
# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set
# CONFIG_BOOTMEDIA_LOCK_CHIP is not set
# CONFIG_ACPI_AMD_HARDWARE_SLEEP_VALUES is not set
CONFIG_ACPI_HAVE_PCAT_8259=y
CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y
CONFIG_HAVE_ACPI_TABLES=y
# CONFIG_BOOT_DEVICE_NOT_SPI_FLASH is not set
CONFIG_BOOT_DEVICE_SPI_FLASH=y
CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y
CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y
CONFIG_RTC=y

#
# Console
#
CONFIG_BOOTBLOCK_CONSOLE=y
CONFIG_POSTCAR_CONSOLE=y
CONFIG_SQUELCH_EARLY_SMP=y
# CONFIG_SPKMODEM is not set
# CONFIG_CONSOLE_NE2K is not set
CONFIG_CONSOLE_CBMEM=y
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000
# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set
# CONFIG_CONSOLE_SPI_FLASH is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7
# CONFIG_DEFAULT_POST_ON_LPC is not set
# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set
CONFIG_HWBASE_DEBUG_CB=y
CONFIG_HAVE_ACPI_RESUME=y
# CONFIG_DISABLE_ACPI_HIBERNATE is not set
CONFIG_RESUME_PATH_SAME_AS_BOOT=y
# CONFIG_NO_MONOTONIC_TIMER is not set
CONFIG_HAVE_MONOTONIC_TIMER=y
# CONFIG_TIMER_QUEUE is not set
CONFIG_HAVE_OPTION_TABLE=y
# CONFIG_PCI_IO_CFG_EXT is not set
CONFIG_IOAPIC=y
CONFIG_USE_WATCHDOG_ON_BOOT=y
# CONFIG_GFXUMA is not set
# CONFIG_ACPI_NHLT is not set

#
# System tables
#
# CONFIG_GENERATE_MP_TABLE is not set
# CONFIG_GENERATE_PIRQ_TABLE is not set
CONFIG_GENERATE_SMBIOS_TABLES=y
CONFIG_SMBIOS_PROVIDED_BY_MOBO=y
CONFIG_MAINBOARD_SERIAL_NUMBER="123456789"

#
# Payload
#
# CONFIG_PAYLOAD_NONE is not set
# CONFIG_PAYLOAD_ELF is not set
# CONFIG_PAYLOAD_BOOTBOOT is not set
# CONFIG_PAYLOAD_FILO is not set
# CONFIG_PAYLOAD_GRUB2 is not set
# CONFIG_PAYLOAD_LINUXBOOT is not set
# CONFIG_PAYLOAD_SEABIOS is not set
# CONFIG_PAYLOAD_UBOOT is not set
# CONFIG_PAYLOAD_YABITS is not set
CONFIG_PAYLOAD_LINUX=y
# CONFIG_PAYLOAD_TIANOCORE is not set
CONFIG_PAYLOAD_FILE="../../build/t430-hotp-maximized/bzImage"
CONFIG_LINUX_INITRD="../../build/t430-hotp-maximized/initrd.cpio.xz"
CONFIG_PAYLOAD_OPTIONS=""
# CONFIG_PXE is not set
# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set
CONFIG_COMPRESS_SECONDARY_PAYLOAD=y

#
# Secondary Payloads
#
# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set
# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set
# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set
# CONFIG_TINT_SECONDARY_PAYLOAD is not set

#
# Debugging
#

#
# CPU Debug Settings
#

#
# BLOB Debug Settings
#

#
# General Debug Settings
#
# CONFIG_FATAL_ASSERTS is not set
# CONFIG_DEBUG_CBFS is not set
CONFIG_HAVE_DEBUG_RAM_SETUP=y
# CONFIG_DEBUG_RAM_SETUP is not set
CONFIG_HAVE_DEBUG_SMBUS=y
# CONFIG_DEBUG_SMBUS is not set
# CONFIG_DEBUG_SMI is not set
# CONFIG_DEBUG_MALLOC is not set
# CONFIG_DEBUG_RESOURCES is not set
# CONFIG_DEBUG_CONSOLE_INIT is not set
# CONFIG_DEBUG_SPI_FLASH is not set
# CONFIG_TRACE is not set
# CONFIG_DEBUG_FUNC is not set
# CONFIG_DEBUG_BOOT_STATE is not set
# CONFIG_DEBUG_ADA_CODE is not set
CONFIG_HAVE_EM100_SUPPORT=y
# CONFIG_EM100 is not set
CONFIG_NO_EDID_FILL_FB=y
CONFIG_WARNINGS_ARE_ERRORS=y
# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
# CONFIG_REG_SCRIPT is not set
CONFIG_MAX_REBOOT_CNT=3
# CONFIG_NO_XIP_EARLY_STAGES is not set
# CONFIG_EARLY_CBMEM_LIST is not set
CONFIG_RELOCATABLE_MODULES=y
CONFIG_HAVE_BOOTBLOCK=y
CONFIG_HAVE_ROMSTAGE=y
CONFIG_HAVE_RAMSTAGE=y

@eganonoa
Copy link
Contributor

eganonoa commented Nov 26, 2021

@tlaurion how sure are we that we're not still just dealing with an issue caused by a locked IFD? The behaviour reported above is consistent with that and, while he says he's now unlocked, perhaps it wasn't really by mistake? I would probably suggest @walliams goes and grabs Skulls for the t430 and see if that works. If it does try the upgrade and if that fails then we know. I put my money on it working.

Beyond that perhaps try to use nvramcui to switch off any mention of the dGPU to the extent that it is in there (see e.g. here).

@tlaurion
Copy link
Collaborator

From there, make menuconfig on top of copied .config file, results in:
Devices->Graphics Initialization (Use libgfxinit)->Use libgfxinit
Devices->Display->Framebuffer->Linear "high-resolution" framebuffer
Note that under this, resolution of 2560x1600 is the default now, which might/might not be problematic.

Then
Exit until save prompt.

Then now .config looks like this:

user@heads-tests:~/heads/build/coreboot-4.13$ cat .config
#
# Automatically generated file; DO NOT EDIT.
# coreboot configuration
#

#
# General setup
#
CONFIG_COREBOOT_BUILD=y
CONFIG_LOCALVERSION=""
CONFIG_CBFS_PREFIX="fallback"
CONFIG_COMPILER_GCC=y
# CONFIG_COMPILER_LLVM_CLANG is not set
# CONFIG_ANY_TOOLCHAIN is not set
# CONFIG_CCACHE is not set
# CONFIG_FMD_GENPARSER is not set
# CONFIG_UTIL_GENPARSER is not set
CONFIG_USE_OPTION_TABLE=y
CONFIG_STATIC_OPTION_TABLE=y
CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_COLLECT_TIMESTAMPS=y
# CONFIG_TIMESTAMPS_ON_CONSOLE is not set
# CONFIG_USE_BLOBS is not set
# CONFIG_COVERAGE is not set
# CONFIG_UBSAN is not set
# CONFIG_HAVE_ASAN_IN_ROMSTAGE is not set
# CONFIG_ASAN_IN_ROMSTAGE is not set
CONFIG_HAVE_ASAN_IN_RAMSTAGE=y
# CONFIG_ASAN_IN_RAMSTAGE is not set
# CONFIG_ASAN is not set
# CONFIG_NO_STAGE_CACHE is not set
CONFIG_TSEG_STAGE_CACHE=y
# CONFIG_UPDATE_IMAGE is not set
# CONFIG_BOOTSPLASH_IMAGE is not set
# CONFIG_FW_CONFIG is not set

#
# Mainboard
#

#
# Important: Run 'make distclean' before switching boards
#
# CONFIG_VENDOR_51NB is not set
# CONFIG_VENDOR_ACER is not set
# CONFIG_VENDOR_ADLINK is not set
# CONFIG_VENDOR_AMD is not set
# CONFIG_VENDOR_AOPEN is not set
# CONFIG_VENDOR_APPLE is not set
# CONFIG_VENDOR_ASROCK is not set
# CONFIG_VENDOR_ASUS is not set
# CONFIG_VENDOR_BAP is not set
# CONFIG_VENDOR_BIOSTAR is not set
# CONFIG_VENDOR_BOSTENTECH is not set
# CONFIG_VENDOR_CAVIUM is not set
# CONFIG_VENDOR_CLEVO is not set
# CONFIG_VENDOR_COMPULAB is not set
# CONFIG_VENDOR_DELL is not set
# CONFIG_VENDOR_ELMEX is not set
# CONFIG_VENDOR_EMULATION is not set
# CONFIG_VENDOR_EXAMPLE is not set
# CONFIG_VENDOR_FACEBOOK is not set
# CONFIG_VENDOR_FOXCONN is not set
# CONFIG_VENDOR_GETAC is not set
# CONFIG_VENDOR_GIGABYTE is not set
# CONFIG_VENDOR_GIZMOSPHERE is not set
# CONFIG_VENDOR_GOOGLE is not set
# CONFIG_VENDOR_HP is not set
# CONFIG_VENDOR_IBASE is not set
# CONFIG_VENDOR_INTEL is not set
# CONFIG_VENDOR_JETWAY is not set
# CONFIG_VENDOR_KONTRON is not set
CONFIG_VENDOR_LENOVO=y
# CONFIG_VENDOR_LIBRETREND is not set
# CONFIG_VENDOR_LIPPERT is not set
# CONFIG_VENDOR_MSI is not set
# CONFIG_VENDOR_OCP is not set
# CONFIG_VENDOR_OPENCELLULAR is not set
# CONFIG_VENDOR_PACKARDBELL is not set
# CONFIG_VENDOR_PCENGINES is not set
# CONFIG_VENDOR_PORTWELL is not set
# CONFIG_VENDOR_PRODRIVE is not set
# CONFIG_VENDOR_PROTECTLI is not set
# CONFIG_VENDOR_PURISM is not set
# CONFIG_VENDOR_RAZER is not set
# CONFIG_VENDOR_RODA is not set
# CONFIG_VENDOR_SAMSUNG is not set
# CONFIG_VENDOR_SAPPHIRE is not set
# CONFIG_VENDOR_SCALEWAY is not set
# CONFIG_VENDOR_SIEMENS is not set
# CONFIG_VENDOR_SIFIVE is not set
# CONFIG_VENDOR_SUPERMICRO is not set
# CONFIG_VENDOR_SYSTEM76 is not set
# CONFIG_VENDOR_TI is not set
# CONFIG_VENDOR_UP is not set
CONFIG_BOARD_SPECIFIC_OPTIONS=y
CONFIG_MAINBOARD_FAMILY="ThinkPad T430"
CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T430"
CONFIG_MAINBOARD_VERSION="1.0"
CONFIG_MAINBOARD_DIR="lenovo/t430"
CONFIG_MAX_CPUS=8
CONFIG_VGA_BIOS_ID="8086,0166"
CONFIG_DIMM_MAX=4
CONFIG_DIMM_SPD_SIZE=256
CONFIG_FMDFILE=""
CONFIG_NO_POST=y
CONFIG_MAINBOARD_VENDOR="LENOVO"
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
# CONFIG_VGA_BIOS is not set
CONFIG_CBFS_SIZE=0xB80000
CONFIG_DEVICETREE="devicetree.cb"
CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="LENOVO"
CONFIG_DRAM_RESET_GATE_GPIO=10
CONFIG_INTEL_GMA_VBT_FILE="src/mainboard/$(MAINBOARDDIR)/data.vbt"
CONFIG_PRERAM_CBMEM_CONSOLE_SIZE=0xc00
CONFIG_USBDEBUG_HCD_INDEX=2
CONFIG_OVERRIDE_DEVICETREE=""
CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=0
CONFIG_TPM_PIRQ=0x0
# CONFIG_VBOOT is not set
CONFIG_LINEAR_FRAMEBUFFER_MAX_WIDTH=2560
CONFIG_LINEAR_FRAMEBUFFER_MAX_HEIGHT=1600
CONFIG_MEMLAYOUT_LD_FILE="src/arch/x86/memlayout.ld"
CONFIG_VBOOT_VBNV_OFFSET=0x2a
CONFIG_DCACHE_RAM_BASE=0xfefe0000
CONFIG_DCACHE_RAM_SIZE=0x20000
CONFIG_DCACHE_BSP_STACK_SIZE=0x10000
CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
CONFIG_MAX_ACPI_TABLE_SIZE_KB=144
CONFIG_HAVE_INTEL_FIRMWARE=y
CONFIG_MRC_SETTINGS_CACHE_SIZE=0x10000
CONFIG_SPI_FLASH_INCLUDE_ALL_DRIVERS=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_TPM_INIT=y
CONFIG_DRIVERS_INTEL_WIFI=y
CONFIG_IFD_BIN_PATH="../../blobs/xx30/ifd.bin"
CONFIG_ME_BIN_PATH="../../blobs/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../blobs/xx30/gbe.bin"
CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="ThinkPad T430"
CONFIG_HAVE_IFD_BIN=y
# CONFIG_BOARD_LENOVO_G505S is not set
# CONFIG_BOARD_LENOVO_L520 is not set
# CONFIG_BOARD_LENOVO_S230U is not set
# CONFIG_BOARD_LENOVO_T400 is not set
# CONFIG_BOARD_LENOVO_T500 is not set
# CONFIG_BOARD_LENOVO_R400 is not set
# CONFIG_BOARD_LENOVO_R500 is not set
# CONFIG_BOARD_LENOVO_W500 is not set
# CONFIG_BOARD_LENOVO_T410 is not set
# CONFIG_BOARD_LENOVO_T420 is not set
# CONFIG_BOARD_LENOVO_T420S is not set
CONFIG_BOARD_LENOVO_THINKPAD_T430=y
# CONFIG_BOARD_LENOVO_T430S is not set
# CONFIG_BOARD_LENOVO_T431S is not set
# CONFIG_BOARD_LENOVO_THINKPAD_T440P is not set
# CONFIG_BOARD_LENOVO_T520 is not set
# CONFIG_BOARD_LENOVO_W520 is not set
# CONFIG_BOARD_LENOVO_T530 is not set
# CONFIG_BOARD_LENOVO_W530 is not set
# CONFIG_BOARD_LENOVO_T60 is not set
# CONFIG_BOARD_LENOVO_Z61T is not set
# CONFIG_BOARD_LENOVO_R60 is not set
# CONFIG_BOARD_LENOVO_THINKCENTRE_A58 is not set
# CONFIG_BOARD_LENOVO_X131E is not set
# CONFIG_BOARD_LENOVO_X1_CARBON_GEN1 is not set
# CONFIG_BOARD_LENOVO_X200 is not set
# CONFIG_BOARD_LENOVO_X301 is not set
# CONFIG_BOARD_LENOVO_X201 is not set
# CONFIG_BOARD_LENOVO_X220 is not set
# CONFIG_BOARD_LENOVO_X220I is not set
# CONFIG_BOARD_LENOVO_X1 is not set
# CONFIG_BOARD_LENOVO_X230 is not set
# CONFIG_BOARD_LENOVO_X230T is not set
# CONFIG_BOARD_LENOVO_X230S is not set
# CONFIG_BOARD_LENOVO_X60 is not set
CONFIG_PS2K_EISAID="PNP0303"
CONFIG_PS2M_EISAID="LEN0015"
CONFIG_THINKPADEC_HKEY_EISAID="LEN0068"
CONFIG_VBOOT_SLOTS_RW_AB=y
CONFIG_DRIVER_LENOVO_SERIALS=y
# CONFIG_BOARD_LENOVO_BASEBOARD_T520 is not set
# CONFIG_BOARD_LENOVO_BASEBOARD_T530 is not set
# CONFIG_PCIEXP_L1_SUB_STATE is not set
# CONFIG_PCIEXP_CLK_PM is not set
# CONFIG_DRIVERS_UART_8250IO is not set
CONFIG_HEAP_SIZE=0x4000
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
CONFIG_BOARD_ROMSIZE_KB_12288=y
# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set
CONFIG_COREBOOT_ROMSIZE_KB_12288=y
# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set
# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set
CONFIG_COREBOOT_ROMSIZE_KB=12288
CONFIG_ROM_SIZE=0x00c00000
CONFIG_HAVE_POWER_STATE_AFTER_FAILURE=y
CONFIG_HAVE_POWER_STATE_PREVIOUS_AFTER_FAILURE=y
CONFIG_POWER_STATE_OFF_AFTER_FAILURE=y
# CONFIG_POWER_STATE_ON_AFTER_FAILURE is not set
# CONFIG_POWER_STATE_PREVIOUS_AFTER_FAILURE is not set
CONFIG_MAINBOARD_POWER_FAILURE_STATE=0
CONFIG_SYSTEM_TYPE_LAPTOP=y
# CONFIG_SYSTEM_TYPE_TABLET is not set
# CONFIG_SYSTEM_TYPE_DETACHABLE is not set
# CONFIG_SYSTEM_TYPE_CONVERTIBLE is not set
# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set

#
# Chipset
#

#
# SoC
#
CONFIG_CPU_SPECIFIC_OPTIONS=y
CONFIG_ROMSTAGE_ADDR=0x2000000
CONFIG_VERSTAGE_ADDR=0x2000000
CONFIG_RAMBASE=0xe00000
CONFIG_CPU_ADDR_BITS=36
# CONFIG_CHECK_REV_IN_OPROM_NAME is not set
CONFIG_EHCI_BAR=0xfef00000
CONFIG_SERIRQ_CONTINUOUS_MODE=y
CONFIG_SMM_TSEG_SIZE=0x800000
CONFIG_SMM_RESERVED_SIZE=0x100000
CONFIG_SMM_MODULE_STACK_SIZE=0x400
CONFIG_ACPI_CPU_STRING="\\_SB.CP%02d"
# CONFIG_SOC_CAVIUM_CN81XX is not set
CONFIG_ARCH_ARMV8_EXTENSION=0
CONFIG_STACK_SIZE=0x1000
# CONFIG_SOC_CAVIUM_COMMON is not set
CONFIG_IED_REGION_SIZE=0x400000
# CONFIG_SOC_INTEL_GEMINILAKE is not set
CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y
CONFIG_DCACHE_RAM_MRC_VAR_SIZE=0x0
CONFIG_PCIEXP_ASPM=y
CONFIG_PCIEXP_COMMON_CLOCK=y
CONFIG_UART_PCI_ADDR=0
CONFIG_CHIPSET_DEVICETREE=""
CONFIG_VBT_DATA_SIZE_KB=8
# CONFIG_SOC_MEDIATEK_MT8173 is not set
# CONFIG_SOC_MEDIATEK_MT8183 is not set
# CONFIG_SOC_MEDIATEK_MT8192 is not set
# CONFIG_SOC_NVIDIA_TEGRA124 is not set
# CONFIG_SOC_NVIDIA_TEGRA210 is not set
# CONFIG_SOC_QUALCOMM_COMMON is not set
# CONFIG_SOC_QC_IPQ40XX is not set
# CONFIG_SOC_QC_IPQ806X is not set
# CONFIG_SOC_QUALCOMM_QCS405 is not set
# CONFIG_SOC_ROCKCHIP_RK3288 is not set
# CONFIG_SOC_ROCKCHIP_RK3399 is not set
# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set
# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set
# CONFIG_SOC_TI_AM335X is not set
# CONFIG_SOC_UCB_RISCV is not set

#
# CPU
#
# CONFIG_CPU_AMD_AGESA is not set
# CONFIG_CPU_AMD_PI is not set
# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set
CONFIG_CPU_INTEL_MODEL_206AX=y
CONFIG_SSE2=y
# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set
# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set
CONFIG_CPU_INTEL_COMMON=y
CONFIG_ENABLE_VMX=y
CONFIG_SET_IA32_FC_LOCK_BIT=y
CONFIG_SET_MSR_AESNI_LOCK_BIT=y
CONFIG_CPU_INTEL_COMMON_TIMEBASE=y
CONFIG_CPU_INTEL_COMMON_SMM=y
CONFIG_MICROCODE_UPDATE_PRE_RAM=y
# CONFIG_PARALLEL_CPU_INIT is not set
CONFIG_PARALLEL_MP=y
# CONFIG_PARALLEL_MP_AP_WORK is not set
# CONFIG_UDELAY_LAPIC is not set
CONFIG_UDELAY_TSC=y
CONFIG_TSC_MONOTONIC_TIMER=y
# CONFIG_TSC_SYNC_LFENCE is not set
CONFIG_TSC_SYNC_MFENCE=y
CONFIG_LOGICAL_CPUS=y
CONFIG_HAVE_SMI_HANDLER=y
# CONFIG_NO_SMM is not set
# CONFIG_SMM_ASEG is not set
CONFIG_SMM_TSEG=y
CONFIG_SMM_MODULE_HEAP_SIZE=0x4000
CONFIG_SMM_STUB_STACK_SIZE=0x400
# CONFIG_X86_SMM_LOADER_VERSION2 is not set
# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set
# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set
# CONFIG_X86_AMD_FIXED_MTRRS is not set
# CONFIG_X86_AMD_INIT_SIPI is not set
# CONFIG_SOC_SETS_MSRS is not set
CONFIG_SMP=y
CONFIG_MMX=y
CONFIG_SSE=y
CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y
# CONFIG_USES_MICROCODE_HEADER_FILES is not set
CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y
CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS=y
# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS is not set
# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set
# CONFIG_CPU_MICROCODE_CBFS_NONE is not set

#
# Northbridge
#
# CONFIG_NORTHBRIDGE_AMD_AGESA is not set
# CONFIG_NORTHBRIDGE_AMD_PI is not set
CONFIG_INTEL_GMA_BCLV_OFFSET=0x48254
CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256
CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE=y
# CONFIG_SANDYBRIDGE_VBOOT_IN_ROMSTAGE is not set
CONFIG_USE_NATIVE_RAMINIT=y
# CONFIG_NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES is not set
# CONFIG_NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS is not set
CONFIG_RAMINIT_ENABLE_ECC=y

#
# Southbridge
#
# CONFIG_AMD_SB_CIMX is not set
# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set
CONFIG_SOUTHBRIDGE_INTEL_C216=y
CONFIG_SOUTH_BRIDGE_OPTIONS=y
CONFIG_HPET_MIN_TICKS=0x80
CONFIG_SOUTHBRIDGE_INTEL_COMMON_RESET=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_RTC=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMCLIB=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_PMBASE=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMBUS=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI=y
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH7 is not set
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9=y
# CONFIG_SOUTHBRIDGE_INTEL_COMMON_SPI_SILVERMONT is not set
CONFIG_SOUTHBRIDGE_INTEL_COMMON_PIRQ_ACPI_GEN=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_RCBA_PIRQ=y
CONFIG_HAVE_INTEL_CHIPSET_LOCKDOWN=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_SMM=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_ACPI_MADT=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_FINALIZE=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG=y
CONFIG_INTEL_DESCRIPTOR_MODE_CAPABLE=y
CONFIG_INTEL_DESCRIPTOR_MODE_REQUIRED=y
# CONFIG_VALIDATE_INTEL_DESCRIPTOR is not set
CONFIG_INTEL_CHIPSET_LOCKDOWN=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON_WATCHDOG=y
CONFIG_FIXED_SMBUS_IO_BASE=0x400

#
# Super I/O
#
# CONFIG_SUPERIO_ASPEED_AST2400 is not set
# CONFIG_SUPERIO_ASPEED_COMMON_PRE_RAM is not set
# CONFIG_SUPERIO_ASPEED_HAS_UART_DELAY_WORKAROUND is not set
# CONFIG_SUPERIO_FINTEK_FAN_CONTROL is not set

#
# Embedded Controllers
#
CONFIG_EC_ACPI=y
# CONFIG_EC_51NB_NPCE985LA0DX is not set
# CONFIG_EC_GOOGLE_CHROMEEC_SKUID is not set
# CONFIG_EC_GOOGLE_WILCO is not set
CONFIG_EC_LENOVO_H8=y
CONFIG_H8_BEEP_ON_DEATH=y
CONFIG_H8_FLASH_LEDS_ON_DEATH=y
# CONFIG_H8_SUPPORT_BT_ON_WIFI is not set
CONFIG_H8_HAS_BAT_TRESHOLDS_IMPL=y
# CONFIG_H8_HAS_PRIMARY_FN_KEYS is not set
CONFIG_EC_LENOVO_PMH7=y

#
# Intel Firmware
#
CONFIG_HAVE_ME_BIN=y
# CONFIG_CHECK_ME is not set
# CONFIG_USE_ME_CLEANER is not set
CONFIG_MAINBOARD_USES_IFD_GBE_REGION=y
CONFIG_HAVE_GBE_BIN=y
# CONFIG_MAINBOARD_USES_IFD_EC_REGION is not set
# CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION is not set
# CONFIG_LOCK_MANAGEMENT_ENGINE is not set
CONFIG_UNLOCK_FLASH_REGIONS=y
# CONFIG_CAVIUM_BDK is not set
# CONFIG_MAINBOARD_HAS_CHROMEOS is not set
# CONFIG_GOOGLE_SMBIOS_MAINBOARD_VERSION is not set
# CONFIG_UEFI_2_4_BINDING is not set
# CONFIG_UDK_2015_BINDING is not set
# CONFIG_UDK_2017_BINDING is not set
# CONFIG_UDK_202005_BINDING is not set
# CONFIG_USE_SIEMENS_HWILIB is not set
# CONFIG_ARM_LPAE is not set
CONFIG_ARCH_X86=y
CONFIG_ARCH_BOOTBLOCK_X86_32=y
CONFIG_ARCH_VERSTAGE_X86_32=y
CONFIG_ARCH_ROMSTAGE_X86_32=y
CONFIG_ARCH_POSTCAR_X86_32=y
CONFIG_ARCH_RAMSTAGE_X86_32=y
CONFIG_ARCH_ALL_STAGES_X86_32=y
# CONFIG_ARCH_POSTCAR_X86_64 is not set
# CONFIG_USE_MARCH_586 is not set
# CONFIG_AP_IN_SIPI_WAIT is not set
# CONFIG_SIPI_VECTOR_IN_ROM is not set
CONFIG_RAMTOP=0x1000000
CONFIG_NUM_IPI_STARTS=2
CONFIG_PC80_SYSTEM=y
# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set
CONFIG_HAVE_CMOS_DEFAULT=y
CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default"
CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set
# CONFIG_HPET_ADDRESS_OVERRIDE is not set
CONFIG_HPET_ADDRESS=0xfed00000
CONFIG_ID_SECTION_OFFSET=0x80
CONFIG_POSTCAR_STAGE=y
# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set
# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set
CONFIG_BOOTBLOCK_SIMPLE=y
# CONFIG_BOOTBLOCK_NORMAL is not set
# CONFIG_COLLECT_TIMESTAMPS_NO_TSC is not set
CONFIG_COLLECT_TIMESTAMPS_TSC=y
# CONFIG_PAGING_IN_CACHE_AS_RAM is not set
# CONFIG_IDT_IN_EVERY_STAGE is not set
CONFIG_HAVE_CF9_RESET=y
# CONFIG_PIRQ_ROUTE is not set

#
# Devices
#
CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y
CONFIG_HAVE_LINEAR_FRAMEBUFFER=y
# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT is not set
# CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT is not set
CONFIG_MAINBOARD_HAS_LIBGFXINIT=y
CONFIG_MAINBOARD_USE_LIBGFXINIT=y
# CONFIG_VGA_ROM_RUN is not set
# CONFIG_NO_GFX_INIT is not set
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set

#
# Display
#
# CONFIG_VGA_TEXT_FRAMEBUFFER is not set
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_LINEAR_FRAMEBUFFER=y
# CONFIG_BOOTSPLASH is not set
CONFIG_PCI=y
# CONFIG_NO_MMCONF_SUPPORT is not set
CONFIG_MMCONF_SUPPORT=y
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
CONFIG_HT_CHAIN_UNITID_BASE=0
CONFIG_HT_CHAIN_END_UNITID_BASE=0
CONFIG_PCIX_PLUGIN_SUPPORT=y
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
# CONFIG_AZALIA_PLUGIN_SUPPORT is not set
CONFIG_PCIEXP_PLUGIN_SUPPORT=y
CONFIG_PCI_ALLOW_BUS_MASTER=y
CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y
CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y
# CONFIG_PCIEXP_HOTPLUG is not set
# CONFIG_EARLY_PCI_BRIDGE is not set
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
CONFIG_INTEL_GMA_HAVE_VBT=y
CONFIG_INTEL_GMA_ADD_VBT=y
# CONFIG_SOFTWARE_I2C is not set
# CONFIG_RESOURCE_ALLOCATOR_V3 is not set
CONFIG_RESOURCE_ALLOCATOR_V4=y
# CONFIG_XHCI_UTILS is not set

#
# Generic Drivers
#
# CONFIG_DRIVERS_AS3722_RTC is not set
# CONFIG_CHROMEOS_CAMERA is not set
CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000
# CONFIG_MAINBOARD_HAS_CRB_TPM is not set
# CONFIG_ELOG is not set
# CONFIG_GIC is not set
# CONFIG_IPMI_KCS is not set
# CONFIG_DRIVERS_LENOVO_WACOM is not set
CONFIG_CACHE_MRC_SETTINGS=y
# CONFIG_MRC_SETTINGS_PROTECT is not set
# CONFIG_HAS_RECOVERY_MRC_CACHE is not set
# CONFIG_MRC_SETTINGS_VARIABLE_DATA is not set
# CONFIG_MRC_WRITE_NV_LATE is not set
CONFIG_MRC_STASH_TO_CBMEM=y
# CONFIG_RT8168_GET_MAC_FROM_VPD is not set
# CONFIG_RT8168_SUPPORT_LEGACY_VPD_MAC is not set
# CONFIG_RT8168_SET_LED_MODE is not set
# CONFIG_SMMSTORE is not set
# CONFIG_SMMSTORE_IN_CBFS is not set
CONFIG_SPI_FLASH=y
# CONFIG_SPI_SDCARD is not set
CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP=y
CONFIG_BOOT_DEVICE_SPI_FLASH_NO_EARLY_WRITES=y
# CONFIG_BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY is not set
# CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS is not set
# CONFIG_SPI_FLASH_NO_FAST_READ is not set
CONFIG_SPI_FLASH_ADESTO=y
CONFIG_SPI_FLASH_AMIC=y
CONFIG_SPI_FLASH_ATMEL=y
CONFIG_SPI_FLASH_EON=y
CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SPI_FLASH_SST=y
CONFIG_SPI_FLASH_STMICRO=y
# CONFIG_SPI_FLASH_HAS_VOLATILE_GROUP is not set
# CONFIG_HAVE_EM100PRO_SPI_CONSOLE_SUPPORT is not set
CONFIG_NO_UART_ON_SUPERIO=y
# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set
# CONFIG_UART_OVERRIDE_REFCLK is not set
# CONFIG_DRIVERS_UART_8250MEM is not set
# CONFIG_DRIVERS_UART_8250MEM_32 is not set
# CONFIG_HAVE_UART_SPECIAL is not set
# CONFIG_DRIVERS_UART_OXPCIE is not set
# CONFIG_DRIVERS_UART_PL011 is not set
# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set
CONFIG_HAVE_USBDEBUG=y
CONFIG_HAVE_USBDEBUG_OPTIONS=y
# CONFIG_USBDEBUG is not set
# CONFIG_VPD is not set
# CONFIG_DRIVERS_AMD_PI is not set
# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set
# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set
# CONFIG_DRIVERS_GFX_GENERIC is not set
# CONFIG_DRIVERS_I2C_GPIO_MUX is not set
# CONFIG_DRIVERS_I2C_MAX98373 is not set
# CONFIG_DRIVERS_I2C_MAX98390 is not set
# CONFIG_DRIVERS_I2C_MAX98927 is not set
# CONFIG_DRIVERS_I2C_PCA9538 is not set
# CONFIG_DRIVERS_I2C_PCF8523 is not set
# CONFIG_DRIVERS_I2C_PTN3460 is not set
# CONFIG_DRIVERS_I2C_RT1011 is not set
# CONFIG_DRIVERS_I2C_RT5663 is not set
# CONFIG_DRIVERS_I2C_RTD2132 is not set
# CONFIG_DRIVERS_I2C_RX6110SA is not set
# CONFIG_DRIVERS_I2C_SX9310 is not set
# CONFIG_MAINBOARD_HAS_I2C_TPM_ATMEL is not set
# CONFIG_MAINBOARD_HAS_I2C_TPM_CR50 is not set
# CONFIG_MAINBOARD_HAS_I2C_TPM_GENERIC is not set
# CONFIG_DRIVERS_INTEL_DPTF is not set
# CONFIG_PLATFORM_USES_FSP2_0 is not set
# CONFIG_PLATFORM_USES_FSP2_1 is not set
# CONFIG_PLATFORM_USES_FSP2_2 is not set
# CONFIG_INTEL_DDI is not set
# CONFIG_INTEL_EDID is not set
CONFIG_INTEL_INT15=y
CONFIG_INTEL_GMA_ACPI=y
CONFIG_INTEL_GMA_BCLV_WIDTH=16
CONFIG_INTEL_GMA_BCLM_WIDTH=16
# CONFIG_INTEL_GMA_SSC_ALTERNATE_REF is not set
# CONFIG_INTEL_GMA_SWSMISCI is not set
# CONFIG_GFX_GMA_IGNORE_PRESENCE_STRAPS is not set
CONFIG_GFX_GMA=y
# CONFIG_GFX_GMA_PANEL_1_ON_EDP is not set
CONFIG_GFX_GMA_PANEL_1_ON_LVDS=y
CONFIG_GFX_GMA_DYN_CPU=y
CONFIG_GFX_GMA_GENERATION="Ironlake"
CONFIG_GFX_GMA_PANEL_1_PORT="LVDS"
CONFIG_GFX_GMA_PANEL_2_PORT="Disabled"
CONFIG_GFX_GMA_ANALOG_I2C_PORT="PCH_DAC"
# CONFIG_DRIVER_INTEL_I210 is not set
# CONFIG_DRIVERS_INTEL_ISH is not set
# CONFIG_DRIVERS_INTEL_MIPI_CAMERA is not set
# CONFIG_DRIVERS_INTEL_PMC is not set
# CONFIG_HAVE_INTEL_PTT is not set
# CONFIG_IPMI_OCP is not set
CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS=y
# CONFIG_DRIVER_MAXIM_MAX77686 is not set
CONFIG_FRU_DEVICE_ID=0
# CONFIG_DRIVER_PARADE_PS8625 is not set
# CONFIG_DRIVER_PARADE_PS8640 is not set
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_DRIVERS_MC146818=y
CONFIG_MAINBOARD_HAS_LPC_TPM=y
CONFIG_TPM_TIS_BASE_ADDRESS=0xfed40000
CONFIG_DRIVERS_RICOH_RCE822=y
# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set
# CONFIG_NC_FPGA_NOTIFY_CB_READY is not set
# CONFIG_DRIVERS_SIL_3114 is not set
# CONFIG_MAINBOARD_HAS_SPI_TPM_CR50 is not set
# CONFIG_MAINBOARD_HAS_SPI_TPM is not set
# CONFIG_DRIVERS_TI_SN65DSI86BRIDGE is not set
# CONFIG_DRIVER_TI_TPS65090 is not set
# CONFIG_DRIVERS_TI_TPS65913_RTC is not set
# CONFIG_DRIVERS_USB_ACPI is not set
# CONFIG_DRIVERS_USB_PCI_XHCI is not set
CONFIG_DRIVERS_WIFI_GENERIC=y
# CONFIG_USE_SAR is not set
# CONFIG_COMMONLIB_STORAGE is not set

#
# Security
#

#
# Verified Boot (vboot)
#
CONFIG_VBOOT_LIB=y

#
# Trusted Platform Module
#
CONFIG_TPM1=y
CONFIG_MAINBOARD_HAS_TPM1=y
# CONFIG_TPM_DEACTIVATE is not set
# CONFIG_DEBUG_TPM is not set
# CONFIG_TPM_RDRESP_NEED_DELAY is not set
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_TPM_MEASURED_BOOT_RUNTIME_DATA=""

#
# Memory initialization
#
CONFIG_PLATFORM_HAS_DRAM_CLEAR=y
# CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT is not set
# CONFIG_STM is not set
CONFIG_BOOTMEDIA_LOCK_NONE=y
# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set
# CONFIG_BOOTMEDIA_LOCK_CHIP is not set
# CONFIG_ACPI_AMD_HARDWARE_SLEEP_VALUES is not set
CONFIG_ACPI_HAVE_PCAT_8259=y
CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y
CONFIG_HAVE_ACPI_TABLES=y
# CONFIG_BOOT_DEVICE_NOT_SPI_FLASH is not set
CONFIG_BOOT_DEVICE_SPI_FLASH=y
CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y
CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y
CONFIG_RTC=y

#
# Console
#
CONFIG_BOOTBLOCK_CONSOLE=y
CONFIG_POSTCAR_CONSOLE=y
CONFIG_SQUELCH_EARLY_SMP=y
# CONFIG_SPKMODEM is not set
# CONFIG_CONSOLE_NE2K is not set
CONFIG_CONSOLE_CBMEM=y
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000
# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set
# CONFIG_CONSOLE_SPI_FLASH is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7
# CONFIG_DEFAULT_POST_ON_LPC is not set
# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set
CONFIG_HWBASE_DEBUG_CB=y
CONFIG_HAVE_ACPI_RESUME=y
# CONFIG_DISABLE_ACPI_HIBERNATE is not set
CONFIG_RESUME_PATH_SAME_AS_BOOT=y
# CONFIG_NO_MONOTONIC_TIMER is not set
CONFIG_HAVE_MONOTONIC_TIMER=y
# CONFIG_TIMER_QUEUE is not set
CONFIG_HAVE_OPTION_TABLE=y
# CONFIG_PCI_IO_CFG_EXT is not set
CONFIG_IOAPIC=y
CONFIG_USE_WATCHDOG_ON_BOOT=y
# CONFIG_GFXUMA is not set
# CONFIG_ACPI_NHLT is not set

#
# System tables
#
# CONFIG_GENERATE_MP_TABLE is not set
# CONFIG_GENERATE_PIRQ_TABLE is not set
CONFIG_GENERATE_SMBIOS_TABLES=y
CONFIG_SMBIOS_PROVIDED_BY_MOBO=y
CONFIG_MAINBOARD_SERIAL_NUMBER="123456789"

#
# Payload
#
# CONFIG_PAYLOAD_NONE is not set
# CONFIG_PAYLOAD_ELF is not set
# CONFIG_PAYLOAD_BOOTBOOT is not set
# CONFIG_PAYLOAD_FILO is not set
# CONFIG_PAYLOAD_GRUB2 is not set
# CONFIG_PAYLOAD_LINUXBOOT is not set
# CONFIG_PAYLOAD_SEABIOS is not set
# CONFIG_PAYLOAD_UBOOT is not set
# CONFIG_PAYLOAD_YABITS is not set
CONFIG_PAYLOAD_LINUX=y
# CONFIG_PAYLOAD_TIANOCORE is not set
CONFIG_PAYLOAD_FILE="../../build/t430-hotp-maximized/bzImage"
CONFIG_LINUX_INITRD="../../build/t430-hotp-maximized/initrd.cpio.xz"
CONFIG_PAYLOAD_OPTIONS=""
# CONFIG_PXE is not set
# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set
CONFIG_COMPRESS_SECONDARY_PAYLOAD=y

#
# Secondary Payloads
#
# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set
# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set
# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set
# CONFIG_TINT_SECONDARY_PAYLOAD is not set

#
# Debugging
#

#
# CPU Debug Settings
#

#
# BLOB Debug Settings
#

#
# General Debug Settings
#
# CONFIG_FATAL_ASSERTS is not set
# CONFIG_DEBUG_CBFS is not set
CONFIG_HAVE_DEBUG_RAM_SETUP=y
# CONFIG_DEBUG_RAM_SETUP is not set
CONFIG_HAVE_DEBUG_SMBUS=y
# CONFIG_DEBUG_SMBUS is not set
# CONFIG_DEBUG_SMI is not set
# CONFIG_DEBUG_MALLOC is not set
# CONFIG_DEBUG_RESOURCES is not set
# CONFIG_DEBUG_CONSOLE_INIT is not set
# CONFIG_DEBUG_SPI_FLASH is not set
# CONFIG_TRACE is not set
# CONFIG_DEBUG_FUNC is not set
# CONFIG_DEBUG_BOOT_STATE is not set
# CONFIG_DEBUG_ADA_CODE is not set
CONFIG_HAVE_EM100_SUPPORT=y
# CONFIG_EM100 is not set
CONFIG_NO_EDID_FILL_FB=y
CONFIG_RAMSTAGE_ADA=y
CONFIG_RAMSTAGE_LIBHWBASE=y
CONFIG_HWBASE_DYNAMIC_MMIO=y
CONFIG_HWBASE_DEFAULT_MMCONF=0xf0000000
CONFIG_HWBASE_DIRECT_PCIDEV=y
CONFIG_WARNINGS_ARE_ERRORS=y
# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set
# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set
# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set
# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set
# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set
# CONFIG_REG_SCRIPT is not set
CONFIG_MAX_REBOOT_CNT=3
# CONFIG_NO_XIP_EARLY_STAGES is not set
# CONFIG_EARLY_CBMEM_LIST is not set
CONFIG_RELOCATABLE_MODULES=y
CONFIG_HAVE_BOOTBLOCK=y
CONFIG_HAVE_ROMSTAGE=y
CONFIG_HAVE_RAMSTAGE=y

To compare from provided coreboot-t430-hotp-maximized.config, we have to save this back to defconfig.

user@heads-tests:~/heads/build/coreboot-4.13$ make savedefconfig
user@heads-tests:~/heads/build/coreboot-4.13$ cat defconfig
CONFIG_USE_OPTION_TABLE=y
CONFIG_STATIC_OPTION_TABLE=y
# CONFIG_USE_BLOBS is not set
CONFIG_VENDOR_LENOVO=y
CONFIG_NO_POST=y
CONFIG_CBFS_SIZE=0xB80000
CONFIG_IFD_BIN_PATH="../../blobs/xx30/ifd.bin"
CONFIG_ME_BIN_PATH="../../blobs/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../blobs/xx30/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
CONFIG_BOARD_LENOVO_THINKPAD_T430=y
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
CONFIG_UART_PCI_ADDR=0
CONFIG_HAVE_ME_BIN=y
CONFIG_HAVE_GBE_BIN=y
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000
CONFIG_PAYLOAD_LINUX=y
CONFIG_PAYLOAD_FILE="../../build/t430-hotp-maximized/bzImage"
CONFIG_LINUX_INITRD="../../build/t430-hotp-maximized/initrd.cpio.xz"

And then, to visualize the difference we just generated:

user@heads-tests:~/heads/build/coreboot-4.13$ diff defconfig ../../config/coreboot-t430-hotp-maximized.config 
0a1
> # CONFIG_USE_BLOBS is not set
3d3
< # CONFIG_USE_BLOBS is not set
16c16
< CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
---
> CONFIG_NO_GFX_INIT=y

To have that configuration used inside of Heads for next coreboot build:
user@heads-tests:~/heads/build/coreboot-4.13$ cp defconfig ../../config/coreboot-t430-hotp-maximized.config

And now we can see the actual difference between Head commit and the "dirty" build we are going to make:

user@heads-tests:~/heads/build/coreboot-4.13$ cd ~/heads
user@heads-tests:~/heads$ git diff config/coreboot-t430-hotp-maximized.config
diff --git a/config/coreboot-t430-hotp-maximized.config b/config/coreboot-t430-hotp-maximized.config
index 2a2362a0..597055fd 100644
--- a/config/coreboot-t430-hotp-maximized.config
+++ b/config/coreboot-t430-hotp-maximized.config
@@ -1,6 +1,6 @@
-# CONFIG_USE_BLOBS is not set
 CONFIG_USE_OPTION_TABLE=y
 CONFIG_STATIC_OPTION_TABLE=y
+# CONFIG_USE_BLOBS is not set
 CONFIG_VENDOR_LENOVO=y
 CONFIG_NO_POST=y
 CONFIG_CBFS_SIZE=0xB80000
@@ -13,7 +13,7 @@ CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
 CONFIG_UART_PCI_ADDR=0
 CONFIG_HAVE_ME_BIN=y
 CONFIG_HAVE_GBE_BIN=y
-CONFIG_NO_GFX_INIT=y
+CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
 CONFIG_DRIVERS_PS2_KEYBOARD=y
 CONFIG_TPM_MEASURED_BOOT=y
 CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000

Where the final, copied over coreboot-t430-hotp-maximized.config looks like that:

user@heads-tests:~/heads$ cat config/coreboot-t430-hotp-maximized.config 
CONFIG_USE_OPTION_TABLE=y
CONFIG_STATIC_OPTION_TABLE=y
# CONFIG_USE_BLOBS is not set
CONFIG_VENDOR_LENOVO=y
CONFIG_NO_POST=y
CONFIG_CBFS_SIZE=0xB80000
CONFIG_IFD_BIN_PATH="../../blobs/xx30/ifd.bin"
CONFIG_ME_BIN_PATH="../../blobs/xx30/me.bin"
CONFIG_GBE_BIN_PATH="../../blobs/xx30/gbe.bin"
CONFIG_HAVE_IFD_BIN=y
CONFIG_BOARD_LENOVO_THINKPAD_T430=y
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
CONFIG_UART_PCI_ADDR=0
CONFIG_HAVE_ME_BIN=y
CONFIG_HAVE_GBE_BIN=y
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_TPM_MEASURED_BOOT=y
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000
CONFIG_PAYLOAD_LINUX=y
CONFIG_PAYLOAD_FILE="../../build/t430-hotp-maximized/bzImage"
CONFIG_LINUX_INITRD="../../build/t430-hotp-maximized/initrd.cpio.xz"

@tlaurion
Copy link
Collaborator

So, from above "full" (not defconfig), we can confirm that:

#
# Devices
#
CONFIG_HAVE_VGA_TEXT_FRAMEBUFFER=y
CONFIG_HAVE_LINEAR_FRAMEBUFFER=y
# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT is not set
# CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT is not set
CONFIG_MAINBOARD_HAS_LIBGFXINIT=y
CONFIG_MAINBOARD_USE_LIBGFXINIT=y
# CONFIG_VGA_ROM_RUN is not set
# CONFIG_NO_GFX_INIT is not set
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set

And:

#
# Display
#
# CONFIG_VGA_TEXT_FRAMEBUFFER is not set
CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
CONFIG_LINEAR_FRAMEBUFFER=y
# CONFIG_BOOTSPLASH is not set
CONFIG_PCI=y
# CONFIG_NO_MMCONF_SUPPORT is not set
CONFIG_MMCONF_SUPPORT=y
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
CONFIG_HT_CHAIN_UNITID_BASE=0
CONFIG_HT_CHAIN_END_UNITID_BASE=0
CONFIG_PCIX_PLUGIN_SUPPORT=y
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
# CONFIG_AZALIA_PLUGIN_SUPPORT is not set
CONFIG_PCIEXP_PLUGIN_SUPPORT=y
CONFIG_PCI_ALLOW_BUS_MASTER=y
CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y
CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y
# CONFIG_PCIEXP_HOTPLUG is not set
# CONFIG_EARLY_PCI_BRIDGE is not set
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
CONFIG_INTEL_GMA_HAVE_VBT=y
CONFIG_INTEL_GMA_ADD_VBT=y
# CONFIG_SOFTWARE_I2C is not set
# CONFIG_RESOURCE_ALLOCATOR_V3 is not set
CONFIG_RESOURCE_ALLOCATOR_V4=y
# CONFIG_XHCI_UTILS is not set

Which I think, from my best knowledge, should be enough. But @eganonoa @icequbes1 @walliams board owners should confirm, while regression testing for @alex-nitrokey @nitrosimon @jans23 should be done.

@tlaurion
Copy link
Collaborator

tlaurion commented Nov 26, 2021

@tlaurion how sure are we that we're not still just dealing with an issue caused by a locked IFD? The behaviour reported above is consistent with that and, while he says he's now unlocked, perhaps it wasn't really by mistake? I would probably suggest @walliams goes and grabs Skulls for the t430 and see if that works. If it does try the upgrade and if that fails then we know. I put my money on it working.

Beyond that perhaps try to use nvramcui to switch off any mention of the dGPU to the extent that it is in there (see e.g. here).

@eganonoa from my experience, and logically, board owner would not be able to type ctrl-alt-del and reboot system.

Which is Head's Linux dealing with sysrq magic there. We are dealing with graphic issues here, only, since coreboot+ heads is up and running, which permits crel-alt-del rebooting; owner just not having any intwrnal display where connecting external display magically works, but is not intended use case.

@tlaurion
Copy link
Collaborator

tlaurion commented Dec 4, 2021

#1015 merged

@tlaurion tlaurion closed this as completed Dec 4, 2021
@ghost
Copy link
Author

ghost commented Dec 27, 2021

thanks again for the help @tlaurion. been smooth sailing for a month now with no major issues. i just wanted to ask out of curiosity: any idea how you could get heads to initialize the nvidia dGPU on boards like mine?

confirmed with pciids that the only recognized VGA controller is the iGPU. this is by no means an issue-- just wondering if it's a possibility.

@eganonoa
Copy link
Contributor

@walliams I have scripts, configs and instructions in a PR pending merger (#1080) for the t530 and w530 with dGPU that can easily be converted for the t430 to get the dGPU to run. I just don't have a t430 with dgpu to actually do test it. If you would be willing to test it, I would very happily put everything together for you.

@ghost
Copy link
Author

ghost commented Dec 27, 2021

@eganonoa i would be very interested in testing for you! not looking forward to having to pull the machine apart for an external reflash if it doesn't work... so i'm especially interested if you are confident you can get me up and running with an internal flash!

let me know if there is any specific info you need from me to make this happen.
thanks!

@eganonoa
Copy link
Contributor

eganonoa commented Dec 27, 2021

@walliams. So long as you are now running a maximized board (i.e. either t430-hotp-maximized or t430-maximized) I am very confident. I have run and tested these builds multiple times on my dgpu T530 and w530 without error. And I would be simply taking the currently-working t430 boards in heads:master and simply adding the necessary for the dgpu following the t530 and w530 model. Nonetheless, of course, you would be testing something not tested before so there is risk involved (and you will brick your device if you are running these via internal flashing / bios update on a device with a board that does not have the ifd unlocked / non-maximized board such as the t430-verification boards).

Here's a link to a branch I've just created with the dgpu support for the t430: https://github.com/eganonoa/heads/tree/t430-dgpu. It takes current heads:master and adds specific boards for t430-dgpu-hotp-maximized and t430-hotp-maximized with the relevant dgpu extraction script and coreboot configs. I've successfully built these on my local machine running Debian 10. So you can build yourself. But it is also running on CircleCi right now and should have the roms ready in the artefacts folder there in about an hour or so.

Either way, once you have the 12 MB rom, you then need to take that rom and run nvramtool on it to change the default setting from integrated-only to hybrid (or discrete-only) before flashing. Instructions are in the README_vbios file in the xx30 blobs directory, but essentially all it takes is to build nvramtool and then run the following on the 12MB rom before flashing it: nvramtool -C /path/to/12MB/rom -w hybrid_graphics_mode="Dual Graphics"

Once that's done the dgpu should be capable of working, with of course all the other OS-level things you need to do to make sure that the dGPU is working there.

Good luck. Let me know if it all works!

@eganonoa
Copy link
Contributor

eganonoa commented Dec 27, 2021

@walliams, the boards have built on CircleCi:

If you don't already have it, nvramtool can be gotten in two different ways:

  • On debian-based systems via apt

sudo apt install nvramtool

  • Otherwise build from coreboot;

git clone https://github.com/coreboot/coreboot
cd coreboot/util/nvramtool
make
sudo make install (this last part is optional)

See https://www.coreboot.org/Nvramtool.

If you have Heads built on your computer, nvramtool can be built from inside the coreboot folder there (in the builds directory).

@ghost
Copy link
Author

ghost commented Dec 27, 2021

currently building t430-dgpu-hotp-maximized on debian 11
if successful, will run it thru nvramtool and reflash
any tips on how to retain my hotp verification settings on reflash?
thanks @eganonoa !

edit: debian 11 is proving to be troublesome for this build. setting up a debian 10 qube and trying again

@ghost
Copy link
Author

ghost commented Dec 28, 2021

done! the build worked with one small caveat-- my wifi card stopped initializing. ethernet is still good luckily.
lmk if you have any ideas to fix this @eganonoa. maybe i should move this to a new issue in your t430-dgpu branch?

@eganonoa
Copy link
Contributor

@walliams Strange. I made no changes over what's now in the current osresearch master related to the wifi adapter and indeed if I look at the difference between the generated coreboot .config of the regular t430-hotp-maximized and the t430-dgpu-hotp-maximized I don't see any difference that would relate to the wifi card.

I'd suggest trying a couple things to double-check whether its this board that's causing this:

  1. Check the cmos values in the rom you flashed to make sure that wlan is enabled:

nvramtool -C /path/to/12MB/rom -a

You should see "wlan = Enable" (I do). If not, change it to Enable and reflash.

  1. Build the non-dgpu version of the board you used and flash that, just to double-check that there isn't something in the current osresearch:master that's causing this.

If the current rom you flashed does have wlan=Enable and the non-dgpu version of the current board doesn't disable the wifi card then I'd imagine it's something caused by this board.

@tlaurion
Copy link
Collaborator

@walliams @eganonoa you both use Intel WiFi?

May be an error with x230 config having been used as base for all other xx30 boards, where in my tests, I always swap that Intel card with an Atheros,so never tested this.

@tlaurion
Copy link
Collaborator

@walliams @eganonoa nevermind my last comment, Intel Wifi card is initialized in coreboot per default config, which isn't changed in defconfig provided in tree

CONFIG_DRIVERS_INTEL_WIFI=y is included. So no hypothesis here.

@eganonoa
Copy link
Contributor

@walliams @eganonoa nevermind my last comment, Intel Wifi card is initialized in coreboot per default config, which isn't changed in defconfig provided in tree

CONFIG_DRIVERS_INTEL_WIFI=y is included. So no hypothesis here.

@tlaurion Yep it's a default value it seems (e.g. librem configs have to specify that its not set). As a general matter I eventually switch everything to Atheros because we use an FSF-certified distro. But typically I wait until I've confirmed everything is working with heads (and whatever old device I've managed to source) before investing in upgrades. That means that all my boards get tested on both Intel and Atheros cards, which has been true of both the t530 dgpu and w530 dgpu boards. And I can confirm that both those boards work out-of-the-box on both types of wifi card. The t430 dgpu-version uses the very same dgpu as the t530. So a wifi issue is surprising here. Fingers crossed for an errant change in the cmos values before flashing or something similar.

@ghost
Copy link
Author

ghost commented Dec 28, 2021

checked with nvramtool and wlan = Enabled
also, noticed bluetooth was enabled and i don't see a bluetooth controller when i run lspci so i disabled that on a hunch and reflashed, but it didn't change anything with the wifi. i'm going to make the board from the master branch now and see how that goes.

edit:
speaking of which -- i see the wifi controller in my lspci output -- Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)

so it appears that heads has initialized the card after all, but it's no longer appearing in my qubes Network menu after the ethernet connection. why would this be?

@tlaurion
Copy link
Collaborator

tlaurion commented Dec 28, 2021

@walliams basic troublshooting first.

Is the wifi physical slider off?

@ghost
Copy link
Author

ghost commented Dec 28, 2021

i figured it out! somehow on reflashing, the Centrino card was dropped off of my sys-net "Devices" list. added it back in and it's working!
so, not a problem with heads, but i guess something to be aware of that could cause people trouble with existing qubes installations.

thanks again to both of you for the advice. i am now very happy with this heads rom.
now if only i could get my fedora template to boot with the nvidia drivers :(

@eganonoa since you have gone to some lengths to enable dGPU's in heads, any rec's on a qubes template that plays nice with nvidia drivers? I read something about the fedora kernel being an issue. I was running fedora-34 in a cloned template, and now it still starts but no apps will open, not even terminal.

eganonoa added a commit to eganonoa/heads that referenced this issue Dec 28, 2021
Maximized boards being supported here only. I do not have a board to test. But these have been tested as working by another user (see linuxboot#1057 (comment)).
@eganonoa
Copy link
Contributor

@walliams Good stuff. Glad this worked out. I'm not a regular Qubes user. But I do have one (non-Heads, but coreboot nonetheless) device running Fedora 35 (silverblue). Getting the nvidia card set up was no problem at all (on 33, 34 and 35). I just have the nvidia-470xx driver installed (esp. xorg-x11-nvidia-470xx) and use system76-power (via this COPR https://copr.fedorainfracloud.org/coprs/szydell/system76/) for graphics switching.

@tlaurion I have set up a new clean branch for this rebased on master, one commit, etc (see https://github.com/eganonoa/heads/tree/dgpu-t430). Happy to make a PR for it, though obviously I can't test on it going forward and will rely on @walliams and others with a t430 dgpu to test. Let me know.

@ghost
Copy link
Author

ghost commented Dec 28, 2021

@eganonoa great. qubes doesn't provide a fedora-35 template yet, but it looks like i can upgrade from a 34 template. I'll try that, then i might try an ubuntu template if that won't work. goal is to make this an all purpose machine as well as a security beast.

really appreciate the help getting setup. i'm happy to test any boards you are trying to merge with master for the good of the project. feel free to mention me in a thread if you have another t430-dgpu build that needs testing. obviously i would appreciate if you verify that the updates work on your T530 first to minimize risk ;)

would you like me to verify that the new t430-dgpu branch you just made is working, or is it essentially the same as what I just built?

@eganonoa
Copy link
Contributor

@walliams You should be able to get it to work with Fedora 33 and 34 also. I certainly have, always using the latest nvidia driver and system76-power. Ubuntu probably the same, though I have no experience with it beyond servers.

Thanks re testing on the t430-dgpu going forward. The latest branch is just a copy of the one you used, just with the additions to master (with dgpu boards for t530 and w530) that happened today included. So there's nothing new related to what you've tested already.

@tlaurion
Copy link
Collaborator

tlaurion commented Dec 29, 2021

@walliams @eganonoa

About https://github.com/eganonoa/heads/tree/dgpu-t430

There are validation concerns (nothing gets validated) because of lack of:

{ do this | pipe here } || { echo failing; exit 1 }

thorough vbios code as reported through Matrix @eganonoa. Result is that the script continues without exiting when a step fails. Other steps should also fail (script calls) without continuing when there is an error.

Also, those scripts lack manual installation of bundle in apt install, and then upgrading to proper bundle version.

I'm not sure yet why Qubes fails to call rom-tool without sudo in its call to UEFIExtract in your scripts.

But that should be looked on independently prior of merging in another PR fixing other vbios extract scripts and then deduplicating here.

No problem on debian-10 docker image.

@walliams is https://github.com/eganonoa/heads/tree/dgpu-t430 working for you?

@ghost
Copy link
Author

ghost commented Dec 29, 2021

@walliams is https://github.com/eganonoa/heads/tree/dgpu-t430 working for you?

@tlaurion no problems for me so far. the vbios script took two tries-- one without sudo and then one with. i can't say i understand why this was necessary.

i had some issues installing nvramtool... the command wouldn't call the script, so i had to manually identify it after cloning the coreboot git.
But once I got the rom built & flashed and figured out why my wifi went out i have had no problems

@ghost
Copy link
Author

ghost commented Dec 30, 2021

to be clear though, I am still having trouble getting the dGPU to run properly on the machine. every time i add it into a qube my system freezes up... but that's more likely a combination of qubes & user error than a heads build issue.

@tlaurion
Copy link
Collaborator

to be clear though, I am still having trouble getting the dGPU to run properly on the machine. every time i add it into a qube my system freezes up... but that's more likely a combination of qubes & user error than a heads build issue.

Those needs to be HVMs, and pci/gpu passthrough guides need to be followed.
If you have issues there, I would recommend posting under Qubes forums and come back to create a new seperate issue if something inside of coreboot/heads is missing.

Some links:

tlaurion pushed a commit to tlaurion/heads that referenced this issue Jun 21, 2022
Maximized boards being supported here only. I do not have a board to test. But these have been tested as working by another user (see linuxboot#1057 (comment)).
tlaurion pushed a commit to tlaurion/heads that referenced this issue Jun 21, 2022
Maximized boards being supported here only. I do not have a board to test. But these have been tested as working by another user (see linuxboot#1057 (comment)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants