# This image was built using git revision ea8f3b4aa0029871ee36a953a927c1af081343c5
CONFIG_LOCALVERSION=""
CONFIG_CBFS_PREFIX="fallback"
CONFIG_COMPILER_GCC=y
CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_BROKEN_CAR_MIGRATE=y
CONFIG_COLLECT_TIMESTAMPS=y
CONFIG_VENDOR_AMD=y
CONFIG_BOARD_SPECIFIC_OPTIONS=y
CONFIG_MAINBOARD_DIR="amd/olivehillplus"
CONFIG_MAINBOARD_PART_NUMBER="DB-FT3b"
CONFIG_IRQ_SLOT_COUNT=11
CONFIG_MAINBOARD_VENDOR="AMD"
CONFIG_HW_MEM_HOLE_SIZEK=0x200000
CONFIG_MAX_CPUS=4
CONFIG_RAMTOP=0x1000000
CONFIG_HEAP_SIZE=0xc0000
CONFIG_RAMBASE=0x200000
CONFIG_VGA_BIOS_ID="1002,9855"
CONFIG_BOARD_AMD_OLIVEHILLPLUS=y
CONFIG_DRIVERS_PS2_KEYBOARD=y
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
CONFIG_VGA_BIOS=y
CONFIG_DCACHE_RAM_BASE=0x30000
CONFIG_DCACHE_RAM_SIZE=0x10000
CONFIG_ACPI_SSDTX_NUM=0
CONFIG_VGA_BIOS_FILE="3rdparty/northbridge/amd/00730F01/VBIOS.bin"
CONFIG_HUDSON_LEGACY_FREE=y
CONFIG_MMCONF_BASE_ADDRESS=0xF8000000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="AMD"
CONFIG_AZ_PIN=0xaa
CONFIG_UART_FOR_CONSOLE=0
CONFIG_ID_SECTION_OFFSET=0x80
CONFIG_STACK_SIZE=0x1000
CONFIG_CACHE_ROM_SIZE_OVERRIDE=0
CONFIG_CBFS_SIZE=0x800000
CONFIG_UDELAY_LAPIC_FIXED_FSB=200
CONFIG_POST_IO=y
CONFIG_POST_DEVICE=y
CONFIG_MAINBOARD_VERSION="1.0"
CONFIG_CPU_ADDR_BITS=40
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
CONFIG_BOARD_ROMSIZE_KB_8192=y
CONFIG_COREBOOT_ROMSIZE_KB_8192=y
CONFIG_COREBOOT_ROMSIZE_KB=8192
CONFIG_ROM_SIZE=0x800000
CONFIG_MAINBOARD_SERIAL_NUMBER="123456789"
CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="DB-FT3b"
CONFIG_ARCH_X86=y
CONFIG_ARCH_BOOTBLOCK_X86_32=y
CONFIG_ARCH_ROMSTAGE_X86_32=y
CONFIG_ARCH_RAMSTAGE_X86_32=y
CONFIG_NUM_IPI_STARTS=2
CONFIG_PC80_SYSTEM=y
CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/amd/agesa/hudson/bootblock.c"
CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
CONFIG_HPET_ADDRESS=0xfed00000
CONFIG_AGESA_BINARY_PI_DEFAULTS=y
CONFIG_AGESA_BINARY_PI_PATH_DEFAULT="3rdparty/pi/amd/00730F01"
CONFIG_AGESA_BINARY_PI_FILE_DEFAULT="FT3b/AGESA.bin"
CONFIG_AGESA_BINARY_PI_LOCATION_DEFAULT=0xFFE00000
CONFIG_CPU_AMD_AGESA_BINARY_PI=y
CONFIG_AGESA_BINARY_PI_PATH_DEFAULT_SELECTED=y
CONFIG_AGESA_BINARY_PI_PATH="3rdparty/pi/amd/00730F01"
CONFIG_AGESA_BINARY_PI_FILE_DEFAULT_SELECTED=y
CONFIG_AGESA_BINARY_PI_FILE="FT3b/AGESA.bin"
CONFIG_AGESA_BINARY_PI_LOCATION_DEFAULT_SELECTED=y
CONFIG_AGESA_BINARY_PI_LOCATION="0xFFE00000"
CONFIG_BOOTBLOCK_SIMPLE=y
CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
CONFIG_CPU_SOCKET_TYPE=0x10
CONFIG_CBB=0x0
CONFIG_CDB=0x18
CONFIG_XIP_ROM_SIZE=0x100000
CONFIG_DIMM_SUPPORT=0x0104
CONFIG_CPU_AMD_AGESA=y
CONFIG_S3_DATA_POS=0xFFFF0000
CONFIG_S3_DATA_SIZE=32768
CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0xA1000
CONFIG_XIP_ROM_BASE=0xfff80000
CONFIG_CPU_AMD_AGESA_00730F01=y
CONFIG_SMM_TSEG_SIZE=0
CONFIG_UDELAY_LAPIC=y
CONFIG_LAPIC_MONOTONIC_TIMER=y
CONFIG_TSC_SYNC_LFENCE=y
CONFIG_LOGICAL_CPUS=y
CONFIG_X86_AMD_FIXED_MTRRS=y
CONFIG_CACHE_AS_RAM=y
CONFIG_SMP=y
CONFIG_AP_SIPI_VECTOR=0xfffff000
CONFIG_CPU_MICROCODE_CBFS_NONE=y
CONFIG_VIDEO_MB=0
CONFIG_MMCONF_BUS_NUMBER=64
CONFIG_NORTHBRIDGE_AMD_AGESA=y
CONFIG_NORTHBRIDGE_AMD_AGESA_00730F01=y
CONFIG_MAX_PIRQ_LINKS=4
CONFIG_EHCI_BAR=0xfef00000
CONFIG_SOUTHBRIDGE_AMD_AGESA_AVALON=y
CONFIG_HUDSON_XHCI_ENABLE=y
CONFIG_HUDSON_XHCI_FWM=y
CONFIG_HUDSON_DISABLE_IMC=y
CONFIG_HUDSON_PSP=y
CONFIG_HUDSON_XHCI_FWM_FILE="3rdparty/southbridge/amd/avalon/xhci.bin"
CONFIG_HUDSON_FWM=y
CONFIG_HUDSON_FWM_POSITION=0xFF820000
CONFIG_AMD_PUBKEY_FILE="3rdparty/southbridge/amd/avalon/PSP/AmdPubKey.bin"
CONFIG_HUDSON_SATA_IDE=y
CONFIG_HUDSON_SATA_MODE=0x0
CONFIG_VGA_ROM_RUN=y
CONFIG_ON_DEVICE_ROM_RUN=y
CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y
CONFIG_PCI=y
CONFIG_PCIX_PLUGIN_SUPPORT=y
CONFIG_PCIEXP_PLUGIN_SUPPORT=y
CONFIG_AGP_PLUGIN_SUPPORT=y
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
CONFIG_PCI_BUS_SEGN_BITS=0
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
CONFIG_DRIVERS_UART=y
CONFIG_DRIVERS_UART_8250IO=y
CONFIG_HAVE_USBDEBUG=y
CONFIG_HAVE_USBDEBUG_OPTIONS=y
CONFIG_MMCONF_SUPPORT=y
CONFIG_SQUELCH_EARLY_SMP=y
CONFIG_CONSOLE_SERIAL=y
CONFIG_TTYS0_BASE=0x3f8
CONFIG_CONSOLE_SERIAL_115200=y
CONFIG_TTYS0_BAUD=115200
CONFIG_TTYS0_LCS=3
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
CONFIG_POST_DEVICE_NONE=y
CONFIG_POST_IO_PORT=0x80
CONFIG_HAVE_HARD_RESET=y
CONFIG_HAVE_MONOTONIC_TIMER=y
CONFIG_HAVE_OPTION_TABLE=y
CONFIG_PCI_IO_CFG_EXT=y
CONFIG_IOAPIC=y
CONFIG_GFXUMA=y
CONFIG_HAVE_ACPI_TABLES=y
CONFIG_HAVE_MP_TABLE=y
CONFIG_HAVE_PIRQ_TABLE=y
CONFIG_GENERATE_ACPI_TABLES=y
CONFIG_GENERATE_MP_TABLE=y
CONFIG_GENERATE_PIRQ_TABLE=y
CONFIG_GENERATE_SMBIOS_TABLES=y
CONFIG_PAYLOAD_ELF=y
CONFIG_PAYLOAD_FILE="payload.elf"
CONFIG_COMPRESSED_PAYLOAD_LZMA=y
CONFIG_WARNINGS_ARE_ERRORS=y
CONFIG_REG_SCRIPT=y
CONFIG_MAX_REBOOT_CNT=3
