# This image was built using coreboot 4.2-1031-g3141eac-dirty
CONFIG_LOCALVERSION="RAPTOR-NORMAL"
CONFIG_CBFS_PREFIX="normal"
CONFIG_USE_OPTION_TABLE=y
CONFIG_COLLECT_TIMESTAMPS=y
CONFIG_BOOTBLOCK_NORMAL=y
CONFIG_UPDATE_IMAGE=y
CONFIG_VENDOR_ASUS=y
# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
CONFIG_BOARD_ASUS_KGPE_D16=y
CONFIG_CBFS_SIZE=0x100000
# CONFIG_POST_DEVICE is not set
CONFIG_DRIVERS_PS2_KEYBOARD=y
# CONFIG_CONSOLE_SERIAL is not set
CONFIG_CONSOLE_POST=y
# CONFIG_POST_IO is not set
# CONFIG_GENERATE_PIRQ_TABLE is not set
CONFIG_SEABIOS_MASTER=y
CONFIG_SEABIOS_VGA_COREBOOT=y
CONFIG_DEBUG_CBFS=y
CONFIG_DEBUG_RAM_SETUP=y
CONFIG_DEBUG_CAR=y
CONFIG_DEBUG_ACPI=y
