# This image was built using coreboot 4.3-826-g9bc6674-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_K8=y
# CONFIG_POST_IO is not set
# CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT is not set
# CONFIG_POST_DEVICE is not set
CONFIG_CONSOLE_POST=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
# CONFIG_CONSOLE_SERIAL is not set
# CONFIG_GENERATE_PIRQ_TABLE is not set
CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="KFSN4-DRE"
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
