# This image was built using coreboot 4.5-1560-g241c4f244f
CONFIG_ANY_TOOLCHAIN=y
CONFIG_COLLECT_TIMESTAMPS=y
CONFIG_VENDOR_ASROCK=y
CONFIG_VGA_BIOS=y
CONFIG_VGA_BIOS_FILE="pci1002,9802.rom.lzma"
CONFIG_BOARD_ASROCK_E350M1=y
CONFIG_NO_POST=y
CONFIG_UART_PCI_ADDR=0
# CONFIG_VGA_ROM_RUN is not set
CONFIG_PCIEXP_ASPM=y
CONFIG_PCIEXP_L1_SUB_STATE=y
# CONFIG_CONSOLE_SERIAL is not set
CONFIG_PAYLOAD_ELF=y
CONFIG_PAYLOAD_FILE="seabios.elf"
CONFIG_COREINFO_SECONDARY_PAYLOAD=y
CONFIG_MEMTEST_SECONDARY_PAYLOAD=y
CONFIG_MEMTEST_MASTER=y
CONFIG_NVRAMCUI_SECONDARY_PAYLOAD=y
CONFIG_TINT_SECONDARY_PAYLOAD=y
