# This image was built using coreboot 4.3-2578-g08449eb-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_KFSN4_DRE=y
# CONFIG_POST_IO is not set
# CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT is not set
# CONFIG_POST_DEVICE is not set
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_CONSOLE_POST=y
# CONFIG_CONSOLE_SERIAL 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
